random fixes

This commit is contained in:
lizzie 2026-05-19 09:33:56 +00:00
parent 4bdd84c962
commit c9e8363569
4 changed files with 16 additions and 11 deletions

View file

@ -37,7 +37,7 @@ EOF
# Normally a platform has a package manager
# PS4 does not, atleast not in the normal sense
export EXTRA_CMAKE_FLAGS=("${EXTRA_CMAKE_FLAGS[@]}" $@)
cmake -S . -B build -G "Unix Makefiles" \
[ -f "build/Makefile" ] || cmake -S . -B build -G "Unix Makefiles" \
-DCMAKE_TOOLCHAIN_FILE="ps4-toolchain.cmake" \
-DENABLE_QT_TRANSLATION=OFF \
-DENABLE_CUBEB=OFF \

View file

@ -160,6 +160,7 @@ struct InputSubsystem::Impl {
#ifndef __OPENORBIS__
auto udp_devices = udp_client->GetInputDevices();
devices.insert(devices.end(), udp_devices.begin(), udp_devices.end());
#endif
#ifdef HAVE_SDL3
auto joycon_devices = joycon->GetInputDevices();
devices.insert(devices.end(), joycon_devices.begin(), joycon_devices.end());
@ -196,6 +197,7 @@ struct InputSubsystem::Impl {
if (engine == udp_client->GetEngineName()) {
return udp_client;
}
#endif
#ifdef HAVE_SDL3
if (engine == sdl->GetEngineName()) {
return sdl;
@ -311,6 +313,7 @@ struct InputSubsystem::Impl {
#endif
#ifndef __OPENORBIS__
udp_client->BeginConfiguration();
#endif
#ifdef HAVE_SDL3
sdl->BeginConfiguration();
joycon->BeginConfiguration();
@ -328,6 +331,7 @@ struct InputSubsystem::Impl {
#endif
#ifndef __OPENORBIS__
udp_client->EndConfiguration();
#endif
#ifdef HAVE_SDL3
sdl->EndConfiguration();
joycon->EndConfiguration();

View file

@ -165,11 +165,11 @@ void EmuWindow_SDL3::Fullscreen() {
void EmuWindow_SDL3::WaitEvent() {
// Called on main thread
SDL_Event event;
SDL_Event event{};
if (!SDL_WaitEvent(&event)) {
if (!SDL_WaitEventTimeout(&event, -1)) {
const char* error = SDL_GetError();
if (!error || strcmp(error, "") == 0) {
if (!error || strlen(error) == 0) {
// https://github.com/libsdl-org/SDL/issues/5780
// Sometimes SDL will return without actually having hit an error condition;
// just ignore it in this case.
@ -236,12 +236,7 @@ void EmuWindow_SDL3::WaitEvent() {
const u32 current_time = SDL_GetTicks();
if (current_time > last_time + 2000) {
const auto results = system.GetAndResetPerfStats();
const auto title = fmt::format("{} | {}-{} | FPS: {:.0f} ({:.0f}%)",
Common::g_build_fullname,
Common::g_scm_branch,
Common::g_scm_desc,
results.average_game_fps,
results.emulation_speed * 100.0);
const auto title = fmt::format("{} | {}-{} | FPS: {:.0f} ({:.0f}%)", Common::g_build_fullname, Common::g_scm_branch, Common::g_scm_desc, results.average_game_fps, results.emulation_speed * 100.0);
SDL_SetWindowTitle(render_window, title.c_str());
last_time = current_time;
}

View file

@ -220,13 +220,19 @@ int main(int argc, char** argv) {
std::optional<int> selected_user{};
std::optional<u16> override_gdb_port{};
bool use_multiplayer = false;
bool fullscreen = false;
std::string nickname{};
std::string password{};
std::string address{};
std::string input_profile{};
u16 port = Network::DefaultRoomPort;
// Platforms that start with fullscreen
#if defined(__OPENORBIS__) || defined(__ANDROID__)
bool fullscreen = true;
#else
bool fullscreen = false;
#endif
static struct option long_options[] = {
// clang-format off
{"debug", no_argument, 0, 'd'},