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





おわりに



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



All Articles