tcdev Le 19/11/2022 à 12:05 Hi fellow developers,
Just wondering if any of you had experienced different behaviour on your homebrew efforts under MAME vs real hardware?
At this early stage of my development I'm not overly concerned, but I am a little surprised that I do see a number of differences. I won't bore you with details but I do, for example, suspect VRAM accesses are (significantly?) faster under MAME than real hardware?!?
I also see a few other minor behavioural differences, but I can't rule out the possibility that my code isn't following the rules. Regardless, I'd expect an accurate emulator to behave the same way.
Interested to know if you have similar observations?
Regards,
Mark
You are right, the timing is minimally different but generally MAME is the best emulator and very close to the real hardware.
MAME is not perfect (e.g. Raster effects) but if it works in MAME then you can be sure that 99.9% of the time it will work on real hardware - no matter if MVS, AES or NGCD.
The only thing you should keep in mind - ALWAYS use the original bios, the UNIBIOS falsifies some things (e.g. the timing).
tcdev Le 25/01/2023 à 14:24 To answer myself, I have seen one very real difference recently.
For a while I was doing a read/modify/write sequence on VRAM (SCB1) values.
Running on MAME, I had no issue setting the VRAM address and then reading data immediately.
On real hardware, this didn't work at all. In fact I had to insert quite large delays (ballast code) between setting the address and reading the data in order to get them to work properly. To be fair, this is documented (in terms of VCLKS) in Charles McDonald's MVS Hardware Notes document (circa 2007). By my calculations, that's a lot of time required before you can read the data!
Obviously this was a pretty silly way (for me) to do it, and I re-worked my logic to eliminate the VRAM reads altogether.
Just wondering whether anyone else had run into this issue before? Or did you all know well enough not to even attempt VRAM reads?
I wonder why you should read the VRAM?
ok, I understand the task and your solution... it is the most obvious but also the ugliest one to read directly the VRAM, I don't think a commercial game will make much use of it. Maybe this is the reason it's not in the focus of emulation accuracy.