From b87381a068fe4fca7b04dc75082f4206343093e9 Mon Sep 17 00:00:00 2001 From: ekeeke31 Date: Thu, 18 Sep 2008 15:08:47 +0000 Subject: [PATCH] fixed HBLANK/HINT timings --- history.txt | 5 ++++- source/ngc/ogc_input.c | 2 +- source/ngc/ogc_video.c | 2 +- source/system.c | 2 ++ source/system.h | 1 + source/vdp.c | 2 +- 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/history.txt b/history.txt index 488517e..be10714 100644 --- a/history.txt +++ b/history.txt @@ -10,9 +10,12 @@ CURRENT: - YM2612(MAME): fixed registers 0x20-0x26 Reset state, fix intro music in B.O.B - adjusted HCounter values, fix Sonic 3D bonus stage + [NGC/Wii] -- improved menu scrolling using Wiimote D-PAD +- simplified HQ YM2612 option (use FAST setting for MAME by default) +- improved fast scrolling in menus when using Wiimote D-PAD - fixed config file incompatibility between GC and Wii versions +- reenabled texture filtering in H40 original mode when overscan is emulated: fix screen scroll tearing 26/08/2008: diff --git a/source/ngc/ogc_input.c b/source/ngc/ogc_input.c index 7161ad6..8f59e38 100644 --- a/source/ngc/ogc_input.c +++ b/source/ngc/ogc_input.c @@ -71,7 +71,7 @@ static const u16 pad_keys[8] = #define PAD_LEFT 2 #define PAD_RIGHT 3 -#define MAX_HELD_CNT 8 +#define MAX_HELD_CNT 9 static u32 held_cnt = 0; static u32 wpad_dirmap[3][4] = diff --git a/source/ngc/ogc_video.c b/source/ngc/ogc_video.c index ccc8174..aeb5de8 100644 --- a/source/ngc/ogc_video.c +++ b/source/ngc/ogc_video.c @@ -566,7 +566,7 @@ void ogc_video__update() GX_InitTexObj (&texobj, texturemem, vwidth, vheight, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE); /* original H40 mode: force filtering OFF */ - if (!config.render && (reg[12]&1)) + if (!config.overscan && !config.render && (reg[12]&1)) { GX_InitTexObjLOD(&texobj,GX_NEAR,GX_NEAR_MIP_NEAR,2.5,9.0,0.0,GX_FALSE,GX_FALSE,GX_ANISO_1); } diff --git a/source/system.c b/source/system.c index 5ba2404..a46d0b4 100644 --- a/source/system.c +++ b/source/system.c @@ -38,6 +38,7 @@ uint32 z80cycles_per_line; uint32 aim_m68k; uint32 count_m68k; uint32 line_m68k; +uint32 hint_m68k; uint32 aim_z80; uint32 count_z80; uint32 line_z80; @@ -214,6 +215,7 @@ int system_frame (int do_skip) input_update(); /* Update CPU cycle counters */ + hint_m68k = count_m68k; line_m68k = aim_m68k; line_z80 = aim_z80; aim_z80 += z80cycles_per_line; diff --git a/source/system.h b/source/system.h index 05e68a6..f937533 100644 --- a/source/system.h +++ b/source/system.h @@ -82,6 +82,7 @@ extern uint32 z80cycles_per_line; extern uint32 aim_m68k; extern uint32 count_m68k; extern uint32 line_m68k; +extern uint32 hint_m68k; extern uint32 aim_z80; extern uint32 count_z80; extern uint32 line_z80; diff --git a/source/vdp.c b/source/vdp.c index 2f55780..594e358 100644 --- a/source/vdp.c +++ b/source/vdp.c @@ -725,7 +725,7 @@ void vdp_reg_w(unsigned int r, unsigned int d) /* DISPLAY switched ON/OFF during HBLANK */ if ((v_counter < bitmap.viewport.h) && ((d&0x40) != (reg[1]&0x40))) { - if (count_m68k <= (line_m68k + 128)) + if (count_m68k <= (hint_m68k + 84)) { /* Redraw the current line : - Legend of Galahad, Lemmings 2, Nigel Mansell's World Championship Racing (set display OFF)