MADE FOR THE NES. READY FOR YOUR IDEAS. NO ACCOUNT NEEDED.
NESBASICBY NDB SOFTWARE

01 THE BROWSER PLAYGROUND

A little code. A little magic.

First time? Start here

Computer files: use Download .bas or Open .bas file above. Typing SAVE / LOAD inside NES BASIC uses cartridge slots.

NES BASIC / ORIGINAL ROMBOOTING
Click the screen to type

Loading the original cartridge…

02 GOOD TO KNOW

Your code runs
on the NES.

The browser handles the screen, inputs, and files. Every BASIC statement is parsed and executed by the actual cartridge interpreter.

Saving and local recovery

Click Download .bas above the screen to download your numbered source to your computer. Click Open .bas file to choose a file from your computer. Typing SAVE or LOAD inside the NES screen uses the emulated cartridge slots and does not open a computer file dialog. Custom sprite artwork is not part of a text file. Native SAVE "NAME" preserves source and artwork in six cartridge slots. Local recovery stores a full session in IndexedDB, tied to this browser and address.

Keyboards and touch controls

Physical USB/Bluetooth keyboards use ordinary browser text events. Focus the screen to type; browser shortcuts may stay reserved. Left/Right moves the caret; Ctrl+C stops. Use Keyboard for mobile text entry. Touch Select opens the ROM’s controller keyboard, A inserts, B erases, and Start submits.

To send controller buttons from a keyboard, choose Controller mode in settings. This mode has separate saved mappings and does not type source.

Controllers and remapping

Pair or plug in a gamepad, focus the page, and press a button. Open Controllers to test and map each virtual NES button. Standard D-pad/left-stick navigation is supported. Older 8BitDo or retro controllers may need another operating mode. Browser/OS compatibility varies; universal support is not promised.

Import limits and recovery

Load .bas accepts printable ASCII, numbered lines 1–65535, up to 95 characters per line and 128 lines. Files are limited to 16 KB; cartridge storage is limited to 3,072 token bytes. Imports are validated by the actual ROM in a temporary emulator. Failed imports preserve the active session. Source typing is normalized to uppercase by the ROM.

A starting point.

Load a complete example from the programming guide.

Make the controls yours.

Connect a controller and press a button.

Choose a mapping, then press a physical key or gamepad button. The D-pad and left stick use axes in addition to the mapped buttons.

Button test: no buttons pressed