ekeeke / Genesis-Plus-GX

An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator
Other
707 stars 202 forks source link

Has an incorrect line at the bottom of screen for Yuu Yuu Hakusho - Makyou Toitsusen #462

Closed Mengze-L closed 2 years ago

Mengze-L commented 2 years ago

When I use RetroArch with Genesis-Plus-GX core to play with Yuu Yuu Hakusho - Makyou Toitsusen, I found an incorrect line shown at the bottom of the screen for most of the stages as below:

Genesis_Plus_GX_4_1 Genesis_Plus_GX_3 Genesis_Plus_GX_1

But some stages do not have this issue like this one:

Genesis_Plus_GX_5

Also I tried the BizHawk with this core, it has the same output. So, I think it should be related to the core but not RetroArch. Pico also does not have this line at bottom for all stages.

And I compare the same game on standalone genesis emulator Gens+ 0.0.9.61. It does not have this issue. The screen shots are shown as below:

Gens+_2 Gens+_1

Does it an issue? Thanks!

birdybro commented 2 years ago

A good question to ask is, what does it do on original hardware?

Edit: the MiSTer Genesis core for example

https://youtu.be/SKOtgILJ0iU

Mengze-L commented 2 years ago

Good suggestion. I just took photo from my MD1 VA6 JAP NTSC system as below:

MD1 VA6 YUU YUU 1 MD1 VA6 YUU YUU 2 MD1 VA6 YUU YUU 3

I connected the system through the AV cable with my LCD TV. There is no incorrect line at the bottom. However, I do not know why there is border on the left and right. I can remember there is no border with the CRT. But I do not have CRT on hand.

Also, today I tried to tune some parameters on RetroArch and found that the CPU overclock has some impact on the line at the bottom for this game on Genesis Plus GX. Hope it is helpful

125% overclock: Genesis_Plus_GX_6_1

150% overclock: Genesis_Plus_GX_7_1

ekeeke commented 2 years ago

Thanks for the report.

For the record, this games reduces the size of active screen by disabling the display before the last active line. This is done during HBLANK so there is no flickering but then the game also updates the border color (shown when display is disabled) shortly after disabling the display. This also occurs during HBLANK so that color change is not visible.

This emulator supported display disable/enable during HBLANK but only supported changes to Color RAM during HBLANK for active lines (as I initially thought no games would change the border color mid line). This is now fixed by linked commit.

And I compare the same game on standalone genesis emulator Gens+ 0.0.9.61. It does not have this issue.

Gens does not support mid-line changes to display enable status so it will disable the display from the next line (one line later than real hardware) so when border color is being shown, it is already changed to correct value.