Skip to content

Commit

Permalink
aloha
Browse files Browse the repository at this point in the history
  • Loading branch information
akatsuki105 committed Oct 11, 2023
1 parent a7820e5 commit eeef307
Show file tree
Hide file tree
Showing 36 changed files with 1,139 additions and 47 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ pnpm-debug.log*
lerna-debug.log*

node_modules
dist
# dist
dist-ssr
*.local

Expand Down
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) Akatsuki 2023

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
49 changes: 13 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,11 @@
# mmxpg

Megaman X Password Generator (ロックマンX パスワードジェネレーター)
Mega Man X Password Generator (ロックマンX パスワードジェネレータ)

## パスワードの仕組み(Japanese only)

ロックマンXは同じセーブデータを表すパスワードが複数存在します。ここではそのうちの1つのパスワードの仕組みを説明します。

ロックマンXのパスワードが記録するのは24のbool値だけです。この24個のbool値で8体のボスを倒したか倒してないか、どのライフアップを取ったか、どのサブタンクを取ったか、どの強化パーツを取ったかのみを記録しています。

```
Oxxx
xxxx
xxxx
```

この数字は、ボスを倒すたびに影響を受ける。 ただし、この数字は2種類しかない: 4か1だ。 具体的には、ボスを倒した数が偶数か奇数かを記録する。 4は偶数、1は奇数だ。 つまり、3体のボスを倒した場合、その数は1となる、 1になりますが、8体全部倒した場合は4になります。

他の桁の数字もこのように機能する。 ほとんどの場合、ボスとアイテムの組み合わせを記録している。しかし、どれも桁を変化させる要因のリストを持っており、その要因を偶数個発動させたか、奇数個発動させたかによって、桁は常に2つの数字のどちらかになる。

しかし、もうひとつ複雑な問題がある。 各桁は1組の数字しか使えないにもかかわらず、どの組を使うかを変える要素が常に2つあるのだ。左上の桁の例に戻ろう。 先ほども言ったように、ボスを何体倒したかによって4か1のどちらかになるのが一般的だ。 しかし、チルペンギンのステージでハートタンクを回収した場合、使用される数字は4と1ではなく、2と7になる。 つまり、ゲームを起動して2体のボスと戦った場合、この数字は4→1→4と変化するが、その後チルペンギンのステージでハートタンクを回収した場合は2に変化し、その後ボスと戦うたびに7と2の間で反転する。

各桁には、これらの "外部変数"がいくつ影響するかに応じて、 上の例では `4 or 1`である。 ペンギーゴのステージでライフアップを手に入れている場合は`2 or 7`。 アーマー・アルマージのステージでサブタンクを手に入れている場合は`6 or 5`です。 ライフアップとサブタンクの両方をゲットしている場合は `8 or 3`になる。

まとめると、各桁に影響を与える要因は基本的に2種類ある。 メイン・ファクターは、新しいメイン・ファクターを集めるごとに、2つの数字のペアの間で桁が反転する。ごちゃごちゃしていますが、この説明ではよくわからなくても、以下に示すガイドラインを読めば、(比較的)簡単に自分のパスワードを作ることができるはずです。

以下の数字の山に飛び込む前に、すべての用語の意味をよりよく理解しておく必要があると思います。 各パスワードの桁の基本構造は以下の通りである。

```
----------------------------------------------------
| Position (#,#) - N[#,#] X[#,#] Y[#,#] XY[#,#] |
| X Factor: (ボス or アイテム) |
| Y Factor: (ボス or アイテム) |
| Main Factors: (List of bosses and/or items) |
----------------------------------------------------
```

では、そのプロセスを順を追って見ていこう。 まず、パスワードでカバーしたい項目をリストアップします。 次に、各桁を1つずつ確認し、どの数字が各桁に入るかを決定する必要があります。各桁の位置は以下のようになります。

Digits are labeled based on standard graphing coordinates, with the first number representing the horizontal axis and the second representing the vertical axis, numbers increasing as you move right and up. For example, it starts with (1,1), one right and one up.

```
Digit = N[M%2] or X[M%2] or Y[M%2] or XY[M%2]
X, Y を両方満たしているならXY, どっちも満たしていないならN
Expand Down Expand Up @@ -79,7 +46,7 @@ E:
N[5,7] X[3,2] Y[1,8] XY[6,4]
X: オクトパルド💀
Y: 胸パーツ
M: アルマジロ💀, クワンガー💀, ペンギーゴ💀, ナウマンダー💀, アルマジロ🩷, クワンガー🩷, アルマジロ🔋, 腕パーツ
M: アルマジロ💀, クワンガー💀, ペンギーゴ💀, ナウマンダー💀, イーグリード💀, アルマジロ🩷, クワンガー🩷, アルマジロ🔋, 腕パーツ
F:
N[8,2] X[4,7] Y[1,3] XY[6,5]
Expand All @@ -96,7 +63,7 @@ G:
H:
N[2] X[6] Y[8] XY[7]
X: マンドリラー💀
Y: カメリーオ🔋
Y: カメリーオ🩷
I:
N[1,8] X[4,6] Y[3,7] XY[2,5]
Expand All @@ -120,3 +87,13 @@ L:
X: ペンギーゴ💀
Y: マンドリラー🩷
```

## LICENSE

The images are © CAPCOM CO., LTD.

Everything else, and the programming code, is governed by the MIT license.

## 参考

- [Mega Man X Password Guide](https://gamefaqs.gamespot.com/snes/588479-mega-man-x/faqs/52749)
350 changes: 350 additions & 0 deletions docs/assets/index-94384f7e.js

Large diffs are not rendered by default.

Binary file added docs/boss/armored_armadillo.webp
Binary file not shown.
Binary file added docs/boss/boomer_kuwanger.webp
Binary file not shown.
Binary file added docs/boss/chill_penguin.webp
Binary file not shown.
Binary file added docs/boss/flame_mammoth.webp
Binary file not shown.
Binary file added docs/boss/launch_octopus.webp
Binary file not shown.
Binary file added docs/boss/spark_mandrill.webp
Binary file not shown.
Binary file added docs/boss/sting_chameleon.webp
Binary file not shown.
Binary file added docs/boss/storm_eagle.webp
Binary file not shown.
Binary file added docs/favicon.ico
Binary file not shown.
29 changes: 29 additions & 0 deletions docs/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/mmxpg/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<meta name="title" content="ロックマンX パスワードジェネレータ" />
<meta name="description" content="スーパーファミコンのゲーム、ロックマンXのパスワードジェネレータです。" />
<meta name="keywords" content="ロックマン,ロックマンX,パスワード,復活の呪文,ゲーム,パスワードジェネレーター,パスワード生成" />

<meta property="og:url" content="https://akatsuki105.github.io/mmxpg/" />
<meta property="og:site_name" content="ロックマンX パスワードジェネレータ" />
<meta property="og:title" content="mmxpg" />
<meta property="og:description" content="ロックマンX パスワードジェネレータ" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://akatsuki105.github.io/mmxpg/ogp.webp" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="ロックマンX パスワードジェネレータ" />
<meta name="twitter:image" content="https://akatsuki105.github.io/mmxpg/ogp.webp" />

<title>パスワードジェネレータ | ロックマンX</title>
<script type="module" crossorigin src="/mmxpg/assets/index-94384f7e.js"></script>
</head>
<body>
<div id="root"></div>

</body>
</html>
Binary file added docs/ogp.webp
Binary file not shown.
Binary file added docs/password.webp
Binary file not shown.
19 changes: 17 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,10 +1,25 @@
<!DOCTYPE html>
<html lang="en">
<html lang="ja">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MMX Password Generator</title>

<meta name="title" content="ロックマンX パスワードジェネレータ" />
<meta name="description" content="スーパーファミコンのゲーム、ロックマンXのパスワードジェネレータです。" />
<meta name="keywords" content="ロックマン,ロックマンX,パスワード,復活の呪文,ゲーム,パスワードジェネレーター,パスワード生成" />

<meta property="og:url" content="https://akatsuki105.github.io/mmxpg/" />
<meta property="og:site_name" content="ロックマンX パスワードジェネレータ" />
<meta property="og:title" content="mmxpg" />
<meta property="og:description" content="ロックマンX パスワードジェネレータ" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://akatsuki105.github.io/mmxpg/ogp.webp" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:title" content="ロックマンX パスワードジェネレータ" />
<meta name="twitter:image" content="https://akatsuki105.github.io/mmxpg/ogp.webp" />

<title>パスワードジェネレータ | ロックマンX</title>
</head>
<body>
<div id="root"></div>
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
{
"name": "mmxpg",
"homepage": "https://akatsuki105.github.io/mmxpg/",
"private": true,
"version": "0.0.0",
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"build": "tsc && vite build && rm -rf ./docs/ && mv ./dist/ ./docs/",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview",
"postinstall": "typesync"
Expand Down
Binary file added public/boss/armored_armadillo.webp
Binary file not shown.
Binary file added public/boss/boomer_kuwanger.webp
Binary file not shown.
Binary file added public/boss/chill_penguin.webp
Binary file not shown.
Binary file added public/boss/flame_mammoth.webp
Binary file not shown.
Binary file added public/boss/launch_octopus.webp
Binary file not shown.
Binary file added public/boss/spark_mandrill.webp
Binary file not shown.
Binary file added public/boss/sting_chameleon.webp
Binary file not shown.
Binary file added public/boss/storm_eagle.webp
Binary file not shown.
Binary file added public/ogp.webp
Binary file not shown.
Binary file added public/password.webp
Binary file not shown.
Loading

0 comments on commit eeef307

Please sign in to comment.