Posted Sun Nov 13, 2011 9:15 AM
Don't want to resurrect this too prematurely, but I've been playing with ProSystem over the last day mainly out of curiosity..
So far I've got it building with last latest dxsdk (jun 2010) and building g under VS2010.. Still uses direct draw which is deprecated, but I've got it working with dinput8 now, so it'll build out of the box with the latest asks and ides.. I've also cleaned up all the warnings in the code, so now it compiles warning free at error level 4.. This also brought to light a fair few errors in th code..
My main aim was to sort out the cycle accurate timing of it.. My first pass indicates that the CPU is left with too few cycles when taking into account the Maria timing.. The Maria cycle counts are wrong.. Sirius for example takes way more cycles for the Maria rendering that it has available.. My thinking is the hokey dma actually aborts the current dma operation rather than feeding 0's in.. Also the dma is aborted in the case of exceeding the 159'th lineram pixel.. Even with these allowances Sirius still takes more cycles than are available on some lines..
I've also added a display that shows the Maria cycle useable per scanline, live on the display.. Very enlightening I can tell you..
Also I've fixed the annoying sound system so it doesn't click loudly whenever it tries to pause the audio at startup, menus etc..
Also it's speed up enormously now.. Uses around 1% of my i5 instead of maxing out one CPU previously..
Either way, enabling the Maria cycle stealing leaves the CPU with way less cycles than expected..
Particularly things like one on one and commando where there's clue splits and changes that aren't synced to the display, but instead are times loops. Which take longer than expected currently..
That aside, I'm quite getting into the code, but it would take a massive overhaul to implement a debugger into it, given how it works..
I'm wondering what work Groovybee and Curt might have done whilst working on the XM ? Am I repeating work you chaps have already done ? As I assume you've developed some emulation of it for development purposes ?
Just wondering if there's any interest in these changes, and pursuing cycle accurate emulation ?