OXYGENHUB
◆ main openmsx / src / memory / RomMultiRom.cc
694 B · C++ · last changed chore(): initial commit 1 month ago source blame history raw
1
//
2
// Manuel Pazos MultiROM Collection
3
//
4
5
#include "RomMultiRom.hh"
6
#include "serialize.hh"
7
#include "xrange.hh"
8
9
namespace openmsx {
10
11
RomMultiRom::RomMultiRom(const DeviceConfig& config, Rom&& rom_)
12
	: Rom16kBBlocks(config, std::move(rom_))
13
{
14
	reset(EmuTime::dummy());
15
}
16
17
void RomMultiRom::reset(EmuTime /*time*/)
18
{
19
	++counter &= 7;
20
	for (auto i : xrange(4)) {
21
		setRom(i, counter * 4 + i);
22
	}
23
}
24
25
template<typename Archive>
26
void RomMultiRom::serialize(Archive& ar, unsigned /*version*/)
27
{
28
	ar.template serializeBase<Rom16kBBlocks>(*this);
29
	ar.serialize("counter", counter);
30
}
31
INSTANTIATE_SERIALIZE_METHODS(RomMultiRom);
32
REGISTER_MSXDEVICE(RomMultiRom, "RomMultiRom");
33
34
} // namespace openmsx