自動ニュース作成G
某プログラマが某有名ファミコンゲームのソースをgitに公開したの巻
http://www.highriskrevolution.com/wp/gamelife/2020/01/12/%e6%9f%90%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9e%e3%81%8c%e6%9f%90%e6%9c%89%e5%90%8d%e3%83%95%e3%82%a1%e3%83%9f%e3%82%b3%e3%83%b3%e3%82%b2%e3%83%bc%e3%83%a0%e3%81%ae%e3%82%bd%e3%83%bc%e3%82%b9/
2020-01-14 23:03:39
>ツイッターでポロっとつぶやいたのだけど、ここでも記事をば。
某プログラマが34年前に発売された某有名ファミコンゲームのソースをgitに公開したので、以下にリンクを置いておく。
忍者ハットリくん
・とりあえずちくわと鉄アレイを何に書き換えるゲームが出てくるかな?
・いいのかこれ
・#1 キャラの書き換えだけならソース無しでもよくない?
・流石にアセンブリは読めんわ
・#3 せっかくソース付きだから挙動も少し変えて。紙幣と小銭と爆弾とか
・ビットシフト演算とか制限あるメモリでのやりくりとか、当時の匠な技を知る教材にはよさげ
・ファミコンの匠のテクニックまとめて解説書出して欲しい。88のは見たことあるけど。
・バイトで某FCソフトハウスのテストプレイやってた時、内緒で開発環境も見せてもらったことあったけど その人は普通にアセンブラ手入力してたな あれ見てすげーって思ったし俺には無理って思った思い出
・アセンブラは普通に人が理解できる言語なんだが、おそらくマシン語のことだろうか。8bitCPUぐらいのなら覚えてたなあ。
・デバッグシート見ながらひょいひょい直してくのみて感心したのよ 当時の俺はコボラーだったし
・Z80なら今でも多分アセンブリ言語読めると思う。マシン語は表ないと無理だな
・ハンドアセンブリは基本。
・もしかしてアセンブリ言語って掛け算、割り算命令すらない?プログラムは趣味でPython触るぐらいだけど今からアセンブリでゲーム作れって強制されたら苦行過ぎて半年ぐらいで心の病気になると思う
・#13 CPUの命令セットに乗除が無ければ当然ながら無い。ファミコンは6502ベースなので無い。http://hp.vector.co.jp/authors/VA042397/nes/6502.html
・ビットシフトと加減を組み合わせて乗除を実現みたいな手間か
・8bit時代は乗算無い方が普通だった。
・CPUによって命令違うんだけど、シャープのポケコンのマシン語とか面白かったな。コマンド少なくて、隙間にダイレクト計算のコードがあるの。遅いCPUで無理やり演算速度上げてるんだなーって感心したわ。
・除算ユニットってそれだけで加減算・乗算・論理演算ユニット全部を合わせたくらいの物理的面積を食うんよ
・組み込み機器が増えるので、制限ある環境下でのプログラミング能力は今後求められるかもしれん
・PICとかでもC言語で書く昨今、組み込みだからってそんな極端な制限は無いんじゃないかな。 古いシステムの組み直しならZ8マイコン(Z80にあらず)とか触ってるけど。
・アセンブラ余裕ニキはHuman Resource Machine https://ja.wikipedia.org/wiki/%E3%83%92%E3%83%A5%E3%83%BC%E3%83%9E%E3%83%B3%E3%83%BB%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%83%BB%E3%83%9E%E3%82%B7%E3%83%BC%E3%83%B3やってみて欲しい。あーこれこれってなるから。もちろんアセンブラやったことない人もアルゴリズムの勉強になるんでおすすめ。
・俺もZ80ならソース手書きもしたけど、6502はまた違うから新鮮だ。 #12 ハンドアセンブルとは俺よりもう少し世代が上の方ですね。 #13 まさに#15が書いてる通りだけど一手間増える程度の感覚だった