如何自己做出FC ROM DUMPER
作者: zchou (Nelson Chou)時間: Tue Nov 24 01:43:26 1998
如何作一個FC 卡匣的ROM DUMPERver 1.2 11.24.98
NELSON CHOU
[序言]
正如很多女孩子的衣櫃一樣!"衣櫃內的衣服總是少一件!",對於FC遊戲也是一樣
,有些遊戲就是找不到,也許有些人手邊有卡帶,但是沒有工具把ROM IMAGE DUMP
出來,有些人會自己想作一個FC卡匣的ROM DUMPER,卻苦無沒有步驟帶領,雖然我
沒什麼硬體知識,不過我還是盡量整理一下!有錯趕快MAIL給我!
本文件是基於SCOTT WU 的 FWNES CLUB 的網頁資訊!
http://members.tripod.com/~fwnes/
感謝SCOTT對臺灣模擬器界的貢獻!
感謝SCOTT兄,及numn兄在本文撰寫期間提供意見!
有些人也叫他"吸出機",也有ROM BACKUP DEVICE,ROM COPIER之類的稱呼,總之
就是把ROM IC變成PC可讀的二進制檔案,稱之ROM IMAGE FILE!
DUMP出ROM的方式很多,有一個MASK ROM一個MASK ROM的DUMP方式,也有利用商用
的DUMPER加上一個特製的連接線來DUMP,,一般較為出名的是IO-56,這是德製的,
79.95DM(德國馬克,約1DM:17NT$),網址:
http://www.conrad-electronic.com
也可以在這裡找到IO-56用的程式:
http://lsewww.epfl.ch/~felber/IO-56/
利用IO-56,再配合GB,NES,SNES各自的連接線,可以用來DUMP GB,NES,SNES三種
主機的ROM,在:
http://lsewww.epfl.ch/~felber/IO-56/
不但有IO-56的軟體,也介紹的各連接線的製作(所需材料及製作步驟等),好像也
有DIY一片IO-56的方法,IO-56是一片ISA卡,上面有25pin公的接頭,而不是利用PC
上的LPT!再利用各主機專用的DUMPER軟體,以達到ROM DUMP的目的!但以ISA方式
易與其他介面卡衝突,且安裝困難,要拆CASE,無法量訊號Debug線路,有種種的限
制.
還有更多的是利用熟知TVGAME或ARCADE硬體的知識,自行製作的ROM DUMPER.不
過現在我們只專注在國人自製的SCOTT's ROM DUMPER II(註:SCOTT's ROM DUMPER I 是以一個唯讀記憶體(MASK ROM)PRG-ROM+另一個唯讀記憶體(MASK ROM)CHR-ROM合成方式的DUMP方式,現在網頁已移除!).
SCOTT's ROM DUMPER II是以程式模擬FC所使用的65C02 CPU讀取FC卡匣上的
PRG BANK及CHR BANK的切換動作,藉這個切換動作幫助,以DUMP出所有的ROM
BANK!
不過在進入主題之前,還是必須花一點時間描述一下FC的運作情形,這樣比較容
易知道為什麼需要以這種方式設計ROM DUMPER!
很多人都知道,FC - NINTENDO FAMICOM,是以65C02作為CPU的,這是一顆特製的
CPU,它的執行指令微碼與6502相同,不過它與APPLE II上的6502在外觀及接腳上
都不太一樣!
無論如何,我們只要知道執行情況與6502相同就好了,不過問題就出現了,6502只
有A0到A15十六條位址線,所以定址空間限制在2的16次方=65536BYTE,也就是64K
.這樣的定址空間還必須分配給PPU(圖形處理單元),SPU(聲音處理單元),VRAM,
RAM,PRG ROM(程式段ROM),CHR ROM(圖像段ROM)等,就FC初期來看,遊戲的確都不
大,這樣的空間還算足夠,但是隨著圖像及程式的改善,遊戲的容量不斷擴大,必
須有一個方式擴充定址的空間,於是便空出CPU各保留給PRG ROM,CHR ROM的定址
空間的一部份,稱為FRAME,再於卡匣上設計切換ROM BANK的機制,以這個FRAME來
對應到ROM上許多的PAGE,這樣便能擴充ROM的空間!
這種切換ROM BANK的機制,稱之為MMC - MULTI-MEMORY CONTROLLER,也有人稱為MAPPER(這與ROM IMAGE的MAPPER NUMBER有點不同,為了分辨,以下均以MMC稱之)!不過對ROM DUMPER而言,新的問題又出現了!隨著FC市場的增大,各家遊戲廠商紛紛設計不同的MMC,以增加不同的功能,已知的MMC種類,已經超過60種以上,而
仿冒卡廠商則是先找出這些特殊MMC的功能,修改部份程式及把LOGO改掉之後,以
現有的MMC晶片代替,這樣就搞出一堆變種!無論如何,我們需要一部可以因應這
些不同的MMC,調整DUMP ROM的方式的ROM DUMPER!
很多DUMP方式都是具一定破壞性的,運氣不好,卡匣就掛了!在目前FC原裝卡帶不
多的情況下,肯拿出來DUMP的人就不是那麼多!於是需要一個破壞程度最低的ROM
DUMP方法,因應此情勢而生的ROM DUMPER便是SCOTT's ROM DUMPER II,最壞的情況下,也不需要把每個MASK ROM 都拆下來,這實在是一大福音!
1.它的DUMP方式是在DUMPER上,有個FC用的卡匣插槽,以卡帶面向插槽第一隻腳,
把要DUMP的卡匣插在這個插槽上!
2.把DUMPER利用LPT線與PC相連!在BIOS將LPT MODE 設 378/IRQ7 EPP Mode!
3.接上外接的DC 5V電源& GND !
4.執行支援這卡匣MMC的DUMPER軟體!
5.然後便會看到螢幕數字不斷跳動,1M=1FFFF 2M=3FFFF (HEX CODE)!:)結束後
就會產生一個ROM.NES,這就是DUMP 下來的ROM IMAGE了!而這ROM.NES就能直
接丟到FWNES上玩了!
很簡單吧!
看到這裡,想要DIY的人應該快忍不住了吧!接下來就應該進入主題了!
必備材料:
┌────────────────────────┐
│74HC04X 1 (HEX INVERTER) │
├────────────────────────┤
│74HC138 X 1 (3 TO 8 LINE DECODER) │
├────────────────────────┤
│74HC373 X 4 (OCTAL TRANSPARENT LATCH) │
├────────────────────────┤
│74HC244 X 1 (OCTAL BUS DRIVER 3 STATE) │
├────────────────────────┤
│0.01 uF IC PASS Cap. X 7(IC PASS CAP.) │
├────────────────────────┤
│470 歐姆 X 8 │
├────────────────────────┤
│DB25P(母) X 1 │
├────────────────────────┤
│LED 綠 X 1(吸出機動作指示用) │
├────────────────────────┤
│LED 紅 X 1(電源POWER ON指示用) │
├────────────────────────┤
│FC 60 PIN 卡匣插槽 X 1 (拔FC上的,去找舊FC吧!) │
├────────────────────────┤
│大小適當之感光PCB板 X 1(or 萬用洞洞板+OK導線) │
└────────────────────────┘
以上是電路板的部份,還有需要:
1.外接DC 5V電源供應器 X 1
2.25pin公-25pin公一對一之LPT連接線 X 1
你可以到光華商場等電子材料行收集一下!
必需工具:
25-30W電烙鐵,銲錫,尖嘴鉗,斜口鉗,小電鑽及數支鑽頭,及其他工具,或是實力
堅強的友人,或新臺幣千元大鈔數張!
製作流程:
1.從線路圖(Schematics)Layout成PCB板圖:
目前在FWNES CLUB網頁上只有一個線路圖(註:也許你有之前吸出機二號的線
路圖,你會發現有點不同,根據請教SCOTT兄得知,新版的線路圖拿掉了一些抑
制雜訊用的電阻及電容,軟體的使用都是一樣的),你需要將它LAYOUT成PCB板
圖,也許需要請朋友幫忙!當然如果你想自己做也是可以,有一本書可以參考一
下:
非常PCB設計(Protel for Windows PCB 3.XX)張義和著 松崗
ISBN957-22-2653-3 附CD,含繪製PCB板的軟體!但是這是推廣版的,功能上
不免有些限制!
注意,這位作者還有另一本類似的書,只有書皮及英文名稱不同,稱為
非常線路設計(Protel for Windows PCB Schematics 3.XX)
這是 Layout PCB用的,Layout後轉成GERBER FILEs,(Top Layer,Bottom Layer
Text Layer Size Layer,Screw Layer.)再拿去PCB板廠商做底片與SAMPLE.
不過據SCOTT兄告知,這張板應該LAYOUT成2層板,如果你功力夠,也許能自己
LAYOUT 單層板,否則就必須請有力人士,例如花錢請廠商作,這可不便宜(PCB
圖=>底片,NT$4000,底片=>PCB板,嘿嘿,最少NT$8000),沒有足夠的熱忱及決心
,實在很難令人下手!
另一種方式是用洞洞板+OK導線,按照線路圖,做出吸出機.這樣算是廉價很多
的替代方案!
2.製作感光電路板(這是從書上抄來充場面的):
首先把電路板的線路印到投影片上,把製作好的透明片放在電路板藥膜上,利
用日光燈或紫外燈來曝光,兩者距離約10CM左右.以18WPL燈曝光,距離很近,約
需要20~30分!
感光完畢後,可以看到藥膜會變色,此時就得準備泡顯像劑,將不需要的藥膜清
除.顯像劑的藥粉在電子材料行也有,泡製時,按照需要的量泡製,因為具時效
性,多的放太久也會失效!可以加入熱水,減少時間!
感光後的電路板放進顯像液之後,不需要的藥膜便會去除而露出銅箔,此時要
檢查線路部份是否露出銅箔,若有,則用油性簽字筆修補,以免線路被腐蝕.接
下來是去除銅箔,此時需要"氯化鐵"藥水,此步驟時間較長,加熱一下會進行的
快些!氯化鐵有毒且有腐蝕性,在家不宜做,用學校設備較佳.
當銅箔去除乾淨只留下所需要的線路後,用水清洗並乾燥後,準備作加工!按照
零件的需要,在零件孔位上鑽孔,最好事先量一下元件的腳距,以免零件不好安
裝!
3.電子元件安裝:
安裝零件時,最好是由高度低的先焊,熟能生巧!最後把外接電源DC+5V,GND接
在任一74HC373的Vcc,GND上,完成DUMPER的製作! :)
4.測試!
你以為這樣就能DUMP ROM了嗎?嘿嘿,你還需要DUMPER軟體,SCOTT's ROM DUMPER II
有這麼強的功能,就是因為利用程式模擬6502切換ROM BANK的動作,所以DUMPER
軟體就是整個的DUMPER的核心!不過話說回來,當您會了就可以寫此Mapper之任
天堂模擬器(不含音效)!
以硬體的切換控制而言,主要是以60PIN插槽上的PRG-WE,PRE-OE,CHR-WE,CHR-OE
,CLK,控制PRG ROM及CHR ROM的切換!功能如下:
PRG-WE : PRG ROM Write Enable/Disable Pin.
PRG-OE : PRG ROM Output Enable/Disable Pin.
CHR-WE : CHR ROM Write Enable/Disable Pin.
CHR-OE : CHR ROM Output Enable/Disable Pin.
CLK : 在PRG-ROM CHR-ROM Write時當基本Clock Cycle用
而運作方式是:
當變更 PRG Bank 時:
1). PRG-OE=Enable , CHR-OE:Disable , PRG-WE:Enable
當讀取 PRG Bank Data時:
2). PRG-WE=Disable and Read $8000~$xxxx.
CHR也是 1) & 2)兩步驟,但是 2). 改成Read $0000~$xxxx
(以上感謝SCOTT兄提供)
而軟體的切換控制便是模擬出各MMC的呼叫方式,利用原始卡帶上的MMC來切換!
各MMC的呼叫方式則需要另外找資料了,這裡暫時撇下不談!
整個DUMPER運作的流程: (感謝SCOTT兄提供)
Step1:先Reset MMC (Initial)
Step2:寫入 Fixed Address (視 MMC Type而異)資料以變更 FRAME.
Step3:讀取目前的 FRAME 資料.
Step4:重複 Step2-3 直到 PRG ROM 讀取完成或 CHR ROM 讀取完成.
就目前而言,其他人的話,因為對DUMPER 硬體及軟體的資料還不夠,所以還是單
方面的依賴SCOTT兄釋出該卡匣MMC的吸出軟體!如果你想寫自己擁有的卡帶吸出
軟體的話,需要與SCOTT兄聯絡,以了解更細部的硬體資料,才能撰寫自己的吸出
軟體!
除此之外,還需要知道這個卡匣的MMC運作!整個撰寫流程如下:
1.找出這卡匣的MMC種類:
原裝卡匣的話,比較簡單,因為FANWEN大已經整理出相當多的MMC格式,另外numn
大也開始整理FC卡匣的目錄,此外,還有許多日本網頁也有類似的目錄!仿冒卡
就不太容易了,因為變種的太多,但是可能有機會找到基本型!
2.找出MMC的運作方式:
這裡是另外一個難題,由運作流程上得知,你需要RESET MMC及變更FRAME的方
式,其他的部份倒是不那麼重視!比較常用的MMC會有文件可以參考,不過,嘿嘿
,常用MMC的卡帶當然早就被DUMP出來了,而難找的卡帶當然就沒有文件可以參
考!沒有文件可以就需要用原版卡帶及工具等,加以測試,找到它運作方式!
SCOTT兄的方式是利用從同一種MMC但已DUMPER出來的ROM中,反組譯PRG ROM或
是FWNES DEBUG MODE,由原程式中找出切換FRAME的方式,這樣就能找出這種MMC
的運作!
另外一個問題是仿冒卡的問題,仿冒卡經常使用變種的MMC,找出運作方式的可
能方法是利用三用電表測試MMC各接腳的反應了(numn兄創意提供),其實這也
還有問題,TTL IC翻IC手冊可知,But PAL 就難了!所謂"變種"通常是修改原
MMC切換BANK寫入的位址或更改此位址上各BIT的定義!利用測試接腳反應,找
出修改的部份,這樣有可能能找出這個變種MMC的運作!!
3.把MMC的運作寫成程式!
ㄜ.....算是SCOTT兄的不傳之密吧! :) 除了MMC的運作外,還需要有NES檔格
式(含FWNES擴充格式)的知識,操作LPT的知識,控制DUMPER的方法,還有一些其
他的知識等,全部組合起來,才會成為DUMPER軟體!
工具本身沒有任何罪惡,但是使用工具的人卻可能用它來做壞事,ROM DUMPER也
是一樣,可不要把這樣的好工具用在壞處上!至於要不要分享你DUMP出來的ROM,
見仁見智啦!唯一的一點小建議,慎選要分享的對象,以免哪天看到你辛苦DUMP出
來的ROM,淪為別人賺錢的工具,這是作者不樂意見到的!
--
作者: SONBOY (傳說中?狂戰士) 看板: Emulator
標題: Re: [情報]如何自己做出FC ROM DUMPER
時間: Sun Nov 29 07:18:03 1998
※ 引述《zchou (Nelson Chou)》之銘言:
> 以上是電路板的部份,還有需要:
> 1.外接DC 5V電源供應器 X 1
改成接四個三號電池(1.5V*4=6V)再接7805轉成5V,就不必外接電源
要不就是用電腦裡有5V的電源線
> 25-30W電烙鐵,銲錫,尖嘴鉗,斜口鉗,小電鑽及數支鑽頭,及其他工具,或是實力
> 堅強的友人,或新臺幣千元大鈔數張!
千元大鈔數張??不必吧?2000元就很夠了
> 製作流程:
> 1.從線路圖(Schematics)Layout成PCB板圖:
> 目前在FWNES CLUB網頁上只有一個線路圖(註:也許你有之前吸出機二號的線
> 路圖,你會發現有點不同,根據請教SCOTT兄得知,新版的線路圖拿掉了一些抑
> 制雜訊用的電阻及電容,軟體的使用都是一樣的),你需要將它LAYOUT成PCB板
因為有跟沒有一樣,故拿掉電阻及電容。
> 不過據SCOTT兄告知,這張板應該LAYOUT成2層板,如果你功力夠,也許能自己
> LAYOUT 單層板,否則就必須請有力人士,例如花錢請廠商作,這可不便宜(PCB
LAYOUT單層板=一定有跳線(預言),不好看
LAYOUT雙面板=無跳線
Scott兄說,他自己來作Layout只要花兩分鐘.....
> 圖=>底片,NT$4000,底片=>PCB板,嘿嘿,最少NT$8000),沒有足夠的熱忱及決心
> ,實在很難令人下手!
光看價錢就腿軟了
> 另一種方式是用洞洞板+OK導線,按照線路圖,做出吸出機.這樣算是廉價很多
> 的替代方案!
很累.....
> 2.製作感光電路板(這是從書上抄來充場面的):
> 首先把電路板的線路印到投影片上,把製作好的透明片放在電路板藥膜上,利
要先做Layout,在用影印機印到投影片上
> 用日光燈或紫外燈來曝光,兩者距離約10CM左右.以18WPL燈曝光,距離很近,約
> 需要20~30分!
日光燈=容易失敗
紫外燈,拿滅蚊燈來改造
> 感光完畢後,可以看到藥膜會變色,此時就得準備泡顯像劑,將不需要的藥膜清
> 除.顯像劑的藥粉在電子材料行也有,泡製時,按照需要的量泡製,因為具時效
> 性,多的放太久也會失效!可以加入熱水,減少時間!
減少時間??一分鐘就夠了,還需要減少時間??
> 感光後的電路板放進顯像液之後,不需要的藥膜便會去除而露出銅箔,此時要
> 檢查線路部份是否露出銅箔,若有,則用油性簽字筆修補,以免線路被腐蝕.接
> 下來是去除銅箔,此時需要"氯化鐵"藥水,此步驟時間較長,加熱一下會進行的
> 快些!氯化鐵有毒且有腐蝕性,在家不宜做,用學校設備較佳.
> 當銅箔去除乾淨只留下所需要的線路後,用水清洗並乾燥後,準備作加工!按照
> 零件的需要,在零件孔位上鑽孔,最好事先量一下元件的腳距,以免零件不好安
量一下元件的腳距??直接插上再剪掉再焊上不就可以了??
> 裝!
> 3.電子元件安裝:
> 安裝零件時,最好是由高度低的先焊,熟能生巧!最後把外接電源DC+5V,GND接
其實,自己爽就行了,不必由高度低的先焊...
>
> 就目前而言,其他人的話,因為對DUMPER 硬體及軟體的資料還不夠,所以還是單
> 方面的依賴SCOTT兄釋出該卡匣MMC的吸出軟體!如果你想寫自己擁有的卡帶吸出
> 軟體的話,需要與SCOTT兄聯絡,以了解更細部的硬體資料,才能撰寫自己的吸出
> 軟體!
想要自行去研發及了解吸出機,先決條件,必需精通英、日文
> 1.找出這卡匣的MMC種類:
> 原裝卡匣的話,比較簡單,因為FANWEN大已經整理出相當多的MMC格式,另外numn
> 大也開始整理FC卡匣的目錄,此外,還有許多日本網頁也有類似的目錄!仿冒卡
> 就不太容易了,因為變種的太多,但是可能有機會找到基本型!
基本型,也就是最早期的台製卡匣,100%模擬正版的MMC,但跟原版卡匣一樣
,不好找到
页:
[1]

