Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OSC2017 Osaka PC-6001 Emulator on NetBSD and pkgsrc

OSC2017 Osaka PC-6001 Emulator on NetBSD and pkgsrc

OSC2017大阪のNetBSDセミナーで発表した『NetBSD + pkgsrc で PC-6001 エミュレータ』のスライドです。

Izumi Tsutsui

January 28, 2017
Tweet

More Decks by Izumi Tsutsui

Other Decks in Programming

Transcript

  1. NetBSD + pkgsrc で
    PC-6001 エミュレータ
    オープンソース カンファレンス 2017 大阪
    むりやり PC-6001 ネタ ふたたび
    Izumi Tsutsui
    [email protected]
    Twitter: @tsutsuii

    View Slide

  2. OSC大阪の
    一週間前の
    ある日

    View Slide

  3. https://twitter.com/tsutsuii/status/822684506545000449

    View Slide

  4. https://twitter.com/ebijun/status/822685193811042304

    View Slide

  5. https://twitter.com/tsutsuii/status/822728091810152448

    View Slide

  6. https://twitter.com/ebijun/status/822779295873404928

    View Slide

  7. というわけで
    NetBSDとは
    あまり関係なく
    PC-6001の話
    です

    View Slide

  8. シールも配布中です

    View Slide

  9. PC-6001 とは
    ● NEC製の 8ビットパソコン
    ●1981年 11月 発売

    View Slide

  10. PC-6001 スペック
    ●CPU: 8bit Z80互換 4MHz
    ●RAM: 標準 16KB, 最大32KB
    ●グラフィック:
    128×192ドット 4色
    256×192ドット モノクロ2色
    ●音源:PSG 3和音
    ●標準価格:89,800円

    View Slide

  11. ホビー・教育向け
    ターゲット
    http://www.nicovideo.jp/watch/sm1254646

    View Slide

  12. 私も
    小学生の頃に
    友達の家やお店で
    いじってました……

    View Slide

  13. ●VRAMも共用 → 空きは 7KB
    ●それでもいろいろ作れた時代
     いろいろ遊ぶには32KBに増設しないとキツいかも
    メモリ 16KB

    View Slide

  14. ●128×192: 横長ドット
    ●青・赤・緑・黄 (白と黒はナシ)
    4色の芸術

    View Slide

  15. ビデオ出力の特性を使った
    「にじみモード」という技も
    モノクロモードもあります

    View Slide

  16. ●カセットテープ(死語)
    に“音”で記録
    ●1200bps (100バイト/秒)
    ●23KB のロードに 5分弱
    外部記憶はテープレコーダー

    View Slide

  17. PSG音源

    いわゆるピコピコ音 × 3和音

    元はアーケードゲーム用?

    BASICだと PLAY 文で
    MMLという書式を書いて演奏
    こんなの→ "C8D+DD+F"

    View Slide

  18. PSG展示@OSC
    ※詳しくはOSC京都・
     OSC広島の資料を
     参照してください

    View Slide

  19. 35年前のマシンですが
    21世紀の今でも
    PC-6001用ソフトや
    エミュレータを
    作っている人がいます

    View Slide

  20. イース2 オープニング
    https://youtu.be/dpRihhIxznc

    View Slide

  21. ちゃんとアニメしてる!
    PSGで音楽も鳴ってる!
    テープからロードしながら
    画面スクロールしてる!!!
    ※エミュレータでの動作実演もご覧ください
    この動画がすべてのきっかけです

    View Slide

  22. 作者のTINY野郎さんのブログより
    http://www.tiny-yarou.com/prj006.html

    View Slide

  23. PC-6001用エミュレータ
    https://ja.wikipedia.org/wiki/PC-6000%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA
    ●WikiPediaより
    1999年頃より、Microsoft Windows
    やUNIX上で動くPC-6001の
    エミュレータが開発され、
    当時のゲームソフトウエアなどが
    実行できるようになっている。

    View Slide

  24. PC6001V
    http://papicom.net/p6v/index.html

    View Slide

  25. ●Windows用
    ●ソースコードも公開!
    ●高速テープロードモード
    ●どこでもSAVE機能
    ●リプレイ機能
    ●デバッガモード
    (モニタ・逆アセンブル・ブレーク等)
    PC6001V

    View Slide

  26. デバッグモニタが便利!

    View Slide

  27. PC6001VW
    http://p6ers.net/bernie/develop/pc6001vw3.html

    View Slide

  28. ●PC6001V をベースに拡張
    ●デバッグモードがさらに充実
    ➢ファイル→RAMへのロード
    ➢RAM→ファイルへセーブ
    ➢VRAMのビットマップ表示機能
    等々
    PC6001VW

    View Slide

  29. よっしゅさんの
    PSG音源ドライバ
    http://park10.wakwak.com/~yosh/p6.html

    View Slide

  30. 耳コピ→MML打ちこみ

    ボカロとかより簡単(?)です

    View Slide

  31. そんな感じでいろいろ作りました
    http://www.nicovideo.jp/watch/sm29263535 http://www.nicovideo.jp/watch/sm29939586

    View Slide

  32. エミュレータ上での
    デモの動作も
    見てみてください
    ※デモ実演

    View Slide

  33. 普通に NetBSD で
    P6エミュレータを
    動かしてますが、
    当時はWindowsで
    作業してました
    編集とかgit管理はNetBSD上

    View Slide

  34. PC6001VX
    http://eighttails.seesaa.net/article/305067428.html https://github.com/eighttails/PC6001VX

    View Slide

  35. ●READMEより
    「PC6001VをLinux等で動作
     するよう改変したものです」
    「PC6001VXの末尾のXは
     クロスプラットフォームの
     Xです」
    PC6001VX
    https://github.com/eighttails/PC6001VX

    View Slide

  36. ●基本的な機能は PC6001V 準拠
    ●クロスGUI環境としてQt5を使用
    ●TILT機能などの拡張もあり
    ●Androidでも動作
    PC6001VX
    https://github.com/eighttails/PC6001VX

    View Slide

  37. なかなかスパルタ式 (´・ω・`)
    PC6001VX ビルド手順
    https://github.com/eighttails/PC6001VX

    View Slide

  38. しばらく保留 (´・ω・`)
    https://twitter.com/tsutsuii/status/745587703056474112

    View Slide

  39. 年末になって
    「冬休みの宿題」
    ということで
    ようやく着手

    View Slide

  40. 試行錯誤5時間の結果
    https://twitter.com/tsutsuii/status/814555848257073152

    View Slide

  41. pkgsrc化 ポイント
    ●"*.pro” のある場所で qmake
    → Makefile ができる
    ●x11/qt5-qtbase とかを入れる
    ●multimedia/ffmpeg3 も入れる
    ●非Linuxの記述が無いので適当に
    pkg-config とか追加
    ●グラボによっては HwAccel が
    落ちるので手動で無効に設定
    詳しくはブログ記事を参照
    http://ch.nicovideo.jp/tsutsui/blomaga/ar1165341

    View Slide

  42. さっそく補足されました
    https://twitter.com/eighttails/status/814730564494192642

    View Slide

  43. さっそくレポート
    https://twitter.com/tsutsuii/status/814732932615016449

    View Slide

  44. とりこまれました
    https://twitter.com/eighttails/status/814857031404224512

    View Slide

  45. https://twitter.com/eighttails/status/814873526192640000
    https://twitter.com/eighttails/status/814871184739209216
    “Of course, it runs ...”

    View Slide

  46. NetBSDは
    いろんなマシンで動く
    +
    pkgsrcは NetBSDで使える

    pkgsrc入りしたアプリは
    いろんなマシンで動く?

    View Slide

  47. 過去の事例

    View Slide

  48. ONScripter

    View Slide

  49. Xnp2

    View Slide

  50. xkanon

    View Slide

  51. mikutter

    View Slide

  52. “なぜそれを動かすのか”
    https://twitter.com/tsutsuii/status/182102228704825345

    View Slide

  53. 謎マシンの代表として
    NetBSD/dreamcast (CF付き)で
    PC6001VX を展示デモしようと
    1月8日から I/O DATA LANTANKで
    ビルドを仕掛けていたのですが、
    これを書いてる 28日朝6時時点でも
    まだQt5のビルド中で挫折(´・ω・`)
    ご報告とおわび

    View Slide

  54. ●昔のマシンはこじんまりしていて
     結構お手軽に楽しめます
    ●エミュレーターと開発環境も
     充実しています
    ●pkgsrc にすると何でも動くよ!
    ●pkgsrc にすれば何でも
     展示・セミナーネタになる!?
    まとめ

    View Slide