koin.js 1.1.16 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Browser Retro Game Emulation for React
4
4
 
5
- > **28 systems. Cloud saves. Multi-language. Zero backend required.**
5
+ > **24 systems. Cloud saves. Multi-language. Zero backend required.**
6
6
 
7
7
  [![Try the Demo](https://img.shields.io/badge/PLAY-TRY%20THE%20DEMO-FFD600?style=for-the-badge&logoColor=black&labelColor=black)](https://koin.js.org/)
8
8
  [![NPM Version](https://img.shields.io/npm/v/koin.js?style=for-the-badge&color=white&labelColor=black)](https://www.npmjs.com/package/koin.js)
@@ -15,7 +15,7 @@ The drop-in React component for browser-based retro game emulation. Built on [No
15
15
  ## Features
16
16
 
17
17
  ### 🎮 Core Emulation
18
- - **28 Consoles** — NES to PlayStation, Game Boy to Dreamcast
18
+ - **25 Consoles** — NES to PlayStation, Game Boy to Saturn
19
19
  - **Automatic Core Selection** — Best emulator core per system
20
20
  - **BIOS Management** — Multi-file BIOS support with UI selection
21
21
  - **Performance Optimized** — SharedArrayBuffer for maximum speed
@@ -163,33 +163,32 @@ import { en } from 'koin.js';
163
163
 
164
164
  ## Supported Systems
165
165
 
166
- | System | Key | Core |
167
- |--------|-----|------|
168
- | NES / Famicom | `NES` | fceumm |
169
- | Super Nintendo | `SNES` | snes9x |
170
- | Nintendo 64 | `N64` | mupen64plus_next |
171
- | Game Boy / Color | `GB`, `GBC` | gambatte |
172
- | Game Boy Advance | `GBA` | mgba |
173
- | Nintendo DS | `NDS` | desmume |
174
- | PlayStation | `PS1` | pcsx_rearmed |
175
- | PSP | `PSP` | ppsspp |
176
- | Sega Genesis / Mega Drive | `GENESIS` | genesis_plus_gx |
177
- | Sega Master System | `MASTER_SYSTEM` | gearsystem |
178
- | Game Gear | `GAME_GEAR` | gearsystem |
179
- | Sega Saturn | `SATURN` | yabasanshiro |
180
- | Sega Dreamcast | `DREAMCAST` | flycast |
181
- | Sega CD | `SEGA_CD` | genesis_plus_gx |
182
- | Neo Geo | `NEOGEO` | fbalpha2012_neogeo |
183
- | Arcade (FBNeo) | `ARCADE` | fbneo |
184
- | Atari 2600 | `ATARI2600` | stella |
185
- | Atari 7800 | `ATARI7800` | prosystem |
186
- | Atari Lynx | `LYNX` | handy |
187
- | PC Engine / TurboGrafx-16 | `PCE` | mednafen_pce |
188
- | WonderSwan / Color | `WS`, `WSC` | mednafen_wswan |
189
- | Virtual Boy | `VB` | mednafen_vb |
190
- | Vectrex | `VECTREX` | vecx |
191
- | Commodore 64 | `C64` | vice_x64 |
192
- | DOS | `DOS` | dosbox_pure |
166
+ | System | Key | Core | Source |
167
+ |--------|-----|------|--------|
168
+ | NES / Famicom | `NES` | fceumm | Nostalgist |
169
+ | Super Nintendo | `SNES` | snes9x | Nostalgist |
170
+ | Nintendo 64 | `N64` | mupen64plus_next | BinBashBanana |
171
+ | Game Boy / Color | `GB`, `GBC` | gambatte | Nostalgist |
172
+ | Game Boy Advance | `GBA` | mgba | Nostalgist |
173
+ | Nintendo DS | `NDS` | melonds | BinBashBanana |
174
+ | PlayStation | `PS1` | pcsx_rearmed | Nostalgist |
175
+ | Sega Genesis / Mega Drive | `GENESIS` | genesis_plus_gx | Nostalgist |
176
+ | Sega Master System | `MASTER_SYSTEM` | gearsystem | Nostalgist |
177
+ | Game Gear | `GAME_GEAR` | gearsystem | Nostalgist |
178
+ | Sega Saturn | `SATURN` | yabause | BinBashBanana |
179
+ | Neo Geo | `NEOGEO` | fbalpha2012_neogeo | Nostalgist |
180
+ | Arcade (FBNeo) | `ARCADE` | fbneo | Nostalgist |
181
+ | Atari 2600 | `ATARI_2600` | stella2014 | BinBashBanana |
182
+ | Atari 5200 | `ATARI_5200` | a5200 | BinBashBanana |
183
+ | Atari 7800 | `ATARI_7800` | prosystem | BinBashBanana |
184
+ | Atari Lynx | `LYNX` | handy | Nostalgist |
185
+ | PC Engine / TurboGrafx-16 | `PC_ENGINE` | mednafen_pce_fast | Nostalgist |
186
+ | WonderSwan / Color | `WONDERSWAN`, `WONDERSWAN_COLOR` | mednafen_wswan | Nostalgist |
187
+ | Virtual Boy | `VIRTUAL_BOY` | mednafen_vb | Nostalgist |
188
+ | Neo Geo Pocket / Color | `NEOGEO_POCKET`, `NEOGEO_POCKET_COLOR` | mednafen_ngp | Nostalgist |
189
+ | Commodore 64 | `C64` | vice_x64 | Nostalgist |
190
+
191
+ > **Note:** Systems marked **BinBashBanana** use cores from [BinBashBanana/webretro](https://github.com/BinBashBanana/webretro) via jsDelivr. Dreamcast and PSP are currently unavailable due to lack of compatible WASM cores.
193
192
 
194
193
  [Full system details →](https://koin.js.org/docs/systems)
195
194
 
package/dist/index.d.mts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import react__default from 'react';
3
3
  import { Nostalgist } from 'nostalgist';
4
+ export { PERFORMANCE_TIER_1_SYSTEMS, PERFORMANCE_TIER_2_SYSTEMS, SUPPORTED_EXTENSIONS, SYSTEMS, SystemConfig, detectSystem, getCore, getCoreSource, getDBSystemNames, getMaxFileSizeMB, getSupportedExtensions, getSystem, getSystemByDbName, getSystemByKey, getSystemFromExtension, getSystemsList, isSystemSupported, normalizeSystemKey, systemsMatch } from './systems.mjs';
4
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
6
 
6
7
  /**
@@ -791,6 +792,7 @@ interface PlayerControlsProps {
791
792
  isRecording?: boolean;
792
793
  currentShader?: ShaderPresetId;
793
794
  onShaderChange?: (shader: ShaderPresetId, requiresRestart: boolean) => void;
795
+ isMobile?: boolean;
794
796
  }
795
797
  interface SaveSlotModalProps {
796
798
  isOpen: boolean;
@@ -912,119 +914,6 @@ interface UseToastReturn {
912
914
  */
913
915
  declare function useToast(defaultDuration?: number): UseToastReturn;
914
916
 
915
- interface SystemConfig {
916
- key: string;
917
- label: string;
918
- fullName: string;
919
- slug: string;
920
- extensions: string[];
921
- core: string;
922
- dbNames: string[];
923
- iconName: string;
924
- color: string;
925
- accentHex: string;
926
- aliases: string[];
927
- biosNeeded?: boolean;
928
- biosFileNames?: string[];
929
- biosLocation?: 'system' | 'rom_folder';
930
- }
931
- /**
932
- * The master system configuration
933
- * Order matters for display in dropdowns
934
- */
935
- declare const SYSTEMS: SystemConfig[];
936
-
937
- /**
938
- * Unified System Configuration
939
- *
940
- * SINGLE SOURCE OF TRUTH for all system-related data:
941
- * - Canonical system keys (used internally)
942
- * - File extensions → system detection
943
- * - System → RetroArch emulator core
944
- * - System → Database names (for LaunchBox matching)
945
- * - System → Display metadata (UI labels, colors, icons)
946
- *
947
- * All other files should import from here instead of maintaining their own mappings.
948
- */
949
-
950
- /**
951
- * Get system by canonical key (e.g., 'NES', 'GBA')
952
- */
953
- declare function getSystemByKey(key: string): SystemConfig | undefined;
954
- /**
955
- * Get system by any name/alias (case-insensitive)
956
- * Tries: exact key match, then alias match
957
- */
958
- declare function getSystem(name: string): SystemConfig | undefined;
959
- /**
960
- * Get system from file extension (e.g., '.nes', '.gba')
961
- */
962
- declare function getSystemFromExtension(filename: string): SystemConfig | undefined;
963
- /**
964
- * Get system by database name (for LaunchBox matching)
965
- */
966
- declare function getSystemByDbName(dbName: string): SystemConfig | undefined;
967
- /**
968
- * Get RetroArch core for a system name (case-insensitive)
969
- * Falls back to 'fceumm' (NES) if not found
970
- */
971
- declare function getCore(systemName: string): string;
972
- /**
973
- * Get DB names for matching (used in game search)
974
- */
975
- declare function getDBSystemNames(systemKey: string): string[];
976
- /**
977
- * Check if a system is supported
978
- */
979
- declare function isSystemSupported(name: string): boolean;
980
- /**
981
- * Get all supported extensions
982
- */
983
- declare function getSupportedExtensions(): string[];
984
- /**
985
- * Get all systems for UI dropdown
986
- */
987
- declare function getSystemsList(): Array<{
988
- value: string;
989
- label: string;
990
- iconName: string;
991
- color: string;
992
- }>;
993
- /**
994
- * Detect system from filename
995
- * Returns null for ZIP files (user must select)
996
- */
997
- declare function detectSystem(filename: string): SystemConfig | undefined;
998
- /**
999
- * Check if two system names refer to the same platform
1000
- */
1001
- declare function systemsMatch(name1: string, name2: string): boolean;
1002
- /**
1003
- * Normalize a system name to its canonical key
1004
- */
1005
- declare function normalizeSystemKey(name: string): string;
1006
- declare const SUPPORTED_EXTENSIONS: string[];
1007
- /**
1008
- * TIER 1: "Zero Lag" - Lightweight Systems
1009
- * ----------------------------------------
1010
- * These 8-bit and 16-bit systems have low CPU requirements in WASM,
1011
- * allowing us to enable Run-Ahead (frame prediction) for near-zero input latency.
1012
- *
1013
- * Run-Ahead works by running the emulator ahead by 1 frame and using that
1014
- * result for display, effectively cutting 1 frame (~16ms) of input lag.
1015
- */
1016
- declare const PERFORMANCE_TIER_1_SYSTEMS: Set<string>;
1017
- /**
1018
- * TIER 2: "Max Smoothness" - Heavy Systems
1019
- * ----------------------------------------
1020
- * These 32-bit+ systems push WASM hard. Run-Ahead would cause stuttering.
1021
- * Instead, we optimize for smooth, consistent frame delivery:
1022
- * - Threaded video rendering to prevent UI freezes
1023
- * - Larger audio buffers to prevent crackling
1024
- * - Disabled manual rewind capture (saves RAM and CPU cycles)
1025
- */
1026
- declare const PERFORMANCE_TIER_2_SYSTEMS: Set<string>;
1027
-
1028
917
  interface RASidebarProps {
1029
918
  isOpen: boolean;
1030
919
  onClose: () => void;
@@ -1113,4 +1002,4 @@ interface KoinI18nProviderProps {
1113
1002
  declare const KoinI18nProvider: react__default.FC<KoinI18nProviderProps>;
1114
1003
  declare function useKoinTranslation(): KoinTranslations;
1115
1004
 
1116
- export { ALL_BUTTONS, AchievementPopup, BUTTON_GROUPS, BUTTON_LABELS, type ButtonId, CONSOLE_CAPABILITIES, CONSOLE_KEYBOARD_OVERRIDES, type Cheat, type CheatModalProps, type CheatSource, type ConsoleCapabilities, type ControlConfig, type ControlMapperProps, type ControlMapping, type ControllerBrand, DEFAULT_CONTROLS, DEFAULT_GAMEPAD, DEFAULT_KEYBOARD, DPAD_BUTTONS, type EmulatorStatus, FACE_BUTTONS, GamePlayer, type GamePlayerProps, type GamepadInfo, type GamepadMapping, type KeyboardMapping, KoinI18nProvider, type KoinTranslations, PERFORMANCE_TIER_1_SYSTEMS, PERFORMANCE_TIER_2_SYSTEMS, type PlayerControlsProps, type PlayerIndex, type RAAchievement, type RACredentials, type RAGame, type RAGameExtended, type RAHardcodeRestrictions, RASidebar, type RAUser, RA_MEDIA_BASE, type RecursivePartial, type RetroAchievementsConfig, SHADER_PRESETS, SHOULDER_BUTTONS, STANDARD_AXIS_MAP, STANDARD_GAMEPAD_BUTTONS, STICK_BUTTONS, SUPPORTED_EXTENSIONS, SYSTEMS, SYSTEM_BUTTONS, type SaveSlot, type SaveSlotModalProps, type ShaderPresetId, ShortcutsReference, type ShowToastOptions, type SpeedMultiplier, type StandardAxis, type SystemConfig, TRIGGER_BUTTONS, type Toast, ToastContainer, type ToastType, type UseGamepadOptions, type UseGamepadReturn, type UseNostalgistReturn, type UseToastReturn, buildRetroArchConfig, clearAllControls, consoleHasButton, detectControllerBrand, detectSystem, en, es, fetchAndCacheRom, formatGamepadButton, formatKeyCode, fr, gamepadToRetroArchConfig, getAchievementBadgeUrl, getCachedRom, getConsoleButtons, getConsoleCapabilities, getConsoleKeyboardDefaults, getCore, getDBSystemNames, getFullGamepadMapping, getFullKeyboardMapping, getSupportedExtensions, getSystem, getSystemByDbName, getSystemByKey, getSystemFromExtension, getSystemsList, getUserAvatarUrl, isSystemSupported, keyboardToRetroArchConfig, loadAllGamepadMappings, loadGamepadMapping, loadKeyboardMapping, normalizeSystemKey, saveGamepadMapping, saveKeyboardMapping, systemsMatch, useGameRecording, useGamepad, useKoinTranslation, useNostalgist, useToast };
1005
+ export { ALL_BUTTONS, AchievementPopup, BUTTON_GROUPS, BUTTON_LABELS, type ButtonId, CONSOLE_CAPABILITIES, CONSOLE_KEYBOARD_OVERRIDES, type Cheat, type CheatModalProps, type CheatSource, type ConsoleCapabilities, type ControlConfig, type ControlMapperProps, type ControlMapping, type ControllerBrand, DEFAULT_CONTROLS, DEFAULT_GAMEPAD, DEFAULT_KEYBOARD, DPAD_BUTTONS, type EmulatorStatus, FACE_BUTTONS, GamePlayer, type GamePlayerProps, type GamepadInfo, type GamepadMapping, type KeyboardMapping, KoinI18nProvider, type KoinTranslations, type PlayerControlsProps, type PlayerIndex, type RAAchievement, type RACredentials, type RAGame, type RAGameExtended, type RAHardcodeRestrictions, RASidebar, type RAUser, RA_MEDIA_BASE, type RecursivePartial, type RetroAchievementsConfig, SHADER_PRESETS, SHOULDER_BUTTONS, STANDARD_AXIS_MAP, STANDARD_GAMEPAD_BUTTONS, STICK_BUTTONS, SYSTEM_BUTTONS, type SaveSlot, type SaveSlotModalProps, type ShaderPresetId, ShortcutsReference, type ShowToastOptions, type SpeedMultiplier, type StandardAxis, TRIGGER_BUTTONS, type Toast, ToastContainer, type ToastType, type UseGamepadOptions, type UseGamepadReturn, type UseNostalgistReturn, type UseToastReturn, buildRetroArchConfig, clearAllControls, consoleHasButton, detectControllerBrand, en, es, fetchAndCacheRom, formatGamepadButton, formatKeyCode, fr, gamepadToRetroArchConfig, getAchievementBadgeUrl, getCachedRom, getConsoleButtons, getConsoleCapabilities, getConsoleKeyboardDefaults, getFullGamepadMapping, getFullKeyboardMapping, getUserAvatarUrl, keyboardToRetroArchConfig, loadAllGamepadMappings, loadGamepadMapping, loadKeyboardMapping, saveGamepadMapping, saveKeyboardMapping, useGameRecording, useGamepad, useKoinTranslation, useNostalgist, useToast };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import react__default from 'react';
3
3
  import { Nostalgist } from 'nostalgist';
4
+ export { PERFORMANCE_TIER_1_SYSTEMS, PERFORMANCE_TIER_2_SYSTEMS, SUPPORTED_EXTENSIONS, SYSTEMS, SystemConfig, detectSystem, getCore, getCoreSource, getDBSystemNames, getMaxFileSizeMB, getSupportedExtensions, getSystem, getSystemByDbName, getSystemByKey, getSystemFromExtension, getSystemsList, isSystemSupported, normalizeSystemKey, systemsMatch } from './systems.js';
4
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
6
 
6
7
  /**
@@ -791,6 +792,7 @@ interface PlayerControlsProps {
791
792
  isRecording?: boolean;
792
793
  currentShader?: ShaderPresetId;
793
794
  onShaderChange?: (shader: ShaderPresetId, requiresRestart: boolean) => void;
795
+ isMobile?: boolean;
794
796
  }
795
797
  interface SaveSlotModalProps {
796
798
  isOpen: boolean;
@@ -912,119 +914,6 @@ interface UseToastReturn {
912
914
  */
913
915
  declare function useToast(defaultDuration?: number): UseToastReturn;
914
916
 
915
- interface SystemConfig {
916
- key: string;
917
- label: string;
918
- fullName: string;
919
- slug: string;
920
- extensions: string[];
921
- core: string;
922
- dbNames: string[];
923
- iconName: string;
924
- color: string;
925
- accentHex: string;
926
- aliases: string[];
927
- biosNeeded?: boolean;
928
- biosFileNames?: string[];
929
- biosLocation?: 'system' | 'rom_folder';
930
- }
931
- /**
932
- * The master system configuration
933
- * Order matters for display in dropdowns
934
- */
935
- declare const SYSTEMS: SystemConfig[];
936
-
937
- /**
938
- * Unified System Configuration
939
- *
940
- * SINGLE SOURCE OF TRUTH for all system-related data:
941
- * - Canonical system keys (used internally)
942
- * - File extensions → system detection
943
- * - System → RetroArch emulator core
944
- * - System → Database names (for LaunchBox matching)
945
- * - System → Display metadata (UI labels, colors, icons)
946
- *
947
- * All other files should import from here instead of maintaining their own mappings.
948
- */
949
-
950
- /**
951
- * Get system by canonical key (e.g., 'NES', 'GBA')
952
- */
953
- declare function getSystemByKey(key: string): SystemConfig | undefined;
954
- /**
955
- * Get system by any name/alias (case-insensitive)
956
- * Tries: exact key match, then alias match
957
- */
958
- declare function getSystem(name: string): SystemConfig | undefined;
959
- /**
960
- * Get system from file extension (e.g., '.nes', '.gba')
961
- */
962
- declare function getSystemFromExtension(filename: string): SystemConfig | undefined;
963
- /**
964
- * Get system by database name (for LaunchBox matching)
965
- */
966
- declare function getSystemByDbName(dbName: string): SystemConfig | undefined;
967
- /**
968
- * Get RetroArch core for a system name (case-insensitive)
969
- * Falls back to 'fceumm' (NES) if not found
970
- */
971
- declare function getCore(systemName: string): string;
972
- /**
973
- * Get DB names for matching (used in game search)
974
- */
975
- declare function getDBSystemNames(systemKey: string): string[];
976
- /**
977
- * Check if a system is supported
978
- */
979
- declare function isSystemSupported(name: string): boolean;
980
- /**
981
- * Get all supported extensions
982
- */
983
- declare function getSupportedExtensions(): string[];
984
- /**
985
- * Get all systems for UI dropdown
986
- */
987
- declare function getSystemsList(): Array<{
988
- value: string;
989
- label: string;
990
- iconName: string;
991
- color: string;
992
- }>;
993
- /**
994
- * Detect system from filename
995
- * Returns null for ZIP files (user must select)
996
- */
997
- declare function detectSystem(filename: string): SystemConfig | undefined;
998
- /**
999
- * Check if two system names refer to the same platform
1000
- */
1001
- declare function systemsMatch(name1: string, name2: string): boolean;
1002
- /**
1003
- * Normalize a system name to its canonical key
1004
- */
1005
- declare function normalizeSystemKey(name: string): string;
1006
- declare const SUPPORTED_EXTENSIONS: string[];
1007
- /**
1008
- * TIER 1: "Zero Lag" - Lightweight Systems
1009
- * ----------------------------------------
1010
- * These 8-bit and 16-bit systems have low CPU requirements in WASM,
1011
- * allowing us to enable Run-Ahead (frame prediction) for near-zero input latency.
1012
- *
1013
- * Run-Ahead works by running the emulator ahead by 1 frame and using that
1014
- * result for display, effectively cutting 1 frame (~16ms) of input lag.
1015
- */
1016
- declare const PERFORMANCE_TIER_1_SYSTEMS: Set<string>;
1017
- /**
1018
- * TIER 2: "Max Smoothness" - Heavy Systems
1019
- * ----------------------------------------
1020
- * These 32-bit+ systems push WASM hard. Run-Ahead would cause stuttering.
1021
- * Instead, we optimize for smooth, consistent frame delivery:
1022
- * - Threaded video rendering to prevent UI freezes
1023
- * - Larger audio buffers to prevent crackling
1024
- * - Disabled manual rewind capture (saves RAM and CPU cycles)
1025
- */
1026
- declare const PERFORMANCE_TIER_2_SYSTEMS: Set<string>;
1027
-
1028
917
  interface RASidebarProps {
1029
918
  isOpen: boolean;
1030
919
  onClose: () => void;
@@ -1113,4 +1002,4 @@ interface KoinI18nProviderProps {
1113
1002
  declare const KoinI18nProvider: react__default.FC<KoinI18nProviderProps>;
1114
1003
  declare function useKoinTranslation(): KoinTranslations;
1115
1004
 
1116
- export { ALL_BUTTONS, AchievementPopup, BUTTON_GROUPS, BUTTON_LABELS, type ButtonId, CONSOLE_CAPABILITIES, CONSOLE_KEYBOARD_OVERRIDES, type Cheat, type CheatModalProps, type CheatSource, type ConsoleCapabilities, type ControlConfig, type ControlMapperProps, type ControlMapping, type ControllerBrand, DEFAULT_CONTROLS, DEFAULT_GAMEPAD, DEFAULT_KEYBOARD, DPAD_BUTTONS, type EmulatorStatus, FACE_BUTTONS, GamePlayer, type GamePlayerProps, type GamepadInfo, type GamepadMapping, type KeyboardMapping, KoinI18nProvider, type KoinTranslations, PERFORMANCE_TIER_1_SYSTEMS, PERFORMANCE_TIER_2_SYSTEMS, type PlayerControlsProps, type PlayerIndex, type RAAchievement, type RACredentials, type RAGame, type RAGameExtended, type RAHardcodeRestrictions, RASidebar, type RAUser, RA_MEDIA_BASE, type RecursivePartial, type RetroAchievementsConfig, SHADER_PRESETS, SHOULDER_BUTTONS, STANDARD_AXIS_MAP, STANDARD_GAMEPAD_BUTTONS, STICK_BUTTONS, SUPPORTED_EXTENSIONS, SYSTEMS, SYSTEM_BUTTONS, type SaveSlot, type SaveSlotModalProps, type ShaderPresetId, ShortcutsReference, type ShowToastOptions, type SpeedMultiplier, type StandardAxis, type SystemConfig, TRIGGER_BUTTONS, type Toast, ToastContainer, type ToastType, type UseGamepadOptions, type UseGamepadReturn, type UseNostalgistReturn, type UseToastReturn, buildRetroArchConfig, clearAllControls, consoleHasButton, detectControllerBrand, detectSystem, en, es, fetchAndCacheRom, formatGamepadButton, formatKeyCode, fr, gamepadToRetroArchConfig, getAchievementBadgeUrl, getCachedRom, getConsoleButtons, getConsoleCapabilities, getConsoleKeyboardDefaults, getCore, getDBSystemNames, getFullGamepadMapping, getFullKeyboardMapping, getSupportedExtensions, getSystem, getSystemByDbName, getSystemByKey, getSystemFromExtension, getSystemsList, getUserAvatarUrl, isSystemSupported, keyboardToRetroArchConfig, loadAllGamepadMappings, loadGamepadMapping, loadKeyboardMapping, normalizeSystemKey, saveGamepadMapping, saveKeyboardMapping, systemsMatch, useGameRecording, useGamepad, useKoinTranslation, useNostalgist, useToast };
1005
+ export { ALL_BUTTONS, AchievementPopup, BUTTON_GROUPS, BUTTON_LABELS, type ButtonId, CONSOLE_CAPABILITIES, CONSOLE_KEYBOARD_OVERRIDES, type Cheat, type CheatModalProps, type CheatSource, type ConsoleCapabilities, type ControlConfig, type ControlMapperProps, type ControlMapping, type ControllerBrand, DEFAULT_CONTROLS, DEFAULT_GAMEPAD, DEFAULT_KEYBOARD, DPAD_BUTTONS, type EmulatorStatus, FACE_BUTTONS, GamePlayer, type GamePlayerProps, type GamepadInfo, type GamepadMapping, type KeyboardMapping, KoinI18nProvider, type KoinTranslations, type PlayerControlsProps, type PlayerIndex, type RAAchievement, type RACredentials, type RAGame, type RAGameExtended, type RAHardcodeRestrictions, RASidebar, type RAUser, RA_MEDIA_BASE, type RecursivePartial, type RetroAchievementsConfig, SHADER_PRESETS, SHOULDER_BUTTONS, STANDARD_AXIS_MAP, STANDARD_GAMEPAD_BUTTONS, STICK_BUTTONS, SYSTEM_BUTTONS, type SaveSlot, type SaveSlotModalProps, type ShaderPresetId, ShortcutsReference, type ShowToastOptions, type SpeedMultiplier, type StandardAxis, TRIGGER_BUTTONS, type Toast, ToastContainer, type ToastType, type UseGamepadOptions, type UseGamepadReturn, type UseNostalgistReturn, type UseToastReturn, buildRetroArchConfig, clearAllControls, consoleHasButton, detectControllerBrand, en, es, fetchAndCacheRom, formatGamepadButton, formatKeyCode, fr, gamepadToRetroArchConfig, getAchievementBadgeUrl, getCachedRom, getConsoleButtons, getConsoleCapabilities, getConsoleKeyboardDefaults, getFullGamepadMapping, getFullKeyboardMapping, getUserAvatarUrl, keyboardToRetroArchConfig, loadAllGamepadMappings, loadGamepadMapping, loadKeyboardMapping, saveGamepadMapping, saveKeyboardMapping, useGameRecording, useGamepad, useKoinTranslation, useNostalgist, useToast };