How ejber-ozkan/gamebasebox works
GameBase Box is a Tauri desktop frontend for importing and browsing platform-scoped GameBase libraries. The main workflow is selecting a platform and importing its MDB, querying the resulting local catalog, browsing/filtering games, viewing media and details, then launching with an external emulator or supported in-app emulation. Settings, themes, fullscreen navigation, extras, and music playback are additional product branches. Some backend and UI subsystems are represented by directory or exact tree paths because their source was not sampled; unverified relationships are omitted or dashed.
Main entry points: tauri-bridge.ts Tauri Bridge · page.tsx App Shell · useUnifiedDetailViewModel.tsx Detail Model · SettingsContext.tsx Settings State
Components 24
Library Experience
- App Shell
src/app/page.tsx - Library Browser
src/hooks/useLibraryBrowserState.ts - Library Views
src/components/UnifiedLibraryView.tsx - Game Details
src/components/DetailView.tsx - Detail Model
src/components/detail/useUnifiedDetailViewModel.tsx - BigBox Navigation
src/hooks/useUnifiedLibraryNavigation.ts
Platform Setup
- Settings UI
src/components/SettingsModal.tsx - Database Setup
src/components/setup/DatabaseSetupView.tsx - Settings State
src/contexts/SettingsContext.tsx - Platform Profiles
src/lib/platform-capabilities.ts - Themes
src/contexts/ThemeContext.tsx - Platform Manifest
src-tauri/src/platform_manifest.rs
Desktop Backend
- Tauri Bridge
src/lib/tauri-bridge.ts - Catalog Commands
src-tauri/src/commands/db/querying.rs - SQLite Catalog
src-tauri/src/database.rs - DB Connections
src-tauri/src/database/connection.rs - MDB Import
src-tauri/src/database/mdb_export.rs - Game Records
src/types/game.ts
Playback and Media
- Emulator Commands
src-tauri/src/commands/emulator - Launch Builder
src/lib/platform-launch.ts - Embedded Emulator
public/emulator/data/src/emulator.js - Extras Browser
src/components/ExtrasDetail.tsx - Music Players
src/components/MusicPlayer.tsx
Other components
- Player
Connections 28
- Player → App Shell: uses
README.md - App Shell → Library Views: renders
src/app/page.tsx - App Shell → Game Details: renders
src/app/page.tsx - App Shell → Database Setup: renders
src/app/page.tsx - App Shell → Settings UI: renders
src/app/page.tsx - Library Views → Library Browser: uses
- Library Browser → Tauri Bridge: queries games
src/hooks/useLibraryBrowserState.ts - Game Details → Detail Model: uses
src/components/DetailView.tsx - BigBox Navigation → Library Browser: uses state
src/hooks/useUnifiedLibraryNavigation.ts - BigBox Navigation → App Shell: selects game
src/hooks/useUnifiedLibraryNavigation.ts - Settings UI → Settings State: updates
- Database Setup → Tauri Bridge: imports database
- Settings State → Tauri Bridge: loads platforms
src/contexts/SettingsContext.tsx - Settings State → Platform Profiles: builds settings
src/contexts/SettingsContext.tsx - Themes → Settings State: reads preference
src/contexts/ThemeContext.tsx - Tauri Bridge → Catalog Commands: invokes queries
src/lib/tauri-bridge.ts - Tauri Bridge → SQLite Catalog: imports MDB
src/lib/tauri-bridge.ts - Catalog Commands → DB Connections: uses connection
src-tauri/src/commands/db/querying.rs - SQLite Catalog → DB Connections: uses connection
src-tauri/src/database.rs - SQLite Catalog → MDB Import: imports from
src-tauri/src/database.rs - Detail Model → Launch Builder: builds request
src/components/detail/useUnifiedDetailViewModel.tsx - Detail Model → Tauri Bridge: launches emulator
src/components/detail/useUnifiedDetailViewModel.tsx - Tauri Bridge → Emulator Commands: dispatches launch
- Detail Model → Extras Browser: shows extras
src/components/detail/useUnifiedDetailViewModel.tsx - Player → Embedded Emulator: plays in app
README.md - Player → Music Players: plays music
README.md - Catalog Commands → Game Records: returns records
- Platform Profiles → Platform Manifest: uses manifest
src/lib/platform-capabilities.ts