2 CASIO PV-1000 Emulator 'ePV-1000'
4 Author : Takeda.Toshiya
10 #include "./joystick.h"
12 void JOYSTICK::initialize()
14 key = emu->get_key_buffer();
15 joy = emu->get_joy_buffer();
17 // register event to interrupt
18 register_frame_event(this);
21 void JOYSTICK::reset()
26 void JOYSTICK::write_io8(uint32_t addr, uint32_t data)
37 // this->out_debug_log(_T("OUT\t%2x, %2x\n"), addr & 0xff, data);
40 uint32_t JOYSTICK::read_io8(uint32_t addr)
52 if(joy[0] & 0x40) val |= 1; // #1 select
53 if(joy[0] & 0x80) val |= 2; // #1 start
54 if(joy[1] & 0x40) val |= 4; // #2 select
55 if(joy[1] & 0x80) val |= 8; // #2 start
58 if(joy[0] & 0x02) val |= 1; // #1 down
59 if(joy[0] & 0x08) val |= 2; // #1 right
60 if(joy[1] & 0x02) val |= 4; // #2 down
61 if(joy[1] & 0x08) val |= 8; // #2 right
64 if(joy[0] & 0x04) val |= 1; // #1 left
65 if(joy[0] & 0x01) val |= 2; // #1 up
66 if(joy[1] & 0x04) val |= 4; // #2 left
67 if(joy[1] & 0x01) val |= 8; // #2 up
70 if(joy[0] & 0x10) val |= 1; // #1 trig1
71 if(joy[0] & 0x20) val |= 2; // #1 trig2
72 if(joy[1] & 0x10) val |= 4; // #2 trig1
73 if(joy[1] & 0x20) val |= 8; // #2 trig2
78 // this->out_debug_log(_T("IN\t%2x, %2x\n"), addr & 0xff, val);
82 void JOYSTICK::event_frame()
87 #define STATE_VERSION 1
89 bool JOYSTICK::process_state(FILEIO* state_fio, bool loading)
91 if(!state_fio->StateCheckUint32(STATE_VERSION)) {
94 if(!state_fio->StateCheckInt32(this_device_id)) {
97 state_fio->StateUint8(column);
98 state_fio->StateUint8(status);