Good "beginner" retro computer to implement on FPGA?
-
- 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?
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!
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!
- jimmystones
- Core Developer
- Posts: 218
- Joined: Sun Nov 22, 2020 1:26 pm
- Location: Reading, UK
- Has thanked: 32 times
- Been thanked: 251 times
- Contact:
Re: Good "beginner" retro computer to implement on FPGA?
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
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
-
- 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?
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
-
- Top Contributor
- Posts: 860
- Joined: Wed Feb 09, 2022 11:50 pm
- Has thanked: 64 times
- Been thanked: 195 times
Re: Good "beginner" retro computer to implement on FPGA?
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.
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.
-
- Top Contributor
- Posts: 1441
- Joined: Mon May 25, 2020 7:54 pm
- Has thanked: 497 times
- Been thanked: 467 times
Re: Good "beginner" retro computer to implement on FPGA?
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.
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.
CRT SCR$ Project - building a collection of high-quality photos of CRT displays
CRT ART Books - retro-gaming books with authentic CRT photos
-
- Posts: 237
- Joined: Sat Aug 22, 2020 3:08 am
- Has thanked: 27 times
- Been thanked: 50 times
Re: Good "beginner" retro computer to implement on FPGA?
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
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
-
- Top Contributor
- Posts: 531
- Joined: Tue May 26, 2020 5:06 am
- Has thanked: 87 times
- Been thanked: 211 times
Re: Good "beginner" retro computer to implement on FPGA?
Looks like akiko was added almost a year ago...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.
https://github.com/MiSTer-devel/Minimig ... tl/akiko.v
-
- 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?
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.
-
- Top Contributor
- Posts: 939
- Joined: Mon Mar 01, 2021 3:10 pm
- Has thanked: 49 times
- Been thanked: 375 times
Re: Good "beginner" retro computer to implement on FPGA?
Commodore c64 core already supports cartridgesKremlingKuthroat19 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
-
- Top Contributor
- Posts: 939
- Joined: Mon Mar 01, 2021 3:10 pm
- Has thanked: 49 times
- Been thanked: 375 times
Re: Good "beginner" retro computer to implement on FPGA?
That isnt the full Akiko.bbond007 wrote: ↑Fri Jun 17, 2022 6:06 pmLooks like akiko was added almost a year ago...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.
https://github.com/MiSTer-devel/Minimig ... tl/akiko.v
Minimig:
- Add Akiko chunk to planar module (Read the readme!)
-
- Core Developer
- Posts: 547
- Joined: Sun May 24, 2020 9:30 pm
- Has thanked: 20 times
- Been thanked: 145 times
Re: Good "beginner" retro computer to implement on FPGA?
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.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.
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).
- jimmystones
- Core Developer
- Posts: 218
- Joined: Sun Nov 22, 2020 1:26 pm
- Location: Reading, UK
- Has thanked: 32 times
- Been thanked: 251 times
- Contact:
Re: Good "beginner" retro computer to implement on FPGA?
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!
- 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!
-
- 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?
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!
- Moondandy
- Top Contributor
- Posts: 535
- Joined: Mon May 25, 2020 2:14 am
- Location: Edinburgh, Scotland
- Has thanked: 32 times
- Been thanked: 102 times
Re: Good "beginner" retro computer to implement on FPGA?
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
https://github.com/davewoo999/Acorn_System1_MiSTer