1ターン経過後アイテム99個 私は実際にGOCネクストは持っていませんが 埋め込みを使えばソフトが無くても コードを作ることが出来ます これを作るきっかけとなったのが 葵屋さんの「短縮コードが使えないと アイテム全部99個は入力がつらい」 という、とものおうちの掲示板書き込みでした すでに葵屋さんがアイテムのワークコードは出していたので それを利用して埋め込みを作る事にしました プログラムの流れを簡単に説明すると 1・アイテムの総種類数をレジスタへ代入 2・アイテムアドレスをレジスタへ代入 3・アイテムのアドレスに99を書き込む 4・総種類数をカウントダウンして0になったらプログラム終了 となります 葵屋さんのアイテムワークコードで 最初のアドレスは01C6F719 アイテムは385(181)種類という事が分かりました これを元に以下のプログラムを作りました 000F0000 li t0,$0182 000F0004 li t1,$0063 000F0008 lui t2,$01C6 000F000C ori t2,t2,$F719 000F0010 blez t0,$000F0028 000F0014 addiu t0,t0,$FFFF 000F0018 sb t1,$0000(t2) 000F001C addiu t2,t2,$0001 000F0020 beqz zero,$000F0010 000F0024 nop 000F0028 jr ra 各行の命令の説明をします 1行目:t0レジスタへ0182を代入 アイテムの総数ですが 6行目で99を書き込む前に減算するので 1多く数値を設定しました 2行目:t1レジスタへ0063を代入 つまり99個という事になります 3行目:t2レジスタの最下位ワードの 上位ハーフワードへ01C6を代入 アイテムアドレスの上位4ケタを代入します 4行目:t2レジスタの最下位ハーフワードへF719を代入 oriはビット演算なので細かく言うとちょっと違いますが これでアイテムアドレスがt2へ格納されます 5行目:t0レジスタの数値が0以下ならば jr ra命令まで分岐してプログラム終了 ここでカウントダウンされた数値を見張ります 6行目:t0レジスタの数値へFFFFを加算 符号拡張されているので-0001になります 7行目:t2レジスタの数値をアドレスとして そのアドレスの数値部分へ アイテムの個数99を書き込む 8行目:t2レジスタの数値に0001を加算 ここでアイテムアドレスをズラします 9行目:処理を5行目へ必ず戻す zero同士の比較分岐なので絶対戻ります 10行目:遅延スロット潰し 11行目:プログラムの流れを元の場所へ戻す このプログラムをどこかから通過させれば 全アイテムが99個になるハズですが ソフト自体は持っていないので 葵屋さんに動作確認をしてもらいました その結果、11行目はjr raからjr v0に変更になりましたが 見事にアイテム全種99個になりました。 これで完成〜 1ターン経過後アイテム全99個 9C8629BC 0C53A7A5 9C9A8328 384EE627 9C9A832C 384DE788 9C9A8330 204CE6E3 9C9A8334 278CB8AE 9C9A8338 FB56E7A2 9C9A833C 374EB00C 9C9A8340 B38DE7A5 9C9A8344 378CE7A6 9C9A8348 0456B010 9C9A8350 1496E79D マスターコード不用 *葵屋さん協力*