Good "beginner" retro computer to implement on FPGA?

Discussion of developmental aspects of the MiSTer Project.
tonymichaelhead
Posts: 8
Joined: Fri Jun 17, 2022 4:22 am
Has thanked: 11 times
Been thanked: 1 time

Good "beginner" retro computer to implement on FPGA?

Unread post 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!
User avatar
jimmystones
Core Developer
Posts: 216
Joined: Sun Nov 22, 2020 1:26 pm
Location: Reading, UK
Has thanked: 32 times
Been thanked: 248 times
Contact:

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

Unread post 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
tonymichaelhead
Posts: 8
Joined: Fri Jun 17, 2022 4:22 am
Has thanked: 11 times
Been thanked: 1 time

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

Unread post 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 :)
Malor
Top Contributor
Posts: 860
Joined: Wed Feb 09, 2022 11:50 pm
Has thanked: 64 times
Been thanked: 194 times

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

Unread post 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.
akeley
Top Contributor
Posts: 1303
Joined: Mon May 25, 2020 7:54 pm
Has thanked: 416 times
Been thanked: 399 times

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

Unread post 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.
KremlingKuthroat19
Posts: 237
Joined: Sat Aug 22, 2020 3:08 am
Has thanked: 27 times
Been thanked: 49 times

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

Unread post 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 :)
bbond007
Top Contributor
Posts: 519
Joined: Tue May 26, 2020 5:06 am
Has thanked: 85 times
Been thanked: 198 times

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

Unread post 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
tonymichaelhead
Posts: 8
Joined: Fri Jun 17, 2022 4:22 am
Has thanked: 11 times
Been thanked: 1 time

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

Unread post 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.
FPGA64
Top Contributor
Posts: 750
Joined: Mon Mar 01, 2021 3:10 pm
Has thanked: 44 times
Been thanked: 325 times

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

Unread post 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
FPGA64
Top Contributor
Posts: 750
Joined: Mon Mar 01, 2021 3:10 pm
Has thanked: 44 times
Been thanked: 325 times

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

Unread post 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!)
dshadoff
Core Developer
Posts: 534
Joined: Sun May 24, 2020 9:30 pm
Has thanked: 19 times
Been thanked: 141 times

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

Unread post 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).
User avatar
jimmystones
Core Developer
Posts: 216
Joined: Sun Nov 22, 2020 1:26 pm
Location: Reading, UK
Has thanked: 32 times
Been thanked: 248 times
Contact:

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

Unread post 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!
nico24
Core Developer
Posts: 93
Joined: Mon May 25, 2020 12:18 am
Has thanked: 43 times
Been thanked: 83 times

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

Unread post by nico24 »

I'd look at the Apple I core, that is nice and simple.
tonymichaelhead
Posts: 8
Joined: Fri Jun 17, 2022 4:22 am
Has thanked: 11 times
Been thanked: 1 time

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

Unread post 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!
User avatar
Moondandy
Top Contributor
Posts: 535
Joined: Mon May 25, 2020 2:14 am
Location: Edinburgh, Scotland
Has thanked: 32 times
Been thanked: 97 times

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

Unread post 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
Post Reply