Create functionally equivalent C for handwritten RNG2 functions
This commit is contained in:
parent
1b0e512e2a
commit
9c7ba4da9d
|
@ -168,7 +168,7 @@
|
||||||
build/ROMID/game/sky.o (section); \
|
build/ROMID/game/sky.o (section); \
|
||||||
build/ROMID/game/playermgr.o (section); \
|
build/ROMID/game/playermgr.o (section); \
|
||||||
build/ROMID/game/crc.o (section); \
|
build/ROMID/game/crc.o (section); \
|
||||||
build/ROMID/game/rng2.o (section); \
|
build/ROMID/game/rng2asm.o (section); \
|
||||||
build/ROMID/game/vtxstore.o (section); \
|
build/ROMID/game/vtxstore.o (section); \
|
||||||
build/ROMID/game/explosions.o (section); \
|
build/ROMID/game/explosions.o (section); \
|
||||||
build/ROMID/game/smoke.o (section); \
|
build/ROMID/game/smoke.o (section); \
|
||||||
|
|
|
@ -169,7 +169,7 @@
|
||||||
build/ROMID/game/sky.o (section); \
|
build/ROMID/game/sky.o (section); \
|
||||||
build/ROMID/game/playermgr.o (section); \
|
build/ROMID/game/playermgr.o (section); \
|
||||||
build/ROMID/game/crc.o (section); \
|
build/ROMID/game/crc.o (section); \
|
||||||
build/ROMID/game/rng2.o (section); \
|
build/ROMID/game/rng2asm.o (section); \
|
||||||
build/ROMID/game/vtxstore.o (section); \
|
build/ROMID/game/vtxstore.o (section); \
|
||||||
build/ROMID/game/explosions.o (section); \
|
build/ROMID/game/explosions.o (section); \
|
||||||
build/ROMID/game/smoke.o (section); \
|
build/ROMID/game/smoke.o (section); \
|
||||||
|
|
|
@ -168,7 +168,7 @@
|
||||||
build/ROMID/game/sky.o (section); \
|
build/ROMID/game/sky.o (section); \
|
||||||
build/ROMID/game/playermgr.o (section); \
|
build/ROMID/game/playermgr.o (section); \
|
||||||
build/ROMID/game/crc.o (section); \
|
build/ROMID/game/crc.o (section); \
|
||||||
build/ROMID/game/rng2.o (section); \
|
build/ROMID/game/rng2asm.o (section); \
|
||||||
build/ROMID/game/vtxstore.o (section); \
|
build/ROMID/game/vtxstore.o (section); \
|
||||||
build/ROMID/game/explosions.o (section); \
|
build/ROMID/game/explosions.o (section); \
|
||||||
build/ROMID/game/smoke.o (section); \
|
build/ROMID/game/smoke.o (section); \
|
||||||
|
|
|
@ -169,7 +169,7 @@
|
||||||
build/ROMID/game/sky.o (section); \
|
build/ROMID/game/sky.o (section); \
|
||||||
build/ROMID/game/playermgr.o (section); \
|
build/ROMID/game/playermgr.o (section); \
|
||||||
build/ROMID/game/crc.o (section); \
|
build/ROMID/game/crc.o (section); \
|
||||||
build/ROMID/game/rng2.o (section); \
|
build/ROMID/game/rng2asm.o (section); \
|
||||||
build/ROMID/game/vtxstore.o (section); \
|
build/ROMID/game/vtxstore.o (section); \
|
||||||
build/ROMID/game/explosions.o (section); \
|
build/ROMID/game/explosions.o (section); \
|
||||||
build/ROMID/game/smoke.o (section); \
|
build/ROMID/game/smoke.o (section); \
|
||||||
|
|
|
@ -168,7 +168,7 @@
|
||||||
build/ROMID/game/sky.o (section); \
|
build/ROMID/game/sky.o (section); \
|
||||||
build/ROMID/game/playermgr.o (section); \
|
build/ROMID/game/playermgr.o (section); \
|
||||||
build/ROMID/game/crc.o (section); \
|
build/ROMID/game/crc.o (section); \
|
||||||
build/ROMID/game/rng2.o (section); \
|
build/ROMID/game/rng2asm.o (section); \
|
||||||
build/ROMID/game/vtxstore.o (section); \
|
build/ROMID/game/vtxstore.o (section); \
|
||||||
build/ROMID/game/explosions.o (section); \
|
build/ROMID/game/explosions.o (section); \
|
||||||
build/ROMID/game/smoke.o (section); \
|
build/ROMID/game/smoke.o (section); \
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include "game/player.h"
|
#include "game/player.h"
|
||||||
#include "game/game_0c33f0.h"
|
#include "game/game_0c33f0.h"
|
||||||
#include "game/playermgr.h"
|
#include "game/playermgr.h"
|
||||||
#include "game/game_1291b0.h"
|
#include "game/rng2.h"
|
||||||
#include "game/vtxstore.h"
|
#include "game/vtxstore.h"
|
||||||
#include "game/gfxmemory.h"
|
#include "game/gfxmemory.h"
|
||||||
#include "game/explosions.h"
|
#include "game/explosions.h"
|
||||||
|
@ -48,6 +48,8 @@
|
||||||
#include "gbiex.h"
|
#include "gbiex.h"
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
|
||||||
|
void rng2SetSeed(u32 seed);
|
||||||
|
|
||||||
void *var8009ccc0[20];
|
void *var8009ccc0[20];
|
||||||
s32 g_NumChrs;
|
s32 g_NumChrs;
|
||||||
s16 *g_Chrnums;
|
s16 *g_Chrnums;
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#include "game/menu.h"
|
#include "game/menu.h"
|
||||||
#include "game/inv.h"
|
#include "game/inv.h"
|
||||||
#include "game/playermgr.h"
|
#include "game/playermgr.h"
|
||||||
#include "game/game_1291b0.h"
|
#include "game/rng2.h"
|
||||||
#include "game/vtxstore.h"
|
#include "game/vtxstore.h"
|
||||||
#include "game/explosions.h"
|
#include "game/explosions.h"
|
||||||
#include "game/smoke.h"
|
#include "game/smoke.h"
|
||||||
|
@ -78,6 +78,8 @@
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
|
|
||||||
|
void rng2SetSeed(u32 seed);
|
||||||
|
|
||||||
struct weaponobj *g_Proxies[30];
|
struct weaponobj *g_Proxies[30];
|
||||||
f32 g_GasReleaseTimerMax240;
|
f32 g_GasReleaseTimerMax240;
|
||||||
bool g_GasEnableDamage;
|
bool g_GasEnableDamage;
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include "game/player.h"
|
#include "game/player.h"
|
||||||
#include "game/game_0c33f0.h"
|
#include "game/game_0c33f0.h"
|
||||||
#include "game/playermgr.h"
|
#include "game/playermgr.h"
|
||||||
#include "game/game_1291b0.h"
|
|
||||||
#include "game/vtxstore.h"
|
#include "game/vtxstore.h"
|
||||||
#include "game/gfxmemory.h"
|
#include "game/gfxmemory.h"
|
||||||
#include "game/explosions.h"
|
#include "game/explosions.h"
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
#include <ultra64.h>
|
||||||
|
#include "constants.h"
|
||||||
|
#include "bss.h"
|
||||||
|
#include "lib/rng.h"
|
||||||
|
#include "data.h"
|
||||||
|
#include "types.h"
|
||||||
|
|
||||||
|
u64 g_Rng2Seed = 0xab8d9f7781280783;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a random number between 0 and 4294967295.
|
||||||
|
*/
|
||||||
|
u32 random2(void)
|
||||||
|
{
|
||||||
|
g_Rng2Seed = ((g_Rng2Seed << 63) >> 31 | (g_Rng2Seed << 31) >> 32) ^ (g_Rng2Seed << 44) >> 32;
|
||||||
|
g_Rng2Seed = ((g_Rng2Seed >> 20) & 0xfff) ^ g_Rng2Seed;
|
||||||
|
|
||||||
|
return g_Rng2Seed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the given seed as the RNG seed. Add 1 to make sure it isn't 0.
|
||||||
|
*/
|
||||||
|
void rng2SetSeed(u64 seed)
|
||||||
|
{
|
||||||
|
g_Rng2Seed = seed + 1;
|
||||||
|
}
|
|
@ -11,7 +11,7 @@ glabel g_Rng2Seed
|
||||||
.text
|
.text
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* u32 random(void)
|
* u32 random2(void)
|
||||||
*
|
*
|
||||||
* Generate a random number between 0 and 4294967295.
|
* Generate a random number between 0 and 4294967295.
|
||||||
*/
|
*/
|
||||||
|
@ -36,7 +36,7 @@ glabel random2
|
||||||
dsra32 $v0, $v0, 0
|
dsra32 $v0, $v0, 0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* void rngSetSeed(u32 seed)
|
* void rng2SetSeed(u64 seed)
|
||||||
*
|
*
|
||||||
* Set the given seed as the RNG seed. Add 1 to make sure it isn't 0.
|
* Set the given seed as the RNG seed. Add 1 to make sure it isn't 0.
|
||||||
*/
|
*/
|
|
@ -1,10 +0,0 @@
|
||||||
#ifndef IN_GAME_GAME_1291B0_H
|
|
||||||
#define IN_GAME_GAME_1291B0_H
|
|
||||||
#include <ultra64.h>
|
|
||||||
#include "data.h"
|
|
||||||
#include "types.h"
|
|
||||||
|
|
||||||
u32 random2(void);
|
|
||||||
void rng2SetSeed(u32 seed);
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
#ifndef IN_GAME_RNG2_H
|
||||||
|
#define IN_GAME_RNG2_H
|
||||||
|
#include <ultra64.h>
|
||||||
|
#include "data.h"
|
||||||
|
#include "types.h"
|
||||||
|
|
||||||
|
u32 random2(void);
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue