Bart wrote:
- Code: Select all
READ64_MEMBER(model3_state::real3d_status_r)
{
m_real3d_status ^= 0xffffffffffffffffU;
if (offset == 0)
{
/* pretty sure this is VBLANK */
m_real3d_status &= ~0x0000000200000000U;
if (m_screen->vblank())
m_real3d_status |= 0x0000000200000000U;
return m_real3d_status;
}
return m_real3d_status;
}
Shekel wrote:This is a totally out there question. I don't even know what half of these things are that I'm reading. But when you talk of timing, I think of Sega Rally on the Model 2 Emulator. I don't know exactly what's wrong with it, the game seems to run fine except that the AI is behind and running slower than it should.
Then a dev said this about Virtua Racing on MAME (which is a Model 1 game). "Virtua Racing is also currently using code taken from Daytona (Model 2 game) instead of its own, because there is currently no method to dump the actual internal code on a VR, that could also be causing issues."
So do you think there's anything in Supermodel's code that could make the M2 emulation of Sega Rally better?
Bart wrote:If it waits until VBL to transfer memory and kick of rendering, seems like it would have a couple frames' worth of latency. I guess that's not a big deal and also occurs in triple-buffered systems.
But I don't think the status bit is tied to VBL. There is already a VBL interrupt, after all.
Bart when games sync with the status bit, they do this
00000001110
They keep polling until it flips back to 0 again. So when vblank ends.
This is impossible for us. The bit only flips back to 0 when a new 'frame' starts. I think this is why our timing is messed up.
Also we probably should swap our own buffers at that point when we say vblank happens.
Users browsing this forum: No registered users and 1 guest