I really was hoping to have a new, meaningful Star Rider video to show off today. But alas, it is not to be.
The accuracy level demanded by emulating this game properly is greater than most of the other laserdisc games that Daphne emulates. And thus, I had to take some time to improve Daphne's overall accuracy.
I am now pleased to report that Daphne will now provide hyper-accurate emulation of VBLANK* begin and end (relative to NTSC, I have not implemented the PAL counterpart). And when I say hyper-accurate, I mean that from the emulated ROM program's point of view, VBLANK will be accurate to within +/- 1 CPU instruction. And the accuracy won't drift over time, it will self-correct itself and stay accurate. This is something that's been on my TODO list for a long time so I am very happy to have finally implemented it. All games will benefit. This is something I felt like Star Rider needed since the ROM program relies heavily on accurately knowing the current vertical line.
So that part is done.
I also enabled strict CPU interleaving which basically means that each of Star Rider's CPUs will execute 1 instruction and then switch to the next CPU. This carries with it a potential significant performance hit but in practice, since each CPU is only 1 MHz, and since I designed my 6809 emulator with this scenario in mind, performance still perfectly adequate on my i5 CPU (may not be so good on a Raspberry Pi, though!). This pleases me greatly because accurate emulation really doesn't get any better than this (at least not in my book!). This was also something I felt was necessary for Star Rider because 1 CPU will send a signal to another CPU and expect a pretty fast response. That means they truly need to be executing in parallel.
Unfortunately, none of this can be portrayed in a video.
I am working on hooking up the frame number decoder now which should potentially allow me to show off a looping attract mode (woohoo!)
No comments:
Post a Comment