1 #ifndef __CSP_VM_TEMPLATE_H
2 #define __CSP_VM_TEMPLATE_H
10 class DLL_PREFIX VM_TEMPLATE {
15 csp_state_utils *state_entry;
18 VM_TEMPLATE(EMU* parent_emu) : emu(parent_emu)
23 // drive virtual machine
24 virtual void reset() { }
25 virtual void special_reset() { }
26 virtual void run() { }
27 virtual void notify_power_off() { }
29 virtual double get_frame_rate() { return 59.94; }
30 virtual void get_screen_resolution(int *w, int *h) {
36 virtual DEVICE *get_cpu(int num) { return NULL; }
37 virtual uint32_t get_cpu_pc() { return 0; }
38 virtual void initialize(void) { }
39 virtual void update_dipswitch(void) { }
42 virtual void draw_screen() { }
45 virtual void movie_sound_callback(uint8_t *buffer, long size) { }
47 virtual void initialize_sound(int rate, int samples) { }
48 virtual uint16_t* create_sound(int* extra_frames) { return NULL; }
49 virtual int get_sound_buffer_ptr() { return 0; }
50 virtual void set_sound_device_volume(int ch, int decibel_l, int decibel_r) { }
53 virtual void notify_socket_connected(int ch) { }
54 virtual void notify_socket_disconnected(int ch) { }
55 virtual uint8_t* get_socket_send_buffer(int ch, int* size)
57 if(size != NULL) *size = 0;
60 virtual void inc_socket_send_buffer_ptr(int ch, int size) { }
61 virtual uint8_t* get_socket_recv_buffer0(int ch, int* size0, int* size1) {
62 if(size0 != NULL) *size0 = 0;
63 if(size1 != NULL) *size1 = 0;
66 virtual uint8_t* get_socket_recv_buffer1(int ch) { return NULL; }
67 virtual void inc_socket_recv_buffer_ptr(int ch, int size) { }
70 virtual void key_down(int code, bool repeat) { }
71 virtual void key_up(int code) { }
72 virtual bool get_caps_locked() { return false; }
73 virtual bool get_kana_locked() { return false; }
74 virtual uint32_t get_led_status() { return 0; }
78 virtual void open_floppy_disk(int drv, _TCHAR *file_path, int bank) { }
79 virtual void open_quick_disk(int drv, _TCHAR *file_path) { }
80 virtual void open_hard_disk(int drv, _TCHAR *file_path) { }
81 virtual void open_compact_disc(int drv, _TCHAR *file_path) { }
82 virtual void open_laser_disc(int drv, _TCHAR *file_path) { }
83 virtual void open_bubble_casette(int drv, _TCHAR *file_path, int bank) { }
84 virtual void open_cart(int drv, _TCHAR *file_path) { }
85 virtual void play_tape(int drv, _TCHAR *file_path) { }
86 virtual void rec_tape(int drv, _TCHAR *file_path) { }
87 virtual void load_binary(int drv, _TCHAR *file_path) { }
88 virtual void save_binary(int drv, _TCHAR *file_path) { }
90 virtual void close_floppy_disk(int drv) { }
91 virtual void close_quick_disk(int drv) { }
92 virtual void close_hard_disk(int drv) { }
93 virtual void close_compact_disc() { }
94 virtual void close_laser_disc(int drv) { }
95 virtual void close_bubble_casette(int drv) { }
96 virtual void close_cart(int drv) { }
97 virtual void close_tape(int drv) { }
99 virtual uint32_t is_floppy_disk_accessed() { return 0; }
100 virtual uint32_t is_quick_disk_accessed() { return 0; }
101 virtual uint32_t is_hard_disk_accessed() { return 0; }
102 virtual uint32_t is_compact_disc_accessed() { return 0; }
103 virtual uint32_t is_laser_disc_accessed() { return 0; }
105 virtual bool is_floppy_disk_inserted(int drv) { return false; }
106 virtual bool is_quick_disk_inserted(int drv) { return false; }
107 virtual bool is_hard_disk_inserted(int drv) { return false; }
108 virtual bool is_compact_disc_inserted(int drv) { return false; }
109 virtual bool is_cart_inserted(int drv) { return false; }
110 virtual bool is_laser_disc_inserted(int drv) { return false; }
111 virtual bool is_tape_inserted(int drv) { return false; }
113 virtual void is_floppy_disk_protected(int drv, bool value) { }
114 virtual bool is_floppy_disk_protected(int drv) { return false; }
115 virtual void is_bubble_casette_protected(int drv, bool flag) { }
116 virtual bool is_bubble_casette_protected(int drv) { return false; }
118 virtual bool is_tape_playing(int drv) { return false; }
119 virtual bool is_tape_recording(int drv) { return false; }
120 virtual int get_tape_position(int drv) { return 0; }
121 virtual const _TCHAR* get_tape_message(int drv) { return (const _TCHAR *) ""; }
123 virtual void push_play(int drv) { }
124 virtual void push_stop(int drv) { }
125 virtual void push_fast_forward(int drv) { }
126 virtual void push_fast_rewind(int drv) { }
127 virtual void push_apss_forward(int drv) { }
128 virtual void push_apss_rewind(int drv) { }
130 virtual void update_config() { }
131 virtual void save_state(FILEIO* state_fio) { }
132 virtual bool load_state(FILEIO* state_fio) { return true; }
133 virtual void decl_state(void) { }
136 virtual void set_cpu_clock(DEVICE *cpu, uint32_t clocks) { }
137 virtual void set_vm_frame_rate(double fps) { }
138 virtual double get_vm_frame_rate() { return 59.94; }
139 virtual bool is_frame_skippable() { return false; }
140 virtual bool is_screen_changed() { return true; }
141 virtual int max_draw_ranges() { return 0; }
142 virtual DEVICE* get_device(int id) { return first_device; }
145 DEVICE* first_device;
148 #endif /* __CSP_VM_TEMPLATE_H */