10周年のSPコンテンツ!
3
Nao_u @Nao_u_
ファミリーベーシック届いた! pic.twitter.com/GST6nf3mRq
拡大
拡大
Nao_u @Nao_u_
マリオを走らせてジャンプできた!ファミリーベーシックのスプライトのアニメ周りの仕様はだいぶ酷いので、小学生の頃はこれすらどうやればいいかわからず、30年越しでようやく実装できた。タイムマシンで当時の自分にやり方を教えに行きたい… pic.twitter.com/mqqUgQKN4b
Nao_u @Nao_u_
ここまで動かすのに3時間くらいかかった…。MOVE命令だとアニメに合わせて勝手に動いくので制御しづらい。SPRITE命令でアニメを切り替えようとすると、どうやってもちらつくのが避けられない。仕方なくMOVEで自動移動をキャンセル+移動方向切り替え時のちらつきをなくそうとして、だいぶ試行錯誤してた
Nao_u @Nao_u_
小学生の頃とまったく同じ思考過程で「このやり方だとダメなのか…」と順番に同じ罠にハマって、当時の記憶がいろいろ蘇ってきた。スプライト周りの仕様が酷すぎて、せっかくマリオのアニメパターンが入ってるのにちゃんと動かすのが困難でもったいない。当時の自分が諦めた理由がよくわかった
Nao_u @Nao_u_
付属品や説明書もちゃんと入ってた。昔は理解できなかったドキュメントの内容も今ならわかるので、「古文書にあったとおりだ!読める、読めるぞ!」とムスカみたいな気分になってくる pic.twitter.com/6InOu97LXe
拡大
拡大
Nao_u @Nao_u_
当時と違ってファミコンのハードの内部情報も豊富にあるので、POKE命令で好きなメモリを直に書き換えられるはず。手始めにPPU制御レジスタの0x2000に0x80を書き込むと、BG用キャラテーブルがスプライトのものになって文字が読めなくなった。ちゃんとI/Oレジスタにアクセスできてる! pic.twitter.com/XQvcwLIY7C
拡大
Nao_u @Nao_u_
試しに$2004からPPUのスプライトRAMに書き込んでみたらノイズは出るけど絵が変わらなかったので、DMAで上書きされてるっぽい。DMA転送元は$200らしいのでループで適当な値を書き込んだらスプライトが画面にいっぱい出た。これだ!ここを弄ればスプライトを直に制御できそう。 pic.twitter.com/wC1vMLn9dy
拡大

コメント

ヘルヴォルト @hervort 2019年10月19日
これがマリオランかぁ
ログインして広告を非表示にする
ログインして広告を非表示にする