Super Castlevania IVおよびRock n 'Roll Racingのパスワード生成

こんにちは、ユーザーの皆様。



私は最近、最初と2番目のRoad Rashのパスワードの生成に関する投稿を書きました。 記事へのコメントで、私はゲームRock n 'Roll Racingのパスワードシステムがどのように配置されているかを明確にするように求められました。 これについて、私はあなたと話をしたいと思います。 しかし、私はゲーム「Super Castlevania IV」から始めたいと思います。 さあ、始めましょう。



画像



スーパーキャッスルヴァニアIV



私はSNESのゲームを「クラック」したことはありません。 まあ、1点まで。 私は兄がこのゲームをプレイしているのを見ました そして彼は、Super Castlevania IVのパスワードを生成できれば非常に良いだろうとさりげなく言いました。 考え直すことなく、仕事を始めました。 眠れぬ夜を3回過ごした後、パスワードを保存する方法と方法を理解しました。



理論


パスワードは16個のセル(位置)で構成され、各セルは2ビットで構成され、合計16 * 2 = 32ビットです。 これらのビットには、次のゲームパラメータが格納されます。



ここで、未加工のパスワードの構成を見てみましょう。



*ビットの数は括弧内に示されます。

C4 (1) 、C4 (0) D (1) 、D (0) (1) (0) C2 (1) 、C2 (0)
C6 (1) 、C6 (0) N (15) 、N (14) U1 (1) 、U1 (0) C5 (1) 、C5 (0)
U2 (1) 、U2 (0) C1 (1) 、C1 (0) (1) (0) L (1) 、L (0)
N (13) 、N (12) C3 (1) 、C3 (0) L (3) 、L (2) U3 (1) 、U3 (0)


指定


? -常にゼロに等しい。

U-未使用ビット。

D-(クエスト-1)(1-4)バイナリシステム。 (00-通常の難易度、01-難易度の増加。インターネット上でクエスト3および4のパスワードが見つかりませんでした。何らかの理由でゲームがこのデータを記録します。難易度は上がりませんが、突然、4番目のクエストを完了すると、秘密の結末が開きますか?...ほとんど何も変わらないでしょう。)

Nは、バイナリ表記の名前の値です。 名前の値の合計が初期値から差し引かれます。



*文字の値は角かっこで囲まれています。

* []-スペース。

A(11) B(12) C(13) D(14) E(15) F(16) G(17) H(18) 私(19)
J(20) K(21) L(22) M(23) N(24) O(25) P(26) Q(27) R(28)
S(29) T(30) U(31) V(32) W(33) X(34) Y(35) Z(36) [](0)
1(2) 2(3) 3(4) 4(5) 5(6) 6(7) 7(8) 8(9) 9(10)




L-(レベル番号(0-14)div3)バイナリシステム。



*レベルB-3は3つの部分で構成されています。

レベル 名前の初期値
0 1-1 2040
1 2-1 10240
2 3-1 14340
3 4-1 34826
4 5-1 10256
5 6-1 43026
6 7-1 51226
7 8-1 43042
8 9-1 47142
9 A-1 55343
10 B-1 14388
11 B-3(1) 63543
12 B-3(2) 2104
13 B-3(3) 18489
14 B-4 34874




チェックサム


C1 = N (1) 、N (0) + D (1) 、D (0)

C2 = N (3) 、N (2) + C1 (3) 、C1 (2) + U2 (1) 、U2 (0)

C3 = N (5) 、N (4) + C2 (3) 、C2 (2) + U1 (1) 、U1 (0)

C4 = N (7) 、N (6) + C3 (3) 、C3 (2) + U3 (1) 、U3 (0)

C5 = N (9) 、N (8) + C4 (3) 、C4 (2)

C6 = N (11) 、N (10) + C5 (3) 、C5 (2)



1つのチェックサムからの2つの高位ビットが次のチェックサムに移動するという事実に注意を喚起したいと思います。



コーディング


画像



0(00)-空。

1(01)-x。

2(10)-聖水。

3(11)-ハート。



パスワード生成の例
これらのパラメーターを保存するパスワードを作成します。

  • 名前:「AWL [] VITA」
  • クエスト(4)
  • すべての未使用ビットは1に等しい
  • レベルB-3(2)




値を2進数システムに変換します。


レベル番号(12div3 = 4)= 0100

クエスト(4)= 4-1 = 3 = 11



名前の値を計算します:


AWL [] VITA = 11 + 33 + 22 + 0 + 32 + 19 + 30 + 11 = 158

2104-158 = 1946 = 11110011010

N (15) 、N (14) = 00

N (13) 、N (12) = 00

N (11) 、N (10) = 01

N (9) 、N (8) = 11

N (7) 、N (6) = 10

N (5) 、N (4) = 01

N (3) 、N (2) = 10

N (1) 、N (0) = 10



チェックサムを計算します。


C1 = 10 + 11 = 0101

C2 = 10 + 01 + 11 = 0110

C3 = 01 + 01 + 11 = 0101

C4 = 10 + 01 + 11 = 0110

C5 = 11 + 01 = 0100

C6 = 01 + 01 = 10



受信したデータをテーブルに書き込みます。


10 11 00 10
10 00 11 00
11 01 00 00
00 01 01 11


数字をグラフィック画像に変換することは残っています。





ロックンロールレース



私はこのゲームを長い間「クラック」し、その後ビット解析の方法を使用しませんでした。 したがって、このゲームへのアプローチは少し異なります。



画像



理論


パスワードは、これらのゲームパラメータが保存される12の位置で構成されます。





ここで、選択したゲームパラメータに応じてポジションの値がどのように変化するかを見てみましょう。



難易度 1ポジション 4ポジション
ルーキー +0 Xor5
ベテラン Xor8 Xor1
戦士 XOR16 XOR13


部門 1ポジション 7ポジション
A Xor8 +0
B +0 +2


2ポジション 3位 9ポジション
グリッチ +0 +0 +0
グリッチ +0 XOR16 +4
グリッチ(自己破壊車) Xor1 +0 +8
エアーブレード Xor1 XOR16 +12
マローダー Xor2 +0 +16
ダートデビル Xor2 XOR16 +20
ハバク Xor3 +0 +24
バトルトラック Xor3 XOR16 +28


マシンカラー 2ポジション 8ポジション
Xor20 +0
緑色 XOR16 +1
Xor28 +2
Xor4 +4
グリッチ(ピンク-酸性-緑色) +0 +5
黄色 Xor12 +6


エンジン 1ポジション 10ポジション 11ポジション
1 +0 +0 +16
2 Xor4 +0 +0
3 Xor8 +1 +16
4 Xor12 +1 +0


タイヤ 1ポジション 4ポジション 10ポジション
1 +0 +0 +6
2 XOR16 +0 +4
3 +0 XOR16 +2
4 XOR16 XOR16 +0


アーマー 3位 9ポジション
1 Xor4 +1
2 +0 +0
3 Xor12 +3
4 Xor8 +2


ペンダント 3位 10ポジション
1 +0 +8
2 Xor1 +0
3 Xor2 +24
4 Xor3 +16


ニトロ/ジャンプ 1ポジション 2ポジション 11ポジション
0 +0 +0 +8
1 +0 XOR16 +10
2 Xor1 +0 +12
3 Xor1 XOR16 +14
4 Xor2 +0 +0
5 Xor2 XOR16 +2
6 Xor3 +0 +4
7 Xor3 XOR16 +6


スパイク/鉱山 2ポジション 11ポジション 12ポジション
0 +0 +1 +0
1 Xor2 +1 +8
2 Xor4 +1 +16
3 XOR6 +1 +24
4 Xor8 +0 +0
5 XOR10 +0 +8
6 Xor12 +0 +16
7 XOR14 +0 +24


ミサイル/弾薬 2ポジション 3位 12ポジション
0 +0 +0 +0
1 +0 Xor8 +1
2 +0 XOR16 +2
3 +0 Xor24 +3
4 Xor1 +0 +4
5 Xor1 Xor8 +5
6 Xor1 XOR16 +6
7 Xor1 Xor24 +7


惑星 1ポジション 7ポジション 8ポジション
沼地 +0 +1 +0
新しいモハベ Xor1 +1 +8
Chem VI Xor2 +1 +16
ドラコニス Xor3 +1 +24
グリッチ Xor4 +0 +0
グリッチ Xor5 +0 +8
ニョ XOR6 +0 +16
インフェルノ Xor7 +0 +24


キャラクター 1ポジション 3位 4ポジション 7ポジション
タルキム +0 Xor1 XOR16 +0
ジェイクバッドランス XOR16 Xor1 XOR16 +4
グリッチ +0 Xor1 +0 +8
オラフ(秘密のキャラクター) XOR16 Xor1 +0 +12
サイバーホーク +0 +0 XOR16 +16
ヘビのサンダー XOR16 +0 XOR16 +20
カタリーナライオンズ +0 +0 +0 +24
イヴァンザイファー XOR16 +0 +0 +28




ここで、金額からポジションがどのように変化するかを見てみましょう。



X 1z。 X 2z。 X 3秒。 X 4z。 000ドル



金額を1000で除算し、残りをポジションの変化を決定する必要があります。



1ポジション= XOR(x $ div 200)

2ポジション= XOR(x $ div 100が偶数の場合は3s。+ 0、奇数の場合は+16)

3ポジション= XOR(4z。* 2)

4番目の位置= XOR(x $ div 400)

5番目の位置=((x $ div 100)mod4)XOR((x $ div 20)mod5)

(↓)

(結果の数値は変換されます)

に従って

0→13

1→5

2→29

3→21



6番目の位置=((x $ div 10)mod2)XOR 4z。

(↓)

(結果の数値は変換されます)

に従って

0→12

1→28



コーディング


位置の文字は、値「BCDFGHJKLMNPQRSTVWXYZ0123456789!」を取ります。ここで、B = 0、C = 1 ... 9 = 30 、! = 31です。



パスワード生成の例
これらのパラメーターを保存するパスワードを作成します。

  • 難易度(ベテラン)
  • 部門(A)
  • 車(汚れた悪魔)
  • マシンカラー(赤)
  • 惑星(ニューモハベ)
  • キャラクター(サイバーホーク)
  • アーマー(1)
  • エンジン(3)
  • ペンダント(2)
  • タイヤ(4)
  • スパイク/鉱山(5)
  • ニトロ/ジャンプ(3)
  • ミサイル/弾薬(7)
  • お金($ 1,257,000)


お金を計算します:

1257000/1000 = 1257

1ポジション= 1257 div 200 = 6 = XOR6

2ポジション= 5+(1257 div 100)= 5 + 12(数値が偶数であるため+0)= 5 + 0 = XOR5

3ポジション= 7 * 2 = 14 = XOR14

4ポジション= 1257 div 400 = 3 = XOR3

5ポジション=((1257 div 100)mod4 = 0→13。13XOR(1257 div 20)mod5 = 13 XOR 2 = 15

6ポジション=((1257 div 10)mod2 = 1→28.28 XOR 7 = 27



次に、位置の値をテーブルに書き込みます。

* p。-位置。

1ページ 2ページ 3ページ 4ページ 5ページ 6ページ 7ページ 8ページ 9ページ 10ページ 11ページ 12ページ
XOR6 Xor5 XOR14 Xor3 15 27 +1 +8 +20 +1 +16 +8
Xor8 Xor2 XOR16 Xor1 +0 +0 +16 +0 +1 +0 +14 +7
Xor8 Xor20 Xor4 XOR16 +0 +0 +0 +0 +0 +0 +0 +0
Xor8 XOR10 Xor1 XOR16 +0 +0 +0 +0 +0 +0 +0 +0
XOR16 XOR16 Xor24 +0 +0 +0 +0 +0 +0 +0 +0 +0
Xor1 Xor1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0
Xor1 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0 +0




必要な計算を行い、以下を取得します。

30,8,3,2 15,27,17,8 21,1,30,15



次の行をエンコードします。



9LFD T6WL 0C9T





おわりに


さて、ロックンロールレーシングと混同しないでください。 読んでくれてありがとう。



All Articles