2011年4月25日月曜日

GAMEGEAR 1ASIC版でGGTVトライ

なんだかんだで時間喰ってしまった・・・

初期の2ASICは実例があるので、1ASICでGGTVがうまく機能するかやってみた。

途中RGBケーブル作るのめんどくさくて放置した直後、kitahei88さんがSMSの出力を解決されたのを機にまた作りだすことに(笑

PICT6028

既にSMS表示用のスイッチ付きですw

で、いざ出力テスト。

PICT6031 PICT6032

SMSをRGB出力するとGGのLCD表示がおかしくなるのは仕様なので無視するとして、RGB出力は一見するとうまく表示されてるようですが・・・

PICT6033

実は色がおかしかったりします(^-^;

これはGGもSMSも同じ。

1ASICのGGTV回路は半固定抵抗付いてないので調整ができません。

ので、半固定抵抗に変えてみてどうなるか、ですかね。

どうにも上手く映ってくれなければ・・・既に2ASIC版GGを準備してあるので早々とそっちへ乗り換えるかも~(爆

2011年4月23日土曜日

KazzoとUSBASPのドライバが被る件

先回もチラッと書いた、Aitendoで扱ってるAVRライタ(一般的にUSBASPと呼ばれるもの)ですが、少し気になったことがあり、急遽手元にあった材料で作ってみた。

PICT6018

Aitendoの製品そのものではなく、コチラのオリジナル版ですが、基本同じものです。

(因みに、Aitendoにある回路図中のATMEGA8のピン配列はQFP用で

DIPとは異なるので注意!)

でまぁ、何が気になったかというと、タイトル通りですが、仕様上ドライバが被るんですね(^-^;

usbasp0 usbasp2

どちらも同じlibusbのドライバ使ってるので、例えばKazzoのドライバを先にインストールしてある状態でUSBASPをUSBポートに挿すと、Kazzoとして認識してしまいます(笑

逆もまたしかり。

当然どちらかしか使えなくなってしまうので、現状ではKazzoとUSBASPを使う場合には都度ドライバを更新する必要があります。

これからKazzoを作る予定のある人とか、極稀にファームウェアが飛んだ場合に書き換える必要が出たら、この事に注意しておきましょう。

(一応、これ書いた時点では、ということで)

usbasp1

序に書き込みソフトのことを少し、eXtreme Burner - AVRというソフトは読み書きに特化してるので、開発しないのであればAVR Studio 4を入れなくても簡単に使えますね。

usbasp3 usbasp4

usbasp5 usbasp6

Kazz0やGB Cart Flasherのファームウェアも問題なく、フューズビットもHighとLow(+@)だけでわかりやすい。

(あ、GB Cart Flasherとはドライバ被りません)

実はコッチもちょっと使ってみたかったんだが、日本語環境ではダメなのか上手くインストできなかったw

ってなことでした。

.

それと、AVRとは全く関係ない話、次はようやくGGTV逝こうかと考えてます。

kitahei88さんとこ見て好奇心が復活したので(笑

PICT6019

ホコリからして放置してたことがバレバ~レですなw

んでも、まだ他にも予定が幾つかあるので、もしかすると放置継続するかもしれない?(ぇ?

【追記:20110423/23.40】

PICT6024

とりあえずここまで完成。

これ以降は明日以降~

2011年4月18日月曜日

なんとなくGameBoyのFlashカートリッジ

前々から作ろうと思っていたゲームボーイのFlashカートリッジ・・・というかCartFlasherをごそごそと作ってました。

改造系が好きな人ならまず知っているであろうReiner ZieglerさんのとこのココのUSBのタイプです。

市販のFlashカートリッジは当然(なのか?)何種類か持ってますが、Flashの書き込み環境の増強ということで(笑

PICT5999 PICT6000

ファミコンと比べると配線も部品も少ないので、普通のユニバーサル基板でも比較的楽に作れました。

PICT6001

メインのデバイスを載せると上の感じで。

元々のFTDIの変換チップはFT232BMですが、説明書にBLでもいいと書いてあったのでBLで・・・ってそれしか入手できなかったw

PICT6002

まずはATMEGA8515にファームウェア書き込まなきゃいけないのでAVRライタを使って書き込む。

(余談ですが、aitendoのUSB版AVRライタが安いっ!自作も可能だし、Kazzoのファームウェア書き換えとかでも使えるから持っておくといいかも?)

gbflash3

AVRStdioで書き込む場合、FusesタブでHighとLowの値を合わせてフューズビットを保存する。

上のFuseを一個づつ換えるのはメンドイし、間違うと動かないからね。

保存しないでタブを切り替えると初期値に戻ってしまうので注意する。

gbflash0

フューズビットを書き換えたらお次はファームウェアの書き換えを。

これでハードは完成です。

ソフトはセットアッププログラムでクライアントをインスト後、FTDIのドライバインストのチェックを入れたままで終わればドライバもインストされて準備完了。

gbflash1

で、ハード繋げないでソフト起動すると当然ながら見つからない。

gbflash2

ハードのみ繋げてソフト起動すると、OKです、認識してますw

PICT6004

では市販のROMがちゃんと認識できるかやってみる。

(青LEDはパワーランプです)

gbflash4

OK、認識してるよ~って事で吸い出せるかテスト。

gbflash5

いいねいいね~、問題無しです。

【追記:20110418/22.40】

ゲームを吸い出す場合、CartInfoのサイズを見て、セッティングのFLASHの項目でサイズ変更する必要があります。

当然書き込む場合も合わせる。

んじゃぁ、Flashカートリッジはどうかな?

PICT6006

取り急ぎ作ったAM29F040Bを載せたFlashカートリッジで試してみる。

gbflash6

これもOK、正常だ。

AM29F040Bは新品を使って何も書かれていないので、ブランクとして認識してる。

PICT6007

で、先に吸い出しておいたドラキュラを書き込んでみる。

読み書きすると赤LEDが点滅する仕様です。

gbflash7

うん、何も問題ないねw

gbflash8 gbflasha

SRAMの読み書き消去、Flashの消去も問題なく、とりあえず正常なんではないかと思われる(笑

普通に触るぶんにはセッティングの項は弄る必要はないかな。

【訂正+追記:20110418/22.40】

ゲーム吸い出したりする場合はFLASHの項目でサイズを変更しなくてはいけないようです。

それと、イメージをFlashROMに書き込む時は、手動でEraseFlashしてからでないと書き込みできないw

一回一回手動で消去しないとダメなのねぇ~(^-^;

USB+GUI仕様、読み書きできるので自作Flashカートリッジとしては使い勝手は良いと思われます。

とまぁ、そんなことで、突然GBでした。

あ、このCartFlasherに使った部品はもう1セット分あるので、作りたい人は実費で部品をお譲りする事ができますが・・・ま、作る人は居ないか(笑

2011年4月8日金曜日

ネオポケFlash 本格的に動き出したみたい

最近私はネオジオポケットはサボって(?)ますが、このblogでもコメントをくれた外国のネオポケマイスターのFlavorさんが本気発動したようです。

Neo Geo Pocket Developments

ネオポケのコネクタはマカオさんが作られたものと同じ感じで自作し、既にUSBタイプのPocketLinkerのプロトタイプを完成させてますw

現状ではゲームの吸い出しとセーブデータの書き換えだけなのかな?

ビデオを拝見すると、データ領域の殆どがプロテクト掛ってて、後半なのか、セーブできる領域だけはノンプロテクトっぽいですね。

このリンカーは完成したらおそらく販売されると思うので楽しみです(^-^)

しかし、8bitオンリーデバイスならやっぱ書き込みできそうな予感だなぁ。

(あ、8/16もA-1ずらせばいいのかな?)

因みに、ひと月以上前に注文した、SST39VF016-70-4C-EIの姉妹品が、テキサスからインディアナポリス、アラスカを経て昨日関空に届いたもよう。

明日(今日か?)には届くかもね~

ネオポケで思い出したけど、そういえばドイツ(Retrodeの開発者さん)にネオポケコネクタ送らなきゃいけないんだけどまだ送ってないや(汗

・・・週末忘れずに送ろう。

.

ネオポケと関係ない話、MBM29F800Tの書き込みがKazzo+Anagoでできるようになりました。

んが、まだちょっとちょっとなので、もうちょっと考えてからna6koさんに聞こうかなぁ、と思っているけどまだ悪足掻きしたいから聞かないw

ま、ソコが解決したところで”とりあえず”な方法には変わりないけども(笑

2011年4月4日月曜日

EN29F002T使ったMapper2FlashCartridge

昨日EN29F002T(コマンドマスクA0-A14←A10っぽい)を使ってマッパー3のフラッシュカートリッジが無事動かせたので、PRG-ROMのバンク切り替えのあるマッパー2ではどうなるのか、昨夜寝る時からとっても気になってしまったので、速攻で作ってみたw

マッパー2の製作方法は公式の汎用ページばくてんさんのとこを参考にしてください。

順序が逆かもですが、マッパー0とマッパー3のフラッシュカートリッジを作れればマッパー2も難しくないはずです(^-^;

PICT5991

マッパー2はUNROM(28ピンROM)とUOROM(32ピンROM)がありまして、上の2本がUOROMのゲームです。

この2本ならPDIPなデバイス使えば配線が楽に済みます。

で、昨日のマッパー3と同じように作った。

PICT5987 PICT5989

A0-A14だから公式と同じ配線ではダメだろうなぁ・・・と思いきや、なんのことはない、A10っぽいからあっさり書き込みできてしまいました(笑

書き込めない時の対策はしてません。

う~む・・・なんでだろう?

データシート的にアヤフヤな部分もあるのですが、EN29F002TはA0-A10っぽい感じ。

なので、Anago_GUIのアーカイブに入ってるflashdevice.nutのEN29F002TのMASK_A14をA10に変更するといいみたい。

やはり、/OE、/WE、/CEのHi⇔Loの微妙なタイミングなのかなぁ・・・

↑直接の原因ではないかも?

ま、とりあえずマッパー2でEN29F002Tは普通に使えました、ということで。

因みに、上のマッパー2とはあまり関係ないんですが、CHR-ROM仕様のカートリッジの場合、確定ではないんですが、コマンドマスクA0-A10のデバイスをPRG-ROMへ取り付けると、CHR-ROMにA0-A14のデバイス付けてもすんなり書き込める傾向があるみたい。

逆は止まる場合がある。

といった感じなので(?)、これから作る人は動作確認が取れてる状態と同じように作ったほうが間違いはないかもね。

入手しやすいデバイスでMapper3FlashCartridge

一昨日マッパー3(#3)基板でマッパー0のゲームが動かせて面白かったのでもういっちょ逝ってみよ~ってことで作業開始することに。

が、AM29F040Bは、特にPDIPタイプの入手経路はとても少なく、作り方書いても手を出せない人も多いのではないか、と。

デバイスによって書き込めない場合もあるしね。

ってことで、比較的入手しやすいデバイスで動かせるものを選んでみた。

PICT5984

前にも何度か載せてるけど、秋月電子で売ってるEN29F002Tです。

2個セット(ソケット付き)で250円なので安いし、#3で動かすには十分の容量です。

PLCCタイプだから取り付けるには必然的にソケットから基板へ配線をしなければならないので、PDIPと比べるとハッキリ言って作業はメンドクサイです(ぉ

その代わり、デバイスの取り外しは可能なので使いまわしはできる(笑

う~ん・・・残念ながらPDIPタイプで安くて簡単に手に入るものはそうそう無いんですよね(^-^;

ま、ここはちょっと妥協してもらうとして・・・

このEN29F002T、ちょっと難しい話(私では細かく説明できないw)ですが、コマンドアドレスがA0-A14のタイプです。

↑訂正:どうもA0-A10っぽい(未確定)です(^-^;

A11の可能性もあったんですが、何故かA10で通ってしまったw

公式の汎用の説明を読むと、A0-A10のもの(AM29F040B、MX29F002など)のみ使用可能とのことなので、ダメじゃんっ!とツッコミ来そうですが、その辺はご安心を。

何とか正常に動作させることができましたw

配線方法は前回のマッパー3の製作方法とは1か所違うだけで、そこ以外はこの記事では書きませんので前を参考にしてください。

↑同じ配線で、flashdevice.nutのパラメータを変更することで解決しました。

PICT5979

カセットに内蔵するために、プリント基板を必要最小限にカットして、PLCCソケット2個と74xx00を固定します。

plcc32_socket

PLCC32ピンデバイスのピン番号は上を参考に。

PICT5985 PICT5986

PLCC2個+74xx00でカセットケースにピッタリと収まっていい感じに。

#3基板のパターンは28ピン用で、使うデバイスは32ピンなので、ハンダ付けは間違いやすいので注意が必要です。

32to28

同じ信号(PLCC-DQn=DIP-On)通しを繋ぐ(PRG-ROMの/CEはGNDに落ちてるので未使用)と、PLCCの1、2、31、32ピンが残るはずですから、31ピン以外をVccへ、31ピンを各WR用の個所へ繋ぐ。

nand3a

んで、AM29F040Bを使った汎用の回路では、残念ながらEN29F002Tではやっぱり書き込みできなかったので、上のように74xx00の6ピンをGNDに落とします。

↑6ピンは何も繋げてはいけないそうです。

この回路で6ピンをGNDへ落とすと将来的に74xx00が壊れる可能性もあるのだとか(^-^;

たまたま動いてただけのようです(爆

ってことで、パラメータ変更で無事書き込めるようになりましたので追記しておきます。

enflash

公式に置いてあるunagi_client_windows_062.zipの中にあるflashdevice.nutをメモ帳などで開き、EN29F002TのパラメータにあるMASK_A14をA10へ変更する。

こうするとちゃんと書き込みもできるようになるのでしたw

en29f3

当然、#0も問題ありませんw

あ、#3に#0のデータを書き込む場合はnrom_GUI.afを使ったほうが早いですので(笑

それと、前回の#3の製作方法のとこに訂正しておきましたが、マッパー3基板にダイオードが付いている場合は取り外してください。

ミラーリングがHのタイプのゲームをする場合、キャラ化けすると思うので。

多分、V基板しかダイオードは付いてないと思いますが、取り外してもVのゲームはちゃんと動きます。

そんなわけで、該当するファミコンのカセットが105円程度、EN29F002Tが2個セット250円なので、安く出来上がるんではないかと。

あとは道具類とやる気だけですから~

2011年4月2日土曜日

マッパー0をマッパー3で動かす!?

あっ!

そうかっ!

マッパー3(#3)のFlashカートリッジがあればマッパー0(#0)のFlashカートリッジ要らないんじゃないかっ!!

・・・えっと、#0と#3の動作の違いはCHR-ROMのバンク切り替えのみです。

そのバンク切り替えの指令はPRG-ROMに記録されているプログラムから送られます。

つまり、#0のプログラムからは指令が送られないのでバンク切り替え機能が使われないだけ、となる(笑

#3の基板で#0を動かしても動作的には#0で動いてる、ということです。

したがって、今日アップした#3のFlashカートリッジだけで#0も#3も動かせて一石二鳥なのであった(笑

と、いうことに、今日#3作ってから気が付いた・・・(滝汗

PICT5977

え~・・・#0のが作るの簡単なので、工作苦手な方は試しに#0作ってから#3へステップアップしたほうが良いということで(^-^;

書き込みには、nrom_GUI.af、cnrom_GUI.afのどちらでも使うことができます。

#0のPRG-ROMが16KByteのものや、#3のCHR-ROMが16KByteのゲームでもAnago&Kazzoで調整してくれるので問題ありません。

#0、#3はハックロムが多いからどの道#3作りたいなぁ~、って人は#0すっ飛ばして#3を作ったほうが楽かもしれません(笑

あ~こりゃこりゃ。

ファミコン マッパー3のFlashカートリッジ製作方法

マッパー0のフラッシュカートリッジ製作方法はこちら

今度はマッパー3です。

【使う材料】

・マッパー3(HVC-CNROM)の基板

・FlashROM(AM29F040B)×2個

・74xx00(NANDゲートIC、xxの部分はLSやHCなどで)

・工作に必要な道具類など

【使用する基板の選択】

PICT5956

3の基板もソフトメーカー独自の基板が存在します。

(注:写真のバンダイの基板はEPROM用に改造してあるもので、市販物では存在しません)

マッパー0にも存在しましたが、3にも黒ツブシROMが使われている基板があります。

特定のゲームで使われているわけではなく、同ゲームタイトルでもROM版と黒ツブシ版が混在してるので、探す時はコネクタ側からROMのピンが見えるかどうか確認する、重さで判断するのが良いでしょう。

他にもあるかもですが、コナミとバンダイの基板はROMを取り付ける側が任天堂(HVC)基板と表裏が逆になります。

質の悪い基板が存在するかは現在確認できていません。

PICT5943

今回はHVC-CNROM-256K-01基板を使います。

マッパー3のPRG-ROMのサイズは256Kbit(32KByte)、CHR-ROMのサイズは256Kbitと128Kbitのものがあります。

ファミリートレーナージョギングレースのみCHRに1024Kbitが使われているようです(未確認)が、もしそうであるのなら、このソフトだけは今回作るフラッシュカートリッジの仕様上動かすことはできません。

PICT5948

補足として、ダイオードが載ってる基板と無い基板がありますが、どちらでも同じ動作をするのであまり気にしなくてもよいです。

【訂正:20110403/23.00】

ダイオードが付いてるマッパー3のゲームはおそらくミラーリングが[V]の基板だと思われますが、[H]のゲームを書き込み&ジャンパを[H]に切り替えてゲームをプレイするとキャラクタが化ける可能性があります。

なので、ダイオードが付いてる場合は取り除いたほうが良いと思います。

ダイオード取り除いても[V]のゲームプレイには支障ありません

(D1の向きを逆にすると#185になります、このあとのことはまだ(?)書かない)

PRGは通常のまま読み込まれ、CHRだけがバンク切り替えで読み込まれることになります。

キャラクター表示方法(V/H)の切り替えはマッパー0と同じ要領なのでそちらの製作例を参考にしてください。

マッパー3ではマッパー1、4などのようにメモリコントローラを積んでなく、74xx161で制御されています。

しかし、このままでは読み込みはできても書き込みができないので、74xx00を追加する必要があります。

この74xx00を追加する意味合いとしては、バンク切り替え時の暴走を防ぐため、だそうです。

配線方法はUnagiのflashmemory/SRAM cartridgeのページにあるマッパー2と同じような配線になります。

マッパー0と被るところは基本的に端折りますので、マッパー0の制作方法も目を通しておいてください。

【AM29F040Bと74xx00の加工】

今回もマッパー0と同様、AM29F040B×2個+74xx00を使用し、基板のパターンカットしないことを前提に製作します。

040bprg 040bchr

AM29F040Bの足の加工、配線先はマッパー0と全く同じです。

次に74xx00の足を加工します。

使用する74xx00のxxはマッパー3で使われている74xx161の型番にあわせたほうがよいです。

ファミコンではxxの部分がLSかHCが使われています。

今回使用する基板には74HC161が載っているので、74HC00を使います。

nand2

公式のページにもありますが、こちらでも載せておきます。

(12、13ピンはPRG側のAM29F040Bの22ピンとも接続することになり、1、2ピンもPRG側のAM29F040Bの31ピンとも接続することになります)

pict5951a

7ピン(GND)のみそのままで、未使用ピンは切り落とします。

【基板と74xx161の加工】

マスクROMは既に取ってあることを前提で進めます。

PICT5957 PICT5954

配線する主要な線の信号名だけ写真に記しておきます。

PICT5955

32、47ピンはカッターなどで削ってハンダ付けしやすいように銅の面を出しておきましょう。

V/Hの切り替えスイッチ付ける人は先に取り付けておくといいかもしれません。

後からだとCHR-ROM側に載せたAM29F040Bが邪魔でハンダ付けしにくくなります。

(表からハンダし難い場合は裏のパターンにハンダ付けも可能です)

スイッチの取り付けは各自好きな方法で。

今回はH(垂直ミラー)固定で作ります

次に74xx161の足を加工します。

m3161

PICT5950

基板のパターンカットをしないと書いたので、74xx161の2ピンをニッパーでカットします。

この足は後で74xx00の8ピンを繋げるので、ハンダできる程度の足は残してください。

2ピンが刺さっていたスルーホールはCPU /ROMCSへ繋がっているので、ココには後で74xx00の12、13ピンを接続します。

PICT5949 ←パターンカットの場合

パターンカットした場合は74xx00の12、13ピンをAM29F040Bの22ピンへ接続するのが楽だと思います。

【基板へ取り付け】

上で書いた準備が終わったら、AM29F040Bと74xx00を基板にハンダ付けします。

PICT5959

HVC-CNROM-256K-01基板には空きランドが見当たらないので、74xx00のGNDを、PRG-ROM側に取り付けるAM29F040BのGNDと一緒にハンダ付けして固定します。

厚手の両面テープなどで裏を仮止めしておくと作業がしやすいです。

PICT5976

デバイスの取り付けが終わったら、後は配線をするだけです。

文章ではわかりにくいと思うので、いろんな方向から写真を撮ったので参考にしてください。

PICT5965 PICT5966

PICT5967 PICT5969

PICT5972 PICT5973

PICT5974

74xx00の位置や配線する箇所などは参考例のようにしても構いませんが、信号が指示通り繋がるのであればどこでも良いです。

配線まで終わったら、テスターで各信号線が通電するか確認しておきましょう。

ケースの加工はマッパー0のところを参考にしてください。

【読み込み&書き込みテスト】

PICT5962

AnagoGUIで読み込み、書き込みをするのであれば、左のファイル置き場からn_cn_GUI_script.zipをダウンロードして、その中にあるcnrom_GUI.afを使用します。

cosmo

ダンプ、プログラム共に同じスクリプトで対応します。

書き込み時のミラーリングチェックはマッパー0同様気にしなくても良いです。

正常に読み書きできることが確認できれば完成です。

終わり。