mirror of
https://github.com/mihawk-99/PS5_RetroArch.git
synced 2026-10-18 23:09:29 -05:00
From mihawk-99/PS5_RetroArch#53 and #52 (Jorge Feitosa), renumbered (0131 to 0133 were taken), taken together: #52 fixes the read loop #53 turns on. - src/microphone_ps5.cpp (0134): a native AudioIn microphone driver, the default one, for the first controller's user. It captures only while a core has its microphone on, sends silence under the DualSense mute, and keeps PCM only in a bounded queue in memory. RetroArch is configured with the microphone; the title links a host stub for libSceAudioIn's imports. - 0135: a microphone read that gets no frames returns silence instead of looping forever (a paused core, an empty nonblocking device, a failed capture). - tools/build-melondsds.sh: melonDS DS at pinned revisions (git objects by SHA), software renderer and a native-memory JIT, staged only with PS5_WITH_MELONDSDS=1; DeSmuME stays the DS default. The DualSense touchpad drives its stylus as it drives DeSmuME's. Changed from the pull requests: the README and the 0134 entry describe what happens, not an opt-in the code never had. RetroArch's microphone is on by default, as upstream; melonDS DS listens only while its microphone button is held (its default), and Settings > Audio > Microphone turns it off for every core. tests/test_microphone_read.py applies the port's edits to vendor/retroarch itself rather than reading build/ra-conf, which a tree configured before 0135 would fail. The SwanStation and melonDS DS title changes are merged into one licence-file rule. Evidence: tests/test_microphone_ps5.py (the driver against a simulated AudioIn: lifecycle, mute, input failure); tests/test_microphone_read.py (it times out with upstream's loop); tests/test_touchpad_stylus.py (melonDS DS's relative stylus); tools/build-melondsds.sh, core ABI PASS (25 exports, kernel_web, sha256 b03d4c93...). A title built with both optional cores: 61 notice parts, check-notices covers every shipped executable, check-manifest PASS, 78 melonDS DS options in the catalog. Gates (default build): format, unit (204), build (staged cores reused), integration, evidence PASS. Console: with this series' deploy.
81 lines
2.5 KiB
Diff
81 lines
2.5 KiB
Diff
diff --git a/src/libretro/format.cpp b/src/libretro/format.cpp
|
|
index 78ab324..0cc60c8 100644
|
|
--- a/src/libretro/format.cpp
|
|
+++ b/src/libretro/format.cpp
|
|
@@ -82,6 +82,7 @@ auto fmt::formatter<MelonDsDs::FormattedGLEnum>::format(MelonDsDs::FormattedGLEn
|
|
#endif
|
|
|
|
auto fmt::formatter<MelonDsDs::FormattedPCapFlags>::format(MelonDsDs::FormattedPCapFlags e, format_context& ctx) const -> decltype(ctx.out()) {
|
|
+#ifdef HAVE_NETWORKING_DIRECT_MODE
|
|
auto flags = static_cast<uint32_t>(e);
|
|
|
|
std::vector<string_view> flagNames;
|
|
@@ -117,6 +118,10 @@ auto fmt::formatter<MelonDsDs::FormattedPCapFlags>::format(MelonDsDs::FormattedP
|
|
}
|
|
|
|
return formatter<decltype(flagNames)>::format(flagNames, ctx);
|
|
+#else
|
|
+ (void)e;
|
|
+ return fmt::format_to(ctx.out(), "Unavailable");
|
|
+#endif
|
|
}
|
|
|
|
auto fmt::formatter<MelonDsDs::BiosType>::format(MelonDsDs::BiosType c, format_context& ctx) const -> decltype(ctx.out()) {
|
|
diff --git a/src/libretro/net/net.hpp b/src/libretro/net/net.hpp
|
|
index e61880e..b060c9b 100644
|
|
--- a/src/libretro/net/net.hpp
|
|
+++ b/src/libretro/net/net.hpp
|
|
@@ -19,9 +19,8 @@
|
|
#include <memory>
|
|
#include <optional>
|
|
|
|
-#ifdef HAVE_NETWORKING_DIRECT_MODE
|
|
+// AdapterData is part of GetAdapters' public return type even without pcap.
|
|
#include <Net_PCap.h>
|
|
-#endif
|
|
|
|
#include "Net.h"
|
|
#include "config/types.hpp"
|
|
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -140,3 +140,7 @@
|
|
endif()
|
|
|
|
dump_cmake_variables()
|
|
+
|
|
+if (PS5)
|
|
+ include("${PS5_PORT_DIR}/native.cmake")
|
|
+endif()
|
|
|
|
--- a/src/libretro/CMakeLists.txt
|
|
+++ b/src/libretro/CMakeLists.txt
|
|
@@ -250,7 +250,7 @@
|
|
# would let the two disagree and change melonDS::NDS's layout underneath us.
|
|
target_compile_definitions(melondsds_libretro PUBLIC HAVE_JIT ENABLE_JIT)
|
|
|
|
- if (NOT APPLE)
|
|
+ if (NOT APPLE AND NOT PS5)
|
|
target_compile_definitions(melondsds_libretro PUBLIC HAVE_JIT_FASTMEM)
|
|
# melonDS doesn't support FastMem on macOS
|
|
endif ()
|
|
|
|
--- a/melondsds_libretro.info.in
|
|
+++ b/melondsds_libretro.info.in
|
|
@@ -19,13 +19,13 @@
|
|
core_options = "true"
|
|
core_options_version = "2.0"
|
|
database = "Nintendo - Nintendo DS|Nintendo - Nintendo DS (Download Play)|Nintendo - Nintendo DSi|Nintendo - Nintendo DSi Decrypted|Nintendo - Nintendo DSi (Digital)"
|
|
-hw_render = "true"
|
|
+hw_render = "false"
|
|
input_descriptors = "true"
|
|
is_experimental = "false"
|
|
libretro_saves = "true"
|
|
load_subsystem = "true"
|
|
needs_fullpath = "false"
|
|
-required_hw_api = "OpenGL Core >= 3.2 (>= 4.3 for the compute renderer)"
|
|
+required_hw_api = ""
|
|
savestate = "true"
|
|
savestate_features = "serialized"
|
|
single_purpose = "false"
|