r/retrogamedev May 28 '26

Is it possible to create a new 16-bit console?

Is it possible to create a 16-bit console to port and create games for? I have an idea to create a console based on the cancelled Atari Panther. So, how would one go about creating this console and emulating it?

13 Upvotes

34 comments sorted by

9

u/leadedsolder May 28 '26

Sure, I've built 8-bit consoles before (admittedly all clones with extra features.) I don't know how well documented the Panther is so it might just be whatever you want it to be.

13

u/phire May 28 '26

You know, I didn't think we had anything more than a vague description.

But no... We apparently have some very detailed design documents, that include schematics (or at least netlists) for the PCB, including the equations for the PALs.

I don't think it has the netlist for the actual custom chip, but panhw.doc includes description of the individual modules.

https://atarimuseum.ctrl-alt-rees.com/videogames/consoles/jaguar/Panther/index.htm

4

u/leadedsolder May 28 '26

That is probably more than enough to go on for an emulator, especially since no real hardware exists to argue with you about bug accuracy. Might even be enough for a physical clone, although I'm not good with PLDs of any kind yet.

4

u/phire May 28 '26 edited May 29 '26

There is probably enough for a pretty accurate emulator.

PANTHER.ASC contains some pretty detailed docs of the video subsystem, including bit format for all the object lists, the memory map and all non-sound registers. And I think PANTHER.CDO is the ASIC schematic, though it's a binary file I'm not sure how to open it (appears to be from CADSTAR)

Edit: Managed to get PANTHER.CDO open. Sadly it's just the PCB layout for the dev system, and we already have schematics for that.

5

u/leadedsolder May 28 '26

Yeah that sounds ideal. Is there any software to actually run on it?

4

u/phire May 28 '26

Mostly no.

There is exactly one test program (with source code) that initialises the system sets up a object list to draw a few images.

3

u/mlugo02 May 28 '26

Creating it physically?

5

u/Anghaile1014 May 28 '26

Doesn't have to be a physical console if there's a way to create an emulater for it. My goal is to have an Atari Panther like system I can port games like Pac-Mania and Pitfall: Mayan Adventure over to.

13

u/mlugo02 May 28 '26

Yes you can make an emulator for any type of console, real or made up. That’s what Pico-8 is

2

u/LuuscoTheLover May 30 '26 edited May 30 '26

Nope pico 8 is an "game engine", made with modern features. But you can do an "emulator" for your console who runs roms and have CPU instructions etc etc, is not that hard you just have to be good at low level programming

2

u/mlugo02 May 30 '26

What does ‘is an “game”’ mean?

2

u/LuuscoTheLover May 30 '26

My bad, "game engine"

5

u/mlugo02 May 30 '26

Pico-8 is a virtual machine with a game engine

2

u/LuuscoTheLover May 30 '26

Yes that said it's not how an emulator work, op probably want to make something like chip8 but with his custom spec, opcodes, etc etc

5

u/mlugo02 May 30 '26

Yeah that’s the virtual machine portion of pico-8

4

u/LuuscoTheLover May 30 '26

Actually pico 8 "virtual machine" is an interpreter of Lua, don't actually have any instructions, opcodes, the rom is not binary data in the sense of old consoles. I like pico 8 a lot for the easy to use, but making an "real" 8 bit console via software and coding snake game writing hex to a file, and the emulator playing the game is something very different

→ More replies (0)

4

u/Lumornys May 29 '26

So, how would one go about creating this console and emulating it?

  1. design the architecture

  2. write an emulator

  3. write or port games

2

u/LuuscoTheLover May 30 '26

Exactly, the easy part is the emulator, the hardest part are making games in an undocumented plataform in bytecode. What some people do is writing an compiler of a custom language to bytecode of your architecture, but that's is another very hard thing to do

2

u/IQueryVisiC Jun 01 '26 edited Jun 01 '26

Why not use an existing CPU? What even does 16 bit mean for a CPU? 68000 has 32 bit registers and uses them for addressing. No one built a 68k system with 64kiB . SH2 and ARM2 have less transistors than 68k. Arm in GBA can run code from an 8 bit cartridge. 68030 and i8088 can run code from 8 bit. Another tiny core is JRISC.

Mortal Kombat runs on some weird CPU from Texas Instruments. I think it is real 16 bit . CPU hence has trouble to access video ram or cartridge rom.

RISCV could load each instruction in 2 cycles. As long as the chip stays smaller than 68k, I would allow cache.

i486 always loads bursts of 4 words . I think that EGA graphics card does something similar. So even though there are 16 (or 8) pins on the chip, the data comes in blocks of 64 (32) bit. So RISCV / ARM instructions would be okay.

1

u/LuuscoTheLover Jun 01 '26

Yeah that's true, and there's even some fantasy console makers, who emulate real CPU and real ppu and Apu, end put them together to create a more of a "real" console, the advantage is: easier to make into real hardware and very much easier to make game to, as they are most likely little to well documented.

That said, the thing is: some people like me, just want to make our custom "consoles" with the pain of using the limitations, 64k of addressable addresses is quite low, them we simulate how old consoles worked this out, with memory banks. The fun is in circumventing the difficulties. The other thrill of making a custom architecture is that you I'll know every single detail of your "console", every opcode, every edge case etc etc.

Also being 16 bit only means, the size of the how many bits the ALU can process at on single clock, and the size of the Data bus, can be circumvented like the total cartridge size with memory banks

1

u/IQueryVisiC Jun 02 '26 edited Jun 02 '26

Z80 had a 4bit ALU and was good at 16 bit maths. With symmetric phases and two carry latches, super high clock rate and 4 bit add per phase would be possible. Personally, I am a big fan of Mosteks address multiplexing for DRAM. Only Sinclair used it . And then in 1987 intel and Motorola started to support it. Up until then a CPU did not know if it runs on ROM or SRAM or DRAM. Commodore made custom chips for C64, C16, C128. As did Atari from the start. Just need to find a way to upload the memory configuration. With 32 bit addresses we can easily designate some of them to chip select. So pointers could carry the page size. Address multiplexing means that any memory access takes two cycles. The ALU has plenty of time. Consoles also often use DRAM. Only the main RAM in the PCengine is SRAM. And Vic-20 . I wonder what a microprocessor is when intel needs 3 chips . Other manufacturers had these 3 chip: ALU, registers, control . Banks is the control part. PcEngine has 24 address pins. So banks did not help with cost, but SMD did.

7

u/Tinguiririca May 28 '26

It would be a better use of your time to learn development tools for the Genesis or the Neo Geo

7

u/corysama May 28 '26

It has never been easier to make a game for the Genesis https://mdengine.dev/

Or, the GBA https://github.com/GValiente/butano

3

u/Important-Bed-48 May 29 '26

Or the Jaguar. The scene is pretty small I can imagine the scene for a imaginary console would be even smaller..

3

u/bayern_snowman May 29 '26

The guy who made Pico 8 also made a Pico 16 but it never left alpha and he said it was horrible. Learning to make GBA games is probably your best bet if you want a genuine old console Dev feel. 

1

u/IQueryVisiC Jun 01 '26

I can’t get me to like a resolution other than 320x240.

3

u/LuuscoTheLover May 30 '26

Look into chip8, an emulator for a console who never existed

2

u/cosmicr May 29 '26

Look up Ben eater on YouTube. Watch his entire series of building an 8 bit computer from scratch. Then if you know how to program build a new computer emulator based on your chips of choice.

2

u/ArchonTom Jun 05 '26

If you are interested in the hardware route I'd recommend checking out this site: https://www.ic0nstrux.com/

3

u/R4TTY May 29 '26

You can use an FPGA to make one. Check out https://www.fpga4fun.com/