The configurator is a software tool used to modify PICO9918 configuration options, including:
- Clock rate
- Scanline CRT effect
- Scanline sprite limit
- Default palette
- Diagnostics overlays
Additionally, firmware updates can be provided via the Configurator. The full configurator is available for the TI-99/4A, ColecoVision and MSX. With cut-down builds (without firmware updates) available for several other machines.
See the configurator in action:
The configurator was written in a custom fork of CVBasic.
If you don't have a device supported by the native configurator, the Web-based PICO9918 Configurator can be used to generate a config .uf2 file. Just drag-and-drop the resulting file onto your PICO9918 using the same method as for firmware updates.
- CMake 3.13 or later
- Python 3 (accessible as
python3) - CVBasic compiler (
cvbasic.exe) - GASM80 assembler (
gasm80.exe) - XDT99 XAS99 assembler (for TI-99 builds)
- CMake 3.13 or later
- Python 3 (accessible as
python3) - Git (for checking out tool repositories)
- C compiler (GCC or Clang for building tools)
The configurator is now integrated into the main PICO9918 build system:
# Build from project root
mkdir build && cd build
cmake ..
make # Build firmware
make configurator_all # Build all configurator ROMsAll final artifacts will be in build/dist/:
- Firmware:
pico9918-vga-build-v1-0-2.uf2 - Configurator ROMs:
pico9918_v1-0-2_*.rom/pico9918_v1-0-2_*.bin
cd configtool
mkdir build && cd build
cmake .. [-DBUILD_TOOLS_FROM_SOURCE=ON]
make configurator_allmake ti99 # TI-99/4A
make ti99_f18a # TI-99/4A F18A Testing
make coleco # ColecoVision
make msx_asc16 # MSX ASCII16 mapper
make msx_konami # MSX Konami mapper
make sg1000 # SG1000/SC3000
make nabu # NABU
make creativision # CreatiVision
make nabu_mame_package # NABU MAME (.npz)cmake .. -G Ninja [-DBUILD_TOOLS_FROM_SOURCE=ON]
ninja configurator_all- Firmware Dependency: Checks for pre-built firmware in
../build/src/ - UF2 Conversion: Converts firmware to CVBasic data using
uf2cvb.py - CVBasic Compilation: Compiles
.bassources for each target platform - Assembly: Uses GASM80 (most platforms) or XAS99 (TI-99) for final ROM creation
- Packaging: Creates platform-specific ROM files (.bin, .rom, .nabu, etc.)
| Platform | Mapper/Banking | Output Format | Assembly Tool |
|---|---|---|---|
| TI-99/4A | 8KB banks | .bin cartridge | XAS99 + linkticart |
| ColecoVision | 16KB banks | .rom | GASM80 |
| MSX | ASCII16/Konami | .rom | GASM80 |
| NABU | No banking | .nabu/.npz | GASM80 |
| CreatiVision | No banking | .bin | GASM80 |
The build system automatically searches for tools in:
configtool/tools/cvbasic/(bundled tools)../CVBasic/build/Release/(local CVBasic build)- System PATH
c:/tools/xdt99/(Windows) or/usr/local/bin,/opt/xdt99(Linux)
When enabled, CMake will:
- Clone CVBasic from https://github.com/visrealm/CVBasic.git
- Clone gasm80 from https://github.com/visrealm/gasm80.git
- Clone XDT99 from https://github.com/endlos99/xdt99.git
- Build CVBasic and gasm80 from source using their CMake systems
- Install tools to
build/external/directory - Use the locally-built tools for ROM generation
This mode enables fully cross-platform builds without pre-installed tools.