Update MSX.ino

Added support for the Hudson Soft Bee Pack and Bee Cards.

Requires a Hudson Soft Bee Pack inserted into the MSX Adapter.

Be sure to fully insert the Bee Card into the Bee Pack.

Select Mapper 14 "Hudson Soft Bee Pack" and set the ROM size (16K/32K).
This commit is contained in:
sakman55 2024-11-05 07:49:24 -10:00 committed by GitHub
parent 5aa66780c0
commit d6dd621aa9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -87,6 +87,7 @@ static const byte PROGMEM msxmapsize[] = {
11, 0, 4, 2, 2, // PAC 0K/FM-PAC 64K [sram r/w] 8K 11, 0, 4, 2, 2, // PAC 0K/FM-PAC 64K [sram r/w] 8K
12, 7, 7, 0, 0, // R-Type 384K 12, 7, 7, 0, 0, // R-Type 384K
13, 5, 5, 0, 0, // Super Lode Runner (Irem) 128K 13, 5, 5, 0, 0, // Super Lode Runner (Irem) 128K
14, 2, 3, 0, 0, // Hudson Soft Bee Pack
}; };
// MSX1 = 8,16,32,128,256 // MSX1 = 8,16,32,128,256
@ -99,7 +100,7 @@ byte MSXRAM[] = { 0, 2, 8, 16, 32 };
byte msxramlo = 0; // Lowest Entry byte msxramlo = 0; // Lowest Entry
byte msxramhi = 4; // Highest Entry byte msxramhi = 4; // Highest Entry
byte msxmapcount = 14; // (sizeof(mapsize)/sizeof(mapsize[0])) / 5; byte msxmapcount = 15; // (sizeof(mapsize)/sizeof(mapsize[0])) / 5;
boolean msxmapfound = false; boolean msxmapfound = false;
byte msxmapselect; byte msxmapselect;
int msxindex; int msxindex;
@ -514,6 +515,17 @@ void readROM_MSX() {
CS2_DISABLE; CS2_DISABLE;
MERQ_DISABLE; MERQ_DISABLE;
break; break;
case 14: // Hudson Soft Bee Pack (16K/32K)
CS1_ENABLE;
readSegment_MSX(0x4000,0x8000); // 16K Bank 0
CS1_DISABLE;
if (msxsize == 3) { // 32K
CS2_ENABLE;
readSegment_MSX(0x8000, 0xC000); // +16K Bank 1
CS2_DISABLE;
}
break;
} }
myFile.close(); myFile.close();
@ -846,7 +858,7 @@ setmapper:
String newmap; String newmap;
msxmapfound = false; msxmapfound = false;
printMapper(0); printMapper(0);
Serial.print(F("Enter Mapper [0-13]: ")); Serial.print(F("Enter Mapper [0-14]: "));
while (Serial.available() == 0) {} while (Serial.available() == 0) {}
newmap = Serial.readStringUntil('\n'); newmap = Serial.readStringUntil('\n');
Serial.println(newmap); Serial.println(newmap);
@ -1122,7 +1134,7 @@ void checkStatus_MSX() {
EEPROM_readAnything(7, msxmapper); EEPROM_readAnything(7, msxmapper);
EEPROM_readAnything(8, msxsize); EEPROM_readAnything(8, msxsize);
EEPROM_readAnything(10, msxramsize); EEPROM_readAnything(10, msxramsize);
if (msxmapper > 13) { if (msxmapper > 14) {
msxmapper = 0; msxmapper = 0;
EEPROM_writeAnything(7, msxmapper); EEPROM_writeAnything(7, msxmapper);
} }
@ -1215,6 +1227,9 @@ void printMapper(byte msxmaplabel) {
case 13: case 13:
println_Msg(F("SUPER LODE RUNNER")); println_Msg(F("SUPER LODE RUNNER"));
break; break;
case 14:
println_Msg(F("HUDSON SOFT BEE PACK"));
break;
} }
#else #else
Serial.println(F("0 = NONE")); Serial.println(F("0 = NONE"));
@ -1231,6 +1246,7 @@ void printMapper(byte msxmaplabel) {
Serial.println(F("11 = PAC/FM-PAC")); Serial.println(F("11 = PAC/FM-PAC"));
Serial.println(F("12 = R-TYPE")); Serial.println(F("12 = R-TYPE"));
Serial.println(F("13 = SUPER LODE RUNNER")); Serial.println(F("13 = SUPER LODE RUNNER"));
Serial.println(F("14 = HUDSON SOFT BEE PACK"));
#endif #endif
} }