Closed sharpie7 closed 2 years ago
No you're not missing anything.
The only game I know of that uses undocumented opcodes is Zalaga, and that seems to work correctly.
I wasn't going to add this until it proved to be neccessary, as the CPU data bus is one of he critical timing paths.
I was a bit surprised though by this thread: https://stardot.org.uk/forums/viewtopic.php?t=20350
Are you getting those artifacts?
If they occur, and this is the cause, then I have no problem adding this in. The timing is only tight on some of the older Spartan 3 targets which are rarely used now.
Thinking about this some more, all of my implementations use fast asynchronous SRAM external to the FPGA, so this cpu_do -> cpu_di path does actually happen via the pads of the FPGA.
If you are experiencing this "vertical blinds" issue, I'm happy to add this in.
I haven't seen any issue. I am using onboard RAM but I haven't checked if there is any any muxing of the signals in front of that.
I would be inclined to take an "if it aint broke, don't fix it" approach for now, but maybe add a comment next to the big statement that assigns DI to explain what's been done and why.
Actually, I am now seeing the "vertical blind" effect. It isn't visible on the aliens when they are in formation, but when they dive they look like they have vertical stripes, so perhaps this loopback is needed.
OK, happy to do that.
That's fixed now.
You might also want to pull in ba820f07 which fixes an issue with Pharoah's Curse.
All of the other recent work I've been doing as relates to the Papilio Duo build, so is not directly relevant to you.
Thanks. That looks good now!
Do let me know if you find issues with any other games.
(I did a fair amount of testing this week against various "benchmark" games that are known to be tricky for emulators)
Thanks. Will do. I think we've (well you mostly) have already closed most of the bug that fraustrated me on the original MISTer version.
It seems to be a very solid emulation.
More a question that an issue:
In the T65 header it says:
I can't see this in the code. Obviously it works. Am I missing something?