Skip to content

Commit

Permalink
PS1: Use a little bit less memory
Browse files Browse the repository at this point in the history
  • Loading branch information
UnknownShadow200 committed Mar 28, 2024
1 parent 95a1efe commit 5fb4887
Show file tree
Hide file tree
Showing 7 changed files with 166 additions and 153 deletions.
25 changes: 15 additions & 10 deletions src/Animations.c
Expand Up @@ -12,7 +12,12 @@
#include "Options.h"
#include "Logger.h"

#define LIQUID_ANIM_MAX 64
#ifdef CC_BUILD_LOWMEM
#define LIQUID_ANIM_MAX 16
#else
#define LIQUID_ANIM_MAX 64
#endif

#define WATER_TEX_LOC 14
#define LAVA_TEX_LOC 30
static void Animations_Update(int loc, struct Bitmap* bmp, int stride);
Expand Down Expand Up @@ -292,29 +297,29 @@ static void Animations_Clear(void) {
}

static void Animations_Validate(void) {
struct AnimationData data;
struct AnimationData* data;
int maxX, maxY, tileX, tileY;
int i, j;

anims_validated = true;
for (i = 0; i < anims_count; i++) {
data = anims_list[i];
data = &anims_list[i];

maxX = data.frameX + data.frameSize * data.statesCount;
maxY = data.frameY + data.frameSize;
tileX = Atlas2D_TileX(data.texLoc);
tileY = Atlas2D_TileY(data.texLoc);
maxX = data->frameX + data->frameSize * data->statesCount;
maxY = data->frameY + data->frameSize;
tileX = Atlas2D_TileX(data->texLoc);
tileY = Atlas2D_TileY(data->texLoc);

if (data.frameSize > Atlas2D.TileSize || tileY >= Atlas2D.RowsCount) {
if (data->frameSize > Atlas2D.TileSize || tileY >= Atlas2D.RowsCount) {
Chat_Add2("&cAnimation frames for tile (%i, %i) are bigger than the size of a tile in terrain.png", &tileX, &tileY);
} else if (maxX > anims_bmp.width || maxY > anims_bmp.height) {
Chat_Add2("&cSome of the animation frames for tile (%i, %i) are at coordinates outside animations.png", &tileX, &tileY);
} else {
/* if user has water/lava animations in their default.zip, disable built-in */
/* However, 'usewateranim' and 'uselavaanim' files should always disable use */
/* of custom water/lava animations, even when they exist in animations.png */
if (data.texLoc == LAVA_TEX_LOC && !alwaysLavaAnim) useLavaAnim = false;
if (data.texLoc == WATER_TEX_LOC && !alwaysWaterAnim) useWaterAnim = false;
if (data->texLoc == LAVA_TEX_LOC && !alwaysLavaAnim) useLavaAnim = false;
if (data->texLoc == WATER_TEX_LOC && !alwaysWaterAnim) useWaterAnim = false;
continue;
}

Expand Down
10 changes: 5 additions & 5 deletions src/EnvRenderer.c
Expand Up @@ -73,7 +73,7 @@ static void UpdateFogMinimal(float fogDensity) {
/* Exp fog mode: f = e^(-density*coord) */
/* Solve coord for f = 0.05 (good approx for fog end) */
/* i.e. log(0.05) = -density * coord */
#define LOG_005 -2.99573227355399
#define LOG_005 -2.99573227355399f

dist = (int)(LOG_005 / -fogDensity);
Game_SetViewDistance(min(dist, Game_UserViewDistance));
Expand All @@ -83,7 +83,7 @@ static void UpdateFogMinimal(float fogDensity) {
}

static void UpdateFogNormal(float fogDensity, PackedCol fogColor) {
double density;
float density;

if (fogDensity != 0.0f) {
Gfx_SetFogMode(FOG_EXP);
Expand All @@ -96,10 +96,10 @@ static void UpdateFogNormal(float fogDensity, PackedCol fogColor) {
0.99=z/end --> z=end*0.99
therefore
d = -ln(0.01)/(end*0.99) */
#define LOG_001 -4.60517018598809
#define LOG_001 -4.60517018598809f

density = -(LOG_001) / (Game_ViewDistance * 0.99);
Gfx_SetFogDensity((float)density);
density = -LOG_001 / (Game_ViewDistance * 0.99f);
Gfx_SetFogDensity(density);
} else {
Gfx_SetFogMode(FOG_LINEAR);
Gfx_SetFogEnd((float)Game_ViewDistance);
Expand Down
2 changes: 1 addition & 1 deletion src/ExtMath.c
Expand Up @@ -94,7 +94,7 @@ cc_bool Math_IsPowOf2(int value) {
#define RND_MASK ((1ULL << 48) - 1)

void Random_SeedFromCurrentTime(RNGState* rnd) {
TimeMS now = DateTime_CurrentUTC_MS();
cc_uint64 now = Stopwatch_Measure();
Random_Seed(rnd, (int)now);
}

Expand Down
2 changes: 1 addition & 1 deletion src/Game.h
Expand Up @@ -26,7 +26,7 @@ extern cc_string Game_Mppass;

#if defined CC_BUILD_N64
#define DEFAULT_VIEWDIST 20
#elif defined CC_BUILD_NDS
#elif defined CC_BUILD_NDS || defined CC_BUILD_PS1
#define DEFAULT_VIEWDIST 192
#else
#define DEFAULT_VIEWDIST 512
Expand Down
2 changes: 1 addition & 1 deletion src/Graphics_Dreamcast.c
Expand Up @@ -543,4 +543,4 @@ void Gfx_EndFrame(void) {
void Gfx_OnWindowResize(void) {
glViewport(0, 0, Game.Width, Game.Height);
}
#endif
#endif

0 comments on commit 5fb4887

Please sign in to comment.