X



半熟英雄SFC バイナリ改造スレ
00978
垢版 |
2012/04/15(日) 04:21:32.95ID:y53Ei/d7
おお、寝落ちしてる間にすごいことに・・・
さすが1さん、そういえばスレ立て前に解析済みでしたもんね

>>91
自分もエグモン召喚時に2バイト目が読み込まれるのを疑ってみたのですが
どうも計算が合わないので調べてみたら、どうやら召喚時だけ4桁のHPが表示されるだけみたいです
16進で80以上は、8ビットで符号付整数計算の場合にフラグが変わってしまうため
どこかのルーチンでHPが十倍になってしまうようです
やっぱり半熟軍と完熟軍ではHPの計算方式が違うみたいですね

ttp://ja.wikipedia.org/wiki/符号付数値表現
数学のテストが万年赤点だった自分にはいまいち理解できないのですが・・・^q^

>>96
できないことはないと思いますが
1バイト対応のステータスのテーブル新規作成、計算式を全て書き換えとか
かなり気合が必要かと思われますw
00981
垢版 |
2012/04/15(日) 10:11:57.97ID:gyJoGTKm
>>97
おお‥‥自分には理解する気も起きないくらいさっぱりだけど
128(80)から符号が反転するってことで
ほんとうになんとなーくわかったような気がします。
どこかでボスモンスターはHPが反転してるって書かれてたのはそういうことだったんですね
00998
垢版 |
2012/04/15(日) 23:02:36.72ID:y53Ei/d7
>>98
自分は理屈が理解できないので、計算式によっては80〜FF(16ビット計算は8000〜FFFF)
を負の値として扱うってことで認識しています

余談ですがスクウェアのゲームって結構、符号付の計算によるバグが多いんですよね
例えばFF7のダメージ限界突破バグは
ダメージのMAX値を決めているルーチンで、MAX値270f(10進で9999)と与える予定のダメージ値を比較して
ダメージ値がMAX値以上の場合にダメージ値を270fに書き換える。という処理をしているんですが
その比較が符号付計算になってしまっている為に、ダメージ値が8000(10進で32768)以上の場合
負数として扱われてしまうので、270fよりも小さい値として認識されてしまいそのままダメージが
通ってしまうという具合です

本来なら無符号の計算にすべきなのでしょうが、後に発売されたインターナショナル版でもそのままなので
開発スタッフが敢えてそうしたのかも?
0100名無しさん@お腹いっぱい。
垢版 |
2012/04/15(日) 23:27:34.35ID:3rWQE4WA
>>97
ああ、そうなのか。すまんね、適当な事言って。
レゲ板の過去スレあさったらこんなん見つけた。ここらで記憶がごっちゃになったのかも。

> 389 名前:NAME OVER[sage] 投稿日:2011/01/28(金) 22:36:38 ID:???
>    大臣以外はHPに2byte使っているのでHP表示がおかしくなる。
>    (戦闘時以外は2byte目を読み込まない)
>    で、HPの値に依存してるぽい猛攻撃繰り出すとご覧の有様。
>    多分HPの上位8bitは完熟軍に関するフラグなんだろうな。知らんけど。
>
> 390 名前:NAME OVER[sage] 投稿日:2011/01/28(金) 23:03:24 ID:???
>    改造する奴を想定してか、しゅみが設定されているのがすごいなw
>
> 391 名前:NAME OVER[sage] 投稿日:2011/01/28(金) 23:26:07 ID:???
>    ごめん、HPの上位8bit云々は撤回するわ。
>    画像見直したら単に表示部分が3桁しか用意されてないだけだた。
>    戦闘時は下3桁、ステータス閲覧時は上3桁表示してるから違ってたのか。
>
> 392 名前:NAME OVER[sage] 投稿日:2011/01/28(金) 23:42:58 ID:???
>    1350だと
>     ステ 135(0)
>     戦闘 (1)350
>    か。ああなるほど。9999なら気づけなかったわ
>
> 393 名前:NAME OVER[sage] 投稿日:2011/01/29(土) 00:04:40 ID:???
>    やっぱ関係あるかも…。
>
>    1350 - (256*5) = 070 クイーン
>    1370 - (256*5) = 090 偽ヒーロー
>    1380 - (256*5) = 100 プリンス
>    1780 - (256*5) = 500 生命体
>
>    全員敵として出てきたときのHPに一致してるし…。
0101名無しさん@お腹いっぱい。
垢版 |
2012/04/15(日) 23:34:29.84ID:3rWQE4WA
テーブル新規作成自体は1さんが元のテーブルの該当アドレスを
調査してくれた以上、そんなに難しくはないと思う。(名前の格納アドレスどこだろ?)
既存のを全部読みこんでからロム拡張した領域に展開するルーチン組めばいいわけだし。

やっぱり問題は処理のほうっすな。
てか、戦闘や内政がメモリ上にはちゃんと1バイトで展開されてたかすら覚えてない…。
確認せんと。
01021
垢版 |
2012/04/16(月) 00:10:34.20ID:/pgpLKZ6
最近処理関係に詳しい人がいっぱい来てくれて頼もしすぎる

>>99
面白い話ですね
>本来なら無符号の計算にすべきなのでしょうが、後に発売されたインターナショナル版でもそのままなので
>開発スタッフが敢えてそうしたのかも?
めんどくさかっただけかもw

>>100
…わからナイ。あとでいじってみよう

>>101
将軍の名前はB8400からですね、8バイト区切りで最後はB87F8〜B87FFのゼウス
余談ですが文字コードも適当に調査してあるので
自分はロマサガの文字コード変換ツールを半熟用にカスタムして使わせてもらってます
0103sage
垢版 |
2012/04/16(月) 00:58:05.97ID:6OQ220pM
とりあえず将軍とエグモンのステータス改変はできました。
やっぱりボスキャラのボスフラグネックになってるみたいですね。
クイーンみたいなボスを使うなら普通の将軍と同じHPにして、
別にボスフラグを作るしかなさそうですね。
ところで名前少しみてたら52がカで6Aがアになっているのはなぜでしょうか…?;;
01041
垢版 |
2012/04/16(月) 06:27:15.70ID:/pgpLKZ6
>>103
そうですね。エグモンの方もその影響で、敵がボスモンスターを召喚すると
まねっこ四季王バグと同じことが起きてしまうので
普段の卵では味方には使えても敵には使えないようにしないといけませんし

文字コードはなぜか変な配列で、過去にレゲ板のスレでも特殊だと話題になってました
↓これで大体あってると思います。00〜38は各種スクリプト(?)処理、FFはスペースです

■半熟英雄SFC文字コード(不完全版)
_…リターン命令(文字データの引用をストップして本来の処理に戻る。区切り)
自…バトル中などに行動者の名前を引用する    相…バトル中などに対戦相手の名前を引用する
行…改行命令   消…表示されているメッセージをクリアする   送…ボタン入力を待つ
W…2バイト?使って時間を指定し、強制的に待ち時間を作る命令   ☆…ハートマーク
// 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E, 0F
00, _, ■, 自, 相, ■, ■, ■, ■, ■, ■, ■, ■, ■, ■, ■, ■
10, ■, ■, ■, ■, ■, ■, ■, ■, ■, ■, 行, 消, 送, ■, ■, ■
20, ■, ■, ■, ■, ■, ■, ■, ■, ■, ■, ■, W, ■, ■, ■, ■
30, ■, ■, ■, ■, ■, ■, ■, ■, ■, 卵, 剣, 靴, “, ♪, ☆, 〜
40, ハ, は, ヒ, ひ, フ, ふ, ヘ, へ, ホ, ほ, カ, か, キ, き, ク, く
50, ケ, け, コ, こ, サ, さ, シ, し, ス, す, セ, せ, ソ, そ, タ, た
60, チ, ち, ツ, つ, テ, て, ト, と, ウ, う, ア, あ, イ, い, エ, え
70, オ, お, ナ, な, ニ, に, ヌ, ぬ, ネ, ね, ノ, の, マ, ま, ミ, み
80, ム, む, メ, め, モ, も, ラ, ら, リ, り, ル, る, レ, れ, ロ, ろ
90, ヤ, や, ユ, ゆ, ヨ, よ, ワ, わ, ン, ん, ヲ, を, ッ, っ, ャ, ゃ
A0, ュ, ゅ, ョ, ょ, ァ, ー, ィ, ‥, ゥ, !, ェ, ?, ォ, :, 「, /
B0, 。, A, B, X, Y, L, R, H, P, G, 0, 1, 2, 3, 4, 5
C0, 6, 7, 8, 9, バ, ば, ビ, び, ブ, ぶ, ベ, べ, ボ, ぼ, ガ, が
D0, ギ, ぎ, グ, ぐ, ゲ, げ, ゴ, ご, ザ, ざ, ジ, じ, ズ, ず, ゼ, ぜ
E0, ゾ, ぞ, ダ, だ, ヂ, ぢ, ヅ, づ, デ, で, ド, ど, ヴ, パ, ぱ, ピ
F0, ぴ, プ, ぷ, ペ, ぺ, ポ, ぽ, ■, ■, ■, ■, ■, ■, ■, ■,  
01051
垢版 |
2012/04/16(月) 06:29:03.95ID:/pgpLKZ6
ずれとるがなw
0106名無しさん@お腹いっぱい。
垢版 |
2012/04/16(月) 18:15:15.28ID:6OQ220pM
>>104
文字コードありがとうざいます。
普通の将軍を消してボスをうめこむのはどうでしょうか?
ためしにアニスをクイーンにしてやってみたけど特に異常は
ありませんでした。
妥協して要らない将軍に消えてもらうのもいいかもですね。
0107名無しさん@お腹いっぱい。
垢版 |
2012/04/16(月) 19:54:03.59ID:6OQ220pM
エッグモンスターのデータ
E8200〜E8393
並び順は
エッグマンがE8200〜03
防攻速命中HP1HP2
11 41 01 00
ハデスならE8390〜03
防速命中HP1HP2
3F 1F 0A 1A
全部書くと長いので省略しました。
01101
垢版 |
2012/04/17(火) 23:30:01.62ID:b/C7DYkw
しばらく仕事で留守にします
>>109
すみませんわからんです
0111名無しさん@お腹いっぱい。
垢版 |
2012/04/20(金) 20:21:50.77ID:D97townw
将軍エディタ 色々とやっつけ
ttp://www1.axfc.net/uploader/File/so/78015.zip&key=hanjuku
一応、拡張した領域に移植出来るように設計してある。

移動時の将軍の姿と現在の所持卵はセーブデータに保存されるみたいだから
仮に拡張するとしたら厄介な事になるな…。24byteのうちどっか空いてないもんかなー
他は直に参照されるみたいだからルーチンを弄るだけでどうにかなりそうなんだけど。
0112名無しさん@お腹いっぱい。
垢版 |
2012/04/24(火) 02:05:23.94ID:o69+fEoR
>>111
乙です
出張から戻ったら落としてみますね

メモリは拡張出来ないからなかなか厳しいですね^^;
実は昨日の敵〜パッチも、フリーの将軍が書き込まれるメモリが
10話目あたりからちょっと怪しげな感じなんですw
とりあえず不具合は確認していないので放置していますが・・・
01138
垢版 |
2012/04/24(火) 02:12:33.77ID:o69+fEoR
あ、メモリじゃなくてセーブか
ちょっと疲れてたみたいですw
0114名無しさん@お腹いっぱい。
垢版 |
2012/04/24(火) 20:37:33.12ID:u79jFIMy
>>112
未使用のビットがあればそこから拝借するって手もあるんだけど
現状どうなってんのかよくわからないのよね。改造コードのサイトで明らかになってんのはこんだけ。
1さんならもっと詳しく知ってるかも。

+00 キャラコード
+01
+02 現在HP
+03
+04
+05
+06
+07
+08
+09
+0A
+0B
+0C フィールドグラフィック(上位4bit)/兵士の数(下位4bit)
+0D
+0E
+0F たまご種類(上位4bit)/たまご使用回数(下位4bit)
+10
+11
+12
+13 きりふだ1
+14 きりふだ2
+15 きりふだ3
+16
+17
0115名無しさん@お腹いっぱい。
垢版 |
2012/04/24(火) 20:39:58.88ID:u79jFIMy
将軍グラと卵の種類に関しては下位から空いている1bit借りてくる事で
現行の16種類から32種類に無理矢理拡張する事は出来なくもなさそう。
別の事に使われてたらアウトだけど。
0116名無しさん@お腹いっぱい。
垢版 |
2012/04/26(木) 02:08:42.13ID:bePd7OxG
>>58のパッチで大地震の効果変更してるから他の技の効果も変更できるんだろうけど
やり方が分からない
E8658〜E8659が変更されてるから
この辺が技の攻撃力とか攻撃回数とか範囲なんかな
01178
垢版 |
2012/04/26(木) 17:04:29.79ID:wOloL2SN
遅ればせながら>>111のツールを試してみました
これはすごい!>>79のデータ書き換えと組み合わせれば、自由自在に将軍をいじれそうですね!
0118名無しさん@お腹いっぱい。
垢版 |
2012/04/26(木) 21:22:30.45ID:M+DchJ/M
>>117
成程。
将軍の定義その物を書き換えれば自由度はぐっと増す訳ですな。
味方側はLV2LV3が空いているわけだし。後でこれも組み込んでみよう。

自分的にはもう1bitどっかから引っ張ってきて今の将軍そのままに拡張したいと思ってます。
後、将軍の定義テーブルを拡張して別の所に持ってくとか(これは結構容易)。

何にしても、現状は資料が少なすぎですな。
DQバイナリwikiみたいに、どこが何のアドレスなのかまとめて一ヶ所に蓄積しないと。
0119116
垢版 |
2012/04/26(木) 23:43:02.84ID:bePd7OxG
ごめん
じっくり見たら全部じゃないけどなんとなくは分かった
スレ汚しすまんかった
0120名無しさん@お腹いっぱい。
垢版 |
2012/04/26(木) 23:53:05.94ID:M+DchJ/M
>>119
いや、むしろチラシの裏のごとくスレを汚しまくってもらった方が。
書き散らかしてくれたほうがありがたいっすよ。

書いた本人は下らないと思っても他の人にとってそうとは限らないわけで。
0121名無しさん@お腹いっぱい。
垢版 |
2012/05/01(火) 22:46:10.29ID:rf401K9R
アセンブルコード追っててちょっとだけわかった。

+01 出撃状況
 bit5でキャンプ中
 bit6が出撃中フラグ
 bit7が要塞で待機中
 bit8がエディット中(点滅するやつ)

bit5がONになる時はbit6がオンのままだけど、bit7がONになると何故かbit6はクリアされる。
尚、他人が作った要塞に入った場合は全てのビットがクリア。実質入城と同じ扱い。


+0D 移動方向
 bit7が上下移動のグラフィック読みこみフラグ
 bit8が左右移動のグラフィック読みこみフラグ
 bit1がY座標がプラス(上)方向へ移動のフラグ
 bit1がX座標がプラス(左)方向へ移動のフラグ
01228
垢版 |
2012/05/06(日) 01:18:02.58ID:QYXmAtVk
自分もとりあえず解析済みのデータを・・・

話数値(メモリアドレス)
00001600

ゲーム開始時将軍テーブル
000c4d52〜000c4d55
これをいじることで初期将軍を生命体とかにできるようになりますが
000c4d52は主人公じゃないと戦闘終了時にゲームオーバーになる不具合があります

話数将軍追加枠テーブル
00007d9c〜00007da8
ちょっとうまく説明できません^^;
話数の数値分1バイトずつずらしながら読み込んで加算していきます
例:1話の登場将軍枠=00007d9c〜00007d9dの和
例:3話の登場将軍枠=00007d9c〜00007d9fの和

登場将軍テーブル
00007dac〜00007e20
話数将軍追加枠テーブルの数値の範囲の将軍がここからロードされます
0124名無しさん@お腹いっぱい。
垢版 |
2012/05/12(土) 06:51:25.29ID:0G0HV/MS
さらにわかった事
+04,05  X座標
+07,08  Y座標
+09 残りの移動距離

$C4EEh からのコードで
RAMに展開してある将軍の移動方向・種類なんかを取得して
描くグラの種類なのかな?それを決定して、$0404hから一人4byteで順繰りに書いていく。
(城にいるなどして、描く必要のない将軍はスキップ)

まだまだ先は遠いな…。
0125名無しさん@お腹いっぱい。
垢版 |
2012/05/15(火) 22:30:12.74ID:wBEV10uf
優月要の人、ここ見てたんね。

マップの方の将軍グラなんだけど、さっとV-RAM見た感じ
起動時に戦闘で使う部分もまとめて読んでるみたいなんで
この部分を移動で使う部分だけ読むようにすれば
何とか空きを捻出は出来るんじゃないかなー…と無責任に書いてみる。
0127名無しさん@お腹いっぱい。
垢版 |
2012/05/26(土) 15:39:24.82ID:1E9XJ7I0
過疎
0131名無しさん@お腹いっぱい。
垢版 |
2012/05/29(火) 19:36:50.43ID:mOzk//Tj
>>130
8さんは見てるんでないかな。まだネタが溜まってないだけで。
1さんはしばらく見ないな。まだ遠征から帰ってきてないんだろう。

今の所、優月要の人だけが頼りだな。
01321
垢版 |
2012/05/30(水) 19:28:46.89ID:f2SkpLOn
呼ばれた気がした1です
ゴメンなさい、二週間前に帰ってきてたんだけど規制に巻き込まれてました(今も)
タイミング良く>>128をGETさせてもらって
>>4サイトさんも新たなパッチを公開されているので今からいじるの超楽しみです

正直解析面で自分の出番はもう無いと思うけど、広報面でがんばりますー
01331
垢版 |
2012/05/30(水) 19:48:45.01ID:kN08gC7U
というか4のお方、見ておられたか!
以前の記憶ですが2B 10はたしかウェイト命令だったと思います。
消すとメッセージ表示が消えるのがちょっと早くなってしまったような…

00は引用終了命令のはずですが、処理次第では除去しても正常動作するかもしれませんね
文字数が決まってるエグモンの名前なんかだと00が無いエグモンもいますし、
勝利メッセージなんかも一定の文字数を引用したら自動リターン処理がされるのかも
01348
垢版 |
2012/05/30(水) 20:49:27.22ID:XFi2zO/Q
お久しです
自分もここは毎日チェックしてます

ちょっと浮気して別のゲームのパッチを作ってました^^;

スレ的にちょっと煮詰まってきた感があるので、将軍の登場話をいじったパッチ
でも作ってお茶を濁してみみますか?
01351
垢版 |
2012/05/30(水) 20:50:43.75ID:f2SkpLOn
>>111のツールすげえ使いやすいっすなぁ…改変した名前まで反映されとる
ありがとうございます!
ただし拡張したROMは読み込めないっぽいので、そこだけいつか対応お願いいたしますm(__)m拝
01371
垢版 |
2012/05/30(水) 20:57:57.70ID:f2SkpLOn
>>134
おひさです!是非お願いしたいところ。
登場話数いじれると将軍改造で将軍番号と登場順を計算しながらする面倒が無くなるし
敵専用汎用将軍などを作れるようになるので重要ですよね。自分はノータッチの部分でした
0138名無しさん@お腹いっぱい。
垢版 |
2012/05/30(水) 22:13:43.60ID:XFi2zO/Q
>>137
>敵専用汎用将軍
うーん、半熟軍と完熟軍で登場将軍テーブルを共有しているので
自分が解析済みの範囲だとちょっと難しいかもです

帰宅したら手始めに、一話目から全将軍登場パッチでも作ってみます
かなりカオスなことになりそうですがw
01391
垢版 |
2012/05/30(水) 22:57:57.23ID:f2SkpLOn
テーブルを書き換えて任意の将軍を「両軍共に登場しない」ようにできれば
各話の城に将軍を固定配置することで
募集では出てこないテーブル外の将軍を敵、あるいは味方に配置できると思ったんですが無理そうですか?
0140名無しさん@お腹いっぱい。
垢版 |
2012/05/30(水) 23:58:18.71ID:5YzX7dQR
やはりこのスレのツートップがいないと盛り上がりませんな。

優月要の人、自分が調べた範囲で外堀の情報をちょっと。
大して参考にならんと思うけど。マップでの将軍の描き方について

$00/C4EEから$00/C456までの一連の処理でグラフィック情報を決定して、現在の人数分繰り返してる。
描く必要のある将軍は$7E0404から始まるアドレスに一人4byteで描画情報を記録。
1バイト目はX座標
2バイト目はY座標
3バイト目は将軍情報及び、移動方向の情報が入る
4バイト目は将軍情報とパレットと反転に関する情報が入る

で、3バイト目と4バイト目はこんな感じだった。
*bit0 ┌下方向グラフィック使用フラグ
*bit1 │2パターンのうちどっち使うかの判別
*bit2 │左右方向グラフィック使用フラグ
*bit3 └上方向グラフィック使用フラグ
*bit4 ┌
*bit5 │将軍の種類 将軍分類番号を*2した値が入る
*bit6 │主人公000X、敵男002X、男004X………上級女010X、敵騎馬012X、騎馬014X、といった具合
*bit7 │尚、テント及び要塞で待機中だと016Xになる
*bit8 └
*bit9 ┌
bit10 │パレット情報 2-3ON:主人公/男/上級女 1,3ON:女 3ON:それ以外(上級男・完熟軍) 1-3ON:待機
bit11 └
bit12 ┌この2つは強制ONになるみたい
bit13 └
bit14 ―左右方向に移動の場合、ここがONだと左方向への移動。OFFだとグラフィックを反転するって事かと。
bit15 ―ここだけ不明

ルーチンを追ってみた結果、ここを拡張するのはまあ出来なくはないと思う程度には解析できた。
ただ、その先で詰まっている。例えば、主人公だけを移動させると$7E0404-$7E0407が-1じゃなくなるので
そこにReadでブレークポイントかけてみるんだが、DMAモードがよくわからん。
 ―> DMA[3]: CPU->PPU Mode:0 0x000400 -> 0x2104 Bytes:220 (inc) V:228 OBJADDR: 0000

ここら見ながら解析にあたってんだが。
http://hp.vector.co.jp/authors/VA042397/snes/ioport1.html
http://hkpr.info/snes/wiki/index.php?%A5%C8%A5%C3%A5%D7%A5%DA%A1%BC%A5%B8
0141名無しさん@お腹いっぱい。
垢版 |
2012/05/31(木) 00:05:38.60ID:5YzX7dQR
で、新たな将軍のパターンを追加しようと思ったら、当然読みこみ部分にも手をつけなきゃいかない訳だが
0B8000からグラが格納されてるんでそこにBreakかけてみた。丁度セーブファイルを読み込む所で引っかかる。
が、DMAモードは難しい。。。。

$00/8840 A9 01 LDA #$01 A:000B X:0400 Y:03C0 P:envMxdIzC
DMA[0]: CPU->PPU Mode:1 0x0B8000->0x2118 Bytes:400 (inc) V:160 VRAM: 6000 (1,0) word
$00/8842 8D 0B 42 STA $420B [$00:420B] A:0001 X:0400 Y:03C0 P:envMxdIzC --> 0842

$00/8845 A2 00 A8 LDX #$A800 A:0001 X:0400 Y:03C0 P:envMxdIzC
$00/8848 8E 02 43 STX $4302 [$00:4302] A:0001 X:A800 Y:03C0 P:eNvMxdIzC //読みこみデータの開始位置
$00/884B A2 00 04 LDX #$0400 A:0001 X:A800 Y:03C0 P:eNvMxdIzC
$00/884E 8E 05 43 STX $4305 [$00:4305] A:0001 X:0400 Y:03C0 P:envMxdIzC //データの長さ
$00/8851 A9 01 LDA #$01 A:0001 X:0400 Y:03C0 P:envMxdIzC
$00/8853 8D 0B 42 STA $420B [$00:420B] A:0001 X:0400 Y:03C0 P:envMxdIzC

VRAMの書きこみアドレスってどこで指定すればいいんだろ。
0142名無しさん@お腹いっぱい。
垢版 |
2012/05/31(木) 00:13:21.56ID:q1KwqIny
>>135
久々にソース覗いてみたら、現状エラーチェックはサイズだけしかやってなかったみたい。
カートリッジ情報を読みにいくように変更してみる。現状、そこを変えるような人はまだいないだろうから。
今、時間とれないからちょっと後になるけど。よろしくおながいします。
01438
垢版 |
2012/05/31(木) 01:07:40.92ID:S3/BXKXR
>>139
城に固定配置できるのであれば恐らく可能だと思われます
各話で封印する将軍と登場する将軍を指定してもらえれば作りますよ?

>>140-141
すげー!
将軍の移動時グラは、やはりセーブファイルに記録されてるみたいですね
友パッチをv1.01にしたときになんでグラが変わらないのか悩まされましたw
01448
垢版 |
2012/05/31(木) 02:34:09.60ID:S3/BXKXR
すんません・・・
一話目から全将軍登場パッチ作るって大見得切ったのですが
どうしても最終話で、少なくとも一人だけ加入させないとダメっぽいです
誰にします?
0145名無しさん@お腹いっぱい。
垢版 |
2012/05/31(木) 03:39:55.82ID:c0yw4Fz8
おっ、盛り上がってるな
前から訊いてみたかったんだけど>>58のようにエッグモンスターの
攻撃の種類(通常攻撃・全員攻撃・半減技・動き封じ等)はどうやれば変えれるのでしょうか?

他にも召喚時の登場パターン、死亡時の退場パターン、エッグモンのBGM、
ダメージを受けた時の効果音とかも変えれそうだけど自分ではよう調べれない…
>>104の表見てエッグモンスターの名前を見つけるのが精一杯
01468
垢版 |
2012/05/31(木) 08:16:01.83ID:S3/BXKXR
ごめんなさい・・・普通にできましたw

1話だョ!全員集合パッチ
ttp://www1.axfc.net/uploader/File/so/79502.zip&key=hanjuku


動作チェックの時、話数を10進数で入れてたとか・・・orz
0147名無しさん@お腹いっぱい。
垢版 |
2012/05/31(木) 13:19:04.70ID:7ePERVn2
>>140-141
マップのグラ種類増やすのって、思った以上に難しいんですね‥‥
>>142
コピペで対応できないこともないのでゆっくりで大丈夫です。よろしくお願いします
>>146
ありがとうございます。今から試してみます!
01481
垢版 |
2012/05/31(木) 13:24:03.15ID:7ePERVn2
>>145
E8400からエグモンの技が4バイトごとにワンセットで1つ、
エグモン一匹につき技2つで計8バイトごとにエグモン番号順に格納されてます
数値は技1つにつき「12 34 56 78」でそれぞれ下記に対応
12効果 (1バイト管理で打撃の攻撃回数まで指定)
3対将軍威力 4対モンスター威力
5効果音 6追加効果
7攻撃エフェクト 8攻撃動作

以下、効果テーブル(中途半端に調査)

00〜1F 1回〜32回攻撃
20〜3F 1回〜32回攻撃
40〜5F 1回〜32回攻撃(ワライダケ、すねる、マリオネット)
60〜7F 1回〜32回攻撃
80 効果無し
81 全体攻撃
82 HP半減  83 命中半減  84 防御半減  85 攻撃半減
86 一撃死  87 自傷行為  88 速さアップ(防御下がる)  89 防御アップ(速さ下がる)
8A 攻撃アップ(命中下がる)  8B 謎攻撃
8C HP100回復
8D 相手の速度アップ  8E 相手の攻撃力アップ
8F HP吸収  90 たまご  91 自爆1
92 ひっくりかえる  93 和解  94 自爆2
95 ハデスのやつ(みんなしんでしまった!)
96 ハデスのやつ(みんなうごけなくなる)
97 ひっくりかえる(グランドパパがもとに戻る方)
98 倍返し  99 能力入れ替え  9A 敵味方能力低下
9B ふくらむ  9C 敵味方HP半減
9D ねむくなる  9E きょうふになる
9F めまい  A0 うごけない!
A1 せきか  A2 ドロか
A3 なく   A4 ハイになる
A5 ぼんやりする  A6 わらいころげる
A7 ネバネバ  A8 もえている
A9 こおっている  AA めつぶし  AB テレている
AC 謎(バグ)  AD 当たらない
AE 謎のバグ画像を呼び出す  AF 無反応
B0 自分の姿を変える(技は変わらない)
B1 3回攻撃する
B2 他のモンスターに変身する(HPの高いエッグマンが出た)
B3 自分が状態異常になる
B4 謎(バグ)  B5 無反応
B6 自分がゾンビ化する  B7〜BA 無反応
BB 敵をゾンビ化する  BC〜BE 無反応
01491
垢版 |
2012/05/31(木) 13:38:10.58ID:dI2oEs+5
効果テーブルの中には敵が使った時のみ正常に発動するものがあります(ボイルドやスーモンなど)

エグモンのBGMなどは自分もわかりません
僕はそれよりもエグモンの技メッセージに攻撃後に表示されるものがあるので
そこの判定をどこで書き換えればいいのか知りたい…
あとオリジナル技作るなら、技メッセージも将軍メッセージ同様に処理書き換えて拡張した方がよさそうです
既存のものをチマチマ変えていくと前後のメッセージと文字数の調整になるので
自由改編も不可能ではないですがバグの温床になりやすい
01501
垢版 |
2012/05/31(木) 13:51:53.12ID:7ePERVn2
あ、エグモンのターン終了時と勝利時敗北時もそうですね(既存のままだと容量が狭い)
表示可能な最大文字数が無制限なので
将軍メッセージみたいに領域区切りするのは空き領域が増えすぎて難しいかもしれません
メッセージ引用中に任意の空きアドレスに飛ばす命令がわかれば解決なのですが…
0152名無しさん@お腹いっぱい。
垢版 |
2012/05/31(木) 16:21:44.18ID:7ePERVn2
ざっとバイナリを拝見したところ、将軍番号ごとに登場話数を設定しているわけではなくて
直下のリストに並んでいる順番通りに決まった数だけ汎用将軍として解放する仕様みたいですね
これならリストからの排除+城への初期配置を使って復活不可の味方専用/敵専用将軍は作れそう
でも、話数ごとの解放人数を段階的に調節するにはどうすればいいんでしょう?
0153名無しさん@お腹いっぱい。
垢版 |
2012/06/01(金) 00:09:35.19ID:tM61gb9j
マラスキーノにボコられた。1話からはキツイっすなあ。
しかし1話から出てこられてもやっぱりブラウニーはパッパラパー将軍だった。
0154名無しさん@お腹いっぱい。
垢版 |
2012/06/01(金) 00:15:10.78ID:tM61gb9j
それと、>>135の件、修正完了。 相変わらずやっつけだけど。
http://www1.axfc.net/uploader/File/so/79521.zip&key=hanjuku
16MbitもOK。24,32はまだ蹴るようにしてある。
32はすぐ対応できるけど24は固有のROMサイズ情報もってない(16と同じみたい)もんで保留。

後、リクエスト(?)あったんで>>79の部分も盛り込み。
01558
垢版 |
2012/06/01(金) 01:51:34.12ID:mzTcF9qB
>>151>>153
やはり1話から全将軍登場は運ゲーですねw

>>152
この辺りはとりあえず>>122を参考にしてもらえればと思います
因みに友パッチと全員集合パッチでは、ボス将軍と大臣の枠を確保するため
登場将軍テーブルを00007da8から読み込むようにしてあります(ROMアドレスで0000591fを変更)
つまり、最終話での追加枠と登場将軍テーブルの一人目の値を共有しています
01568
垢版 |
2012/06/01(金) 01:55:08.10ID:mzTcF9qB
書き忘れましたが、メモリ上に書き込まれるフリー将軍のアドレスは
7E8F80〜7E8FFFです
01571
垢版 |
2012/06/01(金) 08:37:15.34ID:8rbkrx93
>>154
うーん‥‥どうして自分のROMは読み込めないのだろう?
(今使ってるのは24Mbitですが16Mbitにしてもダメで、拡張前の8Mbitに削ると読み込める)
どうもこの手の話に弱いので‥‥原因がわかれば教えてください

>>155
あー、なるほど。よくわかりました。感謝
それでこのパッチでは将軍登場テーブルが前倒し気味に変えてあったんですね

補足っぽくなりますが
>>122のゲーム開始時将軍テーブルのとこは、厳密には1話アルマムーンの城データですね
城データはC4D4Dから以下の配列で、城番号順に規則的に並んでいます
「収入:X座標:Y座標:不規則数バイトの未解析数値:その城に配置される将軍番号×人数分:FF」
C4D57がたしかナキューメラ城で、C4D82が2話アルマムーン城のはずです
01588
垢版 |
2012/06/01(金) 10:03:52.18ID:AnbEskdQ
>>157
なるほど!城のデータだったとは気付きませんでした

将軍の登場枠に関しては、自分の説明不足で余計な手間を取らせてしまい
申し訳ないです・・・^^;
01591
垢版 |
2012/06/01(金) 11:04:14.84ID:8rbkrx93
いやいや、謝るのはこっちのほうで…
>>122におもいっきし書いてあるのを見落としてました。スンマセンw
0160名無しさん@お腹いっぱい。
垢版 |
2012/06/01(金) 19:45:38.85ID:tM61gb9j
>>157
手動で拡張したのかな? 蹴られるのはカートリッジ情報を書き換えてないからだね。
Lunar Expandで変えると分かるがあれは拡張するだけでなくちゃんとカートリッジ情報も書き換えてある。
半熟英雄はLoROMなのでカートリッジ情報は007FC0から始まる領域にある。
ROMサイズ情報は007FD7にあるからそこをサイズに合わせて変えればOK。
8Mなら0A、16Mなら0B、といった具合。まあ現状24Mbit以上は蹴るようにしてあるんだけど。

ついでに書くとゲームタイトルも"HANJYUKU HERO(この後に半角スペース8つ)"以外だったら蹴ってる。
ここ変える人はまだいないだろうからエラーチェックに使っても大丈夫だろうという事で。

カートリッジ情報に関しては
このページの真ん中あたりにある”Embedded Cartridge Information”に詳細ある。
http://www.emulatronia.com/doctec/consolas/snes/sneskart.html
ROM size (1 byte) ってやつね。
0161名無しさん@お腹いっぱい。
垢版 |
2012/06/01(金) 21:57:21.84ID:8rbkrx93
>>160
ご明察です‥‥! そっか手動で拡張したのがいけなかったのかぁ
無事16Mで使えました。わかりやすく説明してもらってありがとうございました
0162名無しさん@お腹いっぱい。
垢版 |
2012/06/01(金) 23:28:27.32ID:8rbkrx93
>>149で疑問だったエグモン攻撃後に表示されるメッセージについてわかりましたー

個別に表示判定が行われているわけではなく、全ての技ごとに表示する処理がなされていて
攻撃後のメッセージが存在しない技は、表示メッセージが「00」のみに設定されているだけでした
よく見たら、メッセの無いモンスターも攻撃後に一瞬文字表示処理のためにウェイトがかかっていました
ダメージを受けたターン終了後に表示されるメッセージも同じみたいです
(ダメージ受けメッセージの無いボスモンスター戦で
 ターン終了時に一瞬ウェイトすることがあるのはそのせい)
半熟通な人は改造する前から知っていそうなくらい単純な話ですね

メッセージ表示に関連して、今作りかけのデータベースをついでに置いておきます
つ http://www1.axfc.net/uploader/File/so/79555
0163名無しさん@お腹いっぱい。
垢版 |
2012/06/02(土) 23:27:00.43ID:SPLF/XMm
>>162
便利だね、これ。1さんはデータ豊富に持ってるからありがたい。
エグモンの名前アドレスわかればエディタに突っ込めるかも。

優月要の人は、一旦別領域に飛ばしてそこにデータがなければ
通常のを読みこむっていう処理にしたんだっけ。
エグモンの方も拡張するならこういう形式になるだろうなあ。
01641
垢版 |
2012/06/03(日) 00:10:36.04ID:hTq73b62
>>163
優月さんのパッチはそういう処理らしいですね。
ちなみに将軍の台詞拡張処理パッチを使わせてもらってるんですが、
たとえばエグモンのセリフを読み込ませるジャンプ先指示の数値をいじって
本来の将軍の台詞が置いてあった領域に飛ばすと、
強制的に拡張領域の使用判定が行われるようになっていました。
(全員分の個別セリフを用意したからといって
 本来の領域を別の用途に使用するとバグが出る、ということ)
エグモンの名前アドレスはわかってるけどリスト化してないので時間ください

で、>>162のデータは今のとこ手当たり次第に調べてるだけだけど
最終的には↓のようにするとオリジナルエグモン作成に便利と思ってまとめ中です。
ツール作ってもらう場合にもこういうデータがあった方が楽でしょうしね。
ただし途中で集中力切れてるから、たまに数値入力ミスがあるかも‥

ID:00 エッグマン
メッセージアドレス  参照を指示しているアドレス
BF951  「技1」   EF600
BF95E  「技1追加」 EFA00
BF96A  「技2」   EF602
BF98A  「技2追加」 EFA02
BF998  「ダメージ」 EF800
BF9AE  「敗北」   EF900
BF9C3  「勝利」   EFC00

能力値
E8200:  11 41 01 00
(防攻 速命 HP HP)

技1「エッグチョップ」
E8400:  80 00 10 0C
技2「エッグキック」
E8404:  80 00 10 0C
(効果 将モ 音追 エ動)
01651
垢版 |
2012/06/03(日) 01:40:27.49ID:hTq73b62
たぶんだけど、味方汎用将軍の戦闘部隊に「クイーン」「プリンス」を指定すると
敵将軍として登場した時に「生命体」「偽英雄」の部隊になってしまうっぽい
これは未使用の「生命体2」「偽英雄2」ではなくボスの方なので、
この4者の戦闘部隊グラフィックを使った将軍は汎用将軍として登場しないように封印するか
反転先のグラフィックも全く同じにする(事実上2枠潰れる)しかなさそう
おそらく主人公と大臣も同じだと思う
01661
垢版 |
2012/06/03(日) 02:02:17.04ID:QttUGrOj
厳密には>>79の部隊の参照数値が敵として登場すると+08されるみたい
てことは固定グラフィックを持つ汎用将軍を作るには戦闘部隊が必ず2枠必要になる

でも裏を返せば固定グラフィックを2つ犠牲にすることで
敵味方で変化する汎用将軍のグラフィックを追加することもできる
優月さんが拡張に成功したら枠の心配はいらなくなるだろうから夢が広がりまくりんぐ
01671
垢版 |
2012/06/03(日) 02:03:32.61ID:hTq73b62
訂正
×参照数値が+08
◯参照アドレスが+08
01681
垢版 |
2012/06/03(日) 04:29:05.62ID:hTq73b62
スレ見直したら、>>118さんもこの辺の拡張を予定しておられるんですね
これは将軍の種類増やせまくれる日も近そう…!
自分もサポートで手当たり次第にわかるデータ書き散らすことにします
01718
垢版 |
2012/06/04(月) 09:58:13.12ID:CW/6dbhY
1さんいろいろ乙です!

>>166
11話以降はさらに+される感じなんですかね?
だとしたら3枠必要なのかも?まあ、拡張できれば無問題ですかね

>>170
未確認ですが出てくるはずです
恐ろしい話ですがw
01728
垢版 |
2012/06/04(月) 11:42:27.06ID:CW/6dbhY
>>154
そういえば要望出したのって自分でしたね^^;
遅くなりましたが、ありがとうございました
0173名無しさん@お腹いっぱい。
垢版 |
2012/06/04(月) 21:59:00.89ID:jjPEavdq
>>171
うーん、ちょっと話がわからないですけど
大臣やボス将軍のグラを汎用に変更するだけですので、話数で変化はしないはずです
言い換えれば、どの戦闘グラをもった将軍でも敵に回ると、
>>154のツールでいうところの「戦闘グラ設定」のNoが+2される感じです
01741
垢版 |
2012/06/04(月) 22:01:39.20ID:vqP1eoct
すみません「将軍グラ設定」の間違いでした
01761
垢版 |
2012/06/05(火) 13:17:10.29ID:StAKjZI4
よく考えたらこのスレの場合こっちの方が早いですね
・大臣におまかせパッチver0.20
http://www1.axfc.net/uploader/File/so/79698
デバックは2話まで、イベントは2話冒頭までしかできてないけど経過うp
01771
垢版 |
2012/06/05(火) 13:21:31.60ID:StAKjZI4
あ、パッチは3MB(24Mbit)に拡張してから当ててください
01781
垢版 |
2012/06/05(火) 13:33:24.67ID:EKfNxNbA
あと>>165
×この4者の戦闘部隊グラフィックを使った将軍は汎用将軍として登場しないように封印するか
◯汎用以外の戦闘部隊番号を使った将軍は汎用将軍として登場しないように封印するか
0179名無しさん@お腹いっぱい。
垢版 |
2012/06/05(火) 18:53:29.03ID:vxwGG42t
1さんパッチ乙です!
帰宅したら使わせてもらいます

>>173
11話以降では完熟側の兵士が生命体になるので
もしかしたらそれも参照数値が変わってるのかなと思いまして・・・
全く的外れだったらごめんなさいw
01801
垢版 |
2012/06/06(水) 01:30:51.05ID:JdNbonYZ
あーそっか。主人公などの固定グラ将軍は話数変化によるグラ参照値の変更は行われないためか、
あるいは無関係な領域を参照してとんでもないバグを引き起こしてしまいますね(予想では前者)

これは本来主人公や大臣、ボス将軍は汎用の敵に回ることがないので
処理を書き換えれでもしない限り、仕様上どうしようもないことだと思います。
その汎用将軍だけそもそも兵士を生命体にしないか、処理をなんとかするでもしないと3枠使っても解決できないハズ
01811
垢版 |
2012/06/06(水) 01:36:22.59ID:JdNbonYZ
×変更は行われないためか◯変更は行われないか
また誤字…。電話での書き込みはしんどいなぁ
0182名無しさん@お腹いっぱい。
垢版 |
2012/06/06(水) 17:16:26.69ID:KQIUHu0i
だいじんがヒーヒーいいながら城攻めしていたら、ビューネイに空っぽの城を取られたでござる・・・
未拡張のロムにパッチしても問題なく動きましたよ^^

>>180
>>74のような例があるので、固定グラ将軍が完熟軍の汎用将軍として
出現した場合、話数変化でも偽ヒーローになるのかも?
時間があるときに、そこの処理をなんとかできないか調べてみます

あとひとつ、謝らなければならないことが・・・
話数による変化は11話以降じゃなくて10話以降でしたw


あ、自分のPCも規制されてる・・・
01838
垢版 |
2012/06/06(水) 17:25:06.88ID:KQIUHu0i
名前抜けてました
頭も抜けてます\(^O^)/
01851
垢版 |
2012/06/08(金) 20:15:07.07ID:oF1rK0jl
>>182
そうなんだ…知らんかった>拡張前
敵出現時のグラフィックは、破壊などでたまごを仕舞わせると正常になるなど不安定のようです。
やれやれな現象ですがよろしくお願いします。
>>183は携帯あるあるですな

>>184
改造前の雑魚を最強ランクに設定してるのがあるんですが
いっぱつエッグは出現の調整ができなくて序盤ほど普通に出てくるんですよw
誰かわかる人教えて…orz

お二人ともプレイ感謝です
二話ボスはたまご未調整で中途半端に将軍だけ改造終わってますのでよかったらどぞ
0186名無しさん@お腹いっぱい。
垢版 |
2012/06/10(日) 20:12:42.18ID:CIiLbR5f
優月要の人ゴメン。以前書いた
セーブ読込時にVRAMに戦闘部分も読みこまれるってのは間違いだった。
ただ、1キャラにつき2コマ分余分なのがあるから詰めれば空きは増やせると思う。
2キャラ分の空きと余剰分を詰める事で3キャラ分。

で、VRAMをダンプしながら使用状況を追ってみたんだけど
割とフリーダムに使われてるから、空きは容易に作れると思う。
特に戦闘時に完熟軍が読みこまれる領域($A000-BFFF)の前半は
移動時は100%使われてないからここに突っ込めば最低4キャラ(詰めれば5キャラ)は
確実に使えるはず。ちょっとばかしVRAMの基底アドレスの定義が面倒だけど。

>>175
いいね。どんどん解析されて夢が広がりんぐ。
やりようによっちゃイベントエディターまで踏み込めそう。
0187名無しさん@お腹いっぱい。
垢版 |
2012/06/10(日) 20:27:07.53ID:CIiLbR5f
>>168
ゴメン、そっち方面の拡張は大分先になると思う。
移動グラの種類増やしに躍起になっている最中なんで。

とりあえず、SnesWikiのPPUスプライト部分の解説と見比べる事で
どういった風に移動中の将軍を描いているかはある程度掴めた。

----
セーブ読込時や月一イベント終了時などに将軍やカーソル系グラを
一気に読みこんでVRAMに格納。

移動時は(恐らく1フレーム事に)現在出撃している将軍の情報をRAMから読み込んで
PPUに情報を送りこんで描画
----
といった感じ。

で、拡張するためには
・VRAMに読み込む際に新規将軍分の処理も追加する
・PPUに情報送る際にアドレスの設定をする処理を入れる
・既存の将軍情報では移動時は16種類しか作れないのでどっかから1bit借りる
が必要

上2つは何とかなりそうと言える程度には解析できた。
下のはどうしたもんか。将軍のRAM情報の解析が不完全なのでいかんともしがたい。
0188名無しさん@お腹いっぱい。
垢版 |
2012/06/10(日) 20:31:26.66ID:CIiLbR5f
現状、分かっているのだと
-----------------------------------
+00 キャラコード
+01 出撃状況 bit5(20)で出撃中 bit4でキャンプ中 bit6が要塞で待機中 bit7がエディット中
+02 現在HP
+03
+04 X座標
+05 X座標
+06
+07 Y座標
+08 Y座標
+09 残りの移動距離
+0A 移動距離の上位ビットか
+0B
+0C フィールドグラフィック(上位4bit)/兵士の数(下位4bit)
+0D 移動方向 (40上下 80左右 *0右下へ移動 *1右上へ移動 *2左下へ移動 *3左上へ移動 bit0=Y座標 bit1はX座標)
+0E
+0F たまご種類(上位4bit)/たまご使用回数(下位4bit)
+10
+11
+12
+13 きりふだ1
+14 きりふだ2
+15 きりふだ3
+16
+17 何かのカウンタくさい
-----------------------------------
引っ張ってきても問題なさそうなのは
・兵士(最大6人なのでbit3が余る)
・たまご使用回数(最大5なのでこれまたbit3が余る)
・切り札(MAX32なので、未所持フラグを考慮しても2bit余る。それが3つ)
なんだけどどうしたもんか
0191名無しさん@お腹いっぱい。
垢版 |
2012/06/12(火) 22:09:46.94ID:RSVDbsic
>>186
>戦闘時に完熟軍が読みこまれる領域に〜
の部分は撤回。撤回せざるを得ない。。。
DMAでPPUに送りこめるVRAMの範囲って2MAP分しかないのね。ショック。

そして肝心なパレットの事を忘れていた。
スプライトで使えるのは8つなんだけど、
半熟軍・女将軍・完熟軍・待機中で既に4つ埋まっているから残り4つしか使えない。
共用する事で何とかできなくもないんだが、馬の色は女将軍のパレットにはないので
新しく定義しなきゃならない。何てこったい。

将軍のパレットデータってROMのどこに格納されてるんだろ。
0192名無しさん@お腹いっぱい。
垢版 |
2012/06/20(水) 23:27:41.08ID:dls3CVkV
http://www1.axfc.net/uploader/File/so/80189.zip&key=hanjuku

ついに女騎馬将軍出来た。後向きのグラがイマイチ納得いかないけど。(誰か修正してくれないかなあ)。
クイーンプリンス大臣は、結局の所パレットに手を入れるのは果てしなく面倒
…というか、もしかして出来ないんじゃないかという不安を抱いたので
新たな領域にグラを作り直し、既存のパレットを利用する事で妥協。

生命体はVRAMに空きがありませんでした、ハイ。
01938
垢版 |
2012/06/21(木) 08:28:57.91ID:3LDGDVxS
>>192
神マジ神

>>192のパッチと以下のパッチを重ね当てする場合は、パッチ当て後にHnjk_edt.exeで
クイーンプリンス大臣の移動グラを元に戻してください

・昨日の敵は今日の友?with大臣パッチ v1.01
・1話だョ!全員集合パッチ
01941
垢版 |
2012/06/23(土) 17:00:15.79ID:CZuOlyfP
>>192
乙です。こいつはすげえや! 本当に女騎馬将軍になっちゃった
後ろ姿のグラについては、当てずっぽうだけどマントを削って髪を伸ばせば良くなるかも
オリジナルのEX将軍にしたい場合は、ROMの86400から始まる5枠とすり変えればいいんですね
感動です。ありがたい
0196名無しさん@お腹いっぱい。
垢版 |
2012/06/25(月) 21:06:22.69ID:c0no8RIm
髪のボリュームをもっと絞るべきなのかも。

それはそうと、今回はあくまで優月要の人等のパッチと極力競合起こしたくなかったから
FFで埋まっている領域を使ってないと決め付けて使っただけだから
他の領域にした方が安全ではあると思う。ソースの該当部分変えればOKよ。

後、EX将軍に関しても本来なら他の所からビット借りてきて設定するべきなんだけどね。
その準備もしていたんだけど、女騎馬+3キャラが使える限界と発覚してしまったので
今回は必要ないと判断して将軍番号での分岐にしちゃった。
レスを投稿する


ニューススポーツなんでも実況