Jinix Jupiter v0.1-alpha — first public release of my custom 32-bit FPGA console/computer architecture
▲ 13 r/FPGA

Jinix Jupiter v0.1-alpha — first public release of my custom 32-bit FPGA console/computer architecture

I’ve reached the point where I’m comfortable publishing the first developer release of a project I’ve been working on called Jinix Jupiter.

Jupiter is an original FPGA-based computer/console architecture rather than a recreation of an existing system. I’ve been developing and physically bringing it up on a SuperStation One, and v0.1-alpha is now available as the first public developer preview.

The current architecture includes:

  • Custom 32-bit CPU
  • SDRAM interface
  • Shared-memory/DMA arbitration
  • 2D graphics renderer
  • Fixed-function 3D hardware under development
  • Four-voice PCM audio
  • Controller interface
  • Minimal BIOS
  • Custom assembler
  • System-image/build tooling

For this release I wanted to avoid simply saying “it synthesizes, ship it,” so I went through a fairly strict release-validation process.

The exact committed release candidate was run through the full simulation suite, followed by a clean Quartus build using a pinned Quartus 17.0.2 environment. The resulting release RBF was then copied to the target media and physically smoke-tested on the FPGA hardware.

The public RBF successfully:

  • boots on the target hardware;
  • establishes HDMI output; and
  • produces visible 2D graphics output.

The exact public binary was also downloaded back from the GitHub Release after publication and verified byte-for-byte against the validated release candidate.

There are a couple of important limitations that I’m deliberately documenting rather than hiding.

3D is not currently claimed as physically working. The fixed-function 3D path exists and has been exercised in simulation, but physical testing exposed an implementation-sensitive failure that I haven’t reduced to a proven root cause yet. I’ve paused that investigation at a reproducible diagnostic point rather than continuing to change things immediately before the public release.

Timing is also not being claimed as fully signed off. The constrained worst-case timing checks from the release build had non-negative slack, but TimeQuest reports that setup/hold coverage is not fully constrained. So I’m treating the timing status as:

PASS_WITH_PARTIAL_CONSTRAINT_COVERAGE

rather than calling the design fully timing-closed.

The release artifact is:

JinixJupiter_v0.1-alpha.rbf

SHA-256:

de5094dbd9da362e54f35627a7cbbc128e20144e1904fb685f41a38091076a4b

Size:

2,926,564 bytes

Release:

https://github.com/austinbland1/jinix_jupiter/releases/tag/v0.1-alpha

Repository:

https://github.com/austinbland1/jinix_jupiter

This is still very much an alpha developer platform, but it’s now at the point where there is a defined CPU, graphics/audio hardware, software toolchain, reproducible release artifact, and an actual public hardware-tested build.

I’d be particularly interested in feedback from people who have worked on:

  • custom soft CPUs;
  • SDRAM controllers;
  • FPGA video pipelines;
  • arbitration between CPU/DMA/graphics clients;
  • timing-constraint coverage;
  • or debugging designs that simulate correctly but become implementation-sensitive on physical hardware.

This version is mostly about establishing a solid public baseline. Now that v0.1-alpha is frozen, I can go back to breaking things again.

Verified video output over HDMI from a SuperStation one running the RBF

reddit.com
u/Mean_Assistance_5498 — 4 days ago

Jinix Jupiter v0.1-alpha — first public developer release of my custom FPGA console/platform

I’ve finally reached the point where I’m comfortable putting out the first public developer release of Jinix Jupiter, a custom FPGA-based console/platform I’ve been building for the SuperStation One.

v0.1-alpha is now public.

This is very much a developer preview rather than a finished console, but the currently working hardware stack includes:

  • Custom 32-bit CPU
  • SDRAM interface
  • 2D graphics renderer
  • DMA/shared memory arbitration
  • Four-voice PCM audio
  • Controller interface
  • Minimal BIOS
  • Assembler/devkit tooling
  • System-image build tools

I also did a fresh full simulation pass and a clean Quartus build from the actual release commit, followed by a physical smoke test of the exact release RBF on real hardware. The release image successfully boots and produces working 2D video output.

Current major limitation: 3D is not considered physically working yet. The fixed-function 3D path exists and has been simulation-tested, but there is still a hardware-side issue I’m investigating, so I’m deliberately not claiming 3D support in this release.

Timing also isn’t being presented as fully signed off: all of the constrained worst-case timing checks reported non-negative slack, but TimeQuest still reports incomplete setup/hold constraint coverage.

The release is therefore intentionally labeled:

Jinix Jupiter v0.1-alpha — First Public Developer Preview

The downloadable RBF is:

JinixJupiter_v0.1-alpha.rbf

SHA-256:

de5094dbd9da362e54f35627a7cbbc128e20144e1904fb685f41a38091076a4b

GitHub/release:

https://github.com/austinbland1/jinix_jupiter/releases/tag/v0.1-alpha

I’d especially be interested in feedback from people here who have worked on homebrew FPGA machines, custom CPU architectures, or FPGA graphics pipelines. There’s still a lot to do, but this is the first point where someone besides me can actually grab a defined release and start poking at it.

The attached image is a screenshot from my HDMI capture card of my SuperStation one running the JinixJupiter_v0.1-alpha.rbf. No games have been made yet sadly, I've been too busy doing hardware validation for that this past week.

u/Mean_Assistance_5498 — 4 days ago

I finished a new MiSTer-targeted FPGA fantasy console with its own 32-bit CPU — anyone interested in seeing if Doom can be ported to it?

I’ve been developing a new FPGA fantasy console called Jinix Jupiter, targeting MiSTer / SuperStation One hardware.

I just reached the end of the original development roadmap and tagged the first stable architecture as m11-verified.

Jupiter currently has:

  • a custom 32-bit CPU and ISA
  • its own assembler and BIOS/application image-building tools
  • external SDRAM support
  • DMA
  • hardware 2D graphics
  • a fixed-function 3D triangle renderer
  • RGB565 framebuffer scanout
  • PCM audio
  • MiSTer controller input
  • a MiSTer-facing FPGA top-level integration

The full automated simulation regression suite passes, and I’m treating m11-verified as a frozen reference point.

Important caveat: it has not been validated on physical MiSTer hardware yet. I didn’t have Quartus available during development, so I’m not claiming successful synthesis, timing closure, resource utilization, or a working .rbf yet.

The software environment is also intentionally primitive right now. There is a Jupiter assembler and deterministic BIOS/application image builder, but there is currently no C compiler, C runtime, conventional linker, or runtime game-loading system.

Which brings me to the fun part:

Could Doom be ported to this thing?

I’d love for someone familiar with Doom ports, unusual CPU targets, GCC/LLVM backends, or FPGA consoles to take a look at Jupiter and tell me what would actually be required.

I’m not necessarily expecting somebody to magically have Doom running tomorrow. Even an architectural audit like:

>

would be incredibly useful.

If anybody is crazy enough to actually attempt a port, please fork the repository and target m11-verified so there is a stable machine definition to work against.

Repository: https://github.com/austinbland1/jinix_jupiter/

Stable release target: m11-verified

I’m also beginning physical MiSTer bring-up separately, so feedback from people experienced with Quartus/MiSTer core development would be very welcome.

Basically: I built a new FPGA video game console. Now I want to find out whether it can run Doom.

u/Mean_Assistance_5498 — 10 days ago

Check these guys out (Norfair – Sirens and Monuments)

I mean they strike this really good balance between the mall screamo type of sound and emoviolence and I wound up enjoying it quite a bit. Pretty unknown band too, and this is FRESH coming out only a few weeks ago. It starts kinda rough but it gets better as the album goes on and it closes very strong.

Dare I say this is a 4/5 album imo and that's from the first listen.

music.youtube.com
u/Mean_Assistance_5498 — 1 month ago

Wanna Make A Battle Jacket, How Do I Not Wind Up Here?

What I mean is that I found this set of patches on Etsy for $20, and I think they are made by an independent seller (not Amazon/Temu slop) and it features a TON of bands I actually really like so it would be fitting, since I listen to this music on a daily basis. Paired with a decent leather jacket, would this be legitimate? This would just be the start, as it doesn't include any of the black metal, brutal death metal (and regular death metal too) and post-hardcore bands I enjoy and connect with.

If you are curious as to what I am into, feel free to ask.

u/Mean_Assistance_5498 — 2 months ago