
Orbis Basic 32X + Orbis Builder
A downloadable tool for Windows and Linux
ORBIS BASIC 32X / ORBIS BUILDER
ORBIS BASIC 32X is a retro-future development toolkit for creating real bootable Sega 32X / Mega 32X ROMs, native desktop builds, and retro-style game projects.
It started as a BASIC compiler. It still is one. You can write approachable BASIC code, compile it, and produce a playable .32x ROM.
But with the newer Builder Edition, the idea has grown.
Orbis Basic is no longer only BASIC as a programming language. It is also “basic” as in the essential tools for making retro games.
That means BASIC, C, real string support, automatic asset integration, desktop builds, GPU-accelerated desktop presentation, 32X ROM building, and the Orbis Pixel Pipeline all working together as one creative workflow.
From BASIC Language to Basic Game-Making Tools
The original idea remains simple:
Write code. Build a real Sega 32X ROM.
The new Builder workflow expands that idea:
Write in BASIC. Build in C. Prepare pixels. Build ROMs. Build desktop apps.
BASIC is still the fastest way to start. It gives you simple commands for graphics, sprites, audio, input, text, data, and game logic.
But Orbis Builder also gives developers a stronger C workflow. The package includes generated Orbis C examples and real string support, making C much more practical for menus, text handling, file paths, tools, UI logic, save/load helpers, generated code, and larger desktop-oriented projects.
So you can choose your level:
Write games in BASIC. Write games in C. Use both workflows inside the Orbis ecosystem. Build for Sega 32X. Build for desktop. Prepare assets with the Pixel Pipeline.
That is the new meaning of Orbis Basic: the BASIC language, and the basic tools for building retro games.
Real Sega 32X ROMs and Native Desktop Builds
Unlike a traditional runtime, fantasy console, emulator scripting layer, or generic game engine, ORBIS BASIC 32X generates real 32X ROMs around a custom SH-2 runtime and a direct-color framebuffer graphics model.
It produces bootable .32x ROMs that can run in compatible emulators, on suitable handheld setups using PicoDrive, and in appropriate flash-cartridge or homebrew workflows.
A project made with ORBIS BASIC 32X is not only something that runs on a PC. It can become a real Sega 32X ROM that can be shared with emulator users, tested on suitable hardware, published as homebrew, or prepared for possible physical cartridge production.
The desktop target is a companion workflow. It makes testing, iteration, experiments, and presentation much faster on modern systems while keeping the Sega 32X ROM target as the soul of the project.
GPU-Accelerated Desktop Presentation
The desktop version is now a much stronger part of the workflow.
Native desktop builds use GPU-accelerated OpenGL presentation. The game still draws into an Orbis-style RGB555 framebuffer, so the retro pixel model stays intact, but the window presentation and scaling are handled through a GPU-backed path.
This makes desktop builds smoother and more comfortable while preserving the same retro-style framebuffer thinking used by the 32X target.
Desktop builds can also use larger logical screen modes with SCREEN(width,height), including common desktop resolutions such as 1280x720 and 1920x1080.
This is useful for desktop tools, menus, visual experiments, large images, high-resolution previews, mouse-driven projects, and native app versions of Orbis projects.
BASIC for Games, Demos and Visual Experiments
ORBIS BASIC 32X supports a practical BASIC-style command set for building visual and interactive projects, including:
TYPE and SUB support CALL structure drawing commands image drawing scaled drawing sprites scrolling commands alpha blending multi-level parallax audio commands mouse input controller input DATA handling SAVE and LOAD support automatic asset baking desktop builds GUI and world helpers
The project is built for creators who want to make original Sega 32X software with the immediacy of BASIC, the visual identity of retro hardware, and the freedom of a modern portable toolchain.
Orbis C with Real String Support
Orbis Builder also includes a stronger C path.
This is important because not every project needs to stay purely in .bas form. Some creators may want to use BASIC for fast prototyping and C for larger systems, desktop tools, generated examples, or more structured projects.
The included Orbis C workflow gives that path a real foundation.
Real string support as language extension makes the C side much more useful.
It enables practical text handling for menus, messages, names, file paths, UI logic, generated content, save/load helpers, and tool-like desktop projects.
This turns Orbis Builder into more than a BASIC compiler. It becomes a small retro development environment where BASIC and C both have a place.
BASIC for immediacy. C for control. Strings for real tools and real game structure. ROM output for the 32X. Desktop output for modern systems.
Automatic Asset Integration
One of the defining features of ORBIS BASIC 32X is immediate asset integration.
Images and audio can be baked into the ROM during compilation. The compiler automatically converts, integrates, and prepares assets as part of the build process, removing the need for a large external toolchain or complicated manual conversion steps.
Write BASIC code, reference your assets, compile, and the compiler prepares the ROM for you.
For larger Full Edition projects, the newer 32 MB ROM workflow allows much larger image-heavy projects. Mapper-backed image data can be stored in ROM banks and accessed by the runtime when needed.
This is useful for large backgrounds, panoramas, scrolling scenes, visual novels, image-heavy demos, animated intros, and bigger game worlds.
Dynamic Desktop Assets
Desktop builds can also use dynamic runtime assets.
DYNIMAGE(path$) DYNAUDIO(path$) FREEIMAGE handle FREEAUDIO handle
These commands are desktop-only. They are designed for cases where a native desktop build should load images or audio from disk instead of embedding everything into the executable.
This is useful for large 1080p images, external music, galleries, mod folders, menu assets, animation tests, and desktop-first tools.
The classic portable commands keep their original role:
LOADIMAGE LOADSOUND
Those remain the static compile-time asset path for shared Sega 32X and desktop projects.
Orbis Pixel Pipeline Companion Tool
Orbis Pixel Pipeline is the advanced standalone evolution of the original Orbis Scaler companion tool.
It is designed for preparing artwork, rendered images, screenshots, AI-generated images, concept art, scanned artwork, and other source graphics for retro-style game development workflows.
It can downscale images to fixed or custom resolutions, apply adjustable pixelation, limit colours with k-means, map output to external GPL palettes, process complete folders in batch mode, and upscale previews with nearest-neighbor scaling.
For ORBIS BASIC 32X projects, Orbis Pixel Pipeline can be used to prepare cleaner low-resolution image material, references, backgrounds, sprites, and pixel-art-style base images before further editing, palette work, or integration into a Sega 32X project.
This is another part of the Builder idea: Orbis is not only about code. It is also about preparing the pixels that the code will use.
Mouse Support
Recent builds include shared mouse support for Sega 32X and desktop targets.
The mouse commands make it possible to build mouse-driven programs using a Sega/Mega Mouse or compatible setup, while keeping the same source code usable in the desktop build.
MOUSEINIT("mousepointer.png", port[, protocol])
MOUSEUPDATE
MOUSEX()
MOUSEY()
MOUSEBUTTON()
On 32X, the port argument selects controller port 1 or 2. On desktop, the same commands map to the host window mouse.
This makes ORBIS BASIC 32X useful not only for games, but also for menus, editors, visual tools, GUI experiments, and desktop companion projects.
Portable and Self-Contained
The compiler and companion tools are intentionally minimal, portable, and self-contained.
The release package is designed around bundled executables and included documentation. Users can work from the release folder without needing a source-tree build system.
The goal is to keep the workflow direct:
Write source. Run the bundled compiler. Build ROMs or desktop apps. Test and iterate.
Free Edition vs Full Edition
ORBIS BASIC 32X is available in Free Edition and Full Edition.
The Free Edition is intended for trying the compiler, learning the workflow, and building smaller Sega 32X projects. It can produce real bootable Sega 32X ROMs up to 512 KB.
The Full Edition is intended for larger projects, asset-heavy demos, desktop workflows, and creators who want the complete ORBIS BASIC 32X / Orbis Builder experience.
The Full Edition can produce Sega 32X ROMs up to 32 MB and includes the larger desktop build workflow for creating native desktop versions of compatible projects.
Both editions use the same core idea:
Write code, integrate assets automatically, and build real Sega 32X ROMs.
Download Options
The free download includes the Free Edition of ORBIS BASIC 32X.
The full bundle includes the Full Edition of ORBIS BASIC 32X with the complete ROM size limit and desktop build workflow.
Orbis Pixel Pipeline is available separately as an advanced companion tool for pixel-art-style asset preparation and batch image processing.
What This Page Contains
This page contains ORBIS BASIC 32X builds, Orbis Builder updates, demos, documentation, examples, and ongoing development progress.
You can use it for arcade games, platformers, puzzle games, visual novels, scrolling scenes, sprite tests, audio demos, mouse experiments, desktop tools, generated C projects, pixel-art workflows, and Sega 32X homebrew.
Simple. Powerful. Retro. Future.
Write in BASIC. Build in C. Prepare the pixels. Build the ROM. Build the app.
From BASIC to metal.
| Updated | 4 days ago |
| Status | Released |
| Category | Tool |
| Platforms | Windows, Linux |
| Author | Orbis Magic |
| Tags | 16-bit, compiler, Emulator, fantasy-console, Game engine, Mega Drive, programming, Retro, Sega Genesis, windows |
| AI Disclosure | AI Assisted, Graphics |
Download
Click download now to get access to the following files:
Development log
- Back to the Metal: Orbis Basic v7 and Its New Retro Handbooks12 days ago
- Orbis Builder: Code the Pixels, Build the ROM36 days ago
- BASIC to Metal: Orbis Basic 32X v6 Preview49 days ago
- The SEGA 32X Finally Speaks BASIC52 days ago
- Orbis Basic 32x — Release Candidate 154 days ago
- Introducing Orbis Basic - SEGA 32x57 days ago



Comments
Log in with itch.io to leave a comment.
This is neat. You're darned tootin' I bought a copy, even though the 32X was my arch enemy in the 1990s. You want me to buy ANOTHER add-on? And for HOW much?
So I assume this is JUST for 32X and not the core Genesis? Also, do you have access to all the fun Mode 7-y effects of the 32X? Mode 7 effects are fun to screw around with.
Thank you! Yep, for now it’s 32X only. Genesis support is something I’ve thought about, but I haven’t had time to implement it yet. One of the main reasons I focused on the 32X is its RGB555 framebuffer, since it gives Orbis BASIC a much more straightforward direct-pixel graphics model.
As for the Mode 7-ish stuff, I’ve thought about that too! There’s already scaling support, but I haven’t implemented the more advanced rotation, affine, or perspective effects yet. Definitely the sort of thing I’d like to add down the road.
Orbis Basic v7.0.3 is now available!
This release introduces proper typed functions and automatic local variables, including INTEGER, FLOAT, STRING, recursion, parameters, return values, and local fixed arrays.
The old text manuals have also been replaced with two comprehensive, professionally designed retro handbooks inspired by classic Commodore-era documentation. They include diagrams, reference material, and complete runnable examples for Sega 32X, Linux, Windows, and Orbis C development.
v7.0.3 also includes improved math and runtime-string compatibility, unified demo building, and a fully validated 260-example library.
Happy coding - and have fun creating for the Sega 32X!
v6.0.17 – World Scrolling Commands
This update adds a new high-level world system for creating scrolling maps, RPGs, adventure games, and Zelda/Pokémon-style scenes.
New commands:
W = LOADWORLD("world.png", "world_colormap.png") SHOWWORLD W, XW, YW HIT = CALLWORLD(W, X, Y, XW, YW) ADDSPRITE W, SPRITEID, COLORCODELOADWORLDworks like the GUI system: it loads a visible world image and a color-coded logic map. The colormap is converted at build time, so the original overlay image does not need to be stored in ROM.SHOWWORLDdraws a 320×200 scrolling viewport from the world image. If the camera reaches the edge of the map, the outside area is automatically drawn black.CALLWORLDreturns the color code at a screen/world position, making it useful for walls, doors, triggers, water, NPC zones, and other interaction areas.ADDSPRITEconnects sprites with world color codes, opening the door for simple collision and object interaction systems.This keeps the BASIC code very small while allowing much larger scrolling game worlds.
v6.0.15 update
New GUI commands added:
GUI = LOADGUI("menu.png", "menu_colormap.png") SHOWGUI(GUI) HIT = CALLGUI(GUI, X, Y)LOADGUIloads a visible menu image plus a color-coded hitmap. The hitmap is converted at build time, so the full overlay image is not stored in ROM.SHOWGUIdraws the GUI at0,0.CALLGUIreturns the color code under a position, useful for buttons and menu areas.Also fixed 32X mouse rendering: the cursor is now drawn safely at frame end, preventing trails, flicker, and broken text output.
v6.0.0 - Release Candidate 1 is available.
This preview adds mouse support for Sega 32X and desktop builds.
New mouse commands:
MOUSEINIT("mousepointer.png", port[, protocol]) MOUSEUPDATE MOUSEX() MOUSEY() MOUSEDX() MOUSEDY() MOUSEBUTTON()MOUSEINITloads the PNG cursor. On 32X,portselects controller port 1 or 2. On desktop, the command is accepted for source compatibility and uses the host window mouse.Call
MOUSEUPDATEonce per frame beforeFLIP.MOUSEX/Yreturn the position,MOUSEDX/Yreturn movement since the last update, andMOUSEBUTTON()returns button bits.This preview also fixes the Windows/Wine desktop audio problems. The Win64 audio path now uses a callback/pull-mixer model, fixing the previous stutter, noise, and slowdowns.
Desktop cross-build concept
The v6.0.0 experimental preview explores a new direction for Orbis Basic 32x: the same BASIC projects that target the Sega 32X can now also be cross-built as native desktop programs.
The idea is not to create a separate “desktop edition” of the language. Instead, the desktop target follows the same Orbis/32X-style programming model: a fixed SEGA 32x-framebuffer,
FLIP/FRAMERATE-driven rendering, RGB555 image data with alpha planes, sprite commands, PCM16/ADPCM audio assets, controller-stylePAD()input, and simple save/load persistence.For end users, the release package is meant to stay simple: you use the included
ob32xcompiler for Sega 32X ROMs, orobdesktoptogether with the bundled TCC toolchains to generate Linux and Windows desktop builds. This makes it easier to test, share, and preserve projects outside an emulator while keeping the 32X version as the main reference platform.This is still experimental and should be understood as a possible outlook toward a future v6 direction, but the goal is clear: one BASIC codebase, multiple playable targets.
New mainline update for Orbis BASIC 32X: v5.0.30 adds structured
SUB/CALLsupport.This is intentionally simple and close to classic BASIC / machine-code-style control flow.
CALL Namemaps directly onto the existingGOSUBmechanism, andEND SUBmaps toRETURN.New supported forms:
Also supported in this version:
So you can now organize larger programs into named routines while keeping the direct BASIC-to-Metal mapping philosophy intact.
New in Orbis BASIC 32X: experimental
TYPErecords in v5.0.27.This adds record-style data organization to help build larger programs more cleanly, for example grouping player or enemy data into fields like
Player.X,Player.Y, orEnemy(I).Speed.The compiler translates these records into Orbis BASIC’s existing fast variable and array system, so the code stays organized without adding a new runtime object layer or intended performance cost compared to writing the equivalent variables manually.
This feature is currently marked as experimental and needs further testing, especially in larger projects and more complex record-array use cases.
A small TYPE records demo is included in the package.
By any chance are you planning on implementing `TYPE` or similar? I think it might be challenging for a modern programmer to write nontrivial programs without some concept of a struct.
Yes - actually, we just added
TYPErecords to the current Orbis BASIC 32X experimental build.The idea is to give programs a struct/record-like way to organize data, for example:
TYPE Actor X AS INTEGER Y AS INTEGER SPEED AS INTEGER END TYPE DIM Player AS Actor DIM Enemy(8) AS Actor Player.X = 100 Enemy(I).Y = Enemy(I).Y + Enemy(I).SPEEDThe compiler translates these records into Orbis BASIC’s existing fast variable and array system, so it should help organize nontrivial programs without adding a new runtime object layer or intended performance cost.
It is still marked experimental and needs more testing, especially in larger projects, but a small demo is already included in the experimental package.
Amazing. Thank you.
You are welcome! And thank you again for testing and giving useful feedback.
New in ORBIS BASIC 32X v5.0.22:
PUTSCALESUBPUTSCALESUBadds cropped and scaled image rendering directly from ROM-backed assets. It lets a program select a source rectangle from a larger image, scale it to a destination area, and draw it in one command.This is especially useful for zoomed scrolling backgrounds, camera-style effects, panorama demos and game scenes that need to move across large images without manually preparing many separate assets.
Sprite and image scaling
Orbis Basic v5.0.16 now includes easy scaling commands for both images and sprites.
PUTSCALEdraws and zooms full images or image sections.SPRITESCALEbrings the same idea to sprite-sheet based animation.This makes it simple to create classic 32X-style effects directly from BASIC, such as:
No low-level 32X rendering code required.
Orbis Basic 32X has reached the v5.0.6 sprite milestone.
Since v5.0.0, the compiler now includes a complete sprite workflow for real Sega 32X game development:
MAPSPRITE()for mapping sprite sheets,PUTSPRITEfor centered transparent sprite drawing, andSPRITEOVERLAP()for simple rectangle-based collision checks.Sprite sheets now support runtime animation frames, 8-frame run cycles, alpha/transparent pixels, safe screen-edge clipping, and compact runtime sprite-run drawing for better performance. The new wizard demo shows
LOADIMAGE,MAPSPRITE,PUTSPRITE, andFRAMERATEworking together in a stable animated game loop.The SEGA 32X Finally Speaks BASIC
Orbis Basic 32x v5.0.0 is now available as the first stable release.
This is a major milestone for the project. Orbis Basic 32x is no longer just an experiment or a small demo compiler - it is now a complete BASIC-based workflow for creating real Sega 32X homebrew games and demos.
The core feature set is now included: realtime graphics, image drawing, scrolling, character animation, audio playback, looping sound/music, controller input, save/load support, timing helpers, and automatic ROM generation.
The release package also includes a universal
build-all-demoshelper, so all examples can be compiled with one command. It automatically detects the Free or Full Edition compiler and builds the included BASIC examples into Sega 32X ROMs.The Free Edition is available so everyone can test the workflow first, build demos, and check compatibility before deciding whether the Full Edition is right for them.
Thank you very much to everyone following the project and supporting Orbis Basic 32x.
You can now create Sega 32X games with simple BASIC.
Hey! I'm really excited to try this!
Question: given that your downloads are marked as supporting Linux and MacOS, are you planning on supporting non-windows platforms at release? It didn't immediately work for me when running under wine in Ubuntu. (`wine ob32x_free.exe examples/hello.bas` hangs forever).
Safety Stoat develops on *nix Operating systems, so if you do support those I'd be interested in purchasing the non-free version in the future.
Hey, thank you! Yes, Linux and macOS are intended to be supported at release.
The
.exename is a little misleading here: ORBIS BASIC 32X is built as a Cosmopolitan / actually portable executable, so it should run directly on Linux without Wine. Wine is not needed and may actually cause problems.I am developing and testing the executable on Linux Mint myself.
On Linux, please try:
The
.exeextension is kept so the same file can also be used on Windows.If it still gives you trouble when run directly, please let me know your distro and system details. I definitely want the tool to work well for *nix users too.
Sweet. That worked. Thank you!
Great, happy to hear it worked! Thank you for testing it on Linux.
Orbis Basic 32x v5.0.0 - Release Candidate 2
A new release candidate is now available.
This build mainly focuses on polishing the release workflow before the final version. The separate demo build scripts have been replaced by a single universal
build-all-demoshelper, which automatically detects the Full or Free Edition compiler and builds all BASIC examples into Sega 32X ROMs.This should make first testing much easier on Windows, Linux, and macOS.
The core feature set is now complete: realtime graphics, scrolling, character animation, audio, controller input, save/load support, timing helpers, and simple BASIC-based 32X ROM creation.
Unless a final issue appears during testing, this RC2 build is expected to become the final v5.0.0 release very soon.
Orbis Basic 32x v4.60.51 is getting much closer to a full Sega 32X game/demoscene BASIC environment.
This version adds the new unified sound system:
LOADSOUND, PLAYSOUND, LOOPSOUND, STOPSOUND, and SETVOLUME.
Audio can now use high-quality PCM16 or compressed 4-bit IMA ADPCM, with automatic premastering to make music and sound effects work better with the 32X PWM audio hardware.
Together with the existing graphics, PNG/JPG image loading, PUTIMAGE/PUTSUB, controller input, double buffering, math, strings, arrays, and ROM generation, Orbis Basic 32x can now be used to create complete Sega 32X homebrew games, demos, intro screens, and audio/visual experiments in BASIC.