Page 1 of 1

Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 4:38 am
by tonymichaelhead
Hey everyone, been going steady at learning FPGA/digital design. My dream is to implement the PC-98 on FPGA and port to mister.

So far, I have bought the Nanland Go Board and completed all of the tutorials from the Nanland website. I am just wrapping up the book Designing Video Game Hardware in Verilog and have implemented many of the projects from that book on the Go Board.

Now my question: given that my goal is to implement retro computers on FPGA, where do I go from here? What is the most basic retro PC I could implement for the sake of practice? I imagine I will eventually work up to the PC-88 before taking on the PC-98, but I imagine the even the PC-88 is still out of my reach at my current stage of learning. I would like to implement a basic retro PC that will lay the foundation and be a good step toward implementing the PC-88/98 in the future.

I was also considering doing the nandtotretis course next and porting it to the mister, but having implemented the 16-bit computer from Designing Video Game Hardware in Verilog book, I wonder if it would be better to move straight to an actual retro computer.

As a side note, I'm not opposed to doing something like a 16-bit game console next for the sake of learning, but knowing that I intend to focus on my goal of implementing retro PCs, I thought it might be better to jump to a basic retro PC if there's one reasonably within my skill level.

Thanks in advance for your input!

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 9:32 am
by jimmystones
I don't think we have a good list of missing computer cores yet, but moondandy has been compiling a good list of missing console cores here:

viewtopic.php?t=4902

Consoles can be simpler than computers anyway, as you don't have to deal with tape loading and othe peripheral nonsense, so might be an easier starting point :D

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 1:52 pm
by tonymichaelhead
I should clarify that this would be a stepping stone project for the sake of learning to recreate a retro computer, so if a mister core already exists for it, even better since I can using the existing core as a reference :)

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 2:00 pm
by Malor
The Apple ][ series is extremely simple in physical terms; Wozniak was a literal genius at reducing component count and re-using the 6502 to do everything. The existing ][ core isn't that polished and isn't getting much work; disk writes were only recently done, for instance, and apparently don't work well, being slow and unreliable. Improving that project might be a good next step.

AFAIK, the 6502 is extremely well understood and has multiple re-implementations, so there's probably no point in rebuilding that part of it, unless there's some kind of problem with whatever the core designer chose. But you could probably learn quite a bit by figuring out how to properly emulate floppy reading and writing; it should teach you both some hardware design and how to interact with the larger Mister framework, using possibly the simplest of the common 8-bit computers.

I have no actual experience with FPGA design, however; I'm suggesting this from a 10,000 foot overview. If actual devs contradict me, pay attention to them, not to me.

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 2:03 pm
by akeley
Sinclair ZX81 is a pretty basic and well-documented 8-bit retro computer . Also its counterpart, Acorn Atom. There are MiSTer cores for them already, based on some other projects, you can check them out on the MiSTer Wiki.

Mind you, I only know that they were relatively simple machines from the user viewpoint, but I have no clue whether they would be easy to implement in Verilog - perhaps this kind of simplicity is not always related.

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 5:07 pm
by KremlingKuthroat19
I'm not a PC gaming guy so I can't give you good advice regarding PC cores. However, if you want a low-hanging fruit to get your feet wet, you could attempt to work on the Amiga/Minimig core and bring about CD32/CDTV support. Those are consolized version of those computers. The Minimig core is missing native bin/cue support and CHD support so that'd have to be implemented first. Also, the CD32 has a unique chip called the Akiko chip. If bin/cue support and the Akiko chip were implemented, then the Minimig could have CD32 support and CDTV support since the CD32 is backwards compatible with the CDTV.

Other things could be cartridge support for the Amstrad CPC core so that Amstrad GX4000 games would be playable. The same can be done for the Commodore 64 core to allow for Commodore 64 Games System games.

In the console realm, if you're interested, you could add cassette support to the Astrocade core. There are hundreds of cassettes on that console.

Just a few ideas :)

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 6:06 pm
by bbond007
KremlingKuthroat19 wrote: Fri Jun 17, 2022 5:07 pm Also, the CD32 has a unique chip called the Akiko chip. If bin/cue support and the Akiko chip were implemented, then the Minimig could have CD32 support and CDTV support since the CD32 is backwards compatible with the CDTV.
Looks like akiko was added almost a year ago...

https://github.com/MiSTer-devel/Minimig ... tl/akiko.v

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 6:29 pm
by tonymichaelhead
Thanks for your answers everyone! The suggestion to look at the Apple II or ZX81 answers my question perfectly. Both of those appear to have simple architecture that I think would be a good next step in learning retro computer architecture. With just a handful of modules, the ZX81 looks especially approachable.

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 7:06 pm
by FPGA64
KremlingKuthroat19 wrote: Fri Jun 17, 2022 5:07 pm I'm not a PC gaming guy so I can't give you good advice regarding PC cores. However, if you want a low-hanging fruit to get your feet wet, you could attempt to work on the Amiga/Minimig core and bring about CD32/CDTV support. Those are consolized version of those computers. The Minimig core is missing native bin/cue support and CHD support so that'd have to be implemented first. Also, the CD32 has a unique chip called the Akiko chip. If bin/cue support and the Akiko chip were implemented, then the Minimig could have CD32 support and CDTV support since the CD32 is backwards compatible with the CDTV.

Other things could be cartridge support for the Amstrad CPC core so that Amstrad GX4000 games would be playable. The same can be done for the Commodore 64 core to allow for Commodore 64 Games System games.

In the console realm, if you're interested, you could add cassette support to the Astrocade core. There are hundreds of cassettes on that console.

Just a few ideas :)
Commodore c64 core already supports cartridges

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 7:07 pm
by FPGA64
bbond007 wrote: Fri Jun 17, 2022 6:06 pm
KremlingKuthroat19 wrote: Fri Jun 17, 2022 5:07 pm Also, the CD32 has a unique chip called the Akiko chip. If bin/cue support and the Akiko chip were implemented, then the Minimig could have CD32 support and CDTV support since the CD32 is backwards compatible with the CDTV.
Looks like akiko was added almost a year ago...

https://github.com/MiSTer-devel/Minimig ... tl/akiko.v
That isnt the full Akiko.

Minimig:
- Add Akiko chunk to planar module (Read the readme!)

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Fri Jun 17, 2022 10:16 pm
by dshadoff
tonymichaelhead wrote: Fri Jun 17, 2022 4:38 am Now my question: given that my goal is to implement retro computers on FPGA, where do I go from here? What is the most basic retro PC I could implement for the sake of practice? I imagine I will eventually work up to the PC-88 before taking on the PC-98, but I imagine the even the PC-88 is still out of my reach at my current stage of learning. I would like to implement a basic retro PC that will lay the foundation and be a good step toward implementing the PC-88/98 in the future.

I was also considering doing the nandtotretis course next and porting it to the mister, but having implemented the 16-bit computer from Designing Video Game Hardware in Verilog book, I wonder if it would be better to move straight to an actual retro computer.
My advice is to look at the existing cores and see if you can find some missing feature or something that's not working correctly, and implement it.

It's a good idea to do whatever coursework/training that you think will be helpful, but fundamentally this will be more effective and easier to absorb if you have a concrete goal, and work toward that.

Also, a small goal - an individual function/feature or bugfix - is an appropriate step between coursework and a full-blown core. There are lots of little things to learn along the way, like:
- how to use the framework and how it is constructed (piece by piece)
- the necessary components to a system
- how other people have arranged the logic in their cores
...and so on.

One of the tasks which needs to be done from time to time, is to update the framework in other cores (for example, arcade cores); you can learn a lot from this, even though it is a seemingly straightforward and repetitive task (you'd be surprised).

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Sat Jun 18, 2022 8:29 am
by jimmystones
I concur with dshadoff - my way into core dev was:
- High score save/load support for arcade cores - touches a very small part of each but got me used to the framework with massive help from alanswx
- Framework updates and little bug fixes on arcade cores
- Port a core from another board (Dottori-Kun by Furrtek in my case, a super simple arcade core)
- Write my own custom 8-bit core from scratch (the MiSTer Input Test core)
- Finally create an arcade core of my own (Blockade, also super simple)

If I'd tried to tackle an entire core all at once at first it would have overloaded my brain and I don't think I'd have stuck with it to be honest!

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Wed Jun 22, 2022 11:27 pm
by nico24
I'd look at the Apple I core, that is nice and simple.

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Thu Jun 23, 2022 2:10 pm
by tonymichaelhead
nico24 wrote: Wed Jun 22, 2022 11:27 pm I'd look at the Apple I core, that is nice and simple.
Beautiful, right to the heart of my question. Taking a look at the Apple I core right now and it does seem like reasonable next step for me. Thanks!

Re: Good "beginner" retro computer to implement on FPGA?

Posted: Sat Jun 25, 2022 6:30 pm
by Moondandy
There is also an Acorn System 1 unofficial MiSTer core that could be cleaned up or rewritten to work properly on MiSTer, it is a very simple (but historically significant) machine.

https://github.com/davewoo999/Acorn_System1_MiSTer