はむのブログ Ver.4.8.6 ~= Irregular child

Imaha486の雑記用ブログ。ツイッターもやってます http://twitter.com/Imaha486

広告

※このエリアは、60日間投稿が無い場合に表示されます。記事を投稿すると、表示されなくなります。

トリガーハート・エグゼリカ

2006-05-31 23:37:22 | Weblog
なんだか近所のゲーセンによくわからないSTGがあったのでレッツプレイ。
…結構おもすれー(・∀・)

トリガーハート・エグゼリカ(オフィシャルが死んでるのでgpara紹介記事)

でも、クルエルティア使ってショット押しっぱなしで撃ちながら、
キャプチャボタンを連打してスナップでダメージ当てたほうが
敵投げるより強い気がする。
コメント
この記事をはてなブックマークに追加

マリオも一段落ついたので

2006-05-31 13:04:07 | Weblog
冷麺ぴすぴすことPeace@Piecesはじめました。
ある意味、ななついろ日記2nd Seasonっ!(発売順は逆だけど('A`;)

なぜか今更2004年のゲームを買ってしまったわけで。
ゲームシステムがちょっと古くてユーザインタフェースもイマイチですが、
シナリオ構成やのいぢ絵もさることながら水月陵さんの曲がすばらしー。
(ヒロインの声が音ちんなのもグッドでぃす)

ルーン信者でありますが、ユニゾンシフトも贔屓にしていきたい所存であります。

~アマゾンさんリンク~
■Peace@Pieces

■わんもあ@ぴぃしぃず
コメント
この記事をはてなブックマークに追加

でっかくてあしがながいくも

2006-05-29 20:03:07 | Weblog
http://mdxonline.dyndns.org/archives/2006/05/post_1686.html
Moonlightさんとこの日記より。

大昔は夜蜘蛛は縁起が悪いから殺せ(逆に朝蜘蛛は殺してはいけない)
なんて言われてたこともありましたが、完全オートで害虫駆除してくれるので、
「家蜘蛛は殺さない」のが賢明であります。

見た目は不気味ですが、害は無いので逃がしてやりましょうね('A`)
コメント
この記事をはてなブックマークに追加

ニンテンドーWii 18000円???

2006-05-28 22:14:03 | Weblog
http://kakaku.livedoor.com/item_info/2016695672.html
Benzoさんの発言@#GBAマジコンより

価格18,000円(税込)

(゜д゜)マジでーーーーーーー!?

・・・

3万円を持ってPS3を買いに行き、結局、悲しそうに帰っていく親子のAAが、
今日のスレで以下のAAに変化していました。

「ほんとにWii買ってくれるの!?」
「今日はお前の誕生日だろ」
「・・・カーチャンお金あるの?お金大丈夫?」
「カーチャン今月残業いっぱいしたからね。3万あるから余ったお金で回転寿司行こうねえ」

       J( 'ー`)し
        (  )\('∀`)
        ||  (_ _)ヾ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

(つдT)
コメント
この記事をはてなブックマークに追加

M3-PerFectファームウェアJ20βでました

2006-05-28 06:59:23 | Weblog
M3FLASH.jp
細かい更新情報については各ニュースサイトを見て頂くとして、
メモリダンプやARM7ブートアドレス自動補正などはまだ未実装のようです。

というわけで改造コードを使う手順は相変わらず
1.M3 game manager V20でNDSROMとdipstar.ds.gbaを転送。
2.DipStar正式版同封のm3dip.exeで転送したNDSROMにパッチを当てる。
3.M3のゲームメニューからdipstar→NDSROMの順番にAボタンを押す。
4.Lを押しながら起動でコード入力、他スロットボタンを押しながら起動でコード適用。
という流れなのでちょっと面倒。
--
追記
なお、M3 game manager V20に"Cheat Code"オプションがありますが、
チェックしてもARM7のブートアドレスを書き換えてDipStar→NDSROMのダブル起動ができるだけで、
コードファイルを選択しても何も変化は無いっぽいです。
むしろ「コードファイルを選択して変化を起こす」ってどうやって実装するんだろう…。
NDSROMファイルにSRAM書き換え情報を埋め込んで起動ごとにDipStarに渡すのかな???
--

ちなみにニュー・マリオブラザーズが今まで「Normal」でしか動かなかったものが、
「Fast boot」が可能になったので起動が速くてウマーです。
また、この転送モードの場合はDipStar連動ができますので、
M3しか持ってない人でもニュー・スーパーマリオブラザーズの改造コードを
使えるようになった、ということですね。
とりあえずDipStar連動の動作検証してみましたが、

・ニュースーパーマリオブラザーズの改造コードは問題無く使える。
SRAMへのメモリダンプコードはDipStarではなくNDS側のセーブファイル内に上書き保存される。

まあ後者は仕方ないとはいえ、セーブデータを破壊する可能性が超高いので、
思いっきり自己責任でお使いください。
(オフセット3000h~6000h上書きでセーブデータ1は問題なく使えていますが、
 セーブデータ2・3がチェックサムエラーで壊れる気が…)

まあまともに解析したい人はEZ-FLASH1かEZ-FLASH2買ってくださいということで。
コメント (1)
この記事をはてなブックマークに追加

ニュー・スーパーマリオブラザーズ マスターコード2 他

2006-05-28 06:10:27 | Weblog
以前のマスターコードでは特定のマップ(2-砦など)に入ると
マップデータとコードが衝突してフリーズしていたのですが、
アドレス02002000に4キロバイトほどの空き領域があったので
試しにそこに常駐するようにしてみました。
今までのコードと比べた変更個所は以下の通り。
A237C01C EA0CEEB0→A237C01C EAFEF8B0 // b 0237F800→b 02002000
C0000000 0237F800→C0000000 02002000 // 常駐先0237F800→02002000

ついでに今までの改造コードのまとめも。

DSゲーム改造ツールProject-DipStar- Ver4.00(先行版)
http://hp.vector.co.jp/authors/VA018359/nds/dipstar.ds.gba

『ニュー・スーパーマリオブラザーズ/任天堂』
@マスターコード(新型)
A20008F8 EA0DEDC0
A237C000 E92D0003
A237C004 E59F000C
A237C008 E59F100C
A237C00C E5801000
A237C010 E8BD0003
A237C014 E12FFF11
A237C018 02043D38
A237C01C EAFEF8B0
C0000000 02002000
F237C020 E12FFF1E

@コイン1枚を取ると1UP
2201FE50 E1A00000

@残機99制限解除(最大255)
2201FFC8 E35000FF

@スコア99999999
2208A99C 05F5E0FF

@マリオ×99機
0208A97C 00000063

@セレクトボタンを押すとコインが増える
C1000000 100003FB
30100001 0208A994

@ストックアイテム固定 (00=無し 01=キノコ 02=フラワー 03=マメキノコ 04=青こうら 05=巨大キノコ)
0208A944 000000XX

@セレクトボタンでストックアイテム変更
C1000000 100003FB
0208A944 000000XX
コメント
この記事をはてなブックマークに追加

Irregular Child保管庫久々に更新してみたテスト

2006-05-27 09:56:29 | Weblog
ニュー・スーパーマリオブラザーズ改造コード追加っと。

@アイテムストック変更 (00=無し 01=キノコ 02=フラワー 03=マメキノコ 04=青こうら 05=巨大キノコ)
0208A944 000000XX

というわけでこれに関する動画を保管庫にアップしました。
Irregular Child保管庫
なかなか見られない光景が楽しいでぃす。

・・・

そういえば、特定ステージで常駐アドレスとゲームデータが衝突してフリーズするっぽ。
マスターコードをもう少し組みなおすほうが良いかもしれんですなぁ。
コメント
この記事をはてなブックマークに追加

ニュースーパーマリオを実機メモリダンプ

2006-05-27 01:23:14 | Weblog
昨日、スコア格納アドレスが208A99Cであると特定できたので、
この周囲であるアドレス208A900~208AA00までの512バイトを
SRAMのオフセット3000hにダンプするコードを作ってみました。

@DipStar用コード(マスターコード+吸出しプログラムコードセット)
@※他の改造コードとの併用はできません。
A20008F8 EA0DEDC0
A237C000 E92D0003
A237C004 E59F000C
A237C008 E59F100C
A237C00C E5801000
A237C010 E8BD0003
A237C014 E12FFF11
A237C018 02043D38
A237C01C EA0CEEB0
A237F800 E92D003F
A237F804 E59F0044
A237F808 E1D010B0
A237F80C E35100FF
A237F810 1A00000B
A237F814 E59F0030
A237F818 E3A01A06
A237F81C E5801000
A237F820 E59F102C
A237F824 E59F202C
A237F828 E59F302C
A237F82C E4D14001
A237F830 E4C34001
A237F834 E2422001
A237F838 E3520000
A237F83C 1AFFFFFA
A237F840 EAFFFFFE
A237F844 E8BD003F
A237F848 E12FFF1E
A237F84C 04000204
A237F850 04000130
A237F854 0208A900 ;ここを変更すると吸出し対象アドレスをいじれる。
A237F858 00000200 ;吸出しサイズ。デフォルトは0x200(512)バイト。
A237F85C 0A003000 ;SRAM保存先。念のため3000hからにしてある。

ゲーム中にLRボタンを同時に押すとフリーズし、SRAMに書き出します。
EZ-FLASHでDipStarを動かしている人はEZClient.exeのBak saver機能で
SRAMをファイル出力してオフセット3000h以降を見ればウマーです。


追記

とりあえずこれでコード発見
@マリオ×99機
0208A97C 00000063
@セレクトボタンを押すとコインが増える
C1000000 100003FB
30100001 0208A994
コメント (3)
この記事をはてなブックマークに追加

ニュースーパーマリオブラザーズのマスターコード

2006-05-27 00:14:30 | Weblog
一昨日公開したニュー・スーパーマリオブラザーズのマスターコードについて、
パンヤヲさんのツッコミで1行抜けてたことが判明。

正しくは以下の通りでぃす。
@マスターコード
A20008F8 EA0DEDC0 ←抜けてたのはコレ
A237C000 E92D0003
A237C004 E59F000C
A237C008 E59F100C
A237C00C E5801000
A237C010 E8BD0003
A237C014 E12FFF11
A237C018 02043D38
A237C01C EA0CEEB0
C0000000 0237F800
F237C020 E12FFF1E
コメント
この記事をはてなブックマークに追加

ニュースーパーマリオブラザーズ改造コード

2006-05-26 06:24:10 | Weblog
昨日のマスターコード+スローコードだけだと寂しいので。

@コイン1枚を取ると1UP
2201FE50 E1A00000
要はコイン取得ルーチンをハックしてるわけですが当然マスターコード必須です。
むしろ2面で99機になるので、はっきりいってこんなコード要りませぬ(ぉ

@残機99制限解除(最大255)
2201FFC8 E35000FF
下画面は元のままですがステージ開始画面などの表示は文字化けして、
なつかしのファミコン版マリオ127機みたいな感じですな。
でもどう考えても99で十分でぃす。

・・・

コードだけ上げても仕方ないので解析方法も。

スコアは 99999999 が最大値ですが、逆アセリストから最大値比較処理は見つかりません。
そこでマリオおなじみ「スコア上昇定数(100 200 400 800 1000 2000 4000 8000..)」を基点に調べます。
hasteDSのメモリデータをファイルダンプした後、64h(100)とC8h(200)が並んだ個所を探し、
オフセットC0AA8(アドレス20C0AA8)から
64 00 00 00 = 100
C8 00 00 00 = 200
90 01 00 00 = 400
20 03 00 00 = 800
E8 03 00 00 = 1000
D0 07 00 00 = 2000
A0 0F 00 00 = 4000
40 1F 00 00 = 8000
これでアドレス20C0AA8に、スコアに加算するテーブルが格納されているのがわかります。
試しにこれを書き換えてみると…
@取得スコア大幅上昇(テーブル書き換え)
420C0AA8 00989680
20000008 00000004
コインは変化していませんが、ブロック破壊時にスコアが1000万ほど増えました。

さらに逆アセンブルリストから同アドレス参照処理を探し、
:0209A0E8 E59F1028 ldr r1,[r15, #+0x28] ;r15+0x28=*(0209a118)=#34343592(0x020c0aa8)
:0209A0EC E1A00004 mov r0,r4 ;r0=0(0x0)
:0209A0F0 E7911105 ldr r1,[r1,+r5, lsl #0x2]
:0209A0F4 EBFE171D bl 0201FD70
r1レジスタにテーブルのアドレスを入れる。
さらに100~8000のどのスコアを足すかの指標r5と加えたものをr1に入れ、
アドレス0201FD70のスコア加算処理をコールしています。
(r5はLSL=左シフト2ビットで4倍することでWORD型として4の倍数加算)

コール先の加算命令周辺を試しに破壊。
:0201FD80 E79C3100 ldr r3,[r12,+r0, lsl #0x2]
:0201FD84 E0833001 add r3,r3,r1 //ここを潰すとスコアが増えない
:0201FD88 E78C3100 str r3,[r12,+r0, lsl #0x2]
つまりr3がスコア値であり、r12+r0 がスコア格納アドレスとなる。
ここで add r3,r3,r1 を add r3,r12,r0 (スコア格納アドレスをr3に入れる)コードを実行
2201FD84 E08C3000

そしてゲーム中に何らかのスコア変化を加えるとスコアが 34122140 (208A99C) になり、
スコア格納アドレスが 208A99C であるということが確定する。

@スコア99999999
2208A99C 05F5E0FF
コメント
この記事をはてなブックマークに追加