Update to 20180729 release.

byuu wrote:

Sigh ...

asio.hpp needs #include <nall/windows/registry.hpp>

[Since the last WIP, byuu also posted the following message. -Ed.]

ruby drivers have all been updated (but not tested outside of BSD), and
I redesigned the settings window. The driver functionality all exists on
a new "Drivers" panel, the emulator/hack settings go to a
"Configuration" panel, and the video/audio panels lose driver settings.
As does the settings menu and its synchronize options.

I want to start pushing toward a v107 release. Critically, I will need
DirectSound and ALSA to support dynamic rate control. I'd also like to
eliminate the other system manifest.bml files. I need to update the
cheat code database format, and bundle at least a few quark shaders --
although I still need to default to Direct3D on Windows.

Turbo keys would be nice, if it's not too much effort. Aside from
netplay, it's the last significant feature I'm missing.

I think for v107, higan is going to be a bit rough around the edges
compared to bsnes. And I don't think it's practical to finish the bsnes
localization support.

I'm thinking we probably want another WIP to iron out any critical
issues, but this time there should be a feature freeze with the next
WIP.
This commit is contained in:
Tim Allen
2018-07-29 23:24:38 +10:00
parent 716c95f279
commit 5deba5cbc1
182 changed files with 1533 additions and 2674 deletions

View File

@@ -4,19 +4,20 @@ struct InputCarbon : Input {
InputCarbon() : _keyboard(*this) { initialize(); }
~InputCarbon() { terminate(); }
auto ready() -> bool { return _ready; }
auto driver() -> string override { return "Carbon"; }
auto ready() -> bool override { return _ready; }
auto acquired() -> bool { return false; }
auto acquire() -> bool { return false; }
auto release() -> bool { return false; }
auto acquired() -> bool override { return false; }
auto acquire() -> bool override { return false; }
auto release() -> bool override { return false; }
auto poll() -> vector<shared_pointer<HID::Device>> {
auto poll() -> vector<shared_pointer<HID::Device>> override {
vector<shared_pointer<HID::Device>> devices;
_keyboard.poll(devices);
return devices;
}
auto rumble(uint64 id, bool enable) -> bool {
auto rumble(uint64_t id, bool enable) -> bool override {
return false;
}

View File

@@ -4,22 +4,24 @@ struct InputQuartz : Input {
InputQuartz() : _keyboard(*this) { initialize(); }
~InputQuartz() { terminate(); }
auto ready() -> bool { return _ready; }
auto driver() -> string override { return "Quartz"; }
auto ready() -> bool override { return _ready; }
auto acquired() -> bool { return false; }
auto acquire() -> bool { return false; }
auto release() -> bool { return false; }
auto acquired() -> bool override { return false; }
auto acquire() -> bool override { return false; }
auto release() -> bool override { return false; }
auto poll() -> vector<shared_pointer<HID::Device>> {
auto poll() -> vector<shared_pointer<HID::Device>> override {
vector<shared_pointer<HID::Device>> devices;
_keyboard.poll(devices);
return devices;
}
auto rumble(uint64 id, bool enable) -> bool {
auto rumble(uint64_t id, bool enable) -> bool override {
return false;
}
private:
auto initialize() -> bool {
terminate();
if(!_keyboard.initialize()) return false;

View File

@@ -16,7 +16,7 @@ struct InputSDL : Input {
auto hasContext() -> bool override { return true; }
auto setContext(uintptr context) -> bool override {
if(context == this->context()) return true;
if(context == Input::context()) return true;
if(!Input::setContext(context)) return false;
return initialize();
}

View File

@@ -16,29 +16,30 @@ struct InputUdev : Input {
InputUdev() : _keyboard(*this), _mouse(*this), _joypad(*this) { initialize(); }
~InputUdev() { terminate(); }
auto driver() -> string override { return "udev"; }
auto ready() -> bool { return _ready; }
auto context() -> uintptr { return _context; }
auto hasContext() -> bool override { return true; }
auto setContext(uintptr context) -> bool {
if(_context == context) return true;
_context = context;
auto setContext(uintptr context) -> bool override {
if(context == Input::context()) return true;
if(!Input::setContext(context)) return false;
return initialize();
}
auto acquired() -> bool {
auto acquired() -> bool override {
return _mouse.acquired();
}
auto acquire() -> bool {
auto acquire() -> bool override {
return _mouse.acquire();
}
auto release() -> bool {
auto release() -> bool override {
return _mouse.release();
}
auto poll() -> vector<shared_pointer<HID::Device>> {
auto poll() -> vector<shared_pointer<HID::Device>> override {
vector<shared_pointer<HID::Device>> devices;
_keyboard.poll(devices);
_mouse.poll(devices);
@@ -46,7 +47,7 @@ struct InputUdev : Input {
return devices;
}
auto rumble(uint64_t id, bool enable) -> bool {
auto rumble(uint64_t id, bool enable) -> bool override {
return _joypad.rumble(id, enable);
}
@@ -68,7 +69,6 @@ private:
}
bool _ready = false;
uintptr _context = 0;
InputKeyboardXlib _keyboard;
InputMouseXlib _mouse;

View File

@@ -12,29 +12,30 @@ struct InputWindows : Input {
InputWindows() : _keyboard(*this), _mouse(*this), _joypadXInput(*this), _joypadDirectInput(*this) { initialize(); }
~InputWindows() { terminate(); }
auto ready() -> bool { return _ready; }
auto driver() -> string override { return "Windows"; }
auto ready() -> bool override { return _ready; }
auto context() -> uintptr { return _context; }
auto hasContext() -> bool override { return true; }
auto setContext(uintptr context) -> bool {
if(_context == context) return true;
_context = context;
auto setContext(uintptr context) -> bool override {
if(context == Input::context()) return true;
if(!Input::setContext(context)) return false;
return initialize();
}
auto acquired() -> bool {
auto acquired() -> bool override {
return _mouse.acquired();
}
auto acquire() -> bool {
auto acquire() -> bool override {
return _mouse.acquire();
}
auto release() -> bool {
auto release() -> bool override {
return _mouse.release();
}
auto poll() -> vector<shared_pointer<HID::Device>> {
auto poll() -> vector<shared_pointer<HID::Device>> override {
vector<shared_pointer<HID::Device>> devices;
_keyboard.poll(devices);
_mouse.poll(devices);
@@ -43,7 +44,7 @@ struct InputWindows : Input {
return devices;
}
auto rumble(uint64_t id, bool enable) -> bool {
auto rumble(uint64_t id, bool enable) -> bool override {
if(_joypadXInput.rumble(id, enable)) return true;
if(_joypadDirectInput.rumble(id, enable)) return true;
return false;
@@ -91,7 +92,6 @@ private:
}
bool _ready = false;
uintptr _context = 0;
InputKeyboardRawInput _keyboard;
InputMouseRawInput _mouse;

View File

@@ -17,7 +17,7 @@ struct InputXlib : Input {
auto hasContext() -> bool override { return true; }
auto setContext(uintptr context) -> bool override {
if(context == this->context()) return true;
if(context == Input::context()) return true;
if(!Input::setContext(context)) return false;
return initialize();
}