IVBeatz / genplus-gx

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

Text flickering on Gaiares titelscreen #134

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
boot up the game Gaiares and wait for the titescreen to appear

What is the expected output? What do you see instead?
titlescreen with non flickering text

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

Please provide any additional information below (Video settings, Console
region,...)
480p, PAL machine

Original issue reported on code.google.com by gora.pat...@gmail.com on 6 Nov 2010 at 7:10

GoogleCodeExporter commented 9 years ago
Indeed, just tested on real hardware and it does not flicker like that (well, 
for me, only the bottom text is flickering in genesis plus, the rest is fine). 

Original comment by ekeeke31@gmail.com on 6 Nov 2010 at 10:49

GoogleCodeExporter commented 9 years ago
yeah, only the bottom text is flickering for me as well, not the whole screen.

Original comment by gora.pat...@gmail.com on 6 Nov 2010 at 11:06

GoogleCodeExporter commented 9 years ago
Ok, I figured this one. 
This is a little bit technical so it's only for those interested in Genesis 
emulation, really.

It happens in any emulators that does not handle DMA access line-by-line (as on 
real hardware). When a DMA is triggered, most emulators perform all the writes 
immediately then lock the CPU during the DMA access time. On real hardware, 
only a fixed number of writes is allowed per line of display so the writes are 
not done "immediately".

This works fine as most games does not do DMA during active display and when 
they do, they do not try to modify the active display with the DMA writes. 

This game however does this: every 10-12 frames, it clears the plane that holds 
the text bottom area then fill it again, using two consecutive DMA operation. 
This is their method used for displaying the blinking "Press START" text. 
However, the first DMA is triggered during active display and if you process 
all the writes immediately, the bottom text will not be displayed. On real 
hardware, the writes that clears the bottom area are delayed and would actually 
be processed AFTER this area has been displayed, so you don't get any 
flickering.

I knew I was not emulated it accurately but as now game seemed to require igt, 
I left that for later. I guess it's time to improve the accuracy level again, 
let's hope it does not break any games.

Original comment by ekeeke31@gmail.com on 6 Nov 2010 at 5:09

GoogleCodeExporter commented 9 years ago

Original comment by ekeeke31@gmail.com on 4 Dec 2010 at 5:24