TomHarte/CLK

Atari ST choice of ROMs

ryandesign opened this issue · 0 comments

The ROM catalog contains three different UK versions of the ROM:

case Name::AtariSTTOS100: *this = Description(name, "AtariST", "the UK TOS 1.00 ROM", "tos100.img", 192*1024, 0x1a586c64u); break;
case Name::AtariSTTOS104: *this = Description(name, "AtariST", "the UK TOS 1.04 ROM", "tos104.img", 192*1024, 0xa50d1d43u); break;
case Name::AtariSTEmuTOS192: *this = Description(name, "AtariST", "the UK EmuTOS 1.92 ROM", "etos192uk.img", 192*1024, 0xfc3b9e61u); break;

But only the first one is actually used:

constexpr ROM::Name rom_name = ROM::Name::AtariSTTOS100;
ROM::Request request(rom_name);
auto roms = rom_fetcher(request);
if(!request.validate(roms)) {
throw ROMMachine::Error::MissingROMs;
}

As a user I might like to select the ROM version. I also might like to select the language: TOS was available in several languages, EmuTOS is available in several more, and most Atari STs were sold in Germany so it's likely a user would want to emulate the ST with a German ROM whereas personally I would like to use the American English ROM.