5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

スーパードンキーコング バイナリ改造スレ

1 :前スレ移動のとき、落ちたみたいなんで立てまする:2010/08/12(木) 22:08:04 ID:SmCXGKNG
前スレ
スーパードンキーコング バイナリ改造スレ
http://schiphol.2ch.net/test/read.cgi/gameurawaza/1211776034/


SFCのスーパードンキーコングの改造を扱うスレです。


ツールとか資料とかサンプルとか
http://mudlava90.hp.infoseek.co.jp/dk/index.html

464 :名無しさん@お腹いっぱい。:2014/02/09(日) 00:32:35.91 ID:c5ZpEr6G
いいよいいよー
どんどん解析進めておくれ
改造はがんばるから

465 :名無しさん@お腹いっぱい。:2014/02/09(日) 10:15:08.80 ID:MiPMQ9LA
ここにきてDK2を中心にまた改造の幅が広がりつつあるな。いい流れだ。

そういえば思ったんだがDK2のボスステージの音楽って変えれないの?
ステージスタイル変更しても曲「だけ」変わんないし。

466 :名無しさん@お腹いっぱい。:2014/02/16(日) 10:21:46.64 ID:boGvIiZu
>>463
ヘッダーの構造が少し判明しました。

1バイト目:起点、終点を除いた経由地の数。00ならば、途中経由地なく起点と終点を直線で結ぶ。
2〜4バイト目:不明。常に203E00
5バイト目:移動レイヤー。値を変えると、マップの下に潜り込んだりする。見た目だけの問題なので、変えても特に副作用はない。

467 :名無しさん@お腹いっぱい。:2014/02/17(月) 10:31:41.59 ID:iR/4Usqc
SDK2でステージのスプライトを他のステージのスプライトと入れ替えるのってどうやるんだっけ・・・?

468 :名無しさん@お腹いっぱい。:2014/02/17(月) 10:41:27.48 ID:FnAberiQ
>>467
3D0000+ステージ番号*2がそのステージのスプライト配置データへのポインタじゃなかったか?

469 :名無しさん@お腹いっぱい。:2014/02/19(水) 01:09:31.45 ID:rH6TXyV0
>>468
ありがとう!試してみるよ

470 :名無しさん@お腹いっぱい。:2014/02/20(木) 11:27:02.18 ID:sQOShwKI
ちょっと興味深いのだが、海外サイトにオープニングのタイトル画面まわりの処理云々のプログラムの所在が出てた。
解析っ得意な人ちょっと調査を頼む…全然アセンブリのことわかんなくて…
もしかしたらこの辺にチートコードとかプレイのキー入力情報的なものもあるかもしれんし。
ついでだが、アドレスはROM中ではなくRAM中でのものに変換されてるっぽい。具体的にはバンク80はROMのバンク00、バンクB○はROMのバンク1○に対応している模様(たぶん)。
おそらく検証したのはUS版だろうけど日本語版でも同じところいじったらフリーズしたし多分同じ場所だと思う。


$80:85E4 (JMP) Leads to the Rareware/Nintendo Presents opening sequence

$80:85EF (JMP) Leads to the Title Screen

$80:87B9 (JMP) Leads to the Cast of Characters and Credits sequences

$80:895F (JSL), $80:8963 (JSR) Upload data to VRAM; prior to execution, the VRAM destination should be stored in register $2116,
X should contain the bank byte of the data pointer, the accumulator should contain the lower 16 bits of the pointer, and Y should contain the length of the data.

$80:97CD (JMP) Game Play Mode Selection/Music Test/Cheat Mode Screen

$80:9F85 (JMP) Cutscene of Crocodile Isle sinking

$80:A5F1 (JMP) Select a File Screen

$80:B109 (JSR) Set 0x800 bytes of VRAM to zero, starting at the location stored in the accumulator

$80:B3D7 Actual start of the Title Screen routine

$80:B5FA (JMP) (c)1995 Nintendo Screen

$80:F3FB (JSL) Actual start of the Cast of Characters sequence

$80:FA7C Game Over sequence

$B5:8003 (JSL) Play a sound effect; The low byte of A should contain the value of the sound effect to be played, and the high byte should contain the channel number.
For some reason, this subroutine starts at a JMP instruction which leads to $B5:8030.

$B5:800C (JSL) Upload music set data to SPC RAM and begin playing track #$00; A should contain the value of the music set,
which is used as an index for the pointer tables at $EE:1086 and $EE:117B (see the Data section below). As with the subroutine above, this one redirects to $B5:8106.

$B5:800F (JSL) Upload music set data to SPC RAM and begin playing the track number specified in the high byte of A;
the low byte of A should contain the value of the music set. As with the subroutines above, this one jumps to $B5:8132.

$BB:8089 (JSL) Upload color data to CGRAM; A should contain the lower 16 bits of the pointer, Y should contain the starting palette index,
and X should contain the number of indices to upload divided by 8. The bank byte is always $FD, meaning all color data can be found there.

$BB:8B66 (JSR) Update Diddy and Dixie's palettes

471 :名無しさん@お腹いっぱい。:2014/02/20(木) 11:29:17.96 ID:sQOShwKI
連投すまんが、もし↑の解析がうまくいったら普通にタイトル画面とか変えれると思う。
現に、DK2のボスラッシュタイトル画面変えてるし。

472 :名無しさん@お腹いっぱい。:2014/02/21(金) 13:35:57.41 ID:2iz6/Oiq
>>468
それだとステージ設定?が変わっちゃってスプライトはそのままみたい・・・

473 :名無しさん@お腹いっぱい。:2014/02/21(金) 17:32:06.23 ID:xPlkD6bf
>>472 すまん、DK1と取り違えてた。3E0000+(ステージ番号)×2が正解。

474 :名無しさん@お腹いっぱい。:2014/02/21(金) 18:47:38.91 ID:2iz6/Oiq
>>473
わざわざありがとう!

475 :名無しさん@お腹いっぱい。:2014/02/27(木) 21:05:35.24 ID:FI9a/1MU
SDK2の改造ツールどこかにありませんか・・・

476 :からあげ:2014/02/27(木) 22:09:04.61 ID:2wLtBA8z
>>475
http://www.geocities.jp/msk_rb/にある。

477 :名無しさん@お腹いっぱい。:2014/02/28(金) 22:24:10.19 ID:AVl0b+po
DK2の改造ツールを起動しいざROMを読み込むとご不便をおかけして申し訳御座いませんとメッセージが出て強制終了してしまいます・・
どうすればいいの?

478 :からあげ:2014/03/01(土) 10:28:15.99 ID:OBSi3a0/
>>477
日本語版・Ver1.0のやつを通してる?(フォーマットはNormal/InterleaveどちらでもOK)
1.1通すとバグるかも。
ついでにDK2以外を通したらバグるのは当然だからそれはないよね?

治らないならbcc版使ってみるかしたらいいと思う。(一緒に入ってたはず)

479 :名無しさん@お腹いっぱい。:2014/03/01(土) 15:00:22.77 ID:sgNcH/1m
ドンキー3の改造ツールって見ないよね。
どこかに落ちていないかな?

480 :からあげ:2014/03/01(土) 17:27:51.45 ID:OBSi3a0/
>>479
sdk2 editorをそのまんま3にも対応させましたって感じのツールが上げ底の作者のページに一緒にあったと思ったんだが…
sdk3 editorってやつが

481 :名無しさん@お腹いっぱい。:2014/03/02(日) 10:01:01.56 ID:VhIbSngQ
おーあった!
というかこのスレ過疎状態だな・・・
前より活気がなくなってるし

482 :からあげ:2014/03/02(日) 11:12:56.06 ID:xgpe/PAc
>>481
いや、みんな飛びつきたくなりそうなネタが掘り出せてないからだろ、きっと

483 :からあげ:2014/03/03(月) 23:24:28.32 ID:yAO17i4J
>>428で思ったんだが、合作やりたい(やってもいい)って人どのぐらいいるのかな?
割といるなら合作っていうのもアリだとは思うんだが。

484 :からあげ:2014/03/07(金) 09:45:36.72 ID:X9MebFkh
>>347関連だが…
水位の初期レベルデータを一応発見することはできました。ただし、それを操っているポインタの書式が意味不明すぎて
(ぶっちゃけ思しきものは見つけたが本当にそれだという確証もない)まだなかなかうまくいかないって感じ。
しかもおそらくもともと水中面であるように作られたステージしかポインタがないっぽいので新しく、例えば1-5を水中面にしようとするとかなり厳しそう。
もともと水中面でないステージの初期水位はスタートのy座標からある一定値を引いた感じのところっぽい。(スタートを動かすとそれに連動して初期水位も変わるため)
だれか解析手伝ってくれてもOKって人いるかな?いたら所在アドレス情報書くんだけど…

485 :からあげ:2014/03/08(土) 13:33:07.34 ID:jYp3DsKw
水位変化スプライトの補足
どうやら水位変化スプライトはざっくり2種類あって、
@画面内に入れば水位変化を起こすもの(親スプライトABC8から継承)
Aコングが触れば水位変化を起こすもの(親スプライトABE2から継承)
がある模様。
Aは触らないと水位変化が起きないので、一般的には水位変化には不向きで、「絶対に触る」ような場所に置くことになる。
@は画面内に入ればOKなので汎用性大

ちなみに水面の高さは、(実際に設定したいと思う座標)+約0x130ぐらいで設定するとちょうどいい感じになります。
なお、上に行くほどy座標が小さくなるため、水面を上げる場合は、座標を減らすと考えて負の速度、下げる場合は座標を増やすと考えて正の速度を当てるとうまくいきます。

486 :名無しさん@お腹いっぱい。:2014/03/08(土) 15:27:22.99 ID:2II4SQpw
乙です。初期水位データとは$3BAC69〜$3BACD4のことですか?

487 :からあげ:2014/03/08(土) 15:33:15.62 ID:gneTeX5V
>>486
そうですね。あとはポインタをいじくれるかどうか…増やせるかどうか…ってとこですね。
ちな私は1-5でやりたかったので3-5とステージ交換することで決着したんですが^^

488 :名無しさん@お腹いっぱい。:2014/03/08(土) 15:54:51.59 ID:2II4SQpw
その直前の$3BAC3D〜$3BAC68にあるデータは
・初期水位データを設定するステージの番号
・その面の初期水位データは$3BAC69〜$3BACD4のどこから始まるのか
の2つの情報をペアにしたもののようです

489 :からあげ:2014/03/08(土) 16:25:24.04 ID:gneTeX5V
>>486
見てみたがいまいちよくわからん…ついでにこの領域って拡張可能なのかな?

ちな3BAC07〜にある69ACBBを別のアドレスにしたらステージ01(暗闇〜)の水位データが変わった。
3BAC0A〜の3バイトぐらいをいじくったらフリーズした。
この周辺のデータもなんか関係しているようなんだがどうだろうか?

490 :名無しさん@お腹いっぱい。:2014/03/08(土) 17:03:55.30 ID:2II4SQpw
$3BABD5〜$3BAC3Cはデータではなくその後に続く水位データを
ロードしてるコード(プログラム)だと思います

データについて。例えば、$3BAC43の所を見ると15 0Eとなっていますが
SDK2 Editorのステージの選択の項目にふってある番号を見ると
15は船ぞこダイビングのことだとわかります
次に初期水位データを最初から2バイトずつにわけて番号を付けます
$3BAC69にある00 01は00、$3BAC6Bにある00 01は01、…
と考えていくと$3BAC85にある10 07が0Eとなります
これは船ぞこダイビングの初期水位データが$3BAC85から始まっていて
面の最初から開始した場合の水位座標が0x0710であることを示します
後に続く0x0470はコンティニューバレルから再開した場合の初期水位
0x0560はボーナスから帰ってきたときの初期水位
0x0310はワープした後の初期水位と思われます

$3BACD5以降は別のコードなので単純に拡張することはできませんが
スタートコンティニューボーナスワープの数の合計と水位データの数が
合わないので、もしかしたら未使用の水位データがあって
そのスペースを使って増やせるかもしれません
無理ならROM拡張で増やした領域等にデータを引越せば一応可能です

491 :からあげ:2014/03/08(土) 17:18:10.84 ID:gneTeX5V
>>490
ってことは、3BAC07〜の3バイトが(おそらく)水位データの列の開始アドレスってことなのかな?
そんでこれをまあいい感じにして生データをBANK40〜の適当な場所にでも移せばまあ好きなだけ作れるってことでいいってことかな?
というかROM拡張ついにできるのかw

492 :名無しさん@お腹いっぱい。:2014/03/08(土) 21:29:28.57 ID:2II4SQpw
引っ越しする場合に書き換えるコード内のアドレスは以下の4ヶ所です
$3BABEAにある$BBAC3D、$3BABF2にある$BBAC3D
$3BABFAにある$BBAC3E、$3BAC07にある$BBAC69
実際にROM拡張して引っ越しできるのを確認しました

拡張すれば可能と書いてしまいましたが0x98バイト程度のデータなら
ROM拡張するまでもなくその辺の空き領域で十分ですね
このデータの近くなら$3BC8EB〜$3BE7FFあたりに0x1F15バイトの
空きがあるのでここに引っ越せばいい気がします

493 :からあげ:2014/03/08(土) 22:14:46.17 ID:gneTeX5V
>>492
乙です。拡張領域は手当たり次第にいろんな空き領域に追加したBGMやら波形サンプルの生データでも入れておくか。
今確認したらこの領域も埋めちゃってたし…

494 :たー:2014/03/11(火) 14:19:57.86 ID:qQT4yw7R
ドンキー2のステージ名どうやってかえるんですか?

495 :からあげ:2014/03/11(火) 17:08:42.21 ID:E/7Pc/fx
>>494
改造ツールのエリアの設定から変えれる

496 :たー:2014/03/11(火) 21:23:27.63 ID:qQT4yw7R
あっこれって使えない文字とかあるのね。

497 :たー:2014/03/11(火) 22:25:51.98 ID:qQT4yw7R
ろだのSDK2マップチップセット(強力圧縮版)の使い方がいまいちわからないです。

498 :たー:2014/03/12(水) 01:45:35.64 ID:7DTcggIl
自己解決しました

499 :たー:2014/03/12(水) 01:49:12.59 ID:7DTcggIl
からあげさん
地形を葬った後にsdk2mapファイルをROMに直接貼り付けるらしいのですが、
貼り付け方の仕方がわかりません。

500 :からあげ:2014/03/12(水) 18:20:55.03 ID:4oFSx+Px
>>499
エディタのほうからインポートできる
F9だったと思う

501 :たー:2014/03/16(日) 11:43:12.74 ID:QjmaOjZn
ありがとうございます!
僕初心者なんですけど合作とかしてみたいなーって思ってるんですけど皆さんはそういうのOKなんですか?

502 :からあげ:2014/03/16(日) 14:30:00.85 ID:v1X7Wcjj
>>501
別にワシはかまんのじゃが、まぁ、もちょいいた方がやりやすいのは事実だね。

ただ合作とするといろいろ面倒なことが多くてね

既知の問題点
スプライトの空き領域少なすぎ
マップ干渉したらどーすんの?
その他もろもろ

一応解決案としてはいくつかあるんやがそうするとまた合作用にROMを作り直すのに非常に手間がかかる問題。
そしておそらく6MBに拡張するから既存のエディタが使えない問題。

これをクリアしてからやな

ちなエディタの6MB ROM対応化は検討はしている(こちらの個人的にやってる方で拡張する予定があるから)
一応ソース見たらROMサイズの記述があったからそこだけ直してコンパイルするといけると思うが。

503 :からあげ:2014/03/16(日) 14:35:34.39 ID:v1X7Wcjj
一応他の人にも
sdk2 editorの6MB対応化はsrcフォルダ内のproject.hに記述されている

#define ROM_SIZE_NO_HEADER 0x400000



#define ROM_SIZE_NO_HEADER 0x600000

に書き換えてコンパイルしたら行けるような気がします(恥ずかしながら私はコンパイルできないので友人に頼んでるんですが…)

C++のコンパイルができる人、大丈夫かどうか確認してくださるとありがたいです。

504 :名無しさん@お腹いっぱい。:2014/03/16(日) 16:39:19.75 ID:GW3BHAPG
自分も合作をやってみたい。
だけどいろいろと面倒だし、そもそも合作ができる程の人数がいるのか?
とりあえず合作に賛成してくれる人を調べてみよう(提案)

dkeditよりもsdk2editorの方が便利だからsdk2editorをベースにして新しいSDK1のツールを作っているけど、プログラミングは初心者レベルだから全く捗らん…
他人のソースを解読するのがこんなに難しいとは思わなかったわ

>>503
マクロだから勝手に変えたらまずいんじゃない?
ソースコードを全部眺めていないから何とも言えないけど、6MBに対応できるように該当の箇所を弄ればいいと思う…

505 :からあげ:2014/03/16(日) 18:32:05.10 ID:v1X7Wcjj
>>504
ついにDK1の新ツール降臨か?(いや、焦らせてすまん)
出来れば海面対応になると気持ちい。(どうも座標体系はy座標の開始値が違うだけで本質的には同じのよう)

ぶっちゃけ俺C++わかんねーしそもそもC#で挫折した人だからいい感じにお願いします

506 :名無しさん@お腹いっぱい。:2014/03/16(日) 19:42:45.40 ID:GW3BHAPG
>>505
さっきも言った通り、プログラミング初心者レベルなので公開はかなり先になりそう…
そもそも何で改造ができるのか分からないんで、
元のソースとか資料とかを見てバイナリから改造できるようになろうと思います。

バイナリを見てもさっぱり分からないんで解析とかは皆様に任せます(他力本願)

507 :名無しさん@お腹いっぱい。:2014/03/17(月) 11:51:34.55 ID:1ekMBGgd
今ってドンキー改造してるのって何人くらいいるんだろうか...

508 :からあげ:2014/03/17(月) 12:12:17.11 ID:5Zqv2yi0
>>507
wikiの名鑑には25人いて、そこに載ってない割と最近始めた人がまあ5人ぐらいってところかな

で、大部分が引退か休止か逃亡なので、実際的に活動してるのはまあ5、6人もいるかな?って程度だと思う

509 :名無しさん@お腹いっぱい。:2014/03/17(月) 15:55:44.96 ID:sR0bHHMe
改造はひとまずお休みにして、解析に専念してる人もいるしね

510 :からあげ:2014/03/19(水) 14:05:55.31 ID:JpVM2Nms
>>506
もし必要なら今わかってるDK1の解析結果とかデータ形式とかまとめたもの作るけど

511 :たー:2014/03/19(水) 15:05:50.45 ID:LM0mztK5
ぜひ作ってください。

512 :>>504:2014/03/19(水) 16:23:57.33 ID:1wC7XZau
>>510
作ってください。よろしくお願いします。

513 :からあげ:2014/03/20(木) 16:45:25.06 ID:jOBeEetz
>>511,>>512
自分の改造のこともあるからすごく遅くなるかもしれんがそれでもいい?

165 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)