Skip to content

Create SDL2 desktop frontend #36

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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