First Road Rash
理論
パスワードは20個の位置で構成され、各位置は5ビットで構成され、合計20 * 5 = 100ビットです。 これらのビットには、次のゲームパラメータが格納されます。
- 5つの異なるトラック上の占有場所の番号(0〜15)(0は、このルートをまだ旅行していないことを意味します)。
- ポイント数(0-10485750)
- 金額((-83886070)-83886070)
- 現在のレベル(1-5)
- オートバイ(1-8)
ここで、未加工のパスワードの構成を見てみましょう。
(U、SN、SN、SN、SN)(U、PC、PC、PC、PC)(U、RF、RF、RF、RF)(U、PD、PD、PD、PD)(U、GV、GV 、GV、GV)(H、H、H、H、H)(H、H、H、H、H)(H、H、H、H、H)(H、H、H、H、H)( N、M、M、M、C1)(M、M、M、M、C1)(M、M、M、M、C1)(M、M、M、M、C1)(M、M、M、 M、C1)(M、M、M、M、C1)(U、U、L、L、L)(U、U、B、B、B)(C2、C2、C2、C2、C2)(C3 、C3、C3、C3、C3)(C4、C4、C4、C4、C4)
指定
U-未使用ビット。
SN-2進数システムでのシエラネバダの占領地の番号(0〜15)。
PC-バイナリシステムでの太平洋岸の占有席の番号(0〜15)。
RF-バイナリシステムのレッドウッドフォレスト(0〜15)の占有場所の番号。
PD-バイナリシステムのパームデザート(0-15)の占有場所の数。
GV-バイナリシステムのGrass Valeyの占有場所の番号(0〜15)。
H-ポイント数(0〜10485750)の増分=10。ポイント数を10で除算し、結果の数をバイナリに変換します。
Nは負の値のビットです。
Mは、ステップ(= 10)の金額((-83886070)-83886070)です。
正の金額を作成するには、金額を10で除算し、結果の数値を2進数システムに変換する必要があります。
マイナスの金額を作成するには、以下が必要です。
- 負の値を少しアクティブにします。
- 金額83886080(モジュロ)から金額を減算し、結果の残高を10で除算し、数値をバイナリに変換します。
Lは、2進数システムのレベル番号(1〜5)です。
B-バイナリシステムのオートバイ番号(0〜7)。
オートバイ | 数 |
手裏剣400 | 0 |
パンダ600 | 1 |
バンザイ750 | 2 |
カミカゼ750 | 3 |
手裏剣1000 | 4 |
FERRUCI 850 | 5 |
パンダ750 | 6 |
DIABLO 1000 | 7 |
C1 =(位置1から17の合計)mod64(結果の数値は2進数システムに変換され、ミラーリングされます)。
C2 =(位置6から10の合計)mod32
C3 =(位置11から15の合計)mod32
C4 = C2 XOR C3。
コーディング
位置の文字は、値0〜9およびAVを取ることができます。 位置のビットは、0 = 00000、1 = 00001、2 = 00010 ... U = 11110、V = 11111という事実に従ってエンコードされます。 つまり、単純な5ビットエンコーディングです。
正の金額でパスワードを生成する例
これらのパラメーターを保存するパスワードを作成します。
5 = 0101
3 = 0011
7 = 0111
9 = 1001
1 = 0001
10341950ポイント/ 10 = 1034195 = 11111100011111010011
23915840お金/ 10 = 2391584 = 1001000111111000100000
レベル5 = 101
オートバイ番号6 = 110
(00101)(00011)(00111)(01001)(00001)(11111)(10001)(11110)(10011)(0010 *)(0100 *)(0111 *)(1110 *)(0010 *)(0000 * )(00101)(00110)(*****)(*****)(*****)
次に、値を2進数システム(* = 0)に変換します。
(5)(3)(7)(9)(1)(31)(17)(30)(19)(4)(8)(14)(28)(4)(0)(5)(6) )(0)(0)(0)。
次に、最初のチェックサムを計算します。
C1 =(5 + 3 + 7 + 9 + 1 + 31 + 17 + 30 + 19 + 4 + 8 + 14 + 28 + 4 + 0 + 5 + 6)mod64 = 191mod64 = 63 = 111111(ここでチェックサムをミラーリングします) )= 111111(*の代わりに結果の数値を書き込みます)。
(00101)(00011)(00111)(01001)(00001)(11111)(10001)(11110)(10011)(00101)(01001)(01111)(11101)(00101)(00001)(00101)(00110 )(*****)(*****)(*****)
次に、2番目、3番目、4番目のチェックサムを計算します(C1により、一部の位置の値が変更されたことを忘れてはなりません)。
C2 =(31 + 17 + 30 + 19 + 5)mod32 = 102mod32 = 6 = 00110
C3 =(9 + 15 + 29 + 5 + 1)mod32 = 59mod32 = 27 = 11011
C4 =
00110
Xor
11011
=
11101 = 29
結果のパスワードを10進表記で書き込みます。
(5)(3)(7)(9)(1)(31)(17)(30)(19)(5)(9)(15)(29)(5)(1)(5)(6 )(6)(27)(29)
次に、結果の値をエンコードします。
5,3,7,9,1 V、H、U、J、5
9、F、T、5.1 5.6.6、R、T
- SN = 5位、PC = 3位、RF = 7位、PD = 9位、GV = 1位
- ポイント数(10341950)
- 金額(23915840)
- 現在のレベル(5)
- オートバイ(6)
- すべての未使用ビットはゼロです
値を2進数システムに変換します。
5 = 0101
3 = 0011
7 = 0111
9 = 1001
1 = 0001
10341950ポイント/ 10 = 1034195 = 11111100011111010011
23915840お金/ 10 = 2391584 = 1001000111111000100000
レベル5 = 101
オートバイ番号6 = 110
生のパスワードを作成し、4つのチェックサムを計算します。
(00101)(00011)(00111)(01001)(00001)(11111)(10001)(11110)(10011)(0010 *)(0100 *)(0111 *)(1110 *)(0010 *)(0000 * )(00101)(00110)(*****)(*****)(*****)
次に、値を2進数システム(* = 0)に変換します。
(5)(3)(7)(9)(1)(31)(17)(30)(19)(4)(8)(14)(28)(4)(0)(5)(6) )(0)(0)(0)。
次に、最初のチェックサムを計算します。
C1 =(5 + 3 + 7 + 9 + 1 + 31 + 17 + 30 + 19 + 4 + 8 + 14 + 28 + 4 + 0 + 5 + 6)mod64 = 191mod64 = 63 = 111111(ここでチェックサムをミラーリングします) )= 111111(*の代わりに結果の数値を書き込みます)。
(00101)(00011)(00111)(01001)(00001)(11111)(10001)(11110)(10011)(00101)(01001)(01111)(11101)(00101)(00001)(00101)(00110 )(*****)(*****)(*****)
次に、2番目、3番目、4番目のチェックサムを計算します(C1により、一部の位置の値が変更されたことを忘れてはなりません)。
C2 =(31 + 17 + 30 + 19 + 5)mod32 = 102mod32 = 6 = 00110
C3 =(9 + 15 + 29 + 5 + 1)mod32 = 59mod32 = 27 = 11011
C4 =
00110
Xor
11011
=
11101 = 29
結果のパスワードを10進表記で書き込みます。
(5)(3)(7)(9)(1)(31)(17)(30)(19)(5)(9)(15)(29)(5)(1)(5)(6 )(6)(27)(29)
次に、結果の値をエンコードします。
5,3,7,9,1 V、H、U、J、5
9、F、T、5.1 5.6.6、R、T
マイナスの金額でパスワードを生成する例
これらのパラメーターを保存するパスワードを作成します。
2 = 0010
5 = 0101
8 = 1000
11 = 1011
13 = 1101
5931870ポイント/ 10 = 593187 = 10010000110100100011
83886080-[-53724780] = 30161300。 30161300/10 = 3016130 = 1011100000010111000010
レベル2 = 010
オートバイ番号3 = 011
(10010)(10101)(11000)(11011)(11101)(10010)(00011)(01001)(00011)(1010 *)(1110 *)(0000 *)(0101 *)(1100 *)(0010 * )(11010)(11011)(*****)(*****)(*****)
次に、値を2進数システム(* = 0)に変換します。
(18)(21)(24)(27)(29)(18)(3)(9)(3)(20)(28)(0)(10)(24)(4)(26)(27 )(0)(0)(0)
次に、最初のチェックサムを計算します。
C1 =(18 + 21 + 24 + 27 + 29 + 18 + 3 + 9 + 3 + 20 + 28 + 0 + 10 + 24 + 4 + 26 + 7)mod64 = 291mod64 = 35 = 100011(チェックサムをミラーリングする) )= 110001(*の代わりに結果の数値を書き込みます)。
(10010)(10101)(11000)(11011)(11101)(10010)(00011)(01001)(00011)(10101)(11101)(00000)(01010)(11000)(00101)(11010)(11011 )(*****)(*****)(*****)
次に、2番目、3番目、4番目のチェックサムを計算します(C1により、一部の位置の値が変更されたことを忘れてはなりません)。
C2 =(18 + 3 + 9 + 3 + 21)mod32 = 54mod32 = 22 = 10110
C3 =(29 + 0 + 10 + 24 + 5)mod32 = 68mod32 = 4 = 00100
C4 =
10110
Xor
00100
=
10010 = 18
結果のパスワードを10進表記で書き込みます。
(18)(21)(24)(27)(29)(18)(3)(9)(3)(21)(29)(0)(10)(24)(5)(26)(27 )(22)(4)(18)
次に、結果の値をエンコードします。
I、L、O、R、TI、3.9.3、L
T、0、A、O、5 Q、R、M、4、I
- SN = 2位、PC = 5位、RF = 8位、PD = 11位、GV = 13位
- ポイント数(5931870)
- 金額(-53724780)
- 現在のレベル(2)
- オートバイ(3)
- すべての未使用ビットは1に等しい
値を2進数システムに変換します。
2 = 0010
5 = 0101
8 = 1000
11 = 1011
13 = 1101
5931870ポイント/ 10 = 593187 = 10010000110100100011
83886080-[-53724780] = 30161300。 30161300/10 = 3016130 = 1011100000010111000010
レベル2 = 010
オートバイ番号3 = 011
生のパスワードを作成し、4つのチェックサムを計算します。
(10010)(10101)(11000)(11011)(11101)(10010)(00011)(01001)(00011)(1010 *)(1110 *)(0000 *)(0101 *)(1100 *)(0010 * )(11010)(11011)(*****)(*****)(*****)
次に、値を2進数システム(* = 0)に変換します。
(18)(21)(24)(27)(29)(18)(3)(9)(3)(20)(28)(0)(10)(24)(4)(26)(27 )(0)(0)(0)
次に、最初のチェックサムを計算します。
C1 =(18 + 21 + 24 + 27 + 29 + 18 + 3 + 9 + 3 + 20 + 28 + 0 + 10 + 24 + 4 + 26 + 7)mod64 = 291mod64 = 35 = 100011(チェックサムをミラーリングする) )= 110001(*の代わりに結果の数値を書き込みます)。
(10010)(10101)(11000)(11011)(11101)(10010)(00011)(01001)(00011)(10101)(11101)(00000)(01010)(11000)(00101)(11010)(11011 )(*****)(*****)(*****)
次に、2番目、3番目、4番目のチェックサムを計算します(C1により、一部の位置の値が変更されたことを忘れてはなりません)。
C2 =(18 + 3 + 9 + 3 + 21)mod32 = 54mod32 = 22 = 10110
C3 =(29 + 0 + 10 + 24 + 5)mod32 = 68mod32 = 4 = 00100
C4 =
10110
Xor
00100
=
10010 = 18
結果のパスワードを10進表記で書き込みます。
(18)(21)(24)(27)(29)(18)(3)(9)(3)(21)(29)(0)(10)(24)(5)(26)(27 )(22)(4)(18)
次に、結果の値をエンコードします。
I、L、O、R、TI、3.9.3、L
T、0、A、O、5 Q、R、M、4、I
セカンドロードラッシュ
理論
パスワードは8つの位置で構成され、各位置は5ビットで構成され、合計8 * 5 = 40ビットです。 これらのビットには、次のゲームパラメータが格納されます。
- このレベルのトレイル(0〜5)
- 金額(0-327670)
- 現在のレベル(1-5)
- オートバイ(1-16)
ここで、未加工のパスワードの構成を見てみましょう。
(?、M、M、M、C1)(M、M、M、M、C1)(M、M、M、M、C1)(M、M、M、M、C1)(U、U、L 、L、L)(B、B、B、B、C1)(T、T、T、T、T)(C2、C2、C2、C2、C2)
指定
? -常にゼロに等しい。
U-未使用ビット。
Mは金額(0〜327670)の増分= 10です。 金額は10で除算され、結果の数値はバイナリシステムに変換されます。
Lは、2進数システムのレベル番号(1〜5)です。
B-バイナリシステムのオートバイ番号(0〜15)。
オートバイ | 数 |
手裏剣400 | 0 |
パンダ500 | 1 |
手裏剣TT250 | 2 |
パンダ900 | 3 |
バンザイ7.11 | 4 |
バンザイ600 N | 5 |
バンザイ750 N | 6 |
手裏剣1000 N | 7 |
バンザイ7.11 N | 8 |
ディアブロ1000 N | 9 |
パンダ600 | 10 |
バンザイ600 | 11 |
バンザイ750 | 12 |
手裏剣1000 | 13 |
DIABLO 1000 | 14 |
ワイルドシング | 15 |
T-横断したトラック(0〜5)。
高から低へのビットの順序:
4-5番目のトラックの通過を担当します。
3-4番目のルートの通過を担当します。
2-3番目のルートの通過を担当します。
1-2番目のルートの通過を担当します。
0-最初のトラックの通過を担当します。
C1 =(5番目の位置をカウントしない1〜6の位置の合計)mod32(結果の数値は2進数に変換され、ミラーリングされます)。
C2 =((位置1〜6の合計)mod32)XOR 7位置。
コーディング
値のエンコードは、最初の部分と同じです。
パスワード生成の例
これらのパラメーターを保存するパスワードを作成します。
トレイル= 10101
レベル番号3 = 011
オートバイ番号9 = 1001
193,750お金/ 10 = 19375 = 100101110101111
(0100 *)(1011 *)(1010 *)(1111 *)(00011)(1001 *)(10101)(*****)
次に、値を2進数システム(* = 0)に変換します。
(8)(22)(20)(30)(3)(18)(21)(0)
次に、最初のチェックサムを計算します。
C1 =(8 + 22 + 20 + 30 + 18)mod32 = 98mod32 = 2 = 00010(ここでチェックサムをミラーリング)= 01000(*の代わりに結果の数値を書き込みます)。
(01000)(10111)(10100)(11110)(00011)(10010)(10101)(*****)。
次に、2番目のチェックサムを計算します(C1により、一部の位置の値が変更されたことを忘れてはなりません)。
C2 =(8 + 23 + 20 + 30 + 3 + 18)mod32 = 102mod32 = 6mod32 = 00110
00110
Xor
10101
=
10011 = 19
結果のパスワードを10進表記で書き込みます。
(8)(23)(20)(30)(3)(18)(21)(19)
次に、結果の値をエンコードします。
8、N、K、U 3、I、L、J
- 5番目、3番目、1番目のトラックを完了した
- 金額(193,750)
- 現在のレベル(3)
- オートバイ(9)
- すべての未使用ビットはゼロです
値を2進数システムに変換します。
トレイル= 10101
レベル番号3 = 011
オートバイ番号9 = 1001
193,750お金/ 10 = 19375 = 100101110101111
生のパスワードを書き留め、2つのチェックサムを計算します。
(0100 *)(1011 *)(1010 *)(1111 *)(00011)(1001 *)(10101)(*****)
次に、値を2進数システム(* = 0)に変換します。
(8)(22)(20)(30)(3)(18)(21)(0)
次に、最初のチェックサムを計算します。
C1 =(8 + 22 + 20 + 30 + 18)mod32 = 98mod32 = 2 = 00010(ここでチェックサムをミラーリング)= 01000(*の代わりに結果の数値を書き込みます)。
(01000)(10111)(10100)(11110)(00011)(10010)(10101)(*****)。
次に、2番目のチェックサムを計算します(C1により、一部の位置の値が変更されたことを忘れてはなりません)。
C2 =(8 + 23 + 20 + 30 + 3 + 18)mod32 = 102mod32 = 6mod32 = 00110
00110
Xor
10101
=
10011 = 19
結果のパスワードを10進表記で書き込みます。
(8)(23)(20)(30)(3)(18)(21)(19)
次に、結果の値をエンコードします。
8、N、K、U 3、I、L、J
しかし、それだけではありません!
私は何か他のものを準備しました...
デザート用-バナナプリンス
Segaコンソールから少し脱線して、Nes(Dandy)に進みましょう。 このゲームは本当に私の神経を台無しにしました。 誰がプレイしたか、彼は日本語での長い質問を覚えています。そのため、ゲームの経過は地獄に変わります。 その中のパスワードは単純ですが、微妙に強調されています。 ゲームを100%完了するには、4つの鎧を集める必要がありました。 しかし、1つの問題があります。それらを取得するには、たくさんの質問に答える必要がありました。 どのようにインターネットやコードブックを調べても、収集した鎧を保存するパスワードを見つけられませんでした。 そして、それらがなければ、最後のボスはあなたに遠くにたくさんの日本のキャラクターを送ります。 しかし、ビットの割り当てを詳しく調べてみると、ゲームが次のことを節約できることがわかりました。
- 10進数の現在のレベル番号(0〜20)
- 武器番号(0-15)
- アーマー(0-4)
パスワードは8つの位置で構成され、各位置は2ビットで構成され、合計8 * 2 = 16ビットです。
ここで、未加工のパスワードの構成を見てみましょう。
(C、C)(A、L)(L、L)(L、L)(C、C)(G、G)(A、A)(G、G)
指定
C =(1と5を除くすべての位置の合計)バイナリシステム。 チェックサムの最上位2ビットは5番目の位置に書き込まれ、最下位2ビットは1位置に書き込まれます。
Aは、2進数システムの鎧の数(0〜4)です。
Lは、2進数システムのレベル番号(0〜20)です。
レベル | 数 |
1-1 | 0 |
1-2 | 1 |
1-3 | 2 |
2-1 | 3 |
2-2 | 4 |
2-3 | 5 |
3-1 | 6 |
3-2 | 7 |
3-3 | 8 |
4-1 | 9 |
4-2 | 10 |
4-3 | 11 |
5-1 | 12 |
5-2 | 13 |
5-3 | 14 |
6-1 | 15 |
6-2 | 16 |
6-3 | 17 |
7-1 | 18 |
7-2 | 19 |
7-3 | 20 |
G-バイナリシステム内の武器の数(0〜15)。
コーディング
コーディングには、バナナを食べる4度が使用されます。これは数字で示します。
= 0 = 1 = 2 = 3
パスワード生成の例
これらのパラメーターを保存するパスワードを作成します。
4 = 100
20 = 10100
15 = 1111
(**)(11)(01)(00)(**)(11)(00)(11)
次に、値を2進数システム(* = 0)に変換します。
(0)(3)(1)(0)(0)(3)(0)(3)
チェックサムを計算します。
C =(3 + 1 + 0 + 3 + 0 + 3)= 10 = 1010.10(2つの最上位ビット)10(2つの最下位ビット)。
結果のパスワードを10進表記で書き込みます。
(2)(3)(1)(0)(2)(3)(0)(3)
数字をバナナの同等物に変換することは残っています。
- キャラクターは4つの鎧を持っています
- レベル番号(20)
- 武器番号(15)
値を2進数システムに変換します。
4 = 100
20 = 10100
15 = 1111
生のパスワードを書きます:
(**)(11)(01)(00)(**)(11)(00)(11)
次に、値を2進数システム(* = 0)に変換します。
(0)(3)(1)(0)(0)(3)(0)(3)
チェックサムを計算します。
C =(3 + 1 + 0 + 3 + 0 + 3)= 10 = 1010.10(2つの最上位ビット)10(2つの最下位ビット)。
結果のパスワードを10進表記で書き込みます。
(2)(3)(1)(0)(2)(3)(0)(3)
数字をバナナの同等物に変換することは残っています。
おわりに
それでフィニッシュラインに行きました。
何を言いたいですか? さて、この記事が誰かに役立つことを願っています。 読んでくれてありがとう。