2と3のリビジョン間の差分
2020-11-06 11:39:19時点のリビジョン2
サイズ: 3044
編集者: keitaroh
コメント:
2020-11-06 13:57:37時点のリビジョン3
サイズ: 4145
編集者: keitaroh
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 19: 行 19:
   * ドルアーガのマルチタスク機構は垂直同期割り込み処理と連携動作しているので、垂直同期割り込み処理も道連れにする。    * TODのマルチタスク機構は垂直同期割り込み処理と連携動作しているので、垂直同期割り込み処理も道連れにする。
行 32: 行 32:
 * ドルアーガのような「状態情報」を持つ敵のプログラミングをする場合でも、状態情報IDのような変数を用いずにプログラムできる(詳しくは後述)。  * ドルアーガのような「状態情報」を持つ敵のプログラミングをする場合でも、状態情報IDのような変数を用いずにプログラムできる(詳しくは後述(※まだ書いてない))。
行 35: 行 35:

== 備考 ==

 * 当時ナムコでジョブコントローラまたはオブジェクトコントローラと呼ばれていたもの。
  * 深谷正一氏が開発したものをベースとしており、様々なゲームで利用されていたらしい。
  * 当時のナムコゲーのみならず、SFC版「かまいたちの夜」でもジョブコンの改良型が使われているとのこと。
   * http://game.5ch.net/test/read.cgi/gamedev/1006184421/782
 * 正確な定義は筆者には分からない(筆者はゲーム業界にいたことすらない、ただの一般趣味プログラマである)が、黒須一雄氏によればマルチタスク機構部分とゲーム進行の管理処理(TODでは非制御用タスクとして実装)を「ジョブコン」、スプライト制御用のタスクが「オブジェコン」という事のようだ。
  * 参考:「4.10.1 タスクシステムについて黒須一雄氏インタビュー」(http://www.dcaj.or.jp/project/report/pdf/2008/dc_08_03.pdf の 301P辺りから)。

概要

  • 実際にドルアーガの塔を遊べるモード。通常モード。
  • 起動時処理部やテストモード処理部と異なり、マルチタスクで動作している。
  • ディップスイッチ等でテストモード起動設定へ切り替えると、起動時処理部へ分岐する(つまり再起動する)。
  • ディップスイッチで「画面の停止」設定へ切り替えると、動作を一時的に停止する。

マルチタスク機構

  • ゲームモードではマルチタスク機構が起動しており、大半の処理が「タスク」として記述され(見かけ上)並列動作する。

特徴

  • 協調的マルチタスク(ノンプリエンプティブ・マルチタスク)である。
    • タスク切り替えをタスク側で能動的に行う。
    • したがって、あるタスクが切り替え処理をしないまま無限ループに入るとシステム全体が停止する。
      • TODのマルチタスク機構は垂直同期割り込み処理と連携動作しているので、垂直同期割り込み処理も道連れにする。
      • ※実際にシステムが停止した場合はウォッチドッグ機構により再起動がかかる。
    • 自主的に切り替えない限りタスクの切り替えが行われないので、あるタスクの実行中に他のタスクが割り込むことがない。
      • タスク実行中は垂直同期割り込みが停止されるので、垂直同期割り込み処理すら実行されない。
  • メモリ保護はされない(というより、出来ない)。
  • レジスタの退避をしない。
    • タスクを切り替えた時点で全レジスタの内容が失われると考えなければならない。
    • 切り替え後に引き継ぎたいデータがある場合はワークエリアに保存する必要がある。
  • 軽量で高速に動作する。当時の非力な CPU でも十分なパフォーマンスが得られる。
  • 各タスクは一つの用途に専念できるため、単純で読みやすいプログラムコードを簡便に書くことができる。
    • 経験の乏しいプログラマでも、バグが少なくデバッグのしやすいコードを書ける。
    • とはいえマルチタスクには違いないので、同期ミスによるバグが混入するリスクがある。
      • そして同期ミスによるバグは発見が難しい。
  • ドルアーガのような「状態情報」を持つ敵のプログラミングをする場合でも、状態情報IDのような変数を用いずにプログラムできる(詳しくは後述(※まだ書いてない))。
  • スプライト制御用のタスクと、非制御用のタスクの二種類がある。
    • スプライト制御用のタスクにはタスク一つにつきスプライト一枚が割り当てられる。また、専用のワークエリアが32バイト分確保される。

備考

  • 当時ナムコでジョブコントローラまたはオブジェクトコントローラと呼ばれていたもの。
    • 深谷正一氏が開発したものをベースとしており、様々なゲームで利用されていたらしい。
    • 当時のナムコゲーのみならず、SFC版「かまいたちの夜」でもジョブコンの改良型が使われているとのこと。
  • 正確な定義は筆者には分からない(筆者はゲーム業界にいたことすらない、ただの一般趣味プログラマである)が、黒須一雄氏によればマルチタスク機構部分とゲーム進行の管理処理(TODでは非制御用タスクとして実装)を「ジョブコン」、スプライト制御用のタスクが「オブジェコン」という事のようだ。

ゲームモード (最終更新日時 2020-11-20 15:33:16 更新者 keitaroh)