EZF-AdvanceIII
EZF-AdvanceIII
オフィシャルサイト
容量と価格
容量 | 価格 | 備考 |
---|---|---|
EZF-AdvanceIII 256Mbit | 60USD(Linker4U) | |
EZF-AdvanceIII 128Mbit | 45USD(Linker4U) | |
EZF-AdvanceIII 128Mbit | 39USD(Linker4U) | カートリッジのみ |
SmartCard 256Mbit | 60USD(divineo.cn) | |
SmartCard2005 256Mbit | \5980(ゲームバンク) | 意匠権対策でカート加工 |
特徴
- SRAM,EEP4K,EEP64K,Flash,Flash1Mセーブ対応。
- SRAM以外はローダーによるパッチorハードウェア制御
- ゲームボーイウォーズアドバンス1+2(Flash1M)がそのままセーブ出来ます
- セーブ領域はSRAM2Mbit(未確認だが64Mbit/128Mbitのカートは1Mbitなのかも)
- 32KB(256Kbit)*8の領域として考える。
- Flash2Advance/256Mbit(後期型)に載っているSRAMと同じチップ
- 128MbitのFlashChipを2個搭載。制御チップは黒い塊(なんて呼ぶか知らない)
- リチウムバッテリー LITHIUM BATTERY 3V搭載。安心の一次電池。
- EZFA,ECube,EZFA II等と互換性無し
- SmartCard(OEM元?)と互換性あり
- 書き込み速度は激遅。256Mbit書き込むのに10分くらいかかる。
対応リンカー
- USB書き込み機タイプのリンカー、本体不要
対応クライアント
- EZF Advance III Windows Client Software Driver 2.1(以下EZFA3C2.1)
- GB Writer 2.1(SmartCard付属)
- クライアントは英語、簡体中国語、繁体中国語対応
- ローダーはゲーム名の簡体、繁体中国語表示に対応(簡体字にはひらがな、カタカナを含む)
解説
EZFA-IIIの正体は、EZFAの皮をかぶった SmartCardです。
EZFA開発者のborden氏曰く
とのことで、EZF-AdvanceIIIも御多分に漏れずwww.ezf-advance.comが公式っぽいのでパチもんすね。「現在、市場にEZFA IIというカートが出てきたが、それは偽物である。EZFA IIは私たちの商品ではなく、XG2 Turboのラベルを張り替えただけの物である。www.ezf-advance.comは偽の公式サイトである。又、私たちはEZFA IIと名乗る製品をリリースしていません。あなたがEZFAを好きならば、この偽物のことを広く知らせましょう」
- SRAM,EEP4K,EEP64K,Flash,Flash1Mセーブ対応。
- ロムにはパッチされない。
- ローダー無しだとEEP4k,Flash1Mは起動orセーブ不可
- ローダーによるパッチorハードウェア制御か
- SmartCardユーザもGBWriter2.0よりEZFA3クライアント2.1をインスコしよう。
- ・・・だったが、GBWriterも一応2.1にバージョンアップした。でもEZFA3C2.1にしておこう。機能一緒だし
- ローダーのゲーム名にファイル名と違う名前が使用できる
- マルチロム時にファイルを選んだ順序に書き込みできる(環境によってはできない)
- セーブデータのファイル名をロム名に合わせなくてよい(書き込みにコツあり)
- 「書き込み時のセーブの設定」、「セーブの読み書きのコツ(バグ)の理解」の二つを行えば至極普通に使える。
- クライアントはバグだらけ。
- TestGameで起動するVBAはカートの特殊機能をサポートしていませんので、先頭のロムしか起動しません。ゲーム名表示のチェック等に使いましょう。
必須設定とセーブ設定の方法(Emuboardsより要約) ※2.1では必要無し
クライアントのインストール後、まず以下のレジストリキーを書き換える
[HKEY_CURRENT_USER\Software\Foss\GBwriter]
"ShowType"を02から00に書き換え。(最初から00の場合もある)
そしてクライアントを起動するとSRAM Sizeの値が4になっている。
以後ここは好きな値に書き換えることができ、その値は保存されるようになる。
また、これによりカート上のセーブデータをディスクに保存できるようになる。
(この操作をしないとセーブデータをディスクに待避できない)
- ShowTypeはクライアントのデザインでした。ShowType=00はLook 2003で、Look XP、Look 2Kはバグ持ち
EZF-AdvanceIIIのSRAMが公称通り2Mbitであれば、SRAM Sizeは8なので
(これは32KBx8=2Mbit(256KB)だから)
[HKEY_CURRENT_USER\Software\Foss\GBwriter]
"SramSize"を08に書き換え。
- Look 2003にしておけばレジストリを触らなくても保存される。
セーブは、"Save Type"に合わせて32KBのスロットを以下の数だけ割り振ります。
セーブタイプ | 容量 | 使用スロット |
---|---|---|
None | 0KB | 0スロット |
SRAM | 64KB | 2スロット |
EEP4K | 32KB | 1スロット |
EEP64K | 64KB | 2スロット |
Flash | 64KB | 2スロット |
Flash1M | 128KB | 4スロット |
"Save Position"はSRAMが1Mbit(4スロット)である場合は0〜3、2Mbit(8スロット)である場合は0〜7の値を指定できる。(4スロットのカートは未確認、多くの場合は8スロットが使用可能)
リストに追加したそれぞれのゲームの"Save Position"にそれぞれのゲームが必要とするスロット数を考慮しつつ0〜7の値を割り当てる。
例:SRAMのゲームを入れる、"Save Position"を0とする。このゲームは2スロットを使用するため0,1スロットが使用される。このため他のゲームがスロット1を使用してはいけない。次のゲームの"Save Position"は2となる。
2番目のゲームをEEP4Kと考える、先述の通り"Save Position"は2となる、そしてこのゲームは1スロットを使用する。次のゲームの"Save Position"は3となる。以下同様
ちなみに中国語の説明書では2スロットのゲームの"Save Position"は2の倍数(0,2,4,6)、4スロットのゲームの"Save Position"は4の倍数(0,4)を指定すると記述されていたため、これに合わせた形にした方が無難かも知れない。(0は倍数に入らないとか揚げ足取らないように)
"Game Number"は何か不明。
長文スマソ
このカートは完全なヤスモノです、クライアントもパッとしません、しかしこれらの珍妙な操作方法を理解すればハッピーになれます。(当然私はカートを作っている会社とは何の関係もありません(´∀`))
敬具
(Emuboardsのramon2000氏の書き込み意訳転載)
"Game Number"のフィールドは空欄にしておくのが一番かも知れません。これはどちらかというと"Game Count"呼ぶべきもので、マルチロム時に使用されます。
例えば"Game Number"の値を99にすると、ローダーの上に"99 In 1"と表示されます。
(Emuboardsのjruschme氏の書き込み意訳転載)
セーブデータの吸い出し、書き込み
- カートからセーブデータをHDDに吸い出す場合
- リストからゲームを選択する
- ReadSavを選択する。
- セーブサイズを確認して保存。
- カートにセーブデータを書き込む場合
- リストからゲームを選択する。
- ReadSavで、適当なファイル名で保存する。(書き込みたいsavを誤って書き潰さないよう)
- Wri.Savでカートに書き込みたいセーブデータを選択する。
- 書き込みは、その前に吸い出しを行ったゲームに対して行われる。
- ReadSavを行わずにWri.Savを行うと、その前にReadSavを行ったゲームor先頭のゲーム(起動直後)にデータを書き込む。
危ないので予め大事なセーブデータを吸い出してから試したほうがいい。吸出しは癖がないので安心。
Pogoshell動作(結果は×)
- Pogoshell2.0beta4と041112WIPで確認。
プラグイン名 | 起動 | セーブ |
---|---|---|
PocketNES | ○ | × |
goomba | ○ | × |
PCEAdvance | ○ | × |
mod | ○ | × |
内蔵テキストリーダ | ○ | × |
マルチブート(.mb) | ○ | × |
HVCA | × | |
nsf | × | |
GBA(プラグインじゃないか) | × |
まあ他の非対応マジコンと同じ動作でしょう。
ローダーについての考察
- マルチロムは各ロムの先頭がきりのいい位置に来るようにファイルサイズが切り上げ調整されてサイズの大きい順に書き込まれる。
- その上でマルチロムを構成する各ロムの末尾を調べ、空いたスペースにローダーが組み込まれ、先頭のロムの頭3byteからローダーにジャンプしている模様。
- このためトリムすると不安定になるロムにローダーが組み込まれた場合は問題あるかも?
- 末尾にランダムな数値のダミーを付加することで回避可能かも?
- シングル書き込みの際もローダーは組み込まれる。
- ローダーは表示されないがローダー経由で起動している。
ローダーが原因で起動しないソフトをローダー無しでシングル書き込みする
- 目的のロムをgbaIn1.gbaにリネームする
- プロパティの読み取り専用属性をONにする
- クライアントのインストール先にコピーする
- Select Gameで適当なロムを読み込んでWri.ROMを選択する
- ROM Build errorと表示されるのでOKをクリックする
- 書き込みを開始する
この方法でリストを無視してロム単品を書き込めるので、ローダーによるエラーが回避できる。この場合セーブパッチが必要かもしれない。またこの方法だとセーブ方式がカートに保存されていないので、ReadSavでセーブデータを待避する際、読み込みサイズを手動で指定する必要がある。
- 書き込み完了後はgbaIn1.gbaを削除するか読み取り専用属性を解除しないと次回書き込み時にまた同じROMを書き込む羽目になる。
帽子屋インサイドさんのソフトのROMイメージ同一性チェック等
- 帽子屋のロムは、マルチロムの先頭だと認証チェックが通りません。
- ローダーがロムの中央に埋め込まれて破壊するわけではなく、ローダーにジャンプする先頭3byteが原因で起動しません。
- と、言うことで同様に全ての帽子屋さんのソフトはマルチロムの先頭に配置された場合動かないと思われます。
動かし方
- シングル書き込みの場合、ローダーのせいで通過しない。(通常の方法では不可避)
- 先述のローダー無し書き込みで通過可能になる。
- マルチロムの場合は帽子屋のソフトが先頭になると、通過しない。
- 後述の追加順書き込みで他のソフトの後ろに帽子屋のソフトを書き込む。(EZFA3C2.1使用)
- GB Writer2.0では強制的にサイズ順で書き込まれる模様なので、128Mbitを越える帽子屋さんのソフトは通過不可。
- 後述の追加順書き込みで他のソフトの後ろに帽子屋のソフトを書き込む。(EZFA3C2.1使用)
- マルチロム一度できたはずなんだけどうまくいかなくなった。原因調査中
マルチロム時のローダーでゲーム名の漢字(かな)表示をする方法
- B2J for Win32を使用する。(BIG5コードのみ)
- B2J Editorで原文モードにしてゲーム名を入力し、BIG5コードに変換する。
- 変換に失敗することがあるみたいなので原文を打ち込んでからBIG5→原文→BIG5と二回変換たほうが確実。
- 変換された文字列(化けている)をコピーしクライアントの"Chinese Name"に貼り付ける。
- B2J Editorで原文モードにしてゲーム名を入力し、BIG5コードに変換する。
- 秀丸エディタを使用する。(BIG5,GB2312どちらも可)
- ゲーム名を入力し(複数OK)、「名前を付けて保存」で文字コードを「Unicode」に指定して保存する。
- もう一度「名前を付けて保存」を選び、文字コードを「繁体中国語(Big-5)」か「簡体中国語(GB2312)」に指定して上書き保存する。
- 一度エディタを終了させ、保存したファイルを開く。
- 化けた文字列が表示されるのでそれをコピーしてクライアントの"Chinese Name"に貼り付ける。
- 転送して文字化けすると凹むのでTestGameでチェキしてから転送しましょう
- 中国語名は全角文字のみです
- Big5コードで使用できるのは漢字と英数字のみみたいです。
- まあ「超級馬里奥Adv」とか「口袋妖怪緑宝石」とか入れときましょう。
- GB2312コードではひらがな、カタカナが使用できます。
- 内蔵されているフォントが不完全なのか一部漢字が文字化けするみたいです。
- IEでtxtを開いてエンコードをGB2312にすると表示されるからフォントの問題?
- 秀丸エディタからコピーする際に何か書き換わって文字化けすることもあるみたいです。
- この文字化けはTestGameでVBAが起動した時にChineseNameのフィールドが一部変化する
- 常用しているファイラWinFM2000内蔵のFView2000からコピーすると化けない
- 最後の一文字が化けることがある(例:ル)
- コード変換の前にゲーム名の後ろに全角スペースを入れると回避できる。
- ー(長音符号)は$に化けてしまうので−(ハイフン)を使う
- 内蔵されているフォントが不完全なのか一部漢字が文字化けするみたいです。
- 参考:中国語の文字コード
繁体中国語表示の例(三が特徴的)
簡体中国語表示の例(ひらがなもOK!)
簡体中国語表示の例(偵と宮が文字化け)
マルチロム時のローダーのスプラッシュ画面を変更する
240x160x8bitの画像を用意し、Logo Selectで指定する。クライアントのインストール先のlogo.binが更新される。オリジナルのスプラッシュ画面は上書きされて元に戻すことはできないので念のためバックアップしたほうがいいかも。
マルチロムでファイルを追加した順に書き込む(EZFA3Client2.1のみ)
- ロムはデフォルトではサイズの大きい順に書き込まれる。
- Game ListのRom,Size Bit,Size Byte,Internal Name,SaveTypeなどをクリックして並べ替えを一、二度行ってから書き込めばロムを追加した順(並べ替えた順ではない)で書き込まれる。(GB Writer2.0の場合強制的にサイズ順の模様)
- 転送前にTestGameで結合順序を確認できる。
- 並べ替えを行ってもゲーム名やSavePositionは各行に対応したまま動かないという破茶滅茶な仕様。
- リストのn行目をクリックしたときに編集されるゲーム名、SavePosition等はn番目に追加したロムのそれであると理解した方がいい。
- 要らぬ間違いをせぬために、設定してから並べ替えすべき
とこれで問題ないと思っていたのだが。
- 並べ替えを行ってから結合してもサイズ順になってしまう場合がある。
- ある日突然ダメになって、以来並べ替えが出来なくなった。
- TestGameで並べ替えに失敗して、もう一度TestGameを行うと結合順は同じなのにローダーの順序が追加順になる。
- 結合順は大きさの順のままなので帽子屋は起動しない
- マリオアドバンス→AIR(OPあり)の順に追加し、2回TestGameを行うと二回目はマリオのみFlashROMの半端な位置に書き込まれて画面がおかしくなる。
- 以前、マリオアドバンス→AIR(OPあり)の順に書き込んだときは起動に成功したのだが。
- OSの具合に依ってうまくいく環境といかない環境があるのかも知れない。
- クライアントを再インストールしても無駄だった。
- 何が悪いって環境が悪いんじゃない。クライアントがバグだらけだからだ。修正verが出ることを切に望む。
- ロム書き込みリストを保存するRead Project、Write Projectの機能を使い、プロジェクトファイルを直に書き換えることでロムの書き込み順序(というかロムの先頭位置)を直接指定し、任意の順序でロムを書き込むことが出来ましたが、ローダーがきちんと設定されずに追加されるので使用は出来ませんでした。
追記:takeru
私の場合、TestGame1回で並び替えが行われました。結合順もきちんとなりましたが、
なぜか帽子屋のみ起動せず。市販2つと帽子屋1つで書き込んだ結果、どの組み合わせでも帽子屋のみ動かず。
市販、帽子屋共に数種類試したが、やはり帽子屋のみ起動せず。
以上です。
帽子屋ロム(16M以下のみ)を先頭以外に持ってくる
- プレイしたいロムとダミーロム(最後になるよう、サイズ最小のロムにしましょう)を用意し、TestGameで結合。
- この際に、どうにかしてローダーがダミーロムに組み込まれないようにする。
- 結合して出来たファイルをバイナリエディタで開き、ダミーロムの部分を帽子屋ロムで上書き。
- ローダーを書き換える。ファイル名やロムサイズetc...(詳しくはまた今度)
- gbaIn1.gbaにリネーム→読み取り属性on。で書き込み。
- これで帽子屋ロムが普通に起動する。
- 注意
- 16Mを超えるロム(AIRやらCROSS†CHANNELやら)では、なぜか上手くいかない。
- ローダーの位置をバイナリエディタで動かし、マルチロムのヘッダを書き換えても上手くいかない。どうやらローダーの中身もいじってやる必要がある模様。
- クソ面倒臭い。
プロジェクトファイルの考察
- 書き換えたところでろくな事になりそうにないので参考程度に。
- テキスト形式で、各ゲームが11行ずつ、最後に5行使用される
- プロジェクト編集で書き込み順序の強制変更を行った場合、ロムのスタートアドレスがきちんと変更されないので二本目以降のロムは起動しない模様。
行揃えが出来ないから見にくいけど表で書きますよー。
マリオアドバンスとAIR(OPあり)を追加して保存したプロジェクトの例。
プロジェクトファイルの行 | 内容 | 備考 |
---|---|---|
3 | 謎 | |
C:\ULA\SMA.gba | ロム位置(フルパス) | |
SMA | 英語名 | |
中国語名 | ||
4110964 | トリムを行ったロムのサイズ(byte) | |
4 | セーブ形式 | 2:None 3:Sram 4:EEP4k 5:EEP64k 6:Flash 7:Flash1M |
0 | セーブ位置 | |
0 | 謎 | |
0 | ロムが書き込まれる絶対位置(10進byte) | デフォだと0、TestGameを行うと値が決まる |
0 | 謎 | |
83340 | きりのいい位置までのスペース | ここが一定以上の場合ローダーが組み込まれるのか? |
3 | ここから二本目のロム | |
C:\ULA\AIR.gba | ||
AIR | ||
21072064 | ||
3 | ||
2 | ||
0 | ||
4194304 | ||
0 | ||
30528 | ここまで二本目のロム | |
x | 謎 | |
33554432 | FlashROMのサイズ | 256Mbit=32MB=33554432bytes |
8371404 | 隙間 | FlashROMサイズ−各ロムのトリム済みサイズ |
25296896 | 書き込まれるロムの合計サイズ | |
00 | Game Number or ローダー埋め込みアドレス | クライアントから保存はされない。メモ帳で書き換えて読み込ませると読み込む。ここが00以外の場合ローダーの埋め込みアドレスをここから取得してしまうみたいなので書き換えると危険 |