Fixed dolphin aspect ratio
This commit is contained in:
@@ -57,9 +57,9 @@ errorret_t screenBind() {
|
|||||||
switch(SCREEN.mode) {
|
switch(SCREEN.mode) {
|
||||||
case SCREEN_MODE_BACKBUFFER: {
|
case SCREEN_MODE_BACKBUFFER: {
|
||||||
#if defined(DUSK_DISPLAY_WIDTH) && defined(DUSK_DISPLAY_HEIGHT)
|
#if defined(DUSK_DISPLAY_WIDTH) && defined(DUSK_DISPLAY_HEIGHT)
|
||||||
SCREEN.width = DUSK_DISPLAY_WIDTH;
|
|
||||||
SCREEN.height = DUSK_DISPLAY_HEIGHT;
|
SCREEN.height = DUSK_DISPLAY_HEIGHT;
|
||||||
SCREEN.aspect = (float_t)DUSK_DISPLAY_WIDTH / (float_t)DUSK_DISPLAY_HEIGHT;
|
SCREEN.aspect = frameBufferGetAspect(FRAMEBUFFER_BOUND);
|
||||||
|
SCREEN.width = SCREEN.height * SCREEN.aspect;
|
||||||
#else
|
#else
|
||||||
SCREEN.width = frameBufferGetWidth(FRAMEBUFFER_BOUND);
|
SCREEN.width = frameBufferGetWidth(FRAMEBUFFER_BOUND);
|
||||||
SCREEN.height = frameBufferGetHeight(FRAMEBUFFER_BOUND);
|
SCREEN.height = frameBufferGetHeight(FRAMEBUFFER_BOUND);
|
||||||
@@ -415,14 +415,13 @@ void screenUpdateScan(void) {
|
|||||||
#ifdef DUSK_DISPLAY_OVERSCAN
|
#ifdef DUSK_DISPLAY_OVERSCAN
|
||||||
SCREEN.scanX = DUSK_DISPLAY_OVERSCAN;
|
SCREEN.scanX = DUSK_DISPLAY_OVERSCAN;
|
||||||
SCREEN.scanY = DUSK_DISPLAY_OVERSCAN;
|
SCREEN.scanY = DUSK_DISPLAY_OVERSCAN;
|
||||||
SCREEN.scanWidth = SCREEN.width - DUSK_DISPLAY_OVERSCAN * 2;
|
|
||||||
SCREEN.scanHeight = SCREEN.height - DUSK_DISPLAY_OVERSCAN * 2;
|
|
||||||
#else
|
#else
|
||||||
SCREEN.scanX = 0;
|
SCREEN.scanX = 0;
|
||||||
SCREEN.scanY = 0;
|
SCREEN.scanY = 0;
|
||||||
SCREEN.scanWidth = SCREEN.width;
|
|
||||||
SCREEN.scanHeight = SCREEN.height;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
SCREEN.scanWidth = SCREEN.width - (SCREEN.scanX * 2);
|
||||||
|
SCREEN.scanHeight = SCREEN.height - (SCREEN.scanY * 2);
|
||||||
|
|
||||||
#ifdef DUSK_DISPLAY_SIZE_DYNAMIC
|
#ifdef DUSK_DISPLAY_SIZE_DYNAMIC
|
||||||
// Find the smallest standard ratio >= the screen aspect.
|
// Find the smallest standard ratio >= the screen aspect.
|
||||||
|
|||||||
@@ -10,13 +10,13 @@
|
|||||||
|
|
||||||
#define TILE_SIZE_PIXELS 24
|
#define TILE_SIZE_PIXELS 24
|
||||||
|
|
||||||
#define CHUNK_WIDTH 12
|
#define CHUNK_WIDTH 16
|
||||||
#define CHUNK_HEIGHT 16
|
#define CHUNK_HEIGHT 16
|
||||||
#define CHUNK_DEPTH 8
|
#define CHUNK_DEPTH 8
|
||||||
|
|
||||||
#define CHUNK_TILE_COUNT (CHUNK_WIDTH * CHUNK_HEIGHT * CHUNK_DEPTH)
|
#define CHUNK_TILE_COUNT (CHUNK_WIDTH * CHUNK_HEIGHT * CHUNK_DEPTH)
|
||||||
|
|
||||||
#define MAP_CHUNK_WIDTH 5
|
#define MAP_CHUNK_WIDTH 4
|
||||||
#define MAP_CHUNK_HEIGHT 4
|
#define MAP_CHUNK_HEIGHT 4
|
||||||
#define MAP_CHUNK_DEPTH 3
|
#define MAP_CHUNK_DEPTH 3
|
||||||
#define MAP_CHUNK_COUNT (MAP_CHUNK_WIDTH * MAP_CHUNK_HEIGHT * MAP_CHUNK_DEPTH)
|
#define MAP_CHUNK_COUNT (MAP_CHUNK_WIDTH * MAP_CHUNK_HEIGHT * MAP_CHUNK_DEPTH)
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ errorret_t sceneOverworldRender(scenedata_t *sceneData) {
|
|||||||
float_t fov = glm_rad(45.0f);
|
float_t fov = glm_rad(45.0f);
|
||||||
glm_perspective(
|
glm_perspective(
|
||||||
fov,
|
fov,
|
||||||
(float_t)SCREEN.width / (float_t)SCREEN.height,
|
SCREEN.aspect,
|
||||||
0.1f,
|
0.1f,
|
||||||
100.0f,
|
100.0f,
|
||||||
proj
|
proj
|
||||||
@@ -63,17 +63,7 @@ errorret_t sceneOverworldRender(scenedata_t *sceneData) {
|
|||||||
float_t z = (worldH * 0.5f) / tanf(fov * 0.5f);
|
float_t z = (worldH * 0.5f) / tanf(fov * 0.5f);
|
||||||
vec3 worldPosVec;
|
vec3 worldPosVec;
|
||||||
rpgCameraGetPosition(worldPosVec);
|
rpgCameraGetPosition(worldPosVec);
|
||||||
float_t offset = -32.0f * (worldH / TILE_SIZE_PIXELS);
|
float_t offset = -24.0f * (worldH / TILE_SIZE_PIXELS);
|
||||||
|
|
||||||
// consolePrint(
|
|
||||||
// "FOV: %f, Aspect: %f, WorldH: %f, Z: %f, Offset: %f, ScreenH: %d",
|
|
||||||
// fov,
|
|
||||||
// (float_t)SCREEN.width / (float_t)SCREEN.height,
|
|
||||||
// worldH,
|
|
||||||
// z,
|
|
||||||
// offset,
|
|
||||||
// SCREEN.height
|
|
||||||
// );
|
|
||||||
|
|
||||||
glm_vec3_add(worldPosVec, (vec3){ 0.5f, 0.5f, 0.5f }, worldPosVec);
|
glm_vec3_add(worldPosVec, (vec3){ 0.5f, 0.5f, 0.5f }, worldPosVec);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user