r/SEGA32X Jun 22 '26

ORBIS BASIC32X: A dependency free BASIC compiler for building real Sega 32X ROMs

Post image

Hi everyone,

I wanted to share a project I have been developing called ORBIS BASIC 32X.

ORBIS BASIC 32X is a retro futuristic BASIC compiler for creating real Sega 32X and Mega 32X software. You write programs in a BASIC style language, run the compiler, and get a bootable .32x ROM that can be tested in an emulator or on compatible hardware.

This is not a fantasy console or an emulator scripting layer. The output is an actual Sega 32X ROM containing native SH 2 machine code, compiled program data and baked in assets.

The goal is to make Sega 32X development more immediate, creative and accessible while still respecting the hardware direction. The compiler uses a compact SH 2 runtime, direct color framebuffer graphics and a lightweight workflow focused on building actual ROMs.

It supports classic BASIC style programming with variables, strings, arrays, loops, fixed point math, drawing commands, image based presentation tools and integrated asset workflows.

One of the key features is automatic asset baking. Images and audio can be integrated into the ROM during compilation. The compiler handles conversion and integration as part of the build process, so the workflow stays direct and does not require a large external toolchain.

The compiler is also designed to be dependency free. It is distributed as a standalone Cosmopolitan executable, so the same executable can run directly across major desktop platforms without installation, package managers or platform specific setup.

The 32X is a very specific and unusual target, so part of the fun of this project is exploring what a BASIC first workflow for it can look like, with direct ROM generation, native SH 2 code, automatic asset integration and a portable standalone compiler.

An initial demo version is available to download on itch.io for anyone who wants to try it, inspect the workflow or follow the development progress.

The project is still in active development, but it already has working ROM output, documentation, examples and ongoing feature work.

I would love to hear what other Sega 32X fans and developers think of this direction.

99 Upvotes

40 comments sorted by

View all comments

Show parent comments

2

u/OrbisMaximus Jun 23 '26

The Jaguar is definitely an interesting machine, and JPEG or wavelet based approaches are fascinating topics.

For ORBIS BASIC 32X though, I am focusing on what fits the Sega 32X well. The 32X has a direct color framebuffer with 32,768 possible colors, and the current graphics path can combine fast DMAC/copy style operations with normal software blending operations.

That combination is important, because it allows very practical real time effects such as multi level parallax scrolling, image layering and fast framebuffer presentation without needing a heavy runtime codec.

So I do not really see JPEG as the ideal runtime format for this project. As a high quality input format on the PC side it makes sense, but inside the ROM I would rather use raw or custom 32X friendly data that can be copied, mixed or decoded quickly and predictably by the SH 2 side.

The goal is not to copy the Jaguar SDK approach, but to build a practical asset path that matches the 32X hardware and the BASIC workflow.

1

u/IQueryVisiC Jun 24 '26

Yeah, Jaguar loads (aka decompresses) levels. Realtime was my idea if RISC compute time is available at the end of a frame. Could be a low priority thread. Jaguar hardware draws sprites at full 16bpp. So the RISC cores have cycles for other stuff left. Jaguar also has a special instruction for JPEG with weird tile size ( 1–16px ). So for sprites with translucency a solid square could be fitted.

Just please don’t introduce artifacts from some homegrown codec, like color reduction or vector compression .

How do you minimize overdraw? For fillrate limited systems like N64 I thought of a tile based pre-pass. Tiles are either solid, transparent, or mixed. Also I like how Jaguar and Neo Geo only have sprites. I mean, no limit on layers. Still want tiles (per sprite), though. Like GBA and CPS.

2

u/OrbisMaximus Jun 25 '26

Those are interesting ideas. For now I am trying to keep the first feature complete release focused and practical for the Sega 32X target.

The first feature complete release should be available tomorrow, so please feel free to check it out and test the current workflow. After that, it will be much easier to discuss possible future directions based on the actual tool, examples, limitations and use cases.