Remove folder
This commit is contained in:
parent
249deeb7d8
commit
bdd0e5df40
BIN
jan/fba.chm
BIN
jan/fba.chm
Binary file not shown.
|
@ -1,141 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<!-- Sitemap 1.0 -->
|
|
||||||
</HEAD><BODY>
|
|
||||||
<OBJECT type="text/site properties">
|
|
||||||
<param name="Window Styles" value="0x800025">
|
|
||||||
<param name="ImageType" value="Folder">
|
|
||||||
<param name="Font" value="Verdana,8,0">
|
|
||||||
</OBJECT>
|
|
||||||
<UL>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Introducing FB Alpha">
|
|
||||||
<param name="Local" value="intro.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="System Requirements">
|
|
||||||
<param name="Local" value="sysreq.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="How To Use">
|
|
||||||
</OBJECT>
|
|
||||||
<UL>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Menus">
|
|
||||||
</OBJECT>
|
|
||||||
<UL>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Game Menu">
|
|
||||||
<param name="Local" value="menu_game.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Video Menu">
|
|
||||||
<param name="Local" value="menu_video.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Audio Menu">
|
|
||||||
<param name="Local" value="menu_audio.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Input Menu">
|
|
||||||
<param name="Local" value="menu_input.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Misc Menu">
|
|
||||||
<param name="Local" value="menu_misc.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Help Menu">
|
|
||||||
<param name="Local" value="menu_help.htm">
|
|
||||||
</OBJECT>
|
|
||||||
</UL>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Dialogs">
|
|
||||||
</OBJECT>
|
|
||||||
<UL>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Game Select Dialog">
|
|
||||||
<param name="Local" value="dialog_game_select.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Game Information Dialog">
|
|
||||||
<param name="Local" value="dialog_game_info.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="NeoGeo MVS Multislot Game Select Dialog">
|
|
||||||
<param name="Local" value="dialog_multislot.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="NeoGeo CDZ Game Select Dialog">
|
|
||||||
<param name="Local" value="dialog_neocdz.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="IPS Manager Dialog">
|
|
||||||
<param name="Local" value="dialog_ips_manager.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Inputs Dialog">
|
|
||||||
<param name="Local" value="dialog_inputs.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Dip Switch Dialog">
|
|
||||||
<param name="Local" value="dialog_dips.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Cheat Dialog">
|
|
||||||
<param name="Local" value="dialog_cheats.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Rom Path Dialog">
|
|
||||||
<param name="Local" value="dialog_rom_paths.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Support File Path Dialog">
|
|
||||||
<param name="Local" value="dialog_support_path.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Palette Viewer Dialog">
|
|
||||||
<param name="Local" value="dialog_palette_viewer.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Shot Factory Dialog">
|
|
||||||
<param name="Local" value="dialog_shot_factory.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Choose Monitor for Full Screen Dialog">
|
|
||||||
<param name="Local" value="dialog_choose_monitor.htm">
|
|
||||||
</OBJECT>
|
|
||||||
</UL>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Keys">
|
|
||||||
<param name="Local" value="keys.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Command Line">
|
|
||||||
<param name="Local" value="command.htm">
|
|
||||||
</OBJECT>
|
|
||||||
</UL>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Creating Input Presets">
|
|
||||||
<param name="Local" value="presets.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Cheat Format">
|
|
||||||
<param name="Local" value="cheat_format.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Localising the Application">
|
|
||||||
<param name="Local" value="localise_app.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Localising the Gamelist">
|
|
||||||
<param name="Local" value="localise_gamelist.htm">
|
|
||||||
</OBJECT>
|
|
||||||
<LI> <OBJECT type="text/sitemap">
|
|
||||||
<param name="Name" value="Acknowledgments">
|
|
||||||
<param name="Local" value="acknowledgments.htm">
|
|
||||||
</OBJECT>
|
|
||||||
</UL>
|
|
||||||
</BODY></HTML>
|
|
|
@ -1,36 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Acknowledgments</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Acknowledgments</FONT></H3>
|
|
||||||
|
|
||||||
<P>The original FBA Team was Jan_Klaassen, LoopMaster, KEV, Mike_Haggar, TrebleWinner (Barry), Ayeye and HyperYagami.</P>
|
|
||||||
|
|
||||||
<P>There have also been big contributions from iq_132, Captain CPS-X, JacKc, dink and OopsWare.</P>
|
|
||||||
|
|
||||||
<P>Individual acknowledgements are also credited in the whatsnew.html file distributed with FB Alpha.</P>
|
|
||||||
|
|
||||||
<P>The current active Team is Barry, KEV, iq_132, JackC and dink.</P>
|
|
||||||
|
|
||||||
<P>The following is the original acknowledgements from the old readme.txt;</P>
|
|
||||||
|
|
||||||
<P><I>"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.</I></P>
|
|
||||||
|
|
||||||
<P><I>Thanks also to everyone who has made suggestions, submitted code, or helped in any other way."</I></P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,55 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Cheat Format</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Cheat Format</FONT></H3>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<H5><FONT COLOR="#F98733">Cheat File Format</FONT></H5>
|
|
||||||
|
|
||||||
<TABLE BORDER="0" CELLPADDING="2" CELLSPACING="0">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1">// Text</FONT></TD>
|
|
||||||
<TD VALIGN="Top"><FONT FACE="verdana" SIZE="1"><I>Comment</I></FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1">include "filename"</FONT></TD>
|
|
||||||
<TD VALIGN="Top"><FONT FACE="verdana" SIZE="1"><I>Include another cheat file</I></FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1">cheat "cheatname" {</FONT></TD>
|
|
||||||
<TD VALIGN="Top"><FONT FACE="verdana" SIZE="1"><I>New cheat called "cheatname" (the curly bracket is optional)</I></FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"> type n</FONT></TD>
|
|
||||||
<TD VALIGN="Top"><FONT FACE="verdana" SIZE="1"><I>Specify cheat type (optional, defaults to 0)
|
|
||||||
<BR />type 0 = apply each frame, save original value and remain active<BR />type 1 = one-shot, fire and forget;<BR />type 2 = one-shot, save original value and remain active</I></FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"> default n</FONT></TD>
|
|
||||||
<TD VALIGN="Top"><FONT FACE="verdana" SIZE="1"><I>Set default option to n (0 <= n <= 95)</I></FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"> 0 "name"</FONT></TD>
|
|
||||||
<TD VALIGN="Top"><FONT FACE="verdana" SIZE="1"><I>Text displayed in the cheat dialog when the cheat is disabled</I></FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"> n "name", o, p, q</FONT></TD>
|
|
||||||
<TD VALIGN="Top"><FONT FACE="verdana" SIZE="1"><I>Add option n (1 <= n <= 95), called "name"<BR />Store byte value q at address p in the address space of CPU o<BR />You can specify upto 32 o/p/q groups per option, all must be on the same line</I></FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1">}</FONT></TD>
|
|
||||||
<TD VALIGN="Top"><FONT FACE="verdana" SIZE="1"><I>Required if you used a curly bracket above, considered an error otherwise</I></FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,48 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Command Line</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Command Line</FONT></H3>
|
|
||||||
|
|
||||||
<P>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;</P>
|
|
||||||
|
|
||||||
<P><B><FONT FACE="verdana" SIZE="1">fba <game> [-listinfo|-w|-a|-r <width>x<height>x<depth>]</FONT></B></P>
|
|
||||||
|
|
||||||
<P><game> = The game's romname. You can specify the filename of a savestate or input recording instead.<BR />
|
|
||||||
-w = Run in a window instead of fullscreen.<BR />
|
|
||||||
-a = Use the same resolution as the original arcade game.<BR />
|
|
||||||
-r = Specify a resolution. Depth is optional.</P>
|
|
||||||
|
|
||||||
<P>If neither -a nor -r are specified, the default fullscreen resolution is used.</P>
|
|
||||||
|
|
||||||
<P>Examples:</P>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="1">
|
|
||||||
<P><B>fba sfa3 -r 800x600x32</B></P>
|
|
||||||
|
|
||||||
<P><B>fba awesome_sfzch_recording.fr -w</B></P>
|
|
||||||
|
|
||||||
<P><B>fba vsav2 -a</B></P>
|
|
||||||
</FONT>
|
|
||||||
|
|
||||||
<P>For front-ends, you can also do fba <B>-listinfo</B>, <B>-listinfomdonly</B>, <B>-listinfopceonly</B>, <B>-listinfotg16only</B>, <B>-listinfosgxonly</B>, <B>-listinfosg1000only</B>, <B>-listinfocolecoonly</B>, or <B>-listinfosmsonly</B>, <B>-listinfoggonly</B>, or <B>-listinfomsxonly</B> which will output information about the supported games to
|
|
||||||
stdout, and the ROM files they need in the MAME XML format.</P>
|
|
||||||
|
|
||||||
<P>You can also do fba <B>-listextrainfo</B>. 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.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,28 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Cheat Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Cheat Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>If you have cheats for a game in the cheat support file path then you can enable these cheats in this dialog.</P>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>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 <B>OK</B>. To change the cheats back to the default status you can click <B>Default</B> and then click <B>OK</B> to save the changes and return to the game.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,26 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Choose Monitor for Full Screen Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Choose Monitor for Full Screen Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>You can select a different monitor for horizontal and vertical games if desired. Simply select the required monitor from the dropdowns and press the <B>OK</B> button.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,28 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Dip Switch Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Dip Switch Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>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 <B>OK</B> to save your changes. Most games will require a reset for the changes to take effect.</P>
|
|
||||||
|
|
||||||
<P>To reset the settings back to the defaults simply click the <B>Defaults</B> button and then press <B>OK</B> to save.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,30 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Game Information Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Game Information Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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.)</P>
|
|
||||||
|
|
||||||
<P>Simply click on the different tabs to select the information you want to view.</P>
|
|
||||||
|
|
||||||
<P>The <B>Rescan Romset</B> button allows you to rescan the indivdual romset for the highlighted game. The <B>Favorite</B> checkbox allows you to add/remove the game from your favorites filter in the <A HREF="dialog_game_select">Game Selection dialog</A>.</P>
|
|
||||||
|
|
||||||
<P>The <B>Close</B> closes the dialog box.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,79 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Game Select Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Game Select Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>To play a game either double-click on it in the list, or select it and press the <B>Play</B> button.</P>
|
|
||||||
|
|
||||||
<P>The game list can be filtered using any of the filters in the dialog. This allows you to filter by <B>Hardware</B>, <B>Favorites</B>, <B>Genre</B>, <B>Family</B> (Game Series), or <B>Board Type</B>. 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.</P>
|
|
||||||
|
|
||||||
<P>The games in the list may have status icons next to them. These are;</P>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="40" VALIGN="TOP"><IMG SRC="images/tv%20not%20working.ico" HEIGHT="16" WIDTH="16"></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This game doesn't work.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="40" VALIGN="TOP"><IMG SRC="images/tv%20not%20found.ico" HEIGHT="16" WIDTH="16"></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This game wasn't found when the roms were last scanned.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="40" VALIGN="TOP"><IMG SRC="images/tv%20not%20found%20non%20essential.ico" HEIGHT="16" WIDTH="16"></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Some non-essential roms for this game were not found when the last scan was done.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
|
|
||||||
<P>The following options are available in the <B>Options</B> section of the dialog;</P>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Show Available</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Filters the gamelist to show games available on your system (ie, that you have the roms for).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Show Unavailable</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Filters the gamelist to show games unavailable on your system (ie, that you don't have the roms for).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Always show clones</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will expand the gamelist to show clone games without the user having to click the "+" on the parent.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Use zipnames</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will show the games shortname before the main title.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Latin text only</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will show only Latin text in the games title.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<P>There are two buttons with these options. The first is <B>ROMs Dirs...</B>. Clicking this button will bring up the <A HREF="dialog_rom_paths.htm">Rom Path Dialog</A>. The second is <B>Scan ROMs</B>. 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.</P>
|
|
||||||
|
|
||||||
<P>Under the info panel is some information relating to the number of sets displayed and the number unavailable.</P>
|
|
||||||
|
|
||||||
<P>To get information about the roms and/or samples required by a game, select the game in the list and then click the <B>Rom Info</B> button.</P>
|
|
||||||
|
|
||||||
<P>If a game has IPS patches available, then the <B>IPS Manager</B> button becomes enabled when you click on the game in the gamelist. Clicking this button will bring up the <A HREF="dialog_ips_manager.htm">IPS Manager Dialog</A>. If you configure some patches to apply then the <B>Apply Patches</B> checkbox becomes available. Checking this box will enable the patches to be applied when you click the <B>Play</B> button.</P>
|
|
||||||
|
|
||||||
<P>You can view game information, by clicking on the <B>Game Info</B> button. This opens the <A HREF="dialog_game_info.htm">Game Information Dialog</A>.</P>
|
|
||||||
|
|
||||||
<P>You can also right-click on a game in the list to open a context menu. Pressing <B>Play</B> from this menu, will play the game highlighted. <B>View Game Information</B> will open the <A HREF="dialog_game_info.htm">Game Information Dialog</A>. <B>View in Progetto EMMA</B> will open the games information page on Progetto EMMA (external web link). <B>Favorite</B> will add the game to your Favorites, which are available from the filters.</P>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,32 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Inputs Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Inputs Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>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 <B>Auto-center</B> or <B>Normal</B>. Once you have made your selection click <B>Use preset</B> to change the inputs for the selected game or click <B>Make default</B> to make your selection be the default for all games which have not been currently configured.</P>
|
|
||||||
|
|
||||||
<P>You can create presets by clicking the <B>Save preset</B> 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 <I>cps.ini</I>, for Neo-Geo games, the file will be called <I>neogeo.ini</I>, for PGM games the file will be called <O>pgm.ini</I>, and for all other games the file will be called <I>preset.ini</I>.</P>
|
|
||||||
|
|
||||||
<P>Controls are first assigned from the games specific ini file. If that isn't found, then the hardware specific ini file is tried (<I>cps.ini</I>, <I>neogeo.ini</I>, <I>pgm.ini</I>). If this isn't found then the default preset (applied by clicking <B>Make default</B>) is tried. If this isn't found then the application's default controls are mapped.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,30 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>IPS Patch Manager Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">IPS Patch Manager Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>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 <B>OK</B> button. This will save the configuration and you can then use the <B>Apply Patches</B> checkbox in the <A HREF="dialog_game_select.htm">Game Select Dialog</A>.</P>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>You can deselect all patches by clicking the <B>Deselect All</B> button.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,28 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Game Select Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">NeoGeo MVS Multislot Game Select Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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 <B>Select</B> button. This will open the <A HREF="dialog_game_select.htm">Game Select Dialog</A>, 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 <B>Clear</B> button.</P>
|
|
||||||
|
|
||||||
<P>When you have made your selections, click the <B>OK</B> 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 <B>select</B> buttons. By default these are mapped to <B>3</B> and <B>4</B> on your keyboard. Pressing these buttons will cycle through the games you have loaded.</P>
|
|
||||||
|
|
||||||
<P>Your slot selections are saved when the dialog is closed.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,32 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Neo Geo CDZ Game Select Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Neo Geo CDZ Game Select Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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 <I>-front</I> or <I>-back</I>, eg, <I>0030-front.png</I>. The info panel under the gamelist will also be refreshed and will display information about the game.</P>
|
|
||||||
|
|
||||||
<P>To play a game either double-click on it in the list, or select it and press the <B>Play</B> button.</P>
|
|
||||||
|
|
||||||
<P>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 <B>Scan Games</B> button. You can force the scan to look in sub-directories of the folder you defined by selecting the <B>Scan sub-dirs</B> option. You can also force the scan to look for ISO's only and ignore CUE files by selecting the <B>Scan for ISO only</B> option.</P>
|
|
||||||
|
|
||||||
<P>You can use the <B>Directories</B> button to open the <A HREF="dialog_support_path.htm">Support File Path Dialog</A> to change the folders to use for the games and/or covers.</P>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,28 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Palette Viewer Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Palette Viewer Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>This dialog allows you to view the games palette. It isn't supported by all drivers, but most do support this feature.</P>
|
|
||||||
|
|
||||||
<P>256 palette entries are displayed on screen at once, and the <B>Previous...</B> and <B>Next...</B> buttons move between the entries in mutliples of 256.</P>
|
|
||||||
|
|
||||||
<P>The <B>Close</B> closes the dialog box.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,30 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Rom Path Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Rom Path Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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 <B>Browse...</B> to select the folder. Once you have finished click <B>OK</B> and if you have made any changes then FB Alpha will scan your roms.</P>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>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 <I>md_</I> prefix for the Megadrive games shortnames, either a <I>pce_</I>, <I>tg_</I>, or <I>sgx_</I> prefix for PC-Engine games shortnames, <I>cv_</I> for Colecovision game shortnames, <I>sg1k_</I> for Sega SG-1000 game shortnames, <I>sms_</I> for Sega Master System game shortnames, and <I>gg_</I> 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.</P>
|
|
||||||
|
|
||||||
<P><B>DO NOT ASK US WHERE TO FIND ROMS. They are copyrighted and we can't help you.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,28 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Shot Factory Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Shot Factory Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>To enable or disable a layer simply check or uncheck it in the list. To take a screenshot click <B>Capture</B>, to advance a frame click <B>Advance Frame</B>. When you are finished click <B>Done</B> to close the dialog.</P>
|
|
||||||
|
|
||||||
<P>Not all games support the dialog, and those that do may not have all the layers that are displayed in the dialog.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,103 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Support File Path Dialog</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Support File Dialog</FONT></H3>
|
|
||||||
|
|
||||||
<P>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 <B>Browse...</B> to configure the folder to use for those files. Press <B>OK</B> when you have finished to save the changes.</P>
|
|
||||||
|
|
||||||
<P>Most support files are named after a games short name. This is a unique name and can be found in the <A HREF="dialog_game_select.htm">Game Select Dialog</A> by enabling the <B>Use Zipnames</B> option. For example if you wanted to place a preview file for X-Men vs. Street Fighter you would call it xmvsf.png.</P>
|
|
||||||
|
|
||||||
<P>To use the support files they should be placed in the folder which you have configured.</P>
|
|
||||||
|
|
||||||
<P>The table below gives an overview of all the support files and how they should be named.</P>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Previews</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an in-game preview image in several dialog boxes. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Titles</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's title screen in the <A HREF="dialog_game_select.htm">Game Selection Dialog</A>, and the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Icons</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an icon for the game's in the <A HREF="dialog_game_select.htm">Game Selection Dialog</A>. The files should be named <I>shortgamename.ico</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Cheats</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">These files provide cheat functionality for the <A HREF="dialog_cheats.htm">Cheat Dialog</A>. Cheat files can be in one of three formats. The FB Alpha format requires a filename of <I>shortgamename.ini</I>, the Nebula/Kawaks format requires a filename of <I>shortgamename.dat</I> and the old MAME format requires all the cheats in the one <I>cheat.dat</I> file.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>High Scores</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">You can use this file to save high scores in your games. Place the <I>hiscore.dat</I> file in the folder you configure and enable the <B>Save high scores when supported</B> option from the <A HREF="menu_misc.htm">Misc menu</A>. High scores will only be saved for games that have support for it flagged.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Samples</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">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.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>IPS</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will enable IPS Patches if the patches are placed in this path. See the <A HREF="dialog_ips_manager.htm">IPS Manager Dialog</A> for more information.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Neo Geo CDZ Games</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Keep any Neo Geo CDZ games you have in this folder and they will be shown in the <A HREF="dialog_neocdz.htm">Neo Geo CDZ Game Select Dialog</A>.</TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Neo Geo CDZ Covers</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display the cover for Neo Geo CDZ games. See the <A HREF="dialog_neocdz.htm">Neo Geo CDZ Game Select Dialog</A> for more information.</TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Blend Files</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">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 <I>shortgamename.bld</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Select Previews</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's select screen in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Versus Previews</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's versus screen in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>HowTo Previews</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's howto screen in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Scores Previews</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's high score screen in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Bosses Previews</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's bosses screen in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Game Over Previews</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's game over screen in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Flyers</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's flyer in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Marquees</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's marquee in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Control Panels</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's control panel in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Cabinets</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's cabinet in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>PCBs</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This will display an image of the game's PCB in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>. The files should be named <I>shortgamename.png</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>History.dat</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">The location of the <I>history.dat</I> file. This file provides various details of the game in the <A HREF="dialog_game_info.htm">Game Info Dialog</A>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>EEPROM Saves</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Games that use NVRAM or EEPROMs will save their data in this folder.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
Binary file not shown.
|
@ -1,12 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<!-- Sitemap 1.0 -->
|
|
||||||
</HEAD><BODY>
|
|
||||||
<OBJECT type="text/site properties">
|
|
||||||
<param name="Font" value="Verdana,8,0">
|
|
||||||
</OBJECT>
|
|
||||||
<UL>
|
|
||||||
</UL>
|
|
||||||
</BODY></HTML>
|
|
|
@ -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]
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 14 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.2 KiB |
|
@ -1,51 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Introducing FB Alpha</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Introducing FB Alpha</FONT></H3>
|
|
||||||
|
|
||||||
<P>FB Alpha is an arcade emulator supporting the following platforms;</P>
|
|
||||||
|
|
||||||
<UL>
|
|
||||||
<LI>Capcom CPS-1</LI>
|
|
||||||
<LI>Capcom CPS-2</LI>
|
|
||||||
<LI>Capcom CPS-3</LI>
|
|
||||||
<LI>Cave</LI>
|
|
||||||
<LI>Data East DEC-0, DEC-8 and DECO IC16 based games</LI>
|
|
||||||
<LI>Galaxian based hardware</LI>
|
|
||||||
<LI>Irem M62, M63, M72, M90, M92 and M107 hardware</LI>
|
|
||||||
<LI>Kaneko 16</LI>
|
|
||||||
<LI>Konami</LI>
|
|
||||||
<LI>Neo-Geo</LI>
|
|
||||||
<LI>NMK16</LI>
|
|
||||||
<LI>Pacman based hardware</LI>
|
|
||||||
<LI>PGM</LI>
|
|
||||||
<LI>Psikyo 68EC020 and SH-2 based hardware</LI>
|
|
||||||
<LI>Sega System 1, System 16 (and similar), System 18, X-Board and Y-Board</LI>
|
|
||||||
<LI>Super Kaneko Nova System</LI>
|
|
||||||
<LI>Toaplan 1</LI>
|
|
||||||
<LI>Toaplan 2</LI>
|
|
||||||
<LI>Taito F2, X, Z and others</LI>
|
|
||||||
<LI>Miscellaneous drivers for lots of other hardware</LI>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>FB Alpha can currently be obtained from <A HREF="https://www.fbalpha.com">https://www.fbalpha.com</A>.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,131 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Keys</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Keys</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>F6</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Open game selection dialog.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and F6</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Start a game via netplay.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>F5</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Open inputs dialog.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and F5</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Open dip switch dialog.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and F4</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Exit Game.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>ALT and F4</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Exit emulator.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Pause</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Pause the emulation.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>F1</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Hold to fast forward emulation.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="100"><FONT FACE="verdana" SIZE="1"><B>ALT and Enter</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Switch to fullscreen.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Esc</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Return to windowed mode from fullscreen.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>ALT and +</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Volume up.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>ALT and -</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Volume down.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Backspace</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Toggle Frames per Second display.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>T</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">On-screen chat (netplay only)</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>F7</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Insert or eject a memory card.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and F7</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Select memory card.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL, SHIFT and F7</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Create a memory card.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and F9</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Load savestate.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and F10</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Save savestate.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>F8</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Activate previous savestate slot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>F11</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Activate next savestate slot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>F9</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Load savestate from active slot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>F10</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Save savestate to active slot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Shift and F8</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Undo savestate in active slot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>F12</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Save screenshot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and F12</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Open shot factory.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL, SHIFT and F1</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Invoke debugger (debug builds only).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and F1</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable cheats.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and HOME</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Start New Cheat Search.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and /</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Cheat value not changed.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and *</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Cheat value changed.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and +</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Cheat value increased.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>CTRL and -</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Cheat value decreased.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Double-click on game screen</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enter full screen.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Right-click on game screen</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Show/hide menu bar.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,32 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Localising the Application</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Localising the Application</FONT></H3>
|
|
||||||
|
|
||||||
<P>The application can be localised using templates. To generate a template click on the <A HREF="menu_misc.htm">Misc Menu</A>, then <I>UI Language</I>, <I>Export UI translation template...</I>.</P>
|
|
||||||
|
|
||||||
<P>Save the template where you want and then open it in a text editor. Localise the strings by amending them and saving the file.</P>
|
|
||||||
|
|
||||||
<P>To enable your localisation, click on the <A HREF="menu_misc.htm">Misc Menu</A>, then <I>UI Language</I>, <I>Select UI Language</I> and then open your template.</P>
|
|
||||||
|
|
||||||
<P>To remove an applied template, click on the <A HREF="menu_misc.htm">Misc Menu</A>, then <I>UI Language</I>, <I>Reset UI default Language</I>.</P>
|
|
||||||
|
|
||||||
<p>It is also possible to download localisation files from within the program. To do this, click on the <A HREF="menu_misc.htm">Misc Menu</A>, then <I>UI Language</I>, <I>Download UI language</I>. This will open a dialog showing the languages available for download. Once you select a language press the <B>OK</B> button the template will be downloaded and applied.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,32 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Localising the Gamelist</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Localising the Gamelist</FONT></H3>
|
|
||||||
|
|
||||||
<P>The gamelist can be localised using templates. To generate a template click on the <A HREF="menu_misc.htm">Misc Menu</A>, then <I>Gamelist Language</I>, <I>Export gamelist translation template...</I>.</P>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>To enable your localisation, click on the <A HREF="menu_misc.htm">Misc Menu</A>, then <I>Gamelist Language</I>, <I>Select gamelist Language</I> and then open your template.</P>
|
|
||||||
|
|
||||||
<P>To remove an applied template, click on the <A HREF="menu_misc.htm">Misc Menu</A>, then <I>Gamelist Language</I>, <I>Reset gamelist default Language</I>.</P>
|
|
||||||
|
|
||||||
<P>You can use MAME+ LST files for the template. Simply rename the file's extension to glt (eg, if the file is called <I>mame_kr.lst</I>, change it to <I>mame_kr.glt</I>), and add any necessary codepage definition if required. FB Alpha will ignore any extra text after the first two tab-delimited tokens.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,83 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Audio Menu</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Audio Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Select plugin</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Select the audio plugin to use.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Plugin options</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Configure the selected plugin (see below).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>2-point 1st order sample interpolation</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable sample interpolation on some of the APDCM cores.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>4-point 3rd order sample interpolation</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable higher quality (but slower) sample interpolation on some of the APDCM cores.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Disable FM interpolation</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Disable interpolation on the FM cores.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>4-point 3rd order FM interpolation</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable sample interpolation on the FM cores.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Sound Logging</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Start or stop logging sound to a file.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Buffer Size</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Set the number of frames to buffer sound for. Most users shouldn't need to change this.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">DirectSound Audio Plugin Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Use Low-pass filter</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable a low-pass filter.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Sound Disabled</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Disable sound.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>11025Hz, 22050Hz, 44100Hz, 48000Hz Sample Rate</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Set the sound frequency. Higher is better quality but slightly slower.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">XAudio2 Audio Plugin Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Use Low-pass filter</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable a low-pass filter.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Use Reverb</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable a reverb filter.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Sound Disabled</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Disable sound.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>11025Hz, 22050Hz, 44100Hz, 48000Hz Sample Rate</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Set the sound frequency. Higher is better quality but slightly slower.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,113 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Game Menu</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Game Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Load Game</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the <A HREF="dialog_game_select.htm">Game Select Dialog</A> to choose a game to load.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Play via Kaillera</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the <A HREF="dialog_game_select.htm">Game Select Dialog</A> to choose a game to load for netplay.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Most recent games</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Displays the ten most recent games. Click on one to start that game.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Start Neo Geo Multi-slot</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the <A HREF="dialog_multislot.htm">NeoGeo MVS Multislot Game Select Dialog</A>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Load Neo Geo CDZ game</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the <A HREF="dialog_neocdz.htm">NeoGeo CDZ Game Select Dialog</A>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Select CD Image (ISO/CUE)</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens a file select dialog, which allows you to choose and ISO/CUE CD image to use with the Neo Geo CDZ driver.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Start Neo Geo CDZ</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Starts the Neo Geo CDZ emulation, using the current loaded ISO/CUE CD image.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Exit Game</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Closes the current game.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Pause Game</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Pauses the current game.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Adjust CPU speed</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to over or underclock the games CPU. Only some drivers support this.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Reset CPU speed to 100%</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Turns off any over or underclocking of the games CPU.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Create new memory card</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Creates a new memory card file (only used by the Neo Geo driver).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Select Memory Card</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to select a memory card file (only used by the Neo Geo driver).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Insert Memory Card</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Inserts the currently selected memory card (only used by the Neo Geo driver).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Eject Memory Card</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Ejects the current memory card (only used by the Neo Geo driver).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Replay Input</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Prompts for an input recording file (.FR), loads the game and plays back the input recording.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Record Input</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Start recording an input recording file (.FR).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Stop Replay/Record</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Stops the current playing back or recording of an input recording.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Load State</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Prompt for a savestate file (.FS) to load from disc.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Save State</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Saves the games state to a savestate file (.FS). This can be used to save your current game for later play.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Activate Previous Slot</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Activates the previous savestate slot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Activate Next Slot</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Activates the next savestate slot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Load state from active slot</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Loads the savestate from the current selected slot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Save state to active slot</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Saves the savestate to the current selected slot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Undo last state save</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Undoes the last save state in the active slot.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Restore full state on load</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This option will automatically take a savestate when you exit a game and load that state when you load the game.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Record AVI</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the codec selection dialog ready to start recording an AVI file.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Stop recording</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Stops recording an AVI file.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Exit Emulator</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Exits the application.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,47 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Help Menu</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Help Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Help</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">View this file.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>What's New</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">View the what's new document.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>FB Alpha hompage</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Visit the FB Alpha homepage.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>FB Alpha Forums</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Visit the FB Alpha forums.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Neo-Source Forums</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Visit the Neo-Source forums - this forum is active and is the best place to report bugs or discuss FBA.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>System Information</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">View information about your system.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>About FB Alpha</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">View the About dialog containing the license and version info.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,38 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Input Menu</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Input Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Select plugin</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Select the input plugin to use - currently does nothing.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Auto-Fire Rate</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Sets the rate (speed) of auto-fire). Options available are <I>Slow</I>, <I>Medium</I>, <I>Fast</I> and <I>Very Fast</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Map Game Inputs</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the game inputs dialog.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Set dipswitches</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the game dipswitch dialog.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,131 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Misc Menu</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Misc Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Auto Pause</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will automatically pause the emulator if it loses focus or you switch to another window.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Always process keyboard input</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will process the keyboard input.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Display Mode Indicator</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will show an indicator telling when the emulator is paused, recording, etc.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Don't change Num Lock status</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">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.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Create support folders at runtime</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Disabling this will prevent FB Alpha creating the support file folders at program start.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Set application thread priority</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Set the applications thread priority. Set it to higher to go faster, or lower to be more co-operative with multi-tasking windows apps.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Save high scores when supported</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable this to turn on high score saving. See the <A HREF="dialog_support_path.htm">Support File Path Dialog</A> section for more information.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Use alpha blend effects when supported</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable this to turn on alpha blend effects for supported games. See the <A HREF="dialog_support_path.htm">Support File Path Dialog</A> section for more information.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Display Gear-Shift Indicator when supported</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Show the current gear on-screen for games that support it. This is usually a <I>L</I> for low gear, and a <I>H</I> for high gear.</TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>AVI Writer Output Size</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Multiplier to scale the resolution when writing an AVI file, options are <I>1x</I>, <I>2x</I>, <I>3x</I>.</TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Generate dat file</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">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).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Generate all dats</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">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.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Configure ROM paths</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Open the <A HREF="dialog_rom_paths.htm">Rom Path Dialog</A>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Configure support file paths</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Open the <A HREF="dialog_support_path.htm">Support File Path Dialog</A>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>UI Language</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">See the <A HREF="localise_app.htm">Localising the Application</A> section for more information.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Gamelist Language</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">See the <A HREF="localise_gamelist.htm">Localising the Gamelist</A> section for more information.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable driver icons display</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enables game icons in the <A HREF="dialog_game_select.htm">Game Selection Dialog</A>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Icon size</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Choose between <I>16 x 16</I>, <I>24 x 24</I>, or <I>32 x 32</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Save Snapshot</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Saves a snapshot in the screenshot folder.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Shot Factory</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the <A HREF="dialog_shot_factory.htm">Shot Factory Dialog</A>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable Cheats</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the <A HREF="dialog_cheats.htm">Cheat Dialog</A> to allow you to apply cheats. This item is only enabled if you have a valid cheat file in the cheat support file folder.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Start New Search</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will start a new cheat search.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Target value has not changed</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Tell the cheat search that the value you are looking for has not changed.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Target value has changed</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Tell the cheat search that the value you are looking for has changed.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Target value has decreased</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Tell the cheat search that the value you are looking for has decreased.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Target value has increased</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Tell the cheat search that the value you are looking for has increased.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Dump search to file</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Dumps all the remaining addresses and values from a cheat search into a file called <I>cheatsearchdump.txt</I> in the FB Alpha root folder.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Exit Cheat Search</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Exits the cheat search mode.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Palette Viewer</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the <A HREF="dialog_palette_viewer.htm">Palette Viewer Dialog</A>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Associate with .fs and .fr files</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Associates .fs and .fr files with windows so that you can open FB Alpha using one of these files from explorer.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Disassociate with .fs and .fr files</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Removes the association with .fs and .fr files from Windows.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Save input mapping now</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will save the input and dip switch settings for the current game to the games config file.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Auto-save input mapping</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">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.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Save settings to .ini now</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will save the application settings to the .ini file. This also happens automatically when you close the application.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Reload settings from .ini</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will reload the application settings from the .ini file.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,228 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Video Menu</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Video Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Select blitter</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Select which blitter to use.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Blitter options</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Configure the selected blitter (see below).</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Stretch</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Choose between <I>Normal</I>, <I>Full</I>, or <I>Correct Aspect Ratio</I>. The recommended setting is <I>Correct Aspect Ratio</I> to preserve the games original look.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable Gamma Correction</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enables gamma correction.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Darken mid-tones, Lighten mid-tones, Other Gamma value</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to configure the gamma value to use.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Use video hardware when possible, use video hardware exclusively, use software exclusively</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Tells FB Alpha how to apply the gamma correction. Recommended setting is <I>Use video hardware exclusively</I> unless this gives you problems.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Window size</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Determines the size of the window when not in fullscreen. Choose between <I>Auto</I>, <I>Single Size</I>, <I>Double Size</I>, <I>Triple Size</I>, <I>Quadruple Size</I>, or <I>Maximise</I>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Toggle fullscreen mode</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Switch to fullscreen.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Auto Switch to Fullscreen after loading</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enabling this option will automatically switch to fullscreen after you load a game from the <A HREF="dialog_game_select.htm">Game Select Dialog</A>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Full Screen Resolution</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to set the fullscreen resolution to use. This can be configured independently for hoziontal and vertical games. You can select between <I>Arcade</I> (which attempts to use the games native resolution, <I>Single Size</I>, <I>Double Size</I>, <I>Triple Size</I>, <I>Quadruple Size</I> or you can specify a specific resolution to use.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Fullscreen bitdepth</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to choose between <I>16-bit</I>, <I>24-bit</I> and <I>32-bit</I> colour modes for use in fullscreen.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Choose Fullscreen Monitor</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Opens the <A HREF="dialog_choose_monitor.htm">Choose Monitor for Full Screen dialog</a>.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Automatically detect aspect ratio</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">If this is enabled FB Alpha will automatically attempt to determine the aspect ratio of your monitor.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Normal CRT, Normal LCD, Widescreen CRT, Widescreen LCD aspect ratio </B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">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 <I>Automatically detect aspect ratio</I> item is enabled.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Mirrored vertical alignment</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">If enabled will mirror the aspect ratio settings for vertical games.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Rotate vertically aligned games</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">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.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Force 60hz refresh rate</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">This option will force the video to ouput at 60hz. This will help to eliminate tearing but may induce other problems.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable Triple Buffering (Fullscreen)</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Use a triple buffer in fullscreen.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable VSync (Windowed)</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enabling this will help to eliminate tearing in Windowed mode but you may see slightly juttering scrolling.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Auto frameskip</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">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.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Basic (DirectDraw 7) Blitter Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>No Effects</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Turns off all effects.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Scanlines</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will turn on a scanline effect.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Scanlines 50%</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will turn on an alternative scanline effect.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Rotate scanlines</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">If this is enabled then scanlines will be rotated for vertical games.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Force Flip</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">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 <I>System Memory Buffering Method</I>. 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.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Buffering Method</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Choose between <I>Autodetect</I>, <I>Video memory</I>, and <I>System memory</I>. The recommended setting is <I>Autodetect</I> unless this causes you problems.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">SoftFX (DirectDraw 7) Blitter Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Filter List</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Choose a graphics filter to apply. These will only work with the colour depths specified.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Force image to SoftFX size</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will force the video image to the selected filter size.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Buffering Method</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Choose between <I>Autodetect</I>, <I>Video memory</I>, and <I>System memory</I>. The recommended setting is <I>Autodetect</I> unless this causes you problems.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Directly access video memory</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Leave this enabled unless it causes you problems.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Enhanced (Direct3D 7) Blitter Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Disable all effects</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Turns off all effects.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable bi-linear filtering</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enables bi-linear filtering.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Rotate scanlines and RGB effects</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">If this is enabled then scanlines and RGB effects will be rotated for vertical games.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable Pre-scale</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enables pre-scale for use with the SoftFX filters.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Pre-scale using SoftFX</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Turns on prescaling using SoftFX.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>SoftFX Algorithm</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Choose a SoftFX filter to apply to the video.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Force image to SoftFX size</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will force the video image to the selected filter size.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable scanlines</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will turn on a scanline effect.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Set scanline intensity</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to set the scanline intensity.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable phosphor feedback</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will turn on a phosphor feedback effect.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Set phosphor feedback intensity</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to set the phosphor feedback intensity.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>No Effects, RGB Effects, 3D Projection</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to turn on <I>RGB Effects</I>, <I>3D Projection</I> or turn off all RGB and 3D Projection effects.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Auto size scanlined RGB preset</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enabling this will auto size any scanlined RGB presets.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Manually select RGB preset</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to select and RGB preset to use.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Set 3D Projection properties</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to set the 3D Projection Angle and Fishbowl factor.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Force 16-bit emulation</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">It is recommended to leave this off, as it will break games that require 32-bit colour depths.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Use DirectX texture managment</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">It is recommended to leave this on.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Experimental (DirectX Graphics 9) Blitter Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable point/linear/cubic filtering</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable point, linear or cubic filtering.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Cubic filter quality</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Set the quality of the cubic filter.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable point/linear/cubic filtering</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable point, linear or cubic filtering.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable scanlines</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Will turn on a scanline effect.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Set scanline intensity</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Allows you to set the scanline intensity.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Single-pass, Multi-pass, High performance</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">See the <I>Experimental Blitter</I> section of <A HREF="sysreq.htm">System Requirements</A> for details.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">DirectX 9 Alt (DirectX Graphics 9) Blitter Menu</FONT></H3>
|
|
||||||
|
|
||||||
<TABLE BORDER="1" CELLPADDING="2" CELLSPACING="0" WIDTH="100%">
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Enable point/linear/ filtering</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable point or linear filtering.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>SoftFX Algorithm</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Choose a SoftFX filter to apply to the video.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Hardware vertex processing</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable hardware vertex processing.</FONT></TD></TR>
|
|
||||||
|
|
||||||
<TR><TD WIDTH="200" VALIGN="TOP"><FONT FACE="verdana" SIZE="1"><B>Motion blur</B></FONT></TD>
|
|
||||||
<TD VALIGN="TOP"><FONT FACE="verdana" SIZE="1">Enable motion blur.</FONT></TD></TR>
|
|
||||||
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,30 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>Creating Presets</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">Creating Input Presets</FONT></H3>
|
|
||||||
|
|
||||||
<P>You can create preset controls that can be listed in the <A HREF="dialog_inputs.htm">Inputs Dialog</A> for you to select.</P>
|
|
||||||
|
|
||||||
<P>To do this you need to create an .INI file in the <I>config\presets</I> folder. An example is included with FB Alpha in the zip file <I>preset-example.zip</I>.</P>
|
|
||||||
|
|
||||||
<P>In the .INI file it it is possible to use specific names such as <I>"P1 Low Punch"</I> or generic names such as <I>"P1 Fire 1"</I>. When a game is allocating inputs it will look for specific name first, and then the generic ones.</P>
|
|
||||||
|
|
||||||
<P>A good starting point can be take the .INI file for a game, copy it to the <I>config/presets</I> folder and rename it to what you want your preset to be called and then edit that file.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
|
@ -1,54 +0,0 @@
|
||||||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
|
|
||||||
<Title>System Requirements</Title>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
|
|
||||||
<FONT FACE="verdana" SIZE="2">
|
|
||||||
|
|
||||||
<TABLE BORDER="0" WIDTH="100%" CELLSPACING="0" CELLPADDING="6">
|
|
||||||
<TR>
|
|
||||||
<TD BGCOLOR="#757575" WIDTH="90"><IMG SRC="images/misc.bmp"></TD>
|
|
||||||
<TD BGCOLOR="#757575"><FONT COLOR="#FFFFFF" FACE="verdana" SIZE="4"><B>FB Alpha</B></FONT></TD>
|
|
||||||
</TR>
|
|
||||||
</TABLE>
|
|
||||||
|
|
||||||
<H3><FONT COLOR="#F98733">System Requirements</FONT></H3>
|
|
||||||
|
|
||||||
<H5><FONT COLOR="#F98733">Operating System</FONT></H5>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>If you are running Windows XP, then you will need to use the separately available Windows XP binary.</P>
|
|
||||||
|
|
||||||
<H5><FONT COLOR="#F98733">CPU & RAM</FONT></H5>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
<P>The minimum amount of RAM recommended is 192MB. Most people shouldn't have any problems with RAM these days.</P>
|
|
||||||
|
|
||||||
<H5><FONT COLOR="#F98733">Video</FONT></H5>
|
|
||||||
|
|
||||||
<P>15/16/24/32 BPP displays are supported.</P>
|
|
||||||
|
|
||||||
<P><B>Basic Blitter</B>: DirectDraw7 support is required. The Basic blitter will work with any videocard that supports the minimum requirements.</P>
|
|
||||||
|
|
||||||
<P><B>Enhanced Blitter</B>: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.</P>
|
|
||||||
|
|
||||||
<P><B>Experimental Blitter</B>: 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.</P>
|
|
||||||
|
|
||||||
<P><B>DirectX9 Alt Blitter</B>: Same as <I>Experimental Blitter</I> above.</P>
|
|
||||||
|
|
||||||
<H5><FONT COLOR="#F98733">Sound</FONT></H5>
|
|
||||||
|
|
||||||
<P>Any sound hardware supporting DirectSound3 should work. Most people should have no problems.</P>
|
|
||||||
|
|
||||||
<H5><FONT COLOR="#F98733">Input</FONT></H5>
|
|
||||||
|
|
||||||
<P>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.</P>
|
|
||||||
|
|
||||||
</FONT>
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
101
jan/makefile
101
jan/makefile
|
@ -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:
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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)
|
|
|
@ -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),$(<D))/$(<F:.c=.exe)
|
|
||||||
@$(subst $(srcdir),$(objdir),$(<D))/$(<F:.c=.exe) $(@:.o=.asm) \
|
|
||||||
$(@D)/a68k_tab.asm 00 $(ppro)
|
|
||||||
@echo Assembling A68K MC68000 core...
|
|
||||||
@$(AS) $(ASFLAGS) $(@:.o=.asm) -o $@
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Musashi
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kcpu.o: $(srcdir)cpu/m68k/m68kcpu.c $(objdir)dep/generated/m68kops.h $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kcpu.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(srcdir)cpu/m68k/m68kcpu.c -o $(objdir)cpu/m68k/m68kcpu.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kops.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kops.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kops.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kops.c -o $(objdir)cpu/m68k/m68kops.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kopac.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopac.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kopac.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopac.c -o $(objdir)cpu/m68k/m68kopac.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kopdm.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopdm.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kopdm.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopdm.c -o $(objdir)cpu/m68k/m68kopdm.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kopnz.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopnz.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kopnz.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopnz.c -o $(objdir)cpu/m68k/m68kopnz.o
|
|
||||||
|
|
||||||
$(objdir)dep/generated/m68kops.h: $(objdir)cpu/m68k/m68kmake.exe $(srcdir)cpu/m68k/m68k_in.c
|
|
||||||
$(objdir)/cpu/m68k/m68kmake $(objdir)dep/generated/ $(srcdir)cpu/m68k/m68k_in.c
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kmake.exe: $(srcdir)cpu/m68k/m68kmake.c
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kmake.c\)...
|
|
||||||
@$(CC) $(CFLAGS) $(srcdir)cpu/m68k/m68kmake.c -o $(objdir)cpu/m68k/m68kmake.exe
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Extra rules for generated header file cvt.h, needed by ctv.cpp
|
|
||||||
#
|
|
||||||
|
|
||||||
ctv.d ctv.o: $(ctv.h)
|
|
||||||
|
|
||||||
$(ctv.h): ctv_make.cpp
|
|
||||||
echo Generating $(srcdir)dep/generated/$(@F)...
|
|
||||||
$(CC) -mconsole $(CXXFLAGS) $(LDFLAGS) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(<F:.cpp=.exe)
|
|
||||||
obj\\$(COMPILENAME)\\burn\\drv\\capcom\\ctv_make.exe >$@
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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),$(<D))/$(<F:.cpp=.exe)
|
|
||||||
obj\\$(COMPILENAME)\\burn\\drv\\pgm\\pgm_sprite_create.exe >$@
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(MAKELEVEL),2)
|
|
||||||
ifdef DEPEND
|
|
||||||
|
|
||||||
include $(alldep)
|
|
||||||
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generic rule for resource files
|
|
||||||
#
|
|
||||||
|
|
||||||
%.o: %.rc
|
|
||||||
@echo Compiling resource file $(<F)...
|
|
||||||
ifdef BUILD_X64_EXE
|
|
||||||
@windres -F pe-x86-64 $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
|
||||||
else
|
|
||||||
@windres -F pe-i386 $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generic rules for C/C++ files
|
|
||||||
#
|
|
||||||
|
|
||||||
ifeq ($(MAKELEVEL),1)
|
|
||||||
|
|
||||||
%.o: %.cpp
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CXXFLAGS) -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CFLAGS) -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.o: %.asm
|
|
||||||
@echo Assembling $<...
|
|
||||||
@$(AS) $(ASFLAGS) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
%.o: %.asm
|
|
||||||
@echo Assembling $<...
|
|
||||||
@$(AS) $(ASFLAGS) $< -o $@
|
|
||||||
|
|
||||||
%.o:
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generate dependencies for C/C++ files
|
|
||||||
#
|
|
||||||
|
|
||||||
ifdef DEPEND
|
|
||||||
|
|
||||||
%.d: %.c
|
|
||||||
@echo Generating depend file for $<...
|
|
||||||
@$(CC) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CXXFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.d: %.cpp
|
|
||||||
@echo Generating depend file for $<...
|
|
||||||
@$(CC) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CXXFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.d: %.rc
|
|
||||||
@echo Generating depend file for $<...
|
|
||||||
@$(CC) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CXXFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Phony targets
|
|
||||||
#
|
|
||||||
|
|
||||||
init:
|
|
||||||
|
|
||||||
ifdef DEBUG
|
|
||||||
echo Making debug build...
|
|
||||||
else
|
|
||||||
@echo Making normal build...
|
|
||||||
endif
|
|
||||||
@echo
|
|
||||||
@mingw-mkdir -p $(foreach dir, $(alldir),$(objdir)$(dir))
|
|
||||||
@mingw-mkdir -p $(srcdir)dep/generated
|
|
||||||
|
|
||||||
cleandep:
|
|
||||||
@echo Removing depend files from $(objdir)...
|
|
||||||
-@for dir in $(alldir); do rm -f $(objdir)$$dir/*.d; done
|
|
||||||
|
|
||||||
touch:
|
|
||||||
@echo Marking all targets for $(NAME) as uptodate...
|
|
||||||
-@touch $(NAME).exe
|
|
||||||
-@touch -c -r $(NAME).exe $(srcdir)/dep/generated/*
|
|
||||||
-@for dir in $(alldir); do touch -c -r $(NAME).exe $(objdir)$$dir/*; done
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@echo Removing all files from $(objdir)...
|
|
||||||
-@rm -f -r $(objdir)
|
|
||||||
-@rm -f -r $(ctv.h)
|
|
||||||
|
|
||||||
ifdef PERL
|
|
||||||
@echo Removing all files generated with perl scripts...
|
|
||||||
-@rm -f -r $(app_gnuc.rc) $(driverlist)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Rule to force recompilation of any target that depends on it
|
|
||||||
#
|
|
||||||
|
|
||||||
FORCE:
|
|
|
@ -1,812 +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
|
|
||||||
#
|
|
||||||
|
|
||||||
ifdef GCC345
|
|
||||||
objdir = obj/34/$(COMPILENAME)/
|
|
||||||
endif
|
|
||||||
ifdef GCC452
|
|
||||||
objdir = obj/45/$(COMPILENAME)/
|
|
||||||
endif
|
|
||||||
ifdef GCC471
|
|
||||||
objdir = obj/47/$(COMPILENAME)/
|
|
||||||
endif
|
|
||||||
ifdef GCC510
|
|
||||||
objdir = obj/51/$(COMPILENAME)/
|
|
||||||
endif
|
|
||||||
|
|
||||||
srcdir = src/
|
|
||||||
|
|
||||||
include makefile.burn_rules
|
|
||||||
include makefile.burner_win32_rules
|
|
||||||
|
|
||||||
ifdef GCC345
|
|
||||||
incdir = $(foreach dir,$(alldir),-I$(srcdir)$(dir)) -I$(objdir)dep/generated -I$(srcdir)dep/mingw/include -I- -I$(srcdir)dep/mingw/include/directx9 -I$(srcdir)dep/mingw/include/xaudio2
|
|
||||||
endif
|
|
||||||
ifdef GCC452
|
|
||||||
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
|
|
||||||
endif
|
|
||||||
ifdef GCC471
|
|
||||||
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
|
|
||||||
endif
|
|
||||||
ifdef GCC510
|
|
||||||
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
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef UNICODE
|
|
||||||
# lib = -lunicows
|
|
||||||
endif
|
|
||||||
|
|
||||||
lib += -luser32 -lgdi32 -lcomdlg32 -lcomctl32 -lshell32 -lwinmm -lshlwapi -ladvapi32 -lsetupapi -lole32 -luuid -lwininet
|
|
||||||
|
|
||||||
ifdef INCLUDE_AVI_RECORDING
|
|
||||||
lib += -lvfw32
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
ifdef GCC345
|
|
||||||
CFLAGS = -pipe \
|
|
||||||
-std=gnu99 -march=$(CPUTYPE) -O1 \
|
|
||||||
-mno-cygwin -mwindows \
|
|
||||||
-fforce-mem -fforce-addr -finline-limit=1200 -fthread-jumps \
|
|
||||||
-freduce-all-givs -fmove-all-movables -fexpensive-optimizations \
|
|
||||||
-Wall -Wno-long-long -Wno-sign-compare -Wno-uninitialized -Wno-unused \
|
|
||||||
$(DEF) $(incdir)
|
|
||||||
|
|
||||||
CXXFLAGS = -pipe \
|
|
||||||
-march=$(CPUTYPE) -O1 \
|
|
||||||
-mno-cygwin -mwindows \
|
|
||||||
-fforce-mem -fforce-addr -finline-limit=1200 -fthread-jumps \
|
|
||||||
-freduce-all-givs -fmove-all-movables -fexpensive-optimizations \
|
|
||||||
-fcheck-new \
|
|
||||||
-Wall -W -pedantic -Wno-long-long \
|
|
||||||
-Wunknown-pragmas -Wundef -Wconversion -Wno-missing-braces \
|
|
||||||
-Wuninitialized -Wpointer-arith -Winline -Wno-multichar \
|
|
||||||
$(DEF) $(incdir)
|
|
||||||
endif
|
|
||||||
ifdef GCC452
|
|
||||||
CFLAGS = -pipe \
|
|
||||||
-std=gnu99 -march=$(CPUTYPE) -O1 \
|
|
||||||
-mno-cygwin -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 \
|
|
||||||
-march=$(CPUTYPE) -O1 \
|
|
||||||
-mno-cygwin -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-sequence-point \
|
|
||||||
$(DEF) $(incdir)
|
|
||||||
endif
|
|
||||||
ifdef GCC471
|
|
||||||
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
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef GCC510
|
|
||||||
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 -Wno-pedantic \
|
|
||||||
$(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 \
|
|
||||||
-Wno-pedantic \
|
|
||||||
$(DEF) $(incdir)
|
|
||||||
ifdef BUILD_X64_EXE
|
|
||||||
CFLAGS += -m64
|
|
||||||
CXXFLAGS += -m64
|
|
||||||
LDFLAGS += -m64
|
|
||||||
|
|
||||||
# allow nasty C code in i8051.cpp
|
|
||||||
CXXFLAGS += -fpermissive
|
|
||||||
else
|
|
||||||
CFLAGS += -m32
|
|
||||||
CXXFLAGS += -m32
|
|
||||||
LDFLAGS += -m32
|
|
||||||
endif
|
|
||||||
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
|
|
||||||
ifdef GCC345
|
|
||||||
CFLAGS += -mconsole
|
|
||||||
endif
|
|
||||||
ifdef GCC452
|
|
||||||
CFLAGS += -mconsole
|
|
||||||
endif
|
|
||||||
DEF := $(DEF) -DFBA_DEBUG
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef ROM_VERIFY
|
|
||||||
DEF := $(DEF) -DROM_VERIFY
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef INCLUDE_7Z_SUPPORT
|
|
||||||
DEF := $(DEF) -DINCLUDE_7Z_SUPPORT
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef INCLUDE_AVI_RECORDING
|
|
||||||
DEF := $(DEF) -DINCLUDE_AVI_RECORDING
|
|
||||||
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)
|
|
||||||
ifdef GCC345
|
|
||||||
@$(MAKE) -f makefile.mingw -s GCC345=1
|
|
||||||
endif
|
|
||||||
ifdef GCC452
|
|
||||||
@$(MAKE) -f makefile.mingw -s GCC452=1
|
|
||||||
endif
|
|
||||||
ifdef GCC471
|
|
||||||
@$(MAKE) -f makefile.mingw -s GCC471=1
|
|
||||||
endif
|
|
||||||
ifdef GCC510
|
|
||||||
@$(MAKE) -f makefile.mingw -s GCC510=1
|
|
||||||
endif
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
all: init $(autobj)
|
|
||||||
ifdef GCC345
|
|
||||||
@$(MAKE) -f makefile.mingw -s GCC345=1
|
|
||||||
endif
|
|
||||||
ifdef GCC452
|
|
||||||
@$(MAKE) -f makefile.mingw -s GCC452=1
|
|
||||||
endif
|
|
||||||
ifdef GCC471
|
|
||||||
@$(MAKE) -f makefile.mingw -s GCC471=1
|
|
||||||
endif
|
|
||||||
ifdef GCC510
|
|
||||||
@$(MAKE) -f makefile.mingw -s GCC510=1
|
|
||||||
endif
|
|
||||||
|
|
||||||
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
|
|
||||||
@$(objdir)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),$(<D))/$(<F:.c=.exe)
|
|
||||||
@$(subst $(srcdir),$(objdir),$(<D))/$(<F:.c=.exe) $(@:.o=.asm) \
|
|
||||||
$(@D)/a68k_tab.asm 00 $(ppro)
|
|
||||||
@echo Assembling A68K MC68000 core...
|
|
||||||
@$(AS) $(ASFLAGS) $(@:.o=.asm) -o $@
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Musashi
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kcpu.o: $(srcdir)cpu/m68k/m68kcpu.c $(objdir)dep/generated/m68kops.h $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kcpu.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(srcdir)cpu/m68k/m68kcpu.c -o $(objdir)cpu/m68k/m68kcpu.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kops.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kops.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kops.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kops.c -o $(objdir)cpu/m68k/m68kops.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kopac.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopac.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kopac.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopac.c -o $(objdir)cpu/m68k/m68kopac.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kopdm.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopdm.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kopdm.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopdm.c -o $(objdir)cpu/m68k/m68kopdm.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kopnz.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopnz.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kopnz.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kopnz.c -o $(objdir)cpu/m68k/m68kopnz.o
|
|
||||||
|
|
||||||
$(objdir)dep/generated/m68kops.h: $(objdir)cpu/m68k/m68kmake.exe $(srcdir)cpu/m68k/m68k_in.c
|
|
||||||
$(objdir)/cpu/m68k/m68kmake $(objdir)dep/generated/ $(srcdir)cpu/m68k/m68k_in.c
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kmake.exe: $(srcdir)cpu/m68k/m68kmake.c
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kmake.c\)...
|
|
||||||
@$(CC) $(CFLAGS) $(srcdir)cpu/m68k/m68kmake.c -o $(objdir)cpu/m68k/m68kmake.exe
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Extra rules for generated header file cvt.h, needed by ctv.cpp
|
|
||||||
#
|
|
||||||
|
|
||||||
ctv.d ctv.o: $(ctv.h)
|
|
||||||
|
|
||||||
$(ctv.h): ctv_make.cpp
|
|
||||||
@echo Generating $(srcdir)dep/generated/$(@F)...
|
|
||||||
@$(CC) -mconsole $(CXXFLAGS) $(LDFLAGS) $< \
|
|
||||||
-o $(subst $(srcdir),$(objdir),$(<D))/$(<F:.cpp=.exe)
|
|
||||||
@$(subst $(srcdir),$(objdir),$(<D))/$(<F:.cpp=.exe) >$@
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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),$(<D))/$(<F:.cpp=.exe)
|
|
||||||
@$(subst $(srcdir),$(objdir),$(<D))/$(<F:.cpp=.exe) >$@
|
|
||||||
|
|
||||||
|
|
||||||
ifeq ($(MAKELEVEL),2)
|
|
||||||
ifdef DEPEND
|
|
||||||
|
|
||||||
include $(alldep)
|
|
||||||
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generic rule for resource files
|
|
||||||
#
|
|
||||||
|
|
||||||
%.o: %.rc
|
|
||||||
@echo Compiling resource file $(<F)...
|
|
||||||
ifdef GCC345
|
|
||||||
@windres $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
|
||||||
endif
|
|
||||||
ifdef GCC452
|
|
||||||
@windres $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
|
||||||
endif
|
|
||||||
ifdef GCC471
|
|
||||||
ifdef BUILD_X64_EXE
|
|
||||||
@windres -F pe-x86-64 $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
|
||||||
else
|
|
||||||
@windres -F pe-i386 $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifdef GCC510
|
|
||||||
ifdef BUILD_X64_EXE
|
|
||||||
@windres -F pe-x86-64 $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
|
||||||
else
|
|
||||||
@windres -F pe-i386 $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generic rules for C/C++ files
|
|
||||||
#
|
|
||||||
|
|
||||||
ifeq ($(MAKELEVEL),1)
|
|
||||||
|
|
||||||
%.o: %.cpp
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CXXFLAGS) -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CFLAGS) -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.o: %.asm
|
|
||||||
@echo Assembling $<...
|
|
||||||
@$(AS) $(ASFLAGS) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
%.o: %.asm
|
|
||||||
@echo Assembling $<...
|
|
||||||
@$(AS) $(ASFLAGS) $< -o $@
|
|
||||||
|
|
||||||
%.o:
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generate dependencies for C/C++ files
|
|
||||||
#
|
|
||||||
|
|
||||||
ifdef DEPEND
|
|
||||||
|
|
||||||
%.d: %.c
|
|
||||||
@echo Generating depend file for $<...
|
|
||||||
@$(CC) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CXXFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.d: %.cpp
|
|
||||||
@echo Generating depend file for $<...
|
|
||||||
@$(CC) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CXXFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.d: %.rc
|
|
||||||
@echo Generating depend file for $<...
|
|
||||||
@$(CC) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CXXFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Phony targets
|
|
||||||
#
|
|
||||||
|
|
||||||
init:
|
|
||||||
|
|
||||||
ifdef DEBUG
|
|
||||||
@echo Making debug build...
|
|
||||||
else
|
|
||||||
@echo Making normal build...
|
|
||||||
endif
|
|
||||||
@echo
|
|
||||||
@mkdir -p $(foreach dir, $(alldir),$(objdir)$(dir))
|
|
||||||
@mkdir -p $(srcdir)dep/generated
|
|
||||||
|
|
||||||
cleandep:
|
|
||||||
@echo Removing depend files from $(objdir)...
|
|
||||||
-@for dir in $(alldir); do rm -f $(objdir)$$dir/*.d; done
|
|
||||||
|
|
||||||
touch:
|
|
||||||
@echo Marking all targets for $(NAME) as uptodate...
|
|
||||||
-@touch $(NAME).exe
|
|
||||||
-@touch -c -r $(NAME).exe $(srcdir)/dep/generated/*
|
|
||||||
-@for dir in $(alldir); do touch -c -r $(NAME).exe $(objdir)$$dir/*; done
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@echo Removing all files from $(objdir)...
|
|
||||||
-@rm -f -r $(objdir)
|
|
||||||
-@rm -f -r $(ctv.h)
|
|
||||||
|
|
||||||
ifdef PERL
|
|
||||||
@echo Removing all files generated with perl scripts...
|
|
||||||
-@rm -f -r $(app_gnuc.rc) $(driverlist)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Rule to force recompilation of any target that depends on it
|
|
||||||
#
|
|
||||||
|
|
||||||
FORCE:
|
|
716
jan/makefile.sdl
716
jan/makefile.sdl
|
@ -1,716 +0,0 @@
|
||||||
# Makefile for FBA, for use with GNU make (Cygwin/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.
|
|
||||||
|
|
||||||
#
|
|
||||||
# Flags. Uncomment any of these declarations to enable their function.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Specify the name of the executable file, without ".exe"
|
|
||||||
NAME = fbasdl
|
|
||||||
EXE = $(NAME)
|
|
||||||
INSTALLDIR = /usr/local/games/fba/
|
|
||||||
ROMDIR = /usr/local/share/roms/
|
|
||||||
BINDIR = /usr/local/bin/
|
|
||||||
FILES = fbasdl.ini gamelist.txt fb.png
|
|
||||||
|
|
||||||
# Check for changes in header files
|
|
||||||
DEPEND = 1
|
|
||||||
|
|
||||||
#
|
|
||||||
# Declare variables
|
|
||||||
#
|
|
||||||
|
|
||||||
ifndef CPUTYPE
|
|
||||||
CPUTYPE = i686
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef BUILD_X86_ASM
|
|
||||||
MMX = 1
|
|
||||||
else
|
|
||||||
MMX = 0
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef DEBUG
|
|
||||||
NAME := $(NAME)d
|
|
||||||
else
|
|
||||||
NAME := $(NAME)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CPUTYPE),i686)
|
|
||||||
ppro = ppro
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(CPUTYPE),i686)
|
|
||||||
NAME := $(NAME)$(CPUTYPE)
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Specify paths/files
|
|
||||||
#
|
|
||||||
|
|
||||||
objdir = obj/GNU_SDL/$(NAME)/
|
|
||||||
srcdir = src/
|
|
||||||
|
|
||||||
alldir = burn \
|
|
||||||
burn/devices \
|
|
||||||
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/neogeo \
|
|
||||||
burn/drv/pce \
|
|
||||||
burn/drv/pgm \
|
|
||||||
burn/drv/pre90s \
|
|
||||||
burn/drv/psikyo \
|
|
||||||
burn/drv/pst90s \
|
|
||||||
burn/drv/sega \
|
|
||||||
burn/drv/sg1000 \
|
|
||||||
burn/drv/sms \
|
|
||||||
burn/drv/snes \
|
|
||||||
burn/drv/taito \
|
|
||||||
burn/drv/toaplan \
|
|
||||||
burn/snd \
|
|
||||||
burner \
|
|
||||||
burner/sdl \
|
|
||||||
intf \
|
|
||||||
intf/audio \
|
|
||||||
intf/audio/sdl \
|
|
||||||
intf/cd \
|
|
||||||
intf/cd/sdl \
|
|
||||||
intf/input \
|
|
||||||
intf/input/sdl \
|
|
||||||
intf/video \
|
|
||||||
intf/video/sdl \
|
|
||||||
intf/video/scalers \
|
|
||||||
cpu \
|
|
||||||
cpu/a68k \
|
|
||||||
cpu/arm \
|
|
||||||
cpu/arm7 \
|
|
||||||
cpu/c68k \
|
|
||||||
cpu/cz80 \
|
|
||||||
cpu/h6280 \
|
|
||||||
cpu/hd6309 \
|
|
||||||
cpu/i8039 \
|
|
||||||
cpu/konami \
|
|
||||||
cpu/m68k \
|
|
||||||
cpu/m6502 \
|
|
||||||
cpu/m6800 \
|
|
||||||
cpu/m6805 \
|
|
||||||
cpu/m6809 \
|
|
||||||
cpu/nec \
|
|
||||||
cpu/pic16c5x \
|
|
||||||
cpu/s2650 \
|
|
||||||
cpu/sh2 \
|
|
||||||
cpu/tlcs90 \
|
|
||||||
cpu/z80 \
|
|
||||||
dep/kaillera/client \
|
|
||||||
dep/libs/lib7z \
|
|
||||||
dep/libs/libpng \
|
|
||||||
dep/libs/zlib \
|
|
||||||
dep/mingw/include \
|
|
||||||
dep/scripts \
|
|
||||||
dep/vc/include \
|
|
||||||
dep/generated
|
|
||||||
|
|
||||||
incdir = $(foreach dir,$(alldir),-I$(srcdir)$(dir)) -I$(objdir)dep/generated -I/local/include -I/include/SDL
|
|
||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
|
||||||
lib = -static -lstdc++ -lpng -lmingw32 -Wl,-Bdynamic -lSDL -lz -lopengl32 -lglu32
|
|
||||||
else
|
|
||||||
lib = -lstdc++ -lSDL -lGL -lGLU -lz
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
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_cbuster.o d_cninja.o d_darkseal.o d_dassault.o d_dec0.o d_dec8.o \
|
|
||||||
d_dietgogo.o d_funkyjet.o d_karnov.o d_lemmings.o d_pktgaldx.o d_rohga.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_battlnts.o d_bishi.o d_bladestl.o d_blockhl.o d_bottom9.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_ironhors.o \
|
|
||||||
d_jailbrek.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_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_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_bankp.o d_dotrikun.o d_hangon.o d_outrun.o d_suprloco.o d_suprnova.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_lkage.o \
|
|
||||||
d_minivdr.o d_othunder.o d_retofinv.o d_slapshot.o d_superchs.o d_taitob.o d_taitof2.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_zerowing.o \
|
|
||||||
\
|
|
||||||
d_4enraya.o d_1942.o d_1943.o d_alinvade.o d_alpha68k.o d_ambush.o d_arabian.o d_armedf.o d_atetris.o d_aztarac.o d_baraduke.o \
|
|
||||||
d_bionicc.o d_blktiger.o d_blockout.o d_blueprnt.o d_bombjack.o d_capbowl.o d_commando.o d_cybertnk.o d_ddragon.o d_djboy.o d_dkong.o \
|
|
||||||
d_dynduke.o d_epos.o d_exedexes.o d_funkybee.o d_galaga.o d_gauntlet.o d_ginganin.o d_gng.o d_gunsmoke.o d_higemaru.o \
|
|
||||||
d_ikki.o d_invaders.o d_jack.o d_kangaroo.o d_kncljoe.o d_kyugo.o d_ladybug.o d_lwings.o d_lastduel.o d_mario.o d_markham.o \
|
|
||||||
d_marineb.o d_megasys1.o d_meijinsn.o d_mitchell.o d_mole.o d_momoko.o d_mrdo.o d_mrflea.o d_mustache.o d_mystston.o d_ninjakd2.o \
|
|
||||||
d_pacland.o d_pacman.o d_pac2650.o d_pkunwar.o d_prehisle.o d_punchout.o d_psychic5.o d_quizo.o d_rallyx.o d_renegade.o d_rpunch.o \
|
|
||||||
d_route16.o d_scregg.o d_sf.o d_sidearms.o d_skyarmy.o d_skyfox.o d_skykid.o d_snk68.o d_solomon.o d_sonson.o d_srumbler.o d_suna8.o d_tail2nose.o \
|
|
||||||
d_tbowl.o d_tecmo.o d_terracre.o d_tigeroad.o d_timelimt.o d_toki.o d_tsamurai.o d_vulgus.o d_wallc.o d_wc90.o d_wc90b.o d_wwfsstar.o \
|
|
||||||
d_xain.o \
|
|
||||||
\
|
|
||||||
d_1945kiii.o d_aerofgt.o d_airbustr.o d_aquarium.o d_blmbycar.o d_bloodbro.o d_crospang.o d_crshrace.o d_dcon.o d_deniam.o \
|
|
||||||
d_ddragon3.o d_diverboy.o d_dooyong.o d_drgnmst.o d_drtomy.o d_egghunt.o d_esd16.o d_f1gp.o d_funybubl.o \
|
|
||||||
d_fuukifg3.o d_gaelco.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_mcatadv.o d_midas.o d_mugsmash.o d_mwarr.o d_news.o d_nmg5.o d_nmk16.o d_ohmygod.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_suna16.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_xxmissio.o d_yunsun16.o d_zerozone.o \
|
|
||||||
\
|
|
||||||
d_parent.o \
|
|
||||||
\
|
|
||||||
d_megadrive.o \
|
|
||||||
\
|
|
||||||
d_pce.o \
|
|
||||||
\
|
|
||||||
d_sms.o \
|
|
||||||
\
|
|
||||||
d_snes.o \
|
|
||||||
\
|
|
||||||
d_coleco.o \
|
|
||||||
\
|
|
||||||
d_sg1000.o
|
|
||||||
|
|
||||||
depobj += \
|
|
||||||
bzip.o config.o drv.o inpdipsw.o main.o media.o run.o stated.o \
|
|
||||||
stringset.o ips_manager.o support_paths.o scrn.o \
|
|
||||||
\
|
|
||||||
ioapi.o unzip.o conc.o cong.o dat.o gamc.o gami.o image.o \
|
|
||||||
misc.o sshot.o state.o statec.o zipfn.o \
|
|
||||||
\
|
|
||||||
aud_sdl.o inp_sdl.o vid_sdlfx.o vid_sdlopengl.o \
|
|
||||||
\
|
|
||||||
aud_dsp.o aud_interface.o inp_interface.o interface.o \
|
|
||||||
lowpass2.o vid_interface.o vid_softfx.o vid_support.o \
|
|
||||||
\
|
|
||||||
cd_interface.o cd_isowav.o cdsound.o neocdlist.o \
|
|
||||||
\
|
|
||||||
2xpm.o 2xsai.o ddt3x.o epx.o hq2xs.o hq2xs_16.o xbr.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 \
|
|
||||||
\
|
|
||||||
$(drvobj) \
|
|
||||||
\
|
|
||||||
burn.o burn_gun.o burn_led.o burn_memory.o burn_sound.o burn_sound_c.o cheat.o debug_track.o hiscore.o load.o \
|
|
||||||
tiles_generic.o timer.o vector.o \
|
|
||||||
\
|
|
||||||
8255ppi.o 8257dma.o eeprom.o nmk004.o kaneko_tmap.o pandora.o seibusnd.o sknsspr.o slapstic.o t5182.o timekpr.o tms34061.o \
|
|
||||||
v3021.o vdc.o tms9928a.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 ics2115.o iremga20.o \
|
|
||||||
k005289.o k007232.o k051649.o k053260.o k054539.o msm5205.o msm5232.o msm6295.o namco_snd.o nes_apu.o rf5c68.o saa1099.o \
|
|
||||||
samples.o segapcm.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 konami.o m6502.o m6800.o m6805.o m6809.o nec.o pic16c5x.o s2650.o sh2.o tlcs90.o \
|
|
||||||
v25.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 \
|
|
||||||
\
|
|
||||||
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 sys16_fd1094.o sys16_gfx.o sys16_run.o \
|
|
||||||
\
|
|
||||||
cchip.o pc080sn.o pc090oj.o taito.o taito_ic.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
|
|
||||||
|
|
||||||
autobj += $(depobj)
|
|
||||||
|
|
||||||
ifdef BUILD_X86_ASM
|
|
||||||
autobj += burn_sound_a.o eagle_fm.o 2xsaimmx.o hq2x32.o hq3x32.o hq4x32.o superscale.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
autdep = $(depobj:.o=.d)
|
|
||||||
|
|
||||||
#app_windres.rc = $(srcdir)dep/generated/app_windres.rc
|
|
||||||
#license.rc = $(srcdir)dep/generated/license.rc
|
|
||||||
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)))))))
|
|
||||||
|
|
||||||
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
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
HOSTCC = gcc
|
|
||||||
HOSTCXX = g++
|
|
||||||
CC = gcc
|
|
||||||
CXX = g++
|
|
||||||
LD = $(CXX)
|
|
||||||
AS = nasm
|
|
||||||
|
|
||||||
HOSTCFLAGS = $(incdir)
|
|
||||||
CFLAGS = -O2 -fomit-frame-pointer -Wno-write-strings -DLSB_FIRST -DFASTCALL -DBUILD_M68K -DINCLUDE_LIB_PNGH
|
|
||||||
CXXFLAGS = -O2 -fomit-frame-pointer -Wno-write-strings -DLSB_FIRST -DFASTCALL -DBUILD_M68K -DINCLUDE_LIB_PNGH
|
|
||||||
DEF := -DCPUTYPE=$(CPUTYPE) -DUSE_SPEEDHACKS -DBUILD_SDL
|
|
||||||
|
|
||||||
CFLAGS += -U__cdecl -U__fastcall -D__cdecl="" -D__fastcall=""
|
|
||||||
CXXFLAGS += -U__cdecl -U__fastcall -D__cdecl="" -D__fastcall=""
|
|
||||||
|
|
||||||
ifdef SPECIALBUILD
|
|
||||||
DEF := $(DEF) -DSPECIALBUILD=$(SPECIALBUILD)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef DEBUG
|
|
||||||
DEF := $(DEF) -D_DEBUG
|
|
||||||
CFLAGS += -g
|
|
||||||
CXXFLAGS += -g
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef BUILD_X86_ASM
|
|
||||||
DEF := $(DEF) -DBUILD_X86_ASM
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef MMX
|
|
||||||
DEF += -DMMX
|
|
||||||
endif
|
|
||||||
|
|
||||||
DEF := $(DEF) -DFILENAME=$(NAME)
|
|
||||||
|
|
||||||
ifdef BUILD_X86_ASM
|
|
||||||
CFLAGS += -mmmx
|
|
||||||
CXXFLAGS += -mmmx
|
|
||||||
endif
|
|
||||||
|
|
||||||
CFLAGS += $(DEF) $(incdir)
|
|
||||||
CXXFLAGS += $(DEF) $(incdir)
|
|
||||||
ifndef DEBUG
|
|
||||||
LDFLAGS += -s
|
|
||||||
endif
|
|
||||||
ASFLAGS = -O1
|
|
||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
|
||||||
CFLAGS_CONSOLE = -mno-cygwin -mconsole -pipe -Wall -W $(DEF) $(incdir)
|
|
||||||
ASFLAGS += -f coff
|
|
||||||
else
|
|
||||||
ASFLAGS += -f elf
|
|
||||||
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.sdl
|
|
||||||
else
|
|
||||||
|
|
||||||
all: init $(autobj)
|
|
||||||
@$(MAKE) -f makefile.sdl
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
|
|
||||||
all: $(NAME)
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Rule for linking the executable
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
ifeq ($(MAKELEVEL),2)
|
|
||||||
|
|
||||||
$(NAME): $(allobj)
|
|
||||||
@echo
|
|
||||||
@echo Linking executable $(NAME)...
|
|
||||||
@$(LD) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(lib)
|
|
||||||
|
|
||||||
ifdef DEBUG
|
|
||||||
|
|
||||||
# Don't compress when making a debug build
|
|
||||||
|
|
||||||
else
|
|
||||||
ifdef COMPRESS
|
|
||||||
@upx --best $@
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generate the gamelist
|
|
||||||
#
|
|
||||||
|
|
||||||
burn.o burn.d: driverlist.h
|
|
||||||
|
|
||||||
$(driverlist.h): $(drvobj) $(srcdir)dep/scripts/gamelist.pl
|
|
||||||
ifdef PERL
|
|
||||||
@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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Fix the .rc file
|
|
||||||
#
|
|
||||||
|
|
||||||
resource.o resource.d: $(app_windres.rc) version.rc version.h
|
|
||||||
|
|
||||||
$(license.rc): $(srcdir)license.txt $(srcdir)dep/scripts/license2rtf.pl $(srcdir)dep/scripts/license2rc.pl
|
|
||||||
|
|
||||||
ifdef PERL
|
|
||||||
@perl $(srcdir)dep/scripts/license2rtf.pl $< -o $(srcdir)dep/generated/$(@F:.rc=.rtf)
|
|
||||||
@perl $(srcdir)dep/scripts/license2rc.pl $(srcdir)dep/generated/$(@F:.rc=.rtf) -o $@
|
|
||||||
else
|
|
||||||
ifeq ($(MAKELEVEL),2)
|
|
||||||
@echo
|
|
||||||
@echo Warning: Perl is not available on this system.
|
|
||||||
@echo $@ cannot be updated or created!
|
|
||||||
@echo
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(app_windres.rc): app.rc $(license.rc) $(srcdir)dep/scripts/fixrc.pl $(srcdir)burner/resource/fba.ico $(srcdir)burner/resource/about.bmp $(srcdir)burner/resource/preview.bmp $(srcdir)burner/resource/misc.bmp
|
|
||||||
|
|
||||||
ifdef PERL
|
|
||||||
@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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Compile Musashi 68000 cores
|
|
||||||
#
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kcpu.o: $(srcdir)cpu/m68k/m68kcpu.c $(objdir)dep/generated/m68kops.h $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kcpu.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(srcdir)cpu/m68k/m68kcpu.c -o $(objdir)cpu/m68k/m68kcpu.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kops.o: $(objdir)cpu/m68k/m68kmake $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kops.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kops.c\)...
|
|
||||||
@$(CC) $(CFLAGS) -c $(objdir)dep/generated/m68kops.c -o $(objdir)cpu/m68k/m68kops.o
|
|
||||||
|
|
||||||
$(objdir)dep/generated/m68kops.h: $(objdir)cpu/m68k/m68kmake $(srcdir)cpu/m68k/m68k_in.c
|
|
||||||
$(objdir)/cpu/m68k/m68kmake $(objdir)dep/generated/ $(srcdir)cpu/m68k/m68k_in.c
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kmake: $(srcdir)cpu/m68k/m68kmake.c
|
|
||||||
@echo Compiling Musashi MC680x0 core \(m68kmake.c\)...
|
|
||||||
@$(HOSTCC) $(HOSTCFLAGS) $(srcdir)cpu/m68k/m68kmake.c -o $(objdir)cpu/m68k/m68kmake
|
|
||||||
|
|
||||||
#
|
|
||||||
# Extra rules for generated header file cvt.h, needed by ctv.cpp
|
|
||||||
#
|
|
||||||
|
|
||||||
ctv.d ctv.o: $(ctv.h)
|
|
||||||
|
|
||||||
$(ctv.h): ctv_make.cpp
|
|
||||||
@echo Generating $(srcdir)dep/generated/$(@F)...
|
|
||||||
@$(HOSTCXX) $(LDFLAGS) $< -o $(objdir)dep/generated/ctv_make
|
|
||||||
@$(objdir)dep/generated/ctv_make >$@
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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 $(<F)...
|
|
||||||
@windres $(DEF) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(foreach dir,$(alldir),--include-dir $(srcdir)$(dir))
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generic rules for C/C++ files
|
|
||||||
#
|
|
||||||
|
|
||||||
ifeq ($(MAKELEVEL),1)
|
|
||||||
|
|
||||||
ifdef FORCE_UPDATE
|
|
||||||
resource.o: FORCE
|
|
||||||
about.o: FORCE
|
|
||||||
endif
|
|
||||||
|
|
||||||
%.o: %.cpp
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CXX) $(CXXFLAGS) -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CFLAGS) -Wno-unused -Wno-conversion -Wno-missing-prototypes -c $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.o: %.asm
|
|
||||||
@echo Assembling $<...
|
|
||||||
@$(AS) $(ASFLAGS) $< -o $(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CFLAGS) -Wno-unused -Wno-conversion -Wno-missing-prototypes -c $< -o $@
|
|
||||||
|
|
||||||
%.o: %.asm
|
|
||||||
@echo Assembling $<...
|
|
||||||
@$(AS) $(ASFLAGS) $< -o $@
|
|
||||||
|
|
||||||
%.o:
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CXXFLAGS) -c $< -o $@
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generate dependencies for C/C++ files
|
|
||||||
#
|
|
||||||
|
|
||||||
ifdef DEPEND
|
|
||||||
|
|
||||||
%.d: %.c
|
|
||||||
@echo Generating depend file for $<...
|
|
||||||
@$(CC) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.d: %.cpp
|
|
||||||
@echo Generating depend file for $<...
|
|
||||||
@$(CXX) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CXXFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.d: %.rc
|
|
||||||
@echo Generating depend file for $<...
|
|
||||||
@$(CC) -MM -MT "$(subst $(srcdir),$(objdir),$(<D))/$(*F).o $(subst $(srcdir),$(objdir),$(<D))/$(@F)" -x c++ $(CFLAGS) $< >$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Phony targets
|
|
||||||
#
|
|
||||||
|
|
||||||
init:
|
|
||||||
|
|
||||||
ifdef DEBUG
|
|
||||||
@echo Making debug build...
|
|
||||||
else
|
|
||||||
@echo Making normal build...
|
|
||||||
endif
|
|
||||||
@echo
|
|
||||||
@mkdir -p $(foreach dir, $(alldir),$(objdir)$(dir))
|
|
||||||
@mkdir -p $(srcdir)dep/generated
|
|
||||||
|
|
||||||
cleandep:
|
|
||||||
@echo Removing depend files from $(objdir)...
|
|
||||||
@for dir in $(alldir); do rm -f $(objdir)$$dir/*.d; done
|
|
||||||
|
|
||||||
touch:
|
|
||||||
@echo Marking all targets for $(NAME) as uptodate...
|
|
||||||
@for dir in $(alldir); do touch -c $(objdir)$$dir/*; done
|
|
||||||
@do touch -c $(srcdir)/generated/*
|
|
||||||
@touch $(NAME).exe
|
|
||||||
install:
|
|
||||||
mkdir -p $(INSTALLDIR)
|
|
||||||
mkdir -p $(ROMDIR)
|
|
||||||
cp $(EXE) $(INSTALLDIR)
|
|
||||||
cp $(FILES) $(INSTALLDIR)
|
|
||||||
ln -fs $(INSTALLDIR)$(EXE) $(BINDIR)$(EXE)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@echo Removing all files from $(objdir)...
|
|
||||||
@rm -f -r $(objdir)
|
|
||||||
@rm -f -r $(ctv.h)
|
|
||||||
|
|
||||||
ifdef PERL
|
|
||||||
@echo Removing all files generated with perl scripts...
|
|
||||||
@rm -f -r $(app_windres.rc) $(driverlist)
|
|
||||||
endif
|
|
||||||
@echo Removing executable file...
|
|
||||||
@rm -f $(EXE)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Rule to force recompilation of any target that depends on it
|
|
||||||
#
|
|
||||||
|
|
||||||
FORCE:
|
|
|
@ -1,138 +0,0 @@
|
||||||
alldir = burn burn/devices burn/sound burn/drivers burn/drivers/capcom burn/drivers/cave burn/drivers/cps3 \
|
|
||||||
burn/drivers/dataeast burn/drivers/galaxian burn/drivers/irem burn/drivers/konami burn/drivers/megadrive \
|
|
||||||
burn/drivers/misc_post90s burn/drivers/misc_pre90s burn/drivers/neogeo burn/drivers/pgm burn/drivers/psikyo \
|
|
||||||
burn/drivers/sega burn/drivers/snes burn/drivers/taito burn/drivers/toaplan burner burner/platform/sdl cpu cpu/a68k \
|
|
||||||
cpu/arm cpu/arm7 cpu/h6280 cpu/hd6309 cpu/i8039 cpu/konami cpu/m68k cpu/m6502 cpu/m6800 cpu/m6805 cpu/m6809 cpu/nec \
|
|
||||||
cpu/s2650 cpu/sh2 cpu/z80 depend/kaillera/client depend/libs/libpng depend/libs/zlib interface interface/video \
|
|
||||||
interface/video/scalers interface/video/sdl interface/audio interface/audio/sdl interface/input \
|
|
||||||
interface/input/sdl interface/cd interface/cd/sdl interface/perfcount \
|
|
||||||
depend/generated
|
|
||||||
|
|
||||||
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_cbuster.o d_cninja.o d_darkseal.o d_dassault.o d_dec0.o d_dec8.o \
|
|
||||||
d_dietgogo.o d_funkyjet.o d_karnov.o d_lemmings.o d_rohga.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_vigilant.o \
|
|
||||||
\
|
|
||||||
d_88games.o d_ajax.o d_aliens.o d_blockhl.o d_bottom9.o d_contra.o d_crimfght.o d_gberet.o d_gbusters.o d_gradius3.o \
|
|
||||||
d_gyruss.o d_hcastle.o d_hexion.o d_kontest.o d_mainevt.o d_mogura.o d_parodius.o d_pooyan.o d_rollerg.o d_scotrsht.o \
|
|
||||||
d_simpsons.o d_spy.o d_surpratk.o d_thunderx.o d_tmnt.o d_twin16.o d_ultraman.o d_vendetta.o d_xmen.o \
|
|
||||||
\
|
|
||||||
d_neogeo.o \
|
|
||||||
\
|
|
||||||
d_pgm.o \
|
|
||||||
\
|
|
||||||
d_psikyo.o d_psikyo4.o d_psikyosh.o \
|
|
||||||
\
|
|
||||||
d_angelkds.o d_bankp.o d_dotrikun.o d_hangon.o d_outrun.o d_suprloco.o d_sys1.o d_sys16a.o d_sys16b.o d_sys18.o \
|
|
||||||
d_xbrd.o d_ybrd.o \
|
|
||||||
\
|
|
||||||
d_arkanoid.o d_ashnojoe.o d_asuka.o d_bublbobl.o d_chaknpop.o d_darius2.o d_flstory.o d_lkage.o d_minivdr.o \
|
|
||||||
d_othunder.o d_retofinv.o d_slapshot.o d_superchs.o d_taitob.o d_taitof2.o d_taitomisc.o d_taitox.o d_taitoz.o \
|
|
||||||
d_tnzs.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_snowbro2.o \
|
|
||||||
d_tekipaki.o d_tigerheli.o d_truxton.o d_truxton2.o d_vfive.o d_vimana.o d_zerowing.o \
|
|
||||||
\
|
|
||||||
d_4enraya.o d_1942.o d_1943.o d_ambush.o d_arabian.o d_armedf.o d_atetris.o d_aztarac.o d_baraduke.o d_bionicc.o \
|
|
||||||
d_blktiger.o d_blockout.o d_blueprnt.o d_bombjack.o d_commando.o d_cybertnk.o d_ddragon.o d_dkong.o d_dynduke.o d_epos.o \
|
|
||||||
d_exedexes.o d_funkybee.o d_galaga.o d_gauntlet.o d_ginganin.o d_gng.o d_gunsmoke.o d_higemaru.o d_ikki.o d_jack.o \
|
|
||||||
d_kangaroo.o d_kyugo.o d_ladybug.o d_lwings.o d_madgear.o d_markham.o d_marineb.o d_meijinsn.o d_mitchell.o d_mole.o \
|
|
||||||
d_momoko.o d_mrdo.o d_mrflea.o d_mystston.o d_pacland.o d_pacman.o d_pac2650.o d_pkunwar.o d_prehisle.o d_quizo.o \
|
|
||||||
d_rallyx.o d_renegade.o d_rpunch.o d_route16.o d_scregg.o d_sf.o d_skyfox.o d_skykid.o d_snk68.o d_solomon.o \
|
|
||||||
d_sonson.o d_srumbler.o d_tecmo.o d_terracre.o d_tigeroad.o d_toki.o d_vulgus.o d_wallc.o d_wc90.o d_wc90b.o \
|
|
||||||
d_wwfsstar.o \
|
|
||||||
\
|
|
||||||
d_1945kiii.o d_aerofgt.o d_airbustr.o d_aquarium.o d_blmbycar.o d_bloodbro.o d_crospang.o d_crshrace.o d_dcon.o \
|
|
||||||
d_deniam.o d_ddragon3.o d_diverboy.o d_drtomy.o d_egghunt.o d_esd16.o d_f1gp.o d_fstarfrc.o d_funybubl.o d_fuukifg3.o \
|
|
||||||
d_gaelco.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_mcatadv.o d_midas.o d_mugsmash.o d_news.o d_nmg5.o d_nmk16.o d_ohmygod.o d_pass.o d_pirates.o d_pktgaldx.o \
|
|
||||||
d_powerins.o d_pushman.o d_raiden.o d_seta.o d_seta2.o d_shadfrce.o d_silkroad.o d_silvmin.o d_speedspn.o d_suna16.o \
|
|
||||||
d_taotaido.o d_tecmosys.o d_tumbleb.o d_unico.o d_vmetal.o d_welltris.o d_wwfwfest.o d_xorworld.o d_yunsun16.o \
|
|
||||||
d_zerozone.o \
|
|
||||||
\
|
|
||||||
d_parent.o \
|
|
||||||
\
|
|
||||||
d_megadrive.o \
|
|
||||||
\
|
|
||||||
d_snes.o
|
|
||||||
|
|
||||||
depobj := main.o drv.o load.o misc.o \
|
|
||||||
vid_sdlfx.o vid_softfx.o vid_interface.o vid_support.o config.o \
|
|
||||||
state.o stated.o statec.o run.o inpdipsw.o gami.o gamc.o \
|
|
||||||
cheat.o vid_sdlopengl.o \
|
|
||||||
inp_interface.o inp_sdl.o\
|
|
||||||
bzip.o unzip.o zipfn.o cong.o conc.o\
|
|
||||||
interface.o sshot.o dat.o aud_sdl.o aud_interface.o aud_dsp.o \
|
|
||||||
lowpass2.o \
|
|
||||||
\
|
|
||||||
$(drvobj) \
|
|
||||||
\
|
|
||||||
burn.o burn_gun.o burn_led.o burn_memory.o burn_sound.o burn_sound_c.o cheat.o debug_track.o hiscore.o load.o \
|
|
||||||
tiles_generic.o timer.o vector.o \
|
|
||||||
\
|
|
||||||
8255ppi.o eeprom.o pandora.o seibusnd.o slapstic.o timekpr.o v3021.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 dac.o es5506.o es8712.o fm.o fmopl.o ics2115.o iremga20.o k007232.o \
|
|
||||||
k051649.o k053260.o k054539.o msm5205.o msm6295.o namco_snd.o rf5c68.o saa1099.o samples.o segapcm.o sn76496.o \
|
|
||||||
upd7759.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 s2650_intf.o z80_intf.o \
|
|
||||||
\
|
|
||||||
arm.o arm7.o h6280.o hd6309.o i8039.o konami.o m6502.o m6800.o m6805.o m6809.o nec.o s2650.o sh2.o v25.o z80.o \
|
|
||||||
z80daisy.o \
|
|
||||||
\
|
|
||||||
2xpm.o 2xsai.o epx.o hq2xs.o hq2xs_16.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 kabuki.o ps.o ps_m.o ps_z.o qs.o qs_c.o qs_z.o \
|
|
||||||
\
|
|
||||||
cps3run.o cps3snd.o \
|
|
||||||
\
|
|
||||||
deco16ic.o \
|
|
||||||
\
|
|
||||||
gal_gfx.o gal_run.o gal_sound.o gal_stars.o \
|
|
||||||
\
|
|
||||||
irem_cpu.o \
|
|
||||||
\
|
|
||||||
k051316.o k051733.o k051960.o k052109.o k053245.o k053247.o k053251.o k053936.o k054000.o konamiic.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_prot.o pgm_run.o \
|
|
||||||
\
|
|
||||||
psikyo_palette.o psikyo_sprite.o psikyo_tile.o psikyosh_render.o \
|
|
||||||
\
|
|
||||||
fd1089.o fd1094.o genesis_vid.o mc8123.o sys16_fd1094.o sys16_gfx.o sys16_run.o \
|
|
||||||
\
|
|
||||||
cchip.o pc080sn.o pc090oj.o taito.o taito_ic.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 \
|
|
||||||
\
|
|
||||||
nmk004.o \
|
|
||||||
\
|
|
||||||
megadrive.o \
|
|
||||||
\
|
|
||||||
snes_65816.o snes_io.o snes_main.o snes_mem.o snes_ppu.o snes_spc700.o
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
autobj += $(depobj)
|
|
||||||
|
|
617
jan/makefile.vc
617
jan/makefile.vc
|
@ -1,617 +0,0 @@
|
||||||
# Makefile for FBA, for use with GNU make & Microsoft Visual C++ 2012
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
MAKEOS = cygwin
|
|
||||||
ifeq ($(MAKEOS),)
|
|
||||||
MAKEOS = $(OSTYPE)
|
|
||||||
endif
|
|
||||||
|
|
||||||
unexport
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
ifdef BUILD_VS_XP_TARGET
|
|
||||||
NAME := $(NAME)xp
|
|
||||||
endif
|
|
||||||
|
|
||||||
cpulevel = 6
|
|
||||||
ifeq ($(CPUTYPE),i586)
|
|
||||||
cpulevel = 5
|
|
||||||
endif
|
|
||||||
ifeq ($(CPUTYPE),pentium)
|
|
||||||
cpulevel = 5
|
|
||||||
endif
|
|
||||||
ifeq ($(CPUTYPE),k6)
|
|
||||||
cpulevel = 5
|
|
||||||
endif
|
|
||||||
ifeq ($(CPUTYPE),i786)
|
|
||||||
cpulevel = 7
|
|
||||||
endif
|
|
||||||
ifeq ($(CPUTYPE),pentium4)
|
|
||||||
cpulevel = 7
|
|
||||||
endif
|
|
||||||
ifeq ($(CPUTYPE),athlon)
|
|
||||||
cpulevel = 7
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(cpulevel),6)
|
|
||||||
ppro = ppro
|
|
||||||
else
|
|
||||||
NAME := $(NAME)$(CPUTYPE)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Specify paths/files
|
|
||||||
#
|
|
||||||
|
|
||||||
objdir = obj/VC/$(COMPILENAME)/
|
|
||||||
srcdir = src/
|
|
||||||
|
|
||||||
include makefile.burn_rules
|
|
||||||
include makefile.burner_win32_rules
|
|
||||||
|
|
||||||
incdir = $(foreach dir,$(alldir),/I$(srcdir)$(dir)) /I$(objdir)dep/generated
|
|
||||||
|
|
||||||
ifdef UNICODE
|
|
||||||
# lib = unicows.lib
|
|
||||||
endif
|
|
||||||
|
|
||||||
lib += user32.lib gdi32.lib comdlg32.lib comctl32.lib shell32.lib winmm.lib ole32.lib shlwapi.lib advapi32.lib setupapi.lib wininet.lib
|
|
||||||
|
|
||||||
ifdef INCLUDE_AVI_RECORDING
|
|
||||||
lib += vfw32.lib
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef BUILD_X86_ASM
|
|
||||||
autobj += hq3xs.o hq_shared32.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef BUILD_A68K
|
|
||||||
a68k.o = $(objdir)cpu/a68k/a68k.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
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 $(objdir)burner/win32/resource.res \
|
|
||||||
$(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)))))))
|
|
||||||
|
|
||||||
ifdef BUILD_A68K
|
|
||||||
allobj += $(a68k.o)
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Specify compiler/linker/assembler
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
CC = cl
|
|
||||||
CXX = cl
|
|
||||||
LD = link
|
|
||||||
AS = nasm
|
|
||||||
|
|
||||||
incdir += /Isrc\dep\VC\include
|
|
||||||
|
|
||||||
ifndef BUILD_X64_EXE
|
|
||||||
LDFLAGS = /NOLOGO /INCREMENTAL:NO /MACHINE:X86 /LIBPATH:src\VC\lib /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcd.lib # /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:libcp.lib /NODEFAULTLIB:libcpd.lib /NODEFAULTLIB:libcpmt.lib /NODEFAULTLIB:libcpmtd.lib
|
|
||||||
else
|
|
||||||
LDFLAGS = /NOLOGO /INCREMENTAL:NO /MACHINE:X64 /LIBPATH:src\VC\lib /NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcd.lib # /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:libcp.lib /NODEFAULTLIB:libcpd.lib /NODEFAULTLIB:libcpmt.lib /NODEFAULTLIB:libcpmtd.lib
|
|
||||||
endif
|
|
||||||
|
|
||||||
ASFLAGS = -O1 -f coff -w-orphan-labels
|
|
||||||
|
|
||||||
DEF = /DBUILD_WIN32 /DUSE_SPEEDHACKS /DFILENAME=$(NAME) /DMMX=$(MMX) /DZLIB_WINAPI /DDECL_SPEC=__cdecl
|
|
||||||
|
|
||||||
# For lib7z
|
|
||||||
ifdef INCLUDE_7Z_SUPPORT
|
|
||||||
DEF := $(DEF) /D_7ZIP_PPMD_SUPPPORT
|
|
||||||
endif
|
|
||||||
|
|
||||||
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 INCLUDE_AVI_RECORDING
|
|
||||||
DEF := $(DEF) /DINCLUDE_AVI_RECORDING
|
|
||||||
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 BUILD_VS_XP_TARGET
|
|
||||||
DEF := $(DEF) /DBUILD_VS_XP_TARGET
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef USE_SEGOE
|
|
||||||
DEF := $(DEF) /DUSE_SEGOE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef SYMBOL
|
|
||||||
CFLAGS = /nologo /Od /GF /GS /RTC1 /Zi /Zc:forScope /MTd /EHsc /Fp$(objdir)/dep/generated/ # /Wall
|
|
||||||
ASFLAGS += -g
|
|
||||||
LDFLAGS += /DEBUG
|
|
||||||
DEF := $(DEF) /D_DEBUG
|
|
||||||
|
|
||||||
ifdef PROFILE
|
|
||||||
CFLAGS += /Oy
|
|
||||||
else
|
|
||||||
CFLAGS += /Oy-
|
|
||||||
endif
|
|
||||||
|
|
||||||
else
|
|
||||||
CFLAGS = /nologo /w /Oi /Ot /Oy /Ob2 /GF /Gs /Gy /GL /Zc:forScope /MT /EHsc
|
|
||||||
LDFLAGS += /LTCG:STATUS
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef BUILD_VS_XP_TARGET
|
|
||||||
CFLAGS += /D_USING_V110_SDK71_
|
|
||||||
LDFLAGS += /SUBSYSTEM:WINDOWS,5.01
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Change the priority of some warnings so they are only shown at warning level 4. They are:
|
|
||||||
# lvl4 C4127: conditional expression is constant
|
|
||||||
# lvl4 C4201: nonstandard extension used : nameless struct/union
|
|
||||||
# lvl1 C4244: 'variable' : conversion from 'type' to 'type', possible loss of data
|
|
||||||
# 3 'conversion' conversion from 'type1' to 'type2', possible loss of data
|
|
||||||
# lvl4 C4505: 'function' : unreferenced local function has been removed
|
|
||||||
# lvl4 C4514: 'function' : unreferenced inline function has been removed
|
|
||||||
# lvl4 C4611: interaction between 'function' and C++ object destruction is non-portable
|
|
||||||
# lvl4 C4710: 'function' : function not inlined
|
|
||||||
# lvl1 C4799: No EMMS at end of function 'function'
|
|
||||||
# lvl3 C4800: 'type' : forcing value to bool 'true' or 'false' (performance warning)
|
|
||||||
CFLAGS += /w44201 /w44127 /w44244 /w44505 /w44514 /w44611 /w44710 /w44799 /w44800 $(DEF) $(incdir)
|
|
||||||
CXXFLAGS = $(CFLAGS)
|
|
||||||
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# 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 %.res $(foreach dir,$(alldir),$(srcdir)$(dir)/ )
|
|
||||||
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Rules
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
.PHONY: all init cleandep touch clean
|
|
||||||
|
|
||||||
ifeq ($(MAKELEVEL),1)
|
|
||||||
|
|
||||||
all: init $(autobj) resource.res
|
|
||||||
$(MAKE) -f makefile.vc
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
all: $(NAME).exe
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# Rule for linking the executable
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
ifeq ($(MAKELEVEL),2)
|
|
||||||
|
|
||||||
$(NAME).exe: $(allobj)
|
|
||||||
@echo
|
|
||||||
@echo Linking executable $(NAME).exe...
|
|
||||||
$(LD) $(LDFLAGS) /OUT:$@ $^ $(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.res resource.d: app.rc version.rc version.h $(build_details.h) $(license.rtf)
|
|
||||||
|
|
||||||
$(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
|
|
||||||
|
|
||||||
resource.rc: app.rc $(license.rc) $(srcdir)burner/resource/fba.ico $(srcdir)burner/resource/about.bmp $(srcdir)burner/resource/splash.bmp $(srcdir)burner/resource/misc.bmp
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generate some info on the build details
|
|
||||||
#
|
|
||||||
|
|
||||||
about.o about.d systeminfo.o systeminfo.d: $(build_details.h)
|
|
||||||
|
|
||||||
$(build_details.h): $(srcdir)dep/scripts/build_details.cpp
|
|
||||||
$(CC) $(CFLAGS) $< /Fo$(objdir)dep/generated/ /Fe$(objdir)dep/generated/build_details.exe
|
|
||||||
$(objdir)dep/generated/build_details.exe >$@
|
|
||||||
|
|
||||||
#
|
|
||||||
# Compile 68000 cores
|
|
||||||
#
|
|
||||||
|
|
||||||
# A68K
|
|
||||||
|
|
||||||
ifdef BUILD_A68K
|
|
||||||
$(a68k.o): fba_make68k.c
|
|
||||||
echo "Compiling A68K MC68000 core... "
|
|
||||||
$(CC) $(CFLAGS) -DWIN32 $< /Fo$(subst $(srcdir),$(objdir),$(<D))/ /Fe$(subst $(srcdir),$(objdir),$(<D))/$(<F:.c=.exe) /link $(LDFLAGS) /SUBSYSTEM:CONSOLE
|
|
||||||
$(subst $(srcdir),$(objdir),$(<D))/$(<F:.c=.exe) $(@:.o=.asm) $(@D)/a68k_tab.asm 00 $(ppro)
|
|
||||||
@echo Assembling A68K MC68000 core...
|
|
||||||
$(AS) $(ASFLAGS) $(@:.o=.asm) -o $@
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Musashi
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kcpu.o: $(srcdir)cpu/m68k/m68kcpu.c $(objdir)dep/generated/m68kops.h $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo "Compiling Musashi MC680x0 core... "
|
|
||||||
$(CC) $(CFLAGS) /DINLINE="__inline static" /c $(srcdir)cpu/m68k/m68kcpu.c /Fo$(objdir)cpu/m68k/m68kcpu.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kops.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kops.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo "Compiling Musashi MC680x0 core... "
|
|
||||||
$(CC) $(CFLAGS) /DINLINE="__inline static" /c $(objdir)dep/generated/m68kops.c /Fo$(objdir)cpu/m68k/m68kops.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kopac.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopac.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo "Compiling Musashi MC680x0 core... "
|
|
||||||
$(CC) $(CFLAGS) /DINLINE="__inline static" /c $(objdir)dep/generated/m68kopac.c /Fo$(objdir)cpu/m68k/m68kopac.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kopdm.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopdm.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo "Compiling Musashi MC680x0 core... "
|
|
||||||
$(CC) $(CFLAGS) /DINLINE="__inline static" /c $(objdir)dep/generated/m68kopdm.c /Fo$(objdir)cpu/m68k/m68kopdm.o
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kopnz.o: $(objdir)cpu/m68k/m68kmake.exe $(objdir)dep/generated/m68kops.h $(objdir)dep/generated/m68kopnz.c $(srcdir)cpu/m68k/m68k.h $(srcdir)cpu/m68k/m68kconf.h
|
|
||||||
@echo "Compiling Musashi MC680x0 core... "
|
|
||||||
$(CC) $(CFLAGS) /DINLINE="__inline static" /c $(objdir)dep/generated/m68kopnz.c /Fo$(objdir)cpu/m68k/m68kopnz.o
|
|
||||||
|
|
||||||
$(objdir)dep/generated/m68kops.h: $(objdir)cpu/m68k/m68kmake.exe $(srcdir)cpu/m68k/m68k_in.c
|
|
||||||
$(objdir)/cpu/m68k/m68kmake $(objdir)dep/generated/ $(srcdir)cpu/m68k/m68k_in.c
|
|
||||||
|
|
||||||
$(objdir)cpu/m68k/m68kmake.exe: $(srcdir)cpu/m68k/m68kmake.c
|
|
||||||
@echo "Compiling Musashi MC680x0 core... "
|
|
||||||
$(CC) $(CFLAGS) /DINLINE="__inline static" $(srcdir)cpu/m68k/m68kmake.c /Fo$(objdir)cpu/m68k/ /Fe$(objdir)cpu/m68k/m68kmake.exe /link $(LDFLAGS) /SUBSYSTEM:CONSOLE
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Extra rules for generated header file cvt.h, needed by ctv.cpp
|
|
||||||
#
|
|
||||||
|
|
||||||
ctv.o: $(ctv.h)
|
|
||||||
|
|
||||||
$(ctv.h): ctv_make.cpp
|
|
||||||
@echo Generating... $(srcdir)dep/generated/$(@F)
|
|
||||||
$(CC) $(CXXFLAGS) $< /Fo$(subst $(srcdir),$(objdir),$(<D))/ /Fe$(subst $(srcdir),$(objdir),$(<D))/$(<F:.cpp=.exe) /link $(LDFLAGS) /SUBSYSTEM:CONSOLE
|
|
||||||
$(subst $(srcdir),$(objdir),$(<D))/$(<F:.cpp=.exe) >$@
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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),$(<D))/ /Fe$(subst $(srcdir),$(objdir),$(<D))/$(<F:.cpp=.exe) /link $(LDFLAGS) /SUBSYSTEM:CONSOLE
|
|
||||||
$(subst $(srcdir),$(objdir),$(<D))/$(<F:.cpp=.exe) >$@
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generic rule for resource files
|
|
||||||
#
|
|
||||||
|
|
||||||
%.res: %.rc
|
|
||||||
@echo Compiling resource file... $(<F)
|
|
||||||
rc $(DEF) /n /Fo $(subst $(srcdir),$(objdir),$(<D))/$(@F) $(incdir) $<
|
|
||||||
|
|
||||||
#
|
|
||||||
# Generic rules for C/C++ files
|
|
||||||
#
|
|
||||||
|
|
||||||
ifeq ($(MAKELEVEL),1)
|
|
||||||
|
|
||||||
%.o: %.cpp
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CXXFLAGS) /c $< /Fo$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CFLAGS) /c /Dinline=__inline $< /Fo$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
%.o: %.asm
|
|
||||||
@echo Assembling $<...
|
|
||||||
@$(AS) $(ASFLAGS) $< -o$(subst $(srcdir),$(objdir),$(<D))/$(@F)
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
%.o: %.c
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CFLAGS) /c /Dinline=__inline $< /Fo $@
|
|
||||||
|
|
||||||
%.o: %.asm
|
|
||||||
@echo Assembling $<...
|
|
||||||
@$(AS) $(ASFLAGS) $< -o $@
|
|
||||||
|
|
||||||
%.o:
|
|
||||||
@echo Compiling $<...
|
|
||||||
@$(CC) $(CXXFLAGS) /c $< /Fo $@
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# Phony targets
|
|
||||||
#
|
|
||||||
|
|
||||||
init:
|
|
||||||
|
|
||||||
ifdef DEBUG
|
|
||||||
@echo Making debug build...
|
|
||||||
else
|
|
||||||
@echo Making normal build...
|
|
||||||
endif
|
|
||||||
@echo
|
|
||||||
ifeq ($(MAKEOS),cygwin)
|
|
||||||
@mkdir -p $(foreach dir, $(alldir),$(objdir)$(dir))
|
|
||||||
@mkdir -p $(srcdir)dep/generated
|
|
||||||
else
|
|
||||||
@echo nt
|
|
||||||
@mkdir $(foreach dir, $(alldir),$(objdir)$(dir))
|
|
||||||
@mkdir $(srcdir)dep/generated
|
|
||||||
endif
|
|
||||||
|
|
||||||
touch:
|
|
||||||
@echo Marking all targets for $(NAME) as uptodate...
|
|
||||||
-@touch $(NAME).exe
|
|
||||||
-@touch -c -r $(NAME).exe $(srcdir)/dep/generated/*
|
|
||||||
-@for dir in $(alldir); do touch -c -r $(NAME).exe $(objdir)$$dir/*; done
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@echo Removing all files from $(objdir)...
|
|
||||||
ifeq ($(MAKEOS),cygwin)
|
|
||||||
-@rm -f -r $(objdir)
|
|
||||||
-@rm -f -r $(ctv.h)
|
|
||||||
else
|
|
||||||
-@del -f -s $(objdir)
|
|
||||||
-@del -f -s $(ctv.h)
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef PERL
|
|
||||||
@echo Removing all files generated with perl scripts...
|
|
||||||
ifeq ($(MAKEOS),cygwin)
|
|
||||||
-@rm -f -r $(driverlist)
|
|
||||||
else
|
|
||||||
-@del -f -s $(driverlist)
|
|
||||||
endif
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Rule to force recompilation of any target that depends on it
|
|
||||||
#
|
|
||||||
|
|
||||||
FORCE:
|
|
Binary file not shown.
|
@ -1,169 +0,0 @@
|
||||||
CYCLONE_ENABLED := 0
|
|
||||||
HAVE_GRIFFIN := 0
|
|
||||||
|
|
||||||
LOCAL_PATH := $(call my-dir)
|
|
||||||
|
|
||||||
include $(CLEAR_VARS)
|
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH),arm)
|
|
||||||
LOCAL_CXXFLAGS += -DANDROID_ARM
|
|
||||||
LOCAL_ARM_MODE := arm
|
|
||||||
LOCAL_C_FLAGS += -fuse-ld=gold
|
|
||||||
LOCAL_CPP_FLAGS+= -fuse-ld=gold
|
|
||||||
LOCAL_LDLIBS := -fuse-ld=gold
|
|
||||||
ifeq ($(CYCLONE_ENABLED), 1)
|
|
||||||
CYCLONE_SRC := $(FBA_CPU_DIR)/cyclone/cyclone.s
|
|
||||||
CYCLONE_DEFINES := -DBUILD_C68K
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH),x86)
|
|
||||||
LOCAL_CXXFLAGS += -DANDROID_X86
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH),mips)
|
|
||||||
LOCAL_CXXFLAGS += -DANDROID_MIPS -D__mips__ -D__MIPSEL__
|
|
||||||
endif
|
|
||||||
|
|
||||||
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 ($(HAVE_GRIFFIN), 1)
|
|
||||||
GRIFFIN_CXX_SRC_FILES := $(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_CXX_SRC_FILES += $(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_SRC_DIRS := $(FBA_BURNER_DIR) $(FBA_BURN_DIRS) $(FBA_CPU_DIRS) $(FBA_BURNER_DIRS)
|
|
||||||
|
|
||||||
LOCAL_MODULE := libretro
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LOCAL_SRC_FILES := $(GRIFFIN_CXX_SRC_FILES) $(CYCLONE_SRC) $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.cpp))) $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.c))) $(LIBRETRO_DIR)/libretro.cpp $(LIBRETRO_DIR)/neocdlist.cpp
|
|
||||||
|
|
||||||
LOCAL_CXXFLAGS += -O3 -fno-stack-protector -DUSE_SPEEDHACKS -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DLSB_FIRST -D__LIBRETRO__ -Wno-write-strings -DUSE_FILE32API -DANDROID -DFRONTEND_SUPPORTS_RGB565 $(CYCLONE_DEFINES)
|
|
||||||
LOCAL_CFLAGS = -O3 -fno-stack-protector -DUSE_SPEEDHACKS -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DLSB_FIRST -D__LIBRETRO__ -Wno-write-strings -DUSE_FILE32API -DANDROID -DFRONTEND_SUPPORTS_RGB565 $(CYCLONE_DEFINES)
|
|
||||||
|
|
||||||
LOCAL_C_INCLUDES = $(FBA_BURNER_DIR)/win32 \
|
|
||||||
$(LIBRETRO_DIR) \
|
|
||||||
$(LIBRETRO_DIR)/tchar \
|
|
||||||
$(FBA_BURN_DIR) \
|
|
||||||
$(MAIN_FBA_DIR)/cpu \
|
|
||||||
$(FBA_BURN_DIR)/snd \
|
|
||||||
$(FBA_BURN_DIR)/devices \
|
|
||||||
$(FBA_INTERFACE_DIR) \
|
|
||||||
$(FBA_INTERFACE_DIR)/input \
|
|
||||||
$(FBA_INTERFACE_DIR)/cd \
|
|
||||||
$(FBA_BURNER_DIR) \
|
|
||||||
$(FBA_CPU_DIR) \
|
|
||||||
$(FBA_CPU_DIR)/i8039 \
|
|
||||||
$(FBA_LIB_DIR)/zlib \
|
|
||||||
$(FBA_BURN_DIR)/drv/capcom \
|
|
||||||
$(FBA_BURN_DIR)/drv/dataeast \
|
|
||||||
$(FBA_BURN_DIR)/drv/cave \
|
|
||||||
$(FBA_BURN_DIR)/drv/neogeo \
|
|
||||||
$(FBA_BURN_DIR)/drv/psikyo \
|
|
||||||
$(FBA_BURN_DIR)/drv/sega \
|
|
||||||
$(FBA_BURN_DIR)/drv/toaplan \
|
|
||||||
$(FBA_BURN_DIR)/drv/taito \
|
|
||||||
$(FBA_GENERATED_DIR) \
|
|
||||||
$(FBA_LIB_DIR)
|
|
||||||
|
|
||||||
LOCAL_LDLIBS += -lz
|
|
||||||
|
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
|
|
@ -1,2 +0,0 @@
|
||||||
APP_STL := stlport_static
|
|
||||||
APP_ABI := all
|
|
|
@ -1,973 +0,0 @@
|
||||||
#===============================================================================
|
|
||||||
# FINAL BURN ALPHA QT
|
|
||||||
#===============================================================================
|
|
||||||
QT += widgets multimedia opengl
|
|
||||||
TARGET = fbaqt
|
|
||||||
|
|
||||||
linux:QT += x11extras
|
|
||||||
|
|
||||||
#===============================================================================
|
|
||||||
# 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
|
|
||||||
DRV_MIDWAY = 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
|
|
||||||
DEFINES += FBA_DEBUG
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
# Dynamic recompilers
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
DRC_MIPS3_X64 = true
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
# 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/sega \
|
|
||||||
$$SRC/burn/drv/taito \
|
|
||||||
$$SRC/burn/drv/toaplan \
|
|
||||||
$$SRC/burner \
|
|
||||||
$$SRC/burner/qt \
|
|
||||||
$$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 \
|
|
||||||
$$SRC/dep/libs/libpng \
|
|
||||||
$$SRC/dep/libs/zlib \
|
|
||||||
|
|
||||||
DEFINES += BUILD_QT \
|
|
||||||
LSB_FIRST \
|
|
||||||
"__fastcall=" \
|
|
||||||
"_fastcall=" \
|
|
||||||
WITH_QTCREATOR \
|
|
||||||
INCLUDE_LIB_PNGH
|
|
||||||
|
|
||||||
linux: DEFINES += BUILD_QT_LINUX
|
|
||||||
macx: DEFINES += BUILD_QT_MACX
|
|
||||||
|
|
||||||
# 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 -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 \
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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 <limits.h>
|
|
||||||
|
|
||||||
// For Visual Studio 6 in C++ mode and for many Visual Studio versions when
|
|
||||||
// compiling for ARM we should wrap <wchar.h> 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 <wchar.h>
|
|
||||||
#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 <wchar.h>
|
|
||||||
#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 <stdint.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -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 <windows.h>
|
|
||||||
/* 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 */
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
|
@ -1,868 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
|
||||||
<ProjectConfiguration Include="CodeAnalysis|Xbox 360">
|
|
||||||
<Configuration>CodeAnalysis</Configuration>
|
|
||||||
<Platform>Xbox 360</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Debug|Xbox 360">
|
|
||||||
<Configuration>Debug</Configuration>
|
|
||||||
<Platform>Xbox 360</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Profile|Xbox 360">
|
|
||||||
<Configuration>Profile</Configuration>
|
|
||||||
<Platform>Xbox 360</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Profile_FastCap|Xbox 360">
|
|
||||||
<Configuration>Profile_FastCap</Configuration>
|
|
||||||
<Platform>Xbox 360</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release|Xbox 360">
|
|
||||||
<Configuration>Release</Configuration>
|
|
||||||
<Platform>Xbox 360</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
<ProjectConfiguration Include="Release_LTCG|Xbox 360">
|
|
||||||
<Configuration>Release_LTCG</Configuration>
|
|
||||||
<Platform>Xbox 360</Platform>
|
|
||||||
</ProjectConfiguration>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ClCompile Include="..\..\src\burner\gamc.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burner\gami.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burner\libretro\libretro.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burner\libretro\neocdlist.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burner\state.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burner\statec.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burner\zipfn.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\burn.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\burn_gun.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\burn_led.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\burn_memory.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\burn_sound.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\burn_sound_c.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\cheat.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\debug_track.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\devices\8255ppi.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\devices\8257dma.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\devices\eeprom.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\devices\pandora.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\devices\seibusnd.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\devices\sknsspr.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\devices\slapstic.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\devices\timekpr.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\devices\v3021.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\devices\vdc.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cps.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cps2_crpt.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cpsr.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cpsrd.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cpst.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cps_config.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cps_draw.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cps_mem.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cps_obj.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cps_pal.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cps_run.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cps_rw.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\cps_scr.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\ctv.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\ctv_make.cpp">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\d_cps1.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\d_cps2.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\fcrash_snd.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\kabuki.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\ps.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\ps_m.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\ps_z.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\qs.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\qs_c.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\qs_z.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\capcom\sf2mdt_snd.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\cave.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\cave_palette.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\cave_sprite.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\cave_tile.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_dodonpachi.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_donpachi.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_esprade.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_feversos.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_gaia.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_guwange.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_hotdogst.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_korokoro.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_mazinger.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_metmqstr.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_pwrinst2.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_sailormn.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_tjumpman.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cave\d_uopoko.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cps3\cps3run.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cps3\cps3snd.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\cps3\d_cps3.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\deco16ic.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_actfancr.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_backfire.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_boogwing.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_cbuster.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_cninja.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_darkseal.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_dassault.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_dec0.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_dec8.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_dietgogo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_funkyjet.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_karnov.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_lemmings.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_pktgaldx.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_rohga.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_sidepckt.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_simpl156.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_supbtime.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_tumblep.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\dataeast\d_vaportra.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\galaxian\d_galaxian.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\galaxian\gal_gfx.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\galaxian\gal_run.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\galaxian\gal_sound.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\galaxian\gal_stars.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\irem\d_m62.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\irem\d_m63.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\irem\d_m72.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\irem\d_m90.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\irem\d_m92.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\irem\d_vigilant.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\irem\irem_cpu.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_88games.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_ajax.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_aliens.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_blockhl.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_bottom9.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_contra.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_crimfght.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_gberet.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_gbusters.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_gradius3.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_gyruss.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_hcastle.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_hexion.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_kontest.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_mainevt.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_mogura.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_parodius.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_pooyan.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_rollerg.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_scotrsht.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_simpsons.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_spy.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_surpratk.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_thunderx.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_tmnt.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_twin16.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_ultraman.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_vendetta.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\d_xmen.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\k051316.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\k051733.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\k051960.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\k052109.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\k053245.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\k053247.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\k053251.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\k053936.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\k054000.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\konami\konamiic.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\megadrive\d_megadrive.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\megadrive\megadrive.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\neogeo\d_neogeo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\neogeo\neogeo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\neogeo\neo_decrypt.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\neogeo\neo_palette.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\neogeo\neo_run.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\neogeo\neo_sprite.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\neogeo\neo_text.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\neogeo\neo_upd4990a.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pce\d_pce.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pce\pce.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pgm\d_pgm.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pgm\pgm_crypt.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pgm\pgm_draw.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pgm\pgm_prot.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pgm\pgm_run.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pgm\pgm_sprite_create.cpp">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_1942.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_1943.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_4enraya.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_ambush.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_arabian.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_armedf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_atetris.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_aztarac.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_baraduke.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_bionicc.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_blktiger.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_blockout.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_blueprnt.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_bombjack.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_commando.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_cybertnk.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_ddragon.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_dkong.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_dynduke.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_epos.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_exedexes.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_funkybee.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_galaga.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_gauntlet.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_ginganin.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_gng.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_gunsmoke.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_higemaru.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_ikki.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_jack.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_kangaroo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_kyugo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_ladybug.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_lwings.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_madgear.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_marineb.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_markham.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_meijinsn.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_mitchell.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_mole.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_momoko.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_mrdo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_mrflea.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_mystston.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_pac2650.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_pacland.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_pacman.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_pkunwar.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_prehisle.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_quizo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_rallyx.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_renegade.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_route16.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_rpunch.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_scregg.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_sf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_skyfox.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_skykid.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_snk68.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_solomon.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_sonson.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_srumbler.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_tecmo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_terracre.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_tigeroad.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_toki.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_vulgus.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_wallc.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_wc90.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_wc90b.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pre90s\d_wwfsstar.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\psikyo\d_psikyo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\psikyo\d_psikyo4.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\psikyo\d_psikyosh.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\psikyo\psikyosh_render.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\psikyo\psikyo_palette.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\psikyo\psikyo_sprite.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\psikyo\psikyo_tile.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_1945kiii.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_aerofgt.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_airbustr.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_aquarium.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_blmbycar.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_bloodbro.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_crospang.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_crshrace.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_dcon.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_ddragon3.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_deniam.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_diverboy.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_drtomy.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_egghunt.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_esd16.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_f1gp.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_fstarfrc.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_funybubl.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_fuukifg3.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_gaelco.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_gaiden.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_galpanic.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_galspnbl.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_gotcha.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_gumbo.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_hyperpac.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_jchan.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_kaneko16.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_lordgun.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_mcatadv.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_midas.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_mugsmash.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_news.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_nmg5.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_nmk16.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_ohmygod.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_pass.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_pirates.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_powerins.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_pushman.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_raiden.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_seta.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_seta2.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_shadfrce.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_silkroad.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_silvmil.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_speedspn.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_suna16.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_suprnova.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_taotaido.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_tecmosys.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_tumbleb.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_unico.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_vmetal.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_welltris.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_wwfwfest.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_xorworld.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_yunsun16.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\d_zerozone.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\pst90s\nmk004.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_angelkds.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_bankp.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_dotrikun.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_hangon.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_outrun.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_suprloco.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_sys1.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_sys16a.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_sys16b.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_sys18.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_xbrd.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\d_ybrd.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\fd1089.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\fd1094.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\genesis_vid.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\mc8123.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\sys16_fd1094.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\sys16_gfx.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\sega\sys16_run.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\snes\snes_io.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\snes\snes_main.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\snes\snes_ppu.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\snes\snes_spc700.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\cchip.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_arkanoid.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_ashnojoe.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_asuka.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_bublbobl.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_chaknpop.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_darius2.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_flstory.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_lkage.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_minivdr.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_othunder.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_retofinv.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_slapshot.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_superchs.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_taitob.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_taitof2.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_taitomisc.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_taitox.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_taitoz.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\d_tnzs.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\pc080sn.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\pc090oj.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\taito.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\taito_ic.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\taito_m68705.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0100scn.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0110pcr.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0140syt.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0150rod.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0180vcu.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0220ioc.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0280grd.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0360pri.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0480scp.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0510nio.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tc0640fio.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\taito\tnzs_prot.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_batrider.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_batsugun.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_battleg.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_bbakraid.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_demonwld.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_dogyuun.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_fixeight.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_ghox.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_hellfire.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_kbash.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_kbash2.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_mahoudai.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_outzone.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_pipibibs.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_rallybik.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_samesame.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_shippumd.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_snowbro2.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_tekipaki.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_tigerheli.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_truxton.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_truxton2.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_vfive.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_vimana.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\d_zerowing.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\toaplan.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\toaplan1.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\toa_bcu2.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\toa_extratext.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\toa_gp9001.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\drv\toaplan\toa_palette.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\hiscore.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\load.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\ay8910.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\burn_y8950.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\burn_ym2151.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\burn_ym2203.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\burn_ym2413.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\burn_ym2608.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\burn_ym2610.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\burn_ym2612.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\burn_ym3526.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\burn_ym3812.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\burn_ymf278b.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\c6280.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\dac.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\es5506.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\es8712.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\flt_rc.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\fm.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\fmopl.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\ics2115.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\iremga20.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\k007232.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\k051649.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\k053260.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\k054539.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\msm5205.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\msm6295.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\namco_snd.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\rf5c68.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\saa1099.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\samples.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\segapcm.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\sn76496.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\upd7759.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\x1010.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\ym2151.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\ym2413.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\ymdeltat.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\ymf278b.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\burn\snd\ymz280b.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\tiles_generic.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\timer.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\burn\vector.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\arm7\arm7.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\arm7\arm7core.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\arm7\arm7exec.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\arm7_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\arm\arm.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\arm_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\h6280\h6280.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\h6280\tblh6280.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\h6280_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\hd6309\6309ops.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\hd6309\6309tbl.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\hd6309\hd6309.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\hd6309_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\i8039\i8039.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\konami\konami.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\konami\konamops.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\konami\konamtbl.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\konami_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6502\m6502.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6502\t6502.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6502\t65c02.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6502\t65sc02.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6502\tdeco16.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6502\tn2a03.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6502_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\m68000_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6800\6800ops.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6800\6800tbl.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6800\m6800.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6800_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6805\6805ops.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6805\m6805.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6805_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6809\6809ops.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6809\6809tbl.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6809\m6809.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\m6809_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\m68k\m68kcpu.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m68k\m68kdasm.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m68k\m68kmake.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m68k\m68kopac.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m68k\m68kopdm.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m68k\m68kopnz.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m68k\m68kops.c">
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">CompileAsC</CompileAs>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\m68k\m68k_in.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\nec\nec.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\nec\necinstr.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\nec\v25.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\nec\v25instr.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\nec\v25sfr.c">
|
|
||||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">true</ExcludedFromBuild>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="..\..\src\cpu\nec_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\s2650\s2650.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\s2650_intf.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\sh2\sh2.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\z80\z80.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\z80\z80daisy.cpp" />
|
|
||||||
<ClCompile Include="..\..\src\cpu\z80_intf.cpp" />
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup Label="Globals">
|
|
||||||
<ProjectGuid>{00AAF92F-A249-4DF2-AE24-0C5427DB319E}</ProjectGuid>
|
|
||||||
<Keyword>Xbox360Proj</Keyword>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'" Label="Configuration">
|
|
||||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
|
||||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
||||||
<CharacterSet>MultiByte</CharacterSet>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
||||||
<ImportGroup Label="ExtensionSettings">
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">
|
|
||||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
||||||
</ImportGroup>
|
|
||||||
<PropertyGroup Label="UserMacros" />
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">
|
|
||||||
<OutputFile>$(OutDir)$(ProjectName).lib</OutputFile>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">
|
|
||||||
<OutputFile>$(OutDir)$(ProjectName).lib</OutputFile>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">
|
|
||||||
<OutputFile>$(OutDir)$(ProjectName).lib</OutputFile>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">
|
|
||||||
<OutputFile>$(OutDir)$(ProjectName).lib</OutputFile>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">
|
|
||||||
<OutputFile>$(OutDir)libretro$(TargetExt)</OutputFile>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">
|
|
||||||
<OutputFile>$(OutDir)$(ProjectName).lib</OutputFile>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Xbox 360'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
|
||||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<PreprocessorDefinitions>_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</PreprocessorDefinitions>
|
|
||||||
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
|
|
||||||
<AdditionalIncludeDirectories>$(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</AdditionalIncludeDirectories>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='CodeAnalysis|Xbox 360'">
|
|
||||||
<ClCompile>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<WarningLevel>Level4</WarningLevel>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<Optimization>Disabled</Optimization>
|
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
|
||||||
<MinimalRebuild>true</MinimalRebuild>
|
|
||||||
<PREfast>AnalyzeOnly</PREfast>
|
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
|
||||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
|
||||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
|
||||||
<PreprocessorDefinitions>_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</PreprocessorDefinitions>
|
|
||||||
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
|
|
||||||
<AdditionalIncludeDirectories>$(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</AdditionalIncludeDirectories>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Xbox 360'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<Optimization>Full</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
|
||||||
<StringPooling>true</StringPooling>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
|
||||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<PreprocessorDefinitions>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</PreprocessorDefinitions>
|
|
||||||
<CallAttributedProfiling>Callcap</CallAttributedProfiling>
|
|
||||||
<AdditionalIncludeDirectories>$(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</AdditionalIncludeDirectories>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>false</EnableCOMDATFolding>
|
|
||||||
<IgnoreSpecificDefaultLibraries>xapilib.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile_FastCap|Xbox 360'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<Optimization>Full</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
|
||||||
<StringPooling>true</StringPooling>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<CallAttributedProfiling>Fastcap</CallAttributedProfiling>
|
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
|
||||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<PreprocessorDefinitions>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</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>$(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</AdditionalIncludeDirectories>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>false</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Xbox 360'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<Optimization>Full</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<StringPooling>true</StringPooling>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
|
||||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<PreprocessorDefinitions>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</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>$(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</AdditionalIncludeDirectories>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
<PreschedulingOptimization>true</PreschedulingOptimization>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_LTCG|Xbox 360'">
|
|
||||||
<ClCompile>
|
|
||||||
<WarningLevel>Level3</WarningLevel>
|
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
|
||||||
<Optimization>Full</Optimization>
|
|
||||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
||||||
<StringPooling>true</StringPooling>
|
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
|
||||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
|
||||||
<ExceptionHandling>false</ExceptionHandling>
|
|
||||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
|
||||||
<PrecompiledHeaderOutputFile>$(OutDir)$(ProjectName).pch</PrecompiledHeaderOutputFile>
|
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
|
||||||
<PreprocessorDefinitions>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</PreprocessorDefinitions>
|
|
||||||
<AdditionalIncludeDirectories>$(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</AdditionalIncludeDirectories>
|
|
||||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
||||||
</ClCompile>
|
|
||||||
<Link>
|
|
||||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
||||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
||||||
<OptimizeReferences>true</OptimizeReferences>
|
|
||||||
</Link>
|
|
||||||
</ItemDefinitionGroup>
|
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
||||||
<ImportGroup Label="ExtensionTargets">
|
|
||||||
</ImportGroup>
|
|
||||||
</Project>
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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 <time.h>
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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);
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -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);
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
}
|
|
|
@ -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)
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -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;
|
|
|
@ -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;
|
|
||||||
}
|
|
|
@ -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))
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -1,244 +0,0 @@
|
||||||
// Burn - Arcade emulator library - internal code
|
|
||||||
|
|
||||||
// Standard headers
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#if defined(__LIBRETRO__) && defined(_MSC_VER)
|
|
||||||
#include <tchar.h>
|
|
||||||
#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();
|
|
|
@ -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
|
|
|
@ -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);
|
|
|
@ -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"));
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
|
@ -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<<bit); /* set bit */
|
|
||||||
else
|
|
||||||
chip->latch[2] &= ~(1<<bit); /* reset bit */
|
|
||||||
|
|
||||||
ppi8255_write_port(chip, 2, which);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void ppi8255_init(INT32 num)
|
|
||||||
{
|
|
||||||
DebugDev_8255PPIInitted = 1;
|
|
||||||
|
|
||||||
for (INT32 i = 0; i < num; i++) {
|
|
||||||
ppi8255 *chip = &chips[i];
|
|
||||||
|
|
||||||
memset(chip, 0, sizeof(*chip));
|
|
||||||
|
|
||||||
set_mode(i, 0x1b, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
nNumChips = num;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ppi8255_exit()
|
|
||||||
{
|
|
||||||
#if defined FBA_DEBUG
|
|
||||||
if (!DebugDev_8255PPIInitted) bprintf(PRINT_ERROR, _T("ppi8255_exit called without init\n"));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (INT32 i = 0; i < MAX_PPIS; i++) {
|
|
||||||
ppi8255 *chip = &chips[i];
|
|
||||||
|
|
||||||
memset(chip, 0, sizeof(*chip));
|
|
||||||
}
|
|
||||||
|
|
||||||
PPI0PortReadA = NULL;
|
|
||||||
PPI0PortReadB = NULL;
|
|
||||||
PPI0PortReadC = NULL;
|
|
||||||
PPI0PortWriteA = NULL;
|
|
||||||
PPI0PortWriteB = NULL;
|
|
||||||
PPI0PortWriteC = NULL;
|
|
||||||
PPI1PortReadA = NULL;
|
|
||||||
PPI1PortReadB = NULL;
|
|
||||||
PPI1PortReadC = NULL;
|
|
||||||
PPI1PortWriteA = NULL;
|
|
||||||
PPI1PortWriteB = NULL;
|
|
||||||
PPI1PortWriteC = NULL;
|
|
||||||
PPI2PortReadA = NULL;
|
|
||||||
PPI2PortReadB = NULL;
|
|
||||||
PPI2PortReadC = NULL;
|
|
||||||
PPI2PortWriteA = NULL;
|
|
||||||
PPI2PortWriteB = NULL;
|
|
||||||
PPI2PortWriteC = NULL;
|
|
||||||
|
|
||||||
DebugDev_8255PPIInitted = 0;
|
|
||||||
nNumChips = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ppi8255_scan()
|
|
||||||
{
|
|
||||||
#if defined FBA_DEBUG
|
|
||||||
if (!DebugDev_8255PPIInitted) bprintf(PRINT_ERROR, _T("ppi8255_scan called without init\n"));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
SCAN_VAR(chips);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ppi8255_set_portC( INT32 which, UINT8 data )
|
|
||||||
{
|
|
||||||
#if defined FBA_DEBUG
|
|
||||||
if (!DebugDev_8255PPIInitted) bprintf(PRINT_ERROR, _T("ppi8255_set_portC called without init\n"));
|
|
||||||
if (which > 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
|
|
|
@ -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 );
|
|
|
@ -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);
|
|
||||||
}
|
|
|
@ -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();
|
|
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
void c169_roz_init(UINT8 *ram, UINT8 *control, UINT16 *bitmap);
|
|
||||||
void c169_roz_draw(INT32 pri, INT32 line);
|
|
|
@ -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);
|
|
||||||
// }
|
|
||||||
}
|
|
|
@ -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);
|
|
|
@ -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);
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
UINT16 __fastcall gaelco_decrypt(INT32 offset, INT32 data, INT32 param1, INT32 param2);
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
|
|
|
@ -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]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -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);
|
|
|
@ -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();
|
|
||||||
}
|
|
|
@ -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);
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue