mirror of
https://github.com/captain-amygdala/pistorm.git
synced 2026-04-11 06:47:47 +00:00
Fix scaling VS aspect ratio things, fix P2D data problems
This commit is contained in:
@@ -15,6 +15,14 @@
|
||||
|
||||
#define RTG_INIT_ERR(a) { printf(a); *data->running = 0; }
|
||||
|
||||
//#define DEBUG_RAYLIB_RTG
|
||||
|
||||
#ifdef DEBUG_RAYLIB_RTG
|
||||
#define DEBUG printf
|
||||
#else
|
||||
#define DEBUG(...)
|
||||
#endif
|
||||
|
||||
uint8_t busy = 0, rtg_on = 0, rtg_initialized = 0;
|
||||
extern uint8_t *rtg_mem;
|
||||
extern uint32_t framebuffer_addr;
|
||||
@@ -179,13 +187,26 @@ reinit_raylib:;
|
||||
}
|
||||
}
|
||||
} else if (dstscale.width > GetScreenWidth() || dstscale.height > GetScreenHeight()) {
|
||||
if (dstscale.width > GetScreenWidth()) {
|
||||
dstscale.height = dstscale.height * ((float)GetScreenWidth() / (float)width);
|
||||
dstscale.width = GetScreenWidth();
|
||||
}
|
||||
if (dstscale.height > GetScreenHeight()) {
|
||||
DEBUG("[H > SH]\n");
|
||||
DEBUG("Adjusted width from %d to", (int)dstscale.width);
|
||||
dstscale.width = dstscale.width * ((float)GetScreenHeight() / (float)height);
|
||||
DEBUG("%d.\n", (int)dstscale.width);
|
||||
DEBUG("Adjusted height from %d to", (int)dstscale.height);
|
||||
dstscale.height = GetScreenHeight();
|
||||
DEBUG("%d.\n", (int)dstscale.height);
|
||||
}
|
||||
if (dstscale.width > GetScreenWidth()) {
|
||||
// First scaling attempt failed, do not double adjust, re-adjust
|
||||
dstscale.width = width;
|
||||
dstscale.height = height;
|
||||
DEBUG("[W > SW]\n");
|
||||
DEBUG("Adjusted height from %d to", (int)dstscale.height);
|
||||
dstscale.height = dstscale.height * ((float)GetScreenWidth() / (float)width);
|
||||
DEBUG("%d.\n", (int)dstscale.height);
|
||||
DEBUG("Adjusted width from %d to", (int)dstscale.width);
|
||||
dstscale.width = GetScreenWidth();
|
||||
DEBUG("%d.\n", (int)dstscale.width);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ int init_rtg_data(struct emulator_config *cfg_) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
m68k_add_ram_range(PIGFX_RTG_BASE + PIGFX_REG_SIZE, 40 * SIZE_MEGA - PIGFX_REG_SIZE, rtg_mem);
|
||||
m68k_add_ram_range(PIGFX_RTG_BASE + PIGFX_REG_SIZE, 32 * SIZE_MEGA - PIGFX_REG_SIZE, rtg_mem);
|
||||
add_mapping(cfg_, MAPTYPE_RAM_NOALLOC, PIGFX_RTG_BASE + PIGFX_REG_SIZE, 40 * SIZE_MEGA - PIGFX_REG_SIZE, -1, (char *)rtg_mem, "rtg_mem");
|
||||
return 1;
|
||||
}
|
||||
@@ -76,8 +76,6 @@ void shutdown_rtg() {
|
||||
}
|
||||
}
|
||||
|
||||
//void rtg_update_screen();
|
||||
|
||||
unsigned int rtg_get_fb() {
|
||||
return PIGFX_RTG_BASE + PIGFX_REG_SIZE + framebuffer_addr_adj;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user