JP3734048B2 - ビデオグラフィックプログラム編集システムおよび方法ならびにそれに用いられる重ね合わせ制御回路 - Google Patents
ビデオグラフィックプログラム編集システムおよび方法ならびにそれに用いられる重ね合わせ制御回路 Download PDFInfo
- Publication number
- JP3734048B2 JP3734048B2 JP28425195A JP28425195A JP3734048B2 JP 3734048 B2 JP3734048 B2 JP 3734048B2 JP 28425195 A JP28425195 A JP 28425195A JP 28425195 A JP28425195 A JP 28425195A JP 3734048 B2 JP3734048 B2 JP 3734048B2
- Authority
- JP
- Japan
- Prior art keywords
- game
- editing
- cpu
- unit
- display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- A63F13/10—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/63—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by the player, e.g. authoring using a level editor
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/53—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game
- A63F13/533—Controlling the output signals based on the game progress involving additional visual information provided to the game scene, e.g. by overlay to simulate a head-up display [HUD] or displaying a laser sight in a shooting game for prompting the player, e.g. by displaying a game menu
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/45—Controlling the progress of the video game
- A63F13/49—Saving the game status; Pausing or ending the game
- A63F13/493—Resuming a game, e.g. after pausing, malfunction or power failure
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/90—Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
- A63F13/95—Storage media specially adapted for storing game information, e.g. video game cartridges
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/20—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
- A63F2300/206—Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/30—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
- A63F2300/308—Details of the user interface
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/6009—Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/6063—Methods for processing data by generating or executing the game program for sound processing
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/63—Methods for processing data by generating or executing the game program for controlling the execution of the game in time
- A63F2300/636—Methods for processing data by generating or executing the game program for controlling the execution of the game in time involving process of starting or resuming a game
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/64—Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/12—Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Optics & Photonics (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
- Digital Computer Display Output (AREA)
- Stored Programmes (AREA)
Description
【発明の属する技術分野】
本発明は、概略的には独自のビデオグラフィックコンピュータプログラムを生成するための方法および装置に関する。より特定的には、本発明は、コンピュータプログラムまたはビデオゲーム作成方法をよく知らないユーザのために主に設計されたビデオゲーム作成システムに関する。そのようなユーザは、編集を開始した時点から残りのゲームプレイ中持続する編集変更を伴って、ビデオゲームを実行、停止、編集および再開することができるアイコン駆動型対話型計算システムによって、独自のビデオゲームを容易に作成することができる。
【0002】
【従来の技術および発明が解決しようとする課題】
市場で入手可能なビデオゲームシステムでは、ユーザは、ゲーム中の種々の時点において、以降のゲームプレイを制御する幅広い範囲のゲームプレイオプションを選択することができる。例えば、ユーザは、表示キャラクタの移動を制御して、種々の代替可能な方法で表示画面を出ることができる。ユーザの出口の選択の仕方によって、表示キャラクタは異なる世界に入る。そのようなユーザが選択したゲームプレイングオプションは、元のゲームプログラムの一部であり、どのような方法によっても変更されない。
【0003】
先行技術では、ユーザが、ビデオゲームプログラムが動作する所望の方法を、限られた事項について修正することができるような初歩的な試みがなされていた。この製品では、ゲーム変更装置は、従来のビデオゲームカートリッジに物理的に挿入され、その結果、ビデオゲームカートリッジは、マイクロプロセッサを基本としたビデオゲームコンソールに結合される。ゲーム変更装置は、ゲームの進行中に変更されるであろう読み出し専用メモリ(ROM)記憶コードを含む。本装置は、ビデオゲームマイクロプロセッサのアドレスとデータバスとを監視し、期待値と一致すれば、マイクロプロセッサに対して代替コードを送信する。代替コードは、キャラクタの生命の数や発射可能なミサイルの数等のようなゲームプレイの特徴を修正する。この製品では、ユーザは、ゲーム編集処理に対する制御を行うことができず、本発明に従った現実的に実現可能な方法のようには、ゲームプレイを大幅に変更することができない。さらに、ゲームプレイを変更することができても、可能な動作の範囲内でゲームプログラマが元来想定していた動作およびグラフィック表示を可能にするにすぎない。
【0004】
ビデオゲーム設計の専門家は、独自のゲームの設計を支援するために、ゲームプログラム作成ツールをこれまで利用してきた。そのようなプログラミング作成システムでは、非常に単純な事項であっても、開発中のゲームを修正するためには、プログラム設計者による非常に多くの作業がしばしば必要とされる。例えば、ゲーム中のキャラクタに対して行われる変更は、通常まず、キャラクタ画像を作成した創作者が規定した元のキャラクタ配列内において行われる。キャラクタに対するあらゆる変更は、新規のファイルとして保管され、例えば開発中のゲームプログラムに変更を導入するプログラムデバッグモジュールへ送信されなければならない。開発中のゲームのグラフィックの変更は、たとえ比較的単純な修正に関してであっても、修正の再コンパイル、再格納および表示という複雑な処理を通常含む。幅広い種々の複雑な変更が、従来の作成プログラムの制御下で作成中のゲームプログラムに対して行われうるが、そのような変更には、高度なプログラミングおよびゲームプログラミング技術に関する知識が要求される。
【0005】
【課題を解決するための手段および発明の効果】
本発明に従えば、比較的技術の低い小学生から技術の高いゲーム開発者までのユーザが、独自のビデオゲームを簡単に作成することができる。独自のハードウェアおよびソフトウェアプラットホームによって、ユーザは、より詳細なエディタ画面をアクセスするアイコンを選択することによって独自のゲームを作成して、移動オブジェクトおよびゲームの背景に関する幅広い種々のゲーム表示の特徴を直接変更することができる。
【0006】
所望するゲームのジャンルからのモデルゲームを含むモデルソフトウェアはビデオゲームRAMカセットに、オペレーティングシステムソフトウェアは、システムRAMに、(おのおの)フロッピーディスクを介して格納される。本発明によって、ユーザは、モデルゲームプレイを開始することと、所望するあらゆるゲーム画面においてゲームを停止して「システムブレイク」編集セッションを開始することとができ、編集セッションでは、幅広い種々の編集機能に対する制御を可能にするためのシステムウインドウが、ゲーム画面に重ね合わせられる。その後、ユーザは、修正を行うために、移動オブジェクトまたは背景場面を選択する。例えば、ユーザが移動オブジェクトを選択する場合は、選択された移動オブジェクトは、ユニット番号によって識別され、このユニット番号は、幅広い範囲のゲームプレイ関連の特徴に関連している。移動オブジェクトが選択されると、さらにアイコンが表示されて、ユーザは、オブジェクトに関連する1つまたはそれ以上のポーズについてのオブジェクトのキャラクタドットパターン、オブジェクトに関連する動画特徴、オブジェクトに関連して検出されたゲームプレイ条件に関連する応答、各オブジェクトに関連するステータスの集合、オブジェクトの移動パターン、オブジェクトの移動パターンに関連する音声および幅広い種々のその他のゲームプレイ関連の特徴を、完全に変更することができる。画面背景も、同様に、ステージウインドウをアクセスすることにより修正可能で、背景マップ全体、背景に関連する音楽および幅広い種々のその他の背景関連の特徴を編集することができる。
【0007】
本発明の実施例は、多重プロセッサを基本とするゲームプロセッサコンソールを用いており、このコンソールは、編集処理およびオペレーティングシステムタスク実行を制御するメイン中央処理装置(CPU)と、着脱可能なRAMカートリッジ内に格納されるモデルビデオゲームを実行するためのゲームCPUとを含む。モデルビデオゲームは、ユーザがモデルゲームの所望する面を用いて独自のビデオゲームを容易に作成することができる開始ポイントを提供する。モデルビデオゲームは、全く新しいゲームのように見えるほど、容易に修正されうる。本システムによって、ユーザは、ゲームのあらゆる移動オブジェクト、背景画面、音楽または効果音を修正することができる。
【0008】
メインCPUおよびゲームCPUは、ゲーム実行および編集処理の際には協働して、メインCPUによって生成された編集画面が、プログラム実行CPUによって生成されたゲーム画面上に重ね合わされる。ゲーム処理コンソールは、幅広い種々の周辺装置に結合されるポートを含み、周辺装置には、標準的なテレビ受像機、キーボード、ゲームハンド操作器、マウス、モデムボード、ゲーム処理装置をパーソナルコンピュータシステムに結合するためのインタフェイスボード、フロッピーディスクドライブ、外部RAMゲームカートリッジおよびユーザの識別カードが含まれる。
【0009】
本システムは、特有の「ユニット」を基本とするデータ構造を用いる。データ構造内では、移動オブジェクトがユニットを基本として処理され、各オブジェクトにはユニット識別が割り当てられる。ユニット識別は、幅広い範囲のオブジェクト、ゲームの特徴、ゲーム処理および位置データに関連し、これには、ステータス情報、現在の画面表示位置、オブジェクトフォーマット、キャラクタサイズ、ポーズ情報、衝突しきい値情報、テンポ情報、属性データ、動画データに加えて、識別されたオブジェクトに関連する他の処理関連情報を識別するアドレスポインタが含まれる。幅広い範囲の情報が、同様に、本明細書中で「ステージ」データと呼ばれる、背景画面関連のデータ構造内に記憶される。プログラミングは、条件および処理関連の操作テーブルおよびユニットポインタを用いて、ユーザが編集しやすいように構築され、操作テーブルおよびユニットポインタは、処理されるオブジェクトユニットデータ構造を識別する。ユニット操作テーブルは、ユニットを処理するために用いられ、所定の条件と、各ユニットの所定の条件を検出して遂行される処理操作とを識別する。条件および処理操作は、ユーザがこれらのテーブルを修正することにより、変更され得る。
【0010】
本発明のこれらおよび他の目的、特徴、局面および利点は、以下の図面とともに考慮されれば、本発明の実施例に関する以下の詳細な説明によって、より明確となるであろう。
【0011】
【発明の実施の形態】
図1は、本発明の典型的な実施例に従った、ビデオグラフィックおよびビデオゲームプログラムを作成するシステムの一般的なブロック図であり、ゲームプロセッサシステムユニットコンソール2および多くの関連入出力装置を示す。ゲームプロセッサシステムユニットコンソール2は、例えば3.5インチフロッピーディスク8を受けるための(図2においてより詳細に示す)フロッピーディスク接続ポート7を含む。フロッピーディスク8は、モデルゲームおよびオペレーティングシステムソフトウェアを含む「モデルソフトウェア」を記憶する。オペレーティングシステムソフトウェアは、後でより詳細に説明するように、ゲームプロセッサシステムの全操作を制御し、この制御には、ゲームプログラム関連情報を、ゲームプログラムを実行するRAMカセット4内のメモリへ転送するのを制御することが含まれる。フロッピーディスク8上のモデルソフトウェアは、基本ゲームプログラムソフトウェアを含み、この基本ゲームプログラムソフトウェアは、ユーザのゲーム作成を支援して、ユーザが独自のビデオゲーム設計を行う際には修正される。基本ゲームプログラムソフトウェアは、生成可能なビデオゲームの基本ジャンル、例えば「射撃ゲーム」、「ロールプレイゲーム」、「教育ゲーム」、「シミュレーションゲーム」などを定義する。フロッピーディスク8は、システムが適切な構成であるかどうかを決定するためにブートアップ時に検査されるシステム構成データをさらに含んでもよい。
【0012】
プログラム情報をフロッピーディスク8からRAMカセット4内のプログラムRAMへ最初に転送した後にはいつでも、RAMカセット4はゲームプロセッサシステムユニットコンソール2から取り出されて、例えば本出願人がスーパー・ニンテンドウ・エンターテイメント・システムとして販売しているビデオゲームシステムなどの従来のビデオゲームシステムと共に用いられることができる。図24に関連して後述するように、RAMカセット4は、また、米国特許番号第4799635号(対応;特開昭61−296433号公報)に示す型の機密保護プロセッサを含む。
【0013】
ゲームプロセッサシステムコンソールユニット2は、ゲームプロセッサ識別カード6用の挿入ポート5を含む。本発明の典型的な実施例において、識別カードは、フロッピーディスク8上の所定の位置に記憶されているデータと比較される機密保護コードを含む。その比較の結果、権限を有することが判断されると、フロッピーディスク8からのデータは、RAMカセット4へ転送される。フロッピーディスク8の内容は複写することができるが、ユーザには1枚の識別カード6しか発行されないことによって、偽造者に対する機密保護手段が提供される。識別カード6は、また、ユーザの写真および/または他の識別データを含んでもよい。
【0014】
図1に示すゲームプロセッサシステムコンソールユニット2は、幅広い種類の入出力装置に結合されるように設計されており、ゲームプレイ中に使用する音声信号の入力を可能にするマイクロフォン10の接続用のジャックを含む。さらに、ゲームプロセッサシステムコンソール2は、米国特許番号第5207426号(対応;実開平4−42029号公報)に記載している型のような少なくとも2人プレイヤ操作器12および14を含む。これらの操作器は、例えば上述の特許に記載の市販のSNES操作器において一般的に利用されている方法により、移動オブジェクトキャラクタの動作および関連する特殊効果を制御することによって、ユーザのテレビ画面上でビデオゲームプレイを制御するために用いられる。
【0015】
ゲームプロセッサシステムコンソール2は、さらに、従来のマウス16とPCコンパチブルキーボード18を接続するためのポートとを含む。マウス16およびキーボード18は、後に詳細に説明するような方法により、ビデオゲーム設計処理中にグラフィック/ユーザインタフェイスとしてユーザによって用いられる。マウス16は、例えば小学生などのゲームプログラミング技術に全く不慣れなユーザが、本件に記載のアイコン駆動型システムを使用して特有のビデオゲームを作成することを可能にする。キーボード18は、例えば、ゲームプログラマなどのより高度な技術を身につけたユーザが、ゲームソフトウェア命令を入力することによってゲーム修正ができるようにする。
【0016】
ゲームプロセッサシステムユニットコンソール2は、また、モデムボード22用の接続ポートを含む。モデム22は、単なる例として、9600ボーの半二重モデムである。モデム22は、ゲームプロセッサシステムを後述のオンラインネットワークで使用できるようにする。システムは、また、システムに電力を供給するための交流アダプタ20を含む。
【0017】
ゲームプロセッサシステムユニットコンソールは、後にまた説明するように、2個の中央処理ユニットを含む。1つは主にビデオゲームプレイを制御する役割を果たし、もう1つは主にゲーム編集関連タスクと、ゲーム処理ディスク8からRAMカセット4へ情報を転送するのを制御するためのオペレーティングシステムプログラムを実行するという役割を果たす。
【0018】
図1に示す上述のシステム構成要素は、ビデオゲームプログラム開発に全く不慣れなユーザが、フロッピーディスク8に記憶されているモデルソフトウェアを用いて、広範囲のビデオゲームを作成することを可能にする。図1に示すオプションの構成要素を用いることによって、システムは、ゲームプログラム設計の専門家が特有のエミュレーションシステムでビデオゲームをより容易に作成できるように拡張されてもよい。この代替実施例においては、ゲーム処理システムは、入出力および他の構成要素を、例えばコンソール2内のオペレーティングシステムCPUにさらに結合させる拡張ボード24を含む。図1に示すように、様々な追加の入出力構成要素は、スキャナ30、ハードディスクドライブ28、またはプリンタ26のようなシステムに結合されてもよい。スキャナ30は、従来の光学的スキャナであってもよく、グラフィック画像を走査したり、ビデオゲームを設計する際に用いるゲーム処理システムユニットコンソールメモリシステムに記憶させるためにその画像をデジタル化するのに用いられる。その後、ユーザは、記憶された画像にアクセスしたり、色を付けたり、画像を修正することができる。SCSIインタフェイスは、IBMコンパチブルPC27に結合することができるように、拡張ボード24に実施されてもよい。
【0019】
図2は、ゲームプロセッサシステムコンソールユニット2の斜視図である。コンソール2は、電源オンオフスイッチ11およびリセットボタン9を含む。リセットスイッチ9は、オペレーティングシステム実行CPUおよびゲームCPUを含む全システムのリセットを行うことができる。リセットボタン9は、ゲームプログラムを実行するCPUを周知の初期状態にするのに加えて、オペレーティングシステムCPUを中断させて、例えば、遂行するべき操作をテストするのに役立つ。図1および図2に示すように、ソケット5および7は、それぞれゲームプロセッサ識別カード6およびフロッピーディスク8を挿入するためのスロットである。ソケット5および7は、ユーザが識別カード6またはフロッピーディスク8を容易に掴んで取り出すことができるような関連埋込形領域を有する。図2に示すように、コンソールユニットは、また、フロッピーディスク取り出しボタン3を含む。さらに、図1および図2に示すように、コネクタ13、17、19、21および23は、それぞれ、マイクロフォン10、キーボード18、マウス16、操作器12および操作器14をすぐに接続できるように露出されている。
【0020】
図3および図4は、図1に示すゲームプロセッサシステムのより詳細なブロック図であり、例えばコネクタピンの数、メモリ装置の特殊な型などの詳細を規定する説明的な実施例である。これらおよび他の実施態様の詳細は、単に、本発明を実施するための可能な多くの代替組み合わせの内の1つの説明的な組み合わせとして説明されるものであり、本発明の有効範囲を限定するものとして解釈されるべきではない。
【0021】
図3および図4は、図1に示すのと同一の多数の入出力装置に同じ符号を付けたものであり、図1よりもより詳細に入出力装置とゲームプロセッサシステムコンソール2間の接続を示す。操作器12、14、キーボード18およびマウス16は、図4のフロントボード197に実施されるフロントボードコネクタユニットを介して、ゲームプロセッサシステムコンソール2に結合される。続いて、コネクタは、コンソール2上の25ピンコネクタ191に結合される。マイクロフォン10は、同様に、マイクロフォンジャックと、フロントボード25ピンコネクタに同様に結合されるマイクロフォン増幅器とを介して、コンソール25のピンコネクタ191に結合される。マイクロフォン増幅器は、フロントボード197上の音声制御によって制御される。
【0022】
識別カード6は、識別カード回路ボード185を介してコンソール2に結合され、識別カード回路ボード185は、識別カードコネクタと8ピンコネクタとを有し、8ピンコネクタは、続いて、8ピンコネクタ190においてコンソール2に接続される。RAMカートリッジ4は、80ピンコネクタ189において、62ピンコネクタボード186を介してコンソールに結合され、62ピンコネクタボード186は、ゲームカートリッッジ4と接続するための62ピンコネクタと、コネクタ189と接続するための80ピンコネクタとを含む。ゲームプロセッサ入出力システムは、また、LEDディスプレイおよび3ピンコネクタを有するLEDボード187を含み、3ピンコネクタは、続いて、コンソールユニット2上の3ピンコネクタ188に接続される。リセットスイッチ9は、ゲームCPU200のリセットを行うために結合される。モデムボード22は、モデムスロット195を介してコンソールユニット2に結合される。SCSIボード24は、拡張スロット194を介してコンソールユニット2に結合される。図1に示すフロッピーディスク8を受け入れるフロッピーディスクドライブ199は、34ピンコネクタ193を介してコンソールユニット2に結合され、34ピンコネクタ193は、フロッピーディスク操作器240に結合される。
【0023】
図4は、交流アダプタ20と電源ジャックとを介して交流電力を受けるインタフェイスボード198を含み、当該電源ジャックは、ボード198上の30ピンカードエッジコネクタに結合され、当該30ピンカードエッジコネクタは、コンソールの30ピンカードエッジコネクタ192に結合される。インタフェイスボード198は、また、電源ジャックと30ピンカードエッジコネクタとに結合された直流−直流変換器を含む。ボード198の30ピンカードエッジコネクタは、コンソールユニット2からビデオ信号、同期信号および音声信号を受信し、そのような信号を標準テレビユニット15に入力する。
【0024】
次に、ゲームプロセッサシステムコンソール2の内部の2個のCPUアーキテクチャにおいて、図3および図4からわかるように、ハードウェアは、後述するように、ゲームプログラムを実行するCPU200(SCPU)および関連システム構成要素と、オペレーティングシステムおよび編集システムであるメインCPU228および関連システム構成要素とを含む。さらに、コンソールユニット2は、プロセッサ間通信の大部分が行われるゲートアレイ回路226と、ゲームプログラムを実行するサブシステム出力に編集およびオペレーティングシステムのビデオ出力を重ね合わせるための関連重ね合わせ操作器216とを含む。
【0025】
まず、ゲームプログラムを実行するサブシステムについて説明すると、好ましい実施例において、ゲームプログラムを実行するハードウェアは、ニンテンドウ・オブ・アメリカがスーパー・ニンテンドウ・エンターテイメント・システム(SNES)として現在販売しているハードウェアによって実施されてもよい。しかしながら、本発明は、スーパーNES関連ゲームプログラムを実行するシステムに限定されておらず、むしろ代替のゲームハードウェア装置で使用されてもよい。ゲームプログラムを実行するゲームCPU200は、例えば65816コンパチブルマイクロプロセッサであってもよい。ゲームCPU200は、例えば1メガビットの記憶装置を含む作業用RAM202に結合される。ゲームCPU200は、システムデータバス、アドレスバスおよび制御バスを介して、ピクチャ処理ユニット(SPPU)212に結合され、PPU212は、例えば512キロビットの記憶装置を含むビデオRAM214に結合される。
【0026】
典型的な実施例においては、2個のピクチャ処理ユニット(PPU)212および224を使用する。PPU212は、ゲームCPU200の制御下でビデオゲーム表示を生成するための回路を含み、PPU224は、オペレーティングシステムCPU228の制御下で編集関連ビデオ表示を生成する。ゲームCPU200は、垂直および水平ブランキング期間中に、PPU212を介してビデオRAM214にアクセスする。このように、ゲームCPU200は、ライン走査期間以外であってPPU212がビデオRAM214にアクセスしている時にのみ、PPU212を介してビデオRAM214にアクセスすることができる。PPU224は、ビデオRAM220からビデオ表示を生成する。図4に示すように、PPU212の出力およびオペレーティングシステムPPU224の出力は、重ね合わせ操作器216を介してユーザのテレビ15に入力され、また、重ね合わせ操作器216は、既に識別されたテレビ15へのコネクタを介して、RGBエンコーダ218へ結合される。
【0027】
ゲームCPU200は、また、関連作業用RAM210に結合される音声プロセッサ208に結合される。音声プロセッサ208は、実行されているビデオゲームプログラムに関連する音声を生成するための市販の音声チップを含んでもよい。ゲームCPU200は、音声プロセッサ208を介してのみ作業用RAM210にアクセスすることができる。
【0028】
SNESシステム内で見い出される構成要素に加えて、典型的な実施例は、1メガビットモニタROM204と、256ビットモニタRAM206とをさらに含む。モニタROMはプログラム命令を含んでおり、プログラム命令はゲームCPU200によって実行されて、その結果、編集および情報転送機能を遂行するための制御をオペレーティングシステムCPU228へ転送する。モニタRAM206は、そのような処理に関連するデータを記憶する。
【0029】
スーパーNESビデオゲームマシンについては、その一部が図3および図4においてブロック図で示されているが、本件では一般的な説明しかなされていない。(オペレーティングシステムプロセッサによって用いられる)PPU212およびPPU224を含むSNESに関するさらなる詳細は、本件で明示的に援用している1994年7月5日に発行された米国特許第5327158号(対応;特開平3−63695号公報)の「ビデオ処理装置」に記載されている。スーパーNESに関するさらなる詳細は、1994年3月1日に発行された米国特許第5291189号(対応;特開平4−181291号公報)の「直接メモリアクセス装置ならびにそこで用いられる画像処理システムおよび外部記憶装置」に記載されている。
【0030】
ゲームプロセッサシステムコンソール2は、また、オペレーティングシステムまたは例えば32ビットRISCプロセッサであるNECV810プロセッサのようなメインCPU228を含む。代わりに、例えばモトローラ68000シリーズプロセッサまたは同様の処理能力を有する他のプロセッサを用いてもよい。後で詳述するように、メインCPU228は、オペレーティングシステム関連ルーチンを、ビデオゲームプログラムを実行するゲームCPU200と同時に処理する。メインCPU228およびゲームCPU200は、図28に関連して詳細に説明するゲートアレイ226を介して通信する。上述したように、(ゲームプロセッサ200と同様に)プロセッサ228は、グラフィック処理操作を遂行するための関連するPPU224を含み、CPU228にかかるグラフィック処理の負担を軽減する。オペレーティングシステムCPU228は、バスセレクタ222の制御設定に応じて、直接にまたはPPU224を介して間接的に、ビデオRAM220に結合される。上記で述べたように、PPUの212および224は、本件に援用している上述のSNES関連特許に記載の型である。
【0031】
本発明の好ましい実施例に従うと、メインCPU228は、32ビットバス幅を有するプロセッサであり、21.477MHzのクロック速度で動作する。CPU228は、例えば4メガバイトDRAM230に結合される。作業用DRAM230は、所望するならば、拡張DRAM232を介して24メガバイトまで拡張可能である。メインCPU224は、初期プログラムローダ(IPL)サブルーチンと、BIOSオペレーティングシステムプログラムと、CPU228によってアクセスされるキャラクタフォントとを記憶する、例えば8メガビットROM234にさらに結合される。CPU228は、また、システムバスを介して、例えばフロッピーディスクドライブ199からのデータをソフトウェアバックアップするために用いられる8メガビットフラッシュメモリ236にアクセスする。メインCPU228システムバスは、また、例えば10ビットアナログデジタル変換器238(例えばマイクロフォン10からの音声をボード197を介してデジタル化するのに用いられる)と、フロッピーディスク操作器240と、リアルタイムクロック242とに結合される。
【0032】
メインCPU228およびゲームCPU200は、別個に起動する。電源が入ると、ゲームCPU200は、最初リセット状態になり、その後再開される。ゲームCPU200は、初めにモニタROM204からのプログラム命令を実行する。メインCPU228は、ゲームCPU200がアクセスするメモリ領域を制御する。メインCPU228は、CPU200がモニタROM204の中から実行するべきか、それともRAMカートリッジ4の中から実行するべきかを識別するゲートアレイ226にレジスタを格納する。メインCPU228は、ROM234内の初期プログラム格納およびオペレーティングシステム命令を実行し、フロッピーディスクドライブ199およびフロッピーディスク操作器240を介して、モデルゲームソフトウェアを含むフロッピーディスク8の内容を読み出す。モデルゲームソフトウェアに関連する操作を制御するためのオペレーティングシステムプログラム命令は、メインCPU228が実行できるようにDRAM230に転送される。システム電源を切って、その後入れると、メインCPU228は、フラッシュメモリ236を検査する。最初に電源が投入されると、オペレーティングシステムプログラムがフロッピーディスク8から読み出されて、フラッシュメモリ236に格納され、DRAM230に転送される。2回目に電源が投入されると、オペレーティングシステムプログラムは、フロッピーディスク8を用いることなく、フラッシュメモリ236からDRAM230に転送される。通常、フラッシュメモリのアクセス速度は、フロッピーディスクのアクセス速度よりも高速である。従って、システムは、2回目の電源投入時には、すばやく開始できる。
【0033】
フロッピーディスク操作器240からのモデルソフトウェア情報は、まず、RAMカートリッジ4へ転送するために、DRAM230内にバッファリングされる。その後、メインCPU228は、通信可能な信号を生成して、その信号をゲートアレイ226内のハンドシェークポートに送信する。ゲームCPU200は、モニタROM204に記憶されている命令を介してハンドシェークポートを監視し、ゲートアレイ226内の通信RAMからのデータおよび/または命令を受信する準備をする。ハンドシェイクポートは、一対の一方向ハンドシェイクポートによって実施されてもよい。一方の一方向ハンドシェイクポートは、情報をメインCPU228からゲームCPU200へ伝達する。他方の一方向ハンドシェイクポートは、情報をゲームCPU200からメインCPU228へ伝達する。
【0034】
ハンドシェイクポートは、情報がメインCPU228とゲームCPU200との間で転送されるべきかを示すゲームCPU200によってアドレス指定可能なバッファレジスタを含む。ゲームCPU200は、ゲートアレイ226内の通信RAMがメインCPU228から情報を受信したことを決定すると、通信RAMからの情報にアクセスし、80ピンコネクタ189およびコネクタボード186を介して、そのような情報をRAMカートリッジ4へ転送する。メインCPU228は、通信RAM情報がRAMカートリッジ4に転送された後に、ゲートアレイ226内に実施されたレジスタをセットして、ゲームCPU200の制御をモニタROM204からRAMカートリッジ4へ切り替える。ゲームCPU制御がRAMカートリッジ4に切り替えられた後は、ゲームCPU200は、もはやハンドシェークポートを監視しないか、またはゲートアレイ内の通信RAMとのさらなる対話を行うことはない。この時点で、ゲームCPU200が動作して、上述のSNES関連特許に記載のゲーム機と実質的に同様の方法で、RAMカートリッジ4からゲーム関連命令を実行する。
【0035】
メインCPU228は、ゲートアレイ226内のレジスタ複写RAMにアクセスすることによって、CPU200システムバスを介して送信される情報を常に監視する。ゲームCPU200バスからレジスタ複写RAMに書き込まれた情報は、メインCPU228フォーマットと互換性のあるようにフォーマットされる。PPU212および音声プロセッサ208からの情報は、メインCPU228が監視メインをしてゲーム状態を継続的に認識できるようにするために、レジスタ複写RAMへ流れる。32ビットRISCプロセッサを用いれば、そのような大容量の情報を監視するのに必要な処理能力がメインCPU228に提供される。後述するように、PPU224とビデオRAM220とを介してメインCPU228によって生成された画像と、PPU212とビデオRAM214とを介してゲームCPU200によって生成された画像とは、一部がゲートアレイ226にある後述の重ね合わせ操作器216を用いることによって、ユーザのテレビ15上に同時に表示される。
【0036】
メインCPU228は、ゲームCPU200の操作を継続的に認識しているので、全ての要求される情報が表示操作のためにビデオRAM214に書き込まれて初めて、ゲームプレイを修正するためにユーザが命令した「システムブレイク」を開始する。システムブレイク論理回路は、システムブレイクコマンドが実行された場合に、ゲームブレイク制御信号をゲームCPU200に対して生成するためのタイミングを制御する。このように、メインCPU228は、ゲームCPUバス上のデータ、特にビデオ表示または音声の生成に関連する情報を監視して、システムブレイクを実行する適切な時点を決定し、それによって歪んだピクチャおよび音声情報を回避する。
【0037】
図5および図6は、情報がフロッピーディスク8からRAMカートリッジ4に転送された後の図3および図4に示すメモリ装置のうちのいくつかのメモリマップの一部である。フロッピーディスク8に記憶されたモデルソフトウェアは、制御ファイル、モデルゲーム関連データ、ユニットポインタ、アドレスデータおよびメインゲームプログラム(および、図示していないが、音声プロセッサ208に入力される音声データ)を含む。図5からわかるように、そのようなモデルソフトウェアの全てがRAMカートリッジ4に転送されるわけではなく、むしろDRAM230は、編集ソフトウェア(例えばマリオファクトリー)およびオペレーティングシステムソフトウェアと同様に、ユーザが選択したとおりのゲーム条件変更に関するデータを記憶する制御ファイルを保守する。モデルソフトウェアが実行されると、ユニット作業用データがモデルソフトウェアのメインプログラムによって生成される。ユーザがゲームプレイを停止してモデルゲームを修正するために「システムブレイク」を開始した後、ユニット作業用データと、ユニットポインタと、編集用データとが、バッファ領域へ転送される。制御ファイルを用いたエディタが終了すると、修正された情報(後述のデータおよびユニットポインタ情報)は、バッファ領域データに記憶されて、その後ゲームメインプログラムを記憶するRAMカートリッジ4に転送される。
【0038】
本発明のゲーム処理システムは、様々なネットワーク構成で使用する目的で設計される。本発明は、「友だちネットワーク」、すなわちユーザ間で新規に生成されたビデオゲームを記憶したRAMカセット4を交換することを考慮している。同様に、識別カード6およびフロッピーディスク8は、同一のゲーム処理プロセッサシステムにおいてRAMカセット4を用いて使用する目的で、友人の家に運ぶこともできる。
【0039】
さらに、図7に示すように、オンラインネットワークシステムも考慮している。図7に示すように、ゲーム情報は、図1に示すモデム22を介して、電話回線43によって、ユーザの家48からアクセスポイント42、デジタルリンク47を介して、ゲーム処理センタ40へ送信することができる。同様に、ゲーム情報は、電話回線43を介して友人の家50からアクセスポイント44に転送されて、その後デジタルリンク47を介してゲーム処理センタ40に送信することができる。ゲーム情報は、また、ゲームメーカ46(例えば任天堂など)から送信することもできる。図7に示すオンラインネットワークシステムにおいては、ユーザのフロッピーディスク8内のモデルソフトウェアを、修正すべきモデルビデオゲームソフトウェアに付け加えるために容易に補足することが可能である。
【0040】
本発明の一つの典型的な実施例によると、フロッピーディスク8に記憶されたモデルソフトウェアは、メーカによって設計され、ユーザが変更することのできないビデオゲーム部分を含む。モデルソフトウェアのこの部分は、「ベースファイル」と呼ばれる。「ユーザファイル」は、ユーザが変更できるビデオゲーム部分である。図7に示すシステムにおいては、ユーザファイルは、ゲーム処理システムを持つ友人の家にネットワークを介して送信することができ、ユーザ間で対話型ゲームプレイをしたり、または友人が、新規に設計されたゲームの修正バージョンをプレイすることができる。アクセスポイント42および44は、例えば、ゲームを非常に遠方へ送信するのにかかる電話料金を最小限にするために供給される。その後、ゲームデータは、直接デジタルリンク47を介してゲーム処理センタ40に伝送される。ゲームデータは、ゲーム処理センタ40で受信された後に、そこから適切な目的地まで再送信される。
【0041】
ゲームプロセッサユニットシステムハードウェアおよびソフトウェアをさらに詳しく説明する前に、実施例のゲーム作成および編集操作について次に説明する。フロッピーディスク8がコンソールソケット7に挿入されて、ゲーム処理識別カード6がソケット5に挿入された後に、タイトル画面が、例えば図8に示す典型的な画面の「マリオファクトリー」のように表示される。図8に示すタイトル画面は、ユーザがマウス16によって選択することのできる5個のアイコンを示す。アイコンは、「クリックする」、すなわち左のマウスボタンを軽く押圧することによって選択される。図8において5個のアイコンが示されているが、以下の説明は、多くの可能な実施態様の内の一つを表す例示的な実施例である。例えば、5個より多いかまたは少ないアイコンをタイトル画面に表示してもよいし、また、異なる機能を、例示的な実施例に示すものに付け加えるか、またはそれらの代わりに選択してもよい。
【0042】
タイトル画面は、「モデルソフトウェア格納」アイコンを示し、それがマウス16によって選択されると、フロッピーディスク8に記憶されたモデルソフトウェアが、より詳細に後述する方法によってコンソールユニット2のメモリに格納される。図8は、また、「ゲームアイコン」を含み、そこでモデルソフトウェア内のゲームを実行および修正するために選択することができ、新規かつモデルソフトウェア内のゲームとは全く異なるゲームを作成することができる。図8に示すタイトル画面は、また、電話回線を介して目的地までデータを送信するためのモデム22を選択することのできるネットワークアイコンを含む。さらに、ディスク退避およびツール編集アイコンも選択することができる。
【0043】
図8に示すゲームアイコンがクリックされた場合、通常、ゲームプログラム開始画面が表示される。ユーザは、ゲームを一人のプレーヤでプレイするか、または二人のプレーヤによってプレイするかを選択した後に、図1に示す操作器12または14の開始ボタンを押す。次に、例えば周知の「マリオブラザーズ」の内の1つのバージョンなどのモデルソフトウェアによって規定されたゲームのプレイを開始する。
【0044】
ゲーム中、表示された移動オブジェクトキャラクタまたは表示画面背景の一部を変更したいと所望する時はいつでも、ユーザはゲームを停止して、本願で「システムブレイク」と呼んでいるものを開始する。システムブレイクが開始されると、図9に示すようにシステムブレイク画面が表示され、その中でシステムウインドウ画面50が、ユーザが選択したゲーム画面57上に重ね合わせられる。例えば、本出願人が製造したビデオゲームの中で有名な周知の「マリオ」などの移動オブジェクトキャラクタ、または背景のどの部分でも、変更がなされるべき領域においてクリックすることによって修正される。
【0045】
本発明は、モデルソフトウェアに対して広範囲の変更を行うことができ、モデルソフトウェアゲームの背景および移動オブジェクトを、モデルソフトウェアゲームの原型が認識できない程までに修正することができる。例として、図9は、カーソル(例えば手)が修正すべきキャラクタに重なった時にユーザがマウスをクリックすることによって、「マリオ」と認識できる移動オブジェクトキャラクタに変更がなされることを示している。所望するならば、全く新しいキャラクタをマリオの代わりに用いることができる。
【0046】
この例として、ゲームをしているユーザが、マリオの口髭を取り除きたいと望んでいると仮定する。上述したように、ユーザはマウスをクリックして、システムブレイクを開始することによってゲームを停止する。その後、ユーザはマリオをクリックする。メインCPU228は、例えばキャラクタの「ユニット番号」の表示52と共に、変更すべきキャラクタを線で囲む矩形ブロックを生成する。修正することのできる各移動オブジェクトおよびゲームの背景部分は、それぞれ特有のユニット番号によって識別される。後に詳細に説明するように、各ユニット番号およびそのオブジェクトに関連するものは、広範囲の特性、例えば大きさ、ポーズ、動画パスなどである。システムウインドウ50は、ユーザが広範囲の編集機能を選択できるようにする一連のアイコンを含む。システムウインドウ「ステージ」アイコン54は、広範囲の背景キャラクタ編集を行う図23に示す「ステージ」ウインドウのアクセスを可能にする。システムウインドウは、また、タイトル画面アイコン55への復帰と、ゲーム再開アイコン59と、ユーザがゲーム停止とスロープレイモードとの間を切り替えることができるようにする切替可能制御53とを含む。選択しうる特定のゲーム作成/編集ツールをシステムウインドウ50において入れたい場合は、多くの追加または代替の編集機能をシステムウインドウ50内に含んでもよい。
【0047】
図9からわかるように、ユニット番号表示52と同様に、アイコンを表示するシステムウインドウ50および編集ツールは、ゲーム画面57上で重ね合わされる。編集のためにマリオキャラクタを選択すると、一連のマリオ編集画面/ウインドウが表示される。他の移動オブジェクトは、同様の方法で編集のために選択することができる。
【0048】
図10は、典型的なキャラクタ編集画面を表している。図10は、マリオキャラクタが修正されている(60)ことを視覚的に示すマリオキャラクタ編集関連ウインドウを示す。マリオの表示の下には、マリオの現在のステータスが確認される(62)。「マリオ」のステータスは、「停止」していると表される。確認可能な他の典型的なステータス表示は、マリオ「左移動」、マリオ「右移動」、マリオ「ジャンプ」の表示、もしくはマリオが上方または下方から現れることである。後述のステータスエディタを用いることによって為しうるマリオのステータスの変更に従って、ゲームは変更される。
【0049】
ステータスブロックの下に、一連のアイコンが示され、なしうる典型的なマリオ関連編集修正と、関連アイコンをクリックすることによってアクセス可能な編集画面とを示す。アイコン64は、図14と共に後述するように、マリオの動画パターンに関して行われる変更が行われるようにする。アイコン66は、図22と共に後述するように、キャラクタ「ステータス」条件に対して変更がなされるようにする。アイコン68は、マリオが移動する時に、ビデオゲームに関連する効果音に対して変更がなされるようにする。アイコン70は、ゲームプレイを再開する。アイコン72は、図12と共に後述するように、「全ステータス」条件に対して変更がなされるようにする。アイコン74は、図11に関連して後述するマリオキャラクタドットパターンに関して変更がなされることを可能にする。アイコン76は、図21に関連して後述するキャラクタ動作の編集を可能にする。アイコン78は、システムをシステムウインドウへ復帰させる。
【0050】
例えば、マリオの口髭を取り除くためには、ユーザは、キャラクタアイコン74をクリックし、図11に示す表示画面を生成する。キャラクタアイコンをクリックすることによって、制御は、図11に示すキャラクタ設計ツールに転送される。ズームツールは、アイコン85上でクリックすることによって選択され、修正すべきキャラクタの拡張図が現れる。ペンシルツールは、ペンシルモードとボックスモードとを切り替えるアイコン86をクリックすることによって、選択される。ペンシルモードでは、グラフィックデータをドット毎に変更することができる。ボックスモードでは、グラフィックデータを矩形領域によってペイントすることができる。アイコン84は、ゲームプレイの再開またはシステムブレイク画面への復帰を制御する。消去ツールは、例えばマリオのパターンに関するすべてのグラフィックデータを消去するアイコン87をクリックすることによって、選択される。アンドゥツールは、直前のコマンドを取り消すアイコン88をクリックすることによって、選択される。図11に示すように、カラーパレット80は、ユーザが多くの色の内のどれでも選択して、選択した色をクリックすることによってマリオのどの部分の色でも変更し、従来のペインティングプログラムに従って彩色ツール(例えば、クレヨン型カーソル)を用いてマリオを描くことができるようにする。このカラーパレット機能は、ユーザが、規定のカラーパレット内の色を選択したり、色の様々なパレットの中から選択したり、カラースペクトル機能を用いて新規の色を作成することを可能にする。
【0051】
モデルソフトウェアに関連する各移動オブジェクトは、所定の数の異なるポーズを有する。例として、マリオパターンは、合計13のポーズパターンで構成されている。パターンの数は、図11(82)に示す画面の左部分に表されている。例えば、パターン番号ゼロは、「0」をクリックすることによって選択される。ペンシルモードがアイコン86をクリックすることによって選択されると、クレヨン型のカーソルが、パターン番号0のマリオの口髭を消去するために用いられ、カラーパレット80のマリオの肌の色と置換される。同様の操作が、残りのマリオパターン1から12のそれぞれを用いて遂行される。
【0052】
口髭の全てがいったん消去されると、例えばロボットアイコン84が、システムウインドウへの復帰を生成するためクリックされ、システムウインドウ復帰においては、ゲームアイコンがゲームプレイを再開するために選択される。ゲームプレイが再開されると、マリオは、ゲームの間中口髭無しで表示される。図11に示す表示画面を用いて、ユーザは、マリオパターンの各画素を修正することができる。ユーザは、システム内の利用可能な様々なエディタを用いて、独自のマリオを作成し、広範囲の動画およびマリオまたは他のキャラクタ上で遂行される他の操作を制御することができる。
【0053】
図12は、「マリオ」という名のユニット用の例示的な「全ての」ステータス画面エディタ表示を示す。上述のように、各移動オブジェクトまたは他の修正可能なキャラクタは、ユニット名によって識別される。各ユニット名は、関連するステータスの集合体を有する。本発明は、キャラクタのステータスを識別する「全ステータス」エディタを利用し、ユーザが操作を選択して、ステータス修正をすることを可能にする。このようにして、図12に示すように、ユニット名90、すなわちマリオ用に、「停止」、「左移動」、「右移動」、「左滑り」、「右滑り」、「ジャンプ」、「落下」、「つぶれる」など(92)の様々な識別されるステータスがある。さらに、ステータスを複写、または削除するためのツール94がある。オブジェクトの条件がゲーム実行CPU200によって操作されるため、識別されたステータス92は、オブジェクトの条件をオペレーティングシステムCPU228に伝える。各ステータスに関しては、システムCPU228には、図5に示す制御ファイルデータ構造を介して、各ステータスに関連する操作が伝えられる。このように、各ステータスに関して、関連する操作のシーケンスが識別および記憶される。例えば、「ジャンプする」というステータス5に関して、データ構造は、ジャンプ中に生成された音声(例えば「ポヨーン」)、ジャンプ中の動作(例えば、動画プログラムによって識別された動画パス)、およびジャンプ操作中のプログラミング(マリオが床にぶつかったら、キャラクタが死ぬ)の指示を記憶する。
【0054】
図12左側のステータス見出しは、ステータスに関連する操作のより詳細なシーケンスへのアクセスを可能にする。例えば、図12に示すように、ステータス1項目が図12の右部分においてユーザによって選択された場合、ステータスに対する動画が表示される。さらに、ステータスに関連する効果音が生成されて、キー、オート、効果音およびアニメエントリのもとで適切なエントリが表示される。図12に示すように、「キー」エントリが、特定のステータスに対して動作中の操作器がプレーヤ1用か、またはプレーヤ2用か、およびどのボタンがアクティブなボタンかを識別する。「キー」アイコンが選択されると、図13と共に後述するように、キーエディタが用いられる。「オート」エントリは、識別されたステータスに関して図21で説明するオートプログラマの状態を表す。効果音およびアニメは、それぞれ、効果音および動画を識別する。さらに、背景音楽BGMも、効果音エントリで選択可能である。
【0055】
ゲームが停止され、ユーザがマリオをクリックすると、システムCPU228は、図12のステータス表示に対応する制御ファイルにアクセスして、選択されたどのシーケンスが、識別されたステータスと関連するべきかを知る。このようにして、識別されたゲームステージにおいて特定の画面と関連する情報は、システムCPU228に転送される。
【0056】
キー機能ステータスが図13で説明されるキーエディタによって制御される。キーエディタは、操作器1または操作器2に関連するステータス、操作器上のあらゆるボタンおよび/またはボタンが(一度)押されたか、ボタンが(継続的に)押されたかというようなボタン状況を定義する。図13に示すように、キー名表示は、キー名によって一般的な型のキー(例えば8)をセットアップすることができる。リネームボタンは、キー名を変更することができる。ゲームオプションネームは、ステータス編集のようにメニューからオプションを選択することができる。キー状況表示によって、ゲームオプションが、キー条件が一致したときのみ実行されるようになる。1P/2Pアイコンをクリックすると、1Pまたは2P操作器を選択することができる。操作器表示は、このボタンをクリックすることによって、「キー」か「(複数の)キー」を選択することができる。
【0057】
図10において動画アイコン76が選択されると、動画エディタが選択されて、例えば図14に示すような動画画面を表示する。図14は、動画シーケンスを作成する様々なポーズのうちの蟹の形をした移動オブジェクトを示しており、動画シーケンスにおいては、各ポーズがポーズ番号が割り当てられている。図21に関連して後にさらに説明するように、「オートプログラマ」ツールは、移動が起きるパスを定義するために用いられる。
【0058】
図14に示す動画ツールは、ポーズのシーケンスを定義する。本実施例においては、8個のポーズを動画シーケンス内で定義することができる。図14は、画面に表示すべき動画シーケンスの中で、8個のポーズのうち4個(ポーズ番号0から3までが付けられている)に対する領域を示す。ユーザは、また、操作器102を用いて各セルが現れる時間を定義する。セル時間表示104が60に設定された場合、各セルは1秒間表示される。シーケンスの全体のテンポは、テンポ制御106を修正することによって制御することができる。本実施例において、テンポの標準速度はゼロに設定される。テンポを遅くするためには負数を設定し、テンポを早くするためには正数を設定することによって、テンポを制御することができる。ゲームプレイが再開されると、各セル表示頻度および動画シーケンス速度は、図14の設定に基づいて制御される。
【0059】
図14におけるポーズ8から15(まとめて108)は、動画シーケンスに挿入することのできる代替のポーズを識別する。ユーザは、特定のポーズ、例えば10をクリックし、そのポーズをドラッグして、例えば動画シーケンスポーズ2上に配置するだけでよい。この操作により、ポーズ10がポーズ2に替わって表示される。
【0060】
図14の上方左隅に示す四隅の印によって定義される領域は、特定のキャラクタに対する衝突しきい値109を表す。すなわちゲーム中に、識別されたキャラクタが、他のオブジェクトに対して四隅印の領域によって示された距離内に現れた場合、衝突が検出される。四隅印の領域の大きさは、「ヒット」表示制御しきい値制御112によって制御することができる。
【0061】
図9に戻って、システムブレイクが開始された後に、ユーザがシステムウインドウ50のステージアイコン54をクリックした場合、図23に示すステージウインドウが画面上に表示される。「画面エディタ」が、図15に示すように、ステージウインドウの画面アイコン152上をクリックすることによってアクセスされる。所望するならば、画面エディタを用いて、背景要素を図15の底部から背景画面部分にドラッグし、実際の表示背景を修正することができる。画面エディタは、ユーザが、システムブレイクの際にゲームに関連する多くの異なる背景層のいずれか1つを検討し、修正することができるようにする。画面エディタは、背景を水平および垂直にスクロールするための制御を含み、ユーザが、例えば第1、第2または第3の背景画面の選択が可能な、ユーザがアクセスできる「一覧」モードを介して全背景を見ることができるようにする。それぞれの異なる背景層は、スクリーンエディタを介してアクセス可能であり、スクロールは、各背景層の全体を見ることができるように、また各層を修正することができるように制御することができる。
【0062】
画面エディタは、関連の「マップエディタ」を有し、マップエディタは、図16に示すように開くことが可能である。マップエディタは、マップエディタにおいて減少された形で示される利用可能な背景画面を再配置させるために用いられる。マップエディタの「貼り付け」機能を用いて、ゲームの背景表示画面は、例えば図17の120に示されるようなキャラクタが描かれた背景画面をドラッグして、アクティブな背景上にそれを貼り付けることによって修正することができる。
【0063】
ビデオゲーム背景に関連する音楽は、「ステージ」ウインドウに関連する音楽記号アイコンをクリックすることにより、音楽エディタにアクセスして修正することができる。「ステージ」ウインドウは、後でさらに説明するが、図18に示すような画面表示になる。図18に示すように、音楽エディタはゲーム楽譜を表示する。(音楽編集中にはカラーで表示される)「スイッチ」は、ゲーム楽譜表示上の同じ様に色付けられた数字に対応する。図18に示す表示されたスイッチの内の1つをマウスで選択することによって、音楽の低音部分、音楽のピアノ部分、または選択される他の楽器の部分のみを録音再生することが可能である。低音、ピアノおよび他の音楽音を選択的に重ねることによって、背景音楽が作られる。
【0064】
図18において、カラー記号がクリックされて、選択された音楽セグメントが識別されると、図19に示すウインドウが生成されて、図18の音楽エディタ画面に重ね書きされて、それによって、選択された数の各部分に対して、音楽トーン、音量等の個別制御が可能となる。例えば、図19に示す「キー」制御が操作されると、背景音楽キーは、マウスが移動してキー制御を別のセッティングにドラッグするにつれて、変更される。同様の制御が、「エコー」「テンポ」「パン」および他の所望する背景音楽の局面に対して実行される。「パン」制御は、左/右ステレオのバランスを操作することができる。
【0065】
さらに、本発明の音楽エディタは、音楽の再生中にリアルタイムでその音楽を変更することを可能にする。プレイ記号がクリックされると、背景音楽が鳴って、図20に示すウインドウが生成される。ウインドウは、「音量」「テンポ」「エコー」「キー」を、音楽の演奏と同時に変更するために用いられる。例えば、「キー」アイコンをクリックすると、図19のキーバーのような制御バーが生成されて、リアルタイム制御が実行される。
【0066】
元のモデルソフトウェアは、ゲームに関連する元の音波形を所定の数、例えば32個含んでいる。ユーザは、元の音波形を8つの音コースに割り当てることができ、音楽エディタを用いて音コースのどのような面でも選択的に修正することができる。楽譜上の各音コースを識別する数字は、元の音波形のそれぞれと関連する独自の印によって表示されてもよい。音楽エディタソフトウェアは、図20に示す各アイコンの状態を継続的に検査して、それに従って出力音楽を修正する。さらに、マイク10から記録されたサンプリング波形を元の音波形リストに追加することも可能である。
【0067】
ゲーム処理システムは、「オートプログラマ」機能をさらに含んでおり、それによってユーザは、オブジェクトの動作を修正することができる。オートプログラマの操作を説明する典型的な表示が図21に示されている。オートプログラマは、図10に示すオートプログラマアイコン76をクリックするか、または図12の「全ステータス」エディタに関連するオートプログラマアイコンによってアクセスすることができる。初めに、図21に示すキャラクタのようなユニットが、左マウスボタンを押圧することによって選択される。マウスを用いて、点で示される最大64個までの動作を含むパスを記憶することができる。マウスがまだパスに沿って移動している間に左マウスボタンを押すと、全パスが記憶される。点同士が近づくように点を配置すると、動作は遅くなる。点同士が離れると、動作が速くなる。しかしながら、動作の速度は、図21に示すテンポ制御を用いることによって調整することができる。図21は、関連プレイまたは停止制御を有しており、その中でパスを再生したり、またはユーザが所望する場合は、パスを停止したりすることができ、その後パスが変更される。図21に示す「効果音」ボタン130およびステップ制御バーを用いて、オブジェクトの動作に音声を関連させることができる。例えば「バン」という音声を、パスの頂点に達したオブジェクトに関連させることが可能である。ステップボタンを保持することによって、オブジェクトを音声が付け加えられるべきポイントまで移動することができる。「効果音」ボタンをクリックすることによって、選択した音声をオブジェクトが停止するまでのパス内のポイントに関連させる。
【0068】
ゲームプロセッサシステムは、また、「ステータス」エディタを含む。ゲーム中、例えばキャラクタのマリオがジャンプしている時にシステムブレイクが開始された場合、図10に示すマリオウインドウがアクセスされる。「ステータスエディタ」アイコン66がこの点でこの時に選択された場合、図22に示すような表示画面が現れる。図22において、「ジャンプ」というステータスを有するキャラクタのマリオに対して、第1のコラム140および第2のコラム142を有するステータス画面が示される。コラム140は、条件のシーケンスを定義する列を含む。条件は、例えばマリオがジャンプした時に特定の高さに達するかどうかを規定する。コラム142は、各条件に対して、その条件が検出された場合起きる結果関連処理を識別する。例えばマリオがジャンプした時に一定の高さに達する場合、マリオは、例えば消える。ステータスエディタは、ユーザが、条件および/または結果を変更することができるようにする。例えば、ユーザは、マリオがジャンプして一定の高さに達する結果を、「マリオが消える」から、例えば「何も起こらない」に変更することができる。その後ゲームが再開されると、修正された処理は、条件が検出された時に遂行される。図22に示すステータスエディタは、また、図1に示すキーボード18を介して、ビデオゲームプログラミング言語命令に通じた人が、新規の処理を作成することを可能にする。コラム142の処理をクリックすると、処理リストが画面上に生成される。リストにある処理をどれでも選択して、変更することができる。処理リストの処理をクリックすると、処理の処理プログラムが、ビデオゲームプログラム言語を用いて修正される。ビデオゲームプログラム言語命令が自動的にコンパイルされて、処理リストの新規の処理として格納される。
【0069】
ゲームプログラム言語命令を直接入力することは、BASIC命令に似通っており、上級のゲーム設計者によって用いられるようになっている。そのようなゲームプログラミング言語命令は、周知のゲームジャンルに基づいてモデルソフトウェアからゲーム設計を始めることを選択しない上級のゲーム設計者が、代替的に用いることができる。すなわち、そのような上級のユーザは、キーボードを使用して、自分の独自のモデルソフトウェアを作成し、本件に記載する機能を使用して、自分の作成した独自のゲームを修正する。
【0070】
図9に戻って、上述したように、システムウインドウ50は、ステージアイコン54を含む。ステージアイコンは、図23に示すステージウインドウを開く。ステージウインドウ表示150は、現在のステージ番号、および例えば「ゲーム中」などのステータス名を表示する。アイコン152は、画面ボタンであり、先に説明したように、現在の背景の編集を行う。上述したように、マップアイコン154は、現在の背景マップの変更を行う。「BGM」と表示されたアイコン156を選択すると、現在の背景音楽を編集できる。ステータスアイコン158は、現在のステージの上述のようなプログラミングを変更するために、ステータスエディタにアクセスする。アイコン160は、図9に示すシステムウインドウに戻る。アイコン162は、ゲームプレイを再開し、アイコン164は、現在のステージ番号および現在のステータス名を表示する。
【0071】
図24から図26までは、「マリオファクトリー」画面から始まって、図8から図23に関連して上述したゲーム修正/編集表示画面にアクセスする方法を要約している。図24は、図8に示すマリオファクトリータイトル画面を機能的に表示したものである。図24に示すファイルのアイコンは、ファイルの選択を示す。ユーザが「ツールボックス」アイコンをクリックすると、図25に機能的に示すツールボックス選択画面および編集機能がアクセスされる。「ゲーム」アイコンをクリックすることによって、図26に示すモデルソフトウェア関連編集機能がアクセスされる。「構成」アイコンをクリックすると、ユーザは、マウスまたはキーボードの構成のいずれかを変更することができる。ネットワークアイコンをクリックすると、(ゲームの修正可能部分を表示する)モデルソフトウェアおよび/またはユーザファイルが、モデム22を介して他のユーザへ送信されるか、または他のユーザから受信される。
【0072】
図25は、「ツールボックス」選択画面を介してアクセス可能な、編集関連ツールを示す。ツールボックス画面をアクセスすることによって、ゲームプレイをゲームコンテキスト外で変更することができる。このように、ユーザは、特定のキャラクタまたは所望されるゲームの他の面を変更するために、全ゲームをプレイする必要はない。代わりに、ユーザは、データに直接進んでそれを変更することができる。ツールボックスアイコンをクリックすることによって、図8のマリオファクトリータイトル画面からアクセスされるツールボックスを使用することにより、上級のユーザが、ゲーム自体のコンテキストから変更を行わうことなく、ゲームに多くの詳細な変更を加えることができる。「作者から」ブロックは、作者が、ネットワークを介して、例えば送信されたゲームプログラムの詳細を記述しているメッセージを送信することができることを示す。「マップコレクション」ブロックは、様々な背景マップを収集して、画面エディタ、ユニット画面エディタおよびマップエディタを用いてこれらのマップを編集することが可能であることを示す。ユニット画面エディタは、アクセスされて、ユニットをマップ上の指定の位置に配置する。通常、ユニット画面エディタは、図26に示すマップエディタ上の「ユニット」アイコンをクリックすることによってアクセスされる。ツールボックス選択画面では、ユニット画面エディタは、マップコレクションメニューから直接アクセスされる。
【0073】
「ツールボックス」選択画面を介して、「プログラム収集」機能をアクセスして、アセンブラリスト、基本リストおよびオートプログラマリストを受信するようにしてもよい。基本リストおよびオートプログラマリストは、それぞれ、プログラムエディタおよびオートプログラマによって編集される。
【0074】
「ユニットコレクション」機能は、ゲーム中に存在する様々なユニットを識別するユニットリストにアクセスするために用いられることができる。ユニットリストは、全てのステータスエディタによって編集することができる。リストは、ゲームプログラム内に登録されている全てのユニットをコンパイルする。さらに、ツールボックス画面は、音楽エディタによって編集可能な背景音楽リストへのアクセスと、特殊効果エディタによって編集可能な特殊効果(SE)リストへのアクセスとを提供する音声コレクション機能のアクセスを行うことができる。
【0075】
ツールボックス選択画面は、また、「ゲーム構造」コレクション機能へのアクセスを行う。これらの機能は、一般的に全ゲームへ適用され、個々のユニット適応性を問わない。例えば、「ゲーム構造」機能は、特定のキャラクタがゲームが終わる前に何回死ぬかを識別することができる。この特徴は、ゲーム構造編集中に設定される。「ゲーム情報」機能に関しては、このカテゴリーのゲーム構造は、緑亀がゲームに何回現れるか、または最初の画面レベルが何かを識別することができる。そのような情報は、データエディタを介して編集することができる。ステージリストゲーム構造情報は、利用可能な様々なゲームシーケンスに関連する。ステージリスト情報は、ステータスエディタ、プログラムエディタまたはデータエディタを介して修正することができる。
【0076】
図26は、ゲームプレイ中に行うことのできる編集/ゲーム作成変更を示す。システムブレイクが開始された後、詳細に上述したように、ユーザは、編集のために移動オブジェクトユニットを選択することによって、または背景を変更するためのステージアイコンを選択することによって、エディタをアクセスすることができる。示される様々なエディタは、様々な画面表示に関連するアイコンに対応している。例えば、動画エディタ、ドットエディタ、オートプログラマ、特殊効果エディタ、全ステータスエディタ、キーエディタ、ステータスエディタ、プログラムエディタおよびデータエディタは、例えば図10に示すアイコンを用いてアクセスすることが可能である。同様に、例えば音楽エディタ、ステータスエディタ、画面エディタ、ユニット画面エディタ、マップエディタおよびデータエディタなどのステージまたは背景関連エディタは、図23に示すステージウインドウ関連アイコンと関連している。典型的な実施例として図26に示すように、ユニット画面エディタは、画面エディタまたはマップエディタのいずれかを最初にアクセスすることによって、到達可能である。他のエディタを介してアクセス可能なエディタは、通常、あまり頻繁には利用しないエディタであり、より上級のゲーム開発者が、例えばゲームプログラム言語命令を実際に変更するためにプログラムエディタを使用するようなエディタである。
【0077】
図25および図26に示すエディタは、図8から図23に関連して説明した方法で動作する。例えば、図25および図26に示すオートプログラマエディタによって、図21に示す表示画面上に示されるようにオブジェクト移動を編集することができる。図25および図26に示すステータスエディタは、図22の画面表示に関連して説明した方法で動作する。図25および図26に示す動画エディタは、図14に関連して説明したように動作する。図26に示す全ステータスエディタは、図12の表示画面に関連して先に説明したように動作する。
【0078】
本発明の実施例に関連するハードウェアに戻って、図27は、図3に示すゲートアレイ226のより詳細なブロック図を示す。ゲートアレイ226は、CPU228およびゲームCPU200からのビデオ信号出力を重ね合わせる機能を含む様々な機能、ゲーム処理デバッキング関連機能(ハードウェアおよびソフトウェア中断、アドレス、データトラップなど)、および様々なインタフェイス機能(例えばゲームCPU200/メインCPU228インタフェイス制御、ゲーム手動操作器インタフェイスおよびマウス、キーボードおよび識別カードインタフェイス)を制御する役割を果たす。ゲートアレイ226は、また、CPU228バスアクセス制御、割り込み制御、CPU228実行可能制御、DRAM制御に関連しており、DRAM制御には、制御バス制御と、アドレス多重化と、リフレッシュ制御と、ROM234、フラッシュメモリ236、フロッピーディスク操作器240等の制御を含む周辺装置LSIアクセス制御とが含まれる。
【0079】
図27に示すように、ゲートアレイは、CPU228,CPU200,PPU212などを含む、図3および図4に示す様々な構成要素と相互動作する。アドレスデコーダ260は、CPU228のアドレスバスに結合され、CPU228に関連する他の装置へのチップ選択信号を生成する。図27においてわかるように、アドレスデコーダ260は、様々なクロック(CLK)、制御信号(R/W)、タイミング信号(BCYST)を受信し、他のゲートアレイ構成要素と同様に、アナログデジタル変換器238、フラッシュメモリ236、およびメインCPU228上の他の構成要素を選択するためのチップ選択信号を生成する。
【0080】
ゲートアレイ226は、メモリ操作器262をさらに含み、メモリ操作器262は、アドレスと、DRAM230を制御するための他の制御信号とを生成するため、およびCPU228に関連する様々な読み取り/書き込み信号を生成するために、CPU228アドレスバスに結合される。メモリ操作器262は、MA01からMA10のDRAMアドレス、DRAM230に対する行および列アドレス信号、DRAM230に対する書込み信号、ならびに入出力読み取りおよび入出力書き込み制御信号を生成するために、CPU228からのクロック信号、タイミング信号および制御信号に応答する。
【0081】
ゲートアレイ226は、CPU228の非常に高速のアクセス速度を補償するために、遅延を生成する待機操作器254をさらに含む。待機操作器254は、(バスサイクル開始信号(BCYST)などの)タイミング信号、CPU228からのクロック信号およびアドレス信号に応答し、適切な遅延期間の後に、実行可能な制御信号をCPU228に入力する。
【0082】
ゲートアレイ226は、識別カードインタフェイス264と、プリンタインタフェイス266と、キーボード、パッド、およびマウスインタフェイス268とをさらに含む。識別カードは、データが読み込まれるEPROMを含む。識別カードインタフェイス264は、CPU228、および識別カード6間の通信をインタフェイスする。プリンタインタフェイス266は、プリンタとインタフェイスするために供給されるインタフェイスであり、入出力レジスタおよび他の従来のプリンタインタフェイス回路を含む。好ましい実施例においては、プリンタインタフェイス266は、セントロニクスプリンタとインタフェイスする。キーボード、パッドおよびマウスインタフェイス268は、キーボード18、操作器12、14、マウス16およびCPU228間のデータおよび制御信号の交換を制御する。ダイアラ269は、CPU228のデータバスに結合され、ダイアルパルスを図4に示すモデムボード22に直接送信する。ダイアラ269は、所望する目的地の電話番号を示すデジタル信号を受信し、モデム22を制御するために、デジタル信号をパルス形式に変換する。
【0083】
ゲートアレイ226は、RGBインタフェイス270をさらに含み、RGBインタフェイスは、本出願の実施例では、重ね合わせ操作器216の重ね合わせ制御回路の一部を含み、重ね合わせ操作器は、図4に示され、図28で詳述されている。メインCPU228およびPPU224がアクセスする信号のRGBアナログ出力は、ゲームCPU200およびPPU212が処理する信号のアナログ出力上に重ね合わされる。RGB270は、ゲームプレイ関連画面上に重ね合わされたゲームプレイの修正を制御するための編集関連画像セル表示を生成する回路を含む。回路は、CPU228およびCPU200からの重ね合わせ関連制御信号(TOUMEI)を受信する。これらの制御信号は、関連するRGB信号が全てゼロ、すなわち透明である時に、それぞれCPU228および200を介して出力される。
【0084】
重ね合わせ操作器216は、図28においてさらに詳細に示される。本出願の実施例では、RGB270は、図28に示すように、レジスタGSEL300と、4−1多重装置302と、インバータ301とを含む。インバータ303と、アナログスイッチ304および306とは、本出願の一実施例においてはゲートアレイ226の一部ではなく、図4に示す重ね合わせ操作器216内に配置される。図28に示すように、GSELレジスタ300は、CPU228によるプログラム制御下において設定可能である。GSELレジスタ300ビットのM0,M1は、制御入力として多重装置302に結合され、4個の入力信号のうちのどれが多重装置302から出力するかを選択する。先に言及したTOUMEI信号は、空白がある場合、またはCPU200およびCPU228のプログラム実行と関連する空の間隔がある場合は何時でも、CPU200およびCPU228によって多重装置302へ入力される。CPU228からのTOUMEI信号は、反転増幅器301を介して多重装置302に入力される。
【0085】
多重装置302は、また、「0」および「1」入力信号を受信する。例えば、「0」入力が出力すべき信号としてGSEL300によって選択された場合、インバータ303により、アナログスイッチ304がつけられ(制御入力において「1」であるため)、アナログスイッチ306が消される(制御入力において「0」であるため)。このように、これらの条件下においては、CPU228からのRGB信号は、ゲームCPU200からのRGB出力に対抗するRGB出力として入力される。「1」が選択された多重装置302の出力である場合、反対の状況が起こる。そのような操作による視覚効果としては、CPU200によって生成されたゲーム画面とCPU228によって生成されたシステム画面とが、交互に切り替わる。
【0086】
CPU228およびCPU200がTOUMEI信号を選択すると、例えばCPU228によって生成されたシステム画面がCPU220によって生成されたゲーム画面上に配置された場合、透過の優先順位を制御する。ゲームCPU200に対するTOUMEI信号が出力された場合、それは、ゲームCPU信号が透明であり、メインCPU228画面がそれに重ね合わさることを示す。このように、システム画面がゲーム画面に重ね合わさる場合、またはその逆の場合、図28に示す入力D2またはD3のいずれかが選択される。0または1入力は、ゲーム画面またはシステム画面のどちらが示されているのかを決定する。例えば、CPU228に対するTOUMEI信号が「0」であって、それが選択された時、インバータ301によって多重網302の出力は「1」になり、ゲームCPU200を選択することになる。そのような信号が出力された場合、ゲームキャラクタが、メインCPU228実行に関連するアイコンのクリアドットを透かして見える。CPU228によるGSELレジスタ300の設定に従って、画面表示と、ゲーム画面表示およびゲーム編集表示の関連する重ね合わせとが制御される。
【0087】
図27に戻って、ゲートアレイ226は、また、ゲームCPUインタフェイス272を含む。ゲームCPUインタフェイス272は、アドレスとCPU228による監視用のデータバスとを介して、CPU200からの幅広いゲーム関連情報を受信するための先に識別したレジスタ複写RAMを含む。さらに、ゲームCPUインタフェイス272は、ゲームデバッギング操作におけるCPU228構内通信を支援するための様々なバッファを含む。ゲームCPUインタフェイス272は、また、CPU228がゲームCPU200操作をデバッグすることを可能にする従来のゲームデバッギング操作を遂行するためのアドレスおよびデータトラップ関連回路を含む。ゲームCPUインタフェイス272によって、CPU228は、システムブレイク操作を開始するのに適切な時期を認識するようになる。
【0088】
ゲートアレイ226は、また、水平/垂直(H/V)タイマとダウンカウンタ252を含み、ダウンカウンタには、CPU228によって割り込み制御信号を生成して操作器250に割り込むための所定の計数を格納しうる。H/Vタイマ252は、計数用のタイミングベースとしてPPU212が生成する水平ブランキング(HBLANK)タイミング信号および垂直ブランキング(VBLANK)タイミング信号を使用する。タイミングおよび計数回路252を使用することにより、例えば色彩変更のような一定の操作を開始するための特定の水平および垂直表示位置に基づいて、割り込みをすることができる。タイミング回路252の出力は、割り込み要求操作器(IRQC)250に結合され、割り込み要求操作器250は、次に、図27に示すようにCPU228上の所定のピンに入力される割り込み要求の生成を制御する。
【0089】
図27に示すように、ゲートアレイ226は、また、通信インタフェイスRAM256を含む。RAM256は、通信RAMハンドシェイクポートと、メインCPU228から情報を受信し、ゲームCPU200へそのような情報を入力して、RAMカートリッジに格納するための上述のバッファレジスタろを含む。RAM256は、CPU228およびCPU200アドレスおよびデータバスに結合される。アドレスデコーダ258は、CPU200によるRAM256へのアクセスを制御するためのCPU200からのCPU読み取り信号、書き込み信号およびアドレス信号を受信する。
【0090】
図29は、本発明の典型的な実施例で用いられるRAMカートリッジ4の簡略図であり、電源投入中にゲーム処理システムコンソール2からカートリッジを抜いたり、挿入したりすることによって生じる希な状況下で起こりうる潜在的な問題を説明する。図30で示すように、電源投入中にカートリッジを挿入したり、抜いたりすることによってカートリッジ構成要素が損傷されるという万が一の可能性を防止するために、カートリッジエッジコネクタ内のピンは、修正され、カートリッジRAMメモリを使用可能にするピンは、電力ピンと比較して短くされる。
【0091】
図30は、カートリッジ4用のアースコネクタ、アドレスコネクタ、データコネクタ、リセットコネクタおよび電力コネクタを示す。ゲームカートリッジからのリセットピンは、電力回線ピンよりも短いため、信号回線が切断される前にカートリッジが引き抜かれた時に、「リセット」許可信号は、電力が切断されるのに先だってカートリッジRAMに書き込みがなされないようにする。カートリッジが挿入された時、電力回線とデータ回線とは、リセット信号がハイ状態に置かれるより前に接続され、それにより最後の操作としてRAM336への書込みを可能にする。このようにして、カートリッジ作業用RAM336に記憶された情報は保護される。カートリッジがコネクタに挿入された場合、カートリッジメモリ回路を使用可能にする前に電力が供給される。カートリッジが抜かれると、短くされた使用可能の信号受信ピンのために、電力が切断される前にカートリッジ回路は使用不可能になる。
【0092】
図29に戻って、電源をつけた状態でカートリッジが完全に挿入されると、リセット信号(RES)がハイレベルになる。リセット信号は、ゲート回路331を介してデコーダ330の可能入力へ入力される。デコーダ330は、(図29に図表で示す)ゲームカートリッジ静的RAMメモリ336のチップ選択ピンへ入力される1つの出力を含む。さらなるデコーダ330出力は、4ビットバイナリカウンタ332のチップ選択ピンに結合される。バイナリカウンタは、最初0に設定される。デコーダ330は、ゲームカートリッジアドレスバスに結合されており、カウンタ332への書込み要求を検出し、カウンタ332に対して計数を開始させる。書き込みパルスが15回与えられると、カウンタ332の状態は1111となり、カウンタ332は、ゲート回路334に入力される出力信号を生成する。カウンタ332の出力がハイレベルにある時にSRAM336への書き込みが試みられた場合、書き込み信号は、RAM336(を構成する各RAMモジュール)へ入力され、それによりカートリッジRAMにデータを書き込むことができるようになる。このように、カートリッジは、電源がついた状態でカートリッジを挿入したり抜いたりする際に構成要素が損傷されたり、データが失われたりする可能性を防止するために、RAMへのデータの書き込みを行う前に所定のアドレス領域に対して15回書き込むことを要求する書き込み保護回路を含む。所定のアドレスへ15回書き込みが試みられると、カートリッジメモリシステムはそのロックが実質上解かれる。実施例のゲーム処理システムにおいて、RAMカートリッジへの書き込みに費やされる時間は大変少ない。
【0093】
図29は、また、カートリッジエッジコネクタ329を示す。カートリッジ4に入力される信号には、データバスおよびアドレスバスを通じて搬送されるデータ信号およびアドレス信号がある。さらに、CPU読み出し/書き込み制御信号および他の制御信号が受信されるのと同様に、リセット信号が受信される。図29に示すRAMカートリッジは、機密保護チップ333をさらに含み、機密保護チップ333は、本件で援用している米国特許番号第4799635号(対応;特開昭61−296433号公報)に記載の方法で、機密保護チップ227と共に動作する。RAMカートリッジ4がSNESゲームシステムで使用できるように全てプログラムされた後、機密保護チップ333は、カートリッジが、対応する機密保護チップ333を含むSNESゲームコンソールに関連する真正のゲームカートリッジであるかどうかを決定するための機密保護システムの一部として用いることができる。さらに、CPU228は、機密保護チップ227からの出力を受信し、米国特許番号第4799635号(対応;特開昭61−296433号公報)の特許の教示に従って真実性が決定されない限り、ゲームプログラム実行およびCPU200による編集を中止する。この点において、機密保護チップ333およびメインCPU228は、米国特許番号第4799635号(対応;特開昭61−296433号公報)に一般的に開示されている処理操作を実行する。そのような処理の結果を示すデータは、安全な方法で交換される。メインCPU228が、ゲートアレイ226を介して受信したデータに基づいて、RAMカセットが本物ではないと決定した場合、ゲームCPU200はリセット状態を保持する。
【0094】
図31は、図29に対応するカートリッジ回路の他の実施例である。図29の同様の回路に対応する図31の回路は、同様に符号が付けられており、ここでは詳述しない。CLK21Mの入力に信号がない場合には、マルチバイブレータは、格納信号をカウンタ332に対して生成する。カウンタ332は、格納信号によって0にセットされて、SRAMへの書き込みは禁止状態となる。通常の操作では、CLK21M信号が連続的にコンソールから提供されて、格納信号が常に禁止状態となり、SRAMのアクセスが、図31の回路と同様に達成される。
【0095】
図32は、図31と共に用いられるカートリッジコネクタの実施例を示す。カートリッジが抜き取られると、CLK21M信号とリセット信号とが遮断された後に、他の指示信号が遮断される。CLK21M入力に信号がない場合には、格納パルスが使用可能となる。その後、カウンタ332が0データを格納して、SRAMへの書き込みは禁止状態となる。図32では、アドレスバスコネクタおよびデータバスコネクタは、アースコネクタおよび電源コネクタよりも短い。従って、電源が入っている時にカートリッジが押し込まれる際の「ラッチアップ」が防止される。
【0096】
図33は、本発明の典型的な実施例に従ったリセット関連回路のブロック図である。システムは、リセットボタン1(347)およびリセットボタン2(348)、すなわちメインシステムCPU228に関連するリセットボタンおよびゲームCPU200に関連するボタンを含む。さらに、図33は、メインCPU228がソフトウェア制御およびリセット論理2(342)を介してゲームCPU200をリセットすることができるようにするリセットレジスタ344を含む。図33に示すように、電源340が投入されると、リセット論理1が動作してメインCPU228をリセットし、リセットレジスタ344をクリアする。メインCPU228は、リセットボタン1(347)が押されるのに応答してリセットされてもよい。同様に、ゲームCPU200は、リセットボタン2(348)が押されることによってリセットされてもよい。代わりに、メインCPU228が、メモリブロック346からの命令をアクセスすることにより、リセットレジスタ344をセットして、ゲームCPU200のリセットを開始する、すなわちメモリ345に記憶されたゲームプログラムの初期のような所定の周知の初期状態にゲームCPU200を保持するようにしてもよい。図33は、また、CPU228およびCPU200間の通信が行われるインタフェイスブロック349を概略的に示す。他の実施例では、リセットボタン348からの信号は、CPU228の入力ポートに与えられてもよい。リセットボタンが押されると、CPU228は、リセットレジスタ344を介してSCPU200に対してリセット信号を入力する。
【0097】
図34は、ユーザがモデルソフトウェアの前景または背景を修正することができるようにするためのシステムブレイクの開始に関連する論理回路のブロック図である。システムブレイクが生成されることになると、メインCPU228は、ラッチを介してフラグフリップフロップ350に記憶されるシステムブレイクフラグ信号を生成する。バス状態論理360は、従来の比較器回路およびバス状態を識別するための状態表示レジスタを含んでおり、CPU200がプログラムコマンドを読み出すことができることを確認するためにゲームCPU200バス状態を検査する。バス状態論理360が、CPU200が読み取り/書き込み周期にあると決定すると、バス状態論理360は、出力361に信号を生成する。CPU200が命令読み取り周期にあるときは、バス状態論理360は、コマンドを受信する用意ができていることを示すために、出力363上に信号を生成する。
【0098】
図34に示すように、アドレスデコーダ362は、ゲームCPU200システムバスに結合される。アドレスデコーダ362は、ゲームCPU200が、RAMカセットデータの特定部分(例えば、NMIルーチンの最終部)を識別する所定のプログラムアドレス領域にアクセスする時間を検出する。その時に、アドレスデコーダ362は、ANDゲート366に入力される出力365に信号を生成する。ANDゲート366は、さらに、バス状態論理出力361から入力信号を受信する。ANDゲート366の両方の入力がハイレベルにある時は、システムブレイクフラグ信号が、フラグフリップフロップ350にセットされる。出力361は、ゲームCPU200がRAMカセット4からの命令を読み取っている時はハイレベルではなく、むしろデータが読み取られているか、またはRAMカセット4に書き込まれている時にアクティブである。
【0099】
システムブレイクフラグフリップフロップ350が設定され、バス状態論理出力363がハイレベルにある時は、CPU状態は「命令読み取り周期」と示され、許可信号がシステムブレイク論理354に入力される。それにより、システムブレイクは、ゲームCPU200が命令を読み取ろうとした時点で開始される。この時点において、CPU200は、ゲート回路358を介して出力許可信号を生成することによって、プログラムメモリ356を可能にしようと試みている。システムブレイク論理354は、出力許可信号のプログラムメモリ356への結合を不可能にして、命令読み取り周期を中断するのと、プログラムメモリ出力がCPUバスに結合されるのとを防ぐ。
【0100】
システムブレイク論理は、また、「COP」命令として言及される命令コードを出力する。その後、COPコマンドが、CPU200によってプログラムメモリ356から読み出されるべき命令と置き換える。システムブレイク論理354からの信号に応答するCOPコマンドの後に、モニタROM複写保護論理368は、許可信号をゲート358に対して出力する。このようにして、COPコマンドが実行された後に、プログラムメモリ356内のモニタROMプログラムは、CPU200によってアクセス可能となる。COPコマンドがCPU200によって受信されると、CPUは、モニタROM204からプログラム命令を実行する。このように、CPU200は、ゲームプログラムの実行を停止し、COPコマンドに応答してモニタROM204からの命令の実行を開始し、それによってゲーム編集および作成機能の遂行のために制御のメインCPU228への切り替えが開始する。
【0101】
さらに、モニタROM複写保護論理368は、ゲームプログラムが実行中に、プログラムメモリ356に格納されているモニタROMプログラムからの不所望な読み取りを防止する。従って、モニタROMプログラムを複写するためにユーザのプログラムから故意にアクセスすることが不可能となる。モニタROM複写保護論理を用いた図34に示す回路は、モニタROMプログラム複写保護機構として有益である。
【0102】
システムソフトウェアの詳細な説明
次にシステムソフトウェアのより詳細な説明へ移って、そのようなソフトウェアは、図解実施例中で「マリオファクトリー」と呼ばれるゲームプログラム編集ツールを含む。マリオファクトリーは、不慣れなユーザがモデルソフトウェアを用いてビデオゲームを容易に作成するのを支援するために、主に設計されている。
【0103】
図35は、本発明の実施例に関連して、電源投入から「マリオファクトリー」ユーティリティタイトル画面が出現するまでの処理のシーケンスを示すフローチャートである。電源を入れると(385)、最初の接続画面が表示される(386)。その後、著作権情報画面が生成される(387)。その後、実施例に関連するゲーム編集ツールが、図4に示すフラッシュメモリ236内に既に記憶されているかどうかを決定するためのチェックが行われる(391)。ブロック391でのチェックにより、ツールがフラッシュメモリ236内にあることが示されると、ツールはCPU228に関連するDRAM230に転送され、マリオファクトリーの実行が開始できるようになる。従って、編集ツールがフラッシュメモリ内に既にあれば、マリオファクトリーは自動的に格納される。ブロック391でのチェックにより、編集ツールがフラッシュメモリ236内にないことが示されると、388において、ツールディスケットがフロッピーディスクドライブ内にあるかどうかを決定するためのチェックが行われる。フロッピーディスクディスケットがフロッピーディスクドライブ199内にない場合には、「ツールディスクを挿入して下さい」というメッセージがユーザに対して表示される(389)。ツールディスクが挿入されていることが検出されると、ツール導入画面が生成され(390)、マリオファクトリーの格納が完了する。
【0104】
本発明の一実施例に従って、モデルソフトウェアは、2つの異なるファイルが記憶されるように格納される。2つの異なるファイルとは、ゲームの修正不可能な面を含むベースファイルおよびユーザが修正しうるゲームの諸要素を含むユーザファイルである。代わりに、ベースファイルのみが最初に格納されて、ゲームプレイの基本的な面のみをユーザに提供して、新規のゲームをベースファイルに関連するゲームのジャンル内に構築および作成するようにしてもよい。
【0105】
ブロック392において、モデルソフトウェアがフロッピーディスクドライブにあるかどうかを決定するチェックが行われる。モデルソフトウェアがフロッピーディスクドライブ199内にない場合は、ユーザは、モデルソフトウェアディスクをインストールするように促され(394)、モデルソフトウェア格納画面が生成される(393)。その後、ユーザファイルがユーザによって選択されているかどうかのチェックが行われる(395)。ユーザファイルは、ベースファイルとは異なるディスクに格納されていてもよい(このため、ブロック395におけるユーザファイルの選択には、別のディスクの挿入を必要とする場合がある)。ユーザファイルは、モデルソフトウェアビデオゲームに対してこれまでなされた変更を含む。最初は、ユーザファイルは、モデルソフトウェアが初期ゲームプレイを定義しているデフォルトステージ内にある。ユーザがゲームを変更すると、デフォルト情報が変更されて、ユーザの編集上の修正が反映される。ゲームカートリッジおよびフロッピーディスクの両方は、ベースファイルとユーザファイルとを含むが、フロッピーディスクは、ゲームカセットが記憶しないようなゲームの元のデフォルトバージョンを記憶する。RAMカセットデータは、デフォルトデータがカセット4上に常駐しないようにリアルタイムで修正される。ユーザファイルが選択されると、ユーザファイル格納画面が表示される(398)。ユーザファイルが選択されていない場合には、ユーザは、ユーザディスクを挿入するように促され(396)、ユーザは、ユーザファイルを選択する新たな機会を持つようになる(397)。その後、ユーティリティタイトル画面が図8に示すように表示される(399)。
【0106】
ブロック392において、モデルソフトウェアは、別のディスクを挿入することによって、ユーザの所望通りに変更することができる。ユーティリティタイトル画面が表示されると、ユーザは、ユーザが他のユーザファイルを選択することができるブロック395に分岐して戻るような特定のファイルアイコンをクリックしてもよい。代わりに、ルーチンは分岐して、モデルソフトウェアを変更することによってすべてのジャンルのゲームを変更しうるブロック392に戻ってもよい。マリオファクトリープログラムは、多様な編集ツールを含み、例えば特定のキャラクタを描画するための「ドット」や、動画を制御するための「動画データ」等がある。
【0107】
ゲームプロセッサシステムは、本明細書で説明する実施例に従えば、CPU200の制御下のソフトウェアと、メインCPU228の制御下のソフトウェアとを含む。CPU200によって処理されるソフトウェアは、上述のモデルゲームソフトウェアと、ユーザが作成したゲームプログラムとを含む。メインCPU228は、種々のユーティリティプログラム、オペレーティングシステム、周辺ドライバプログラムならびにBIOSおよびIPLソフトウェアを実行する。メインCPU228によって処理されるユーティリティソフトウェアは、ゲーム編集ツール、ネットワークソフトウェア、文書処理ソフトウェア、ディスク管理ソフトウェア等を含む。オペレーティングシステムおよび周辺ドライバソフトウェアは、以下に述べるBIOSソフトウェアによっては充分に支援されていない周辺装置を支援するためのサブルーチンを含む。
【0108】
BIOSソフトウェアは、上述のシステムハードウェアと直接対話を行うための低レベルルーチンを含む。より特定的には、システムのメインCPU228部と、ゲームCPU200のサブシステムとの間の情報交換は、ソフトウェアから捉えると、BIOS ROM234内に常駐するルーチンと、モニタROM204内に常駐するルーチンという2つのBIOSオペレーティングシステムルーチンによって制御される。オペレーティングシステムルーチンからのそのような情報転送の間に遂行される処理を、以下に説明する。BIOSルーチンは、図3および図4に示すマウス16,キーボード18,操作器12および14,表示装置15およびモデム22のような種々の入出力装置を制御し、処理装置の構内通信、メモリ保守機能およびPPU制御機能を制御する。CPU200 BIOSソフトウェアによって制御されるPPU212の機能は、例えばPPUのカラー生成RAMが所定の所望するカラーマップを定義するようセットすること、ビデオRAM214に対してデータを転送すること、重ね合わせ優先順位をセットすること等を含む。制御される画面表示関連機能は、カーソル位置をセットすることを含む。制御されるキーボード機能は、キーボードの初期化、キーボードバッファデータの取得およびキーボードステータス情報の取得を含む。同様に、マウスに関しては、BIOSソフトウェアによって制御される種々の機能は、マウスの初期化や、マウスのカーソル位置の取得等を含む。ゲームCPU200の操作の制御に関連するBIOSソフトウェアは、ゲームCPUの初期化、音声処理装置208および作業用RAM210に対するデータの送信、ならびにメインCPU228とのデータの交換に関連する機能を含む。メインCPU228に関連するBIOSソフトウェアは、リアルタイムクロックのセット、ゲートアレイ226内のタイムアウトカウンタのチェックおよびMS DOSのような従来のオペレーティングシステムにおいて通常遂行されるようなオペレーティングシステムハウスキーピング機能の遂行のような制御機能を含む。オペレーティングシステムソフトウェアは、図4のSCSIボード24を介してIBM互換PCから受信されたゲームプログラムを実行および編集できるようにするために、他のコンピュータからいくつかのコマンドを受信することができる。
【0109】
IPLソフトウェアは、初期プログラム格納を行う役割を果たしており、システム立ち上げ時にゲームプロセッサシステムステータスをチェックして、オペレーティングシステムルーチン内のBIOSを立ち上げる。初期プログラム格納(IPL)ルーチンは、システムの開始時に実行され、まず開始メッセージが表示されることになる。開始メッセージは、図35に関連して上述したような著作権警告を含む。その後、IPLは、会員識別カード内の巡回冗長コード(CRC)をチェックする識別コードチェックを遂行する。識別カードが権限を有していると決定されれば、システムが立ち上がる。識別チェックによって、識別カードが権限を有していないことがわかると、権限を有しない旨を示す表示が生成される。識別コードチェックによってシステムが立ち上がることができるようになると、ハードウェアステータスチェックが行われる。ハードウェアステータスチェックは、現在のシステム構成のRAMのサイズを決定し、接続されたRAMが読み取りおよび書き込みが可能である旨を確認するチェックを行う。その後、フロッピーディスクドライバ、モデム、プリンタ、ハードディスクならびに制御ユニットおよび拡張ユニット内の他の装置が適切に接続されているかを確認するためのチェックが行われる。すべてのハードウェアステータスチェックによって適切な接続が確認もされない場合には、システム障害を示す適切な表示が生成される。
【0110】
すべてのハードウェアステータスチェックによって適切な接続が示されると、その後、オペレーティングシステム識別コードのチェックが行われる。このチェックでは、オペレーティングシステム内の識別コードがチェックされて、チェックが通れば立ち上がり処理が行われる。チェックに失敗すると、システム障害を示す表示が生成される。識別コードチェックによって適切な識別コードが確認されると、オペレーティングシステムが立ち上がる。
【0111】
機密保護チェックは、システム全体に渡る多重レベルにおいて機密保護システムが導入されるように設計される。上述したように、初期プログラム格納(IPL)において、権限のない識別カードを検出するための識別コードチェックが行われる。識別コードチェックは、権限のないOS/BIOSが使用されている旨を示すためにも行われる。さらに、上述したように、機密保護チップがRAMカセット4内で用いられて、システムが権限のないハードウェアと結合されているかどうかの決定を行う。さらに、BIOS/OSレベルにおいて、ベースファイルを不適切にアクセスしているかどうかを決定するための識別コードチェックが行われる。識別コードチェックは、権限のないネットワークアクセスおよび権限のないユーティリティの使用があるかどうかをも決定する。このような識別コードチェックに失敗すると、行おうとしたファイル操作は不可能となる。BIOS/OSは、上述した以外のマシンアーキテクチャによる読み出しを困難にするような関連する特有データフォーマッティングおよび/またはファイル圧縮方法をも用いる。
【0112】
オペレーティングシステムは、コマンドの解釈、メモリの管理、一時的なオペレーティングシステム部内の読み取りおよびコマンドルーチンの開始を行う中核部を含む。中核部は、識別カードからの「構成ファイル」と呼ばれるファイル内を読み取る。「構成ファイル」とは、周辺ドライバのセットアップのような事項を記録して、一時的なオペレーティングシステム、一時的なBIOS、周辺ドライバ等をメモリ上にアンパックして、それらを管理するファイルである。オペレーティングシステムのコマンドルーチン部は、中核部からの命令に基づいた実際の処理を遂行するサブルーチンを含み、オペレーティングシステムの周辺ドライバ部は、上述したような種々の周辺装置へのアクセスを取り扱うサブルーチンを含む。
【0113】
ファイルは、通常64バイトのヘッダファイルを含んで編成され、ヘッダファイルにはファイル名、日付、ファイルサイズ、ファイル属性、コード作成器、識別コード、暗証等のようなフィールドを含む。ファイル作成者については、ベースファイル内にのみ記録され、購入者の識別コードは、購入時に記録される。ファイル属性フィールドは、識別コードが作成者コードと一致する場合にのみファイルを可能にするか、または、代わりに、暗証が一致する場合にのみファイルを可能にするビットを含む。従って、ファイル属性フィールドまたは他のビットの状態によっては、ファイルを可能にする場合、不可能にする場合またはある機密保護チェックに通過するかどうかに基づいて可能にする場合があり得る。ファイル属性情報は、ベースファイルアクセスの種々の条件をセットでき、例えば、アクセスが購入者によってなされれば書き込みは禁止であるとか、アクセスが購入者によってなされなければ、読み出しおよび書き込みは禁止でかつファイル名は表示されないようにできる。オペレーティングシステムは、ベースファイルアクセスコマンド(例えば格納、記憶、認証、複写等)、ファイル管理コマンド、ネットワークコマンド、暗証コマンドおよびRAMカートリッジコマンドを含む。システムは、暗証を構成変数としてセットする暗証コマンドを用いる。構成変数は、ヘッダファイル内の暗証と比較される。構成変数がセットされていない場合は、暗証を有していないとみなされる。
【0114】
上述のように、モデルゲームソフトウェアは、ゲーム作成を支援し、ゲームCPU200によって実行されるソフトウェアである。このソフトウェアは、独自のゲームが簡単なゲーム作成ツール操作によって作成可能であるように設計されている。本発明の好ましい実施例では、モデルソフトウェアは、「射撃ゲーム」、ロールプレイゲーム等のような種々のゲームのジャンルに従って販売される。本明細書では、ビデオゲームプログラム設計および作成の手ほどきを受けていない者によるゲーム作成のために主に設計された「マリオファクトリー」というゲーム作成ツールの例の詳細を説明する。しかしながら、本発明は、中級および上級ユーザが本明細書で述べるよりもより複雑な制作さえも行うことができるようなゲーム作成ツールの使用も考慮している。しかしながら、現時点での好ましい実施例は、マリオファクトリーで説明される。モデルソフトウェアは、ベースファイルおよびユーザファイルを含む。ベースファイルは、ユーザが変更することのできないファイルであり、ユーザが変更不可能なモデルソフトウェアおよびそれに関連する独自のゲームの部分を含む。ユーザファイルは、ユーザが変更することのできるファイルである。ユーザファイルは、ユーザが修正してユーザ独自のプログラムおよびユーザ独自のデータを作成することができるデフォルトプログラムおよびデフォルトデータを含む。ベースファイルは、複写保護されており、ベースファイルの複写を取得するにはモデルソフトウェアを購入するしか方法がないようになっている。ユーザファイルは、複写保護はされておらず、例えばユーザファイルをネットワーク上にアップロードすることによって自由に取得することができる。ユーザの作成した独自のゲームは、他のユーザに対してユーザファイルを送信することによって送信されてもよい。
【0115】
マリオファクトリーでは、ゲームは、多くの構成「ユニット」を処理することによって処理される。例えば、図36では、スーパーマリオ画面は、プレイヤによって制御される(例えば、ゲーム操作器12および14によって制御される)ユニットであるマリオと識別されているユニット1と、「敵」ユニットと名付けられているユニット2と、音楽ユニットであるユニット3とともに示される。グラフィックデータやキーに対する適切な応答および効果音といったユニットに関連するすべてのデータおよびアルゴリズムは、以下で詳しく述べるように、ユニット用に記憶される。このシステムは、グラフィックデータに関連しない音楽ユニットに対する配慮もなされている。ゲームはツールアイコンを選択して変更を行うことによって編集される。例えば、図36で、ユニット1が選択されると、マリオグラフィック、音声または条件に対するプログラムされた応答についてツール選択が行われる。プログラマから見れば、ユニットは、ゲームプレイの特徴およびゲームCPU200側に割り当てられた幅広い範囲の他のデータを記憶するためのメモリスペースとみなされうる。
【0116】
前述したように、本発明の好ましい実施例は、ピクチャ、音声およびプログラムを変更するための幅広い種々の編集ツールを含む。特定のゲーム専用のエディタが、モデルソフトウェア内に拡張ソフトウェアとして含まれてもよい。例えば、射撃ゲーム専用の専門のマップエディタまたは敵パスエディタが用いられてもよい。同様に、ロールプレイゲーム専用のマップエディタ、対話エディタおよびイベントエディタが含まれてもよく、パズルゲーム内にルールエディタが拡張ソフトウェアとして含まれてもよい。
【0117】
このような種々の型の各ツールは、ユーザが選択できるように表示される。アイコンは、層状に編成され、特定のときに必要とされるアイコンのみが、ユーザに対して表示される。必要でないアイコンは表示されないが、より正確に言えば、必要でないアイコンは、モデルソフトウェア内に含まれているステータスファイル内に記録される。
【0118】
ゲーム編集は、編集ユニットおよび関連データ構造を循環する。本発明の実施例では、異なる編集機能が、システムブレイク時にアイコンをクリックするか、またはツールボックス画面からアイコンをクリックすることによって制御される。別の実施例においては、左マウスボタンまたは右マウスボタンのどちらが押圧されたかに基づいて異なる編集機能が制御される。ゲームプレイが開始された後、システムブレイクが開始し、マウスカーソルが画面上に現れる。画面上に表示された特定のユニットの編集を所望する場合には、例えば左マウスボタンが例えば図36に示すユニットのうちの1つに対してクリックされ、選択されたユニットを編集するための全ツールが表示される。全ツールには、グラフィック編集機能、プログラム編集機能および音声編集機能が含まれる。右マウスボタンがクリックされると、例えば「取り消し」「ゲーム」「ファイル」「ツールリスト」「ユニット」および「終了」のような種々のオプションが表示される。ツールリストオプションが選択されると、ツールは、例えばツリーチャートとして示され、選択されたツールで編集可能なユニットが制御されて点滅する。
【0119】
この操作中に、編集画面が、ゲーム画面上に重ね合わされる。所望する編集が行われた後、ゲームプレイが再開されてもよい。左マウスボタン編集操作では、ゲーム画面が表示されてシステムブレイクが開始した後に、マウスカーソルが画面上に現れ、ユーザは、編集しようとするキャラクタをクリックする。編集しようとするキャラクタは、識別されたユニットとともにボックス内に現れる。その後、ユニットの修正が、種々の編集ツールを介して生じる。編集後、ゲームプレイが再開されてもよい。
【0120】
右マウスボタン編集操作に関しては、結合された画面上においてツールリストが生成される。その後、ユーザはツールを選択し、編集可能な各ユニットがそのツール用に表示される。その後、マウスを介して、別のツールが選択されてもよく、異なる編集可能な「ユニット」が表示される。キャラクタがクリックされると、当該キャラクタがボックス内に現れ、メニューが現れて、左マウスボタン編集におけるのと同様の方法で編集が続く。右マウスボタン編集において、マリオファクトリー操作中に、ステータスファイルがチェックされて、ステータスが表示される。ユニットヘッダ(ユニットを編集できるツールのような情報を記憶するユニットの先頭に置かれるデータ領域)がチェックされて、編集可能なユニットが検索される。
【0121】
本システムにおいては、モデルソフトウェア選択画面があるので、たとえモデルゲームソフトウェア自体がなくても、マリオファクトリー作成ツールを開始することができ、基本ツールを用いることができる。マリオファクトリープログラムは、ステータスファイルを含み、ステータスファイルは、メモリ内に位置付けられるべきツールのラベル名を記録するテキストファイルである。ステータスファイルをアクセスすることによって、マリオファクトリープログラムは、どのツールがDRAM230に記憶される必要があるかを決定することができる。DRAM230内に記憶されるツールの中には、アイコンとして表示されるものもある。そのようなツールは、基本ツールと、メインCPU228コード内に書き込まれたオブジェクトファイルから選ばれた拡張ツールとを含んでもよい。
【0122】
図37は、プログラミングが「ユニット」を基本としてどのように構築されているかを示すブロック図である。ゲームCPU200のメモリアドレススペース401内には、編集されうる各ユニットを一意に識別するユニット関連データが記憶される。編集されうるユニットと、ゲームCPUメモリアドレススペース内に記憶されたユニット関連データ構造との間には、一対一対応がある。
【0123】
図37に示すように、ユーザが、表示画面15上に示されたユニット3を、例えばシステムブレイク処理中に選択すると、メモリスペース401の対応部は、ユニットヘッダと、データテーブルと、ユニット3関連プログラムとを記憶する(またはポイントする)ユニット3に関連するユニットデータ構造(またはポインタ)を含む。ユニットヘッダは、特定のユニットを編集するために用いることができるツール用のラベルと、編集されたデータ用の記憶アドレスとを含む。ユニットヘッダのグループも、メインCPU228アドレススペース内に記憶される。データテーブルは、以下に述べる幅広い範囲のゲームプレイ/オブジェクト特徴情報を含み、その情報には、グラフィックおよび音声だけではなく、各キャラクタのパス動作を示す情報も含まれる。本質的に、各ユニットに関連するグラフィック、音声およびプログラムは、各ユニットに保持されまたは貼り付けられているとみなされうる。
【0124】
メインゲーム処理ルーチンは、ユニット1からNをそれぞれ処理するための命令のシーケンスを含む。メインルーチン(405)は、各ユニットプログラムをアクセスするためのサブルーチンへジャンプ(JSR)のシーケンスを含む。各ユニットプログラムは、いかなるフレーム中においてもメインルーチンから呼び出されうるという仮定の下に設計された命令を含む。メインルーチン405は、メインCPU通信ルーチンへのジャンプをも含む。この通信ルーチンは、マウスクリックポイントのメインCPUに対する信号伝送、編集ツールに関連するデータ編集に関連する信号の受信およびメインCPUシステムブレイク信号のチェックといった処理を扱う。
【0125】
図38から図40は、ユニットデータの処理と、ピクチャ信号および音声信号のユーザの表示画面に対する出力とに含まれる処理のシーケンスを示すフローチャートである。図38に示すように、ユニット処理は、ユニット画面エディタによるユニットの処置を示すユニットマップ画面をシステムが参照して開始する。例えば、キー制御によって背景画面がスクロールされると、ユニット画面マップ上の新規の部分が参照されて、新規のユニットが現れるかどうかを判断する(405)。初期化処理を行って、ユニットマップ画面上に新規ユニットが見つかった後、エントリが稼働中ユニットリスト内に作成されて、ユニットアクセスカウンタが、ユニット0にセットされ(407)、ルーチンは、ユニット処理ループへ入って、ユニットオフセットアドレスが計算される(408)。ブロック409に示すように、ユニットに関連するユニットプログラムが実行され、該当する場合には、動画処理(410)および音声処理(411)が遂行される。その後、アクセスされたユニットを常に把握しているカウンタが増分され(412)、最終ユニット番号がアクセスされたかどうかを決定するためのチェックが行われる(413)。ブロック413のチェックによって最終ユニット番号がアクセスされていないことが示されると、ルーチンは分岐してブロック408に戻り、処理される次のユニット番号が、オフセットアドレス計算によってメモリ内に位置付けられる。
【0126】
図39および図40は、ブロック410の動画処理をさらに詳しく示す。図39に示すように、動画処理は、処理されているユニットのために表示されるポーズ番号を識別することによって開始する(414)。その後、キャラクタアドレスが計算され(424)、計算されたアドレスに記憶されたキャラクタデータは、処理のために、メモリバッファ領域に送信される(425)。その後、ブロック426において、ユーザデータ置換フラグがセットされているかどうかを決定するチェックが行われる。ユーザ置換がセットされていれば、ユーザ選択データが置換される(427)。ユーザ置換フラグがセットされていなければ、ブロック425で識別されたバッファ領域内に記憶されたキャラクタデータは、オブジェクト属性メモリ領域へ送信される(428)。
【0127】
図40は、図39のブロック414の処理のための表示ポーズ番号の決定に関連する処理ステップを示す。最初に、ブロック415において、表示アニメ番号と、図44に示すような「ユニット」とともに記憶された所定のバックアップデータとを比較するチェックが行われる。一致する場合には、ルーチンは分岐してブロック417へ進む。一致しない場合には、アニメデータは、図44で詳細に示すオブジェクトユニットRAMへ送信される。その後、「テンポ」データが、フレームカウンタの内容から除かれる(417)。フレームカウンタが0以下かどうかを決定するチェックが行われる(418)。フレームカウンタが0以下の場合は、ポーズ番号が増分される(419)。ポーズ番号がポーズ番号の許容上限を超えているかどうかを決定するチェックが行われる(420)。ポーズ番号が上限を超えている場合は、動画シーケンスにおいてユニットポーズを決定するポーズ番号は、例えば図14の動画ツールを用いて定義されるポーズ上限事後番号と同値にセットされる(421)。その後、ポーズデータは、図39のブロック425に関して識別されたバッファ領域に送信され、ポーズポイント位置データ(x,y)が、バッファに送信される(423)。フレームカウンタが0以下でない場合は、ルーチンは分岐して直接ブロック423へ進む。
【0128】
図41は、処理されるユニットに関連する音声処理のフローチャートである。最初に、ブロック429において、ステータスレジスタと、図44のオブジェクトユニットRAM内に記憶されたステータスレジスタバックアップとを比較するチェックが行われる。429でのチェックで、一致していないことが示されると、効果音データオフセットアドレス430を決定するための計算が行われる。効果音番号は、計算された効果音オフセットアドレスに追加されたユニットエントリアドレスに基づいて計算される(431)。効果音番号は、その後、音声処理装置208ポートへ送信される(432)。実効果音データは、すべての効果音番号とともに作業用RAM210に記憶される。音声処理装置は、効果音番号および実効果音データとともに音声を作成する。ブロック429でのチェックで、ステータスレジスタ内容がステータスレジスタバックアップ内容と一致していることが示されると、音声処理サブルーチンを出て、ルーチンは図38のブロック412の処理へと続く。
【0129】
図42および図43は、第1および第2のモデルソフトウェアフォーマットを図式的に示しており、これらのフォーマットは、メインCPU228が情報を効果的に処理して容易に編集できるように構成されている。図42および図43の情報の多くについては、本明細書では説明しないが、本明細書の説明に照らして、当業者によって理解されるであろう。図42に示すように、第1のモデルソフトウェアフォーマットは、背景関連であり、メモリ内の位置のセットに記憶されたステージ(背景)データをポイントする「ステージ」ポインタセクションを含む。次に、ステージデータは、幅広い種々の追加情報をポイントし、追加情報には、例えばフォントデータ、カラーパレットデータ、他の背景関連情報データがあり、他の背景関連データには、例えばマップデータ、ユニットマップデータ、パネルマップデータ、パネルユニットマップデータおよびパネルデータがある。
【0130】
図43は、第2の移動オブジェクト関連モデルソフトウェアフォーマットを示しており、そのフォーマットでは、マリオのような識別「オブジェクトユニット」が、関連するオブジェクトユニットメモリ区分に割り当てられる。各識別オブジェクトユニットに関連するのは、オブジェクト動画(アニメ)ポインタで、このポインタは、図43に示すように、動画データのブロックをポイントする。さらに、各オブジェクト関連ユニットは、各オブジェクトユニットに関連した種々のプログラムを識別するオブジェクトプログラムポインタ情報を含む。
【0131】
図44は、オブジェクトユニットRAM情報領域およびゲーム背景関連RAM領域を含むRAM情報内容のメモリマップを図式的に示す。図44に示すように、オブジェクトユニット情報は、オブジェクトユニット識別と、ステータスレジスタおよび座標位置と、キャラクタサイズやポーズ情報等のような幅広い範囲の他のオブジェクト情報とを含む。この情報は、図3に示すメインCPU228およびDRAM230のバッファ領域に記憶されており、制御ファイルを用いて編集するために用いられる。制御ファイルは、編集を支援するためのいくつかの相互参照データ、ラベルテキストおよびメッセージテキストを有する。制御ファイルに記憶されたデータは、ゲームプログラムの実行には必要ないが、編集をより容易にするために用いられる。ゲームプレイ中に用いられる背景音楽データは、メインCPU228システム部からゲームCPU200セクションに戻って送信される。
【0132】
図45は、メインCPU228およびゲームCPU200メモリマップを示しており、データが抽出されて、システムブレイク中にゲームCPU200からメインCPU228へ複写される方法を示している。図45は、また、編集中に、メインCPU228とゲームCPU200とが効率的に相互動作にできるように、ある共通値が各メモリ領域にどのように保持されるかを示す。
【0133】
図45のCPU200部内のデータ領域には、グラフィックデータ、音声データおよびステータス(処理プログラム)が、動画データ、ASMデータおよびBASICデータとして記憶される。また、ゲームCPU200のメモリ領域は、図37に関連して説明したメインプログラムおよびSHVC−BIOS内の関連メインプロセッサ通信ルーチンを含む。複写保護機構を備えた編集不可能なベースファイルは、データ領域、ユニットポインタおよびアセンブラメインプログラムの一部として記憶される。メインCPU228メモリシステムには、マリオファクトリーの基本編集ツールに加えて、CPUコードが記憶される。CPU228のメモリ領域は、また、オペレーティングシステムプログラムおよびメインCPU通信ルーチンを記憶するためのメインプログラム領域を含む。さらに、ベースファイルは、制御ファイルとして、かつユニットデータ、ユニットポインタおよび編集用のいくつかのマイナデータを含むバッファ領域内の一部として記憶される。これらの要素は、ユーザが選択したモデルソフトウェアによって制御される格納プログラムを介して、マリオファクトリープログラムに格納される。
【0134】
マリオファクトリーが実行されると、図45に示すようにメインCPU228メモリに割り当てが行われて、タイトル画面が表示される。次に、格納アイコンがクリックされると、モデルソフトウェアのいくつかのファイルはCPU228メモリに格納され、いくつかのファイルは各メモリ内の通信ルーチンを介してゲームCPUメモリへ格納される。モデルソフトウェアは、SCPU200メモリ内に、データ領域に書き込まれたユニット情報およびユニットポインタを含む。モデルソフトウェアは、CPU228内の制御ファイル領域に記憶される相互参照データ、ラベルテキストまたはメッセージテキストとして編集するためのマイナデータである制御ファイルデータをも含む。制御ファイルデータは、編集されたデータが、(編集を禁止する)ベースファイルデータであるか、または(編集を可能にする)ユーザファイルデータであるかを示す属性データを含む。さらに、制御ファイルデータは、編集の限度示す限度データを含む。例えば、マリオの速度が8ドット当たり1フレームを超えることができないように指定した限度がセットされてもよい。本発明の実施例に従えば、ユーザファイルは、ベースファイルのユニット情報を除くデータ領域データおよびユニットポインタデータを含む。ユーザデータは、また、デフォルトデータと編集されたデータとの差を含んでもよい。
【0135】
図46のフローチャートは、ゲームCPU200およびメインCPU228がゲーム作成処理中に遂行する処理のシーケンスを示す。このフローチャートは、ゲームの修正を行うためにゲームプログラムがどのように実行、停止され、その後、編集が生じた点からどのように再開されるかを示す。フローチャートの左部分は、ゲームCPU200のフローを示しており、フローチャートの右部分はメインCPU228のフローを示す。メインCPU228のフローは、対話およびデータ交換を示すためにゲームCPUのフローと並行して示される。そのような相互交換はゲーム画面を停止することと、例えばマリオを編集するための特定のユニットを選択することとによって生じる。列間の矢印は、2つのプロセッサ間でのデータ交換を示す。
【0136】
まず、ゲームプレイが開始されることになると、ゲームCPU200が制御され、前述したようなモデルソフトウェアで実施されたゲームをプレイするためにメインルーチンの実行を開始する(433)。システムブレイクが開始すると、前述したようにCOPコマンドが生成され、ベクトルジャンプを生じて、ソフトウェアがモニタROM204の中から実行されることとなる。システムブレイクがなされて、例えばマリオのキャラクタが修正用に選択されると、ユニット識別子が生成される。システムブレイク中に変更される情報は、CPU作業用RAM202内に記憶される。ベクトルジャンプの後、ゲームCPUが、モニタROM204から実行される。
【0137】
図46で示すように、メインCPU228は、後述のプログラムループを実行して、モデルソフトウェアゲームプレイにおいて変更を行うためのユーザからの停止要求を待つ。マウスボタンがユーザによって押圧されると、停止要求が検出されて(440)、ソフトウェア割り込みが生じ、COPコマンドがゲームCPUに入力される(441)。
【0138】
画面表示作成中にシステムブレイクが行われると、生成された表示は損なわれる。図34に示すSCPUブレイク論理は、例えば垂直ブランキング期間中に生じるマスク不可能割り込み(NMI)の終了時などに生成された表示に対する影響が不可能になるまで、システムブレイクを遅延させる。メインCPU228が、NMI期間の終了時に、SCPUブレイク論理によってCPU200にCOPコマンドを提供すると、CPU200はモニタROM204から実行を開始して、変更するデータをメインCPU228バッファ領域に送信する。メインCPU228は、変更するキャラクタの座標位置、オブジェクトサイズおよび識別ユニット番号を知らされる。CPU228のユニット作業用RAM領域は、オブジェクトに関連するステータス情報を含む。その後、ゲームCPUは、モニタROM204の中から実行を開始することによって応答する。
【0139】
ブロック434で示すように、ゲームCPU200は、選択されたユニット作業をメインCPU228に送信し、メインCPU228はユニット作業を受信する(442)。図45に示すメモリマップでわかるように、ユニット作業は、CPU200メモリスペース内に含まれ、識別されたユニット作業のコピーが、メインCPU228ユニット作業複写領域に送信される。図44は、オブジェクトユニットに関連する記憶された情報を図式的に示しており、図47は、稼働中ユニットのためのユニットポインタ領域と、ユニット識別番号、表示ポイント、キャラクタサイズ、ユニット内のプログラムカウンタ等の識別された稼働中ユニットのための代表的なユニット情報とを示す。図48は、全ユニットのためのユニットポインタ領域を示しており、ユニットポインタ領域は、動画データポインタ、プログラムポインタ、音声ポインタ等のようなユニットポインタデータを識別する。好ましい実施例では、図44の右列に示す全ユニット情報は、作業複写領域に位置付けられ得る。
【0140】
図46に戻って、CPU200がユニット作業を送信してメインCPU228が受領した後、ユニットが存在する場所を決定するカーソル位置に基づいて検索が行われる(443)。ユニット作業は、特定のフレームに表示されたすべてのユニットと関連する。稼働中ユニットの中から、ユーザは、処理を行う対象ユニットを選択する。処理しようとするオブジェクトに関連するオブジェクト属性情報は、CPU228に関連するオブジェクト属性メモリ内に書き込まれ、メモリは、修正されたユニットが表示されることになる場所を決定することができるように監視される。その後、対話ボックスが表示されて、上述したように修正されるユニットを識別して、重ね合わせ要求が行われて、それによってゲーム画面および対話ボックスの両方を表示することとなる(444)。その後、ユーザは、修正する特定の対象ユニットを選択する(445)。ユーザが対象ユニットを選択した後、さらに対話ボックスが現れて、ユーザはオブジェクトモードを選択する(446)。例えば、選択されるオブジェクトモードは「ドットアイコン」であってもよく、ドットアイコンでは、ユーザは、ドット毎にキャラクタ構成を変更することができる。
【0141】
ゲームCPU200は、ループ内のデータ要求を待って(435)、最終的にはメインCPU228からの要求を受信する(447)。最新のユーザデータは、ステップ436に示すように、CPU200によって送信されて、メインCPU228はこのデータを取り入れて(448)、本明細書で説明しているエディタのうちの1つのを用いて、データを変更する(449)。
【0142】
ゲームCPU200の側では、ゲームCPUは、メインCPU228が編集している新規のデータユニットを待って(437)、ブロック(438)において、ゲームCPU200に対してメインCPU228ルーチンのステップ(451)を介して送信される新規のデータユニットを受信する。ゲームCPU200は、また、ユニットに対してなされた変更を識別する2バイトのデータブロックであるデータポインタを、ブロック438で受信する。ブロック438で情報を受信した後、ゲームCPU200は、再開処理へ移って、変更されて新規のユニット情報を識別するポインタによってゲームの実行を再開する。
【0143】
ブレイク命令から復帰すると、ゲームプログラムは、システムブレイクが生じたのと同じ点から継続する。ブレイクからの復帰は、所望する変更が行われた後に生じるCOP命令がもはや発せられなくなった後に開始する。メインCPU228は、分岐してブロック440に戻り、ループ内に留まって新たな停止要求を待つ。
【0144】
図49および図50は、ゲームプログラム処理が、本実施例に従った「ユニット作業」テーブル処理技術を用いてどのように生じるかを示すフローチャートである。メインルーチンゲームプログラム(450)が実行を開始すると、ゲームCPU200が初期化されて(452)、初期値がユニット作業領域内に格納される。その後、デフォルトデータが、モデルソフトウェア内の元データに従って、ユニット作業領域にセットされる(454)。そのような初期データに基づいて、初期画面が生成される(456)。その後、メインテーブル処理サブルーチン458ならびにブランキングおよびビデオRAM復元処理(460)中に、すべてのメインルーチンが処理される。
【0145】
図50は、メインテーブル処理(458)を示すフローチャートである。図42のステージステータスに対応するメインテーブルは、ゲームシーケンスを示す。メインテーブルは、プログラム層の中で最上位のプログラムルーチンであり、図38に示すモデルソフトウェアのフローは、メインテーブルによって実行される。図38のプログラム処理409が実行されると、図43のオブジェクトステータスに対応するユニット動作テーブルが、各ユニットに対して参照される。メインテーブル処理サブルーチン458では、まず、図51で示すメインテーブルの例のようなメインテーブル内で識別された条件に対して参照が行われる(462)。図51に示すように、メインテーブルは、「条件」列と「処理」列とを含む。条件列は、識別された条件に関連するサブルーチンをポイントする多くのルーチンアドレスを含む。図50に戻って、ブロック464において、条件列内で識別された所定の条件と一致するかどうかを決定するチェックが行われる。条件チェックは、「ビンゴ(合致)」フラグの状態によって決定される。所定の条件と一致すれば、メインテーブルが、条件に対応して生じる処理を識別するために参照される。処理列内に示される処理操作は、処理列内で識別された処理に関連したルーチンアドレスポインタによってポイントされる処理を実行することによって遂行される。条件が一致しないことがブロック464でのチェックによって決定された場合は、メインテーブル処理ルーチンは分岐してブロック468に進み、メインテーブルが終了したどうかを決定するチェックが行われる。もし終了していなければ、ルーチンは分岐してメインテーブルの次の条件へ進み、メインテーブルのすべてのエントリが処理されるまで処理を継続して、すべてのエントリが処理されると、図49に示すメインゲームプログラムルーチンへ戻る(470)。
【0146】
図51のメインテーブルを再検討して、「必ず」条件に関連するエントリは、ユニットが一定の方法で動作しなければならない条件を定義する「必ず」ルーチンのアドレスをポイントする。図52に示す必ずサブルーチン(475)に従って、「ビンゴ」と呼ばれるフラグが1にセットされ(477)、この条件は必ず生じて、ルーチンはメインテーブル処理ルーチンに戻ることとなる(479)。
【0147】
図53は、メインテーブルに示す「敵全滅」条件サブルーチン(480)を示す。このルーチンは、敵が削除されるかどうかを決定して、「ビンゴ」フラグをセットする。図53は、また、味方が全滅させられるかどうかを決定するための「味方全滅」条件サブルーチン(480)を示す。敵(または味方)全滅ルーチンに従って、最初に、敵(または味方)の数が0に等しいかどうかを決定するチェックが行われる(482)。敵(または味方)の数が0に等しい場合は、ビンゴフラグが1にセットされ(484)、ルーチンは分岐してメインテーブル処理サブルーチンに戻る。次に、図56の「次ステージへ」サブルーチン(または図57の「エンディングへ」サブルーチン)が、図50の処理466において実行される。敵(または味方)の数が0に等しくない場合には、ビンゴフラグが0にセットされる(486)。その後、ルーチンは、メインテーブル処理ルーチンへ戻る。対応する処理は実行されない。
【0148】
メインテーブル内の「ユニット動作」サブルーチン処理(500)に従って、ユニット動作テーブルは、例えば、「亀」ユニット作業に関する動作を示す図54に示すユニット動作テーブルの図と同様に処理される。ユニット動作テーブルで特定された条件に関して、各条件および各処理は、条件および処理に関わるサブルーチンをポイントするアドレスポインタによって識別される。「必ず」条件ルーチンは、図52に関連して前述した。「必ず」に続く条件は、画面の右端に触れて亀が検出される時に適用する。「踏まれたら」条件は、亀が別のオブジェクトに踏まれる場合に適用する。左側の条件が一致すれば、関連するアドレスポインタによって示される処理が実行される。図54に示すテーブル内の各条件に関連する処理は自明である。
【0149】
図55に示す「ユニット動作」サブルーチン(500)に従って、最初に、ルーチンが、図45のユニット作業領域内のユニットデータを参照する(502)。その後、図54に示すユニット動作テーブルの内容が、各条件に関連したルーチンアドレスによって示されるサブルーチンをアクセスすることによって処理される(504)。ユニット動作テーブルは、ユーザがステータスエディタを介して図22に示す表示画面を用いることによって、修正されてもよい。その後、条件が一致したかどうかを決定するためのチェックが行われる(506)。ブロック506のチェックにより、条件が一致したことが示されると、図54のテーブルの処理部が、例えば亀を右に移動させるような関連処理を遂行するためにアクセスされる(508)。ユニット動作テーブルに関連する第1の条件が一致しない場合は、ルーチンは分岐してブロック510に進み、エンドマークを検出することによって、テーブルが終了状態かどうかを決定するチェックが行われる。テーブルが終了していない場合は、ルーチンは分岐してブロック504に戻り、処理が継続する。テーブルが終了状態にある場合は、512において、処理するユニットがこれ以上存在しないかどうかを決定するチェックが行われる。このチェックにより、処理するユニットがまだ存在することが示されると、ルーチンは分岐してブロック502に戻る。処理するユニットがこれ以上存在しない場合は、ルーチンは呼出ルーチンに戻る(514)。
【0150】
(図51の)メインテーブルに戻って、「敵全滅」条件が検出されると、図56に示す「次のステージへ」ルーチンが実行される(516)。最初に、ステージ番号が増分されて、次のステージ用に初期化する(518)。その後、図45のユニット作業領域がクリアされ(520)、いくつかのユニットがセットされて、背景ピクチャが次のステージ用に表示される(522)。次のメインルーチンは、次ステージルーチンにセットされる。その後、ルーチンは分岐して呼び出しルーチンに戻る(526)。メインテーブルに示すの最終処理は「エンディングへ」処理で、この処理は、味方全滅条件の検出によって実行される。図57に示すように、「エンディングへ」サブルーチンが呼び出されると(528)、ユニット作業がクリアされる(530)。その後、ユニットはエンディング用に向けてセットされ(532)、関連ピクチャが表示される(534)。その後、ルーチンは分岐して呼び出しルーチンに戻る(536)。次のメインルーチンは、エンディングステージルーチンへセットされる。
【0151】
本発明は、現時点において最も実用的かつ好ましい実施例と思われるものに関して説明してきたが、本発明は開示された実施例に限定されるものではなく、反対に、付加されたクレームの精神および範囲内に含まれる種々の修正および構成を含むことが意図されていることが理解されるべきである。
【図面の簡単な説明】
【図1】ビデオグラフィックゲーム作成システムのブロック図である。
【図2】図1に示すゲームプロセッサシステムコンソールユニット2の斜視図である。
【図3】図1に示すゲームプロセッサシステムの実施例のより詳細なブロック図である。
【図4】図1に示すゲームプロセッサシステムの実施例のより詳細なブロック図である。
【図5】システムメモリスペースの一部のメモリマップを示す図である。
【図6】システムメモリスペースの一部のメモリマップを示す図である。
【図7】図3および図4の実施例が用いられ得るオンラインネットワーキングシステムの例を示す図である。
【図8】本実施例のプログラム作成ツールをアクセスするためのタイトル画面の例を示す図である。
【図9】システムブレイク画面の例を示す図である。
【図10】キャラクタ編集画面の例を示す図である。
【図11】ユーザがキャラクタアイコンをクリックするときアクセスされる画面の例を示す図である。
【図12】「マリオ」という名称のユニットのための「全」ステータス画面表示の例を示す図である。
【図13】キー編集画面の例を示す図である。
【図14】ユニット動画編集画面の例を示す図である。
【図15】背景画面エディタの例を示す図である。
【図16】「マップエディタ」の例を示す図である。
【図17】ゲーム表示画面の背景が、背景画面をドラッグして動作中の背景上に貼り付けることによって、どのように修正されるかを示す図である。
【図18】音楽編集画面を示す図である。
【図19】音声コース毎に音楽属性を変更することができる音楽エディタ画面の例を示す図である。
【図20】音楽を再生中にリアルタイムで変更することができる音楽エディタ画面の例を示す図である。
【図21】オートプログラマの操作を示す画面表示の例を示す図である。
【図22】ステータスエディタ表示画面の例を示す図である。
【図23】幅広い範囲の背景キャラクタ編集が可能な「ステージ」ウインドウ表示画面の例を示す図である。
【図24】図8に示すマリオファクトリーのタイトル画面の機能を示す図である。
【図25】「ツールボックス」選択画面を介してアクセス可能な編集関連ツールを識別する機能図である。
【図26】ゲームブレイク中にアクセス可能なモデルソフトウェア関連編集機能を識別する機能図である。
【図27】図3に示すゲートアレイ226の詳細なブロック図である。
【図28】重ね合わせ操作器回路を示す図である。
【図29】RAMカートリッジの実施例の簡単な概要図である。
【図30】カートリッジのアースコネクタ、アドレスコネクタ、データコネクタ、リセットコネクタおよび電源コネクタを示す図である。
【図31】RAMカートリッジの実施例の簡単な概要図である。
【図32】カートリッジのアースコネクタ、アドレスコネクタ、データコネクタ、リセットコネクタおよび電源コネクタを示す図である。
【図33】本発明の実施例に従ったリセット関連回路のブロック図である。
【図34】本発明の実施例に従ったシステムブレイクハードウェアのブロック図である。
【図35】電源の立ち上げから「マリオファクトリー」ユーティリティータイトル画面が現れるまでの、本発明の実施例に従った処理のシーケンスを示すフローチャートである。
【図36】ユニット作業関連表示画面の例を示す図である。
【図37】「ユニット」を基本としてプログラミングがどのように構築されているかを機能的に示すブロック図である。
【図38】ユニットデータの処理と、ピクチャ信号および音声信号のユーザの表示画面への出力とに含まれる処理のシーケンスを示すフローチャートである。
【図39】ユニットデータの処理と、ピクチャ信号および音声信号のユーザの表示画面への出力とに含まれる処理のシーケンスを示すフローチャートである。
【図40】ユニットデータの処理と、ピクチャ信号および音声信号のユーザの表示画面への出力とに含まれる処理のシーケンスを示すフローチャートである。
【図41】ユニットデータの処理と、ピクチャ信号および音声信号のユーザの表示画面への出力とに含まれる処理のシーケンスを示すフローチャートである。
【図42】第1および第2のモデルソフトウェアフォーマットの例を示す図である。
【図43】第1および第2のモデルソフトウェアフォーマットの例を示す図である。
【図44】オブジェクトユニットRAM情報領域とゲーム背景関連RAM領域とを含むRAM情報内容のメモリマップの例を示す図である。
【図45】メインCPU228およびゲームCPU200のメモリマップの例を示す図である。
【図46】ゲーム作成処理中にゲームCPUおよびメインCPU228が遂行する処理のシーケンスを示すフローチャートである。
【図47】稼働中のユニットのためのユニットポインタ領域と、識別された稼働中のユニットのための代表的なユニット情報とを示す図である。
【図48】ユニットデータの例を識別するすべてのユニットのためのユニットポインタ領域を示す図である。
【図49】ゲームプログラム処理が「ユニット作業」テーブル処理技術を用いてどのように生じるかを示すフローチャートである。
【図50】ゲームプログラム処理が「ユニット作業」テーブル処理技術を用いてどのように生じるかを示すフローチャートである。
【図51】メインテーブルの例を示す図である。
【図52】「必ず」条件処理サブルーチンの例を示す図である。
【図53】「敵全滅」条件サブルーチンの例を示す図である。
【図54】「ユニット動作」テーブルの例を示す図である。
【図55】「ユニット動作」サブルーチンの例を示す図である。
【図56】「次のステージへ」ルーチンの例を示す図である。
【図57】「エンディングへ」サブルーチンの例を示す図である。
【符号の説明】
2…ゲームプロセッサシステムユニットコンソール
4…RAMカセット
5…挿入ポート
6…ゲームプロセッサ識別カード
8…フロッピーディスク
10…マイクロフォン
12,14…2人プレイヤ操作器
16…マウス
18…キーボード
20…交流アダプタ
22…モデム
24…拡張ボード
26…プリンタ
28…ハードディスクドライブ
30…スキャナ
Claims (12)
- ビデオグラフィックプログラムを編集するための対話型計算システムであって、
ビデオグラフィックプログラムを実行する操作とビデオグラフィック表示出力を生成する操作とが可能である第1の処理装置と、
ビデオグラフィックプログラム編集操作を遂行する操作と前記第1の処理装置が前記ビデオグラフィック表示出力を生成した際に前記第1の処理装置のメモリに保持されたデータに基づいて編集関連表示出力を生成する操作とが可能である第2の処理装置と、
表示画面に表示するために前記編集関連表示出力を前記ビデオグラフィックプログラム表示出力に重ね合わせる重ね合わせ制御回路とを備える、ビデオグラフィックプログラム編集システム。 - 前記第2の処理装置は、前記表示画面に表示するキャラクタに応じて前記第1の処理装置のメモリに保持されている表示位置の座標についてのデータに基づいて前記編集関連表示出力を生成する、請求項1に記載のビデオグラフィックプログラム編集システム。
- 前記表示画面にビデオグラフィック表示を生成するために、前記第1の処理装置と前記第2の処理装置とに結合された少なくとも1つのピクチャ処理ユニットをさらに含む、請求項1に記載のビデオグラフィックプログラム編集システム。
- 前記第2の処理装置に結合された制御レジスタと、前記第1の処理装置に結合される第1のメモリと、使用時に第1の処理装置に結合される第2のメモリを含む着脱可能なカートリッジとをさらに含み、前記第1の処理装置は、前記制御レジスタの状態によって、最初に前記第1のメモリからの命令を実行し、次に第2のメモリからの命令を実行する操作が可能である、請求項1に記載のビデオグラフィックプログラム編集システム。
- ビデオグラフィックプログラムを実行する操作とビデオグラフィック表示出力信号を生成する操作とが可能である第1の処理装置と、ビデオグラフィック編集操作を遂行する操作と前記第1の処理装置が前記ビデオグラフィック表示出力信号を生成した際に前記第1の処理装置のメモリに保持されたデータに基づいて編集関連表示出力信号を生成する操作とが可能である第2の処理装置とを有するビデオグラフィックプログラムを編集するための対話型計算システムにおいて、
オーバレイ制御出力信号を生成するための少なくとも1つのオーバレイ制御入力信号を受信するオーバレイ制御信号生成回路と、
前記ビデオグラフィックプログラム表示出力と編集関連表示出力とを受信するために結合され、前記オーバレイ制御出力信号の状態によって前記表示出力信号の1つを選択的に出力するためのゲート回路とを備える、重ね合わせ制御回路。 - 前記オーバレイ制御出力信号は、前記第1の処理装置および前記第2の処理装置の少なくとも1つからの透過制御関連信号である、請求項5に記載の重ね合わせ制御回路。
- 前記オーバレイ制御信号生成回路は、前記第1の処理装置の表示出力と前記第2の処理装置の表示出力との透過優先度を制御する少なくとも1つの入力信号を制御する、請求項5に記載の重ね合わせ制御回路。
- 表示画面を有する表示装置を含む対話型計算システムを用いてビデオグラフィックプログラムに関連した表示フレームの特有のシーケンスを作成する方法であって、
修正される表示フレームのシーケンスを有するビデオグラフィックプログラムを実行するステップと、
所望する編集ポイントにおいて表示フレームのシーケンスを停止して、編集すべき表示フレームを表示するステップと、
編集ウインドウを前記表示フレーム上に重ね合わせ、それによってユーザが複数の編集オプションの中から選択することができるステップとを備える、ビデオグラフィックプログラム編集方法。 - 修正される表示キャラクタのユーザ識別を検出するステップをさらに含む、請求項8に記載のビデオグラフィックプログラム編集方法。
- ユーザが識別したキャラクタに関連して遂行する編集操作を選択するための編集ウインドウを表示するステップをさらに含む、請求項9に記載のビデオグラフィックプログラム編集方法。
- 前記キャラクタのキャラクタパターンを変更するステップをさらに含む、請求項10に記載のビデオグラフィックプログラム編集方法。
- ユーザが識別したキャラクタに関連した移動パターンを変更するステップをさらに含む、請求項10に記載のビデオグラフィックプログラム編集方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/332,813 US5680534A (en) | 1994-10-31 | 1994-10-31 | Video game/videographics program fabricating system and method with superimpose control |
US08/332813 | 1994-10-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08241427A JPH08241427A (ja) | 1996-09-17 |
JP3734048B2 true JP3734048B2 (ja) | 2006-01-11 |
Family
ID=23299960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28425195A Expired - Fee Related JP3734048B2 (ja) | 1994-10-31 | 1995-10-31 | ビデオグラフィックプログラム編集システムおよび方法ならびにそれに用いられる重ね合わせ制御回路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5680534A (ja) |
EP (1) | EP0713174B1 (ja) |
JP (1) | JP3734048B2 (ja) |
DE (2) | DE69519844D1 (ja) |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553864A (en) | 1992-05-22 | 1996-09-10 | Sitrick; David H. | User image integration into audiovisual presentation system and methodology |
JPH0816530A (ja) * | 1994-07-04 | 1996-01-19 | Kurieiteibu Design:Kk | コプロセサシステムおよび補助演算機能付外部メモリ装置 |
US6241611B1 (en) | 1995-05-10 | 2001-06-05 | Nintendo Co., Ltd. | Function expansion device and operating device using the function expansion device |
EP0771015B1 (en) * | 1995-05-10 | 2002-09-25 | Nintendo Co., Limited | Operating device with analog joystick |
US6007428A (en) | 1995-10-09 | 1999-12-28 | Nintendo Co., Ltd. | Operation controlling device and video processing system used therewith |
AU734018B2 (en) | 1995-10-09 | 2001-05-31 | Nintendo Co., Ltd. | Three-dimension image processing system |
US6283857B1 (en) | 1996-09-24 | 2001-09-04 | Nintendo Co., Ltd. | Three-dimensional image processing apparatus with enhanced automatic and user point of view control |
JP3544268B2 (ja) | 1995-10-09 | 2004-07-21 | 任天堂株式会社 | 三次元画像処理装置およびそれを用いた画像処理方法 |
JP3524247B2 (ja) | 1995-10-09 | 2004-05-10 | 任天堂株式会社 | ゲーム機およびそれを用いたゲーム機システム |
DE19681169B3 (de) | 1995-11-10 | 2012-03-01 | Nintendo Co., Ltd. | Steuerhebeleinrichtung |
US6267673B1 (en) | 1996-09-20 | 2001-07-31 | Nintendo Co., Ltd. | Video game system with state of next world dependent upon manner of entry from previous world via a portal |
US6071191A (en) * | 1995-11-22 | 2000-06-06 | Nintendo Co., Ltd. | Systems and methods for providing security in a video game system |
US6139433A (en) * | 1995-11-22 | 2000-10-31 | Nintendo Co., Ltd. | Video game system and method with enhanced three-dimensional character and background control due to environmental conditions |
US6155926A (en) | 1995-11-22 | 2000-12-05 | Nintendo Co., Ltd. | Video game system and method with enhanced three-dimensional character and background control |
US6022274A (en) | 1995-11-22 | 2000-02-08 | Nintendo Co., Ltd. | Video game system using memory module |
JP3720442B2 (ja) * | 1995-12-25 | 2005-11-30 | 株式会社ハドソン | デバッグ機能付きromカートリッジ |
JP3168244B2 (ja) * | 1996-02-13 | 2001-05-21 | 株式会社セガ | 画像生成装置およびその方法 |
US6167562A (en) * | 1996-05-08 | 2000-12-26 | Kaneko Co., Ltd. | Apparatus for creating an animation program and method for creating the same |
TW357324B (en) * | 1996-06-03 | 1999-05-01 | Sega Enterprises Kk | Image processor, image processing method and game machine as well as the memory medium |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US6241610B1 (en) | 1996-09-20 | 2001-06-05 | Nintendo Co., Ltd. | Three-dimensional image processing system having dynamically changing character polygon number |
US6139434A (en) | 1996-09-24 | 2000-10-31 | Nintendo Co., Ltd. | Three-dimensional image processing apparatus with enhanced automatic and user point of view control |
US6244959B1 (en) | 1996-09-24 | 2001-06-12 | Nintendo Co., Ltd. | Three-dimensional image processing system with enhanced character control |
JPH10165649A (ja) * | 1996-10-09 | 1998-06-23 | Sega Enterp Ltd | ゲーム処理装置、ゲーム処理方法および記録媒体 |
US6081266A (en) * | 1997-04-21 | 2000-06-27 | Sony Corporation | Interactive control of audio outputs on a display screen |
US5973734A (en) | 1997-07-09 | 1999-10-26 | Flashpoint Technology, Inc. | Method and apparatus for correcting aspect ratio in a camera graphical user interface |
JP3655438B2 (ja) | 1997-07-17 | 2005-06-02 | 任天堂株式会社 | ビデオゲームシステム |
US6464585B1 (en) | 1997-11-20 | 2002-10-15 | Nintendo Co., Ltd. | Sound generating device and video game device using the same |
US6924781B1 (en) | 1998-09-11 | 2005-08-02 | Visible Tech-Knowledgy, Inc. | Smart electronic label employing electronic ink |
CA2353403C (en) * | 1998-12-07 | 2005-10-25 | I.R.G. Infomedia Research Group Inc. | Method and apparatus for providing a computerised television apparatus |
JP3041286B1 (ja) * | 1998-12-28 | 2000-05-15 | 株式会社コナミコンピュータエンタテインメント大阪 | ビデオゲーム装置、ビデオゲームのプレイ制御方法及びその方法が記録された可読記録媒体 |
US6317141B1 (en) | 1998-12-31 | 2001-11-13 | Flashpoint Technology, Inc. | Method and apparatus for editing heterogeneous media objects in a digital imaging device |
JP3088409B2 (ja) | 1999-02-16 | 2000-09-18 | コナミ株式会社 | 音楽ゲームシステム、該システムにおける演出指示連動制御方法及び該システムにおける演出指示連動制御プログラムを記録した可読記録媒体 |
JP2000237455A (ja) | 1999-02-16 | 2000-09-05 | Konami Co Ltd | 音楽演出ゲーム装置、音楽演出ゲーム方法および可読記録媒体 |
US20040205483A1 (en) * | 1999-03-01 | 2004-10-14 | Yefim Massarsky | Method of simulating the creation of an artist's drawing or painting and device for accomplishing same |
JP2000308755A (ja) * | 1999-04-27 | 2000-11-07 | Konami Co Ltd | 画像表示方法、記録媒体及びビデオゲーム装置 |
US6280329B1 (en) * | 1999-05-26 | 2001-08-28 | Nintendo Co., Ltd. | Video game apparatus outputting image and music and storage medium used therefor |
US7019205B1 (en) * | 1999-10-14 | 2006-03-28 | Sony Computer Entertainment Inc. | Entertainment system, entertainment apparatus, recording medium, and program |
EP1097735A3 (en) | 1999-10-14 | 2003-07-02 | Sony Computer Entertainment Inc. | Entertainment system, entertainment apparatus, recording medium, and program |
US6702677B1 (en) * | 1999-10-14 | 2004-03-09 | Sony Computer Entertainment Inc. | Entertainment system, entertainment apparatus, recording medium, and program |
US7134960B1 (en) | 2000-08-23 | 2006-11-14 | Nintendo Co., Ltd. | External interfaces for a 3D graphics system |
US6609977B1 (en) | 2000-08-23 | 2003-08-26 | Nintendo Co., Ltd. | External interfaces for a 3D graphics system |
US7169043B2 (en) * | 2000-10-17 | 2007-01-30 | Atlantic City Coin & Slot Service Company, Inc. | Gaming display device and method of use |
US7827488B2 (en) | 2000-11-27 | 2010-11-02 | Sitrick David H | Image tracking and substitution system and methodology for audio-visual presentations |
US7003588B1 (en) | 2001-08-22 | 2006-02-21 | Nintendo Co., Ltd. | Peripheral devices for a video game system |
AU2002336354A1 (en) | 2001-09-15 | 2003-04-01 | Michael Neuman | Dynamic variation of output media signal in response to input media signal |
US20030148806A1 (en) * | 2002-02-07 | 2003-08-07 | Weiss Steven A. | Method and apparatus for optimizing game design and development upon multiple game systems |
US6672860B2 (en) * | 2002-04-10 | 2004-01-06 | Hon Technology Inc. | Proximity warning system for a fireplace |
US6722987B2 (en) * | 2002-04-16 | 2004-04-20 | Microsoft Corporation | Processing collisions between digitally represented mobile objects and free form dynamically created electronic ink |
US20050075155A1 (en) * | 2003-01-30 | 2005-04-07 | David Sitrick | Video architecture and methodology for family of related games |
TWI251743B (en) * | 2003-04-07 | 2006-03-21 | Benq Corp | Method for disabling writing function of storage apparatus |
JP3741285B1 (ja) * | 2004-09-22 | 2006-02-01 | コナミ株式会社 | ゲーム装置、プログラム及びゲーム機の制御方法 |
EP1811423A4 (en) * | 2004-10-15 | 2011-10-05 | Vodafone Plc | LINK METHOD AND TERMINAL COMMUNICATION DEVICE |
US7620530B2 (en) * | 2004-11-16 | 2009-11-17 | Nvidia Corporation | System with PPU/GPU architecture |
US9224145B1 (en) | 2006-08-30 | 2015-12-29 | Qurio Holdings, Inc. | Venue based digital rights using capture device with digital watermarking capability |
US7764956B2 (en) * | 2007-02-14 | 2010-07-27 | Magix, Ag | System and method for creation of personalized applications for mobile devices |
US7949998B2 (en) * | 2007-04-20 | 2011-05-24 | Microsoft Corporation | Programming framework for closed systems |
US8330764B2 (en) * | 2007-04-20 | 2012-12-11 | Microsoft Corporation | Programming framework for closed systems |
US8523666B2 (en) * | 2007-05-25 | 2013-09-03 | Microsoft Corporation | Programming framework for closed systems |
US20090192637A1 (en) * | 2007-11-15 | 2009-07-30 | Mtv Networks | Dynamically serving altered sound content |
US20090253517A1 (en) * | 2008-04-04 | 2009-10-08 | Zipzapplay, Inc. | Open game engine and marketplace with associated game editing and creation tools |
US8202166B2 (en) * | 2008-05-05 | 2012-06-19 | Microsoft Corporation | Multiple-player collaborative content editing |
US20120246585A9 (en) * | 2008-07-14 | 2012-09-27 | Microsoft Corporation | System for editing an avatar |
US20100160039A1 (en) * | 2008-12-18 | 2010-06-24 | Microsoft Corporation | Object model and api for game creation |
JP4683246B2 (ja) * | 2009-02-02 | 2011-05-18 | 株式会社ソニー・コンピュータエンタテインメント | ゲーム制御プログラム、ゲーム装置、ゲーム制御方法、管理サーバ、およびデータ管理方法 |
US8334888B2 (en) * | 2009-08-27 | 2012-12-18 | Apple Inc. | Dynamically generated ring tones |
US9666241B2 (en) | 2012-01-19 | 2017-05-30 | Quixant Plc | Firmware protection and validation |
JP6144926B2 (ja) * | 2013-02-20 | 2017-06-07 | 株式会社スクウェア・エニックス | 選択枝画面表示ゲーム装置及び選択枝画面表示ゲームプログラム |
US9579573B2 (en) | 2013-06-10 | 2017-02-28 | Pixel Press Technology, LLC | Systems and methods for creating a playable video game from a three-dimensional model |
US10363486B2 (en) | 2013-06-10 | 2019-07-30 | Pixel Press Technology, LLC | Smart video game board system and methods |
US9370721B2 (en) | 2013-06-10 | 2016-06-21 | Pixel Press Technology, LLC | Systems and methods for creating a playable video game from a static model |
CN106215419B (zh) * | 2016-07-28 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 碰撞控制方法及装置 |
US10786737B2 (en) * | 2016-11-08 | 2020-09-29 | CodeSpark, Inc. | Level editor with word-free coding system |
USD852220S1 (en) * | 2017-03-28 | 2019-06-25 | Alexander Dunaevsky | Display screen or portion thereof with animated graphical user interface |
CN111773692A (zh) * | 2020-07-02 | 2020-10-16 | 北京思明启创科技有限公司 | 基于MicroPython的硬件驱动方法、设备及存储介质 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3827029A (en) * | 1972-09-25 | 1974-07-30 | Westinghouse Electric Corp | Memory and program protection system for a digital computer system |
GB2033703B (en) * | 1978-10-20 | 1983-03-02 | Sanders Associates Inc | Manually programmable video gaming system |
US4525599A (en) * | 1982-05-21 | 1985-06-25 | General Computer Corporation | Software protection methods and apparatus |
US4597058A (en) * | 1983-05-09 | 1986-06-24 | Romox, Inc. | Cartridge programming system |
US4652990A (en) * | 1983-10-27 | 1987-03-24 | Remote Systems, Inc. | Protected software access control apparatus and method |
JPH0644950B2 (ja) * | 1984-08-30 | 1994-06-15 | カシオ計算機株式会社 | 電子ゲーム装置 |
CA1270339A (en) * | 1985-06-24 | 1990-06-12 | Katsuya Nakagawa | System for determining a truth of software in an information processing apparatus |
USRE34161E (en) * | 1985-10-04 | 1993-01-12 | Nintendo Company Limited | Memory cartridge and information processor unit using such cartridge |
US4841291A (en) * | 1987-09-21 | 1989-06-20 | International Business Machines Corp. | Interactive animation of graphics objects |
US4959861A (en) * | 1988-07-13 | 1990-09-25 | Howlette Edward L | Security system for computer software |
US5107443A (en) * | 1988-09-07 | 1992-04-21 | Xerox Corporation | Private regions within a shared workspace |
US5016876A (en) * | 1988-10-14 | 1991-05-21 | Williams Electronics Games, Inc. | Video display co-processor for use in a video game |
US5112051A (en) * | 1989-06-05 | 1992-05-12 | Westinghouse Electric Corp. | Interfacing device for a computer games system |
US5111409A (en) * | 1989-07-21 | 1992-05-05 | Elon Gasper | Authoring and use systems for sound synchronized animation |
JP2725062B2 (ja) | 1989-08-01 | 1998-03-09 | 株式会社リコー | 画像処理装置 |
US5004232A (en) * | 1989-10-13 | 1991-04-02 | Macronix, Inc. | Computer game cartridge security circuit |
JPH0442029U (ja) | 1990-08-09 | 1992-04-09 | ||
JP3068842B2 (ja) | 1990-08-27 | 2000-07-24 | 任天堂株式会社 | 画像処理装置におけるダイレクトメモリアクセス装置およびそれに用いる外部記憶装置 |
JPH04139565A (ja) * | 1990-10-01 | 1992-05-13 | Sega Enterp Ltd | マルチcpu装置 |
US5081676A (en) * | 1990-10-04 | 1992-01-14 | Chou Wayne W | Method and apparatus for protecting multiple copies of computer software from unauthorized use |
US5307456A (en) * | 1990-12-04 | 1994-04-26 | Sony Electronics, Inc. | Integrated multi-media production and authoring system |
US5437464A (en) * | 1991-08-30 | 1995-08-01 | Kabushiki Kaisha Sega Enterprises | Data reading and image processing system for CD-ROM |
US5324035A (en) * | 1991-12-02 | 1994-06-28 | Infinational Technologies, Inc. | Video gaming system with fixed pool of winning plays and global pool access |
US5254984A (en) * | 1992-01-03 | 1993-10-19 | Tandy Corporation | VGA controller for displaying images having selective components from multiple image planes |
WO2004077300A1 (ja) * | 1992-01-22 | 2004-09-10 | Yoshimasa Kadooka | Icメモリカード及びそのデータ保護方法 |
US5388841A (en) * | 1992-01-30 | 1995-02-14 | A/N Inc. | External memory system having programmable graphics processor for use in a video game system or the like |
US5357604A (en) * | 1992-01-30 | 1994-10-18 | A/N, Inc. | Graphics processor with enhanced memory control circuitry for use in a video game system or the like |
US5331417A (en) * | 1992-09-15 | 1994-07-19 | Digital Pictures, Inc. | System and method of displaying a plurality of digital video images |
US5485600A (en) * | 1992-11-09 | 1996-01-16 | Virtual Prototypes, Inc. | Computer modelling system and method for specifying the behavior of graphical operator interfaces |
US5282247A (en) * | 1992-11-12 | 1994-01-25 | Maxtor Corporation | Apparatus and method for providing data security in a computer system having removable memory |
US5337357A (en) * | 1993-06-17 | 1994-08-09 | Software Security, Inc. | Method of software distribution protection |
US5498003A (en) * | 1993-10-07 | 1996-03-12 | Gechter; Jerry | Interactive electronic games and screen savers with multiple characters |
US5498002A (en) * | 1993-10-07 | 1996-03-12 | Gechter; Jerry | Interactive electronic games and screen savers with multiple characters |
-
1994
- 1994-10-31 US US08/332,813 patent/US5680534A/en not_active Expired - Lifetime
-
1995
- 1995-10-30 EP EP95307727A patent/EP0713174B1/en not_active Expired - Lifetime
- 1995-10-30 DE DE69519844A patent/DE69519844D1/de not_active Expired - Lifetime
- 1995-10-30 DE DE69519844T patent/DE69519844T4/de not_active Expired - Lifetime
- 1995-10-31 JP JP28425195A patent/JP3734048B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
AU3453795A (en) | 1996-05-09 |
US5680534A (en) | 1997-10-21 |
DE69519844T2 (de) | 2001-04-26 |
EP0713174B1 (en) | 2001-01-10 |
AU691334B2 (en) | 1998-05-14 |
DE69519844D1 (de) | 2001-02-15 |
JPH08241427A (ja) | 1996-09-17 |
DE69519844T4 (de) | 2001-07-05 |
EP0713174A1 (en) | 1996-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3734048B2 (ja) | ビデオグラフィックプログラム編集システムおよび方法ならびにそれに用いられる重ね合わせ制御回路 | |
JP3734047B2 (ja) | ビデオグラフィックプログラム/ビデオゲーム編集システムおよび方法 | |
JP3693266B2 (ja) | ビデオグラフィックプログラム編集方法 | |
JP3701064B2 (ja) | ビデオグラフィックプログラム編集方法およびそれに用いられる制御回路 | |
US5599231A (en) | Security systems and methods for a videographics and authentication game/program fabricating device | |
US10010793B2 (en) | Techniques for improved user interface helping super guides | |
US6955606B2 (en) | Game information storage medium and game system using the same | |
US5760788A (en) | Graphical programming system and method for enabling a person to learn text-based programming | |
US9623327B2 (en) | Determining triggers for cloud-based emulated games | |
US20060238498A1 (en) | Storage medium having stored therein game program and game device | |
JPH0750513B2 (ja) | 動く図形物体を対話式に作成する方法 | |
JP4743602B2 (ja) | 画像処理装置、画像処理プログラム、ゲーム装置およびゲームプログラム | |
JP4547071B2 (ja) | ゲーム情報記憶媒体およびそれを用いたゲームシステム | |
Lanzinger | 3D Game Development with Unity | |
JP2000107445A (ja) | ゲーム装置 | |
JP3396035B2 (ja) | 画像処理装置 | |
US7662041B2 (en) | Game system | |
AU7866598A (en) | Display tester for game machine | |
JP2001340640A (ja) | ゲーム情報記憶媒体およびそれを用いたゲームシステム | |
JP2002315959A (ja) | ビデオゲームのプログラムを記録したコンピュータ読み取り可能な記録媒体及びビデオゲームのプログラム及びビデオゲーム処理方法及びビデオゲーム処理装置 | |
GB2361787A (en) | Software embodied method for enabling programs to run on otherwise incompatible architectures | |
JP2000334169A5 (ja) | ||
JP2007265602A (ja) | ゲーム機システム | |
JP2002224436A (ja) | ビデオゲーム装置およびその制御方法、ならびにビデオゲームのプログラムおよびそのプログラムを記録したコンピュータ読取り可能な記録媒体。 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050331 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050530 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051012 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051012 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081028 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091028 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101028 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101028 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111028 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111028 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121028 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121028 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121028 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121028 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131028 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |