@Guillian Thanks Manuel, i will try that. i see the ROM just returns (doing nothing), so it should continue booting, right? How does it differ from usual boot?
The ROM does nothing, so the computer boots normally. But since the MegaFlashROM SCC+ is configured as "linear ROM cartridge", the SCC is disabled/not available. If you try to flash a ROM now, you will get a "MegaFlashROM SCC+ not found". You need to skip the ROM holding ESC or erase it from recovery in order to access the MegaFlashROM SCC+ again.
Did I understand correctly that SCC is disabled by default and when you boot without flashed ROM it gets enabled, but if there's any ROM flashed then this enabler code is skipped (until the flashed ROM is actually Konami SCC ROM)?
No, the SCC/SCC+ is always enabled by default (MegaFlashROM SCC+ configured as SCC/SCC+ mapper). But if there is a ROM flashed with a non SCC mapper (i.e.: linear ROM) the cartridge is configured at boot time to work with that mapper, so the SCC is not available.
Ah, it explains, thank you I will try when I get my hands on it
Ok so dummy rom worked well. Thanks again Manuel.
And for Nyyrikki's suggestion i tried to write small dos program very quickly to test it but unfortunately it hangs up. Probably i missed something, because i have no real experience with subslots, and i was guided by the wiki
org $100 di in a,($a8) push af and %00110011 or %10001000 out ($a8), a ; this did not work either ; ld a, ($ffff) ; cpl ; push af xor a ld ($ffff), a ld a, $e0 ld ($7fff), a ; see above comment ; pop af ; ld ($ffff), a pop af out ($a8), a ei ret
any suggestions? (basically dummy rom suits me well but i'd like to see if it works that other way too)
My recommendation: use BIOS slot routines WRSLT / RDSLT .
Writing your own is generally a bad idea, unless you need real high performance, and even then still it is better to just find ways to avoid frequent slot selection, because either way it’s going to be slow and you want to avoid it in your inner loops.
Here i hardcoded that MFR is inserted in slot 2 - i just wanted to try the whole concept is it works or not... i will try to do it using bios, i just forgot how do i call bios routines from dos, do i call them also via another inter slot call by RST 30 ? Now I remember in DOS1 that was possible, so i think with DOS2/Nextor it is also possible.
Slot routines are available in DOS, you can use them directly and do not need interslot calls to the BIOS.
http://map.grauw.nl/resources/dos2_environment.php#c2_3
Other BIOS calls are indeed done with interslot calls, like ld iy,(EXPTBL - 1)
/ call CALSLT
.
I had done some asm recently (tried to remember how it is to code for MSX, i should say i almost completely forgot everything over decades but nowadays we have interned and some great sites like yours, much respect to you), but i worked with an 16k rom so it was more comfortable to call BIOS. I feel that we created some off-topic messages really. I will rather email you if i have some more technical questions (i will not abuse, i promise), and thank you for the suggestions btw
By the way, is it possible to disable only the SCC during normal boot?
You can also flash a dummy ROM like:
41 42 10 40 00 00 00 00 00 00 00 00 00 00 00 00 C9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
That will configure the MegaFlashROM SCC+ as a plain ROM cartridge that does nothing, and will disable the SCC/SCC+
After I flashed that I had to turn my MSX off for 10 seconds before it would boot again…
Would be good if after flashing opfxsd erased the magic values from RAM .
Ok, I'll clear the ROM header in the RAM buffer.
In the meanwhile, just pad the ROM to 16K to avoid the buggy MSX1 BIOS detecting a ROM in RAM
I'm trying to play Akin using the MFR but somehow I cannot switch to disk 2. Running disk 1 works, running disk 2 from boot (holding 2 while booting) also works, but switching mid game does not. As if the game somehow prevents the MFR from reading the keyboard. Both disks images works fine when put on actual disks. I recall reading somewhere that Akin switches the z80 to IM2. Is that something that can get in the way? Or is there something else that can be done?