Add search, favorites tab, and persistent favorites
Replace static console filter with swipeable tabs (All / Favorites / per-console) and a collapsible search icon in the app bar. Persist favorites via SharedPreferences keyed by ROM path. Display titles are now cleaned (region tags stripped) for better UX while raw filenames are preserved for cover art lookups. Sort games alphabetically and fetch cover art in parallel (8 concurrent) for faster initial load. Also fix PS1 controller setup so it works with both new games and save states: pcsx_rearmed needs retro_set_controller_port_device called at a specific point inside loadCore (between callbacks and get_system_info) which FCEUmm crashes on. Added a "pending controller device" mechanism that the Kotlin core can pre-set before nativeLoadCore. Save states are now loaded BEFORE start() so the game's first frame already has the restored state, avoiding the "controller removed" detection race.
This commit is contained in:
@@ -45,6 +45,7 @@ public:
|
||||
void setSystemDir(const char* dir);
|
||||
void setSaveDir(const char* dir);
|
||||
void setControllerPortDevice(unsigned port, unsigned device);
|
||||
void setPendingControllerDevice(int device);
|
||||
void setCoreOption(const char* key, const char* value);
|
||||
|
||||
bool isRunning() const { return running_.load(); }
|
||||
@@ -121,6 +122,10 @@ private:
|
||||
std::vector<uint8_t> rom_data_;
|
||||
bool need_fullpath_ = true;
|
||||
|
||||
// Pending controller device (set by frontend before loadCore, applied during loadCore)
|
||||
// -1 means "do not call retro_set_controller_port_device" (default)
|
||||
int pending_controller_device_ = -1;
|
||||
|
||||
// Frame timing
|
||||
double target_fps_ = 60.0;
|
||||
int frame_skip_ = 0;
|
||||
|
||||
Reference in New Issue
Block a user