openMSX
video
v9990
Video9000.hh
Go to the documentation of this file.
1
#ifndef VIDEO9000_HH
2
#define VIDEO9000_HH
3
4
#include "
MSXDevice.hh
"
5
#include "
VideoSystemChangeListener.hh
"
6
#include "
VideoLayer.hh
"
7
#include "
EventListener.hh
"
8
9
namespace
openmsx
{
10
11
class
VDP
;
12
class
V9990
;
13
class
PostProcessor;
14
15
class
Video9000
final :
public
MSXDevice
16
,
private
VideoSystemChangeListener
17
,
private
VideoLayer
18
,
private
EventListener
19
{
20
public
:
21
explicit
Video9000
(
const
DeviceConfig
& config);
22
~Video9000
()
override
;
23
24
// MSXDevice
25
void
init
()
override
;
26
void
reset
(EmuTime::param time)
override
;
27
void
writeIO
(
word
port,
byte
value, EmuTime::param time)
override
;
28
29
template
<
typename
Archive>
30
void
serialize
(Archive& ar,
unsigned
version);
31
32
private
:
33
void
recalculate();
34
void
recalculateVideoSource();
35
36
// VideoSystemChangeListener
37
void
preVideoSystemChange()
noexcept
override
;
38
void
postVideoSystemChange()
noexcept
override
;
39
40
// VideoLayer
41
void
paint(
OutputSurface
& output)
override
;
42
void
takeRawScreenShot(
unsigned
height,
const
std::string& filename)
override
;
43
44
// EventListener
45
int
signalEvent(
const
Event
& event)
override
;
46
47
// Observer<Setting>
48
void
update(
const
Setting
&
setting
)
noexcept
override
;
49
50
private
:
51
VideoSourceSetting
& videoSourceSetting;
52
VDP
* vdp;
53
V9990
* v9990;
54
Layer
* activeLayer =
nullptr
;
55
PostProcessor
* v99x8Layer =
nullptr
;
56
PostProcessor
* v9990Layer =
nullptr
;
57
byte
value = 0x10;
58
};
59
60
}
// namespace openmsx
61
62
#endif
EventListener.hh
setting
BaseSetting * setting
Definition:
Interpreter.cc:28
MSXDevice.hh
VideoLayer.hh
VideoSystemChangeListener.hh
openmsx::DeviceConfig
Definition:
DeviceConfig.hh:21
openmsx::EventListener
Definition:
EventListener.hh:9
openmsx::Event
Definition:
Event.hh:28
openmsx::Layer
Interface for display layers.
Definition:
Layer.hh:12
openmsx::MSXDevice
An MSXDevice is an emulated hardware component connected to the bus of the emulated MSX.
Definition:
MSXDevice.hh:36
openmsx::OutputSurface
A frame buffer where pixels can be written to.
Definition:
OutputSurface.hh:21
openmsx::PostProcessor
Abstract base class for post processors.
Definition:
PostProcessor.hh:31
openmsx::Setting
Definition:
Setting.hh:127
openmsx::V9990
Implementation of the Yamaha V9990 VDP as used in the GFX9000 cartridge by Sunrise.
Definition:
V9990.hh:35
openmsx::VDP
Unified implementation of MSX Video Display Processors (VDPs).
Definition:
VDP.hh:64
openmsx::Video9000
Definition:
Video9000.hh:19
openmsx::Video9000::Video9000
Video9000(const DeviceConfig &config)
Definition:
Video9000.cc:16
openmsx::Video9000::reset
void reset(EmuTime::param time) override
This method is called on reset.
Definition:
Video9000.cc:52
openmsx::Video9000::~Video9000
~Video9000() override
Definition:
Video9000.cc:45
openmsx::Video9000::init
void init() override
Definition:
Video9000.cc:27
openmsx::Video9000::serialize
void serialize(Archive &ar, unsigned version)
Definition:
Video9000.cc:164
openmsx::Video9000::writeIO
void writeIO(word port, byte value, EmuTime::param time) override
Write a byte to a given IO port at a certain time to this device.
Definition:
Video9000.cc:57
openmsx::VideoLayer
Definition:
VideoLayer.hh:19
openmsx::VideoSourceSetting
Definition:
VideoSourceSetting.hh:10
openmsx::VideoSystemChangeListener
Definition:
VideoSystemChangeListener.hh:7
openmsx
This file implemented 3 utility functions:
Definition:
Autofire.cc:9
openmsx::V9990
V9990
Definition:
V9990.cc:959
openmsx::word
uint16_t word
16 bit unsigned integer
Definition:
openmsx.hh:29
openmsx::VDP
VDP
Definition:
VDP.cc:2009
Generated on Fri May 19 2023 13:13:12 for openMSX by
1.9.4