Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
anago
profile
release
.gitignore
Makefile
README.md
client_test.h
config.h
crc32.c
crc32.h
crctable.h
file.c
file.h
file.mak
flashmemory.c
flashmemory.h
giveio.c
giveio.h
hard_dozeu.h
hard_hongkongfc.h
hard_onajimi.h
meg.ico
memory_manage.c
memory_manage.h
paralellport.h
reader_dozeu.h
reader_hongkongfc.c
reader_hongkongfc.h
reader_kazzo.c
reader_kazzo.h
reader_master.c
reader_master.h
reader_onajimi.c
reader_onajimi.h
romimage.c
romimage.h
rule.mak
script.h
script_engine.c
script_syntax.c
script_syntax.h
syntax_data.h
textutil.c
textutil.h
type.h
unagi.c
unagi.ico
unagi.rc
unagi.txt
usb_device.c
usb_device.h
version.h
widget.c
widget.h

README.md

unagi - client

famicom ROM cartridge utility - unagi

client version 0.6.x

by 鰻開発協同組合

公式サイト http://unagi.sourceforge.jp/

はじめに

famicom ROM cartridge のデータ転送を行います。 ハードウェアは国内で有名な2種類に対応しています。

特徴

他の読み出しプログラムではマッパ別の対応はプログラムに内蔵されており、未対応のマッパの追加ができるのはプログラマだけでした。unagi ではマッパ対応をスクリプトに記載することによってユーザーが追加することができます。

バンク切り替えの仕様をしることによって技術的な興味がわくかもしれません。

コマンドラインでの無味乾燥なインタフェースによりビギナーお断りとなっております。

動作環境

  • パラレルポートと読み出しハードを接続した Windows 環境
    • Windows XP にて動作確認しています。たぶん Win95 までなら大丈夫。
    • パラレルポートアドレスは 0x0378 固定です。USB 接続のものは使えるか分かりません。
  • USBと読み出しハードを接続した Windows 環境
  • GIVEIO.SYS をインストールした環境
    • パッケージには含まれていませんので別途用意してください。

cmd.exe, rxvt などのコマンドラインシェル

ハードウェアの選択

クライアントについている unagi.cfg をテキストエディタで編集して使用するハードを選んでください。行頭に # がついているものは無視されます。

hongkong fc での問題

キャラクタROM/RAM 判定の PPU_RAMFIND が正しく動作しない場合やキャラクタROM領域の書き込みが安定しない場合はコメントを外して試してみてください。根本的な対処方法は不明です。

コマンドライン引数

unagi.exe [mode] [script file] [target file] ...

d ROM DUMP MODE

ROM イメージを作成します。

unagi.exe d [script file] [dump file] [flag] [mapper]
script file - 対応するマッパの ROM スクリプトファイルを指定します。
dump file   - 出力する ROM イメージファイルを指定します。
以下は、通常は必要ありません。
flag        - 出力するヘッダを設定します。複数の場合はスペースをいれずに記述します。
  S カートリッジに backup RAM がついている場合
  V スクリプトの設定を無視して mirroring を Vertical にする
  H スクリプトの設定を無視して mirroring を Horizonal にする
  _ mapper変更だけを適用する場合
mapper      - スクリプトの設定を無視してマッパ番号を設定します。

r RAM READ MODE

バックアップ RAM イメージを PC 上に作成します。

unagi.exe r [script file] [dump file]
script file - 対応するマッパの RAM スクリプトファイルを指定します。
dump file   - 出力する RAM イメージファイルを指定します。

w RAM WRITE MODE

バックアップ RAM イメージをカートリッジへ転送します。

unagi.exe w [script file] [ram file]
script file - 対応するマッパの RAM スクリプトファイルを指定します。
ram file    - 入力する RAM イメージファイルを指定します。

f flashmemory/SRAM PROGRAM MODE

カートリッジ上の ROM を flashmemory か SRAM に交換した上で、ROM イメージデータを代替デバイスに転送するモードです。制限は多いですが、一応動作実績があります。

スクリプト仕様

ROM dump script パッケージの syntax.txt を参照してください。

ライセンス

unagi クライアントのバイナリとソースコード(例外有り)は下記が適用されます。unagi スクリプトは naruko が作成したものは下記が適用されます。

GNU General Public License v2

例外物

  • GIVEIO.SYSアクセスライブラリに含まれる giveio.c, giveio.h えふ・ぴー・じー・えー・ぱーく管理人の「さとう」さんのご厚意によりソースコードも配布ソースに含めてよい許可をいただいております。二次配布などの取り扱いはさとうさんの許可を得てください。
  • GIVEIO.SYS 配布パッケージにも含めませんし、作者が誰なのかもわからないのでパッケージに含めないでください。
  • client_test.c 実験的なソースが入っているのと、なくても RELEASE ビルドは可能なこと、無断転用でのトラブルを防ぐために非公開にしました。個別に要望があればソースは公開します。

謝辞

  • 資料提供をしてくれた color さん, VirtuaNES のソース, nesdev
  • GIVEIO.SYSアクセスライブラリのさとうさん
  • ハードウェアを貸してくれたカシオン
  • アイコンを描いてくれたひろひろきさん
  • プログラミング環境の mingw と rxvt
  • 各種実験に協力してくださっているばくてんさん

使用ライブラリ

[LibUSB-Win32]
Copyright (c) 2002-2004 Stephan Meyer, <ste_meyer@web.de>
Copyright (c) 2000-2004 Johannes Erdfelt, <johannes@erdfelt.com>
Copyright (c) Thomas Sailer, <sailer@ife.ee.ethz.ch>
[opendevice.c]  (c) 2008 by OBJECTIVE DEVELOPMENT Software GmbH