X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=source%2Fsrc%2Fvm%2Fmsx%2Fmsx.h;h=233cb67a2169f49d0e06996196754392f97d7cd1;hb=2fc1443c0f411167f1b61ff87e13fee36cd5876b;hp=1a197b2e0ff2b95f298ebc234ba2a57b552d7df2;hpb=09a5cb5697856ae8a2f78d741b0e42732c077a50;p=csp-qt%2Fcommon_source_project-fm7.git diff --git a/source/src/vm/msx/msx.h b/source/src/vm/msx/msx.h index 1a197b2e0..233cb67a2 100644 --- a/source/src/vm/msx/msx.h +++ b/source/src/vm/msx/msx.h @@ -48,28 +48,46 @@ #endif #define HAS_AY_3_8910 // for Flappy Limited '85 -#define YM2203_PORT_MODE 0x80 +#define AY_3_891X_PORT_MODE 0x80 // device informations for win32 -#define USE_CART1 -#define USE_CART2 -#define USE_TAPE -//#define USE_TAPE_PTR +#define USE_CART 2 +#define USE_TAPE 1 +#define USE_TAPE_BUTTON #if defined(_PX7) -#define USE_LASER_DISC +#define USE_LASER_DISC 1 #define USE_MOVIE_PLAYER #else -#define USE_FD1 -#define USE_FD2 +#define USE_FLOPPY_DISK 2 #endif #define USE_ALT_F10_KEY #define USE_AUTO_KEY 6 #define USE_AUTO_KEY_RELEASE 10 +#if defined(_PX7) +#define USE_SOUND_VOLUME 5 +#else +//#define USE_SOUND_VOLUME 5 +#define USE_SOUND_VOLUME 4 +#endif +#define SUPPORT_TV_RENDER +#define USE_JOYSTICK #define USE_DEBUGGER #define USE_STATE +#define USE_CPU_Z80 #include "../../common.h" #include "../../fileio.h" +#include "../vm_template.h" + +#ifdef USE_SOUND_VOLUME +static const _TCHAR *sound_device_caption[] = { + _T("PSG"), _T("Beep"), _T("CMT (Signal)"), +#if defined(_PX7) + _T("LD-700"), +#endif + _T("Noise (CMT)"), +}; +#endif class EMU; class DEVICE; @@ -82,7 +100,8 @@ class IO; class LD700; #endif class NOT; -class YM2203; +//class YM2203; +class AY_3_891X; class PCM1BIT; #if defined(_MSX2) class RP5C01; @@ -92,24 +111,25 @@ class TMS9918A; #endif class Z80; -class JOYSTICK; -class KEYBOARD; -class MEMORY; +namespace MSX { + class JOYSTICK; + class KEYBOARD; + class MEMORY; #if defined(_MSX2) -class RTCIF; + class RTCIF; #endif -class SLOT0; -class SLOT1; -class SLOT2; -class SLOT3; - -class VM + class SLOT0; + class SLOT1; + class SLOT2; + class SLOT3; +} +class VM : public VM_TEMPLATE { protected: - EMU* emu; + //EMU* emu; // devices - EVENT* event; + //EVENT* event; DATAREC* drec; I8255* pio; @@ -118,7 +138,8 @@ protected: LD700* ldp; #endif NOT* not_remote; - YM2203* psg; +// YM2203* psg; + AY_3_891X* psg; PCM1BIT* pcm; #if defined(_MSX2) RP5C01* rtc; @@ -128,16 +149,16 @@ protected: #endif Z80* cpu; - JOYSTICK* joystick; - KEYBOARD* keyboard; - MEMORY* memory; + MSX::JOYSTICK* joystick; + MSX::KEYBOARD* keyboard; + MSX::MEMORY* memory; #ifdef _MSX2 - RTCIF* rtcif; + MSX::RTCIF* rtcif; #endif - SLOT0 *slot0; - SLOT1 *slot1; - SLOT2 *slot2; - SLOT3 *slot3; + MSX::SLOT0 *slot0; + MSX::SLOT1 *slot1; + MSX::SLOT2 *slot2; + MSX::SLOT3 *slot3; public: // ---------------------------------------- @@ -165,39 +186,50 @@ public: // sound generation void initialize_sound(int rate, int samples); - uint16* create_sound(int* extra_frames); - int sound_buffer_ptr(); + uint16_t* create_sound(int* extra_frames); + int get_sound_buffer_ptr(); #if defined(_PX7) - void movie_sound_callback(uint8 *buffer, long size); + void movie_sound_callback(uint8_t *buffer, long size); +#endif +#ifdef USE_SOUND_VOLUME + void set_sound_device_volume(int ch, int decibel_l, int decibel_r); #endif // user interface void open_cart(int drv, const _TCHAR* file_path); void close_cart(int drv); - bool cart_inserted(int drv); - void play_tape(const _TCHAR* file_path); - void rec_tape(const _TCHAR* file_path); - void close_tape(); - bool tape_inserted(); - bool tape_playing(); - bool tape_recording(); - int tape_position(); + 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) {} #if defined(_PX7) - void open_laser_disc(const _TCHAR* file_path); - void close_laser_disc(); - bool laser_disc_inserted(); + 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(); #else - void open_disk(int drv, const _TCHAR* file_path, int bank); - void close_disk(int drv); - bool disk_inserted(int drv); - void set_disk_protected(int drv, bool value); - bool get_disk_protected(int drv); + 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 now_skip(); + bool is_frame_skippable(); void update_config(); - void save_state(FILEIO* state_fio); - bool load_state(FILEIO* state_fio); + bool process_state(FILEIO* state_fio, bool loading); // ---------------------------------------- // for each device @@ -205,9 +237,9 @@ public: // devices DEVICE* get_device(int id); - DEVICE* dummy; - DEVICE* first_device; - DEVICE* last_device; + //DEVICE* dummy; + //DEVICE* first_device; + //DEVICE* last_device; }; #endif