Skip to content

Options

Nick R. edited this page Oct 16, 2026 · 37 revisions

The Options tab holds every project-wide setting — things that affect the whole ROM rather than one specific block. Settings are grouped into four collapsible sections: ROM Options, Kernel Options, Compiler Options, and VCSGM Options.

image

Most of these settings are saved as part of your project file, so they travel with your .vcsgm save. The exceptions are called out below under VCSGM Options — those are standing preferences for the app itself, not something that resets when you start a new project.

Click Reset to Defaults to put every setting back to its default value in one click. (ROM size and Playfield resolution aren't touched by this)

ROM Options

image

TV standard — NTSC or PAL60. This sets the ROM's TV type, and the emulator preview follows it. PAL60 is a PAL console's color signal at the same 60 Hz timing as NTSC, so frame-based timing (durations, tempo) is identical either way. What changes is color and sound: the same color value is a different color on PAL, so a PAL60 build swaps each color you picked for the PAL color that looks closest to it (the pickers keep showing the NTSC palette, and your stored colors don't change). Colors a game computes while running, such as fades and rainbow colors, step through the PAL palette's hues instead. The Sound/Music previews use the slightly lower PAL audio clock (about 12 cents flat).

ROM size — How large the finished cartridge is, from 2k up to 64k. Bigger sizes give you more room for code, graphics, and sound. If you turn on Superchip RAM (below), only ROM sizes of 8k and larger are offered, since Superchip requires a bankswitched ROM.

Show score at bottom of screen — Turns the score display on or off. Turning it off skips the score-drawing code entirely, freeing up ROM space if you don't need a score.

Mute in-game audio — Silences every sound effect and music channel, no matter what your Sound/Music blocks do. Handy for testing without having to temporarily remove sound blocks.

Enable Superchip RAM for higher-resolution playfields — Adds Superchip RAM to the ROM and lets your playfield use more than the normal 11 rows. A few things come with this:

  • Requires an 8k or larger ROM (the app bumps this automatically if needed).
  • Horizontal playfield scrolling (left/right) isn't supported once this is on.
  • It also moves the app's internal bookkeeping variables off of letters (a–z) and into extra Superchip RAM, which frees up every letter for your variables.

Playfield vertical resolution — How many rows tall your playfield is, up to 32. Values that don't evenly divide 96 (3, 4, 6, 8, 12, 16, 24, 32) may leave a small gap at the bottom of the screen.

DPC+ kernel

Setting the kernel to DPC+ (an ARM coprocessor cartridge, run in the 6502.ts emulator) changes what the Options tab offers and how a project compiles:

  • Superchip, per-row Player colors and the other standard-kernel playfield tricks are hidden. The Superchip toggle keeps its setting (it comes back if you return to the standard kernel) but is ignored while DPC+ is on.
  • Playfield resolution is a separate setting from the standard kernel's, with a preset dropdown above it. DPC+ can draw many different row counts; the default matches the standard kernel without Superchip.
  • Variables: DPC+ has 9 extra variables (var0 to var8), and the memory of the sprites a project does not use is handed out as variables too. The Variable and Math categories get Push, Pull and Stack position blocks for DPC+'s 256-byte variable stack.
  • Players 2 to 9: the Player blocks (position, animation, size, color, Fire, Seek, Inertia, Bounce, Collided and Undo last move) offer Player 2 to 9 while DPC+ is on. Each one used costs 4 variables, and the highest one used decides how many of the other sprites' variables stay free.
  • Sound and music play on the DPC+ sound chip. Channel 0 becomes three voices (Ch0 voice 1, 2 and 3, which the sound blocks list as channels 0, 2 and 3), and channel 1 stays a TIA channel. See Sound and Music. The Use 16-bit random number generator setting is ignored (the chip's 32-bit generator is always used), and Set random seed seeds that generator. The sound routine hands the rebuilding of each voice's waveform to the ARM coprocessor.
  • Text Minikernel: works on DPC+, including the wrapped second row, the scroll cursor and custom text fonts. The main screen is shortened by the lines the text takes, and the hidden score is drawn in black.
  • Title Screen Kernel: works on DPC+. It uses the memory of the virtual sprites above player 1 as working space, so a project with a title screen has fewer freed sprite bytes to hand out as variables.
  • Not available: custom score fonts are skipped on DPC+. Player rainbow colors and ROM noise only work on Player 0.

Kernel Options

Use 16-bit random number generator — Widens how long the random number sequence runs before it starts visibly repeating. Every Random block still reads the same underlying random value either way; this only affects how long it takes before that sequence starts to repeat. Costs one extra variable.

Fill blank lines between background rows with missile0 — Normally off. Turning it on packs playfield rows tighter together, but does so by reusing missile0's graphics circuitry, so missile0 can no longer be used as a sprite anywhere in the project. This gets forced off automatically (and the toggle disabled) if Player 0 sprite colors is active, since batari Basic doesn't allow that combination.

Enable per-row Player 0 sprite colors — Lets Player 0 show a different color on every row it draws, the same way backgrounds can. Works fine with Superchip RAM on. This costs missile0 (it can't be used as a sprite anywhere in the project once this is on) and paddle input. batari Basic requires per-row Player 1 sprite colors to also be on whenever this is on, so turning this on automatically turns on (and locks on) the Player 1 toggle below too — meaning enabling this one costs both missiles.

Enable per-row Player 1 sprite colors — Lets Player 1 show a different color on every row it draws. Works fine with Superchip RAM on. Costs missile1 only (it can't be used as a sprite anywhere in the project once this is on) — unlike Player 0 sprite colors, this one works fine with no other cost, and doesn't require the Player 0 toggle.

Enable per-row playfield colors — Lets backgrounds show a different color on every playfield row. You can still set row colors on the Background tab while this is off; they just won't be included in the compiled game until you turn this on.

Compiler Options

Inline random number calls — Places calls to the random number generator directly inline with your code instead of routing through a shared subroutine. Trades a small increase in code size for speed — most useful on a bankswitched ROM, where a shared routine call would otherwise have to switch banks. Requires a bankswitched ROM size (8k or larger).

Optimize for speed — May increase speed, particularly of multiplication and division, at the cost of a larger compiled size.

Show remaining CPU cycles as the score — A debugging aid: displays an estimate (accurate to roughly ±64 cycles) of how many machine cycles are left in the current frame, shown using the score digits. White means positive (cycles to spare); red means negative (over budget). Only measures up to about ±2000 cycles — a bigger deficit may show garbage or crash. Has no effect while a Title screen is being shown - it only overlays the standard game kernel's score drawing, which a title screen never calls.

VCSGM Options

These are standing preferences for the app itself — unlike everything above, they are not part of your project file, so they don't change when you switch projects, and they don't get affected by "Reset to Defaults" the same way (some are, see below).

Load last open project on startup — When off, the app always starts from an empty project instead of restoring whatever you had open last.

Show Tips at startup — On by default. Each time the app starts, a tip about using it pops up, with a link to the wiki page and entry it is about (the 100 tips are listed in the app's src/data/tips.json). The arrows at the bottom of the popup step through the other tips, and the Don't show again checkbox turns this switch off, then shows a notice with a link that takes you back here to turn it on again.

Mute Blockly sounds — Silences the click/delete/disconnect sounds you hear while editing blocks on the Actions tab. This doesn't affect your actual game's audio — see "Mute in-game audio" above for that.

Show detailed comments in generated code — Adds a short explanatory comment next to each reserved variable and data table on the Generated tab, describing what it's for.

Dark Mode — Dark theme. Combines with Subdued Palette below. Pixel editors, color swatches and the emulator screen always keep their true colors. The block search field in the Actions toolbox types in a light gray.

Dark Mode UI Desktop 2026-10-03 6-20-25 PM-254

Dark Mode & Subdued Palette UI Desktop 2026-10-03 6-20-33 PM-536

Subdued Palette — Mutes colors for a calmer, less colorful look. With Dark Mode on as well, the text in the Actions toolbox is a softer gray instead of bright white.

Subdued Palette UI Desktop 2026-10-03 6-20-30 PM-26

High Contrast — Makes the icons (and their names) in the left and top toolbars black instead of a different color for each, or white in Dark Mode (a softer gray when Subdued Palette is on too). The sidebar's colored side bars stay as they are.

Hide top toolbar — Always hides the top app toolbar and the logo corner above the left toolbar, so the left toolbar and the emulator pane start at the top of the window. The logo and the version move to the top of the left toolbar: the round logo when the toolbar is narrow, the full logo when it is wide. Works with Expert mode on or off. It is not available while the left toolbar is hidden: only one of the two toolbars can be hidden at a time.

Hide left toolbar — Always hides the left toolbar, giving the rest of the app that extra space. Works with Expert mode on or off, and is not available while the top toolbar is hidden. The left toolbar is otherwise always shown, whatever the width of the window.

Expert mode — Hides the small explanatory hint text under fields and switches throughout the app, for a more compact layout once you already know what everything does, and takes the names away from the top toolbar and the left toolbar, along with the color bars beside the left toolbar's icons. The left toolbar then shows just the icons (it goes to its icon-only width).

Stella installation location (desktop app only) — Points the app at your local install of the Stella emulator, so the emulator preview's "Test in Stella" button can launch it directly with your compiled ROM. You need to install Stella yourself first; this setting only tells the app where to find it. Click Browse... to pick the executable. Not available in the browser version.

Clone this wiki locally