diff --git a/include/emulator.hpp b/include/emulator.hpp index 745ede6d..a5b1d768 100644 --- a/include/emulator.hpp +++ b/include/emulator.hpp @@ -117,4 +117,5 @@ class Emulator { ServiceManager& getServiceManager() { return kernel.getServiceManager(); } RendererType getRendererType() const { return config.rendererType; } Renderer* getRenderer() { return gpu.getRenderer(); } + u64 getTicks() { return cpu.getTicks(); } }; diff --git a/src/hydra_core.cpp b/src/hydra_core.cpp index 431f86bd..383718f7 100644 --- a/src/hydra_core.cpp +++ b/src/hydra_core.cpp @@ -23,6 +23,7 @@ class HC_GLOBAL HydraCore final : public hydra::IBase, public hydra::IOpenGlRend // IFrontendDriven void runFrame() override; + uint16_t getFps() override; // IInput void setPollInputCallback(void (*callback)()) override; @@ -71,10 +72,13 @@ void HydraCore::runFrame() { int y = !!checkButtonCallback(0, hydra::ButtonType::Analog1Up) - !!checkButtonCallback(0, hydra::ButtonType::Analog1Down); hid.setCirclepadX(x * 0x9C); hid.setCirclepadY(y * 0x9C); + hid.updateInputs(emulator->getTicks()); emulator->runFrame(); } +uint16_t HydraCore::getFps() { return 60; } + void HydraCore::reset() { emulator->reset(Emulator::ReloadOption::Reload); } hydra::Size HydraCore::getNativeSize() { return {400, 480}; } diff --git a/third_party/hydra_core b/third_party/hydra_core index 090c8a74..51a2dceb 160000 --- a/third_party/hydra_core +++ b/third_party/hydra_core @@ -1 +1 @@ -Subproject commit 090c8a74e0a970052ca8c63050a17e918036d3d8 +Subproject commit 51a2dceb312a7e175264c266a1762f57d3604020