Skip to content

Commit 164f75a

Browse files
committed
Fix
1 parent cead8c5 commit 164f75a

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

src/video/ogc/SDL_ogcmouse.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
#include "SDL_ogcgxcommon.h"
3030
#include "SDL_ogcmouse.h"
3131
#include "SDL_ogcpixels.h"
32+
#include "SDL_ogcvideo.h"
3233

3334
#include "../SDL_sysvideo.h"
3435
#include "../../render/SDL_sysrender.h"
@@ -175,7 +176,7 @@ void OGC_draw_cursor(_THIS)
175176
SDL_Mouse *mouse = SDL_GetMouse();
176177
OGC_CursorData *curdata;
177178
Mtx mv;
178-
int screen_w, screen_h;
179+
int screen_w, screen_h, viewport_w;
179180
float angle = 0.0f;
180181

181182
if (!mouse || !mouse->cursor_shown ||
@@ -191,17 +192,15 @@ void OGC_draw_cursor(_THIS)
191192
if (!data->ir.valid) return;
192193
}
193194

194-
screen_w = _this->displays[0].current_mode.w;
195+
viewport_w = _this->displays[0].current_mode.w;
196+
screen_w = ((SDL_VideoData *)_this->displays[0].current_mode.driverdata)->vmode->fbWidth;
195197
screen_h = _this->displays[0].current_mode.h;
196198

197199
curdata = mouse->cur_cursor->driverdata;
198200
OGC_load_texture(curdata->texels, curdata->w, curdata->h, GX_TF_RGBA8,
199201
SDL_ScaleModeNearest);
200202

201203
guMtxIdentity(mv);
202-
if(screen_w == 854)
203-
guMtxScaleApply(mv, mv, screen_w / 854.0f, screen_h / 480.0f, 1.0f);
204-
else
205204
guMtxScaleApply(mv, mv, screen_w / 640.0f, screen_h / 480.0f, 1.0f);
206205

207206
if (angle != 0.0f) {
@@ -212,7 +211,7 @@ void OGC_draw_cursor(_THIS)
212211
guMtxTransApply(mv, mv, mouse->x, mouse->y, 0);
213212
GX_LoadPosMtxImm(mv, GX_PNMTX1);
214213

215-
OGC_set_viewport(0, 0, screen_w, screen_h, screen_w);
214+
OGC_set_viewport(0, 0, screen_w, screen_h, viewport_w);
216215

217216
GX_ClearVtxDesc();
218217
GX_SetVtxDesc(GX_VA_POS, GX_DIRECT);
@@ -244,7 +243,8 @@ void OGC_draw_cursor(_THIS)
244243
SDL_Renderer *renderer = SDL_GetRenderer(_this->windows);
245244
if (renderer) {
246245
OGC_set_viewport(renderer->viewport.x, renderer->viewport.y,
247-
renderer->viewport.w, renderer->viewport.h);
246+
renderer->viewport.w, renderer->viewport.h,
247+
renderer->viewport.w);
248248
}
249249
}
250250
}

src/video/ogc/SDL_ogcvideo.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,11 +309,29 @@ int OGC_VideoInit(_THIS)
309309
VIDEO_Init();
310310

311311
vmode = VIDEO_GetPreferredMode(NULL);
312+
vmode->viWidth = 704;
313+
314+
// set Center point
315+
if (&s_mode704 == &TVPal576IntDfScale || &s_mode704 == &TVPal576ProgScale)
316+
{
317+
vmode->viXOrigin = (VI_MAX_WIDTH_PAL - vmode->viWidth) / 2;
318+
vmode->viYOrigin = (VI_MAX_HEIGHT_PAL - vmode->viHeight) / 2;
319+
}
320+
else
321+
{
322+
vmode->viXOrigin = (VI_MAX_WIDTH_NTSC - vmode->viWidth) / 2;
323+
vmode->viYOrigin = (VI_MAX_HEIGHT_NTSC - vmode->viHeight) / 2;
324+
}
312325

313326
videodata->gp_fifo = memalign(32, DEFAULT_FIFO_SIZE);
314327
memset(videodata->gp_fifo, 0, DEFAULT_FIFO_SIZE);
315328
GX_Init(videodata->gp_fifo, DEFAULT_FIFO_SIZE);
316329

330+
#ifdef __wii__
331+
if(CONF_GetAspectRatio() == CONF_ASPECT_16_9)
332+
setup_video_mode(_this, vmode, 854);
333+
else
334+
#endif
317335
setup_video_mode(_this, vmode, vmode->fbWidth);
318336
GX_SetCopyClear(background, GX_MAX_Z24);
319337

0 commit comments

Comments
 (0)