设为首页收藏本站

琵琶行论坛

 找回密码
 注册
查看: 3040|回复: 31

[原创] Final Burn 的歷史 (終極火燄) (by old lo585983)

[复制链接]

该用户从未签到

发表于 2018-6-2 01:47:06 | 显示全部楼层 |阅读模式
本帖最后由 lo585983 于 2018-6-2 01:53 编辑

fb.png


起始:

Final Burn (名稱靈感來自After Burner) 始於 2000年8月31日由作者FinalDave默默的發佈於網路上~我相信大衛一開始在編寫此模擬器時是開心的.起初的版本就是只有支援After Burner這麼一款遊戲~後來才慢慢增加了其他類3D型的大型電玩遊戲~並且執行起來比大型電玩模擬器之母MAME還順暢~但是由於MAME當時還是所謂的模擬器大款所以並未有多少人關注到他.


發蹟:
就在2001那一年一件大事發生了~CPS-2 Shock團隊裡的Razoola 與 CrashTest開始了Capcom CPS-2的解密競賽~催生了以XORes的方法讓遊戲進行所謂的暴力破解(以覆蓋的方式來跳過CPS-2的保護區段)並能在程式上執行~當時支援的第一個模擬器並未是MAME(MAME有所謂的還在市場上的遊戲不支援的習慣)而是 Final Burn (2001年1月3號釋出Street Fighter Zero(快打旋風零代)的XOR檔)~在 Final Burn 讓CPS-2遊戲跑起來的同時震撼了全世界的模擬器玩家~從此 Final Burn 聲名大燥.

倦怠:
隨著時間的推移越來越多的XOR檔被釋出~雖然大衛還是一直更新支援的遊戲~但是有時候會跟不上XOR釋出的速度~便開始出現了所謂的HACK版(以HACK的方式添加遊戲(從一些國外的論壇甚或國內的EMU ZONE論壇~及時更新著HACK版))~並在同時因為 Final Burn 並不支援所謂的作弊方式運行遊戲~隨之出現了EC等的作弊工具(修改內存區段方式~並添增支援了越來越多的模擬器)~以上的行為大衛並不是沒有看在眼裡~而是其並不是靠這個生活的~有自己的工作與生活~隨著大衛越來越多次的推遲~開始出現了所謂的網路小白(一晚之間灌爆了大衛的信箱(為什麼不即時更新等云云))~經過了無數次的小白攻擊事件後大衛宣佈 Final Burn 暫時終止對CPS-2的支援(一開始是宣佈過幾年後回來)~於是網路便開始出現了所謂的 Final Burn 改版(非官方的HACK版)~經過一段時間後 Final Burn 主頁出現了終止開發的宣言~並無奈的開放源代碼.

新生:
就在開放源代碼的同時便催生出了許許多多的所謂 Final Burn 的改版~甚至原先大衛辛苦寫出的一些類3D遊戲的驅動被硬生生的刪除~就在眾多的改版林立的情況下出現了倦怠期~慢慢的有很多都不更新了~所以在後來出現了一個團隊來整合了整個亂像 Final Burn Alpha 出現了!!!~首先團隊就對界面的代碼進行了非常大的改進~並開始整理四方林立的改版的代碼而且很好的整合在一起~在整個模擬器界面跟濾鏡等等方面都穩固後~出現了支援NEOGEO的聲音~並開始出現了運行的畫面~ Final Burn 的第2次新生出現了~就在大家都覺得一切都順風順水的時候~這個團隊忽然就像整個停止了~幸運的是還是有很多對 Final Burn 死忠的使用者默默的添加新的遊戲支援代碼~而後就在 1-Emulator 的 IQ_132 活躍下 Final Burn Alpha 得以繼續得到最大的整合~現在的 Final Burn Alpha 支援的遊戲量已經到達1萬多的數量~應該大衛在當初釋出代碼時絕對不會想得到的吧(甚至出現在各平台)~感謝當初的作者 FinalDave 的辛苦以及能釋出代碼(這真的才叫有肚量的作法)~以及感謝現在依然在添加驅動的大家!!!


PS:
這文件躺在lo585983(我已逝去的好友)的隨身碟裡,我看了後覺得這篇文章真的有所謂的記錄歷史的意義,所以貼出來與大家共享.
感謝lo585983~我們真的很想你!!!

以下為Final Burn歷史程式
文件名称:fba.part1.rar
文件大小:19.00 M
文件地址:http://f.ppxclub.com/plugin.php?id=phpdisk_mini:view&file_id=13152
文件名称:fba.part2.rar
文件大小:6.10 M
文件地址:http://f.ppxclub.com/plugin.php?id=phpdisk_mini:view&file_id=13153


评分

4

查看全部评分

该用户从未签到

 楼主| 发表于 2018-6-4 04:29:10 | 显示全部楼层
本帖最后由 lo585983 于 2018-6-4 11:27 编辑

http://tc.wangchao.net.cn/bbs/detail_27247.html

FinalBurn Alpha 2.9x中CPS2遊戲驅動程序的編寫
2006-01-08 19:20:25  編輯來源:互聯網  简体版  手機版  評論  字體: ||


  FinalBurn Alpha 2.9x中CPS2遊戲驅動程序的編寫

  作者:胡穎卓

  FinalBurn Alpha是當今最好的CPS1/2模擬器之一,更可貴的是它是完全開放源碼的。從FinalBurn Alpha 2.93開始,FinalBurn Alpha小組(以後簡稱FBA小組)便轉向了多功能、多機種的支持,而不是像其它模擬器那樣,出一個新遊戲的破解就出一個新版,或是有一點兒改進就出一個新版。這樣做利了開發者,而玩家卻是覺得有些不便。

  起初,我爲大家寫一些新版本的FBA,但這樣會和FBA小組的版本對應不上。更是近來,我需要將主要精力放在網絡遊戲上,所以也沒有太多的時間爲大家寫這些驅動。在這裏,我針對FinalBurn Alpha 2.93的CPS2遊戲19xx驅動爲例,給大家做一下講解,以便大家能自己寫出新的驅動。

  首先,要包含驅動頭文件cps.h,語句如下:

  #include"cps.h"

  再者,是輸入設備定義,也不用講解,照例子抄就行了:

  static struct BurnInputInfo DrvInputList[] =

  {

  {"P1 Coin"  , 0, CpsInp020+4, "p1 coin"  },

  {"P1 Start" , 0, CpsInp020+0, "p1 start" },

  {"P1 Up"    , 0, CpsInp001+3, "p1 up"    },

  {"P1 Down"  , 0, CpsInp001+2, "p1 down"  },

  {"P1 Left"  , 0, CpsInp001+1, "p1 left"  },

  {"P1 Right" , 0, CpsInp001+0, "p1 right" },

  {"P1 Shot"  , 0, CpsInp001+4, "p1 fire 1"},

  {"P1 Bomb"  , 0, CpsInp001+5, "p1 fire 2"},

  //19xx是兩鍵遊戲,如果是3鍵遊戲,只需要按順序加上就行了,例如

  //{"P1 AutoFire", 0, CpsInp001+6, "p1 auto fire"},

  {"P2 Coin"  , 0, CpsInp020+5, "p2 coin"  },

  {"P2 Start" , 0, CpsInp020+1, "p2 start" },

  {"P2 Up"    , 0, CpsInp000+3, "p2 up"    },

  {"P2 Down"  , 0, CpsInp000+2, "p2 down"  },

  {"P2 Left"  , 0, CpsInp000+1, "p2 left"  },

  {"P2 Right" , 0, CpsInp000+0, "p2 right" },

  {"P2 Shot"  , 0, CpsInp000+4, "p2 fire 1"},

  {"P2 Bomb"  , 0, CpsInp000+5, "p2 fire 2"},

  {"Reset"      , 0, &CpsReset  , "reset"   },

  {"Diagnostic" , 0, CpsInp021+1, "diag"    },

  {"Service"    , 0, CpsInp021+2, "service" },

  };

  STDINPUTINFO(Drv);

  也有一種特殊情況,由于CPS2下格鬥遊戲非常多,而且使用的按鍵定義方法也一樣,比如《少年街霸3》,我們就可以使用以下方法來定義:

  STDINPUTINFOSPEC(Drv, CpsFsi);

  按照Razoola的定義,ROM的編號方式按照芯片的排列來進行編號:

  具體到文件名,擴展名編號方式如下:

  01-02 QSound Z80數據

  03-10 程序數據

  11-12 QSound采樣數據

  13-20 圖像數據

  ROM表的寫法我們來看看19XX的寫法:

  static struct BurnRomInfo NinexxRomDesc[]=

  {

  //文件名     ,文件長度,CRC校驗碼 ,類型

  {"19xux.03" ,0x80000,0x239a08ae, 0x10}, //  0  XOR 表

  {"19xux.04" ,0x80000,0xc13a1072, 0x10}, //  1

  {"19xux.05" ,0x80000,0x8c066ec3, 0x10}, //  2

  {"19xux.06" ,0x80000,0x4b1caeb9, 0x10}, //  3

  {"19xu.03" ,0x80000,0x05955268, 0x10},  //  4  68000 代碼 需要上面的進行解密

  {"19xu.04" ,0x80000,0x3111ab7f, 0x10},  //  5

  {"19xu.05" ,0x80000,0x38df4a63, 0x10},  //  6

  {"19xu.06" ,0x80000,0x5c7e60d3, 0x10},  //  7

  {"19x.07"  ,0x80000,0x61c0296c, 0x10},  //  8

  {"19x.13" ,0x080000,0x427aeb18, 1},     //  9  圖像數據,此處要按3,5,7,9,4,6,8,0此類順序排列

  {"19x.15" ,0x080000,0x63bdbf54, 1},     //  10

  {"19x.17" ,0x080000,0x2dfe18b5, 1},     //  11

  {"19x.19" ,0x080000,0xcbef9579, 1},     //  12

  {"19x.14" ,0x200000,0xe916967c, 1},     //  13

  {"19x.16" ,0x200000,0x6e75f3db, 1},     //  14

  {"19x.18" ,0x200000,0x2213e798, 1},     //  15

  {"19x.20" ,0x200000,0xab9d5b96, 1},     //  16

  {"19x.01" ,0x020000,0xef55195e, 2},     //  17 QSound數據 z80聲音數據

  {"19x.11" ,0x200000,0xd38beef3, 2},     //  18 QSound聲音采樣

  {"19x.12" ,0x200000,0xd47c96e2, 2},     //  19

  };

  STD_ROM_PICK(Ninexx) STD_ROM_FN(Ninexx)

  這裏面Ninexx是我們自己可以定義的名稱,改成_19xx也是可以的。

  之後是驅動信息結構,19XX的寫法如下:

  遊戲ROM文件名稱,爲19xx的話,那對應19xx.zip

  遊戲名稱

  注釋或其它信息

  生産商

  機型

  出品年代

  主ROM名稱,例如19xx的西班牙版就需要在這裏打上"19xx"

  主板BIOS,不使用的話定義爲NULL

  運行標志,如果爲縱版需要加上BDF_ROTATE_GRAPHICS_CCW

  最大玩家數量

  硬件類型

  取zip名稱特殊函數

  Rom信息結構

  Rom名稱結構

  輸入配置信息表

  DIP配置表

  驅動初始化函數

  驅動關閉函數

  遊戲幀處理函數

  遊戲刷新函數

  遊戲剪裁處理函數

  遊戲調色板空間

  遊戲畫面寬度

  遊戲畫面高度

  遊戲畫面縱橫比

  struct BurnDriver BurnDrvCps19xx=

  {

   {"19xx",

   "19XX: The War Against Destiny (US 951207)",

   "",

   "Capcom",

   "CPS2",

   "1995",

   NULL,

   NULL},

   BDF_GAME_WORKING | BDF_ROTATE_GRAPHICS_CCW,

   2,

   HARDWARE_CAPCOM_CPS2,

   NULL,

   NinexxRomInfo,

   NinexxRomName,

   DrvInputInfo,

   NULL,

   DrvInit,

   DrvExit,

   Cps2Frame,

   CpsRedraw,

   CpsAreaScan,

   &CpsRecalcPal,

   224,

   384,

   3,4

  };

  DrvExit函數我們不用去管它,直接照抄一個就行了,關鍵在于DrvInit函數。下面我們來看一下19XX的DrvInit函數,並爲大家做詳細的講解:

  static int DrvInit()

  {

  int nRet=0;

  int i=0;

  unsigned char *pqs=NULL;

  Cps=2;                   //CPS1型遊戲爲1,CPS2型遊戲爲2

  nCpsRomLen = 5*0x080000; //程序數據長度          對應文件3-10

  nCpsCodeLen= 4*0x080000; //需要XOR表解密的長度   對應文件3-10

  nCpsGfxLen =  0x1000000; //圖象數據長度          對應文件13-20

  nCpsZRomLen= 1*0x020000; //QSoundDataZ80數據長度 對應文件1-2

  nCpsQSamLen= 2*0x200000; //QSoundSample長度     對應文件11-12

  nRet=CpsInit();

  if(nRet!=0)return(1);

  // 裝載程序ROM,這裏5爲程序ROM數量,4爲XOR表ROM數量

  for(i=0;i

回复 支持 0 反对 1

使用道具 举报

签到天数: 21 天

[LV.4]偶尔看看III

发表于 2018-6-6 22:25:38 | 显示全部楼层
R760 发表于 2018-6-2 12:28
这种人和Lamer比没啥两样

大部分人都是这样的吧。不然大神一个个都不见了

回复 支持 1 反对 0

使用道具 举报

签到天数: 310 天

[LV.8]以坛为家I

发表于 2018-6-2 12:28:37 | 显示全部楼层
a5555tnt 发表于 2018-6-2 09:04
痛恨那些又伸手又小白还不要脸攻击的人,真是不可理喻

这种人和Lamer比没啥两样
回复 支持 1 反对 0

使用道具 举报

签到天数: 21 天

[LV.4]偶尔看看III

发表于 2018-6-2 09:04:03 来自手机 | 显示全部楼层
痛恨那些又伸手又小白还不要脸攻击的人,真是不可理喻
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

发表于 2018-6-2 02:29:36 | 显示全部楼层
有點印象,記得第一次接觸模擬器不是在網路而是某專賣盜版光碟的小店,當時買了一張名為"街機大全"的光碟,心想大概在唬爛吧!反正才99元,拿回家後嚇呆了,裡面有太多不可思議的東西,其中一個資料夾放的就是早期的final burn,跟lo大貼的那張圖完全一樣
回复 支持 反对

使用道具 举报

签到天数: 995 天

[LV.10]以坛为家III

发表于 2018-6-2 03:04:17 | 显示全部楼层
支持一下!
回复

使用道具 举报

签到天数: 68 天

[LV.6]常住居民II

发表于 2018-6-2 05:11:32 | 显示全部楼层
熟悉的名字。熟悉的图标
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2018-6-2 07:05:25 | 显示全部楼层
Thanks,lo585983, we really miss you!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2018-6-2 07:27:31 | 显示全部楼层
ftgworld 发表于 2018-6-2 02:29
有點印象,記得第一次接觸模擬器不是在網路而是某專賣盜版光碟的小店,當時買了一張名為"街機大全"的光碟, ...

我再找個時間發帖教你如何修改灣岸5的AI,還有如何編輯它的ENMA引擎,我今明兩天都要顧小孩,所以下禮拜三或四你OK嗎?
回复 支持 反对

使用道具 举报

签到天数: 10 天

[LV.3]偶尔看看II

发表于 2018-6-2 08:00:01 | 显示全部楼层

支持一下!
回复

使用道具 举报

签到天数: 55 天

[LV.5]常住居民I

发表于 2018-6-2 08:11:55 | 显示全部楼层
怀lo585983, 愿你一路走好...
回复 支持 反对

使用道具 举报

签到天数: 706 天

[LV.9]以坛为家II

发表于 2018-6-2 08:15:14 | 显示全部楼层
感谢分享                     
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2018-6-2 08:41:10 | 显示全部楼层
yoshiliao 发表于 2018-6-2 07:27
我再找個時間發帖教你如何修改灣岸5的AI,還有如何編輯它的ENMA引擎,我今明兩天都要顧小孩,所以下禮拜 ...

okok!!!^^
我每次玩到40話開始壓力就很大,灣岸5實在太刺激了,不到最後倒數根本不知道誰會贏~


点评

這樣才好玩阿~嘿嘿。之前把AI調成每一場都必需使用830HP來跑,每次跑完心臟病都快發作了。  发表于 2018-6-2 08:45
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2018-6-2 08:45:30 | 显示全部楼层
当时支持POWER DRIFT和G-LOC. 那时候MAME还没模拟这2个机厅里的*屏蔽内容*.
回复 支持 反对

使用道具 举报

签到天数: 282 天

[LV.8]以坛为家I

发表于 2018-6-2 09:00:41 | 显示全部楼层
好文章,谢谢分享。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|琵琶行论坛 ( 赣ICP备12000882号  

GMT+8, 2018-6-23 01:15 , Processed in 0.056543 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表