openMSX icon indicating copy to clipboard operation
openMSX copied to clipboard

SCC+ registers at 0xb800 should disappear if bank4 is in ram mode

Open artrag opened this issue 4 months ago • 5 comments

Image

according to http://bifi.msxnet.org/msxnet/tech/soundcartridge#programming to see the scc+ registers at B800h, the bit4 in mode register (at BFFFh) has to be set, bank4 has to be in "bank mode", and bit 7 of the segment in mank4 has to be set (segment 128 or upper).

This means that if bank4 is in ram mode, the registers at 0b800h should disappear.

Openmsx ignores the fact that bank4 is set in ram mode and continues presenting the scc+ registers at 0xb800h when the segments in bank4 have with bit7=1

You can see in the picture that setting 0x30 in the mode register (Scc+ bit5=1 and bit4=0 - ram mode for all banks) registers stay visible

artrag avatar Sep 04 '25 15:09 artrag

Thanks a lot for reporting this!

I'm busy with other stuff ATM (both openMSX related and other). I will look into this issue but maybe a bit later. If you want you could accelerate fixing this issue:

  • By verifying this on real hardware. In general the info on bifi.msxnet.org is very reliable. But it's always good to double check.
  • Ideal would be a test program that behaves different in the current openMSX implementation and on a real machine. (And then the goal is to make openMSX behave the same as real machine).
  • If you want to do still more you could dive into the openMSX source code yourself and suggest a fix.

Thanks in advance, even if you choose not to help with any of the above.

m9710797 avatar Sep 04 '25 16:09 m9710797

Please note that this was tested on the emulated Yamanooto device. It may have different behaviour than a real Konami Sound Cartridge (SCC+). AFAICS (but please confirm), the behaviour you describe is implemented in the MSXSCCPlusCart class (so for the KSC), but in the Yamanooto code.

So, @artrag please verify the behavior on a real Yamanooto, and a test program is of course most welcome as @m9710797 already wrote.

MBilderbeek avatar Sep 06 '25 11:09 MBilderbeek

The current version yimmi8.bin doesn't test for ram mode in bank4, and in this, it differs by the real scc+ But Yamanooto has been fixed adding the test on ram mode of bank4 in firmware version yimmi9rc2.bin

artrag avatar Sep 06 '25 11:09 artrag

So, when the updated firmware of Yamanooto is released, we can either change the behaviour and claim that we only emulated the updated one, or make 2 variants, for the old and new Yamanooto firmware.... I propose we simply do the former and if people complain that the emulation is incorrect we must point them to the fact that they use an older firmware on their hardware?

MBilderbeek avatar Sep 06 '25 12:09 MBilderbeek

I have signaled Miguel Fides this issue so he can give his view

artrag avatar Sep 06 '25 13:09 artrag