Successfully reported this slideshow.
Your SlideShare is downloading. ×

セガサターンマシン語プログラミングの紹介

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 10 Ad
Advertisement

More Related Content

Slideshows for you (20)

Similar to セガサターンマシン語プログラミングの紹介 (20)

Advertisement

More from Yuma Ohgami (13)

Recently uploaded (20)

Advertisement

セガサターンマシン語プログラミングの紹介

  1. 1. セガサターン マシン語プログラミング の紹介 大神 祐真 (@yohgami)
  2. 2. 大神 祐真 (@yohgami) 自己紹介 大神祐真 @yohgami [仕事] グループウェア メーカーの インフラエンジニア [趣味] 自作OS レトロPC/ゲーム 自作アーケード基板
  3. 3. セガサターン 1994年発売 セガ据え置き型 初のポリゴン 描画 同世代 PlayStation NINTENDO64 44,800円
  4. 4. 大神 祐真 (@yohgami) 今日のお話 最も簡単な 「無限ループだけのプログラム」[1]を例に 趣味で行っている マシン語によるセガサターンのソフト開発を 紹介します! [1] https://github.com/cupnes/sh_ss_test/tree/master/011_loop
  5. 5. 大神 祐真 (@yohgami) シェルスクリプトによる開発環境 ● iso9660.sh – セガサターン用のヘッダを付けた ISO9660ファイルシステムを生成する シェルスクリプト – 引数で指定されたバイナリが、 起動時にRAMへロードされ、 先頭から実行が開始される
  6. 6. 大神 祐真 (@yohgami) シェルスクリプトによる開発環境 ● include/sh2.sh – シェルスクリプト製SH-2アセンブラ – SH-2の各命令をシェル関数で定義している ● 網羅してあるわけではない ● 使いたい命令が出てきたらその都度追加している – 各関数は標準出力へマシン語を出力する ● 例えば、sh2_nop()は0x0009を標準出力へ出力する ● リダイレクトでファイルへ保存すれば マシン語のバイナリファイルとなる
  7. 7. 大神 祐真 (@yohgami) 無限ループだけのプログラム src/main.sh #!/bin/bash . include/common.sh . include/sh2.sh main() { sh2_rel_jump_after_next_inst $(two_comp_d 2) sh2_nop } main
  8. 8. 大神 祐真 (@yohgami) ありがとうございました!
  9. 9. 大神 祐真 (@yohgami) 宣伝 共に、電子版は無料公開中! 物理版は各種ショップ様へ委託中! 興味があれば、 http://yuma.ohgami.jp へどうぞ!
  10. 10. 大神 祐真 (@yohgami) 宣伝 セガサターン エミュレータ 「Yabause」の コードを読んで どんなハード だったのかを知る https://techbookfest.org/product/5711801452855296?productVariantID =5652438159720448

×