Add quality presets

This commit is contained in:
Miloslav Ciz 2025-06-02 16:58:02 +02:00
parent a199a84d31
commit 1362a93b4d
7 changed files with 72 additions and 17 deletions

View file

@ -2,6 +2,7 @@ fuck issue trackers :D
=========== GENERAL ==============
- set target times for maps
- frontends:
- auto test frontend, with no I/O, that will just internally run a series of
inputs and check if the output is as expected

8
data
View file

@ -132,14 +132,14 @@ details
:-e5g :f413 :|g0hL
:+018 :f213 :!v05 :f311
#RLC1 00'15'147;00LC1;8bd6e314 0000459:0001:00c9:0041:0039:0041:01c9:0071:0039:0051:0059:0011:0029:0051:0189:0061:0055:0021:0039:0161:0069:0051:0089:0041:0039:0041:0243:0041:02b5:0021:0123:0031:0073:0051:0023:0101:0083:0031:00a3:0031:00a9:0031:0569:0011:0059:0021:00d3:0021
#RLC2 00'24'684;00LC2;3c5ba5dd 0000748:0001:00d3:0041:0209:0041:0095:0041:0059:01f1:01b9:0061:0029:0051:0143:0031:00b3:0091:0043:0051:00f3:0071:0053:0031:0033:0031:00a3:0041:01b9:0011:01a9:0011:0109:0041:0035:0031:0059:0031:0033:00f1:00c3:0091:0083:0021:0033:0031:0063:0041:0063:0021:00b9:0091:00a9:00d1:0069:0021:00c9:0041:0143:0101:0139:0021:0233:00a7:0035:0014:00a6:0041:0073:0072:0053:00f1:0079:0081:01b9:0041:0133:0031:00d9:0021:00c3:0011:0099:0031:0073:0031
#RLC2 00'24'354;00LC2;3c5ba5dd 0000738:0001:00d3:0051:01a9:0041:0115:0031:01e9:0041:0049:0041:0049:0021:0069:0051:0039:0021:00c3:0041:00b9:0021:0073:0031:0023:0031:0053:0091:0073:00a1:0013:0081:00a3:0021:0369:0011:02a5:0031:0053:0031:0033:00e1:00a3:00b1:0113:0021:00c9:0031:0059:0031:00e9:0061:0069:0091:0213:0101:0073:0031:00c9:0011:0069:0061:0053:0041:0113:0077:0076:0052:0123:0131:0323:0041:03a9:0031
#RLC3 00'16'566;00LC3;cb1b38e6 0000502:0001:00b3:0031:00e9:0031:0104:0125:0031:0153:0071:0063:0031:0053:0021:0043:0051:0023:0031:0053:0071:0083:0041:0053:0031:0143:0071:0033:0061:00d9:01c1:0039:0041:0033:0021:0033:0051:0053:0061:0043:0021:00b3:0061:00c3:0081:0053:0021:00d3:0041:0133:00c1:0039:0091:0119:0031:0133:0031:01b5:0041
#RLC4 00'25'773;00LC4;bcf27d79 0000781:0001:00f9:0221:0073:0051:00f9:0031:0099:0041:0059:0031:0353:0051:0099:0041:00a3:0051:00c9:0051:0053:0071:0043:0051:0043:00a1:00a3:0051:00c3:0031:0149:0081:00a3:0111:0049:0151:0083:00e1:0049:0041:0039:0011:0063:0031:00f3:0041:00d3:00a1:0099:0021:00f3:0041:0063:0031:04b5:0031:00c9:0011:00b9:0031:0083:0071:0023:0071:0043:0041:0049:0031:0153:0031:0243:0051:0089:0071:00c3:0031
#RLC4 00'25'443;00LC4;bcf27d79 0000771:0001:00d9:0071:0029:00c1:00c9:0031:0329:0021:00f3:0031:00a9:0011:00c9:0011:00d5:0031:00a9:0031:00e3:0041:00d3:0031:0039:0091:0029:0061:0059:0031:0069:0061:0029:0041:01c3:0021:0089:0021:0253:0021:0183:0011:0159:0091:0069:0031:0079:0051:00b2:0071:0079:0061:0093:0051:0183:0041:00b9:0041:00d9:0071:0073:0091:0119:0041:0053:0051:0039:0071:0039:0021:0039:0021:0053:0051:0079:0081:0049:0071:0083:0021:0059:0031:00c3:0031:00b9:0021:0039:0031:02a9:0021:0063:0041:0123:0021:0073:0021
#RLC5 00'25'971;00LC5;90f26004 0000787:0001:0023:0071:0063:0031:0155:0031:0139:0031:01d9:0021:0179:0031:0064:006c:0038:0029:0171:0063:0091:0033:0061:00e9:0041:0029:0031:0093:0081:0079:0091:00a9:0051:0019:0061:0039:0031:0099:0031:0029:0041:0089:0041:0029:0031:0049:0031:0019:0071:0029:0031:0193:0031:00a3:0021:00d3:0051:0063:0021:0139:0068:001c:0070:0028:0059:00b1:0033:00d1:0043:0041:0043:0051:0319:00d1:0043:0051:0189:0061:0029:0031:0099:0031:00b5:0051:00c9:0051:0039:0051:0049:0061:0039:0041:0169:0051:0105:0031:01f3:0031:0053:0012:0076:0062:0043:0101:00b9:0021
#RLCtiny1 00'12'276;00LCtiny1;ae1ab677 0000372:0001:02e9:0021:01e9:0051:00c9:0151:0073:0091:0059:0051:0073:0041:00a9:0031:0033:0031:0063:0031:0063:0021:0023:0087:0073:0131:0023:00a1:0069:0091:0103:0031:0205:0021:00b3:0091:0113:0021:00b9:0031:0053:0051:0039
#RLCtiny1 00'09'900;00LCtiny1;ae1ab677 0000300:0001:0179:0031:0299:0021:0129:0075:0031:0029:0031:0039:0041:0049:0021:0079:0051:00f3:0041:0033:0021:0053:00b5:0017:0033:0151:0069:0051:0033:0071:0033:0031:0115:0017:0015:0021:0073:0041:0063:0031:0053:0021:0063:0051:0099:0031:0073:0031
#RLCtiny2 00'05'181;00LCtiny2;833ee4b2 0000157:0011:0320:0034:00a0:00d4:00f0
#RLCtiny3 00'11'880;00LCtiny3;df0bd8ce 0000360:0001:00c3:0031:00d3:0031:00e9:0031:00e9:0041:0069:0021:0059:0021:00c3:0041:0233:0041:0159:0251:0113:0031:01a3:0031:0143:0021:00a9:0021:00d3:0041:0253:0031:00a3:0041
#RLCtiny4 00'05'280;00LCtiny4;f999f0ec 0000160:0003:01d1:0019:01f1:0119:0061:0109:0041:0209:0041
#RLCtiny5 00'08'811;00LCtiny5;5c14d8b6 0000267:0001:00f9:0041:0139:00b1:0109:0041:0049:0021:0103:0151:0083:0061:0069:0081:0093:0031:0083:00d1:0083:0031:0143:0021:0175:0021:0109:0031
#RLCbonus1 00'14'256;00LCbonus1;999b1acd 0000432:0001:0129:0051:0059:0011:00d3:0021:0169:0081:0013:0121:0049:0051:0033:0031:0093:0091:00c9:01f1:00c9:0061:0153:0031:0189:00c1:00e9:0021:01d9:0031:0159:0028:0020:0014:003c:0014:0020:0028:0059:0061:0079:0021:0049:00a1:0089:0041:0029:0031:0089:0011:0079:0068:0020:0038:0020:0028:0099:0041:0083
#RLCbonus1 00'13'629;00LCbonus1;999b1acd 0000413:0001:00d9:0051:0113:0031:0069:0021:00a9:0031:0049:0041:0039:0051:0043:0121:0053:0061:0083:0021:0083:0041:0079:01b1:0059:0041:0049:0021:00e9:0031:0063:0041:0169:00c1:03e9:0038:0020:0081:0119:00b1:00c9:0041:0079:0041:0039:0051:0039:0058:0179:0031
#RLCbonus2 00'26'103;00LCbonus2;288d28fe 0000791:0001:0163:0101:0053:0021:00c3:0071:0063:0031:0059:00b8:0050:0034:0016:00f4:003c:00a4:00a6:0044:0056:0024:00a6:0112:0020:0029:0071:00d9:0031:0053:0091:0113:0061:00b5:0049:0101:00a3:00c2:0083:0101:0029:0051:0183:0041:0063:0041:00c3:0041:0119:0051:0019:0041:0055:0049:0018:0099:0031:0052:0023:0022:0023:0052:0073:0041:0070:0032:0046:00e4:0010:0038:0069:00a8:0139:0078:0079:00ac:0014:006c:0078:0010:0061:0079:00a1:0063:0031:0133:0031:0030:0058:002c:0018:0190:0022:0026:0030:0062:0010:0028:0029:0121:0043:0062:0020:0042:0053:00b1:0175:004c:0018:0080:0061:0033:0031:0022:0093:0011:0020:0018:0069

View file

@ -9,10 +9,12 @@
#include <stdint.h>
#include <stdio.h>
#define DATA_FILE_NAME "data"
#ifndef PRESET_QUALITY
#define PRESET_QUALITY 3
#endif
#include "game.h"
#include "frontend_helper.h"
#include "game.h"
#define WINDOW_SIZE (LCR_SETTING_RESOLUTION_X * LCR_SETTING_RESOLUTION_Y)

View file

@ -6,6 +6,50 @@
// TODO: quality presets?
#if PRESET_QUALITY == 1 // ultra low
#define LCR_SETTING_RESOLUTION_X 256
#define LCR_SETTING_RESOLUTION_Y 200
#define LCR_SETTING_POTATO_GRAPHICS 1
#define LCR_SETTING_332_COLOR 1
#define LCR_SETTING_FPS 25
#define LCR_SETTING_CAR_SHADOW 0
#define LCR_SETTING_CAR_ANIMATION_SUBDIVIDE 0
#define LCR_SETTING_PARTICLES 0
#define LCR_SETTING_TEXTURE_SUBSAMPLE 16
#define LCR_SETTING_FOG 0
#define LCR_SETTING_MUSIC 0
#elif PRESET_QUALITY == 2 // low
#define LCR_SETTING_RESOLUTION_X 512
#define LCR_SETTING_RESOLUTION_Y 400
#define LCR_SETTING_RESOLUTION_SUBDIVIDE 2
#define LCR_SETTING_CAR_SHADOW 0
#define LCR_SETTING_CAR_ANIMATION_SUBDIVIDE 0
#define LCR_SETTING_PARTICLES 0
#define LCR_SETTING_TEXTURE_SUBSAMPLE 8
#define LCR_SETTING_FOG 0
#define LCR_SETTING_FPS 30
#elif PRESET_QUALITY == 3 // normal
#define LCR_SETTING_RESOLUTION_X 800
#define LCR_SETTING_RESOLUTION_Y 600
#define LCR_SETTING_RESOLUTION_SUBDIVIDE 1
#define LCR_SETTING_CAR_SHADOW 1
#define LCR_SETTING_CAR_ANIMATION_SUBDIVIDE 1
#define LCR_SETTING_PARTICLES 1
#define LCR_SETTING_TEXTURE_SUBSAMPLE 4
#define LCR_SETTING_FOG 0
#define LCR_SETTING_FPS 30
#elif PRESET_QUALITY == 4 // high
#define LCR_SETTING_RESOLUTION_X 1024
#define LCR_SETTING_RESOLUTION_Y 768
#define LCR_SETTING_RESOLUTION_SUBDIVIDE 1
#define LCR_SETTING_CAR_SHADOW 1
#define LCR_SETTING_CAR_ANIMATION_SUBDIVIDE 1
#define LCR_SETTING_PARTICLES 1
#define LCR_SETTING_TEXTURE_SUBSAMPLE 1
#define LCR_SETTING_FOG 1
#define LCR_SETTING_FPS 45
#endif
#include <stdint.h>
#include <stdio.h>

View file

@ -17,10 +17,14 @@
#define LCR_SETTING_CAR_SHADOW 0
#define LCR_SETTING_TEXTURE_SUBSAMPLE 4
#define LCR_SETTING_RESOLUTION_SUBDIVIDE 2
#else
#ifndef PRESET_QUALITY
#define PRESET_QUALITY 3
#endif
#endif
#include "game.h"
#include "frontend_helper.h"
#include "game.h"
SDL_Window *window;
SDL_Renderer *renderer;

View file

@ -15,8 +15,12 @@
#define LCR_SETTING_RESOLUTION_Y 240
#define LCR_SETTING_MUSIC 0
#include "game.h"
#ifndef PRESET_QUALITY
#define PRESET_QUALITY 3
#endif
#include "frontend_helper.h"
#include "game.h"
char framebuffer[LCR_SETTING_RESOLUTION_X * LCR_SETTING_RESOLUTION_Y * 4];
uint8_t buttonStates[8];

View file

@ -323,18 +323,18 @@ at times. Lowering the resolution should generally help, also increasing
S3L_NEAR in renderer.h should prevent this (but it will have some consequences).
If it seems real significant, you can report this to me.
Q: I found a bug or have some other important comment.
Q: I found a bug and/or have some other important comment.
A: Send me an email (found on top of this file).
Q: I have some other question (such as "Why is this not written in a modern
language?" or "What inspired you to make the game?" etc.)
A: Many questions I often get asked about my life and/or programming philosophy
can't now be answered in a tl;dr way without doing them injustice. I have a
website at http://www.tastyfish.cz, where I attempt to explain things, but
please note you will probably not like it. If you still decide to follow the
link and don't find your answer, feel to ask me anything over email, but please
remember I am not very social and don't enjoy too much engaging in smalltalk or
lengthy discussions about worldviews etcetc. I am certainly not interested in
having my opinions changed or changing someone else's mind by force.
can't now be answered in a tl;dr while doing them injustice. I have a website at
http://www.tastyfish.cz, where I attempt to explain things, but please note you
will probably not like it. If you still decide to follow the link and don't find
your answer, feel to ask me anything over email, but please remember I am not
very social and don't enjoy too much engaging in smalltalk or lengthy
discussions about worldviews etcetc. I am certainly not interested in having my
opinions changed or changing someone else's mind by force.