ニンテンドウ64

20b6cf51ba81f634036a5f1398155729?s=47 murachue
October 28, 2018

 ニンテンドウ64

OSC東京2018秋で日本NetBSDユーザーグループさまの枠をお借りして発表したやつです。

20b6cf51ba81f634036a5f1398155729?s=128

murachue

October 28, 2018
Tweet

Transcript

  1. 5.

  2. 9.

    ニンテンドウ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 ではない
  3. 13.

    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
  4. 16.

    なんで9660!? • N64のROMイメージは 先頭4KiB(-64bytes)の 変更がむずかしい • パーティションテーブル が置けない、普通の filesystemも無理 •

    ISO9660なら先頭16KiB 空いてるじゃん! • 簡易ブートローダも詰 め込めて安心 ヘッダ領域 (64by) N64ブートコード Linux簡易ローダー ISO9660の中身 4KiB 16KiB N64エントリポイント
  5. 18.

    自作joy2key的なやつ • 3Dスティック→8方向 • B, A, C下 → 3 *

    8 → 24 • アルファベット=26通り • 大文字も入れたい • ついでに記号もほしい • R, Zトリガを修飾とする • →2^2 * 3 * 8 = 96通り!!
  6. 19.

    こんな感じで 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 …
  7. 20.

    たとえば • 右下+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
  8. 21.

    そんなん覚えられん! • そんなあなたに8bit直接入力モード! • (msb) Z R C右 C上 C下

    C左 A B (lsb) • を同時押ししながらSTART • たとえば B+A+START -> 3 = ^C • SIGINTを投げられる!! • たぶん人間には早すぎる R Z
  9. 22.