Submit Search
Upload
Arduinoを使ったgameboyカードリッジのdump
•
2 likes
•
3,790 views
_
__106__
Follow
arduinoを使ってゲームボーイのカードリッジからデータを吸い出します
Read less
Read more
Devices & Hardware
Report
Share
Report
Share
1 of 20
Download now
Download to read offline
Recommended
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
marsee101
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算
sleepy_yoshi
[DL輪読会]3D Hair Synthesis Using Volumetric Variational Autoencoders
[DL輪読会]3D Hair Synthesis Using Volumetric Variational Autoencoders
Deep Learning JP
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...
AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...
Haruka Matsuzaki
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うか
なおき きしだ
KiCadで雑に基板を作る チュートリアル
KiCadで雑に基板を作る チュートリアル
裕士 常田
Pynqでカメラ画像をリアルタイムfastx コーナー検出
Pynqでカメラ画像をリアルタイムfastx コーナー検出
marsee101
Recommended
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
marsee101
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算
sleepy_yoshi
[DL輪読会]3D Hair Synthesis Using Volumetric Variational Autoencoders
[DL輪読会]3D Hair Synthesis Using Volumetric Variational Autoencoders
Deep Learning JP
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...
AIと代数幾何 ~8分版~/ Artifical Inteligence Parameter Space Transformation using Alg...
Haruka Matsuzaki
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うか
なおき きしだ
KiCadで雑に基板を作る チュートリアル
KiCadで雑に基板を作る チュートリアル
裕士 常田
Pynqでカメラ画像をリアルタイムfastx コーナー検出
Pynqでカメラ画像をリアルタイムfastx コーナー検出
marsee101
CPUの創りかた
CPUの創りかた
fumi_maker
とあるCocos2dxアプリのチート編
とあるCocos2dxアプリのチート編
kumin1030
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
Atsushi Hayakawa
200611material ozaki
200611material ozaki
RCCSRENKEI
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
Deep Learning JP
自然言語処理
自然言語処理
naoto moriyama
初めてのグラフカット
初めてのグラフカット
Tsubasa Hirakawa
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
Race condition
Race condition
hama7230
「世界モデル」と関連研究について
「世界モデル」と関連研究について
Masahiro Suzuki
生存時間分析数理の基礎
生存時間分析数理の基礎
Koichiro Gibo
レイトレ空間構造入門
レイトレ空間構造入門
Toru Matsuoka
最近(2020/09/13)のarxivの分布外検知の論文を紹介
最近(2020/09/13)のarxivの分布外検知の論文を紹介
ぱんいち すみもと
Boost.Logとfluentdで始めるログ活用術
Boost.Logとfluentdで始めるログ活用術
Toshiki Teramura
避けては通れないバイナリ地獄 - NDEFってなんだろう -
避けては通れないバイナリ地獄 - NDEFってなんだろう -
Tomoki YAMASHITA
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
智啓 出川
Chokudai search
Chokudai search
AtCoder Inc.
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
Hiro H.
OSC Tokyo 2013 Spring JRPUG
OSC Tokyo 2013 Spring JRPUG
Hideki Aoshima
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Junichi Kakisako
More Related Content
What's hot
CPUの創りかた
CPUの創りかた
fumi_maker
とあるCocos2dxアプリのチート編
とあるCocos2dxアプリのチート編
kumin1030
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Fixstars Corporation
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
Atsushi Hayakawa
200611material ozaki
200611material ozaki
RCCSRENKEI
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
Deep Learning JP
自然言語処理
自然言語処理
naoto moriyama
初めてのグラフカット
初めてのグラフカット
Tsubasa Hirakawa
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
AtCoder Inc.
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Genya Murakami
Race condition
Race condition
hama7230
「世界モデル」と関連研究について
「世界モデル」と関連研究について
Masahiro Suzuki
生存時間分析数理の基礎
生存時間分析数理の基礎
Koichiro Gibo
レイトレ空間構造入門
レイトレ空間構造入門
Toru Matsuoka
最近(2020/09/13)のarxivの分布外検知の論文を紹介
最近(2020/09/13)のarxivの分布外検知の論文を紹介
ぱんいち すみもと
Boost.Logとfluentdで始めるログ活用術
Boost.Logとfluentdで始めるログ活用術
Toshiki Teramura
避けては通れないバイナリ地獄 - NDEFってなんだろう -
避けては通れないバイナリ地獄 - NDEFってなんだろう -
Tomoki YAMASHITA
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
智啓 出川
Chokudai search
Chokudai search
AtCoder Inc.
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
Hiro H.
What's hot
(20)
CPUの創りかた
CPUの創りかた
とあるCocos2dxアプリのチート編
とあるCocos2dxアプリのチート編
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
Visual Studio CodeでRを使う
Visual Studio CodeでRを使う
200611material ozaki
200611material ozaki
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
[DL輪読会]Diffusion-based Voice Conversion with Fast Maximum Likelihood Samplin...
自然言語処理
自然言語処理
初めてのグラフカット
初めてのグラフカット
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第一回 講義資料(ワークスアプリケーションズ & AtCoder)
すごい constexpr たのしくレイトレ!
すごい constexpr たのしくレイトレ!
Race condition
Race condition
「世界モデル」と関連研究について
「世界モデル」と関連研究について
生存時間分析数理の基礎
生存時間分析数理の基礎
レイトレ空間構造入門
レイトレ空間構造入門
最近(2020/09/13)のarxivの分布外検知の論文を紹介
最近(2020/09/13)のarxivの分布外検知の論文を紹介
Boost.Logとfluentdで始めるログ活用術
Boost.Logとfluentdで始めるログ活用術
避けては通れないバイナリ地獄 - NDEFってなんだろう -
避けては通れないバイナリ地獄 - NDEFってなんだろう -
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
Chokudai search
Chokudai search
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
その文字列検索、std::string::findだけで大丈夫ですか?【Sapporo.cpp 第8回勉強会(2014.12.27)】
Similar to Arduinoを使ったgameboyカードリッジのdump
OSC Tokyo 2013 Spring JRPUG
OSC Tokyo 2013 Spring JRPUG
Hideki Aoshima
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Junichi Kakisako
Cuda
Cuda
Shumpei Hozumi
Osc hokkaido2015 arduinoで温度を測るところまで
Osc hokkaido2015 arduinoで温度を測るところまで
rarere
20140910 Arduino for beginners
20140910 Arduino for beginners
Kenichi Ohwada
Arduino jenkins
Arduino jenkins
Kiro Harada
20110724 WIZDOM:知識ゼロからのArduino(1)
20110724 WIZDOM:知識ゼロからのArduino(1)
Atsushi ENTA
Takep lpc1114-190614
Takep lpc1114-190614
たけおか しょうぞう
Imaocande LT
Imaocande LT
Imaoka Micihihiro
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
Kazuhiro Abe
ESP32特集の内容紹介
ESP32特集の内容紹介
Kenta IDA
組込みAndroid入門実習
組込みAndroid入門実習
ksk sue
Internet of Things
Internet of Things
Rainmaker Ho
Big Raspberry JAM TOKYO 2013 Hardware
Big Raspberry JAM TOKYO 2013 Hardware
Hideki Aoshima
150130 edison-ug
150130 edison-ug
Takehiko Tomiyama
20181117 arduino basicbeta1
20181117 arduino basicbeta1
Chiehwun
M5Stackの拡張基板を作ってjimmyに届けた話
M5Stackの拡張基板を作ってjimmyに届けた話
Masawo Yamazaki
Movidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみた
NISHIMOTO Keisuke
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料
Kenichi Yoshida
第1回電子制御講習
第1回電子制御講習
Koshiro Miyauchi
Similar to Arduinoを使ったgameboyカードリッジのdump
(20)
OSC Tokyo 2013 Spring JRPUG
OSC Tokyo 2013 Spring JRPUG
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Cuda
Cuda
Osc hokkaido2015 arduinoで温度を測るところまで
Osc hokkaido2015 arduinoで温度を測るところまで
20140910 Arduino for beginners
20140910 Arduino for beginners
Arduino jenkins
Arduino jenkins
20110724 WIZDOM:知識ゼロからのArduino(1)
20110724 WIZDOM:知識ゼロからのArduino(1)
Takep lpc1114-190614
Takep lpc1114-190614
Imaocande LT
Imaocande LT
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
配布用Raspberry pi+arduino+scratchでフィジカルコンピューティング体験!
ESP32特集の内容紹介
ESP32特集の内容紹介
組込みAndroid入門実習
組込みAndroid入門実習
Internet of Things
Internet of Things
Big Raspberry JAM TOKYO 2013 Hardware
Big Raspberry JAM TOKYO 2013 Hardware
150130 edison-ug
150130 edison-ug
20181117 arduino basicbeta1
20181117 arduino basicbeta1
M5Stackの拡張基板を作ってjimmyに届けた話
M5Stackの拡張基板を作ってjimmyに届けた話
Movidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみた
イチからはじめるADK北海道支部勉強会発表資料
イチからはじめるADK北海道支部勉強会発表資料
第1回電子制御講習
第1回電子制御講習
Arduinoを使ったgameboyカードリッジのdump
1.
Arduino を使った GAMEBOY
カードリッジの DUMP 工学部情報科学科 勝亦利宗
2.
自己紹介 ● 工学部情報科学科 2 年
勝亦利宗 ● Twitter @___106___ ● Github https://github.com/106-/ – 今回のプログラム https://github.com/106-/gbdumper
3.
必要なもの ● Arduino Leonard ● シフトレジスタ
SN74HC595N ● ブレッドボード ● ジャンパーケーブル多数 ● ジャンパーピン多数 ● 10KΩ の抵抗 4 本 ● ゲームボーイ用カードリッジコネクタ ● IDE ケーブル
4.
なぜゲームボーイからデータを取り出すのか ? ● セーブデータの保存 (
データ保持用の電池が切れる ) ● エミュレータで使う
5.
カードリッジのしくみ ● ピン配置
6.
カードリッジのしくみ ● VCC : 5V
電源 ● CLK : Arduino の GND に接続 – ポケットカメラの出力がおかしくなるため ● WR, RD, MREQ : Arduino の任意のピンに接続 – 上線は否定の意味 ( 使わないときは常に HIGH) – 抵抗を挟んでおく ( フェイルセーフ ) – 読み込み / 書き込み / メモリ書き込みのスイッチ ● A0-A15 : ( 読み込み | 書き込み ) たいアドレスを指定する ● D0-D7 : アドレスに指定したデータが読み出せたり書き込めたり
7.
カードリッジのしくみ ● RESET : 抵抗を挟んで
5V 電源 ● AUDIO : 用途不明 ● GND : Arduino の GND に接続 → 基本的に A0-A15 ピンにアドレスを指定し , それに対するデータを D0-D7 ピンに指定していく
8.
シフトレジスタとは ● カードのピンが 27 本なのに対して
,Arduino のピンは 18 本しかない – シフトレジスタを使って解決する
9.
シフトレジスタとは ● シフトレジスタ : – パラレル信号をシリアル信号に変換したり
, その逆もできる IC – Arduino には簡単に使える関数が存在するので便利 – 今回はシリアル→パラレル変換ができるものを使う – 山形の秋葉原で買えます → アドレス指定部分に必要だった 16 本のピンを一つに集約できる ! – ラッチピン , クロックピン , シリアルピンの 3 本
10.
シフトレジスタとは // シフトレジスタでアドレスを指定する . void
setaddress(unsigned int addr) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, (addr>>8)); shiftOut(dataPin, clockPin, MSBFIRST, (addr&0xFF)); digitalWrite(latchPin, HIGH); } こんな感じでアドレスを指定できる
11.
シフトレジスタとは ● 接続例 ( シフトレジスタが一つの場合
) http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=2369
12.
回路完成図
13.
プログラム部を DUMP する ● DUMP
時の動作 – ROM のヘッダを読み込み ,MBC(MBC とは ?→ あとで ) を調べる – RD ピンを LOW にして , アドレスを変えながらデータを一つ一つ送信する – MBC を切り替えてゆく
14.
MBC とは ● Memory Bank
Controller の略 – GB の ROM サイズは最大で 16KByte – ROM を複数積むことで容量不足分を補う – 複数積んだ ROM を切り替える ( バンク切り替えという ) のが MBC – 切り替えは特定のアドレスに書き込んで行う – MBC にはいくつかのタイプがある ● MBC によって書き込むアドレスが違ったりするので面倒
15.
ROM のヘッダ ● 0x0100 から
0x014F の範囲には , そのゲームの様々な情報が記録されている – ゲームのタイトル ,MBC のタイプ , データのサイズなど – データチェック用に任天堂のロゴも ● MBC の判定に使うのは 0x147, ROM/RAM のサイズは 0x148 と 0x149
16.
クライアント ● 送られてきたデータを PC に保存するプログラムを
Python で書く ● ヘッダ部を読み込み ,MBC の情報などを表示する ● とくに複雑なことは無いので詳しい説明は省きます
17.
DUMP してみる ● BGB で動作確認
18.
そのほかにも… ● セーブデータを読み込んだり , 書き込んだり –
サイズやアドレスが ROM とは違うが , 基本的な考え方は ROM と同じ
19.
そのほかにも… ● ポケットカメラの画像を抽出する – PocketSaver というソフトをつかう
20.
参考 ● GBCartRead: Arduino
based Gameboy Cart Reader https://www.insidegadgets.com/2011/03/19/gbcartread-arduino-based-gameboy -cart-reader-%E2%80%93-part-1-read-the-rom/ ● いまさら聞けないゲームボーイ http://matsu-world.qee.jp/gameboy/index.html ● Memory Bank Controllers http://gbdev.gg8.se/wiki/articles/Memory_Bank_Controllers
Download now