MARC-4 rev.d Gaming SBC

Topics related to the SBC- series of printed circuit boards, designed by Daryl Rictor and popular with many 6502.org visitors.
Post Reply
lordbubsy
Posts: 207
Joined: 11 Sep 2013
Location: The Netherlands

MARC-4 rev.d Gaming SBC

Post by lordbubsy »

01 20191103_121916.jpg
02 20191103_114540.jpg
03 20191103_114923.jpg
04 300front.jpg
05 1.png
06 20181220_210428.jpg
07 20191103_113904.jpg
08 20191103_113945.jpg
09 20191103_114100.jpg
10 20181220_193358.jpg
11 20181220_210128.jpg
12 20181122_124636.jpg
13 20181122_122301.jpg
Last edited by lordbubsy on Wed Apr 01, 2020 9:20 am, edited 1 time in total.
Marco
lordbubsy
Posts: 207
Joined: 11 Sep 2013
Location: The Netherlands

Re: MARC-4 rev.d gaming SBC

Post by lordbubsy »

OK folks, I hope I have a project here to distract you from reality. :P

Ten years ago I started gaining up on electronics and joined Forum64. Seven years ago I joined this forum with the intention of creating my own (gaming) computer with hopefully better specifications than the Commodore 64.

After various attempts creating a working gaming computer, with mixed results, I stopped etching my own PCB’s and started using a PCB manufacturer. First I made some smaller PCB’s, mainly for the Commodore 64 to gather some experience.

Using the standard capabilities of ALLPCB, and currently JLCPCB: 2-layer, 12mil drill for vias, 7mil traces opened a whole new world for me. So I went on and designed a SBC with everything on one PCB. Send it off and got a big white PCB in return. It was a joy to solder and except for some bodge wires it worked first time. MARC-4 rev.d is my current revision with a second VIA and an FPGASID.

MARC-4 is now running at 8, 4, 2 or 1MHz variable speed. CPU, RAM, VIA, SPI and DUART do run at 10MHz. but I’ve settled for a maximum of 8MHz to accommodate the other needed frequencies.

As video and sound are mostly the most time critical components on our beloved 8-bit computers, I’m using two FPGA solutions, the F18A and the FPGASID. I went for clock stretching and speed manual alterations using software. For video I have to set the clock speed to 4MHz and for sound I have to set the clock speed to 2MHz. This is done with bits 0 and 1 in register $BFFF. The 500kHz for MIDI was also easily available from the 8MHz. Bits 2 in register $BFFF alters the location of the FPGASID to the Commodore 64’s location $D400. This way I can play SID music from the C64 on MARC-4. Bits 3 and 4 in register $BFFF controls the Power LED and the SHIFT LOCK LED.

My design goals and restrictions are: 5V components, DC-DC converter where needed, through hole technology, using a CPLD for logic, ROMless, and as I mentioned, it has to be a gaming computer.

MARC-4 has the following features [IC’s]:
• 8/16-bit CPU, 1-8MHz Clock [W65C816S]
• 1MiB RAM [2 X AS 6C4008-55PCN]
• 16KiB ROM [ATMEGA 1284P-PU]
• LOGIC: [Xilinx XC95108-7PC84C]
• VIA: [2 X W65C22S]
• DUART: [SC26C92]
• 65SPI: [XC9572PC44] by Daryl Rictor
• F18A: FPGA based TMS9918A by Matthew Hagerty
• FPGASID: FPGA based dual SID by Andreas Beermann
• Roland CM-300: GM/GS MIDI sound module
• Mechanical keyboard
• Joystick port
• Paddle port
• TTL serial port
• Roland compatible MIDI in/out ports
• SPI Real Time Clock with Temperature sensor [DS3234]
• SPI to IDE-Compact Flash interface by Daryl Rictor
• 6 free SPI ports
• Two expansion ports


With 16-bit instructions, 8MHz and 1MiB RAM, this has become a real dream gaming computer. It has 60Hz raster interrupt synced to the display which allows a lot of things to change in one frame. The joystick interface has two buttons like the AMIGA instead of one. It’s also possible to connect two paddles to the FPGASID, which have no jitter like on the Commodore 64. The FPGASID has 6 voices (stereo) instead of 3 voices (mono). The MIDI interface provides for MIDI music by connecting any multi timbral MIDI synthesizer. One downside is that the MIDI interface is just UART based, it’s not an intelligent MIDI interface, which means that the amount of notes may not be too dense / complex.

The keyboard and its interface was a lot of work and I’m pretty proud of how it turned out. It’s a mechanical keyboard and I removed the controller chip from it. I figured out the scan matrix and made a new controller with an AVR. It uses only one VIA port with hardware handshake. Its software debounced and receives 8-bit make and break scan codes via an interrupt routine.

I tested every interface on MARC-4 except for MIDI-in. I have a lot of test routines, EH-BASIC and an ML monitor, but that’s all.
Marco
rwiker
Posts: 294
Joined: 03 Mar 2011

Re: MARC-4 rev.d Gaming SBC

Post by rwiker »

That's absolutely beautiful!
User avatar
GARTHWILSON
Forum Moderator
Posts: 8773
Joined: 30 Aug 2002
Location: Southern California
Contact:

Re: MARC-4 rev.d Gaming SBC

Post by GARTHWILSON »

Nice packaging is quite a challenge, and to have done such a nice job is quite an accomplishment.
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: MARC-4 rev.d Gaming SBC

Post by BigDumbDinosaur »

GARTHWILSON wrote:
Nice packaging is quite a challenge, and to have done such a nice job is quite an accomplishment.
All the more impressive considering the serious medical problems Marco has had to grapple with in the last several years.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
BigDumbDinosaur
Posts: 9425
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Re: MARC-4 rev.d gaming SBC

Post by BigDumbDinosaur »

lordbubsy wrote:
OK folks, I hope I have a project here to distract you from reality. :P
In a word: fabulous! Glad to read you're feeling well enough to get back on your projects.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
lordbubsy
Posts: 207
Joined: 11 Sep 2013
Location: The Netherlands

Re: MARC-4 rev.d Gaming SBC

Post by lordbubsy »

Thanks for the nice compliments. I finished this project a while back. Programing for it would be a logical next step, but I also feel the urge to simplify and improve on the hardware.
Marco
User avatar
8BIT
Posts: 1787
Joined: 30 Aug 2002
Location: Sacramento, CA
Contact:

Re: MARC-4 rev.d Gaming SBC

Post by 8BIT »

That looks really cool Marco - nice job!

Daryl
Please visit my website -> https://sbc.rictor.org/
Aslak3
Posts: 258
Joined: 05 Aug 2013
Location: Southampton, UK
Contact:

Re: MARC-4 rev.d Gaming SBC

Post by Aslak3 »

Hello Marco,

This is awesome! One question: did you write the code in the keyboard controller? Would love to compare notes on my controller. Very, very impressed that you reverse engineered the keyboard connections as well.

My keyboard controller: https://github.com/aslak3/keyboardcontroller

Lawrence
8 bit fun and games: https://www.aslak.net/
lordbubsy
Posts: 207
Joined: 11 Sep 2013
Location: The Netherlands

Re: MARC-4 rev.d Gaming SBC

Post by lordbubsy »

Hi Lawrence,

Yes, I’ve written the AVR code in ATMEL Studio. Every 1/100 of a second the routine scans the matrix. It provides a press scan code or a release scan code. It generates an interrupt for the VIA on key changes.

I think the code is not very nice, but it works for me. :)
keyboard24.c
(9.34 KiB) Downloaded 175 times
Marco
Suk
Posts: 7
Joined: 03 May 2020

Re: MARC-4 rev.d Gaming SBC

Post by Suk »

The wooden end plates remind me of the Minimoog. Very very nice work.
Post Reply