他者の解析結果を適当にパクって、さもオリジナルであるかのようにハックロムをリリースする blog 。とりあえず、 FC 版のファミスタだけです。悪しからず。
先日以来、 5 ~ 6 年遅れでようやくプログラムをいじるようになりました。
と申しましても、掲示板にて公開されているルーチンとかを参照してゴチャゴチャやってるだけですが。
これまで、内部防御率 / FF ( = 防御率 25.50 )の確率で顔色が悪化するようにして、さらに顔色の違いで条件を分岐して左右の変化球を無効にしたりしてます( ← こちらは近日公開です。)。
さて、本題。
COM の代打選択をランダムにする事は一応できたのですが、 CANCEL を何度か繰り返す事があって実用的にはどうなのさ? という状況です。
結論から言うと、何とかならないの? という話です。
現状の改変箇所は、こんな感じです。
最も単純な初期型です。
0x13319 : 85 23 86 24 A0 00 B1 23 => 20 81 BF EA EA EA EA EA
0x13F91 : 85 23 86 24 20 1B EB 29 0F A8 B1 23 60
(使える空き地がここしか無い ... 。)
20 1B EB で乱数ルーチンにジャンプさせ、 29 0F で 00 ~ 0F の値をランダムに取得し、値を A8 で Y レジスタにコピーしております。
しかし、ここで問題があります。
下記の「 CANCEL 無限ループ」を避けたいのです。
ところで、 0x1331E の 00 を 00 ~ 0F に書き換えると、以下のようになります。
さて、どうしよう ... 。
初心者だから何か致命的な勘違いをしているのかな ... ?
と申しましても、掲示板にて公開されているルーチンとかを参照してゴチャゴチャやってるだけですが。
これまで、内部防御率 / FF ( = 防御率 25.50 )の確率で顔色が悪化するようにして、さらに顔色の違いで条件を分岐して左右の変化球を無効にしたりしてます( ← こちらは近日公開です。)。
さて、本題。
COM の代打選択をランダムにする事は一応できたのですが、 CANCEL を何度か繰り返す事があって実用的にはどうなのさ? という状況です。
結論から言うと、何とかならないの? という話です。
現状の改変箇所は、こんな感じです。
最も単純な初期型です。
0x13319 : 85 23 86 24 A0 00 B1 23 => 20 81 BF EA EA EA EA EA
0x13F91 : 85 23 86 24 20 1B EB 29 0F A8 B1 23 60
(使える空き地がここしか無い ... 。)
20 1B EB で乱数ルーチンにジャンプさせ、 29 0F で 00 ~ 0F の値をランダムに取得し、値を A8 で Y レジスタにコピーしております。
しかし、ここで問題があります。
下記の「 CANCEL 無限ループ」を避けたいのです。
ところで、 0x1331E の 00 を 00 ~ 0F に書き換えると、以下のようになります。
# | Hex | 代打選択 |
1 | 00 | 1 人目 |
2 | 01 | 1 人目 |
3 | 02 | 1 人目 |
4 | 03 | 1 人目 |
5 | 04 | 1 人目 |
6 | 05 | 1 人目 |
7 | 06 | 1 人目 |
8 | 07 | 1 人目 |
9 | 08 | 1 人目 |
10 | 09 | 2 人目 |
11 | 0A | 3 人目 |
12 | 0B | 4 人目 |
13 | 0C | 5 人目 |
0D | CANCEL 無限ループ | |
0E | CANCEL 無限ループ | |
0F | 1 周して 1 人目 |
- ベンチ入りの野手は #9 ~ #13 で、 08 ~ 0C だけを入力したい。
- 代打を使うたびに人数が減ってゆき、上記の 1 だけだとまた CANCEL 無限ループが発生する(該当する選手がいない?)ので、人数減に対応したい。
- 0x13310 の近傍( Bank 09 と 0F )に空きが無い為、拡張するなら他の箇所を使わないと対応不可。
さて、どうしよう ... 。
初心者だから何か致命的な勘違いをしているのかな ... ?
PR
この記事にコメントする
無題
>致命的な勘違い
8523 Aの値を$23にストア
8624 Xの値を$24にストア
A000 Yの値を00にする
B123 Aの値を$23,Yに(Y=01で$24の値)
F007 ゼロフラグがオンなら→8CE406へ
C8 Yを1加算(Y=00ならY=01になる)
C00D Yの値と0Dを比較
90F7 キャリーフラグがオンなら→A000へ
A040 Yの値を40に
8CE406 Yの値を$06E4にストア
という流れ
8523 Aの値を$23にストア
8624 Xの値を$24にストア
A000 Yの値を00にする
B123 Aの値を$23,Yに(Y=01で$24の値)
F007 ゼロフラグがオンなら→8CE406へ
C8 Yを1加算(Y=00ならY=01になる)
C00D Yの値と0Dを比較
90F7 キャリーフラグがオンなら→A000へ
A040 Yの値を40に
8CE406 Yの値を$06E4にストア
という流れ
Re:無題
約 5 年ぶりと思います。ご健在で何よりです。
わざわざコメントをありがとうございます。
正確に理解するのは大変ですが、とりあえず C8 を乱数の値に置換する方向でいじっています。
この続きの記事も近々に投稿しますので、もしよろしければ、ご覧ください。
失礼いたします。
< 追記 20140524 >
続きはこちらです。 => http://haikintsuu.blog.shinobi.jp/Entry/115/
わざわざコメントをありがとうございます。
正確に理解するのは大変ですが、とりあえず C8 を乱数の値に置換する方向でいじっています。
この続きの記事も近々に投稿しますので、もしよろしければ、ご覧ください。
失礼いたします。
< 追記 20140524 >
続きはこちらです。 => http://haikintsuu.blog.shinobi.jp/Entry/115/
プロフィール
HN:Yimdoic (いむどいっく)
性別:男性
自己紹介:
ROM 本体はありません。どうにかして自力で入手して下さい。
ここでは ips ファイルを扱っております。これについても各自で調べて下さい。
ここでは ips ファイルを扱っております。これについても各自で調べて下さい。
カウンター
Bookmarks
個人的にパクリ倒させて頂いているデータの供給元(笑)や、ハックロムの関連サイトです。本当にありがとうございます。順不同です。
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 5 | 6 | 8 | 9 | ||
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
最新記事
(12/31)
(11/07)
(11/04)
(07/03)
(11/24)
最新TB
ブログ内検索