Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ニンテンドウ64
Search
murachue
October 28, 2018
Programming
8.5k
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時代の品質責任と生産性
mfunaki
0
130
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
370
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
370
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
700
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
280
プロポーザルを書いてもらう
pvcresin
0
270
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
18k
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
240
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
190
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
420
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
530
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
250
30 Presentation Tips
portentint
PRO
1
360
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
240
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
470
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
440
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
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®移植しような!