Skip to content

refactors es_features to eliminate redundancy and improve maintainabi…#14914

Closed
dmanlfc wants to merge 1 commit intobatocera-linux:masterfrom
dmanlfc:es-system-rework
Closed

refactors es_features to eliminate redundancy and improve maintainabi…#14914
dmanlfc wants to merge 1 commit intobatocera-linux:masterfrom
dmanlfc:es-system-rework

Conversation

@dmanlfc
Copy link
Copy Markdown
Collaborator

@dmanlfc dmanlfc commented Dec 6, 2025

…lity.

  • the previous structure required manually copy-pasting a large list of shared: features for nearly every standalone emulator. this made adding or removing a common feature a tedious and error-prone process.
  • with this change an inheritance model has been implemented: the global: shared: list is now a small, base template of truly universal features (power, video, decorations) that all emulators inherit automatically. libretro-specific features (shaders, latency reduction, AI, etc.) have been moved out of global and are now added to the libretro emulator via a shared_include: list. standalone emulators now only need to specify their differences from the base global set using shared_include: (to add features) or shared_exclude: (to remove them).

the batocera-es-system script has been updated to handle this new logic, calculating the final feature set for each emulator.

…lity.

- the previous structure required manually copy-pasting a large list of shared: features for nearly every standalone emulator.
  this made adding or removing a common feature a tedious and error-prone process.
- with this change an inheritance model has been implemented:
  the global: shared: list is now a small, base template of truly universal features (power, video, decorations) that all emulators inherit automatically.
  libretro-specific features (shaders, latency reduction, AI, etc.) have been moved out of global and are now added to the libretro emulator via a shared_include: list.
  standalone emulators now only need to specify their differences from the base global set using shared_include: (to add features) or shared_exclude: (to remove them).

the batocera-es-system script has been updated to handle this new logic, calculating the final feature set for each emulator.
@dmanlfc
Copy link
Copy Markdown
Collaborator Author

dmanlfc commented Dec 13, 2025

@bryanforbes is seeking a better approach

@dmanlfc dmanlfc closed this Feb 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant