{
protected:
//EMU* emu;
-
+
// devices
//EVENT* event;
-
+
DATAREC* drec;
I8255* pio;
IO* io;
TMS9918A* vdp;
#endif
Z80* cpu;
-
+
MSX::JOYSTICK* joystick;
MSX::KEYBOARD* keyboard;
MSX::MEMORY* memory;
MSX::SLOT1 *slot1;
MSX::SLOT2 *slot2;
MSX::SLOT3 *slot3;
-
+
public:
// ----------------------------------------
// initialize
// ----------------------------------------
-
- VM(EMU* parent_emu);
+
+ VM(EMU_TEMPLATE* parent_emu);
~VM();
-
+
// ----------------------------------------
// for emulation class
// ----------------------------------------
-
+
// drive virtual machine
- void reset();
- void run();
- double get_frame_rate()
+ void reset() override;
+ void run() override;
+ double get_frame_rate() override
{
return FRAMES_PER_SEC;
}
-
+
#ifdef USE_DEBUGGER
// debugger
- DEVICE *get_cpu(int index);
+ DEVICE *get_cpu(int index) override;
#endif
-
+
// draw screen
- void draw_screen();
-
+ void draw_screen() override;
+
// sound generation
- void initialize_sound(int rate, int samples);
- uint16_t* create_sound(int* extra_frames);
- int get_sound_buffer_ptr();
+ void initialize_sound(int rate, int samples) override;
+ uint16_t* create_sound(int* extra_frames) override;
+ int get_sound_buffer_ptr() override;
#if defined(_PX7)
- void movie_sound_callback(uint8_t *buffer, long size);
+ void movie_sound_callback(uint8_t *buffer, long size) override;
#endif
#ifdef USE_SOUND_VOLUME
- void set_sound_device_volume(int ch, int decibel_l, int decibel_r);
+ void set_sound_device_volume(int ch, int decibel_l, int decibel_r) override;
#endif
-
+
// user interface
- void open_cart(int drv, const _TCHAR* file_path);
- void close_cart(int drv);
- bool is_cart_inserted(int drv);
- void play_tape(int drv, const _TCHAR* file_path);
- void rec_tape(int drv, const _TCHAR* file_path);
- void close_tape(int drv);
- bool is_tape_inserted(int drv);
- bool is_tape_playing(int drv);
- bool is_tape_recording(int drv);
- int get_tape_position(int drv);
- const _TCHAR* get_tape_message(int drv);
- void push_play(int drv);
- void push_stop(int drv);
- void push_fast_forward(int drv);
- void push_fast_rewind(int drv);
- void push_apss_forward(int drv) {}
- void push_apss_rewind(int drv) {}
+ void open_cart(int drv, const _TCHAR* file_path) override;
+ void close_cart(int drv) override;
+ bool is_cart_inserted(int drv) override;
+ void play_tape(int drv, const _TCHAR* file_path) override;
+ void rec_tape(int drv, const _TCHAR* file_path) override;
+ void close_tape(int drv) override;
+ bool is_tape_inserted(int drv) override;
+ bool is_tape_playing(int drv) override;
+ bool is_tape_recording(int drv) override;
+ int get_tape_position(int drv) override;
+ const _TCHAR* get_tape_message(int drv) override;
+ void push_play(int drv) override;
+ void push_stop(int drv) override;
+ void push_fast_forward(int drv) override;
+ void push_fast_rewind(int drv) override;
+ void push_apss_forward(int drv) override {}
+ void push_apss_rewind(int drv) override {}
#if defined(_PX7)
- void open_laser_disc(int drv, const _TCHAR* file_path);
- void close_laser_disc(int drv);
- bool is_laser_disc_inserted(int drv);
- uint32_t is_laser_disc_accessed();
+ void open_laser_disc(int drv, const _TCHAR* file_path) override;
+ void close_laser_disc(int drv) override;
+ bool is_laser_disc_inserted(int drv) override;
+ uint32_t is_laser_disc_accessed() override;
#else
- void open_floppy_disk(int drv, const _TCHAR* file_path, int bank);
- void close_floppy_disk(int drv);
- bool is_floppy_disk_inserted(int drv);
- void is_floppy_disk_protected(int drv, bool value);
- bool is_floppy_disk_protected(int drv);
- uint32_t is_floppy_disk_accessed();
-#endif
- bool is_frame_skippable();
-
- void update_config();
+ void open_floppy_disk(int drv, const _TCHAR* file_path, int bank) override;
+ void close_floppy_disk(int drv) override;
+ bool is_floppy_disk_inserted(int drv) override;
+ void is_floppy_disk_protected(int drv, bool value) override;
+ bool is_floppy_disk_protected(int drv) override;
+ uint32_t is_floppy_disk_accessed() override;
+#endif
+ bool is_frame_skippable() override;
+
+ double get_current_usec() override;
+ uint64_t get_current_clock_uint64() override;
+
+ void update_config() override;
bool process_state(FILEIO* state_fio, bool loading);
-
+
// ----------------------------------------
// for each device
// ----------------------------------------
-
+
// devices
- DEVICE* get_device(int id);
+ DEVICE* get_device(int id) override;
//DEVICE* dummy;
//DEVICE* first_device;
//DEVICE* last_device;