2 SEGA SC-3000 Emulator 'eSC-3000'
4 Author : Takeda.Toshiya
13 #define DEVICE_NAME "SEGA SC-3000"
14 #define CONFIG_NAME "sc3000"
16 // device informations for virtual machine
17 #define FRAMES_PER_SEC 60
18 #define LINES_PER_FRAME 262
19 #define CPU_CLOCKS 3579545
20 #define SCREEN_WIDTH 256
21 #define SCREEN_HEIGHT 192
22 #define TMS9918A_VRAM_SIZE 0x4000
23 #define TMS9918A_LIMIT_SPRITES
26 // device informations for win32
30 #define USE_ALT_F10_KEY
31 #define USE_AUTO_KEY 5
32 #define USE_AUTO_KEY_RELEASE 8
33 #define USE_AUTO_KEY_CAPS
34 #define USE_ACCESS_LAMP
38 #define USE_CRT_MONITOR_4_3 1
40 #include "../../common.h"
41 #include "../../fileio.h"
81 // ----------------------------------------
83 // ----------------------------------------
88 // ----------------------------------------
89 // for emulation class
90 // ----------------------------------------
92 // drive virtual machine
98 DEVICE *get_cpu(int index);
106 void initialize_sound(int rate, int samples);
107 uint16* create_sound(int* extra_frames);
108 int sound_buffer_ptr();
111 void open_cart(int drv, const _TCHAR* file_path);
112 void close_cart(int drv);
113 bool cart_inserted(int drv);
114 void open_disk(int drv, const _TCHAR* file_path, int bank);
115 void close_disk(int drv);
116 bool disk_inserted(int drv);
117 void set_disk_protected(int drv, bool value);
118 bool get_disk_protected(int drv);
119 void play_tape(const _TCHAR* file_path);
120 void rec_tape(const _TCHAR* file_path);
122 bool tape_inserted();
124 bool tape_recording();
128 void update_config();
129 void save_state(FILEIO* state_fio);
130 bool load_state(FILEIO* state_fio);
132 // ----------------------------------------
134 // ----------------------------------------
137 DEVICE* get_device(int id);
139 DEVICE* first_device;