Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3833097B2 - Bug detection method in game system - Google Patents
[go: Go Back, main page]

JP3833097B2 - Bug detection method in game system - Google Patents

Bug detection method in game system Download PDF

Info

Publication number
JP3833097B2
JP3833097B2 JP2001327698A JP2001327698A JP3833097B2 JP 3833097 B2 JP3833097 B2 JP 3833097B2 JP 2001327698 A JP2001327698 A JP 2001327698A JP 2001327698 A JP2001327698 A JP 2001327698A JP 3833097 B2 JP3833097 B2 JP 3833097B2
Authority
JP
Japan
Prior art keywords
command
history table
stored
bug
contents
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
Application number
JP2001327698A
Other languages
Japanese (ja)
Other versions
JP2003126551A (en
Inventor
光一 中村
Original Assignee
株式会社チュンソフト
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 株式会社チュンソフト filed Critical 株式会社チュンソフト
Priority to JP2001327698A priority Critical patent/JP3833097B2/en
Publication of JP2003126551A publication Critical patent/JP2003126551A/en
Application granted granted Critical
Publication of JP3833097B2 publication Critical patent/JP3833097B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、プログラム中にバグが存在する場合に、そのバグの発生箇所を検出する方法及びその方法を実現する機能を有するプログラム、そのプログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
パーソナルコンピュータ、ゲーム専用機等の各種コンピュータ機器で動作するプログラムにおいて、その内部に存在する何らかのバグによってプログラムの実行が停止した場合には、そのプログラムを強制終了させたり、機器をリセットしたり、電源をオフにしたりしてから、新たにプログラムを再起動しなければならない。
【0003】
【発明が解決しようとする課題】
しかしながら、プログラムの実行を最初から再開したとしても、実行が停止したときと同様の条件の下で同様の操作をした場合には、同じバグによって再びプログラムの実行が停止してしまう。
【0004】
また、プログラム中のどのステップを実行したときにバグが発生したのかを特定することもできないため、特に製品の出荷後にバグが発生した場合には、ユーザーに対して解決策を提供することができない。
【0005】
従って、ゲームソフトウェアにおいては、一度バグが発生するとゲームを先に進行させることができなくなり、バグを解決した新たな製品と交換したり、ソフトウェアをバージョンアップさせたりする以外には解決策がないという問題がある。
【0006】
【課題を解決するための手段】
上記課題を解決するための具体的手段として本発明は、CPUと、不揮発性のメモリとを備え、該不揮発性のメモリには、実行されるコマンドの情報を記憶する履歴テーブルと、該履歴テーブルに記憶されたコマンドの情報がコピーされるセーブエリアと、再生カウンタとを備え、ゲームの進行に伴い実行されるコマンドを履歴テーブルに記憶させ、ゲームの再スタート時に履歴テーブルからコマンドを読み出し再生して再スタート前と同様の状態から進行させると共に、再生の回数を再生カウンタに記憶させることができるゲームシステムにおけるバグ検出方法であって、コマンドの実行前にコマンドを履歴テーブルに連続して順次格納すると共に、コマンドをセーブエリアの各再生ごとにポイントされる所定の領域に順次格納してからコマンドを実行し、履歴テーブルに記憶されているコマンドの再生時は、履歴テーブルに格納されているデータを順次読み出し、再生カウンタの値がnであり、セーブエリアの連続したn個の領域に記憶されたコマンドが同一であるか否かを判断するゲームシステムにおけるバグ検出方法を提供する。
【0007】
上記のように構成される本発明によれば、再生カウンタの値がnであり、セーブエリアの連続したn個の領域に記憶されたコマンドが同一であれば、そのコマンドの実行時にバグが発生したと判断でき、バグの発生前にバグ発生要因となるコマンドを特定することができるため、バグの発生を回避することが可能となる。
【0008】
更に、プログラムの開発中においては、バグが発生するステップを容易に特定することができる。
【0009】
【発明の実施の形態】
本発明が適用されるゲームシステムにおいては、CPU、メモリ、表示画面、ボタン等を備えており、図1に示すように、メモリには履歴テーブルH、履歴テーブルポインタi、セーブエリアS、サーブエリアポインタj、再生カウンタCがそれぞれ確保されている。
【0010】
ここで、履歴テーブルH、セーブエリアS、再生カウンタC、履歴テーブルポインタi、セーブポインタjは不揮発性のメモリやディスクに領域が確保され、バグが発生してやむを得ず電源をオフにしてもその内容が消えることはない。また、バグが発生せずにユーザーが途中でゲームをやめて電源をオフにした場合も、その記憶は失われない。
【0011】
ユーザーによって行われた操作の内容、例えばロールプレイングゲームでは、主人公を移動させた方向、位置、動作等は、ゲームシステム内部においてコマンドとして認識される。
【0012】
履歴テーブルHは、実行されたコマンドや位置を記憶する連続した領域であり、履歴テーブルポインタiは、履歴テーブルHにアクセスする際のポインタである。また、セーブエリアSは、履歴テーブルHに格納されたデータがコピーされる連続した領域であり、セーブポインタjは、セーブエリアSにアクセスする際のポインタである。再生カウンタCは、履歴テーブルHからデータを読み出して再生した回数を示すカウンタである。
【0013】
以下においては、図2〜図4のフローチャートを参照しつつメモリ上の上記各エリアの値の変化に基づいて本発明を説明する。ゲームシステムの電源を入れる等してゲームプログラムを起動すると、ゲームを最初から開始するか、続きから再開するかを選択させるためのメッセージが画面表示され(S1)、例えばユーザーがAボタンを押して最初から開始する方を選択すると、初期化処理が行われる。初期化処理においては、図5に示すように、履歴テーブルH及びセーブエリアSがクリアされてすべての領域の値がNULLとなる(S2、S3)。次に、履歴テーブルポインタi及びセーブエリアポインタjの値を0とし(S4、S5)、再生カウンタCの値を1とし(S6)、ゲームを最初から開始する(S11〜S15)。
【0014】
最初にAボタンを押して最初からプレイする方を選択すると、図6に示すように、そのときの位置及び操作の内容(Aボタンを押したこと)を示すコマンドが履歴テーブルH[0]に書き込まれる(S7)。
【0015】
次に図7に示すように、履歴テーブルH[0]の内容がセーブエリアS[0]にコピーされる(S8)。更に、図8に示すように、次の処理に備えて履歴テーブルポインタiをインクリメントした後(S9)、そのコマンドに対応した処理を実行する(S10)。そして、ユーザーの操作によってゲームが中断しない限り、上記と同様の動作を繰り返してゲームが進行する(S11)。
【0016】
例えば、次にBボタンを押した場合は、図9に示すように、そのときの位置及びBボタンを押したことを示すコマンドが履歴テーブルH[1]に記憶され(S7)、次に図10に示すように、この情報がセーブエリアS[0]にコピーされる(S8)。ここで、セーブエリアS[j]へのコピーは、コピー時のインデックスであるセーブポインタjがインクリメントされないため、上書きされていく。
【0017】
そして更に、図11に示すように、次の処理に備えてセーブエリアポインタiをインクリメントした後(S9)、そのコマンドに対応した処理を実行する(S10)。
【0018】
こうして履歴テーブルポインタiをインクリメントしながらコマンドが書き込まれていくと、履歴テーブルHの連続した領域に次々と位置及びコマンドが書き込まれていく。そしてユーザーが操作を中断すると(S11)、例えば図12に示すように、履歴テーブルH[2]に位置及びコマンド(END)が書き込まれ(S12)、図13に示すように、セーブエリアS[0]にその内容がコピーされる(S13)。そして、履歴テーブルポインタiを0に戻して正常終了する(S14)。
【0019】
こうして履歴テーブルHに記憶された内容は、電源をオフにしても消えることはなく、プログラムによる処理によってクリアを行った場合にのみその内容が消去される。
【0020】
しかし、例えば図14に示すように図1〜図7に示した処理の後にCボタンを押してこれを履歴テーブルH[2]に書き込み、図15に示すようにセーブエリアS[0]にこれをコピーし、図16に示すように履歴テーブルポインタiをインクリメントした後、そのコマンドを実行したところバグが発生したとすると、この時点でプログラムがフリーズしてしまうため、履歴テーブルH[3]にコマンド(END)を書き込むことができない。この場合は異常終了となり、セーブエリア[0]にはコマンド(C押す)が格納されている。また、履歴テーブルHに記憶された内容は、後に電源をオフにしても消えることはない。
【0021】
図2のステップS1において、ユーザーがBボタンを押して続きから再開する方を選択すると、再生カウンタCの値が3以上であるかどうかを判断し(S15)、3未満であれば、次に履歴テーブルHの最初の領域がNULLかどうかを判断する(S16)。NULLであれば最初からゲームを開始し(S4〜S14)、NULLでなければセーブエリアポインタjをインクリメントしてコマンド再生ルーチンを実行する(S17、S20)。
【0022】
一方、再生カウンタCの値が3以上であれば、セーブエリアSの内容をチェックし(S21)、ユーザーによる操作なしに強制的に過去のコマンドを再生することによりゲーム再開前と同様の状態とし(S20)、その続きからゲームを進行させることができる(S7〜S14)。
【0023】
ステップS21におけるセーブエリアSのチェックは、図3のフローチャートに示す手順により行う。この処理においては、セーブエリアSの連続する3つの領域の値が等しいかどうかをチェックし(S30、S31)、すべてが同じであればバグが発生するのを回避するための処理を行う(S32)。これは、3回連続して同じステップでバグが発生した場合には、そこでまたバグが発生する可能性が高いという考え方に基づいている。
【0024】
一方、値が一つでも異なれば、何もせずに終了する。即ち、3回連続して同じステップでバグが発生していない場合には、必ずしもまたバグが発生するとはいえないため、特別な処理は行わない。
【0025】
図2のステップS20において行うコマンド再生の処理の手順を図4のフローチャートに示す。例えば図17のように、以前に正常終了して履歴テーブルHにデータが書き込まれている場合においてこれを再生する場合には、まず履歴テーブルポインタiを0にし(S40)、図18に示すように再生カウンタCをカウントアップし(S41)、更に図19に示すようにセーブエリアS[0]に履歴テーブルH[0]の内容をコピーする(S42)。そして、コマンド(END)であるかどうかを判断し(S43)、コマンド(END)でなければそのコマンドを実行する(S44)。
【0026】
次に、図20に示すように履歴テーブルポインタiをインクリメントし(S45)、更に図21に示すようにセーブエリアS[]に履歴テーブルH[1]の内容をコピーしてから(S42)、そのコマンドがコマンド(END)かどうかを判断する(S43)。履歴テーブルH[1]はコマンド(END)ではないため、上記と同様の処理によってコマンドが実行され(S44)、更に図22に示すように履歴テーブルポインタiをインクリメントする(S45)。
【0027】
図23に示すようにセーブエリアS[0]に履歴テーブルH[2]の内容をコピーしてから(S42)、そのコマンドがコマンド(END)かどうかを判断する(S43)。ここではコマンド(END)であるため、図24に示すように、セーブエリアSをすべてクリアし(S107)、セーブエリアポインタjを0にして再生処理を終了する(S48)。
【0028】
このようにして履歴テーブルHに記憶されているすべてのコマンドを再生することにより、ゲームを終了させた時点と同様の状態となる。そしてその後はユーザーの操作によってその続きからゲームを進行させることができる。
【0029】
一方、図25に示すように、再生カウンタCの値が3となっている場合は、次にセーブエリアチェックを行い(S21)、ここでは連続して3つの同じデータが格納されているため、セーブエリアSの連続する3つの領域に格納された位置及びコマンドがバグの発生要因であると考え、バグ回避処理を行う(S32)。
【0030】
この処理においては、図26に示すように、履歴テーブル[i]の内容を別のコマンドに置き換える。
【0031】
そして、上記と同様の処理によって履歴テーブルHに格納されているコマンドを実行すると、バグを発生させることなく再生処理を終了し、その続きからゲームを進行させることができる。
【0032】
このように、バグの発生前にバグ発生要因となるコマンドを特定することができるため、バグの発生を回避することが可能となる。
【0033】
また、プログラムの開発中においては、バグが発生するステップを容易に特定することができるため、デバッグが容易となり、開発効率が向上する
【0034】
なお、本実施の形態においては、再生カウンタの値が3以上になったときにバグの発生を回避するための処理を行うこととしたが、再生カウンタの値は任意の値nとすることが可能である。そして、これに対応させて、セーブエリアに記憶された内容の比較を行う領域の数も変更することができる。
【0035】
【発明の効果】
以上説明したように、本発明によれば、バグの発生前にバグ発生要因となるコマンドを特定することができる。
【0036】
また、プログラムの開発中においては、バグが発生するステップを容易に特定することができるため、デバッグが容易となり、開発効率が向上する。
【図面の簡単な説明】
【図1】 本発明に用いるテーブル及びポインタを示す説明図である。
【図2】 本発明の手順を示すフローチャートである。
【図3】 本発明の手順を示すフローチャートである。
【図4】 本発明の手順を示すフローチャートである。
【図5】 初期化されたテーブル及びポインタの内容を示す説明図である。
【図6】 最初からプレイした場合のテーブル及び変数の内容の一例を示す説明図である。
【図7】 最初からプレイした場合のテーブル及び変数の内容の一例を示す説明図である。
【図8】 最初からプレイした場合のテーブル及び変数の内容の一例を示す説明図である。
【図9】 最初からプレイした場合のテーブル及び変数の内容の一例を示す説明図である。
【図10】 最初からプレイした場合のテーブル及び変数の内容の一例を示す説明図である。
【図11】 最初からプレイした場合のテーブル及び変数の内容の一例を示す説明図である。
【図12】 操作を中断させた場合のテーブル及び変数の内容の一例を示す説明図である。
【図13】 操作を中断させた場合のテーブル及び変数の内容の一例を示す説明図である。
【図14】 プログラムがフリーズする前のテーブル及び変数の内容の一例を示す説明図である。
【図15】 プログラムがフリーズする前のテーブル及び変数の内容の一例を示す説明図である。
【図16】 プログラムがフリーズする前のテーブル及び変数の内容の一例を示す説明図である。
【図17】 コマンド再生時のテーブル及び変数の内容の一例を示す説明図である。
【図18】 コマンド再生時のテーブル及び変数の内容の一例を示す説明図である。
【図19】 コマンド再生時のテーブル及び変数の内容の一例を示す説明図である。
【図20】 コマンド再生時のテーブル及び変数の内容の一例を示す説明図である。
【図21】 コマンド再生時のテーブル及び変数の内容の一例を示す説明図である。
【図22】 コマンド再生時のテーブル及び変数の内容の一例を示す説明図である。
【図23】 コマンド再生時のテーブル及び変数の内容の一例を示す説明図である。
【図24】 コマンド再生時のテーブル及び変数の内容の一例を示す説明図である。
【図25】 バグ回避処理時のテーブル及び変数の内容の一例を示す説明図である。
【図26】 バグ回避処理時のテーブル及び変数の内容の一例を示す説明図である。
【符号の説明】
H…履歴テーブル S…セーブエリア C…再生カウンタ
i…履歴テーブルポインタ j…セーブエリアポインタ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for detecting an occurrence location of a bug when a bug exists in the program, a program having a function for realizing the method, and a recording medium on which the program is recorded.
[0002]
[Prior art]
If a program that runs on various computer devices such as personal computers or game machines stops running due to a bug that exists inside the computer, the program may be forcibly terminated, the device reset, You must turn it off and restart a new program.
[0003]
[Problems to be solved by the invention]
However, even if the execution of the program is restarted from the beginning, if the same operation is performed under the same conditions as when the execution is stopped, the execution of the program is stopped again due to the same bug.
[0004]
In addition, it is impossible to determine which step in the program caused the bug, so it is not possible to provide a solution to the user, especially when a bug occurs after the product is shipped. .
[0005]
Therefore, in game software, once a bug occurs, the game cannot be advanced, and there is no solution other than replacing the bug with a new product or upgrading the software. There's a problem.
[0006]
[Means for Solving the Problems]
As a specific means for solving the above-mentioned problems, the present invention comprises a CPU and a non-volatile memory, and the non-volatile memory stores a history table for storing information on commands to be executed, and the history table. A save area where the command information stored in the memory is copied, and a playback counter are stored in the history table for commands executed as the game progresses, and the commands are read from the history table and played back when the game is restarted. This is a bug detection method in a game system in which the number of playbacks can be stored in the playback counter while proceeding from the same state as before the restart, and the commands are sequentially stored in the history table before the commands are executed. At the same time, the commands are sequentially stored in a predetermined area pointed at each playback of the save area and then copied. When the command stored in the history table is played, the data stored in the history table is read sequentially, the value of the playback counter is n, and stored in n consecutive areas of the save area Provided is a bug detection method in a game system for determining whether or not received commands are the same.
[0007]
According to the present invention configured as described above, if the value of the reproduction counter is n and the commands stored in n consecutive areas of the save area are the same, a bug occurs when the command is executed. Since it can be determined that the command that causes the bug occurs before the bug occurs, the occurrence of the bug can be avoided.
[0008]
Furthermore, it is possible to easily identify the step where the bug occurs during the development of the program.
[0009]
DETAILED DESCRIPTION OF THE INVENTION
The game system to which the present invention is applied includes a CPU, a memory, a display screen, buttons, and the like. As shown in FIG. 1, the memory includes a history table H, a history table pointer i, a save area S, a serve area. A pointer j and a reproduction counter C are secured.
[0010]
Here, the history table H, save area S, playback counter C, history table pointer i, and save pointer j are reserved in a non-volatile memory or disk, and their contents even if the power is turned off due to the occurrence of a bug. Will not disappear. In addition, even if the user stops the game and turns off the power without any bugs, the memory is not lost.
[0011]
The contents of the operation performed by the user, for example, in the role playing game, the direction, position, action, etc., in which the main character is moved are recognized as commands in the game system.
[0012]
The history table H is a continuous area for storing executed commands and positions, and the history table pointer i is a pointer for accessing the history table H. The save area S is a continuous area to which data stored in the history table H is copied, and the save pointer j is a pointer for accessing the save area S. The reproduction counter C is a counter indicating the number of times data is read from the history table H and reproduced.
[0013]
In the following, the present invention will be described based on the change in the value of each area on the memory with reference to the flowcharts of FIGS. When the game program is started by turning on the power of the game system or the like, a message for selecting whether to start the game from the beginning or to resume from the beginning is displayed on the screen (S1). For example, when the user presses the A button, When the one starting from is selected, initialization processing is performed. In the initialization process, as shown in FIG. 5, the history table H and the save area S are cleared, and the values of all areas become NULL (S2, S3). Next, the values of the history table pointer i and the save area pointer j are set to 0 (S4, S5), the value of the reproduction counter C is set to 1 (S6), and the game is started from the beginning (S11 to S15).
[0014]
When the player who first presses the A button and selects the one to play from the beginning, as shown in FIG. 6, a command indicating the position and the content of the operation (pressed the A button) is written in the history table H [0]. (S7).
[0015]
Next, as shown in FIG. 7, the contents of the history table H [0] are copied to the save area S [0] (S8). Further, as shown in FIG. 8, after the history table pointer i is incremented in preparation for the next processing (S9), processing corresponding to the command is executed (S10). Then, unless the game is interrupted by the user's operation, the game proceeds by repeating the same operation as described above (S11).
[0016]
For example, when the B button is pressed next time, as shown in FIG. 9, the position and the command indicating that the B button has been pressed are stored in the history table H [1] (S7). As shown in FIG. 10, this information is copied to the save area S [0] (S8). Here, the copy to the save area S [j] is overwritten because the save pointer j that is an index at the time of copying is not incremented.
[0017]
Further, as shown in FIG. 11, after the save area pointer i is incremented in preparation for the next processing (S9), processing corresponding to the command is executed (S10).
[0018]
When the command is written while incrementing the history table pointer i in this way, the position and the command are sequentially written in a continuous area of the history table H. When the user interrupts the operation (S11), for example, as shown in FIG. 12, the position and command (END) are written in the history table H [2] (S12), and as shown in FIG. 0] is copied (S13). Then, the history table pointer i is returned to 0 and the process ends normally (S14).
[0019]
Thus, the contents stored in the history table H do not disappear even when the power is turned off, and the contents are erased only when the contents are cleared by processing by a program.
[0020]
However, for example, as shown in FIG. 14, after the processing shown in FIGS. 1 to 7, the C button is pressed to write it in the history table H [2], and this is stored in the save area S [0] as shown in FIG. If a bug occurs when the command is executed after copying and incrementing the history table pointer i as shown in FIG. 16, the program freezes at this point, so the command is stored in the history table H [3]. (END) cannot be written. In this case, the process ends abnormally, and a command (press C) is stored in the save area [0]. Also, the contents stored in the history table H will not be erased even if the power is turned off later.
[0021]
In step S1 of FIG. 2, when the user presses the B button and chooses to resume from the next, it is determined whether or not the value of the reproduction counter C is 3 or more (S15). It is determined whether or not the first area of the table H is NULL (S16). If it is NULL, the game is started from the beginning (S4 to S14), and if not NULL, the save area pointer j is incremented and a command reproduction routine is executed (S17, S20).
[0022]
On the other hand, if the value of the reproduction counter C is 3 or more, the contents of the save area S are checked (S21), and the past command is forcibly reproduced without any user operation, so that the state is the same as before the game restart. (S20), the game can be advanced from the continuation (S7 to S14).
[0023]
The check of the save area S in step S21 is performed according to the procedure shown in the flowchart of FIG. In this process, it is checked whether the values of three consecutive areas of the save area S are equal (S30, S31), and if all are the same, a process for avoiding a bug is performed (S32). ). This is based on the idea that if a bug occurs three times in the same step, there is a high possibility that a bug will occur again.
[0024]
On the other hand, if even one value is different, the process ends without doing anything. In other words, if a bug does not occur in the same step three times in succession, it cannot be said that a bug occurs again, so no special processing is performed.
[0025]
FIG. 4 is a flowchart showing the procedure of command playback processing performed in step S20 in FIG. For example, as shown in FIG. 17, when data is reproduced in the history table H when it has been normally completed before, the history table pointer i is first set to 0 (S40), as shown in FIG. The reproduction counter C is incremented (S41), and the contents of the history table H [0] are copied to the save area S [0] as shown in FIG. 19 (S42). Then, it is determined whether it is a command (END) (S43). If it is not a command (END), the command is executed (S44).
[0026]
Next, the history table pointer i is incremented as shown in FIG. 20 (S45), and the contents of the history table H [1] are copied to the save area S [ 1 ] as shown in FIG. 21 (S42). Then, it is determined whether or not the command is a command (END) (S43). Since the history table H [1] is not a command (END), the command is executed by the same processing as described above (S44), and the history table pointer i is incremented as shown in FIG. 22 (S45).
[0027]
As shown in FIG. 23, after copying the contents of the history table H [2] to the save area S [0] (S42), it is determined whether or not the command is a command (END) (S43). Since it is a command (END) here, as shown in FIG. 24, all the save areas S are cleared (S107), the save area pointer j is set to 0, and the reproduction process is terminated (S48).
[0028]
By reproducing all the commands stored in the history table H in this way, a state similar to that at the time when the game is ended is obtained. After that, the game can be advanced from the continuation by the user's operation.
[0029]
On the other hand, as shown in FIG. 25, when the value of the reproduction counter C is 3, a save area check is performed next (S 21 ), and here, the same three pieces of data are stored continuously. Considering that the positions and commands stored in the three consecutive areas of the save area S are the cause of the bug, the bug avoiding process is performed (S32).
[0030]
In this process, as shown in FIG. 26, the contents of the history table [i] are replaced with another command.
[0031]
When a command stored in the history table H is executed by the same process as described above, the reproduction process is terminated without causing a bug, and the game can be continued from there.
[0032]
As described above, since a command that causes a bug can be identified before the occurrence of the bug, the occurrence of the bug can be avoided.
[0033]
Further, during the development of the program, it is possible to easily identify the step where the bug occurs, so that debugging is facilitated and development efficiency is improved.
In this embodiment, the process for avoiding the occurrence of bugs is performed when the value of the reproduction counter becomes 3 or more. However, the value of the reproduction counter may be set to an arbitrary value n. Is possible. Corresponding to this, the number of areas for comparing the contents stored in the save area can be changed.
[0035]
【The invention's effect】
As described above, according to the present invention, it is possible to specify a command that causes a bug before a bug occurs.
[0036]
Further, during the development of the program, it is possible to easily identify the step where the bug occurs, so that debugging becomes easy and development efficiency is improved.
[Brief description of the drawings]
FIG. 1 is an explanatory diagram showing a table and pointers used in the present invention.
FIG. 2 is a flowchart showing the procedure of the present invention.
FIG. 3 is a flowchart showing the procedure of the present invention.
FIG. 4 is a flowchart showing the procedure of the present invention.
FIG. 5 is an explanatory diagram showing the contents of the initialized table and pointer.
FIG. 6 is an explanatory diagram showing an example of contents of a table and variables when played from the beginning.
FIG. 7 is an explanatory diagram showing an example of the contents of a table and variables when played from the beginning.
FIG. 8 is an explanatory diagram showing an example of contents of a table and variables when played from the beginning.
FIG. 9 is an explanatory diagram showing an example of contents of a table and variables when played from the beginning.
FIG. 10 is an explanatory diagram showing an example of contents of a table and variables when played from the beginning.
FIG. 11 is an explanatory diagram showing an example of contents of a table and variables when played from the beginning.
FIG. 12 is an explanatory diagram illustrating an example of contents of a table and variables when an operation is interrupted.
FIG. 13 is an explanatory diagram illustrating an example of contents of a table and variables when an operation is interrupted.
FIG. 14 is an explanatory diagram showing an example of contents of a table and variables before a program is frozen.
FIG. 15 is an explanatory diagram showing an example of contents of a table and variables before a program is frozen.
FIG. 16 is an explanatory diagram showing an example of contents of a table and variables before a program is frozen;
FIG. 17 is an explanatory diagram showing an example of contents of a table and variables at the time of command reproduction.
FIG. 18 is an explanatory diagram showing an example of contents of a table and variables at the time of command reproduction.
FIG. 19 is an explanatory diagram showing an example of contents of a table and variables at the time of command reproduction.
FIG. 20 is an explanatory diagram showing an example of contents of a table and variables at the time of command reproduction.
FIG. 21 is an explanatory diagram showing an example of contents of a table and variables at the time of command reproduction.
FIG. 22 is an explanatory diagram showing an example of contents of a table and variables at the time of command reproduction.
FIG. 23 is an explanatory diagram showing an example of contents of a table and variables at the time of command reproduction.
FIG. 24 is an explanatory diagram showing an example of contents of a table and variables at the time of command reproduction.
FIG. 25 is an explanatory diagram showing an example of contents of a table and variables at the time of bug avoidance processing;
FIG. 26 is an explanatory diagram showing an example of contents of a table and variables at the time of bug avoidance processing;
[Explanation of symbols]
H ... History table S ... Save area C ... Playback counter i ... History table pointer j ... Save area pointer

Claims (1)

CPUと、不揮発性のメモリとを備え、該不揮発性のメモリには、実行されるコマンドの情報を記憶する履歴テーブルと、該履歴テーブルに記憶されたコマンドの情報がコピーされるセーブエリアと、再生カウンタとを備え、ゲームの進行に伴い実行されるコマンドを前記履歴テーブルに記憶させ、該ゲームの再スタート時に該履歴テーブルからコマンドを読み出し再生して該再スタート前と同様の状態から進行させると共に、該再生の回数を前記再生カウンタに記憶させることができるゲームシステムにおけるバグ検出方法であって、
コマンドの実行前に該コマンドを該履歴テーブルに連続して順次格納すると共に、該コマンドをセーブエリアの各再生ごとにポイントされる所定の領域に順次格納してから該コマンドを実行し、
該履歴テーブルに記憶されているコマンドの再生時は、該履歴テーブルに格納されているデータを順次読み出し、前記再生カウンタの値がnであり、該セーブエリアの連続したn個の領域に記憶されたコマンドが同一であるか否かを判断するゲームシステムにおけるバグ検出方法。
A CPU and a non-volatile memory, the non-volatile memory having a history table for storing information of commands to be executed, a save area for copying information of commands stored in the history table, A playback counter, and a command to be executed as the game progresses is stored in the history table, and when the game is restarted, the command is read from the history table and played back so as to proceed from the same state as before the restart. A bug detection method in a game system capable of storing the number of reproductions in the reproduction counter ,
Before executing the command stores sequentially in succession the command to the subsequent history table, it executes the command the command are sequentially stored in a predetermined area pointed to each playback of the save area,
When playing back the commands stored in the history table, the data stored in the history table is read sequentially, the value of the playback counter is n, and stored in n consecutive areas of the save area. A bug detection method in a game system that determines whether or not commands are the same.
JP2001327698A 2001-10-25 2001-10-25 Bug detection method in game system Expired - Fee Related JP3833097B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001327698A JP3833097B2 (en) 2001-10-25 2001-10-25 Bug detection method in game system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001327698A JP3833097B2 (en) 2001-10-25 2001-10-25 Bug detection method in game system

Publications (2)

Publication Number Publication Date
JP2003126551A JP2003126551A (en) 2003-05-07
JP3833097B2 true JP3833097B2 (en) 2006-10-11

Family

ID=19143886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001327698A Expired - Fee Related JP3833097B2 (en) 2001-10-25 2001-10-25 Bug detection method in game system

Country Status (1)

Country Link
JP (1) JP3833097B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7053931B1 (en) 2021-08-17 2022-04-12 株式会社Cygames Methods, programs, systems, and devices for estimating the cause of failure

Also Published As

Publication number Publication date
JP2003126551A (en) 2003-05-07

Similar Documents

Publication Publication Date Title
USRE35839E (en) CD-ROM disk and security check method for the same
US5732272A (en) Subroutine execution time tracer
TWI240203B (en) A device which updates firmware by a memory card
JP3683632B2 (en) Home video game console
KR100283948B1 (en) Apparatus for controlling disk player and method therefor
JP4405698B2 (en) Improved DVD navigator and application programming interface (API)
JPH09179752A (en) ROM cartridge debugging method and apparatus
JP4121978B2 (en) GAME PROGRAM, GAME DEVICE, AND GAME METHOD
CN1841323A (en) How to use hotkeys to switch operating systems
JP3206641B2 (en) Microcomputer system debugging method, debugging device, and recording medium recording debug program
JP3833097B2 (en) Bug detection method in game system
EP1091357A2 (en) Record medium with mechanism of secrecy protection
US7694071B1 (en) Disk drives and methods allowing configurable zoning
JP3268602B2 (en) Game console system using memory cartridge and optical disk memory
KR20050038044A (en) Command set for removable rewritable computer storage
EP0741359B1 (en) Method and device for supporting production of moving-picture cd-rom software
JP2002041292A (en) Computer recovery device
RU2007112776A (en) RECORDING MEDIA AND METHOD AND DEVICE FOR PLAYING DATA FROM RECORDING MEDIA
JP2002024055A (en) Computer system and application program operation reproduction method
JP3290170B2 (en) Game console system using memory cartridge and optical disk memory
TWI281628B (en) Method for fast executing computer function option with intelligent memory
JP3110391B2 (en) Program re-execution method
JP5040051B2 (en) Information processing apparatus and method, recording medium, and program
KR100226967B1 (en) Method for reproducing optical disk
JP2630932B2 (en) Program recording method for disk-shaped recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050928

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051128

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: 20060626

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060718

R150 Certificate of patent or registration of utility model

Ref document number: 3833097

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090728

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100728

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130728

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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