2 CASIO PV-1000 Emulator 'ePV-1000'
4 Author : Takeda.Toshiya
10 #include "./joystick.h"
14 void JOYSTICK::initialize()
16 key = emu->get_key_buffer();
17 joy = emu->get_joy_buffer();
19 // register event to interrupt
20 register_frame_event(this);
23 void JOYSTICK::reset()
28 void JOYSTICK::write_io8(uint32_t addr, uint32_t data)
39 // this->out_debug_log(_T("OUT\t%2x, %2x\n"), addr & 0xff, data);
42 uint32_t JOYSTICK::read_io8(uint32_t addr)
54 if(joy[0] & 0x40) val |= 1; // #1 select
55 if(joy[0] & 0x80) val |= 2; // #1 start
56 if(joy[1] & 0x40) val |= 4; // #2 select
57 if(joy[1] & 0x80) val |= 8; // #2 start
60 if(joy[0] & 0x02) val |= 1; // #1 down
61 if(joy[0] & 0x08) val |= 2; // #1 right
62 if(joy[1] & 0x02) val |= 4; // #2 down
63 if(joy[1] & 0x08) val |= 8; // #2 right
66 if(joy[0] & 0x04) val |= 1; // #1 left
67 if(joy[0] & 0x01) val |= 2; // #1 up
68 if(joy[1] & 0x04) val |= 4; // #2 left
69 if(joy[1] & 0x01) val |= 8; // #2 up
72 if(joy[0] & 0x10) val |= 1; // #1 trig1
73 if(joy[0] & 0x20) val |= 2; // #1 trig2
74 if(joy[1] & 0x10) val |= 4; // #2 trig1
75 if(joy[1] & 0x20) val |= 8; // #2 trig2
80 // this->out_debug_log(_T("IN\t%2x, %2x\n"), addr & 0xff, val);
84 void JOYSTICK::event_frame()
89 #define STATE_VERSION 1
91 bool JOYSTICK::process_state(FILEIO* state_fio, bool loading)
93 if(!state_fio->StateCheckUint32(STATE_VERSION)) {
96 if(!state_fio->StateCheckInt32(this_device_id)) {
99 state_fio->StateValue(column);
100 state_fio->StateValue(status);