オープンソースで実装されたたまごっち
https://hackaday.com/wp-content/uploads/2022/05/OpenTama.png?w=800
オープンソースで実装されたたまごっち。STM32を利用しているらしい これはたまごっちのCPUのエミュレーターとそれが動作する基板
ROMは実機から吸い出して使う
たまごっちのROM吸いだしについて
結構新しいたまごっち?inajob.icon
最近のたまごっちは、赤外線で結婚したり、フィギュアを本体にゲームカートリッジのようにくっつけてミニゲームが追加できるのだけど、もっとたまごっちの事が知りたくて調べようと思って、
分解して基板上のエポキシ樹脂を剥して、下のチップを顕微鏡で見て、そのボンディングしてる端子の配置が合うチップを探したら3千何百枚目のデーターシートで一致するチップが見付かって、
ペーパーカンパニーを立てて、そのチップを使うからと嘘をついて、そのチップのSDKを取り寄せようとしたら失敗して、
仕方がないから、フィギュアの中のROMをエミュレートしたものに置き換えて、任意の画像をかわりに流し込んで画面に出せるようになったけど、ミニゲームはバイトコードで実装されていて、ネイティブチップのコードではない事が、自作の逆アセンブラによる解析結果でわかったので、
これではフィギュアから入力した任意のネイティブコードは実行できなかったので、ファジングツールを自作して攻撃し、バイトコードインタプリタの脆弱性を探して、ランダムな場所にプログラムカウンタを持っていく事に成功して、
画面に「メモリ内のデータをボタン端子にダンプするプログラム」を画像として表示した上で、そこにプログラムカウンタを設定して、たまごっちの生態が解明できた、という話。
ついでに、たまごっち用開発環境をgithubに置いたし、フィギュア内のEEPROMを書き換えるツールを作って売ってるからよろしくね。
(気にはなりつつ、見るのだるかったので要約ありがたいです・・inajob.icon)
ここで出てるメインCPUはGPLB5X(6502コア)みたいIKeJI.icon
新しいタマゴッチと古いので違うんだな。
たまごっちエミュレーションのためのライブラリ
本家たまごっちのCPUであるE0C6S46をエミュレーションしているらしい ROM capacity ..................................... 6,144 words × 12 bits
RAM capacity...................................... Data memory: 640 words × 4 bits
たまごっちは9kbで動いてんの?。すごいな。IKeJI.icon
パチモンが手元にありましたが初代はめちゃくちゃ単純な仕組みしかない感(パチモンだからかな・・)inajob.icon
ここ見るとROMデータはダイの高画質データから取り出せる、みたいなことが書いてあるけどそういうのできるの?inajob.icon
To my knowledge, the ROM available online has been extracted from a high-res picture of a die. The ROM mask was clear enough to be optically read.
tamalibを使った作られたエミュレータ
https://www.youtube.com/watch?v=ZgO-gPx6IZI
ハードウェア設計
https://www.youtube.com/watch?v=ab3_0PLWAnc
ちょっともっさりだなArduino UNOには荷が重そうinajob.icon
分解画像発見
バージョンがすごい沢山あるな
オリジナルシリーズ(tamalibはこれのP1のようだ)
P1, P2, Angel, Ocean
たまごっちコネクションシリーズ(ROM吸出し動画の方はこっちっぽい)
V1, , V2, Mini, V3, V4, V4.5, V5, V5.5 (Celebrity) and V6 (Music Star)