MCPcopy Index your code
hub / github.com/chrismaltby/gb-studio

github.com/chrismaltby/gb-studio @v4.3.2 sqlite

repository ↗ · DeepWiki ↗ · release v4.3.2 ↗
4,551 symbols 13,077 edges 1,297 files 11 documented · 0%
README

GB Studio

Github Actions Status Storybook Code Coverage

Copyright (c) 2019-2026 Chris Maltby, released under the MIT license.

Patreon: gbstudiodev
Twitter: @maltby
Reddit: /r/gbstudio
Discord: Join Chat

GB Studio is a quick and easy to use retro adventure game creator for Game Boy available for Mac, Linux and Windows. For more information see the GB Studio site

GB Studio

GB Studio consists of an Electron game builder application and a C based game engine using GBDK.

Installation

Download a release for your operating system from the GB Studio Downloads page.

Or to run from source, clone this repo then:

> cd gb-studio
> corepack enable
> yarn
> npm run fetch-deps
> npm start

After checking out a new version you may also need to fetch dependencies again to ensure you have the latest version of GBVM + GBDK etc.

> cd gb-studio
> npm run fetch-deps

GB Studio currently uses Node 21.7.1. If you have NVM installed you can use the included .nvmrc to switch to the supported Node version.

> cd gb-studio
> nvm use

GB Studio CLI

Install GB Studio from source as above then

> npm run make:cli
> yarn link
# From any folder you can now run gb-studio-cli
> $(yarn bin gb-studio-cli) -V
4.1.2
> $(yarn bin gb-studio-cli) --help

Update the CLI

Pull the latest code and run make:cli again, yarn link is only needed for the first run.

> npm run make:cli

CLI Examples

  • Export Project

```bash

$(yarn bin gb-studio-cli) export path/to/project.gbsproj out/ ```

Export GBDK project from gbsproj to out directory

  • Export Data ```bash

    $(yarn bin gb-studio-cli) export -d path/to/project.gbsproj out/ ``` Export only src/data and include/data from gbsproj to out directory

  • Make ROM

```bash

$(yarn bin gb-studio-cli) make:rom path/to/project.gbsproj out/game.gb ```

Make a ROM file from gbsproj

  • Make Pocket

```bash

$(yarn bin gb-studio-cli) make:pocket path/to/project.gbsproj out/game.pocket ```

Make a Pocket file from gbsproj

  • Make Web ```bash

    $(yarn bin gb-studio-cli) make:web path/to/project.gbsproj out/ ``` Make a Web build from gbsproj

Documentation

GB Studio Documentation

Note For Translators

If you'd like to help contribute new language localisations to GB Studio you can do so by submitting pull requests adding or updating the JSON files found here https://github.com/chrismaltby/gb-studio/tree/develop/src/lang

If you're looking to update an existing translation with content that is missing, there is a handy script that lists keys found in the English localisation that are not found and copies them to your localisation

npm run missing-translations lang
# e.g. npm run missing-translations de
# e.g. npm run missing-translations en-GB

Extension points exported contracts — how you extend this code

ProvidersProps (Interface)
(no doc)
test/react-utils.tsx
Store (Interface)
(no doc)
test/redux-utils.ts
DebuggerScriptCtxBreadcrumbProps (Interface)
(no doc)
src/components/debugger/DebuggerScriptCtxBreadcrumb.tsx
NamedVariable (Interface)
(no doc)
src/renderer/lib/variables.tsx
RgbQuantOptions (Interface)
(no doc)
src/lib/types/rgbquant.d.ts
StandaloneMusicPageProps (Interface)
(no doc)
src/apps/gbs-music-web/components/StandaloneMusicPage.tsx
RootState (Interface)
(no doc)
src/store/storeTypes.ts
PatreonMember (Interface)
(no doc)
src/scripts/fetchPatrons.ts

Core symbols most depended-on inside this repo

l10n
called by 3390
src/shared/lib/lang/l10n.ts
onChange
called by 184
src/components/script/DialogueReviewScene.tsx
stop
called by 112
appData/webTemplates/binjgb/js/script.js
optimiseScriptValue
called by 103
src/shared/lib/scriptValue/helpers.ts
getTestScriptHandlers
called by 71
test/getTestScriptHandlers.ts
notifyListeners
called by 59
src/apps/gb-studio/menu.ts
precompileScriptValue
called by 59
src/shared/lib/scriptValue/helpers.ts
sendToProjectWindow
called by 58
src/apps/gb-studio/main.ts

Shape

Function 3,582
Interface 721
Method 179
Class 61
Enum 8

Languages

TypeScript100%

Modules by API surface

src/components/ui/icons/Icons.tsx156 symbols
appData/webTemplates/binjgb/js/script.js111 symbols
appData/wasm/rgbds/rgbasm.js102 symbols
src/lib/compiler/generateGBVMData.ts90 symbols
src/lib/project/migration/legacy/migrateLegacyProjectVersions.ts88 symbols
src/shared/lib/entities/entitiesHelpers.ts72 symbols
appData/wasm/rgbds/rgblink.js71 symbols
appData/wasm/rgbds/rgbfix.js71 symbols
appData/wasm/binjgb/binjgb.js41 symbols
src/components/music/helpers/player.ts37 symbols
src/apps/gbs-music-web/lib/adapters.ts34 symbols
src/apps/gb-studio/main.ts32 symbols

Dependencies from manifests, versioned

@babel/core7.29.0 · 1×
@electron-forge/cli7.3.0 · 1×
@electron-forge/maker-deb7.3.0 · 1×
@electron-forge/maker-rpm7.3.0 · 1×
@electron-forge/maker-squirrel7.3.0 · 1×
@electron-forge/maker-zip7.3.0 · 1×
@electron-forge/plugin-auto-unpack-natives7.3.0 · 1×
@electron-forge/plugin-fuses7.2.0 · 1×
@electron-forge/plugin-webpack7.3.0 · 1×
@electron/fuses1.7.0 · 1×
@electron/notarize2.3.0 · 1×

For agents

$ claude mcp add gb-studio \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact