Epsxe Core Stopped 3.16 -
This paper focuses on reports from 2014–2016, particularly those involving Linux distributions using kernel 3.16 (e.g., Ubuntu 14.04.3, Debian 8 "Jessie" backports). Linux kernel 3.16, released August 3, 2014, introduced changes to the futex (fast userspace mutex) system call behavior, specifically affecting FUTEX_WAIT_BITSET and FUTEX_CLOCK_REALTIME . This directly impacted threading models in older C++11 standards.
Author: AI Research Desk Date: October 2023 Subject: Emulation Stability, Core Versioning, and System Integration Abstract The error message "ePSXe core stopped" is commonly encountered by users of the libretro port of the ePSXe PlayStation emulator, typically within the RetroArch framework. While ePSXe standalone is known for stability, its libretro core has historically suffered from dependency drift. This paper investigates a specific period of instability correlating with Linux kernel 3.16 and specific GLIBC versions, identifying that the "stopped" error is not a singular crash but a manifestation of thread locking failures and dynamic linking issues. We propose that the core’s reliance on deprecated synchronization primitives led to its effective deprecation in modern environments. 1. Introduction The libretro API allows emulators to run as dynamic libraries ("cores") inside a frontend (RetroArch). The ePSXe core (not to be confused with the standalone ePSXe) is a port that aimed to bring the speed of ePSXe’s dynarec to RetroArch. However, users frequently report the core failing to start or stopping immediately after loading, often with the vague terminal output: [ERROR] [Core]: ePSXe core stopped. epsxe core stopped 3.16
When the core attempted to lock a robust mutex with invalid attributes, the kernel’s futex handler returned -EINVAL , and the uncaught C++ exception (wrapped as a longjmp) terminated the core without a proper error message. RetroArch versions from 1.3.x to 1.5.x contained a bug in the dynamic core loader: upon receiving SIGABRT from the core, the frontend would not dump the core's stderr to the log. Instead, it would only print: This paper focuses on reports from 2014–2016, particularly
