Skip to content

Create SDL2 desktop frontend #36

@eddmann

Description

@eddmann

Description

Build a native desktop frontend using SDL2 to provide better performance and user experience compared to the CLI interface.

Tasks

  • Set up SDL2-PHP extension/FFI integration
  • Implement SDL2 window creation and rendering
  • Add SDL2 keyboard input mapping
  • Implement audio output via SDL2
  • Add gamepad/controller support
  • Create configuration system (key bindings, scaling, filters)
  • Add menu system (file picker, save states, etc.)
  • Support fullscreen and window scaling
  • Add optional visual filters (scanlines, LCD effect, etc.)
  • Package as standalone executable

Features

  • Native window with proper rendering
  • Full audio support
  • Better input handling (keyboard + gamepad)
  • Save state management UI
  • Performance improvements over CLI
  • Cross-platform support (Linux, macOS, Windows)

Acceptance Criteria

  • Desktop app runs smoothly at 60 FPS
  • Audio and video are properly synchronized
  • Keyboard and gamepad controls work correctly
  • ROM loading and save states function properly

Technical Notes

  • Consider using php-sdl extension or FFI
  • May need to create distribution packages per platform

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions