Rickster2527 / genplus-gx

Automatically exported from code.google.com/p/genplus-gx
Other
0 stars 0 forks source link

Nadia scrolls too well #185

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Load up Nadia (No-Intro name Fushigi no Umi no Nadia (Japan).md).  (Either 
the fan translation or the original Japanese version will work.)
2. Start a game and just keep going through all the dialog boxes until you get 
control of your character and can move around in the city.
3. Move around in the city and find a place where you can scroll up and down 
and where there are several characters on the screen.  The easiest place is all 
the way at the left end before the drunk (you can only scroll a limited amount 
since the drunk blocks you.)

What is the expected output? What do you see instead?

On a real machine, scrolling horizontally is smooth but scrolling vertically is 
jerky.  On the emulator, both scrolling horizontally and vertically are smooth. 
 Obviously this is not a game-breaking problem, since the emulator works better 
than the real machine; however it is a difference.

What version of the emulator are you using (official, SVN revision,...)?

1.60.  The real machine is a Japanese Mega Drive with language switch running 
an Everdrive.

Please provide any additional information below (Video settings, Console
region,...)

US NTSC Wii, 4:3 mode.

Original issue reported on code.google.com by arrom...@rahul.net on 5 Sep 2011 at 1:35

GoogleCodeExporter commented 9 years ago
Oh, the Mega Drive is a non-TMSS model 1, if that matters, hooked up to a 32X 
and model 2 Sega CD.

Original comment by arrom...@rahul.net on 5 Sep 2011 at 2:44

GoogleCodeExporter commented 9 years ago
I tried the translated ROM on my PAL Mega Drive and did not notice the jerky 
vertical scrolling you mentioned, it works exactly as with the emulator for me.

I suspect you are using a LCD TV (I have CRT TV) and for some reason it does 
not display this game very well. What are the video settings you are using in 
the emulator ? Try switching to ORIGINAL with FILTERING OFF and use the same 
kind of video cable.

Original comment by ekeeke31@gmail.com on 21 Sep 2011 at 12:12

GoogleCodeExporter commented 9 years ago
I am away from home for a while and can't check my settings, but I can tell you 
at the moment that I definitely have filtering off (I hate filtering and always 
disable it on emulators) and I *think* it's original mode, my TV is LCD, and my 
Mega Drive is NTSC. I wouldn't be surprised if this only had jerky scrolling on 
NTSC.

Also, the problem does not require the translation--the untranslated ROM does 
the same thing.

Original comment by arrom...@rahul.net on 22 Sep 2011 at 3:24

GoogleCodeExporter commented 9 years ago
It's not only the filtering but the video mode. LCD generally works better with 
INTERLACED or PROGRESSIVE output, which you might have been using with the 
emulator. The original Mega Drive outputs a non-interlaced video signal, which 
the Wii can also outputs if you select ORIGINAL video mode.

I don't think the difference comes from PAL or NTSC as my Mega Drive is 
switched and outputs 60Hz video signal, which is similar to NTSC. Only 
difference is the cable I'm using (SCART RGB) and the TV (real CRT). 

What is sure is the game does not do anything special in that part and does not 
require any more accurate emulation that what is actually done, the issue with 
real hardware most likely comes from your TV equipement (TV mode, vcideo 
connector, etc), not from the game or console itself.

That's why I told you to use the SAME type of video cable for the Wii as you 
are using with your Mega Drive (I guess it's a basic composite cable) and 
switch to ORIGINAL (i.e non-interlaced) video mode in genesis plus gx video 
settings + disable any kind of filter. I'm pretty sure you will notice the same 
jerkyness with scrolling

Original comment by ekeeke31@gmail.com on 22 Sep 2011 at 8:23

GoogleCodeExporter commented 9 years ago
I got home and tried it on my actual machine.  You are correct, it's just a bad 
TV.  I had original *aspect ratio* on the Wii but output was progressive; using 
original video mode and a composite cable like for the Mega Drive will produce 
the same jerky scrolling on the Wii.  I tried another MD game on the real MD 
and it also had jerky scrolling.

Original comment by arrom...@rahul.net on 26 Sep 2011 at 1:01

GoogleCodeExporter commented 9 years ago
Hi ekeeke, if you don't mind, I would like to use this topic to ask you 
something.

I'm helping the author of Mednafen-Wii in the implementation of a 240p mode, 
but since Mednafen works with a lot of systems, each one using a different 
resolution, we are having a hard time finding the best method. 

At first, the emulator was using the fbwidth as 640. So, it looks perfect with 
Genesis games (for an obvious reason), but not good with NES and PC Engine 
games that use 256 pixels as the horizontal resolution, since the GPU is 
upscaling from 256 to 640, which is a non-integer upscale.

Of course, using 512 as the fbwidth will fix this issue for NES and PCE games - 
but it will break Genesis games that use 320 pixels.

I noticed that Genesis Plus looks perfect no matter what the horizontal 
resolution the game is using (320; 256 or 160). 

Could you please tell how that was achieved? Genesis Plus is probably using the 
GPU to double the horizontal resolution and the video hardware to fill the rest 
of the screen, but I was wondering if the emulator somehow auto-detect the 
horizontal resolution and adjust the fbwidth accordly, in order to look good 
without GX filtering.

Thanks.

Original comment by thiagoalvesdealmeida@gmail.com on 3 Nov 2011 at 3:00

GoogleCodeExporter commented 9 years ago
Yes, it does indeed detect emulated resolution mode changes and changes 
fb_width accordingly, which is logical in the sense, by definition, the 
emulator does know when mode is changing. 

And as already said in your other topics about this subject:

1) to get minimal filtering, fb_width should be equal or twice the width of the 
generated image (which is used as texture by GX rendering), so that NO bilinear 
filtering is applied by GX because of non-integer scaling ratio. 

2) to get accurate aspect ratio, the rendered framebuffer should be upscaled 
(if necessary) to Wii fullscreen using VIDEO hardware, by setting vi_width to 
640 (if you want no filtering at all in 320 pixels width modes) or, to be more 
accurate, a little wider, how much wide depending on each emulated console and 
more precisely, its pixel aspect ratio, which is determined by original console 
dot clock and active width length...

Indeed, the filtering applied by VI encoder when upscaling fb_width to vi_width 
is much less destructive than the heavy bilinear filtering applied by GX on 
scaled textures.

Original comment by ekeeke31@gmail.com on 3 Nov 2011 at 6:17

GoogleCodeExporter commented 9 years ago
Thanks ekeeke. The author of Mednafen-Wii will work on this.

By the way, when using the 240p mode, I noticed that Genesis Plus GX is the 
only emulator which a few pixels of horizontal resolution are hidden by the 
overscan area of my TV. 

When using others emulators (Snes9x, FCEU, etc.), including playing Genesis 
games in Mednafen or Virtual Console, I can see all the horizontal pixels on my 
TV (unlike Genesis Plus).

Of course, this can be adjusted using the service menu of my TV. But regulating 
the screen size only for Genesis Plus will mess it for everything else.  

Anyway. It's nothing major. Just a few pixels. But I was just wondering how it 
looks on your TV (or when using a real Genesis). If you can see all the 
horizontal resolution or not, compared to others emulators.

Original comment by thiagoalvesdealmeida@gmail.com on 3 Nov 2011 at 7:49

GoogleCodeExporter commented 9 years ago
It's probably because by default (original aspect ratio) I'm not using 640 
pixels as vi_width (like other emulators) but a little wider (654 actually), to 
accurately match aspect ratio observed on my Mega Drive. 

On my TV (32" CRT Sony Wega), I only get hidden pixels if I let the TV in 16:9 
mode with Aspect Ratio set to ORIGINAL (and not ORIGINAL with 16:9 
compensation) as the display got horribly stretched, but otherwise I always see 
the full width and even some part of horizontal border, just like with my 
original Mega Drive.

If your TV is hiding some pixels and you don't like it, you can switch into 
SCALED aspect ratio and eventually adjust XSCALE/XOFFSET default values.

Out of curiosity, what kind of TV are you using ?

Original comment by ekeeke31@gmail.com on 3 Nov 2011 at 9:17

GoogleCodeExporter commented 9 years ago
All right. Using SCALED fixed my problem. I was using 4:3 aspect ratio before. 
Also, using 4:3 with the borders turned off was clipping even more pixels 
compared with borders turned on.

BTW, using SCALED and turning off the vertical border with Master System games 
is horribly stretching the screen. And with Game Gear, also using SCALED, 
turning off the vertical or the horizontal border will stretch the screen too. 
Not sure if this is a know behaviour.

I'm using a 27" CRT Sony Wega. Great TV, but with horrible geometry issues. 
Seems to be a common problem with flat TVs. I wish I had a curved screen 
instead.

Original comment by thiagoalvesdealmeida@gmail.com on 3 Nov 2011 at 11:43

GoogleCodeExporter commented 9 years ago
yes, SCALED is meant to be like that, fill the screen. Though you are right and 
vertical scaling should not be applied for Master System games as it is 
actually, it's not right and should be fixed. thanks for pointing that out.

Original comment by ekeeke31@gmail.com on 4 Nov 2011 at 9:22