ダイナモローラーテスラでようやくS+5まできた。
ウデマエXまであと一息。この調子で頑張ろう。
ダイナモ系の武器はステージ毎の立ち回りが超重要。 強ポジではめっぽう強いが、ずっと強ポジにいるだけでは、ボムコロで対策されたり、潜伏でキルを狙われるので、如何に強ポジを維持しつつも、狙われないかがとても重要。
ダイナモが特に気にするべきブキは以下の三つ
- チャージャー系
- ブラスター系
- 傘系
上記以外も特にメタれるブキというのはあまり存在しない。
最近モチベーションが下がりに下がっていたのだが、ふとしたきっかけで自転車を乗り始めたり、懸垂の習慣がついてきたおかげか、モチベーションが上がってきた。
最近このblogも全く更新していなかったが、モチベーションの回復に併せて復帰することにしよう
ちょくちょく進めているB2Eサービスの開発。 今日はモデル周りをちょっと実装。 それほど複雑なものでjはないので、今月中に実装終わらせてしまいたい。
0x4000
fpinscala 3.7 ~ 3.18 まで。
RAMは二つの部分に分けられる * $C000 - $DFFF * $E000 - $FFFF
これらはZ80Aのスタックと一時記憶装置として使われる
上から8個目までのRAMはメモリ管理制御レジスタとして使われる。ゲームプログラムとして使ってはいけない。
前方互換性のため、 RAMは $C000 - $DFFF までのアドレッシングに抑える必要がある。
スタックは $DFF8 に配置される必要がある。
$3E ポートはメモリー使用フラグを制御する。 個々のbitでシステムROM、システムRAM、カードスロット、拡張スロットのメモリを使用できるようにする。
電源ONになったときに、8 kb ROM の$0000から実行がはじまる。 このROMコードは以下のステップで実行される 1. システムが初期化される 2. 小さなプログラムがROMからRAMにコピーされる($C700で) 3. プログラムを実行するために$C700 にジャンプする 4. 全てのROMスペースはdisableされる。そして、RAMにコピーされる ?? 5. ROMスペースはここに設定され、メモリの存在をチェックされる。 それらは以下の順番でチェックされる A. フロントカードスロット B. トップカートリッジスロット C. 後部外部拡張スロット 6. これらの三つのスロットからメモリーは発見され、スロットは使用可能にされる。そしてZ80Aは $0000 にジャンプする 7. メモリーが見つからなければコンソールROMが使用可能にされ、”Insert a cartridge" メッセージがスクリーンに表示される
もし、カードとカートリッジが両方とも接続されていたら、最初にチェックされてカードが優先される
ゲームプログラムはオリジンの$0000 から始まるZ80Aアプリケーションプログラムとして記述される
github.com の続き。
16 kb のビデオRAMは三つの領域に分割できる
明日からCPU実装に入る。
SEGA master systemのJavaScriptで書かれたエミュレータ
[https://github.com/ymizushi/Miracle:title]
が大変参考になる。
このリポジトリの docs
でほぼ必要な情報を入手することができる。
特に重要なのが、mk3man.pdf
だ。
このドキュメントは以下の章から成り立っている。
NMIピンはゲーム機のポーズボタンに接続されており、ポーズボタンを押すことで $66番地のリスタート命令が実行される。
この命令は短銃なサブルーチン呼び出しとして実装されており、プログラムカウンターはスタックにプッシュされ、 $006番地に飛ばされる。
割り込みはエッジ・トリガで、ポーズボタンが押下されたら、一つの割り込みのみ取得することができる。
つまり、連続で割り込みが実行されることはない(前提として、チャタリング回避などのコンデンサがあることが前提と思われる。なので、チャタリング防止のためのコンデンサがMk3にはあるはず)。
NMIの最後の命令は必ず RETN
である必要がある。
ポーズボタンは特定用途で使用する。$0066に制御の移行セットアップ処理を記述する必要がある。
INT => Interrupt IE => Interrupt Enable Bits
今日はCPU。
次は、VDP。
とある分野で秀でるにはその分野においてある種の中毒状態になるのが重要だと思っているが、一方で単なる中毒状態だと目標達成のために必要な情報収集、基礎練習、応用練習が十分にされないこともある。
中毒状態を維持しつつも、中毒におぼれず目標達成のために必要なことを意識することが継続的な成長に重要。
帰りが遅くなると自由時間が減りがちなので、早い出社、早い退社を心がけたい。
人間は生きているとと大なり小なりストレスを感じるが、外的要因でストレスを感じる場合と、内的要因でストレスを感じる場合に大別出来る。
実際に発生している問題とそれで感じるストレスが同じ場所から発生しているなら良いが、実際は外的要因なのに内的要因としてストレスを感じていたり、その逆でストレスを感じていたりすることもある。
これは問題を間違って認識していると言うことであり、PDCAを回す上の障壁になるので取り除く必要がある。