Versions in this module Expand all Collapse all v0 v0.1.0 Mar 18, 2026 Changes in this version + const Version + func FireRumbleEvents(events []RumbleEvent, level int) + func IsReservedKey(k ebiten.Key) bool + func KeyToName(k ebiten.Key) (string, bool) + func PadToName(b ebiten.StandardGamepadButton) (string, bool) + func ParseKey(name string) (ebiten.Key, bool) + func ParsePad(name string) (ebiten.StandardGamepadButton, bool) + func PollButtons(mapping InputMapping, gamepadID ebiten.GamepadID, ...) uint32 + func PollGamepadButtons(mapping InputMapping, gamepadID ebiten.GamepadID, disableAnalog bool) uint32 + func ResolveKeyDisplay(buttonName string, defaultKey string, overrides map[string]string) string + func ResolvePadDisplay(buttonName string, defaultPad string, overrides map[string]string) string + func Run(factory coreif.CoreFactory) error + func RunDirect(factory coreif.CoreFactory, romPath string, options map[string]string, ...) error + type AchievementOverlay struct + func NewAchievementOverlay(manager *achievements.Manager) *AchievementOverlay + func (o *AchievementOverlay) Draw(screen *ebiten.Image) + func (o *AchievementOverlay) Hide() + func (o *AchievementOverlay) InitForGame() + func (o *AchievementOverlay) IsVisible() bool + func (o *AchievementOverlay) Reset() + func (o *AchievementOverlay) Show() + func (o *AchievementOverlay) Update() + type App struct + func (a *App) Draw(screen *ebiten.Image) + func (a *App) Exit() + func (a *App) GetExtensions() []string + func (a *App) GetMD5ByCRC32(crc32 uint32) string + func (a *App) GetMissingArtImageData() []byte + func (a *App) GetPlaceholderImageData() []byte + func (a *App) GetWindowConfig() (width, height int, x, y *int, fullscreen bool) + func (a *App) GetWindowWidth() int + func (a *App) LaunchGame(gameCRC string, resume bool) + func (a *App) Layout(outsideWidth, outsideHeight int) (int, int) + func (a *App) RequestRebuild() + func (a *App) SaveAndClose() + func (a *App) ShowNotification(msg string) + func (a *App) SwitchToDetail(gameCRC string) + func (a *App) SwitchToLibrary() + func (a *App) SwitchToScanProgress(rescanAll bool) + func (a *App) SwitchToSettings() + func (a *App) Update() error + type AppState int + const StateDetail + const StateError + const StateLibrary + const StatePlaying + const StateScanProgress + const StateSettings + func (s AppState) String() string + type AudioPlayer struct + func NewAudioPlayer(volume float64) (*AudioPlayer, error) + func (a *AudioPlayer) ClearQueue() + func (a *AudioPlayer) Close() + func (a *AudioPlayer) GetBufferLevel() int + func (a *AudioPlayer) QueueSamples(samples []int16) + func (a *AudioPlayer) SetVolume(vol float64) + type AudioRingBuffer struct + func NewAudioRingBuffer(capacity int) *AudioRingBuffer + func (rb *AudioRingBuffer) Buffered() int + func (rb *AudioRingBuffer) Clear() + func (rb *AudioRingBuffer) Close() + func (rb *AudioRingBuffer) Read(p []byte) (int, error) + func (rb *AudioRingBuffer) Write(p []byte) + type EmuControl struct + func NewEmuControl() *EmuControl + func (ec *EmuControl) CheckPause() bool + func (ec *EmuControl) IsPaused() bool + func (ec *EmuControl) RequestPause() + func (ec *EmuControl) RequestResume() + func (ec *EmuControl) ShouldRun() bool + func (ec *EmuControl) Stop() + type FramebufferRenderer struct + func NewFramebufferRenderer(screenWidth int, par float64) *FramebufferRenderer + func (r *FramebufferRenderer) DrawFramebuffer(screen *ebiten.Image, pixels []byte, stride, activeHeight int) + func (r *FramebufferRenderer) GetFramebufferImage(pixels []byte, stride, activeHeight int) *ebiten.Image + func (r *FramebufferRenderer) SetAspectRatioMode(mode string) + type GameplayManager struct + func NewGameplayManager(factory coreif.CoreFactory, systemInfo coreif.SystemInfo, ...) *GameplayManager + func (gm *GameplayManager) CurrentGameCRC() string + func (gm *GameplayManager) Draw(screen *ebiten.Image) + func (gm *GameplayManager) DrawAchievementOverlay(screen *ebiten.Image) + func (gm *GameplayManager) DrawFramebuffer() *ebiten.Image + func (gm *GameplayManager) DrawPauseMenu(screen *ebiten.Image) + func (gm *GameplayManager) Exit(saveResume bool) + func (gm *GameplayManager) IsPaused() bool + func (gm *GameplayManager) IsPlaying() bool + func (gm *GameplayManager) Launch(gameCRC string, resume bool) bool + func (gm *GameplayManager) Resume() + func (gm *GameplayManager) SetConfig(config *storage.Config) + func (gm *GameplayManager) SetLibrary(library *storage.Library) + func (gm *GameplayManager) Update() (pauseMenuOpened bool, err error) + type InputManager struct + func NewInputManager() *InputManager + func (im *InputManager) GetUINavigation() UINavigation + func (im *InputManager) Update() (screenshotRequested, fullscreenToggle bool) + type InputMapping struct + Gamepad map[int]ebiten.StandardGamepadButton + Keys map[int]ebiten.Key + func BuildDefaultMapping(buttons []coreif.Button) InputMapping + func BuildMappingFromConfig(buttons []coreif.Button, kbOverrides, padOverrides map[string]string) InputMapping + type Notification struct + func NewNotification() *Notification + func (n *Notification) Clear() + func (n *Notification) Close() + func (n *Notification) Draw(screen *ebiten.Image) + func (n *Notification) IsVisible() bool + func (n *Notification) PlaySound(soundData []byte) + func (n *Notification) SetBadge(badge *ebiten.Image) + func (n *Notification) Show(message string, duration time.Duration) + func (n *Notification) ShowAchievementWithBadge(title, description string, badge *ebiten.Image) + func (n *Notification) ShowDefault(message string) + func (n *Notification) ShowShort(message string) + type NotificationType int + const NotificationTypeAchievement + const NotificationTypeDefault + type PauseMenu struct + func NewPauseMenu(onResume, onLibrary, onExit func()) *PauseMenu + func (m *PauseMenu) Draw(screen *ebiten.Image) + func (m *PauseMenu) Hide() + func (m *PauseMenu) IsVisible() bool + func (m *PauseMenu) Show() + func (m *PauseMenu) Update() + type PauseMenuOption int + const PauseMenuExit + const PauseMenuLibrary + const PauseMenuOptionCount + const PauseMenuResume + type PlayTimeTracker struct + type RewindBuffer struct + func NewRewindBuffer(bufferSizeMB, frameStep, stateSize int) *RewindBuffer + func (rb *RewindBuffer) Capacity() int + func (rb *RewindBuffer) Capture(saveStater coreif.SaveStater) error + func (rb *RewindBuffer) Count() int + func (rb *RewindBuffer) IsRewinding() bool + func (rb *RewindBuffer) Reset() + func (rb *RewindBuffer) Rewind(emu coreif.Emulator, saveStater coreif.SaveStater, count int) bool + func (rb *RewindBuffer) SetRewinding(v bool) + type RumbleEngine struct + func NewRumbleEngine(entries []RumbleEntry, systemBigEndian bool) *RumbleEngine + func (re *RumbleEngine) Evaluate(mi coreif.MemoryInspector) []RumbleEvent + func (re *RumbleEngine) Reset() + type RumbleEntry struct + Address uint32 + BigEndian bool + MemorySearchSize int + PrimaryDuration int + PrimaryStrength uint16 + RumblePort int + RumbleType int + RumbleValue uint32 + SecondaryDuration int + SecondaryStrength uint16 + func ParseRumbleFile(path string) ([]RumbleEntry, error) + type RumbleEvent struct + Port int + StrongDurationMs int + StrongMagnitude float64 + WeakDurationMs int + WeakMagnitude float64 + type SaveStateManager struct + func NewSaveStateManager(notification *Notification) *SaveStateManager + func (m *SaveStateManager) GetCurrentSlot() int + func (m *SaveStateManager) HasResumeState() bool + func (m *SaveStateManager) Load(saveStater coreif.SaveStater) error + func (m *SaveStateManager) LoadResume(saveStater coreif.SaveStater) error + func (m *SaveStateManager) LoadSRAM(batterySaver coreif.BatterySaver) error + func (m *SaveStateManager) NextSlot() + func (m *SaveStateManager) PreviousSlot() + func (m *SaveStateManager) Save(saveStater coreif.SaveStater) error + func (m *SaveStateManager) SaveResume(saveStater coreif.SaveStater) error + func (m *SaveStateManager) SaveResumeData(state []byte) error + func (m *SaveStateManager) SaveSRAM(batterySaver coreif.BatterySaver) error + func (m *SaveStateManager) SetGame(gameCRC string) + func (m *SaveStateManager) SetLibrary(library *storage.Library) + type ScanManager struct + func NewScanManager(library *storage.Library, scanScreen *screens.ScanProgressScreen, ...) *ScanManager + func (sm *ScanManager) Cancel() + func (sm *ScanManager) IsScanning() bool + func (sm *ScanManager) SetLibrary(library *storage.Library) + func (sm *ScanManager) SetScanScreen(screen *screens.ScanProgressScreen) + func (sm *ScanManager) Start(rescanAll bool) + func (sm *ScanManager) Update() + type ScreenshotManager struct + func NewScreenshotManager(notification *Notification) *ScreenshotManager + func (m *ScreenshotManager) TakeScreenshot(screen *ebiten.Image, gameCRC string) error + type SearchOverlay struct + func NewSearchOverlay(onChanged func(text string)) *SearchOverlay + func (s *SearchOverlay) Activate() + func (s *SearchOverlay) Clear() + func (s *SearchOverlay) Draw(screen *ebiten.Image) + func (s *SearchOverlay) HandleInput() bool + func (s *SearchOverlay) IsActive() bool + func (s *SearchOverlay) IsVisible() bool + type SharedFramebuffer struct + func NewSharedFramebuffer(width, height int) *SharedFramebuffer + func (sf *SharedFramebuffer) Read() (pixels []byte, stride, activeHeight int) + func (sf *SharedFramebuffer) Update(pixels []byte, stride, activeHeight int) + type SharedInput struct + func (si *SharedInput) Read() [maxPlayers]uint32 + func (si *SharedInput) Set(player int, buttons uint32) + type TurboState struct + func (ts *TurboState) CycleMultiplier() int + func (ts *TurboState) Read() int + type UINavigation struct + Activate bool + Back bool + Direction int + FocusChanged bool + OpenSettings bool