初代熱血硬派くにおくん 総合情報サイト

解析編

解析時の覚書ライクなもの。半端な内容を多分に含みます。
雑記システム編との住み分けは微妙ですが、こちらはさらにマニアックです。

■PC動作の優先順位
■PCが殴った相手の名前
■ガード
■延髄切り
■マッハパンチ
■掴み技
■セーブデータ
■イベント進行フラグ

PC動作の優先順位

◆ 趣旨

発動条件を同時に満たした場合のPC動作の優先順位。

◆ 優先順位

数値の小さいものほど優先的に発動する。

1.くにおの部屋で寝る
2.ガード
3.Aボタン始動イベント(自販機、キオスク等)
4.武器殴り
5.武器拾い
6.引き起こし
7.襟掴み、羽交い締め
8.会話
9.マッハパンチ
10.キック、決めキック
11.ジャンプ
12.武器投げ
13.パンチ、決めパンチ、ビンタ
14.歩行

PCが殴った相手の名前

◆ 趣旨

PCがNPCを殴ったときに、自分の体力ゲージの下に相手の名前&体力ゲージが表示されます。

◆ ゲーム開始時

ゲーム開始時は、PCはNPCを一度も殴っていないため、殴った相手の名前として
次のとおり仮の名前が設定されています(□は空白)。

1Pが殴った相手の名前 = ひでき□
2Pが殴った相手の名前 = ひでき□

◆ 疑問

ひできは一体何者なのでしょうか。

ガード

◆ 定義

本項において、ガードを行う主体となるキャラを「G」、
Gに攻撃するキャラを「A」といいます。

◆ PCのガード(PCがGの場合)

発動までのフロー
1.GのYボタンが入力されている
2.Gが武器を持っていない
3.Gが注目している相手(PCの場合、画面内で一番近くにいる相手)がAである
4.Aの攻撃中フラグがONである
5.GとAが逆方向を向いている(向かい合っているか、背中合わせになっている)
6.Gのキャラ番号(1P=0、2P=1)とAの不明アドレスが一致しない
7.乱数Xを生成する
8.乱数X<Gの素早さである
10.(続く)
考察
PCのガード処理は意図不明な処理が多く、発動することは非常に稀です。

◆ NPCのガード(NPCがGの場合)

発動までのフロー
1.Gが武器を所持していない
2.Gが注目している相手(NPCの場合、ターゲットしている相手)がAである
3.GとAが逆方向を向いている(向かい合っているか、背中合わせになっている)
4.Gの向きとAの不明アドレスとの排他的論理和がネガティブ(128以上)でない
5.GとAとの間合いが 5 未満である
6.Aの攻撃中フラグがONである
7.Aの現在の動作が「ジャンプ」「ジャンプキック」「その他」によって以下分岐


<Aの現在の動作が「ジャンプ」「ジャンプキック」のとき>
8.乱数Xを生成する
9.Gの「何もしない値」(下表1参照)と乱数Xを比較する
10.乱数X<何もしない値の場合、「何もしない」をGの行動として処理終了
11.乱数X≧何もしない値の場合、Gの「しゃがみ値」(下表2参照)と乱数Xを比較する
12.乱数X≧しゃがみ値の場合、「しゃがみ」をGの行動として処理終了
13.乱数X<しゃがみ値の場合、乱数Yを生成する
14.Gの素早さと乱数Yを比較する
15.乱数Y≧Gの素早さの場合、「何もしない」をGの行動として処理終了
16.乱数Y<Gの素早さの場合、「ガード」をGの行動として処理終了


<Aの現在の動作が「その他」のとき>
8.乱数Zを生成する
9.プレイヤー1Pのキャラタイプの「ガード値」(下表3参照)と乱数Zを比較する
10.乱数≧ガード値の場合、「ガード」をGの行動として処理終了
11.乱数<ガード値の場合、「何もしない」をGの行動として処理終了
考察
NPCのガード処理もPC版ほどではありませんが、バグが多いです。

NPCが左向き時に一切ガードできないバグは、4番の処理が原因です。
推測では「GとAが背中合わせになっている場合は発動しない」という命令を
入れるつもりだったと思われます。
しかし、実際はGが右向きの時のみ次の処理に進むようになっています。


また、<Aの現在の動作が「その他」のとき>の9番の処理ですが、
下表3をご覧いただければ分かるとおり、本来はGのキャラタイプによって
ガード頻度を変更するつもりだったと思われます。
しかし、実際はGがNPCであればAが誰であるかにかかわらず、
常にPC1のキャラタイプ(=「くにお」)を参照してしまっており、
「くにお」のガード値である「200」が常に適用されるようになっています。

ちなみに、プレイヤー1Pが不思議な指輪で「女子学生」に変身している場合は
「女子学生」のガード値を参照しますが、同じく「200」のため影響はありません。


以上のような処理となっているため、Gが右向き時の地上技(&延髄切り)に対する
ガード確率は21.875%となります。

しかし、体感上はもっと遥かに高い確率でガードされてしまいます。
その理由は、Aが攻撃を繰り出してからGに命中するまでの間に、
何度もこの処理が行われてしまうためです。

例えばくにおのパンチをギリギリ届く距離から繰り出した場合、一発ヒットするまでに
6回前後この処理が繰り返され、一度でもガードが行動選択されればガードされてしまうため、
結果的にガードされる確率は約 77.3% になってしまいます。
別表集
表1 何もしない値
くに りき 小男 女子 ヤ男 ヤ女 モヒ ト男 ト女 リ1 リ2 リ3 OL オジ オバ 学生 派手 珍走 本田 総長 ポリ
0 0 127 150 90 80 70 127 90 127 90 90 70 100 50 85 90 70 10 30 0
表2 しゃがみ値
くに りき 小男 女子 ヤ男 ヤ女 モヒ ト男 ト女 リ1 リ2 リ3 OL オジ オバ 学生 派手 珍走 本田 総長 ポリ
0 0 200 170 200 145 135 200 200 200 200 200 127 230 70 180 200 155 255 60 255
表3 ガード値
くに りき 小男 女子 ヤ男 ヤ女 モヒ ト男 ト女 リ1 リ2 リ3 OL オジ オバ 学生 派手 珍走 本田 総長 ポリ
200 200 200 200 150 150 128 180 200 200 180 180 150 180 150 128 128 100 128 100 0

延髄切り

◆ PCの発動条件

1.キャラタイプが「くにお」又は「りき」
2.武器を持っていない
3.Yボタンが入力されている
4.ジャンプ中又は吹っ飛び中
5.現在速度が 0 (速度がついている場合はジャンプキックに移行)
6.現在高度が 10 又は 11
7.レベルが 23 以上

◆ NPC

NPCは延髄切りを使用しません。

「くにお」「りき」と同型キャラタイプである「男子学生」は一応使用時の
グラフィックが設定されていますが、無理矢理使用させると「決めパンチ」と
同様に顔の一部が「くにお」に化けてしまいます。

◆ 考察

6番より、発動可能高度が非常にシビアになっています。
特に、垂直ジャンプ中は一瞬で通過してしまうため、発動がかなり困難です。
吹っ飛び中は当該高度に滞在する時間が比較的長いため、出しやすくなっています。

初代は処理落ちが激しいゲームであり、敵が多い場面などでは
毎フレーム必ず入力を受け付けてくれるとは限らないため、
熟達しても100%出せるようにはなりません。

マッハパンチ

◆ 連打数

PCがマッハパンチを発動させるためのYボタンの連打回数を「連打数」と定義します。

◆ 発動ボタン

連打数が 5 以上のときにYボタン又はBボタンを押すとマッハパンチが発動します。

◆ 連打による継続

マッハパンチの発動条件を満たして入力をやめた(6回しかボタンを押さない)場合、
1 カウントでモーションが終了します。

マッハパンチの発動中にYボタン又はBボタンを連打すると、
最大 4 カウントまでモーションが継続し、4 カウント経過でモーションが終了します。

◆ 効果音

マッハパンチの空振り音は、両手武器の空振り音と同じです。

◆ NPC

NPCはマッハパンチを使用しません。

「くにお」「りき」と同型キャラタイプである「男子学生」は使用時のグラフィックが
設定されていて、内部データ的には問題なく使用できます。

◆ 考察

Bボタンでの発動・継続はおそらくバグでしょう。
Yボタンを素早く 5 回連打した直後にBボタンを連打すると分かりやすいです。

なお、連打数のカウントは厳密には1回目が 0、2回目が 1、5回目が 4 になります。
6回目を入力すると、連打数カウント処理が先に行われて 5 になり、
その直後に連打数がチェックされ、 5 以上なのでマッハパンチが発動する
というフローになっています。

マッハパンチ使いのボスキャラがいたら面白そうです。
PCの体力だと瞬殺されそうですが。

掴み技

◆ 前提

本項では、襟掴み及び羽交い締めを併せて「掴み技」と定義します。
腰掛けパンチ、抱きつき及びパワーボム並びに派生技の襟掴みキック、襟掴み投げ、
ジャーマンスープレックスは、本項において「掴み技」に含みません。
また、特に断りのない限りPCの使用する掴み技についての記述となります。

◆ 武器所有時

片手武器所有時は、掴み技のモーション中武器のグラフィックが消滅しますが使用できます。
両手武器所有時は、掴み技は使用できません。

◆ 対ポリさん

ポリさんには、羽交い締めを直接かけることはできません。
襟掴みからの派生でかけることはできます。

不思議な仕様ですが、とりあえずおうみは凄いということです。

◆ 掴み技可能モーション

掴み技は、相手が次のいずれかの動作中のみかけることができます。

1.何もしない
2.歩行
3.グロッキー
4.のけぞり
5.会話

◆ 幻の「羽交い締め落とし」

説明書及び攻略本に記載されている「羽交い締め落とし」について。

羽交い締めからの派生動作は、プログラム上2つ用意されています。
1つはジャーマンスープレックス、もう1つは中身が何もありません。
「羽交い締め落とし」を実装しようとした、又は削除した名残と思われます。
製品版のプログラム上「羽交い締め落とし」は存在しません。

◆ NPC

NPCは、イベントを除き掴み技を使用しません。
ただし、プログラムはほぼ全て実装されており、発動条件が絶対に満たされないため
結果的に使用しないことになっています。意図的かバグかは不明です。

セーブデータ

◆ 領域

通常セーブデータは1〜6番まで作成できますが、データ上は7,8番も存在します。

区分 開始アドレス 終了アドレス
ヘッダ 000 01F
データ1 020 11F
データ2 120 21F
データ3 220 31F
データ4 320 41F
データ5 420 51F
データ6 520 61F
データ7 620 71F
データ8 720 7FF

◆ セーブデータの内容

データ1のセーブデータの内容をアドレスごとに記載します(データ2以降は+100h)。

アドレス 内容 ゲーム中RAMアドレス
(1Pの場合)
備考
020〜027 ファイル名 2byte*4文字
028〜029 チェックサム
02A $0100
02B レベル $0102
02C 最大体力 $0104
02D 最大気力 $0106
02E〜030 経験値 $0108〜$010A
031 体力 $010E
032 気力 $0110
033 $0112
034 素早さ $0114
035 攻撃力 $0116
036 守備力 $0118
037 運の良さ1 $011A ロード時にリセットされるので無意味
038 運の良さ2 $011C
039 $1BDB
03A $1BDD
03B $1BDF
03C $1BE1
03D 武器 $01E5
03E 裏地 $01E7
03F $01E9
040 体調 $01EB
041 装備品の素早さ $01F2
042 装備品の攻撃力 $01F4
043 装備品の守備力 $01F6
044 $1BF7
045 プリペイドカード度数 $01C1
046 タクシーカード度数 $01C3
047 貴重品所持数 $011E
048〜067 所持貴重品 $011F〜$013E 32(20h)個まで記録できるが、作中では9個しか入手しない
068 アイテム所持数 $013F
069〜088 所持アイテム $0140〜$015F 32(20h)個まで記録できるが、システム上10個までしか持てない
089〜0A8 未使用領域 $0160〜$017F
0A9 進行フラグ $1D0C シナリオの進行状況
0AA 同行者 $1B89 00h:不在、01h:ひろし、02h:みほ、04h:うらべ
0AB 大阪港行けるフラグ $1D0D 81h以上なら行ける
0AC 分岐 $1DDB 00h:ひろしの頼みを聞いた、01h:断った
0AD 分岐 $08D8 00h:わだに協力、01h:わだを倒した
0AE $08DA 未使用分岐?
0AF 分岐 $08D9 00h:連合ルート、01h:同盟ルート
0B0 $1BE4 未使用分岐?
0B1 固定値 $7846 54h
0B2 固定値 $7847 4Ah
0B3 固定値 $7848 43h
0B4〜11F 未使用領域 セーブ時に00hで埋める

イベント進行フラグ

◆ フラグ表

$1D0C 格納場所 ポインタ 参照先 CP 次に開始するイベント
00 $02:0200 00 00 - -
01 $02:0202 66 80 $02:0266 デモ
02 $02:0204 FC 81 $02:03FC オープニング
03 $02:0206 D3 88 $02:0AD3 くにおが来るまで待とう
04 $02:0208 C2 8F $02:11C2 ひろしの頼みを聞いた朝〜ひろしが迎えに来る
05 $02:020A 10 95 $02:1710 ひろしの頼みを断った朝〜くにおの部屋によしひろ登場
06 $02:020C F3 95 $02:17F3 ウメチカ西でひろしが連合にリンチされ入院
07 $02:020E A7 99 $02:1BA7 ひろし入院だけで済みそうだって
08 $02:0210 68 9E $02:2068 もんま一味との対決〜梅田部隊全滅まで
09 $02:0212 FD A3 $02:25FD くにおの部屋で待っているみほ1回目〜よしひろに同盟の集合場所を教える
0A $02:0214 CA A5 $02:27CA 心斎橋での集会1回目
0B $02:0216 01 AA $02:2C01 地下駐車場のとうやま
0C $02:0218 16 AB $02:2D16 梅田地下線路の連合集会所
0D $02:021A 79 AB $02:2D79 なかはら
0E $02:021C B2 AB $02:2DB2 連合集会所 地下2Fの違う扉に入る(敵もいないし何も起きない)
0F $02:021E BB AB $02:2DBB 連合集会所 地下3Fに入る
10 $02:0220 56 B0 $02:3256 くにおの部屋で待っているみほ2回目(心斎橋まで同行)
11 $02:0222 18 B1 $02:3318 上に同じ
12 $02:0224 94 B1 $02:3394 心斎橋での集会2回目
13 $02:0226 76 AA $02:2C76 くにおの部屋で待っているみほ2回目 ほくとを倒していないとき(※CPにすると無限ループでハマる)
14 $02:0228 00 00 - -
15 $02:022A 1E B6 $02:381E うらべくんは町の様子を調べてるわ
16 $02:022C F7 BA $02:3CF7
17 $02:022E 44 BD $02:3F44 うらべみほと一緒に下水道に突入した瞬間の待ち伏せイベント
18 $02:0230 01 BE $02:4001 けんじてらだともみの待ち伏せ(※CPにするとこうじの部屋で戦闘になる)
19 $02:0232 70 BE $02:4070 えびぬまグループの待ち伏せ(※CPにするとこうじの部屋でイベント開始してハマる)
1A $02:0234 3E BF $02:413E 難波到着
1B $02:0236 80 C2 $02:4480 拉致されている同盟に会いに行く
1C $02:0238 4F C9 $02:4B4F
1D $02:023A D0 C9 $02:4BD0
1E $02:023C 00 00 - -
1F $02:023E B9 CA $02:4CB9 心斎橋での集会3回目orわだへの報告
20 $02:0240 7F CE $02:507F
21 $02:0242 79 D0 $02:5279 恵比須町のまさきの部下に会う
22 $02:0244 6E D2 $02:546E なるみに会う
23 $02:0246 28 D3 $02:5528 よこやまにトレインカードもらう
24 $02:0248 75 D3 $02:5575
25 $02:024A 5D D4 $02:565D 甲子園のまさきに会う
26 $02:024C 65 D8 $02:5A65 ホテル大阪襲撃事件
27 $02:024E 71 DB $02:5D71 難波決戦
28 $02:0250 51 DF $02:6151 恵比須町襲撃事件 通天閣本通りのバトル
29 $02:0252 6F E1 $02:636F 恵比須町襲撃事件 通天閣2Fのバトル
2A $02:0254 B3 F2 $02:74B3 大阪港最終決戦
2B $02:0256 61 F5 $02:7761 エンディング
2C $02:0258 38 FA $02:7C38 スタッフロール
2D $02:025A 00 00 - -
2E $02:025C 00 00 - -
2F $02:025E 00 00 - -
30 $02:0260 00 00 - -
31 $02:0262 00 00 - -
32 $02:0264 66 80 $02:0266 フリーズ

◆ 解説

ゲーム中の$1D0Cの値に対応して、次にどのイベントからゲームが進行するかが決定される。
「格納場所」及び「参照先」のアドレスは、ROMヘッダ無しの場合-200h。

「CP」(チェックポイント)は、セーブ時に保存されるかどうか、あるいは死亡時にそこから再開されるかどうか。
例えば、$1D0C の 12h〜1Ah あたりを見ると、心斎橋に集合してから難波でわだイベントを終了するまでに
多くのフラグが用意されていることが分かるが、わだイベントを終了するまでの道中で死亡すると
CPに設定されている12h(心斎橋での集会2回目)まで戻されてしまう。

50番目(32h)のポインタが$02:0264〜$02:0265に格納されており、$02:0266からはイベントの中身が格納されている。
フラグは50個(初期値を考慮しても49個)まで作成できるが、欠番らしきものも多く実際には40個前後しか使われていない。
また、0Ehなど、明らかに無意味なものもあり。

■トップに戻る