How ghost0159/ghost-eshop-homebrew works
Ghost eShop is a Nintendo 3DS storefront for browsing and downloading digital products. The principal flow starts in the main screen, loads/selects a store, presents searchable and sortable catalog entries, then queues/downloads and installs a selected product. Settings, themes, language, QR handling, and argument-driven scripted actions are additional capabilities. The tree and excerpts support the main-screen/store-loading and argument-parser links; detailed wiring for several catalog and installation subsystems was not sampled, so those links are omitted where ownership is uncertain.
Main entry points: store.cpp Store metadata · mainScreen.cpp Main screen · config.cpp User configuration · download.cpp Download transfer
Components 23
Application flow
- Application entry
source/main.cpp - Main loop
include/init.hpp - Main screen
source/screens/mainScreen.cpp
Store and catalog
- Store selection
source/overlays/storeSelect.cpp - Store metadata
source/store/store.cpp - Catalog operations
source/store/storeUtils.cpp - Search and filters
source/menu/searchMenu.cpp - Sort and marks
source/menu/sortMenu.cpp - Download queue UI
source/menu/queueMenu.cpp
Download and actions
- Download transfer
source/utils/download.cpp - Archive extraction
source/utils/extract.cpp - CIA handling
source/utils/cia.cpp - Store actions
source/utils/scriptUtils.cpp - Argument actions
source/utils/argumentParser.cpp - QR decoding
source/qr/decode.cpp
UI and preferences
- Settings UI
source/menu/settings.cpp - User configuration
source/utils/config.cpp - Theme management
source/utils/theme.cpp - Language resources
source/utils/lang.cpp - Screen framework
Universal-Core/gui.cpp
Other components
- 3DS user
- Store and file server
- SD card
Connections 27
- 3DS user → Application entry: launches
- Application entry → Main loop: starts
- Application entry → Argument actions: parses arguments
- Main loop → Main screen: runs
- Main screen → Store selection: opens store selection
- Store selection → Store metadata: loads selected store
- Main screen → Download transfer: downloads store data
- Store and file server → Download transfer: provides files
- Download transfer → SD card: writes downloads
- Store metadata → SD card: reads store data
- 3DS user → Search and filters: searches catalog
- 3DS user → Sort and marks: filters and sorts
- 3DS user → Download queue UI: manages queue
- 3DS user → Settings UI: changes preferences
- Settings UI → User configuration: updates settings
- User configuration → SD card: persists settings
- User configuration → Theme management: selects theme
- User configuration → Language resources: selects language
- Argument actions → Store metadata: loads store entry
- Argument actions → Store actions: executes action
- Store metadata → Store actions: supplies store JSON
- 3DS user → QR decoding: scans QR content
- Main screen → Screen framework: draws interface
- Catalog operations → Store metadata: reads catalog entries
- Download transfer → Archive extraction: hands off archives
- Archive extraction → SD card: writes extracted files
- CIA handling → SD card: handles install files