Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ニンテンドウ64
Search
murachue
October 28, 2018
Programming
8.6k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ニンテンドウ64
OSC東京2018秋で日本NetBSDユーザーグループさまの枠をお借りして発表したやつです。
murachue
October 28, 2018
Other Decks in Programming
See All in Programming
最近”作らせてる” ローカルAIアプリの話
akit37
0
430
Java 27新機能 / Java 27 new features
kishida
2
210
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
130
Workers Cache を知る
syumai
0
350
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.1k
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
160
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
270
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
570
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
140
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
640
SREの越境 / SRE Collaboration
y0hgi
2
300
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Side Projects
sachag
456
43k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
400
Art, The Web, and Tiny UX
lynnandtonic
304
22k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Navigating Weather and Climate Data
rabernat
0
550
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
860
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
210
Into the Great Unknown - MozCon
thekraken
41
2.8k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
The Pragmatic Product Professional
lauravandoore
37
7.5k
Transcript
ニンテンドウ64 Murachue OSC 2018 fall
だれ? • Murachue (むらちゅえ) • @murachue • github.com/murachue • もうすぐ
むしょく • てんしょく かつどう ちゅう
まずはお詫びから
昨日はJNUGさまブースを Linuxで上書きしてすみませんでした https://twitter.com/ Yukky37x/status/ 1056080136666148865 ディスプレイ貸して いただいて ありがとうございます…!!
が
このLT JNUGさま枠 なんだよなぁ…
あらかじめお詫び申し上げます Tux, © Larry Ewing and The GIMP 話しません→ ←話します
NetBSD®
というわけで • オチがほぼバレてるので、さっくり説明すると • Linuxをニンテンドウ64に移植しました • っていう話 こういうこと→ Tux, ©
Larry Ewing and The GIMP
ニンテンドウ64 • 1996/6/23発売 • CPU: MIPS VR4300 (93.75MHz, 64bit) •
GPU: RCP (62.5MHz, 64bit) – 最大解像度 640x480x16 • Memory: 4MiB (CPU観点) – 拡張パックで+4MiB (CPU観点) • Audio: ~48KHz? 2ch 16bit PCM – ADPCMではない! (ウィキペは嘘) • ROM: 最大508MiBくらい – 常識的に64MiBほど • ニンテンドー64 ではない
なんで64? https://www.linux-mips.org/wiki/Nintendo_64
なんで64? vaporware: 影も形もないソフト《理念だけで実現されていない製品》 (研究社 英和コンピューター用語辞典)
LinuxをN64に対応させる VR4300 RCP RDRAM Cart Video I/F Audio I/F Controller
I/F Cart I/F I2C SD USB ROM(RAM) RTC etc…
LinuxをN64に対応させる VR4300 RCP RDRAM Cart Video I/F Audio I/F Controller
I/F Cart I/F I2C SD USB ROM(RAM) RTC etc… FrameBuffer ALSA evdev I2c host DS1337 (ママ MIPS3(ママ sdmmc host tty (serial-ish) blockdev mfd
できた~ Tux, © Larry Ewing and The GIMP
userlandもつくりましょー Buildroot Busybox Linux(改) Tux, © Larry Ewing and The
GIMP ISO9660 image + α
なんで9660!? • N64のROMイメージは 先頭4KiB(-64bytes)の 変更がむずかしい • パーティションテーブル が置けない、普通の filesystemも無理 •
ISO9660なら先頭16KiB 空いてるじゃん! • 簡易ブートローダも詰 め込めて安心 ヘッダ領域 (64by) N64ブートコード Linux簡易ローダー ISO9660の中身 4KiB 16KiB N64エントリポイント
入力どうしようか • USBでtty生やしてるけど、単体で動いたほう がやっぱり面白いよね • 入力デバイス……コントローラあるじゃん!
自作joy2key的なやつ • 3Dスティック→8方向 • B, A, C下 → 3 *
8 → 24 • アルファベット=26通り • 大文字も入れたい • ついでに記号もほしい • R, Zトリガを修飾とする • →2^2 * 3 * 8 = 96通り!!
こんな感じで a b c d e f g h i
j k l m n o p q r s t u v w x y z - . (sp) / ^H , B A C下 R+B Y Z > < | ^M R+Z+B A B C D E F G H Z+B …
たとえば • 右下+A → l (エル) • 右+C下 → s
• 左+R+Z+B → ^M • ⇒ ls コマンドが実行できる!!! • 2日ほどで慣れます (typoしないとは言っていない) i j k l m n o p q r s t u v w x A C下 Y Z > < | ^M R+Z+B
そんなん覚えられん! • そんなあなたに8bit直接入力モード! • (msb) Z R C右 C上 C下
C左 A B (lsb) • を同時押ししながらSTART • たとえば B+A+START -> 3 = ^C • SIGINTを投げられる!! • たぶん人間には早すぎる R Z
DEMO
現況と将来 • 最近ALSAドライバができてaplayやmpg123が 動いて楽しい • ogg123は重すぎてブツブツ、tremor(整数 vorbisデコーダ)使ったらギリギリCPU足りない • あとでGitHubに公開したい (履歴…)
• Linux 4.4.1はちょい古いので4.18とか動かし たい • たまにSEGV/ILL/BUSするのが謎だけど、 なんとかしたい
あとNetBSD®移植しような!