本格的なゲームを作るにはランダム関数(乱数)が必要不可欠です。乱数といっても大まかに3種類に分類されていると思って構わないと思います。使い分けをすることによってゲーム全体の裏ハッタリ度がアップすることを願っています。
メルセンヌ・ツイスタ法の使用方法を以下に表します。基本的に中身には一切ふれず、関数の呼び出し名、引数の変更をしました。使用するときはライセンスの確認を怠らないでください。シード値はデフォルトで使用されている5489UL、テストの内容は0x0~0xfまでの値をひたすら生成してカウントアップさせています。
int main(void) { REG_WSCNT = 0x4317; BgInit(); IrqInit(); RndInit(5489UL); KeyInit(); char str[32]; u32 num[0x10]; _Memset(&num, 0x00, sizeof(num)); for(;;) { // VBlankIntrWait(); KeyExec(); // Stop if(KeyGetCnt() & KEY_A) { continue; } num[RndU32() & 0xf]++; for(s32 i=0; i<0x10; i++) { _Sprintf(str, "0x%x:%d", i, num[i]); BgAsciiDrawStr(0, i, str); } } }
とてもバランス良い結果が出力されていると思います。