Prince of Persiaゲームシリーズのパスワード生成

こんにちは、ユーザーの皆様。
今日は、すばらしいゲームのシリーズについてお話ししたいと思います。 NESバージョンのおかげで多くの人が彼女に会いました。DOSでペルシャの王子を見た人もいれば、セガジェネシスでペルシャの王子を演じた人もいました。 最初の部分は、多数の異なるゲームプラットフォームに移植されました。 このためにいくつのパスワードシステムが発明されましたか? そして、第二部にはいくつのポートがありましたか? どのパスワードがありましたか?
これについてお話したいと思います。

プリンスオブペルシャ(セガマスターシステム/セガゲームギア)


画像

理論


パスワードは6つの位置で構成されます。 これらの位置は、これらのゲームパラメータを保存します。

世代

1ポジション=((レベル-1)+ランダム)mod26
2位置=((時間div10)+ランダム)mod26
3位置=((時間mod10)+ランダム)mod26
4ポジション=(ライフ+ランダム)mod26
5位置=ランダム
6ポジション=((ポジション1から5の合計)+ 10)mod26

コーディング

位置のシンボルは、値「ABCDEFGHIJKLMNOPQRSTUVWXYZ」を取ります。ここで、A = 0、B = 1 ... Y = 24、Z = 25です。

パスワード生成の例
これらのパラメーターを保存するパスワードを作成します。
  • レベル(12)
  • ライフ(6)
  • 時間(59)
  • ランダム(18)

計算します:
1)
1ポジション=((12 -1)+ 18)mod26
2ポジション=((59 div10)+ 18)mod26
3ポジション=((59 mod10)+18)mod26
4ポジション=(6 + 18)mod26
5ポジション= 18
6ポジション= 10

2)
1ポジション= 3
2ポジション= 23
3ポジション= 1
4ポジション= 24
5ポジション= 18
6ポジション=(3 + 23 + 1 + 24 + 18 + 10)mod26 = 1

次に、結果の値をエンコードします。
Dxbysb

興味深いバグ


このゲームにはバグがあり、それによって不滅になることができます。 しかし、説明する前に、レベルアーキテクチャについて説明します。 条件付きで画面を3つのフロアに分割します。

階数
画像

王子が1から7まで住んでいる場合、2階から1階に落ちても、命は無駄になりません。 そして、3フロアから1フロアに落ちると、1ライフが消費されます。 0の場合、反対のことが起こります。 2階から1階に落ちると王子は死に、3階から1階に落ちるとバグが発生します:ゲームは王子に8人の命を与えます(最大7人であることを忘れないでください)。

8人の命
画像

手術後、王子は自分にダメージを与えることなく3階と2階からジャンプすることができます(4階に着くと王子は死にます)。 また、王子は敵の攻撃に対して無敵です(武器が彼の手にある場合)。 レベルを完了すると、バグは消え、王子の命は再びゼロになります。 そして、あなたがゼロライフでガードを攻撃した場合、彼は単にあなたを無視し、彼を殺すことは不可能になります。

ゴーストプリンス
画像

ここにある。


プリンスオブペルシャ(ゲームボーイ/ゲームボーイカラー)


画像

理論


パスワードは8桁で構成されています。 これらの位置は、これらのゲームパラメータを保存します。

注:レベル7では、パスワードを作成できません。

世代

1ポジション=(4ポジション+ 7ポジション+ 8ポジション)mod10
2ポジション=(5ポジション+ 6ポジション)mod10
3ポジション=(7ポジション+ 8ポジション)mod10
4ポジション=ライフ
5ポジション=時間mod10
6位=時間div10
7ポジション= mod10レベル
8ポジション= div10レベル

コーディング

演算はすべての位置に適用されます:XOR5。この演算を実行した後、2桁の数字が得られたら、4を引きます。

パスワード生成の例
これらのパラメーターを保存するパスワードを作成します。
  • レベル(9)
  • ライフ(7)
  • 時間(35)

計算します:
1)
1ポジション= 0
2ポジション= 0
3ポジション= 0
4ポジション= 7
5ポジション= 35 mod10
6位= 35 div10
7ポジション= 9 mod10
8ポジション= 9 div10

2)
1ポジション=(7 + 9 + 0)mod10 = 6
2ポジション=(5 + 3)mod10 = 8
3ポジション=(9 + 0)mod10 = 9
4ポジション= 7
5ポジション= 5
6ポジション= 3
7ポジション= 9
8ポジション= 0

次に、結果の値をエンコードします。
6 XOR 5 = 3
8 XOR 5 = 13-4 = 9
9 XOR 5 = 12-4 = 8
7 XOR 5 = 2
5 XOR 5 = 0
3 XOR 5 = 6
9 XOR 5 = 12-4 = 8
0 XOR 5 = 5

準備ができたパスワード:39820685



プリンスオブペルシャ(セガジェネシス)


画像

理論


パスワードは6つの位置で構成されます。 これらの位置は、これらのゲームパラメータを保存します。

米国版:

EUバージョン:

このゲームをプレイする場合は、次のようにEUバージョンを選択することをお勧めします。

世代

パスワードを条件付きで2つの部分に分割します(各部分は3つの位置で構成されます)。

最初の部分は時間を節約します:
(10545 *時間)mod 17576

10 CCの結果の数値は26 SS(SS-数値システム)に変換されます。
次に、取得した値をミラーリングする必要があります。 受信した「パスワード」の長さが3文字未満の場合、必要な数のゼロが右側に追加されます。

2番目の部分は、時間、命の数、レベルを節約します。
((10545 *時間)+(14157 *(レベル1))+(5145 *寿命))mod 17576

10 CCの結果の数値は26 CCに変換されます。 次に、取得した値をミラーリングする必要があります。 受信した「パスワード」の長さが3文字未満の場合、必要な数のゼロが右側に追加されます。

コーディング

位置のシンボルは、値「ABCDEFGHIJKLMNOPQRSTUVWXYZ」を取ります。ここで、A = 0、B = 1 ... Y = 24、Z = 25です。

パスワード生成の例
これらのパラメーターを保存するパスワードを作成します。
  • レベル(12)
  • ライフ(6)
  • 時間(39)

計算します:

パスワードの最初の部分:
(10545 * 39)mod 17576 = 411255 mod 17576 = 7007
7007(10 SS)= 10.9.13(26 SS)
結果の値をミラーリングします。
10,9,13 = 13,9,10

パスワードの2番目の部分:
((10545 * 39)+(14157 *(12-1))+(5145 * 6))mod 17576 =(411255 + 155727 + 30870)mod 17576 = 268
268(10 SS)= 10.8(26 SS)
結果の値をミラーリングします。
10.8 = 8.10
右にゼロを追加します。
8,10,0

次に、結果の値をエンコードします。
13,9,10,8,10,0 = NJKIKA

興味深いバグ


このゲームにはバグがあり、それによって不滅になることができます。 有効にするには、EUバージョンで有効期間がゼロのパスワードを入力する必要があります。 今、王子は敵を恐れていません(主なものは武器を取り除くことではありません)。 しかし、バグの活性化に伴い、プレーヤーには1つの問題が発生します。 あなたがすべての命の損失を脅かす大きな高さから落ちた場合、何も起こりません。 しかし、王子が人生を過ごすべき高さから落ちると、ゲームがフリーズし、画面が赤くなります。


プリンスオブペルシャ(SNES)


画像

だから、最初のペルシャの王子の最良の実装について話す時が来ました(私の謙虚な意見では)。

以前のすべてのバージョンと比較して、SNESはよりカラフルな場所を作り、受け流しを改善し、初期レベルを部分的に変更し、多くの新しいステージを追加しました(合計20)。 プレーヤーが苦しむことがないように、時間は120分に延長されます(好きなだけプレイします)。

理論


パスワードは7つの位置で構成され、各位置は5ビットで構成され、合計7 * 5 = 35ビットです。 これらのビットには、次のゲームパラメータが格納されます。

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

(? (0) 、S (0) 、L (3) 、T (0) 、T (7) )(C1 (0) 、S (1) 、L (2) 、T (1) 、T (6 ) )(C2 (0) 、S (2) 、L (1) 、T (2) 、T (5) )(C3 (0) 、S (3) 、L (0) 、T (3) 、T (4)

(C4 (0) 、S (4) 、U (0) 、T (8) 、T (9) )(C4 (1) 、T (10) 、T (11) 、T (12) 、T (13 ) )(C4 (2) 、C4 (3) 、C4 (4) 、T (14) 、T (15)

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

指定

S-バイナリCCのレベル番号((1-20)-1)
L-バイナリCCのライフ数(0〜15)
U-未使用ビット。
? -常にゼロに等しい。
T-ゲームに費やした時間(0〜7200)。
特別な式に従って、時間はパスワードに書き込まれます。

(time * 7)+(time mod60≠0の場合は5)+(5 *((ti​​me div60)-1))+ random(0-6 +((time mod60 = 0の場合は5)または(14534 if time div 7200 = 1))))

C1 = S(1)XOR S(4)XOR L(0)XOR L(1)XOR T(0)XOR T(1)XOR T(2)XOR T(5)XOR T(7)XOR T(8 )XOR T(10)XOR T(13)XOR T(15)XOR U(0)XOR 1

C2 = S(1)XOR S(2)XOR S(3)XOR L(0)XOR L(2)XOR L(3)XOR T(1)XOR T(4)XOR T(5)XOR T(8 )XOR T(9)XOR T(10)XOR T(12)XOR T(14)XOR T(15)

C3 = S(0)XOR S(1)XOR S(3)XOR L(2)XOR T(2)XOR T(3)XOR T(5)XOR T(6)XOR T(7)XOR T(8 )XOR T(9)XOR T(11)XOR T(14)XOR U(0)

C4 = S(0)、L(3)、T(0)、T(7)
+ S(1)、L(2)、T(1)、T(6)
+ S(2)、L(1)、T(2)、T(5)
+ S(3)、L(0)、T(3)、T(4)
+ S(4)、U(0)、T(8)、T(9)
+ T(10)、T(11)、T(12)、T(13)
+ 0、0、T(14)、T(15)

コーディング

米国/ EU:「BTL3GY7Q9CVM4HZ8R + DWN5J12S!FXP6K」。
JP:「AIQYEMU34BJRZFNVW5CKS1GOPX6DLT2H」

パスワード生成の例
これらのパラメーターを保存するパスワードを作成します。
  • レベル(15)
  • 人生(13)
  • 時間(95.00)または(5700秒)
  • 未使用ビットがアクティブ化されました

値を2進数システムに変換します。
レベル= 15-1 = 14 = 01110
寿命= 13 = 1101

時間を計算します:
時間= 7200-5700 = 1500
(1500 * 7)+(0、1500 mod 60 = 0のため)+(5 *(25-1))+ランダム(1500 mod 60 = 0の場合、ランダム= 0-6 + 5 = 0-11。ランダム= 11を選択します。
10500 + 120 + 11 = 10631 = 0010100110000111

チェックサムを計算します。
C1 = 1 XOR 0 XOR 1 XOR 0 XOR 1 XOR 1 XOR 1 XOR 0 XOR 1 XOR 1 XOR 0 XOR 1 XOR 0 XOR 1 XOR 1 = 0
C2 = 1 XOR 1 XOR 1 XOR 1 XOR 1 XOR 1 XOR 1 XOR 0 XOR 0 XOR 1 XOR 0 XOR 0 XOR 0 XOR 0 XOR 0 = 0
C3 = 0 XOR 1 XOR 1 XOR 1 XOR 1 XOR 0 XOR 0 XOR 0 XOR 1 XOR 1 XOR 0 XOR 1 XOR 0 XOR 1 = 0
C4 = 0111 + 1110 + 1010 + 1100 + 0110 +0101 + 0000 = 110110

結果のパスワードをバイナリC.Sで記述します。
(00111)(01110)(01010)(01100)(00110)(10101)(10100)

結果のパスワードを10進数のC.Sで記述します。
(7)(14)(10)(12)(6)(21)(20)

次に、結果の値をエンコードします。
米国/ EU:QZV475N
JP:3NJZU1S



プリンスオブペルシャ2:影と炎


最初の部分は非常に人気があります。 続編は時間の問題でした。 そして4年後、続編が登場しました。 しかし、新しいパートは、最初のパートを授与した拍手の嵐を見つけませんでした。 そして、少数のゲームプラットフォームに移植しました。 なんて残念! 2番目の部分は1番目の部分よりも優れていると思います。 現在、王子は単調な暗い場所ではなく、ペルシャ全体を旅しています。 しかし、十分な歌詞は、ビジネスに取り掛かる時です。

ゲームは、ゲームプレイをパスワードで保存する2つのポートを取得しました。 これらのポートはひどいものです(DOSバージョンをよりよく再生できます)。 SNESバージョンは不器用であることが判明しました。音楽がガタガタ鳴り、音が不快で、ゲームプレイが殺され、さらに、ゲームカットレベル14で、ヤッファーとの戦いが行われるはずです。

セガジェネシスのバージョンは最高です。 このゲームは公式にリリースされていないため、セガの海賊カートリッジの助けを借りてしか見ることができませんでした。 そして、レベル9に達して、馬の像のバグのために、このレベルが通過できないことを発見したときの私の失望は何でしたか。 ゲームを完了することはできますが、このためにはレベル10のパスワードが必要です...しかし、パスワード帳では、このゲームはそうではありませんでした。


プリンスオブペルシャ2:影と炎(SNES)


画像

理論


パスワードは6つの位置で構成され、各位置は4ビットで構成され、合計6 * 4 = 24ビットです。 これらのビットには、次のゲームパラメータが格納されます。

US / EUバージョン:

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

(S (3) 、S (2) 、S (1) 、S (0) )(L (3) 、L (2) 、L (1) 、L (0) )(T1 (3) 、T1 ( 2) 、T1 (1) 、T1 (0) )(T2 (3) 、T2 (2) 、T2 (1) 、T2 (0)

(C1 (3) 、C1 (2) 、C1 (1) 、C1 (0) )(C2 (3) 、C2 (2) 、C2 (1) 、C2 (0)

指定

S-(レベル-1)バイナリS.S.
Lは、バイナリS.Sの生存数(1〜15)です。
T1-バイナリC.S.の1つの値(0〜15)
T2-バイナリC.S.の2値(0-15)
1値-時間単位の数(1の10の数は2の値になります)。
2値-数十回の数(数十の2の値の数は数百の数になります)。
C1 =(位置1から3の合計)mod16
C2 =((位置1から3の合計)div16)+ 4位置

コーディング

位置の文字は、値「BCDFGHJKLMNPRTVW」を取ります。ここで、B = 0 ... W = 15です。

時間とパスワードのパフォーマンスを節約する機能:

考えてみると、すべてが単純です。1つの位置が時間mod10を担当し、もう1つの位置が時間div10を担当し、最大時間は99です。しかし、すべてがそれほど単純ではありません。 単位と10の最大値はパスワードでチェックされません。 これはどういう意味ですか? パスワードでは、10の数と単位の数を0から15に設定できます。ユニットの数が15のパスワードを作成すると、5単位があり、1が10の数になります。同様に、10の数が15のパスワードを作成すると、 10は5になり、1は数百になります。

最大時間は次のとおりです。

150
+015
=
165

しかし、上記では、最大値= 164であることを既に説明しました。そして、なぜですか? これはチェックサムによるものです。 C2≥16の場合、パスワードは機能しません。 この点については後ほど説明しますが、今度はパスワードの生成に進みます(さらにナレーションを理解するために、パスワード生成の例を読むことをお勧めします)。

パスワード生成の例
これらのパラメーターを保存するパスワードを作成します。
  • レベル(2)
  • 人生(1)
  • 時間(163)

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

レベル= 2-1 = 1 = 0001
寿命= 1 = 0001

時間を計算します:

163 = 150 + 13
1値= 13 = 1101
2値= 15 = 1111

生のパスワードを書き留め、2つのチェックサムを計算します。

(0001)(0001)(1101)(1111)(****)(****)

C1 = 0001 + 0001 + 1101 = 1111
C2 =(0001 + 0001 + 1101)mod16 + 1111 = 0000 + 1111 = 1111

(0001)(0001)(1101)(1111)(1111)(1111)

結果のパスワードを10進数のC.Sで記述します。

(1)(1)(13)(15)(15)(15)

次に、結果の値をエンコードします。

CCTWWW

まとめ


CCTWWWパスワードを作成しました。 レベルを1上げると、パスワードは機能しません。 C2は16になります。アイドルパスワードはDCTWBBのようになります。 次に、「シラミ用」というゲームをチェックしましょう。 2番目のレベルは非常に短いため、時間を無駄にせずに完了できます。 レベルに合格した場合、ゲームはどのパスワードを提供しますか?

突然、私が明らかにしていない秘密がパスワードシステムにありますか? もしも...

パスワード
画像

...これが感染です。 ゲームでは、ゲームプレイがひどいだけでなく、パスワードシステムも未完成です。


プリンスオブペルシャ2:影と炎(セガジェネシス)


画像

理論


パスワードは5つの位置で構成されます。 これらの位置は、これらのゲームパラメータを保存します。


世代

1ポジション=(レベル)または(レベル(1-7)+15)
2位置=(time mod10)または(time mod10 + 10)または(time mod10(0-2)+ 20)
3ポジション=(1ポジション+ 2ポジション+ 4ポジション+ 5ポジション)mod23
4位置=(時間div10)または(時間div10 + 10)または(時間div10(0-2)+ 20)
5ポジション=(寿命-1)または(寿命(1-11)+ 11)

コーディング

位置のシンボルは、値「HFMGRANBPWTEIZVQDLYSKCX」を取ります。ここで、H = 0、F = 1 ... C = 21、X = 22です。

パスワード生成の例
これらのパラメーターを保存するパスワードを作成します。
  • レベル(11)
  • ライフ(10)
  • 時間(92)

計算します:

最初のステップ:
1ポジション=レベルは、2つの式のいずれかに従って保存されます。 レベルは7より大きいため、最初の式(11)でのみデータを保存できます。
2位置=時間は、3つの式のいずれかに従って保存されます。 92 mod10 =2。この値は任意の式を使用してエンコードでき、3番目(2 + 20 = 22)を選択します
3ポジション= 0
4位置=時間は、3つの式のいずれかに従って保存されます。 92 div10 =9。この値は、最初と2番目の式を使用してのみエンコードでき、2番目(9 + 10 = 19)を選択します
5ポジション=命は2つの式のいずれかに従って保存されます。 この値は任意の式を使用してエンコードでき、2番目(10 + 11 = 21)を選択します。

2番目のステップ:
1ポジション= 11
2ポジション= 22
3位置=(11 + 22 + 19 + 21)mod 23 = 4
4ポジション= 19
5ポジション= 21

次に、結果の値をエンコードします。
EXRSC


おわりに


それで、ゲームのリストは終わりました。 さて、幸運を祈ります。

Source: https://habr.com/ru/post/J309722/


All Articles