diff --git a/rpcs3/Emu/Io/Keyboard.h b/rpcs3/Emu/Io/Keyboard.h index 241913f72d..ff01933bd0 100644 --- a/rpcs3/Emu/Io/Keyboard.h +++ b/rpcs3/Emu/Io/Keyboard.h @@ -18,8 +18,8 @@ public: std::vector& GetKeyboards() { return m_keyboard_handler->GetKeyboards(); } KbInfo& GetInfo() { return m_keyboard_handler->GetInfo(); } std::vector& GetButtons(const u32 keyboard) { return m_keyboard_handler->GetButtons(keyboard); } - CellKbData& GetData(const u32 keyboard) { return m_keyboard_handler->GetData(keyboard); } - CellKbConfig& GetConfig(const u32 keyboard) { return m_keyboard_handler->GetConfig(keyboard); } + KbData& GetData(const u32 keyboard) { return m_keyboard_handler->GetData(keyboard); } + KbConfig& GetConfig(const u32 keyboard) { return m_keyboard_handler->GetConfig(keyboard); } bool IsInited() const { return m_inited; } }; diff --git a/rpcs3/Emu/Io/KeyboardHandler.h b/rpcs3/Emu/Io/KeyboardHandler.h index 9eff36490b..a934a28165 100644 --- a/rpcs3/Emu/Io/KeyboardHandler.h +++ b/rpcs3/Emu/Io/KeyboardHandler.h @@ -191,26 +191,25 @@ enum CellKbMappingType CELL_KB_MAPPING_PORTUGUESE_BRAZIL, }; -static const u32 CELL_KB_MAX_KEYBOARDS = 127; -static const u32 CELL_KB_MAX_PORT_NUM = 7; -static const u32 CELL_KB_MAX_KEYCODES = 62; +static const u32 KB_MAX_KEYBOARDS = 127; +static const u32 KB_MAX_KEYCODES = 62; struct KbInfo { u32 max_connect; u32 now_connect; u32 info; - u8 status[CELL_KB_MAX_KEYBOARDS]; + u8 status[KB_MAX_KEYBOARDS]; }; -struct CellKbData +struct KbData { u32 led; u32 mkey; s32 len; - u16 keycode[CELL_KB_MAX_KEYCODES]; + u16 keycode[KB_MAX_KEYCODES]; - CellKbData() + KbData() : led(0) , mkey(0) , len(0) @@ -218,13 +217,13 @@ struct CellKbData } }; -struct CellKbConfig +struct KbConfig { u32 arrange; u32 read_mode; u32 code_type; - CellKbConfig() + KbConfig() : arrange(CELL_KB_MAPPING_106) , read_mode(CELL_KB_RMODE_INPUTCHAR) , code_type(CELL_KB_CODETYPE_ASCII) @@ -248,8 +247,8 @@ struct KbButton struct Keyboard { - CellKbData m_data; - CellKbConfig m_config; + KbData m_data; + KbConfig m_config; std::vector m_buttons; Keyboard() @@ -278,8 +277,8 @@ public: if(button.m_keyCode != code) continue; - CellKbData& data = keyboard.m_data; - CellKbConfig& config = keyboard.m_config; + KbData& data = keyboard.m_data; + KbConfig& config = keyboard.m_config; if (pressed) { @@ -305,7 +304,7 @@ public: { kcode = cellKbCnvRawCode(config.arrange, data.mkey, data.led, button.m_outKeyCode); } - data.keycode[data.len % CELL_KB_MAX_KEYCODES] = kcode; + data.keycode[data.len % KB_MAX_KEYCODES] = kcode; data.len++; } } @@ -327,6 +326,6 @@ public: KbInfo& GetInfo() { return m_info; } std::vector& GetKeyboards() { return m_keyboards; } std::vector& GetButtons(const u32 keyboard) { return m_keyboards[keyboard].m_buttons; } - CellKbData& GetData(const u32 keyboard) { return m_keyboards[keyboard].m_data; } - CellKbConfig& GetConfig(const u32 keyboard) { return m_keyboards[keyboard].m_config; } + KbData& GetData(const u32 keyboard) { return m_keyboards[keyboard].m_data; } + KbConfig& GetConfig(const u32 keyboard) { return m_keyboards[keyboard].m_config; } }; \ No newline at end of file diff --git a/rpcs3/Emu/Io/Mouse.h b/rpcs3/Emu/Io/Mouse.h index 405155ac93..2ccc5611ce 100644 --- a/rpcs3/Emu/Io/Mouse.h +++ b/rpcs3/Emu/Io/Mouse.h @@ -17,8 +17,8 @@ public: std::vector& GetMice() { return m_mouse_handler->GetMice(); } MouseInfo& GetInfo() { return m_mouse_handler->GetInfo(); } - CellMouseData& GetData(const u32 mouse) { return m_mouse_handler->GetData(mouse); } - CellMouseRawData& GetRawData(const u32 mouse) { return m_mouse_handler->GetRawData(mouse); } + MouseData& GetData(const u32 mouse) { return m_mouse_handler->GetData(mouse); } + MouseRawData& GetRawData(const u32 mouse) { return m_mouse_handler->GetRawData(mouse); } bool IsInited() const { return m_inited; } }; diff --git a/rpcs3/Emu/Io/MouseHandler.h b/rpcs3/Emu/Io/MouseHandler.h index c081ae2f7e..6029bda1ac 100644 --- a/rpcs3/Emu/Io/MouseHandler.h +++ b/rpcs3/Emu/Io/MouseHandler.h @@ -26,32 +26,32 @@ enum MouseButtonCodes CELL_MOUSE_BUTTON_8 = 0x00000080, }; -static const u32 CELL_MAX_MICE = 127; -static const u32 CELL_MOUSE_MAX_DATA_LIST_NUM = 8; -static const u32 CELL_MOUSE_MAX_CODES = 64; +static const u32 MAX_MICE = 127; +static const u32 MOUSE_MAX_DATA_LIST_NUM = 8; +static const u32 MOUSE_MAX_CODES = 64; struct MouseInfo { u32 max_connect; u32 now_connect; u32 info; - u16 vendor_id[CELL_MAX_MICE]; - u16 product_id[CELL_MAX_MICE]; - u8 status[CELL_MAX_MICE]; + u16 vendor_id[MAX_MICE]; + u16 product_id[MAX_MICE]; + u8 status[MAX_MICE]; }; -struct CellMouseRawData +struct MouseRawData { s32 len; - u8 data[CELL_MOUSE_MAX_CODES]; + u8 data[MOUSE_MAX_CODES]; - CellMouseRawData() + MouseRawData() : len(0) { } }; -struct CellMouseData +struct MouseData { u8 update; u8 buttons; @@ -60,7 +60,7 @@ struct CellMouseData s8 wheel; s8 tilt; // (TODO) - CellMouseData() + MouseData() : update(0) , buttons(0) , x_axis(0) @@ -71,12 +71,12 @@ struct CellMouseData } }; -struct CellMouseDataList +struct MouseDataList { u32 list_num; - CellMouseData list[CELL_MOUSE_MAX_DATA_LIST_NUM]; + MouseData list[MOUSE_MAX_DATA_LIST_NUM]; - CellMouseDataList() + MouseDataList() : list_num(0) { } @@ -87,8 +87,8 @@ struct Mouse s16 x_pos; s16 y_pos; - CellMouseData m_data; - CellMouseRawData m_rawdata; + MouseData m_data; + MouseRawData m_rawdata; Mouse() : m_data() @@ -113,7 +113,7 @@ public: { if (m_info.status[p] == CELL_MOUSE_STATUS_CONNECTED) { - CellMouseData& data = GetData(p); + MouseData& data = GetData(p); data.update = CELL_MOUSE_DATA_UPDATE; if (pressed) data.buttons |= button; else data.buttons &= ~button; @@ -127,7 +127,7 @@ public: { if (m_info.status[p] == CELL_MOUSE_STATUS_CONNECTED) { - CellMouseData& data = GetData(p); + MouseData& data = GetData(p); data.update = CELL_MOUSE_DATA_UPDATE; data.wheel = rotation/120; //120=event.GetWheelDelta() } @@ -140,7 +140,7 @@ public: { if (m_info.status[p] == CELL_MOUSE_STATUS_CONNECTED) { - CellMouseData& data = GetData(p); + MouseData& data = GetData(p); data.update = CELL_MOUSE_DATA_UPDATE; data.x_axis += x_pos_new - m_mice[p].x_pos; data.y_axis += y_pos_new - m_mice[p].y_pos; @@ -157,6 +157,6 @@ public: MouseInfo& GetInfo() { return m_info; } std::vector& GetMice() { return m_mice; } - CellMouseData& GetData(const u32 mouse) { return m_mice[mouse].m_data; } - CellMouseRawData& GetRawData(const u32 mouse) { return m_mice[mouse].m_rawdata; } + MouseData& GetData(const u32 mouse) { return m_mice[mouse].m_data; } + MouseRawData& GetRawData(const u32 mouse) { return m_mice[mouse].m_rawdata; } }; \ No newline at end of file diff --git a/rpcs3/Emu/Memory/Memory.h b/rpcs3/Emu/Memory/Memory.h index 8ce65be932..cc91506699 100644 --- a/rpcs3/Emu/Memory/Memory.h +++ b/rpcs3/Emu/Memory/Memory.h @@ -745,39 +745,6 @@ public: } }; -class mem_class_t -{ - u32 m_addr; - -public: - mem_class_t(u32 addr) : m_addr(addr) - { - } - - mem_class_t() : m_addr(0) - { - } - - template u32 operator += (T right) - { - mem_t& m((mem_t&)*this); - m = right; - m_addr += sizeof(T); - return m_addr; - } - - template operator T() - { - mem_t& m((mem_t&)*this); - const T ret = m; - m_addr += sizeof(T); - return ret; - } - - u64 GetAddr() const { return m_addr; } - void SetAddr(const u64 addr) { m_addr = addr; } -}; - template struct _func_arg { diff --git a/rpcs3/Emu/SysCalls/Modules/SC_Keyboard.cpp b/rpcs3/Emu/SysCalls/Modules/SC_Keyboard.cpp index 8f529f6e17..d93739c596 100644 --- a/rpcs3/Emu/SysCalls/Modules/SC_Keyboard.cpp +++ b/rpcs3/Emu/SysCalls/Modules/SC_Keyboard.cpp @@ -4,21 +4,10 @@ #include "Emu/SysCalls/Modules.h" #include "Emu/Io/Keyboard.h" +#include "SC_Keyboard.h" extern Module *sys_io; -enum CELL_KB_ERROR_CODE -{ - CELL_KB_ERROR_FATAL = 0x80121001, - CELL_KB_ERROR_INVALID_PARAMETER = 0x80121002, - CELL_KB_ERROR_ALREADY_INITIALIZED = 0x80121003, - CELL_KB_ERROR_UNINITIALIZED = 0x80121004, - CELL_KB_ERROR_RESOURCE_ALLOCATION_FAILED = 0x80121005, - CELL_KB_ERROR_READ_FAILED = 0x80121006, - CELL_KB_ERROR_NO_DEVICE = 0x80121007, - CELL_KB_ERROR_SYS_SETTING_FAILED = 0x80121008, -}; - int cellKbInit(u32 max_connect) { sys_io->Warning("cellKbInit(max_connect=%d)", max_connect); @@ -96,24 +85,24 @@ u16 cellKbCnvRawCode(u32 arrange, u32 mkey, u32 led, u16 rawcode) return 0x0000; } -int cellKbGetInfo(mem_class_t info) +int cellKbGetInfo(mem_ptr_t info) { sys_io->Log("cellKbGetInfo(info_addr=0x%x)", info.GetAddr()); if(!Emu.GetKeyboardManager().IsInited()) return CELL_KB_ERROR_UNINITIALIZED; const KbInfo& current_info = Emu.GetKeyboardManager().GetInfo(); - info += current_info.max_connect; - info += current_info.now_connect; - info += current_info.info; + info->max_connect = current_info.max_connect; + info->now_connect = current_info.now_connect; + info->info = current_info.info; for(u32 i=0; istatus[i] = current_info.status[i]; } return CELL_OK; } -int cellKbRead(u32 port_no, mem_class_t data) +int cellKbRead(u32 port_no, mem_ptr_t data) { sys_io->Log("cellKbRead(port_no=%d,info_addr=0x%x)", port_no, data.GetAddr()); @@ -121,13 +110,13 @@ int cellKbRead(u32 port_no, mem_class_t data) if(!Emu.GetKeyboardManager().IsInited()) return CELL_KB_ERROR_UNINITIALIZED; if(port_no >= keyboards.size()) return CELL_KB_ERROR_INVALID_PARAMETER; - CellKbData& current_data = Emu.GetKeyboardManager().GetData(port_no); - data += current_data.led; - data += current_data.mkey; - data += std::min((u32)current_data.len, CELL_KB_MAX_KEYCODES); + KbData& current_data = Emu.GetKeyboardManager().GetData(port_no); + data->led = current_data.led; + data->mkey = current_data.mkey; + data->len = std::min((u32)current_data.len, CELL_KB_MAX_KEYCODES); for(s32 i=0; ikeycode[i] = current_data.keycode[i]; } current_data.len = 0; @@ -140,7 +129,7 @@ int cellKbSetCodeType(u32 port_no, u32 type) sys_io->Log("cellKbSetCodeType(port_no=%d,type=%d)", port_no, type); if(!Emu.GetKeyboardManager().IsInited()) return CELL_KB_ERROR_UNINITIALIZED; - CellKbConfig& current_config = Emu.GetKeyboardManager().GetConfig(port_no); + KbConfig& current_config = Emu.GetKeyboardManager().GetConfig(port_no); current_config.code_type = type; return CELL_OK; } @@ -156,21 +145,21 @@ int cellKbSetReadMode(u32 port_no, u32 rmode) sys_io->Log("cellKbSetReadMode(port_no=%d,rmode=%d)", port_no, rmode); if(!Emu.GetKeyboardManager().IsInited()) return CELL_KB_ERROR_UNINITIALIZED; - CellKbConfig& current_config = Emu.GetKeyboardManager().GetConfig(port_no); + KbConfig& current_config = Emu.GetKeyboardManager().GetConfig(port_no); current_config.read_mode = rmode; return CELL_OK; } -int cellKbGetConfiguration(u32 port_no, mem_class_t config) +int cellKbGetConfiguration(u32 port_no, mem_ptr_t config) { sys_io->Log("cellKbGetConfiguration(port_no=%d,config_addr=0x%x)", port_no, config.GetAddr()); if(!Emu.GetKeyboardManager().IsInited()) return CELL_KB_ERROR_UNINITIALIZED; - const CellKbConfig& current_config = Emu.GetKeyboardManager().GetConfig(port_no); - config += current_config.arrange; - config += current_config.read_mode; - config += current_config.code_type; + const KbConfig& current_config = Emu.GetKeyboardManager().GetConfig(port_no); + config->arrange = current_config.arrange; + config->read_mode = current_config.read_mode; + config->code_type = current_config.code_type; return CELL_OK; } diff --git a/rpcs3/Emu/SysCalls/Modules/SC_Keyboard.h b/rpcs3/Emu/SysCalls/Modules/SC_Keyboard.h new file mode 100644 index 0000000000..ca77078e17 --- /dev/null +++ b/rpcs3/Emu/SysCalls/Modules/SC_Keyboard.h @@ -0,0 +1,51 @@ +#pragma once + +enum CELL_KB_ERROR_CODE +{ + CELL_KB_ERROR_FATAL = 0x80121001, + CELL_KB_ERROR_INVALID_PARAMETER = 0x80121002, + CELL_KB_ERROR_ALREADY_INITIALIZED = 0x80121003, + CELL_KB_ERROR_UNINITIALIZED = 0x80121004, + CELL_KB_ERROR_RESOURCE_ALLOCATION_FAILED = 0x80121005, + CELL_KB_ERROR_READ_FAILED = 0x80121006, + CELL_KB_ERROR_NO_DEVICE = 0x80121007, + CELL_KB_ERROR_SYS_SETTING_FAILED = 0x80121008, +}; + +static const u32 CELL_KB_MAX_KEYBOARDS = 127; + +struct CellKbInfo +{ + be_t max_connect; + be_t now_connect; + be_t info; + u8 status[CELL_KB_MAX_KEYBOARDS]; +}; + +static const u32 CELL_KB_MAX_KEYCODES = 62; + +struct CellKbData +{ + be_t led; + be_t mkey; + be_t len; + be_t keycode[CELL_KB_MAX_KEYCODES]; +}; + +struct CellKbConfig +{ + be_t arrange; + be_t read_mode; + be_t code_type; +}; + +int cellKbInit(u32 max_connect); +int cellKbEnd(); +int cellKbClearBuf(u32 port_no); +u16 cellKbCnvRawCode(u32 arrange, u32 mkey, u32 led, u16 rawcode); +int cellKbGetInfo(mem_ptr_t info); +int cellKbRead(u32 port_no, mem_ptr_t data); +int cellKbSetCodeType(u32 port_no, u32 type); +int cellKbSetLEDStatus(u32 port_no, u8 led); +int cellKbSetReadMode(u32 port_no, u32 rmode); +int cellKbGetConfiguration(u32 port_no, mem_ptr_t config); \ No newline at end of file diff --git a/rpcs3/Emu/SysCalls/Modules/SC_Mouse.cpp b/rpcs3/Emu/SysCalls/Modules/SC_Mouse.cpp index 99648ea32c..210bcbbb94 100644 --- a/rpcs3/Emu/SysCalls/Modules/SC_Mouse.cpp +++ b/rpcs3/Emu/SysCalls/Modules/SC_Mouse.cpp @@ -4,21 +4,10 @@ #include "Emu/SysCalls/Modules.h" #include "Emu/Io/Mouse.h" +#include "SC_Mouse.h" extern Module *sys_io; -enum CELL_MOUSE_ERROR_CODE -{ - CELL_MOUSE_ERROR_FATAL = 0x80121201, - CELL_MOUSE_ERROR_INVALID_PARAMETER = 0x80121202, - CELL_MOUSE_ERROR_ALREADY_INITIALIZED = 0x80121203, - CELL_MOUSE_ERROR_UNINITIALIZED = 0x80121204, - CELL_MOUSE_ERROR_RESOURCE_ALLOCATION_FAILED = 0x80121205, - CELL_MOUSE_ERROR_DATA_READ_FAILED = 0x80121206, - CELL_MOUSE_ERROR_NO_DEVICE = 0x80121207, - CELL_MOUSE_ERROR_SYS_SETTING_FAILED = 0x80121208, -}; - int cellMouseInit(u32 max_connect) { sys_io->Warning("cellMouseInit(max_connect=%d)", max_connect); @@ -49,47 +38,47 @@ int cellMouseEnd() return CELL_OK; } -int cellMouseGetInfo(mem_class_t info) +int cellMouseGetInfo(mem_ptr_t info) { sys_io->Log("cellMouseGetInfo(info_addr=0x%x)", info.GetAddr()); if(!Emu.GetMouseManager().IsInited()) return CELL_MOUSE_ERROR_UNINITIALIZED; const MouseInfo& current_info = Emu.GetMouseManager().GetInfo(); - info += current_info.max_connect; - info += current_info.now_connect; - info += current_info.info; - for(u32 i=0; imax_connect = current_info.max_connect; + info->now_connect = current_info.now_connect; + info->info = current_info.info; + for(u32 i=0; ivendor_id[i] = current_info.vendor_id[i]; + for(u32 i=0; iproduct_id[i] = current_info.product_id[i]; + for(u32 i=0; istatus[i] = current_info.status[i]; return CELL_OK; } -int cellMouseInfoTabletMode(u32 port_no, mem_class_t info) +int cellMouseInfoTabletMode(u32 port_no, mem_ptr_t info) { sys_io->Log("cellMouseInfoTabletMode(port_no=%d,info_addr=0x%x)", port_no, info.GetAddr()); if(!Emu.GetMouseManager().IsInited()) return CELL_MOUSE_ERROR_UNINITIALIZED; if(port_no >= Emu.GetMouseManager().GetMice().size()) return CELL_MOUSE_ERROR_INVALID_PARAMETER; - info += 0; // Unimplemented: (0=Tablet mode is not supported) - info += 1; // Unimplemented: (1=Mouse mode) + info->is_supported = 0; // Unimplemented: (0=Tablet mode is not supported) + info->mode = 1; // Unimplemented: (1=Mouse mode) return CELL_OK; } -int cellMouseGetData(u32 port_no, mem_class_t data) +int cellMouseGetData(u32 port_no, mem_ptr_t data) { sys_io->Log("cellMouseGetData(port_no=%d,data_addr=0x%x)", port_no, data.GetAddr()); if(!Emu.GetMouseManager().IsInited()) return CELL_MOUSE_ERROR_UNINITIALIZED; if(port_no >= Emu.GetMouseManager().GetMice().size()) return CELL_MOUSE_ERROR_NO_DEVICE; - CellMouseData& current_data = Emu.GetMouseManager().GetData(port_no); - data += current_data.update; - data += current_data.buttons; - data += current_data.x_axis; - data += current_data.y_axis; - data += current_data.wheel; - data += current_data.tilt; + MouseData& current_data = Emu.GetMouseManager().GetData(port_no); + data->update = current_data.update; + data->buttons = current_data.buttons; + data->x_axis = current_data.x_axis; + data->y_axis = current_data.y_axis; + data->wheel = current_data.wheel; + data->tilt = current_data.tilt; current_data.update = CELL_MOUSE_DATA_NON; current_data.x_axis = 0; @@ -99,7 +88,7 @@ int cellMouseGetData(u32 port_no, mem_class_t data) return CELL_OK; } -int cellMouseGetDataList(u32 port_no, mem_class_t data) +int cellMouseGetDataList(u32 port_no, mem_ptr_t data) { UNIMPLEMENTED_FUNC(sys_io); @@ -113,14 +102,14 @@ int cellMouseSetTabletMode(u32 port_no, u32 mode) return CELL_OK; } -int cellMouseGetTabletDataList(u32 port_no, mem_class_t data) +int cellMouseGetTabletDataList(u32 port_no, u32 data_addr) { UNIMPLEMENTED_FUNC(sys_io); return CELL_OK; } -int cellMouseGetRawData(u32 port_no, mem_class_t data) +int cellMouseGetRawData(u32 port_no, u32 data_addr) { UNIMPLEMENTED_FUNC(sys_io); diff --git a/rpcs3/Emu/SysCalls/Modules/SC_Mouse.h b/rpcs3/Emu/SysCalls/Modules/SC_Mouse.h new file mode 100644 index 0000000000..02915c7ab3 --- /dev/null +++ b/rpcs3/Emu/SysCalls/Modules/SC_Mouse.h @@ -0,0 +1,62 @@ +#pragma once + +enum CELL_MOUSE_ERROR_CODE +{ + CELL_MOUSE_ERROR_FATAL = 0x80121201, + CELL_MOUSE_ERROR_INVALID_PARAMETER = 0x80121202, + CELL_MOUSE_ERROR_ALREADY_INITIALIZED = 0x80121203, + CELL_MOUSE_ERROR_UNINITIALIZED = 0x80121204, + CELL_MOUSE_ERROR_RESOURCE_ALLOCATION_FAILED = 0x80121205, + CELL_MOUSE_ERROR_DATA_READ_FAILED = 0x80121206, + CELL_MOUSE_ERROR_NO_DEVICE = 0x80121207, + CELL_MOUSE_ERROR_SYS_SETTING_FAILED = 0x80121208, +}; + +static const u32 CELL_MAX_MICE = 127; + +struct CellMouseInfo +{ + be_t max_connect; + be_t now_connect; + be_t info; + be_t vendor_id[CELL_MAX_MICE]; + be_t product_id[CELL_MAX_MICE]; + u8 status[CELL_MAX_MICE]; +}; + +struct CellMouseInfoTablet +{ + be_t is_supported; + be_t mode; +}; + +struct CellMouseData +{ + u8 update; + u8 buttons; + s8 x_axis; + s8 y_axis; + s8 wheel; + s8 tilt; +}; + +static const u32 CELL_MOUSE_MAX_DATA_LIST_NUM = 8; + +struct CellMouseDataList +{ + be_t list_num; + CellMouseData list[CELL_MOUSE_MAX_DATA_LIST_NUM]; +}; + +static const u32 CELL_MOUSE_MAX_CODES = 64; + +int cellMouseInit(u32 max_connect); +int cellMouseClearBuf(u32 port_no); +int cellMouseEnd(); +int cellMouseGetInfo(mem_ptr_t info); +int cellMouseInfoTabletMode(u32 port_no, mem_ptr_t info); +int cellMouseGetData(u32 port_no, mem_ptr_t data); +int cellMouseGetDataList(u32 port_no, mem_ptr_t data); +int cellMouseSetTabletMode(u32 port_no, u32 mode); +int cellMouseGetTabletDataList(u32 port_no, u32 data_addr); +int cellMouseGetRawData(u32 port_no, u32 data_addr); diff --git a/rpcs3/Emu/SysCalls/Modules/cellNetCtl.cpp b/rpcs3/Emu/SysCalls/Modules/cellNetCtl.cpp index aa5b1460d3..790d991a1c 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellNetCtl.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellNetCtl.cpp @@ -29,7 +29,7 @@ int cellNetCtlGetState(mem32_t state) return CELL_OK; } -int cellNetCtlAddHandler(mem_ptr_t handler, mem32_t arg, s32 hid) +int cellNetCtlAddHandler(mem_func_ptr_t handler, mem32_t arg, s32 hid) { cellNetCtl->Todo("cellNetCtlAddHandler(handler_addr=0x%x, arg_addr=0x%x, hid=%x)", handler.GetAddr(), arg.GetAddr(), hid); diff --git a/rpcs3/Emu/SysCalls/Modules/cellNetCtl.h b/rpcs3/Emu/SysCalls/Modules/cellNetCtl.h index fc25822aaa..b4f43d0c5a 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellNetCtl.h +++ b/rpcs3/Emu/SysCalls/Modules/cellNetCtl.h @@ -257,4 +257,4 @@ struct CellNetCtlNatInfo be_t mapped_addr; }; -typedef void(cellNetCtlHandler)(s32 prev_state, s32 new_state, s32 event, s32 error_code, mem32_t arg); \ No newline at end of file +typedef void(*cellNetCtlHandler)(s32 prev_state, s32 new_state, s32 event, s32 error_code, mem32_t arg); \ No newline at end of file diff --git a/rpcs3/Emu/SysCalls/Modules/sys_io.cpp b/rpcs3/Emu/SysCalls/Modules/sys_io.cpp index 1eca9381a1..02821baeba 100644 --- a/rpcs3/Emu/SysCalls/Modules/sys_io.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sys_io.cpp @@ -2,6 +2,9 @@ #include "Emu/Memory/Memory.h" #include "Emu/SysCalls/Modules.h" +#include "SC_Keyboard.h" +#include "SC_Mouse.h" + //void sys_io_init(); //Module sys_io(0x0017, sys_io_init); Module *sys_io = nullptr; @@ -22,30 +25,6 @@ extern int cellPadSetPressMode(u32 port_no, u32 mode); extern int cellPadSetSensorMode(u32 port_no, u32 mode); extern int cellPadGetCapabilityInfo(u32 port_no, mem32_t info_addr); -//cellKb -extern int cellKbInit(u32 max_connect); -extern int cellKbEnd(); -extern int cellKbClearBuf(u32 port_no); -extern u16 cellKbCnvRawCode(u32 arrange, u32 mkey, u32 led, u16 rawcode); -extern int cellKbGetInfo(mem_class_t info); -extern int cellKbRead(u32 port_no, mem_class_t data); -extern int cellKbSetCodeType(u32 port_no, u32 type); -extern int cellKbSetLEDStatus(u32 port_no, u8 led); -extern int cellKbSetReadMode(u32 port_no, u32 rmode); -extern int cellKbGetConfiguration(u32 port_no, mem_class_t config); - -//cellMouse -extern int cellMouseInit(u32 max_connect); -extern int cellMouseClearBuf(u32 port_no); -extern int cellMouseEnd(); -extern int cellMouseGetInfo(mem_class_t info); -extern int cellMouseInfoTabletMode(u32 port_no, mem_class_t info); -extern int cellMouseGetData(u32 port_no, mem_class_t data); -extern int cellMouseGetDataList(u32 port_no, mem_class_t data); -extern int cellMouseSetTabletMode(u32 port_no, u32 mode); -extern int cellMouseGetTabletDataList(u32 port_no, mem_class_t data); -extern int cellMouseGetRawData(u32 port_no, mem_class_t data); - void sys_io_init() { sys_io->AddFunc(0x1cf98800, cellPadInit); diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index 061fe05aab..bf42bedd39 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -389,6 +389,8 @@ + + diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index bb9b9ad7e6..729660c395 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -1171,5 +1171,11 @@ Emu\SysCalls\Modules + + Emu\SysCalls\Modules + + + Emu\SysCalls\Modules + \ No newline at end of file