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
マスターコード不用
*葵屋さん協力*