Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#214 Support booting SCC+ ROM images (e.g. Knightmare SCC+)

open
nobody
None
3
2014-02-14
2010-11-15
SD Snatcher
No

SCC and SCC+ isn't working on some A&L ports of KonamiGameCollection's KnightMare and Twinbee. The games run fine, but without any SCC/SCC+ sound at all.

SHA1(/tmp/bla/kmarscc/KMARSCCP.ROM)= df203139ad0cd2357f3125417a4157e701dbacf6
SHA1(TWINSCC.ROM)= ffb79f90f39c6cda8b2123169571e70fb1cf2c1e
SHA1(TWINSCCP.ROM)= 7a8f50f5f74276905c9ee8e312f4d4f9271dbe0c

OTOH, Knightmare SCC is working fine with SCC sound:

SHA1(/tmp/bla/kmarscc/KMARSCC.ROM)= 19a95d8e0fd5cb61ed02e0641ed15454f0b9de42

You can get these versions for testing here:
http://www.alsoftware.com.br/adrianpage/index.php?page=msxexec

Testbed configuration:
openMSX-0.8.0+NekoLauncher v1.2 (-romtype auto)
Mac OS-X v10.6.4

Note: Twinbee SCC also didn't had SCC sound even if I force the romtype to KonamiSCC.

Discussion

1 2 > >> (Page 1 of 2)
  • the easiest method to fix this is using the disk (images) from where these conversions come from...

     
    • priority: 5 --> 3
     
  • With Twinbee I can clearly see (toggle_vu_meters) that the SCC is detected and being used. The mapper type is also correct (Konami SCC).

    None of those SCC+ versions work, but how are they intended to work anyway? How would you use them on a real machine?

     
  • SD Snatcher
    SD Snatcher
    2010-11-20

    I researched a little on the matter:

    1) TwinbeeSCC has a bug. It doesn't write the instruments correctly
    2) All Adriano's SCC+ versions have the same very simple bug: They don't initialize the "SCC+ mode" on the chip. It seems that Adriano didn't know that this was needed.
    3) I fixed the Twinbee SCC+ version with the patch listed below. Then the game works fine when using the scrom tool, even on openMSX.
    4) There's a bug on openMSX when I try to load the patched rom (3) as a SCC+ cartridge (-cart TWINSCCP.ROM), using the same receipt contained on the softwaredb.xml file:

    <dump><sccpluscart><boot>scc+</boot><hash algo="sha1">a5c573c6949e720ace74c898d6e7df42482c6f99</hash><remark><text>[The Snatcher RAM SCC+][RC-740]</text></remark></sccpluscart></dump>

    To fix the Adriano's Twinbee SCC+ version, just patch it as follows, using an hex-editor. All offsets are file-relative:

    0026h: CDh, 75h, 40h
    0075h: CDh, 24h, 00h, 3Eh, 20h, 32h, FEh, 8Fh, C9h

    This way you'll have a ROM to test and fix the openMSX bug listed on (4). scrom can be downloaded here:
    http://bifi.msxnet.org/msxnet/tech/soundcartridge.html

     
  • Sorry, but can you explain once more what exactly is the bug in openMSX?

     
  • SD Snatcher
    SD Snatcher
    2010-11-21

    The bug is that cartridges declared as <sccplucart><boot>scc+<boot> on softwaredb.xml don't behave as SCC+, but only as a standard SCC.

    If you list the debuggables when running such a cartridge, there will be no SCC+ soundchip connected to the slot of the ROM.

     
  • Ah, now I understand the bug. This is because openMSX doesn't support booting scc+ ROM images. The softwaredb.xml is shared with blueMSX, and blueMSX does support booting scc+ ROMs. On a real MSX you also can't directly boot these ROM images. Instead you have to insert the scc+ cartridge, manually load the ROM image in the scc+ memory and start that. It does work this way, right?

    Should we start supporting this? (even though it's also not possible on real HW). I'll change this item from a bug report into a feature request (and change the subject).

     
    • summary: SCC/SCC+ don't work one Knightmare SCC+ and Twinbee SCC/SCC+ --> Support booting SCC+ ROM images (e.g. Knightmare SCC+)
     
  • SD Snatcher
    SD Snatcher
    2010-11-21

    Hummm... I didn't knew/remembered that the database was shared. When I saw that the <scpluscart> option wasn't working, I thought that the feature wasn't working. My mistake, sorry.

    Well, think of it as a time-saving feature request though. Also it's not possible on Konami Sound Cartridges, but it's indeed possible on real hardware if you have a MegaFlashROM SCC+ with a preloaded game on your MSX, as I have. :)

     
  • Laurens Holst
    Laurens Holst
    2014-02-13

    I wouldn’t mind having this work actually…! Even though on my MSX I run Synthesix on a Snatcher SCC+, it runs in SCC mode (using only 4 channels) cause in openMSX it’s easier to run SCC ROM files.

    I’d argue against the “it’s not existing MSX hardware” argument! The hardware is there, it’s just that openMSX only supports initialising ROM contents from the command line, and not RAM. Adding support for it wouldn’t be emulating nonexistent hardware… And consider, when running ROM files on a real MSX, it will almost always be on an SCC+ or SCC+ clone. Would be nice if it’d be easy to run on the emulator in the same environment.

    Another take on it: If I load Synthesix in my SCC+ I can take it out for 30 seconds and plug it in, and it’ll still run! The memory is much less volatile than you would think :). I can’t emulate this behaviour on openMSX currently! (Did I spin this sufficiently? ;p)

     
    Last edit: Laurens Holst 2014-02-13
1 2 > >> (Page 1 of 2)