2 NEC-HE PC Engine Emulator 'ePCEngine'
4 Author : Takeda.Toshiya
13 #define DEVICE_NAME "NEC-HE PC Engine"
14 #define CONFIG_NAME "pcengine"
16 #define FRAMES_PER_SEC 60
17 #define LINES_PER_FRAME 262
18 #define CPU_CLOCKS 7159090
19 #define SCREEN_WIDTH 352
20 #define SCREEN_HEIGHT 240
21 // pixel aspect should be 8:7
22 #define WINDOW_HEIGHT_ASPECT 210
24 #define SUPPORT_SUPER_GFX
25 #define SUPPORT_BACKUP_RAM
27 #define _SCSI_DEBUG_LOG
28 #define _CDROM_DEBUG_LOG
30 //#define SCSI_HOST_AUTO_ACK
31 #define SCSI_DEV_IMMEDIATE_SELECT
33 // device informations for win32
34 #define SOUND_RATE_DEFAULT 5 // 44100Hz
35 #define SUPPORT_TV_RENDER
37 #define USE_COMPACT_DISC 1
38 #define USE_SOUND_VOLUME 3
40 #define USE_JOYSTICK_TYPE 4
41 #define JOYSTICK_TYPE_DEFAULT 0
42 #define USE_JOY_BUTTON_CAPTIONS
46 #include "../../common.h"
47 #include "../../fileio.h"
48 #include "../vm_template.h"
50 #ifdef USE_SOUND_VOLUME
51 static const _TCHAR *sound_device_caption[] = {
52 _T("PSG"), _T("CD-DA"), _T("ADPCM")
56 #ifdef USE_JOY_BUTTON_CAPTIONS
57 static const _TCHAR *joy_button_captions[] = {
86 class VM : public VM_TEMPLATE
90 //csp_state_utils* state_entry;
98 SCSI_CDROM* scsi_cdrom;
100 PCEDEV::ADPCM* pce_adpcm;
102 // ----------------------------------------
104 // ----------------------------------------
106 VM(EMU_TEMPLATE* parent_emu);
109 // ----------------------------------------
110 // for emulation class
111 // ----------------------------------------
113 // drive virtual machine
116 double get_frame_rate();
120 DEVICE *get_cpu(int index);
127 void initialize_sound(int rate, int samples);
128 uint16_t* create_sound(int* extra_frames);
129 int get_sound_buffer_ptr();
130 #ifdef USE_SOUND_VOLUME
131 void set_sound_device_volume(int ch, int decibel_l, int decibel_r);
135 void open_cart(int drv, const _TCHAR* file_path);
136 void close_cart(int drv);
137 bool is_cart_inserted(int drv);
138 void open_compact_disc(int drv, const _TCHAR* file_path);
139 void close_compact_disc(int drv);
140 bool is_compact_disc_inserted(int drv);
141 uint32_t is_compact_disc_accessed();
142 bool is_frame_skippable()
147 double get_current_usec();
148 uint64_t get_current_clock_uint64();
150 void update_config();
151 bool process_state(FILEIO* state_fio, bool loading);
153 // ----------------------------------------
155 // ----------------------------------------
158 DEVICE* get_device(int id);
160 //DEVICE* first_device;
161 //DEVICE* last_device;