-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GTS3: rewrite DMD PWM integration #306
Conversation
…tween games, fix some residual flickering, simplify code, at the price of some performance impact
Nice! I fear something similar could also be needed for some early WPC DMD games like T2 or HS2 as these seem to feature some flicker 'effects' that exceed the usual 4 brightness levels. So if you're interested.. .. .. :) |
..oh, and what about AlvinG.? I guess that should be similar to GTS3? |
one more: GTS3_VBLANKFREQ is insanely high, and i don't think this is useful anymore nowadays? (unless i miss something) |
And yet one more: if you enter the display test on e.g. SMB (press '0' multiple times) and then flip through the brightness levels, then one can see slight variations, and if all 5 levels are displayed some slight flickering, now. |
Just had a look to all these points:
|
Just realized that GTS3_VBLANKFREQ is in fact 60x60Hz. I agree this is way too high. As I wrote above, I think that this VBlank implementation is somewhat hacky. To me, I would prefer
For the time being, for GTS3, I would say that using 4 for the 60Hz multiplier to trigger core switch handling should be good. |
Little update here:
|
For AlG i have a measured one, never commited as it didn't improve things so far: 73.41 |
On which table was this measured ? It looks like AL's Garage band and Mystery Castle do not have the same timing (Mystery Castle has a /4 clock divider and it toggles VClock with the SELSYNC signal while Mystery Castle don't have these IC) |
Unfortunately i don't know. @lucky01 gave me the measurement some years ago (thanks!). |
Minor nitpicking again, sorry ;) (the rest of the changes look pretty good so far, thanks!!) |
Great, thanks a lot for diving into this. |
Next bugreport, sorry ;) |
I have Data East & Whitestar wrong, sorry for that. I now have access to the full digital recordings so I will try to fix these asap. On the bright side, I think I finally have fixed the Alvin G timing (by reading again and simulating part of the schematics). The surprising part was that Al's Garage Band ends up with a fairly high refresh rate of 900+ Hz. Still have to check a few things for it, but it's getting closer. |
In general a lot of stuff is improved already now, e.g. the fading of GTS3/AlG, the timing of some DE/Sega games (e.g. videomodes), so this is pretty awesome. |
From my recordings I see that pistol poker has 74,5 Hz refresh
|
@lucky01 this match the revised AlvinG driver (I simulated the rasterizer in logisim-evolution and it nearly matched). Do you have timings for Al's Garage Band ? This would be great as it would save quite some work. I have pushed cleaned up version of AlvinG, and DE/Whitestar. I'm still somewhat unsatisfied for DE/Whitestar since I had to put back the hack to get around SW/LW3/... bugs but it leads to wrong timings and DMD animation speed on these games (like before). If someone has insight on these (digital recordings, frequency measures, any hint,...), this would be greatly appreciated |
Sorry no !
LW3 has a refresh of 78,07Hz (RowData Pin) if that helps Any chance you can have a look at the last missing pinball emulation Sleic ? From what Gerrit told me the incomplete I80188-CPU emulation is the problem. As far as I understand Mame has a working emulation which needs to be ported to pinmame. We found a good starting point for pinmame which should be this commit in mame only 6 commits in between |
Sadly, for the time being, I have far too much things ongoing to go on another side project. But one day, who knows ? Regarding the DMD emulation, some new progress, this time for Data East 128x16. It used to have a few hacks (CPU cmd being processed twice, some command being eaten, slightly off timing) which should be fixed now. Also the low pass filter gives better result than the previous 2 frame integration, but it may also breaks colorization since raw frames were not sent. The overall progress so far:
|
Great analysis and execution! |
Just small testing report: TAF(G) has a flickering 'title screen' now. Thanks! |
..seems to be a more general WPC 'problem', e.g. T2 and TOM also feature it now |
Some more progress. There should not remain any flicker, Data East should be finally fixed, WPC's Phantom Haus too, SAM has perhaps better shades (but this needs more reverse engineering).
|
More testing: Batman Forever sometimes shows the display version screen at Ball1 launch and/or after game end/match sequence. |
Values of the transmitted (to VPX) DMD data seem to be smaller/darker now. Congo DMD now has a slight flicker in the williams logo during attract mode (but has an awesome fading now of the Congo logo!). |
but at the price of a little performance impact
more details in
gts3dmd.c
code comment on the motivation behind this proposed change.Note that this PR needs an update of #303 (I will do it if this PR is merged)