はじめに
ゲームボーイアドバンスのエミュレータを Unity で開発してみたいなと考えました。 理由は以下のとおりです。
- ゲームボーイアドバンスが好きだった
- 低レイヤについて詳しくなりたい
- Unity について詳しくなりたい
これらを同時に叶えようという傲慢な思想です。
ただし、最初からゲームボーイアドバンスからはじめるのは大変そうなので CHIP-8 というシンプルなものからはじめてみようとおもいます。
そのためにまずはいろいろと情報収集をします。
日本語で書かれた記事を読む
url: https://qiita.com/yukinarit/items/4bdc821f1e46b0688d0d
title: "RustでつくるChip8エミュレータ - Qiita"
description: "低レイヤーな同僚に触発されて、RustでChip8エミュレータを作ってみた。 Chip8とは? Chip8は1970年代につくられた小さな仮想マシンで、多くのコンピュータに移植された。日本ではwikipediaの日本語訳もないしググってもあまり情報がでてこないが、海外で..."
host: qiita.com
favicon: https://cdn.qiita.com/assets/favicons/public/production-c620d3e403342b1022967ba5e3db1aaa.ico
image: https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkYwJTJGNDQxNzMlMkZwcm9maWxlLWltYWdlcyUyRjE1NjI0MDY1MjM_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPTU3MDQyM2FkOWM5ZjUwZTE2OWViOGM3Y2ZjODQxMjBj%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3De0fa8449b08c990def462c1335f2a8b2?ixlib=rb-4.0.0&w=1200&fm=jpg&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9UnVzdCVFMyU4MSVBNyVFMyU4MSVBNCVFMyU4MSU4RiVFMyU4MiU4QkNoaXA4JUUzJTgyJUE4JUUzJTgzJTlGJUUzJTgzJUE1JUUzJTgzJUFDJUUzJTgzJUJDJUUzJTgyJUJGJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9ZGFjZmFhNzE0MDdjOGMxOGJmZTI3NzQwYjJlNjViY2Q&mark-x=120&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB5dWtpbmFyaXQmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtcGFkPTAmcz00YTQ3ZDkzYzcxZDE5NWNhZjE2N2U4MTdmYjVmYWZhYw&blend-x=242&blend-y=480&blend-w=838&blend-h=46&blend-fit=crop&blend-crop=left%2Cbottom&blend-mode=normal&s=6c7fcbfe12a8f77168e9a000b63d3885- Rust × Terminal で実装している
- Chip8 の概要の説明がありわかりやすい
- Cowgod 氏によるリファレンス を 日本語化したサイトを用意している
url: https://qiita.com/tofucat/items/10186e64c69d4ab57713
title: "ファミコンは難しかったから代わりにchip8エミュレータの勉強する1 - Qiita"
description: "ファミコンエミュ挫折 組み込み系の勉強をするのにファミコンエミュを作ろうかと思いました。しかし初心者がいきなり始めるには少し大変でした。どこかで\"chip8のほうが簡単だよ\"というのを見たのでそちらにシフトしました。 Chip8と検索すると出てくる画像たちです。キーボード..."
host: qiita.com
favicon: https://cdn.qiita.com/assets/favicons/public/production-c620d3e403342b1022967ba5e3db1aaa.ico
image: https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1pbWFnZS1zdG9yZSUyRjAlMkY2NDgyOCUyRjFhYWZiYmEyYTBiNzYyOTEwOTA3M2IxZjkxYTIzNGVkYzlmOTcyNTglMkZsYXJnZS5wbmclM0YxNjM0Mjk2NDU5P2l4bGliPXJiLTQuMC4wJmFyPTElM0ExJmZpdD1jcm9wJm1hc2s9ZWxsaXBzZSZiZz1GRkZGRkYmZm09cG5nMzImcz1iMzYyYTgyZGUwNmNmYTZlMmYwMjdiNWQ0ZDYyZmI4OQ%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D15f0d6d71643352df286f894a2c271d5?ixlib=rb-4.0.0&w=1200&fm=jpg&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JUUzJTgzJTk1JUUzJTgyJUExJUUzJTgzJTlGJUUzJTgyJUIzJUUzJTgzJUIzJUUzJTgxJUFGJUU5JTlCJUEzJUUzJTgxJTk3JUUzJTgxJThCJUUzJTgxJUEzJUUzJTgxJTlGJUUzJTgxJThCJUUzJTgyJTg5JUU0JUJCJUEzJUUzJTgyJThGJUUzJTgyJThBJUUzJTgxJUFCY2hpcDglRTMlODIlQTglRTMlODMlOUYlRTMlODMlQTUlRTMlODMlQUMlRTMlODMlQkMlRTMlODIlQkYlRTMlODElQUUlRTUlOEIlODklRTUlQkMlQjclRTMlODElOTklRTMlODIlOEIxJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9NmQ5NTlmZjgwYzQyY2E0YzE1MDQ1ZmQxOGMwZTQyNjk&mark-x=120&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB0b2Z1Y2F0JnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LXBhZD0wJnM9ZWFhY2VlOTcyMjUyNmM2NTJlMWJkNzYyMjJkNGQwMDY&blend-x=242&blend-y=480&blend-w=838&blend-h=46&blend-fit=crop&blend-crop=left%2Cbottom&blend-mode=normal&s=c68b7e9c11c0547751b26f162ebb4570- 1 しかない
- バイトコードの読み出し方、として参考になる
url: https://qiita.com/whisper0077/items/b87f9a346fdf522a40fa
title: "CHIP-8 & Golang でエミュレータ作成入門してみた - Qiita"
description: "はじめに CPUとかあんまり詳しくないのですが、ファミコンのエミュレータを書きたいなと思い、 自作エミュレータで学ぶx86アーキテクチャを買って読み、よし作ろうと思っていろいろ調べてたら まず最初にCHIP-8のエミュレータ書いてみるのがいいよ というのを見かけ、数日..."
host: qiita.com
favicon: https://cdn.qiita.com/assets/favicons/public/production-c620d3e403342b1022967ba5e3db1aaa.ico
image: https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMzU3NDklMkZwcm9maWxlLWltYWdlcyUyRjE1NDgzNDY5MTQ_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWJmZmJkMzAzMmMwMDRjNGQzYTIzNWZlMGE1M2E0NTZi%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3Da44698b21ba1b2a0a3ccc8e0f2d07c00?ixlib=rb-4.0.0&w=1200&fm=jpg&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9Q0hJUC04JTIwJTI2JTIwR29sYW5nJTIwJUUzJTgxJUE3JUUzJTgyJUE4JUUzJTgzJTlGJUUzJTgzJUE1JUUzJTgzJUFDJUUzJTgzJUJDJUUzJTgyJUJGJUU0JUJEJTlDJUU2JTg4JTkwJUU1JTg1JUE1JUU5JTk2JTgwJUUzJTgxJTk3JUUzJTgxJUE2JUUzJTgxJUJGJUUzJTgxJTlGJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9YjBmOTI5YTQyZTk0YjhhMTRmZWRlMGJiMzA1Y2U4NDQ&mark-x=120&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB3aGlzcGVyMDA3NyZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPWIzOGRiZWY2MGM4MTJmMmFkYmUzMGFmYTViZjk1Y2Fj&blend-x=242&blend-y=480&blend-w=838&blend-h=46&blend-fit=crop&blend-crop=left%2Cbottom&blend-mode=normal&s=95465f1f89743b3ea03d32e5077c6fb4- Go + SDL で作成したコードを公開している
- CHIP-8 とはなに?を説明しているのでわかりやすい
- ganyariya にとって Rust より Go のほうがわかりやすいので、実装の参考になりそう
英語のサイトをまとめる
url: https://en.wikipedia.org/wiki/CHIP-8
title: "CHIP-8 - Wikipedia"
host: en.wikipedia.org
favicon: https://en.wikipedia.org/static/favicon/wikipedia.ico
image: https://upload.wikimedia.org/wikipedia/commons/9/9e/PONG_CHIP8.png- Wikipedia
- 命令一覧も載っており、ここにある情報は間違っていない(はず)
http://devernay.free.fr/hacks/chip8/C8TECH10.HT
- CHIP-8 のリファレンス
- ここが一次情報になりそう
url: https://multigesture.net/articles/how-to-write-an-emulator-chip-8-interpreter/
title: "How to write an emulator (CHIP-8 interpreter) – Multigesture.net"
description: "A multitouch and HCI research blog"
host: multigesture.net
image: https://multigesture.net//wp-content/uploads/2011/01/chip8-space-invaders.jpg- CHIP-8 エミュレータの開発手順を説明している
- リファレンスとあわせて読むのがよさそう
url: https://github.com/dmatlack/chip8/tree/master/roms
title: "chip8/roms at master · dmatlack/chip8"
description: "chip8 emulator. Contribute to dmatlack/chip8 development by creating an account on GitHub."
host: github.com
favicon: https://github.githubassets.com/favicons/favicon.svg
image: https://opengraph.githubassets.com/c8d6f18aaca56d366c8b81eb4a3b82aab5ad12a2a0fed6acd8eb9020df3f1443/dmatlack/chip8- chip8 の rom がまとまっている
url: https://johnearnest.github.io/Octo/
title: "Octo"
host: johnearnest.github.io- CHIP-8 のウェブエミュレータ
url: https://github.com/gulrak/cadmium
title: "GitHub - gulrak/cadmium: A CHIP-8 variant emulation and development environment"
description: "A CHIP-8 variant emulation and development environment - gulrak/cadmium"
host: github.com
favicon: https://github.githubassets.com/favicons/favicon.svg
image: https://repository-images.githubusercontent.com/524060413/8eb66685-43f2-4435-966c-0ba38ddf9793- CHIP-8 の便利なエミュレーション
- これを起動しながら自分のエミュを動かすことでデバッグしやすいかも
YouTube の動画を見てみる
url: https://www.youtube.com/watch?v=YtSgV3gY3fs
title: "Making a Chip-8 Emulator"
description: "(New Discord server!) My Discord Server: https://discord.gg/8rtYjQkqDFI made a Chip-8 Emulator/Interpreter from scratch in C and this video showcases a few i..."
host: www.youtube.com
favicon: https://www.youtube.com/s/desktop/a444dc7a/img/favicon_32x32.png
image: https://i.ytimg.com/vi/YtSgV3gY3fs/maxresdefault.jpg- CHIP-8 の説明が丁寧になされている
- なんども見返したい