ref: 5efb2cacb879f4005a21a7e73947ee6fcb7a596d
parent: 49cc686ed4e90acd09936f1a5eaf3870d110172c
author: Snesrev <[email protected]>
date: Mon Sep 12 15:30:37 EDT 2022
Change "Zoom" to "Scale" #81
--- a/config.c
+++ b/config.c
@@ -33,7 +33,7 @@
_(SDLK_1), _(SDLK_2), _(SDLK_3), _(SDLK_4), _(SDLK_5), _(SDLK_6), _(SDLK_7), _(SDLK_8), _(SDLK_9), _(SDLK_0), _(SDLK_MINUS), _(SDLK_EQUALS), _(SDLK_BACKSPACE), N, N, N, N, N, N, N,
// Replay Ref State
C(SDLK_1), C(SDLK_2), C(SDLK_3), C(SDLK_4), C(SDLK_5), C(SDLK_6), C(SDLK_7), C(SDLK_8), C(SDLK_9), C(SDLK_0), C(SDLK_MINUS), C(SDLK_EQUALS), C(SDLK_BACKSPACE), N, N, N, N, N, N, N,
- // CheatLife, CheatKeys, CheatEquipment, ClearKeyLog, StopReplay, Fullscreen, Reset, Pause, PauseDimmed, Turbo, ZoomIn, ZoomOut, DisplayPerf, ToggleRenderer
+ // CheatLife, CheatKeys, CheatEquipment, ClearKeyLog, StopReplay, Fullscreen, Reset, Pause, PauseDimmed, Turbo, WindowBigger, WindowSmaller, DisplayPerf, ToggleRenderer
_(SDLK_w), _(SDLK_o), S(SDLK_w), _(SDLK_k), _(SDLK_l), A(SDLK_RETURN), _(SDLK_e), S(SDLK_p), _(SDLK_p), _(SDLK_t), N, N, _(SDLK_f), _(SDLK_r),
};
#undef _
@@ -52,7 +52,7 @@
static const KeyNameId kKeyNameId[] = {
M(Controls), M(Load), M(Save), M(Replay), M(LoadRef), M(ReplayRef),
S(CheatLife), S(CheatKeys), S(CheatEquipment), S(ClearKeyLog), S(StopReplay), S(Fullscreen), S(Reset),
- S(Pause), S(PauseDimmed), S(Turbo), S(ZoomIn), S(ZoomOut), S(DisplayPerf), S(ToggleRenderer),
+ S(Pause), S(PauseDimmed), S(Turbo), S(WindowBigger), S(WindowSmaller), S(DisplayPerf), S(ToggleRenderer),
};
#undef S
#undef M
@@ -219,8 +219,8 @@
} else if (StringEqualsNoCase(key, "Fullscreen")) {
g_config.fullscreen = (uint8)strtol(value, (char**)NULL, 10);
return true;
- } else if (StringEqualsNoCase(key, "Zoom")) {
- g_config.zoom = (uint8)strtol(value, (char**)NULL, 10);
+ } else if (StringEqualsNoCase(key, "WindowScale")) {
+ g_config.window_scale = (uint8)strtol(value, (char**)NULL, 10);
return true;
}
} else if (section == 2) {
--- a/config.h
+++ b/config.h
@@ -25,8 +25,8 @@
kKeys_Pause,
kKeys_PauseDimmed,
kKeys_Turbo,
- kKeys_ZoomIn,
- kKeys_ZoomOut,
+ kKeys_WindowBigger,
+ kKeys_WindowSmaller,
kKeys_DisplayPerf,
kKeys_ToggleRenderer,
kKeys_Total,
@@ -37,7 +37,7 @@
bool new_renderer;
bool ignore_aspect_ratio;
uint8 fullscreen;
- uint8 zoom;
+ uint8 window_scale;
uint16 audio_freq;
uint8 audio_channels;
uint16 audio_samples;
--- a/main.c
+++ b/main.c
@@ -46,8 +46,8 @@
kRenderWidth = 256 * 2,
kRenderHeight = 224 * 2,
kDefaultFullscreen = 0,
- kDefaultZoom = 2,
- kMaxZoom = 10,
+ kDefaultWindowScale = 2,
+ kMaxWindowScale = 10,
kDefaultFreq = 44100,
kDefaultChannels = 2,
kDefaultSamples = 2048,
@@ -59,7 +59,7 @@
static SDL_Window *g_window;
static SDL_Renderer *g_renderer;
static uint8 g_paused, g_turbo = true, g_cursor = true;
-static uint8 g_current_zoom;
+static uint8 g_current_window_scale;
static int g_samples_per_block;
static uint8 g_gamepad_buttons;
static int g_input1_state;
@@ -84,10 +84,10 @@
}
-void DoZoom(int zoom_step) {
+void ChangeWindowScale(int scale_step) {
int screen = SDL_GetWindowDisplayIndex(g_window);
if (screen < 0) screen = 0;
- int max_zoom = kMaxZoom;
+ int max_scale = kMaxWindowScale;
SDL_Rect bounds;
int bt = -1, bl, bb, br;
// note this takes into effect Windows display scaling, i.e., resolution is divided by scale factor
@@ -98,15 +98,15 @@
bl = br = bb = 1;
bt = 31;
}
- // Allow a zoom level slightly above the max that fits on screen
- int mw = (bounds.w - bl - br + (kRenderWidth / kDefaultZoom) / 4) / (kRenderWidth / kDefaultZoom);
- int mh = (bounds.h - bt - bb + (kRenderHeight / kDefaultZoom) / 4) / (kRenderHeight / kDefaultZoom);
- max_zoom = IntMin(mw, mh);
+ // Allow a scale level slightly above the max that fits on screen
+ int mw = (bounds.w - bl - br + (kRenderWidth / kDefaultWindowScale) / 4) / (kRenderWidth / kDefaultWindowScale);
+ int mh = (bounds.h - bt - bb + (kRenderHeight / kDefaultWindowScale) / 4) / (kRenderHeight / kDefaultWindowScale);
+ max_scale = IntMin(mw, mh);
}
- int new_zoom = IntMax(IntMin(g_current_zoom + zoom_step, max_zoom), 1);
- g_current_zoom = new_zoom;
- int w = new_zoom * (kRenderWidth / kDefaultZoom);
- int h = new_zoom * (kRenderHeight / kDefaultZoom);
+ int new_scale = IntMax(IntMin(g_current_window_scale + scale_step, max_scale), 1);
+ g_current_window_scale = new_scale;
+ int w = new_scale * (kRenderWidth / kDefaultWindowScale);
+ int h = new_scale * (kRenderHeight / kDefaultWindowScale);
//SDL_RenderSetLogicalSize(g_renderer, w, h);
SDL_SetWindowSize(g_window, w, h);
@@ -186,14 +186,14 @@
else if (g_config.fullscreen == 2)
g_win_flags ^= SDL_WINDOW_FULLSCREEN;
- // Window zoom (0=50%, 1=100%, 2=200%, 3=300%, etc.)
- g_current_zoom = g_config.zoom == 0 ? 1 : IntMin(g_config.zoom * 2, kMaxZoom);
+ // Window scale (0=50%, 1=100%, 2=200%, 3=300%, etc.)
+ g_current_window_scale = g_config.window_scale == 0 ? 1 : IntMin(g_config.window_scale * 2, kMaxWindowScale);
// audio_freq: Use common sampling rates (see user config file. values higher than 48000 are not supported.)
if (g_config.audio_freq < 11025 || g_config.audio_freq > 48000)
g_config.audio_freq = kDefaultFreq;
- // Currently, the SPC/DSP implementation only supports up to stereo.
+ // Currently, the SPC/DSP implementation �only supports up to stereo.
if (g_config.audio_channels < 1 || g_config.audio_channels > 2)
g_config.audio_channels = kDefaultChannels;
@@ -207,8 +207,8 @@
return 1;
}
- int window_width = g_current_zoom * (kRenderWidth / kDefaultZoom);
- int window_height = g_current_zoom * (kRenderHeight / kDefaultZoom);
+ int window_width = g_current_window_scale * (kRenderWidth / kDefaultWindowScale);
+ int window_height = g_current_window_scale * (kRenderHeight / kDefaultWindowScale);
SDL_Window* window = SDL_CreateWindow(kWindowTitle, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, window_width, window_height, g_win_flags);
if(window == NULL) {
printf("Failed to create window: %s\n", SDL_GetError());
@@ -306,7 +306,7 @@
break;
case SDL_MOUSEWHEEL:
if (((g_win_flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == 0 || (g_win_flags & SDL_WINDOW_FULLSCREEN) == 0) && event.wheel.y != 0 && SDL_GetModState() & KMOD_CTRL)
- DoZoom(event.wheel.y > 0 ? 1 : -1);
+ ChangeWindowScale(event.wheel.y > 0 ? 1 : -1);
break;
case SDL_MOUSEBUTTONDOWN:
if (event.button.button == SDL_BUTTON_LEFT && event.button.state == SDL_PRESSED && event.button.clicks == 2) {
@@ -549,8 +549,8 @@
}
break;
case kKeys_Turbo: g_turbo = !g_turbo; break;
- case kKeys_ZoomIn: DoZoom(1); break;
- case kKeys_ZoomOut: DoZoom(-1); break;
+ case kKeys_WindowBigger: ChangeWindowScale(1); break;
+ case kKeys_WindowSmaller: ChangeWindowScale(-1); break;
case kKeys_DisplayPerf: g_display_perf ^= 1; break;
case kKeys_ToggleRenderer: g_ppu_render_flags ^= kPpuRenderFlags_NewRenderer; break;
default: assert(0);
--- a/zelda3.ini
+++ b/zelda3.ini
@@ -7,8 +7,8 @@
[Graphics]
# Fullscreen mode (0=windowed, 1=desktop fullscreen, 2=fullscreen w/mode change)
Fullscreen = 0
-# Window zoom (0=50%, 1=100%, 2=200%, 3=300%, etc.)
-Zoom = 2
+# Window scale (0=50%, 1=100%, 2=200%, 3=300%, etc.)
+WindowScale = 2
NewRenderer = 1
EnhancedMode7 = 1
IgnoreAspectRatio = 0
@@ -45,8 +45,8 @@
Pause = Shift+p
PauseDimmed = p
Turbo = t
-ZoomIn = Ctrl+Up
-ZoomOut = Ctrl+Down
+WindowBigger = Ctrl+Up
+WindowSmaller = Ctrl+Down
Load = F1, F2, F3, F4, F5, F6, F7, F8, F9, F10
Save = Shift+F1,Shift+F2,Shift+F3,Shift+F4,Shift+F5,Shift+F6,Shift+F7,Shift+F8,Shift+F9,Shift+F10