あーさん日記

https://akkera102.sakura.ne.jp/gbadev/ の中の人

カードリッジのセーブ種類の見分け方

http://gb1gbc1.tripod.com/gba/gba_save.htm

・大体の見分け方(GBA)
ソフトの端子部分を下から覗いて、
基盤の刻印に「AGB-*02」「AGB-*03」「AGB-*11」とあるものは電池なし。
「AGB-*05」「AGB-*06」とあれば基本的にボタン電池入り。
「AGB-*05」の方は時計用?
(Nintendo)から始まる物で「AGB-*05」「AGB-*06」を含む物は現状なし。
量が少ないので断定は出来ませんが、「AGB-*01」はセーブ機能なし。
「AGB-*02」はFLASH、「AGB-*03」はEEPROM、「AGB-*11」はFRAM。
特殊センサーなどが入っているソフトは上記とはまた異なる模様。

Y型ドライバーを使ってソフトを開けると、
基板のどこかに「SRAM FLASH EEPROM FRAM」と書いてあるのでこちらの方が確実です。

私信2

すみません。。拡張ボード回路図を見つつテスターで当てていったら
WR(スロットとボードの半田部分)が繋がっていないことがわかりました。
保障吹っ飛ばしていいので半田つけなおしていいですか?


追記:
治りました。完璧です!


市販は読み込みができるからという妄信で
開発カードリッジを疑ってしまったのが間違いでした。
ほんと申し訳ないです。


コードを追いかけていたら市販の読み込みにWRは使ってなく、
開発カードリッジのromとsav、あと市販のsavは使っていることを
発見したら案の定でした。orz


ビバ、オープンソースです。
数日間お付き合いいただいてありがとうございました!


せめてWRではなくアドレス関係だったらもっと早くわかったのに・・・
というのは愚痴です。(笑
他にテストコマンドがあるのでしたらおっしゃってください。

■raspberry pi b+ -> raspberry pi 3 b+に変更


■開発
pi@raspberrypi:~/cube/raspiadvrw-master $ sudo rpa -c
Main ROM mode =>
  Cartridge type:  Cubic Flash Cartridge
  Size:            256 Mbit


pi@raspberrypi:~/cube/raspiadvrw-master $ sudo rpa -s
(中略)
Backup memory mode =>
  Memory type:  Cubic Flash
  Size:         64 KB


■市販
pi@raspberrypi:~/cube/raspiadvrw-master $ sudo rpa -c
Main ROM mode =>
  Cartridge type:  MASK ROM
  Game title:      MR. DRILLER2


pi@raspberrypi:~/cube/raspiadvrw-master $ sudo rpa -s
(中略)
Backup memory mode =>
  Memory type:  Sram(Fram)
  Size:         32 KB


pi@raspberrypi:~/cube/raspiadvrw-master $ sudo rpa -s -T
Backup memory mode =>
  Memory type:  Sram(Fram)
  Size:         32 KB
BACKUP MEMORY TEST START=>
[##################################################] 100%
[##################################################] 100%
BLANK TEST error:0
[##################################################] 100%
WRITE 0xAA TEST error:0
[##################################################] 100%
[##################################################] 100%
WRITE 0x55 TEST error:0
[##################################################] 100%
BACKUP MEMOEY TEST is Sucess

私信

#256k FRAM AGB-Y11-01 Riviera(基盤を見て確認済み)
pi@raspberrypi:~/cube/raspiadvrw-master $ sudo ./rpa -c
Main ROM mode =>
dev code 0: 002e
dev code 1: ea00
dev code 2: 52a3
dev code 3: 19be
dev code 0: 002e
dev code 1: ea00
dev code 2: ff24
  Cartridge type:  MASK ROM
  Game title:      RIVIERA
pi@raspberrypi:~/cube/raspiadvrw-master $ sudo ./rpa -s
Raspberry Pi ADVANCE Reader Writer v.1.11
Copyright (C) 2018 CUBIC STYLE

rpa [-w gbarom] [-r dstfile] [-l size] [-L size(MB)]-c [-a address]
        -s                      Backup memory mode (Sram, Fram, Flash, ...Not yet supported EEPROM)

        -c                      ROM info
        -r <filename>           Read ROM(or backup memory)
        -w <filename>           Write ROM(or backup memory)
        -e                      block erase
        -E                      chip erase
        -B                      blank check
        -d                      dump
        -a                      rom address
        -b                      block address
        -n                      erase block num
        -h                      this help

Backup memory mode =>
dev code 0: df
dev code 1: a0
dev code 0: df
dev code 1: a0
dev code 0: df
dev code 1: a0
cartridge can not be detected or not supported.


#256k SRAM AGB-E06-01 ミスタードリラー2
pi@raspberrypi:~/cube/raspiadvrw-master $ sudo ./rpa -c
Main ROM mode =>
dev code 0: 002e
dev code 1: ea00
dev code 2: 52a3
dev code 3: 19be
dev code 0: 002e
dev code 1: ea00
dev code 2: ff24
  Cartridge type:  MASK ROM
  Game title:      MR. DRILLER2
pi@raspberrypi:~/cube/raspiadvrw-master $ sudo ./rpa -s
Raspberry Pi ADVANCE Reader Writer v.1.11
Copyright (C) 2018 CUBIC STYLE

rpa [-w gbarom] [-r dstfile] [-l size] [-L size(MB)]-c [-a address]
        -s                      Backup memory mode (Sram, Fram, Flash, ...Not yet supported EEPROM)

        -c                      ROM info
        -r <filename>           Read ROM(or backup memory)
        -w <filename>           Write ROM(or backup memory)
        -e                      block erase
        -E                      chip erase
        -B                      blank check
        -d                      dump
        -a                      rom address
        -b                      block address
        -n                      erase block num
        -h                      this help

Backup memory mode =>
dev code 0: 0b
dev code 1: 04
dev code 0: 0b
dev code 1: 04
dev code 0: 0b
dev code 1: 04
cartridge can not be detected or not supported.

何回かやっているうちに一回のみ
ミスタードリラー2のセーブデータが認識しました。

Backup memory mode =>
  Memory type:  Sram(Fram)
  Size:         32 KB

うーん。別のraspberry piで試してみます。


追記:
他のraspberry pi b+でも結果は同じでした。
一回だけ認識したのはなんだったのか・・。
まとめると以下の状態です。

■市販
ROM 認識する。吸出しOK
BAK 認識しない
■開発用
ROM 認識しない
BAK 認識しない

xxブート

誰得GBAのブートプログラムを書き換えました。
動作は同じです。
https://github.com/akkera102/gba_03_multiboot/


えーと、前回のはロジアナから解析したようなコードだったので
もうちょっとしっかりしたものはないのかなーと悶々としていました。


よさげなものを見つけたのでリハビリついでに書き直してあります。
前のバージョンはそのままにしときます。


私信(見てないと思うけど):
Expansion Board でxxブートできました。ありがとうございます。
ケーブル接続にブレッドボート使わないので、
開発がラクすぎて心配になるレベルです。

GB,GBA開発blog

Blogs | Game Developer
Blogs | Game Developer
すごい・・・としか言えないです。思わずリンクしてしまいました。


32k Gameboy Flash Cart – Catskull Electronics
オリジナルのゲーム作品をromに焼いてくれるサービスがあるんですね。


あとGBT Player。曲はOpenMPTで作るみたいです。一言でいうとmod2gbt。
GitHub - AntonioND/gbt-player: A music player library for the PSG audio channels of the GB, GBC and GBA.
GitHub - Zal0/GBSoundDemo: GBDK sound sample fixed


2017年になっても海外の熱量はぶっ飛んでるなぁー。

devkitPro Updater v3.0.3

変更点のメモです。


sourceforgeをやめてgithubに一本化?
sourceforgeは中身からっぽで、公式サイトを見るとgithubを利用しています。
https://devkitpro.org/wiki/Getting_Started


インストーラーオプションの変更
前までgbaに必要なlibraryを細かく指定していましたが、
gba 開発環境」という1指定になりました。これは便利。


■toncライブラリ追加
これも嬉しい。コードもあります。
ソースコード
https://github.com/devkitPro/libtonc
ドキュメント
https://www.coranac.com/man/tonclib/


■maxmodサイトの復活?
前々からかもしれませんけど一応(^^;
ソースコード
https://github.com/devkitPro/maxmod/
ドキュメント
https://maxmod.devkitpro.org/


■パスの変更
c:\devkitPro\msys2\usr\bin
C:\devkitPro\tools\bin
コンパイラやらgbfsやgritなど、フォルダが変わりました。
wikiのサンプル全滅じゃん・・・。そのうち書き直そう・・・。


あとdevkitProと関係ないですが、音楽ライブラリkrawallもgithubにありました。
「the Gameboy Advance that I was developing 10 years ago.」というコメントに昔を懐かしんでしまいます。。
https://knzl.at/krawall/
https://github.com/sebknzl/krawall


GBA専用ヲレ最強ライブラリを作っている方も発見。
HeartLib Game Boy Advance Development API
https://github.com/Sterophonick/HeartLib

無題

話半分で聞いてください(^^;
いらんお節介の話を1つ・・・。


GBA開発は、人いないし(ゲーム制作に必要な)ドキュメントないしで荒野みたいな場所です。
自分でハックというとかっこいいですけど・・・
基本的には面倒な作業の連続だと思っています。


アドバイスとしては「モチベーションを絶やさずに」という、
この1点のみです。


プログラミングは1日でドでかいものは作れないです。
少しづつ、小さな作業の積み重ねだと思っています。


次の作業に嫌な気持ち(やりたくないなぁなど)を持ち越さないように、
常に気を配らないといけないです。


1日だけ12時間ほど作業して燃え尽きてしまった・・・
バグがどれなくて嫌気がさして・・・
面白いゲームに出会って熱中になって・・・
など、間を開けてしまう罠がなんと多いことか。


「今日はやらなくていいんじゃない?」なんて気分になってしまい・・・
抗ったりできるのは最初のころだけであって、長期的にはやはり負けてしまいます。


ですのでだんだんやりたくない気持ちが強くならないように
心の健康を大事にしないといけないです。


モチベーションを減らさないテクニックも必要であり、
楽しく学び、モチベーションを上げて、ということも必要であり、
人間はなんて難儀な生き物なんだという、お節介な話でした。(^^;


えーと、技術的な話もしますと・・・
GBA本は文章を読んで仕様を理解して、コードは私の方を参考にするのがいいと思います。
サウンド部分は今は読まず、mode0かmode3でブロック崩し○×ゲームテトリスなどの
手頃なゴールを決めるといいです。


アウトプットの形としては、
Arduboy プログラミングを今されているraohu69さんのページが私の中で理想形態です。
日本語で理解したことを書くよりコードを。毎回テーマを決めて記事を書いています。
この少しづつ前進している具合が素晴らしいです。
ttp://raohu69.hatenablog.jp/


(変な紹介の仕方してすみません。。ということでトラバしないように修正)