1 #ifndef __CSP_VM_TEMPLATE_H
2 #define __CSP_VM_TEMPLATE_H
9 class DLL_PREFIX VM_TEMPLATE {
14 #if defined(__GIT_REPO_VERSION)
15 _TCHAR _git_revision[256];
18 VM_TEMPLATE(EMU* parent_emu) : emu(parent_emu)
21 #if defined(__GIT_REPO_VERSION)
22 memset(_git_revision, 0x00, sizeof(_git_revision));
25 virtual ~VM_TEMPLATE() {} // OK?
26 // drive virtual machine
27 virtual void reset() { }
28 virtual void special_reset() { }
29 virtual void run() { }
30 virtual void notify_power_off() { }
32 virtual double get_frame_rate() { return 59.94; }
33 virtual void get_screen_resolution(int *w, int *h) {
39 virtual DEVICE *get_cpu(int num) { return NULL; }
40 virtual uint32_t get_cpu_pc() { return 0; }
41 virtual void initialize(void) { }
42 virtual void update_dipswitch(void) { }
45 virtual void draw_screen() { }
48 virtual void movie_sound_callback(uint8_t *buffer, long size) { }
50 virtual void initialize_sound(int rate, int samples) { }
51 virtual uint16_t* create_sound(int* extra_frames) { return NULL; }
52 virtual int get_sound_buffer_ptr() { return 0; }
53 virtual void set_sound_device_volume(int ch, int decibel_l, int decibel_r) { }
56 virtual void notify_socket_connected(int ch) { }
57 virtual void notify_socket_disconnected(int ch) { }
58 virtual uint8_t* get_socket_send_buffer(int ch, int* size)
60 if(size != NULL) *size = 0;
63 virtual void inc_socket_send_buffer_ptr(int ch, int size) { }
64 virtual uint8_t* get_socket_recv_buffer0(int ch, int* size0, int* size1) {
65 if(size0 != NULL) *size0 = 0;
66 if(size1 != NULL) *size1 = 0;
69 virtual uint8_t* get_socket_recv_buffer1(int ch) { return NULL; }
70 virtual void inc_socket_recv_buffer_ptr(int ch, int size) { }
73 virtual void key_down(int code, bool repeat) { }
74 virtual void key_up(int code) { }
75 virtual bool get_caps_locked() { return false; }
76 virtual bool get_kana_locked() { return false; }
77 virtual uint32_t get_led_status() { return 0; }
81 virtual void open_floppy_disk(int drv, const _TCHAR *file_path, int bank) { }
82 virtual void open_quick_disk(int drv, const _TCHAR *file_path) { }
83 virtual void open_hard_disk(int drv, const _TCHAR *file_path) { }
84 virtual void open_compact_disc(int drv, const _TCHAR *file_path) { }
85 virtual void open_laser_disc(int drv, const _TCHAR *file_path) { }
86 virtual void open_bubble_casette(int drv, const _TCHAR *file_path, int bank) { }
87 virtual void open_cart(int drv, const _TCHAR *file_path) { }
88 virtual void play_tape(int drv, const _TCHAR *file_path) { }
89 virtual void rec_tape(int drv, const _TCHAR *file_path) { }
90 virtual void load_binary(int drv, const _TCHAR *file_path) { }
91 virtual void save_binary(int drv, const _TCHAR *file_path) { }
93 virtual void close_floppy_disk(int drv) { }
94 virtual void close_quick_disk(int drv) { }
95 virtual void close_hard_disk(int drv) { }
96 virtual void close_compact_disc() { }
97 virtual void close_laser_disc(int drv) { }
98 virtual void close_bubble_casette(int drv) { }
99 virtual void close_cart(int drv) { }
100 virtual void close_tape(int drv) { }
102 virtual uint32_t is_floppy_disk_accessed() { return 0; }
103 virtual uint32_t is_quick_disk_accessed() { return 0; }
104 virtual uint32_t is_hard_disk_accessed() { return 0; }
105 virtual uint32_t is_compact_disc_accessed() { return 0; }
106 virtual uint32_t is_laser_disc_accessed() { return 0; }
108 virtual bool is_floppy_disk_inserted(int drv) { return false; }
109 virtual bool is_quick_disk_inserted(int drv) { return false; }
110 virtual bool is_hard_disk_inserted(int drv) { return false; }
111 virtual bool is_compact_disc_inserted(int drv) { return false; }
112 virtual bool is_cart_inserted(int drv) { return false; }
113 virtual bool is_laser_disc_inserted(int drv) { return false; }
114 virtual bool is_tape_inserted(int drv) { return false; }
116 virtual void is_floppy_disk_protected(int drv, bool value) { }
117 virtual bool is_floppy_disk_protected(int drv) { return false; }
118 virtual void is_bubble_casette_protected(int drv, bool flag) { }
119 virtual bool is_bubble_casette_protected(int drv) { return false; }
121 virtual bool is_tape_playing(int drv) { return false; }
122 virtual bool is_tape_recording(int drv) { return false; }
123 virtual int get_tape_position(int drv) { return 0; }
124 virtual const _TCHAR* get_tape_message(int drv) { return (const _TCHAR *) ""; }
126 virtual void push_play(int drv) { }
127 virtual void push_stop(int drv) { }
128 virtual void push_fast_forward(int drv) { }
129 virtual void push_fast_rewind(int drv) { }
130 virtual void push_apss_forward(int drv) { }
131 virtual void push_apss_rewind(int drv) { }
133 virtual void update_config() { }
134 virtual bool process_state(FILEIO* state_fio, bool loading) { return true; }
137 virtual void set_cpu_clock(DEVICE *cpu, uint32_t clocks) { }
138 virtual void set_vm_frame_rate(double fps) { }
139 virtual double get_vm_frame_rate() { return 59.94; }
140 virtual bool is_frame_skippable() { return false; }
141 virtual bool is_screen_changed() { return true; }
142 virtual int max_draw_ranges() { return 0; }
143 virtual DEVICE* get_device(int id) { return first_device; }
145 virtual const _TCHAR *get_vm_git_version(void) {
146 return (const _TCHAR *)_git_revision;
148 virtual int get_key_name_table_size(void) {
151 virtual const _TCHAR *get_phy_key_name_by_scancode(uint32_t scancode) {
152 return (const _TCHAR *)NULL;
154 virtual const _TCHAR *get_phy_key_name_by_vk(uint32_t vk) {
155 return (const _TCHAR *)NULL;
157 virtual uint32_t get_scancode_by_vk(uint32_t vk) {
160 virtual uint32_t get_vk_by_scancode(uint32_t scancode) {
164 DEVICE* first_device;
168 #endif /* __CSP_VM_TEMPLATE_H */