From 76ad465030ee5ef784dcd871a47faaa60453369e Mon Sep 17 00:00:00 2001
From: Thomas Harte <thomas.harte@gmail.com>
Date: Wed, 11 Jan 2023 12:56:09 -0500
Subject: [PATCH] Also seek the extension ROM for the MSX 2.

---
 Machines/MSX/MSX.cpp              | 4 ++++
 Machines/Utility/ROMCatalogue.cpp | 1 +
 Machines/Utility/ROMCatalogue.hpp | 1 +
 3 files changed, 6 insertions(+)

diff --git a/Machines/MSX/MSX.cpp b/Machines/MSX/MSX.cpp
index e02d2499d..2b564f087 100644
--- a/Machines/MSX/MSX.cpp
+++ b/Machines/MSX/MSX.cpp
@@ -170,7 +170,11 @@ class ConcreteMachine:
 			// Install the proper TV standard and select an ideal BIOS name.
 			const std::string machine_name = "MSX";
 			constexpr ROM::Name bios_name = model == Target::Model::MSX1 ? ROM::Name::MSXGenericBIOS : ROM::Name::MSX2GenericBIOS;
+
 			ROM::Request bios_request = ROM::Request(bios_name);
+			if constexpr (model == Target::Model::MSX2) {
+				bios_request = bios_request || ROM::Request(ROM::Name::MSX2Extension);
+			}
 
 			bool is_ntsc = true;
 			uint8_t character_generator = 1;	/* 0 = Japan, 1 = USA, etc, 2 = USSR */
diff --git a/Machines/Utility/ROMCatalogue.cpp b/Machines/Utility/ROMCatalogue.cpp
index 7f7862848..b50c2dfd9 100644
--- a/Machines/Utility/ROMCatalogue.cpp
+++ b/Machines/Utility/ROMCatalogue.cpp
@@ -573,6 +573,7 @@ Description::Description(Name name) {
 		case Name::MSXDOS:			*this = Description(name, "MSX", "the MSX-DOS ROM", "disk.rom", 16*1024, 0x721f61dfu);				break;
 
 		case Name::MSX2GenericBIOS:	*this = Description(name, "MSX", "a generic MSX2 BIOS", "msx2.rom", 32*1024, 0x6cdaf3a5u);			break;
+		case Name::MSX2Extension:	x*this = Description(name, "MSX", "the MSX2 extension ROM", "msx2ext.rom", 16*1024, 0x66237ecfu);	break;
 
 		case Name::SinclairQLJS:
 			*this = Description(name, "SinclairQL", "the Sinclair QL 'JS' ROM", "js.rom", 48*1024, 0x0f95aab5u);
diff --git a/Machines/Utility/ROMCatalogue.hpp b/Machines/Utility/ROMCatalogue.hpp
index b9e5fc3a4..e085cbf09 100644
--- a/Machines/Utility/ROMCatalogue.hpp
+++ b/Machines/Utility/ROMCatalogue.hpp
@@ -118,6 +118,7 @@ enum Name {
 	MSXDOS,
 
 	MSX2GenericBIOS,
+	MSX2Extension,
 
 	// Oric.
 	OricColourROM,