This site is about recreating gaming hardware from the past
in modern programmable devices, known as FPGAs. Please see the FAQ page
for a more detailed discussion and commonly asked questions.
The latest varients of the Opencores T65 and T80 cpu cores can be found on the Library page.
On the Parts page, you can buy modules that drop into old arcade
boards and replace Namco / Konami / Commodore 64 custom ICs as well as standard TTL chips. The rest of the site contains code
for a number of classic games / systems that can be run on off the shelf
FPGA boards. A JAMMA board is in development.
(You will need to remove the {no spam} from any email link)
Wednesday, April 3rd 2013
Some pictures of the production process and boards. The boxes have just arrived and everything should be packed
and shipped before the end of the week. Note, the boards have not been cleaned yet.
As the last entry was in May last year, I think some update is in order.
Simply, work went crazy and I moved flat in the summer last year - all of which conspired to push out the Replay board development sadly.
I have got the production process in place now, and 100 boards are being assembled this week. Assuming all goes well, more will follow immediately.
we have also developed a USB interface adapter for the Replay board. This replaces the PS2 connector and adds low latency keyboard / mouse USB support
directly into the FPGA. This can be back-fitted to existing boards, and will be available as an option on new ones.
Well, I said I would not update this "old" version of the site any more, but as I haven't had
time to bring up the nice new one yet completely, one more update is necessary.
The Replay boards have now obtained FCC and CE approval and are starting to ship, however in small quantities.
I have received a complete barrage of email about a chap advertising the board.
We have been in contact for a while and I have been using him as pre-production non-developer beta tester. I agreed that he could put boards in cases and resell them if he wished, but that other distributors may come on line, and the boards would always be available directly from the www.fpgaarcade.com website.
The price for the current boards is 199Euro + VAT for the non-composite/svhs version and 229Euro +VAT with. VAT in Sweden is 25%. I can ship without VAT to companies only in the EU. Everybody who has mailed me and requested a board is still in the queue and will be prioritized over the disti channels!
Producing boards is not a problem, but I do not want to sign off the PO for assembly of the next batch until I am 100% happy. I have about 30 boards which are not stable because the DRAM timing is fixed in the current core - and every chip will have slightly different timing. So, the full validation is being held up until I am totally happy, then we press the button.
The new core looks pretty much the same as before, but a whole lot of infrastructure has changed to support multiple cores and dynamic configuration etc. A number of people are working converting different games or platforms to the board.
It has been a long journey, but we really are reaching the good bit now.
Thank you for your patience
MikeJ
Well, I still haven't got the new website up and running, but testing and shipping of the boards continues.
I'm working through the list of people who have mailed me. I have a new Amiga core up and running based on Jakub's latest work,
but it's not quite ready yet - I'm so busy testing boards.
I also got the IO shields back, they look rather nice :
(The extra holes to the left of the joystick ports are there so I can bolt the panel to the board to improve the EMI shielding.)
Testing is going well, I have most of the boards assembled now.
I am starting to mail people who have already contacted me, and then I will see how many boards are left. I am about to order some more, so there should be plenty available.
The first core to be released will be the Amiga AGA, but there are still some issues with this I am working on.
Ok, not quite the last post in the old website ...
I've just got back from another fantastic Glastonbury Festival, so it's a bit of an effort to do, well, anything this week :)
I built one of the atx_pwr controller boards and it works nicely. Now my board is in it's ITX case, so I can move it
around a bit easier. The FPGAs for the next production run have not arrived yet sadly, I'm chasing them.
The power adapter board is plugged directly into the ATX PSU (Click for a bigger picture)
Normally a connector would be fitted on the controller board and then it could be placed anywhere convenient (Click for a bigger picture)
I've been away for a bit in China sourcing components - so sorry for the lack of updates.
I have the new boards and I am currently setting up the production. It does take some
time, but at least once we are over this we can produce them in volume. The B02 board is pretty much identical to the B01
board, but has been tidied up for production. I've moved the DVI connector a little to make space for the audio jack - which
was a bit tight in the previous board. I've also modified the power circuit so it should always turn off now!
(Click for a bigger picture)
And the backside (Click for a bigger picture)
I had some more of the patch boards as well. These bring out all the IO on the main expansion connector
and have 5V level converters on the back. These are used for wiring up CPUs or custom chips to play with.
(Click for a bigger picture)
Finally this is an adapter board which lets the Replay board be used in an ATX or ITX case. It bridges the power supply and has
a power controller chip so you can use the case button to turn the ATX PSU on (and hopefully off again).
(Click for a bigger picture)
This will hopefully be the last post in this format for this website, the new site is taking shape nicely ....
Prototype board production is continuing. All beta test boards are assembled and these have been shipping
out over the past week or two. I've been in China and should get the production tweaked version as well as the
atx-power control PCB manufactured shortly. The atx-power board connects the power supply in a mini-itx box to the
Replay board, and has a on-off controller so you can use the case power button to power the board up and down.
(Click for a bigger picture)
A couple of videos of the board running. Sorry about the focus and exposure problems, the camera gets a bit confused by the changes in screen brightness.
Some demos:
Short video of it running AGA workbench at 640x480:
Here is a picture of the board in a mini-itx box. It's the smallest case I could find and the Replay board takes up
about 1/3rd. I need to make a small adapter board for the ATX PSU then the board can be powered by the rear 4 pin molex.
The hardware is fully tested now and I'm starting to send out more boards to beta testers.
I'm having a lot of fun playing around with the Amiga core. You can see below it running up 1.3 workbench.
I'm producing a video of it running some demos and behaving as a A1200 with AGA chipset and 68020 processor.
The replacement regulators work well and solve the power off problem.
I've been testing the luma trap response with burst test patterns
generated in the FPGA. The hardware is working well, but I am starting to think the trap may not be worth it for retro-computing.
It softens the edges of the characters a little, but does reduce the colour distortion.
It's easy to not fit the filter if we decide later it is not necessary.
Writing of production test is on going. DRAM is still not fully tested.
I'm still testing the boards. I've had a few issues which have taken quite a lot of time to sort out.
I'm waiting for the replacement regulators still, but I have a minor patch for the board which fixes the power off issue.
The audio is up and running at 24 bit 192 KHz. I had a whole load of problems getting this to work, but it turned out to be a constraint
problem inside the FPGA. The signal quality and noise level look very good.
The composite video output has also given me a lot of trouble. I have spent a lot of time making a good video timing generator and adding
in all the equalisation and synchronisation pulses you need for "correct" PAL/NTSC. Still no picture. I found a minor problem with the output resistors, but
this is easily patched on the boards I have produced already. Still no joy. It turns out the video input on my LG screen is not working for some reason (and the screen is quite new).
The sVHS and video outputs work fine on my Plasma TV. The sVHS output looks quite ok, the composite doesn't look great but that's due to the limitations of the format.
I'll run some multiburst test patterns through it tomorrow to check the luma trap is correct.
The main RGB video outputs and the DVI/HDMI digital output look great. The only thing remaining is the stress testing of the DRAM. I've re-written the
memory controller and added production tests so I can measure the operating margin. It looks like I have a few bugs still but I hope to finish off the testing this week.
A quick update, I appologize for the delay. I've been really busy testing the boards.
No real problems as yet. I'm waiting for a different LDO as the one I am using does not shut down when the input power is turned off,
and the resulting reverse leakage keeps the board partially powered. I have modified one board with a different part which fixes the problem.
One other issue which is a bit more annoying is the audio connector is a bit close to the DVI connector. It works fine with most DVI cables, but some
are a bit fat which means the 3.5mm jack bends. I have mounted the connector at a slight angle which helps...
I'll try and get some pictures and a video up of the board running some Amiga demos in the next few days.
A few more pictures now I've assembled the through hole components.
You can see one board does not have the components on the backside, this is the version without the composite/SVHS output.
The board you can see from the top has the codec and the extra output connector. Note, I've stuck four rubber feet on the bottom over the
mounting holes while I work on them - these are not fitted usually as it will be in a mini-itx case.
Good news, the missing connector which was on 3 month lead time has finally arrived! The components are packed and shipped off to the production people
for the prototype assembly. The paste mask needed for assembly has also arrived, so we are good to go.
Hopefully I will have the first few boards to test late next week.
I was on a short trip to China again last week, and while you are waiting for board updates you can check out my friend Harry's website who has taken some
great pictures from around China.
I'll just sneak in a little update while it is still August :)
Well, late July didn't happen never mind early July. All of Sweden seems to shut down during the summer, and
getting a production slot has proved difficult.
However, we are going ahead now. If the missing connector arrives this
week we could have boards next week, but more likely mid-September.
The exchange rates are all over the place, and until I get the boards in my hand these prices are subject to change.
Full card (with SVHS/Composite out) is looking like 220Euro today.
The "light" card without SVHS/composite is 200Euro.
The bad news is I have to pay sales tax here on the first boards, so that's an additional 25%. I'll include a EU plug power supply for the first 50 boards.
Being totally honest up-front, boards after the first 50 will be at least 25% cheaper and sales tax will be payable on import if you are outside the EU so thats another 25% saved.
The Replay RevB PCBs have been delivered - they are still in China but I am heading over next week and will pick them up.
Hopefully I'll also get the last remaining components needed to build the beast...
The PCB house unfortunately made a mistake with the impedance control on the Replay boards. They have re-made them now and they are on the way to Beijing where
I can rescue them. The Chrontel DACs have also arrived at the distributer and are making their way here. Some other parts I am still waiting for however.
I have been playing with the 68000 I have on a daughter board. I am using Chipscope, a Xilinx soft logic analyser. The idea is to verify the soft-core 68000
against the real chip.
One of the great things about using an FPGA for this is I can update the program code on the fly. The external 68K is reading the FPGA as if it is memory, and I
have a test loop which loads all the registers, executes an instruction then dumps all the registers out again. The FPGA monitors all the access and compares to the softcore.
It can also update the virtual ROM on the fly so I can run through a whole sequence of operations pretty fast.
Here you can see the 68K prefetch behaviour for a move instruction (click for a bigger picture).
The yellow op-code is a move.l D0, $00010000 You can see it fetches the next instruction (4EF9 in green, a JMP) before it has written back the contents of D0 (in purple).
I have samples of the Chrontel DACs so I've decided to push on and build a few boards at least now. I've updated the schematic and layout drawings in the
previous post and told the PCB house to re-process and complete the boards.
Waiting for the components has given me time to refine the layout a bit and I'm pretty happy with it. Lets hope it works ok :)
Some of the internal layers (click for a bigger picture)
The RevB Replay PCB is waiting in China for some parts. For some reason a number of components are on two month lead time at the moment,
which is a bit annoying. I'm trying to get samples of the missing parts so I can at least populate a few proto boards to test here in Sweden.
I have quite a lot of most parts already though...
The RevB Replay PCBs are currently being manufactured. We should have boards in 2-3 weeks.
I'll post more details of the new board over the next few days.
Jakub has a demo of the board running Amiga with AGA available here :
The RevB Replay PCB respin is taking shape. The main reason for doing this is to fix a Chrontel power issue. I've taken
the opportunity to move the connectors to one side, and it has composite/SVHS output on the board as well now.
The power has moved to the back,as if the card is in a mini-itx case you can use the molex connector. All in all I'm pretty happy with it,
it's a good improvement. The PCB is due to be made on Feb18, which is not far away now and I haven't quite finished the routing ....
First of all, Happy Christmas and New Year to everyone.
Wow, another month has gone by already. This ASIC project I am working on has had some last minute hiccups,
and I am still very busy working on that. Mid Jan will see it done I hope, and I am going back to China then.
So, the aim now is to get the RevB board layout complete in the next two weeks. Going to be tough, but I am now 5 months
behind schedule so we need to pick up the pace again.
Right, I'm back on the case. I've had quite a lot going on in my life, but things are settling down again now.
I'm involved with taping out an ASIC which has one of the biggest die areas in the world, so it's been very challenging and
taken all my time. I've also got behind on some contract work, but thats all complete now so my focus is returning to the replay board. I'm also
not starting any new contract work now until the Replay board is complete.
Status :
Schematic for revB Replay is complete and being reviewed. I'll post this shortly.
PCB layout for revB is proving a bit difficult. I've placed all the optional components for the SVHS/composite out connector on the
back of the board. This increases production cost, but only for the top-spec'd boards with this option and it is still cheaper than the
separate daughter board. I hope to get the PCB layout complete by end November.
revA and revB boards are completely firmware (ARM software and FPGA code) compatible.
BSP (board support package) continues to be developed. This is near completion. The boot system works, you can drive the on screen display
with PS2 keyboard and joystick. The memory controller is being tested. The migration to the larger ARM 7S256 has been done.
So, still some work to do but I feel it is coming together now. Hopefully we can post some pictures of the Amiga core running on the board soon :)
Little progress to report on the Replay board sadly, I have been working flat out to complete a few critical
money-paying projects. I will start work on the Replay board again this week.
I have updated the T80 core to V302 thanks mainly to Alessandro's great test bench which checks the timing of All instructions.
The V302 contains some tweaks to the IO cycle timing for some instructions. The update can be found on the Library page.
I've completed the PCB library work for the new parts. This was a bit more complex that I expected as I had limited data on some of the connectors.
I have placed everything on the board and am working on the routing now. We are still discussing some changes to the joystick ports, but once we
have sorted that out I'll publish the new RevB schematic.
Well, I was away for a little longer than expected, then got Flu and then went to Amsterdam so I now need a bit of recovery time :)
The idea was to get the boards assembled in China, but having talked to the other developers they really wanted a few changes in the
way the joystick ports are used.
Having the daughter board made this difficult. I found while I was in China some stacking connectors which
means I can move most of the IO to one side of the card. The SVHS/Composite is still optional, but is now a build option. This means most
people won't need the expansion board so the board to board connectors do not need to be fitted to the entry level board.
It would look something like this :
I didn't get the PCB changes done in time, so I had to bring home a whole load of components ...
I am working on the layout changes now and hope to finish and get the boards made next week.
Rather busy here, I will be in Asia next week so I will get 50 or so boards made. These will be the RevB board which has a few minor tweaks,
so I am trying to finish testing the prototype PCB. Still no support from Chrontel (who make the DAC) who are strangely uninterested.
I have made some measurements of the DAC and have completed the PCB respin so I am confident we can go ahead, however we are looking at an alternative DAC vendor.
PS2, Audio and Composite/SVHS out work fine - although the picture looks pretty poor compared to the 1080P HDMI output :)
I am making some measurements of the DRAM interface now (I brought the big 'scope home for the weekend) - the last part to be verified.
So, we should have production ready boards really quite soon .....
It's been very sunny in Stockholm this week, so there has been much beer drinking and less time working on the bringup :)
I have made a minor patch to the board to fix the Chrontel power issues - still no word from them on this problem. 1080P and 720P
output is working well, and I have made several measurements with a 40G scope to check out the board before production.
Below is one DVI channel, and I'm extremely happy with the quality of the eye pattern.
Next is to make some measurements of the DRAM signal quality.
This week I have coded up the boot loader OSD. This took more time than I expected as a decent anti-aliased
fixed space font is hard to find. I ended up writing some software which takes the output of Angelcode's font
renderer and converts it into a suitable format for the FPGA.
The OSD is up and running and I have implemented 576i, 480i, 576p, 480p, 720p and a few other standards so far. I am quite
disappointed with the LG video scaling. When it has an analogue input the picture looks ok, I get the edges and all pixels
are present. This is mainly due to my output filter which band limits the signal correctly. With the HDMI input however at 576i the outer edges are missing and single pixel vertical lines sometimes vanish. This is a sign of rubbish digital filtering. I expect the LG is
about the same as other cheap flatscreen tvs and the scalar is something which is "cost optimized". Having said that, for normal pictures
(i.e none techy test patterns) it looks fine, and 576i isn't officially supported over HDMI but it does work.
As most screens now are native 1920x1080 I'll see if I can get 1080p out of the board. Flat panels look much better when run at their
native resolution. This means we need a 1920x1080 Amiga/Atari resolution output - or maybe half (960x540) may be more realistic and pixel/line
double the output.
I will do some eye pattern measurements on the
DVI signals and check the noise level of the analogue outputs next week, but testing with a DVI->VGA->Scart cable into a normal CRT looks
great.
I have also been knocking up a simple picture display application to test the DRAM. This would make the Replay board into a nice cheap
photo player for your big screen TV.
Arnim has converted his Adventure Vision game and sent me a preview which works nicely over DVI and uses the joystick and audio
out - so they work as well :)
The next stage is to finish the protocol between the ARM and the FPGA and then move onto testing the DRAM. I also have to make a slight tweak to the board to fix a Chrontel DAC problem (and they don't answer my emails) and tidy up a few things. I have created the new board design
already so this change won't cause any delays, I'll do a production directly from the new design as the changes are very minor.
A brief update to say the video output is working well. I've tested DVI -> HDMI at 576i/50Hz (Pal) and analog out with
a DVI to VGA cable. Both work fine, although I am upset that the M227WD TV chops off the outer few pixels in HDMI mode - but they
are there in analog mode. I will implement some other standards, 480i/60Hz (NTSC) and the progressive versions. I think the default
menu screen will be 480i/60Hz or 720P/60Hz to give most compatibility.
Phew, never again am I hand building more than one board this complex!
I have been away on holiday at Glastonbury music festival, and then to recover from that I had another two weeks away.
Now I am back, and apart from some contract work to finish (which pays for this project) I have more free time to work on the bring up. Several boards are out at developers and they are making good progress. I am working on the boot software and the FPGA wrapper which handles all the board IO, like PS2, memory controller etc. The idea is to make it easy for anyone to drop a "core" into the wrapper and not worry about the interfaces - you can think of it as an SDK for the board.
I have just got a small TV I can dedicate to this, so the current focus is to bring up the video and audio outputs, and finish testing the on board memory.
You can click on the pictures below to see them in higher resolution.
Picture above shows the board cabled up and connected to the digital TV.
I'm using a LG M227WD screen as it's small, cheap, true 1080 display and has all the video inputs I need including S-Video, composite, scart and HDMI/DVI.
The bottom cable is a DVI to HDMI cable. HDMI is backwards compatible with DVI so you just need a cable with the right ends on. The advantage of using HDMI
over DVI is that the screen will work at 50Hz PAL resolutions, which is what we need.
A better picture of the Replay board with the optional AV expansion card. The AV card provides PAL & NTSC S-Video and composite video with luma trap for
the best possible quality output. I forgot to order the board spacers so the bolts are holding the two cards together for now. It is more robust that it looks!
Back of the IO board. Not too interesting.
This is the LCD panel. This is really just for fun and this expansion board is not intended for production (although I have a few of them).
It is to test the 800x480 touchscreen and drivers so I can make a true portable if there is demand. Analog joystick not arrived yet.
The back of it. The wire is needed as I can't fit the front connector as the LCD connector gets in the way. I added the flexy cable in the
CAD system, turned off the drawing layer and forgot about it. Luckily the components there are low enough the cable goes over them ok, and it
was only 5V power which was taken from the small connector.
Here is the board in it's development mode with the 68030 expansion board.
Just to give you an idea how small this thing is, here is a soft drink tin to give you scale - other brands availble - although free samples
always appreciated :)
The board fits in mini-atx or itx case, and I may need to as the cables pull the board around. I am going to stick it to the desk to stop it escaping.
Right, enough chat, I'll get on with the testing.
/MikeJ
The LCD board still has not arrived. Here is a picture of the large breakout board on top of Replay board #4 which is about to be sent off to
another developer.
That is a 68060 chip on the top card which will be wired up. The patch board contains 5V bus translators so I can connect
up just about anything using this card.
I have been really busy finishing off some contract work, so I have not had much time to complete the Replay bringup.
I am ordering some more PCBs so I did a quick layout of a daughter board for the LCD. It has an analog joystick and some
buttons.
Really, it's just to play with the LCD, although I might respin the replay board itself and put the LCD on the back so
it could be made into a portable.
The daughter boards have arrived. Pictured below is the one with the 68000 processor on it for testing the softcore.
I also have a larger IO board with all pins brought out, and the front AV board with composite out. I haven't built these yet.
The missing chips in the picture are for 5V isolation buffers, so I can add a floppy disk connector or another processor for testing.
The 68030 and 68060 processors arrived, thanks very much - you know who you are.
The bottom picture shows the 68030 in position on a second daughter board, ready for wiring up.
Click on the picures for a bigger version. My camera seems to have trouble focusing on the board even in macro mode, time to replace it I think.
I have been busy assembling some more boards this week. I have got the serial control bus up and running so the ARM will
now boot the FPGA and configure the video output and clock generator. The nice thing with this Replay board is the clock
generator can produce the exact frequencies we need for the Amiga and other platforms. I've been working on the top level FPGA
wrapper with keyboard, mouse and video out blocks.
The Replay board is now loading in the boot FPGA image from the SD card and configuring the FPGA in about 2 seconds.
I am now working on the on-screen display and menu system for the FPGA.
My LCD arrived and is the right size for the board. I'll do a daughter board which hooks it up so I can play with it.
If it works well I may do a portable version. The LCD is 4.3" in size and 800 x 480 resolution with touchscreen. Perfect for the
ST/Amiga with 640x400 display and room for some overscan.
I finished installing my kitchen so I should have some more time this week to get this up and running.
I've finished the layout of the large patch card needed for testing with a real 68030 processor. The board is
also used to test the IO on the main Replay card. The three daughter boards will go to manufacture tomorrow.
Four main boards are now in existence and have gone/going to developers. I've been busy getting all the components together for these.
I've been away for the weekend so not much other progress to report, but hopefully I can now focus on bringing up the main card :)
Sorry, living in Sweden I couldn't resist this. This is what a Replay parts kit looks like. This board
is going off to another developer. Just to repeat, the production board will be available fully assembled only,
you don't want to try and build this thing unless you have an SMD assembly machine handy, trust me.
I've been hitting the layout quite hard this week trying to finish off the daughter boards so I can get them all produced at the same time.
This board contains a 68000 processor and some 5V capable expansion IO. I can wire up floppy disks, IDE disks or the 4.3" LCD touchscreen I have just ordered :)
(Note, the bottom red layer is also a ground plane which isn't shown).
The main card bringup is going well. I can boot the FPGA from the ARM. I am working on the menu system, as soon as I have something to show I'll post a video.
Three boards are going off to other developers. As soon as I'm happy with the memory and video output I'll get the rest of the prototype boards populated (10).
I'll then open it up to everybody who wants one and do a production run.
These IO cards are also available if anybody wants them.
I've just been finishing off the layout of the 68K daughter board and the video IO board (pictured below) for the Replay card.
The IO board contains audio RCA connectors, front mounted joystick and SVHS / composite video outputs.
These are needed to finish testing the main board before I can build some more. Testing of the main card is going well.
It's been a bit of a busy week, I was away for Easter and I am busy installing a kitchen, so
I haven't had as much time as I would like to carry on with the board bring up. However, I've got a rough cut of the boot
software optimised for the ARM. It's booting ok, flashing lights and talking RS232 - and I can access the filesystem on the SD card!
The next stage is to read the file Replay\boot.bit and configure the FPGA with the on screen menu system.
Well, so far so good with the testing of the Replay board. The power supplies are all working well with good phase margin.
I can configure the FPGA through the JTAG interface and flash the LEDs, so the clock generator is also working. I can find the ARM
with the USB connection and configure it. The next step is to finish the boot code and configure the FPGA from the SD card.
Here is a picture of the Replay board mid assembly. The BGA has been mounted as well as all the small capacitors and most of the ICs.
I have all the parts now, so I hope to have the board fully built for the weekend.
The first four prototype boards have had the FPGA BGA mounted. I'll assemble the rest of the parts during the week, so
we are aiming for a fully assembled Replay board for power on test by the end of the week.
All the connectors and components I have tried so far fit on the board :)
I'm getting a lot of questions along the same lines, so I thought I would stick a few comments on here.
The Replay board is going to be available to buy, as soon as possible. Price is not totally fixed, but we are aiming for (much) less than 200Euro hopefully.
The FPGA is a Spartan3e and is around 3 to 4 times the size of the one on the MiniMig board. It has 32MByte of RAM on board as well.
The board will support all the games on this site, as well as my Atari ST core and a customized and supported MiniMig Amiga core.
Other platforms such as BBC B, Commodore 64 and Spectrum will also follow shortly.
The board has an ARM processor which interfaces the FPGA to the SD card. Hard disk images, ROMs and floppy disk images can be used from the SD card.
There are two expansion boards, one with TV out and some rear mounted connectors for the joysticks (fits in a mini-itx case), and a second board with
a prototyping array. There are around 130 pins available on the expansion connector.
The board has DVI and Analogue out. The DVI connector can be used to drive a HDMI input of a flat screen TV, so you can play PacMan on the big screen.
I am planning to do Asteroids in true 1080P :) The analogue audio output uses a very hi quality Wolfson DAC.
The Replay board is complete and manufacturing data has been produced.
I'm probably going to be in China in a week or so, so I am hoping to pick up the PCBs
while I am there. First week in March is now the expected date for assembled prototypes.
FPGAArcade Retro Gaming Board - Replay 1.0 is now ARM powered.
I had some feedback that the AVR used on the Replay board was a little bit underpowered.
For the same price we could get a 32 bit ARM core with more memory and a USB port.
Despite the last minute change it was felt it was worth doing.
I have chosen the Atmel AT91SAM7S devices. Not only is it nice to be able to program the microcontroller with
USB, it could be used from the FPGA as well. The layout update is complete, everything fits - just. I have
a bit of routing to tidy up, but still hoping to get out to manufacture this month. I'll release updated schematics
when everything is complete (again).
You can now think of this board as an FPGA platform with a clever boot controller, or a powerful ARM development
board with extensive FPGA IO support. Or, just a cheap, flexible home entertainment system.
Arnim Läuger has done some great work building on research by Jens Schönfeld and Mark Smith who
originally reverse engineered the equations in the Commodore 64 PLA. This PLA (Programmable Logic Array) device
runs quite hot and often fails. You can now use the same proven 28 pin FPGA Arcade module we use for Namco replacements
as a PLA replacement for the C64.
I have verified the equations against the original dump of the PLA and they give identical results.
You can find more details on the Parts page. Source and references
are available as well.
I have completed plane generation of the board. I have built a test version of the FPGA which drives
all the IO pins to make sure there are no errors. Some of the pins on this Spartan3e are input only which is
a right pain.
There are a total of 96 IO pins, 30 Input only pins, 4 analogue inputs and some clock pins on the main
connector - dedicated for expansion use like Ethernet, IDE etc.
The smaller expansion connector carries the audio, video & joystick inputs so an IO board
can put a S_VHS/composite video connector and joystick ports at the back above the other connectors and the board can be used in a mini-ITX case.
Little bit of messing around with the silkscreen layer (component numbers) and then we are done.
Well, now I have just about recovered from the hangover it is time to finish off the last bits of the dev board.
The board is fully routed and complete, I have a little bit of trace tuning still to do and some manufacture related
bits and pieces. You can see the sort of trace wiggles the tuning produces on the right side of the board by the memory.
The idea here is to get maximum timing margin you have to adjust the trace lengths so all the signals arrive at the memory at the same time.
The same tuning is also needed on the DVI signals.
The board is due to be assembled in two weeks, so I need to get it away pretty soon. The image below
is one of the internal tracking layers. It was a little tough to route, I ended up doing most of it by hand. The daughter
boards are a piece of cake in comparison.
There are a number of daughter boards in the works including a Jamma adapter, Atari/Amiga breakout board (one variant with real
68K processor) and possible Ethernet & USB. Finally, I am also doing a generic IO board which breaks out all the IO to stripboard
with 5V isolation so you can add legacy processors / connectors etc.
HD Asteroids and DVI output Amiga/Atari comming soon....
If you click on the picture below you'll get a bigger one. I'll post an updated schematic when the board has gone to manufacture.
Here is the layout of one of the sub boards - in this case the 68K processor.
It was important to do this before the main card is completely finalised as a few pin
swaps were necessary to get this to route on a two layer card. As you can see, it has
gone in nicely and has an almost complete ground plane on the bottom side (component).
This means we should get good signal integrity to the processor and be able to run faster devices - perhaps upto 66MHz.
(68060 anybody?)
The blue traces are on the top side, and all the SMD components are on the bottom with the connector
to further reduce cost.
Well, it's now November so what's happening with the Dev board?
The layout is complete but the track density around the expansion connector
and on board 68K is very high and this is causing potential production problems.
We have made the decision to remove the on board 68K and put it on the expansion card.
This makes a lot of sense for several reason. It makes the main card slightly cheaper
(the 68K was always going to be an option) and will not be needed for most applications as
the Amiga/Atari platforms will use a 68K soft core in the FPGA.
For other arcade games it will not be used at all. It also simplifies the tracking and
signal integrity to the expansion connector. One other benefit is it allows a 68040
or other processor to be easily added to the expansion board.
Two expansion boards will be available, one mini one which simply provides TV out, and a
second Amiga/Atari one which adds to the TV out the 68K and some other expansion connectors. This
will be used until the softcore is sufficiently accurate for everyone.
In other news the website is up on the new server and the new site & forum is in Beta test.
For a while I have been using some little 16 pin programmable parts for debugging arcade boards,
for example if I don't have the correct TTL chip to hand.
These are now available on the
Parts page.
They come in 14 Pin, 16 Pin and 20 Pin variants and can be reprogrammed to replace just about any
legacy TTL / GAL etc. Source code is available.
All the parts for the prototype run of the FPGAARCADE development board have been ordered and most have arrived.
We may have to modify the PCB layout to improve the power and ground around the memory to make sure it runs at
the speeds we want. I am running some signal integrity simulations on this now and checking over the schematics.
... is nearing completion (really, honest). Placement is complete and routing is going well. I hope to get some pictures up in a week or so.
It is an ECX size board measuring about 14cm by 10cm and designed to fit in a case.
It has a large Spartan3E Xilinx FPGA, quality audio
and video output (including DVI) and a PIC based boot loader which is compatible with Dennis' Minimig.
Final costings have yet to be completed, a lot depends on the size of the production run, but it will be "reasonable".
The board will run my AtariST code as well as Minimig, and all the other games and platforms will be ported across.
Finally, it has an expansion connector which can take IO cards. A Jamma one is being designed at the moment allowing the board to slot
into real arcade cabinets. I am also considering a vector monitor output card for Asteroids and StarWars games. You really couldn't have more
fun without taking your clothes off....
In other news the FPGAArcade website will be moving to a proper server soon which will
allow a support & discussion forum. Testing is ongoing.
I have updated the VIC-20 code to run on the Xilinx Spartan 3E board.
It now supports cartridge images held in the on board flash memory.
I have fixed a timing error in the T65 code and this has been updated also (Library page).
You can also find a flash programmer bitfile which uses the male connector on the Library page.
Well, it's been a little while since I last posted any news.
I have completed the four Atari ST ASICs and am co-simulating them.
I am in final stages of designing a low cost FPGA platform which will
be ideal for the games, but also for running the Atari and Amiga (MiniMig) FPGA
clones on. It has an expansion connector into which a JAMMA connector will plug for use in
real arcade boxes, or for experimentation. I am also considering an analogue output card
so the vector games can drive real monitors. The card will be available for purchase, but don't
hold your breath as I have been getting around to this for a few years.
Arnim Läuger has reverse engineered some Konami custom ICs. As he has kindly released the firmware
you can use the 28 pin modules available on the Parts page as replacements for these devices.
It has been a busy month for me, I've been in Asia a lot again. I am celebrating completing the reverse engineering
of the Atari ST Glue custom IC. This design "should" be identical to the original. Only three more chips to go ....
I survived the mud at Glastonbury Festival! Had a superb time, met lots of great people.
Right, there is no way round it, I am going to have to write a DDR memory controller for the Spartan3E board.
The ones that are out there are not flexible/high performance enough for my Asteroid needs, and I cannot modify and redistribute
the Xilinx MIG code. Once this is completed, Defender can be finished and StarWars is next ....
At long last (almost two years) I have completed the Scramble / Frogger code - I am easily distracted!
The hardware is very similar, so I have added a compile time switch to allow it to run both games.
Many other games can be run on this hardware, so I am sure a multigame will be produced at some point.
This is the most advanced FPGA game yet featuring two Z80 cores, two 8910 sounds chips and two 8255 PIA chips.
I am heading of to the Glastonbury music festival next week where I will probably forget who I am, so I thought it was
a good idea to get this release out before I went :)
The Philips Videopac G7000 (or Odyssey2 as it was known in America) was released in 1978 to compete with other
cartridge based systems such as the Atari VCS.
Powered by an Intel 8048 CPU and a custom Intel IC known as a Video Display Controller (VDC) generating all sound and video.
The console did relatively well with more than 60 cartridges being made available.
Arnim Läuger has completed an FPGA implementation of the console, and the design can be found on the Platforms page, full source
code provided as always.
Finally got Frogger sound working !!! There are many small
differences between Scramble and Frogger boards - mainly address pin swaps, but there are
a few hard to find ones. In Scramble one of the AY3-8910 sound chips uses bits 7,6,5 & 4
as inputs, but in Frogger it's bits 7,6, *3* & 4. "5" and "3" look really similar on the old
hand drawn schematic. I should have looked in the MAME driver more carefully, they found it :)
Oh, I forgot to say I have put up Sean's Multipac on the Pacman page.
You can now dynamically switch between Pacman, Pacplus, Pong, MrTNT,
MsPac, Crush Roller, Eyes and Lizard Wizard. Enjoy.
I have ordered more of the 28pin Namco custom replacements, so these will be back in stock shortly.
I've also got my hands on the very nice Xilinx Spartan3A board
(thanks Eric) and it is pretty ideal for our gaming needs. I have Frogger and Scramble running but
there are a few glitches that are taking a little longer to sort
out than I imagined.
Well, hello again. Is it too late for Happy New Year? Well Happy Chinese new
year at least then. I have been spending quite a bit of time in China lately, which
is one of the reasons for not updating this website so often.
I have been working on Wolfgang Foerster's 68K core, attempting to run it along side a real chip to
test it. This is going well but is quite time consuming. Does anybody have a software test suite for a 68K, perhaps
for testing a software emulator? If so then please drop me a mail.
I have also been working on my arcade FPGA board with is going to be really flexible. It has an optional 68K on it and
a large expansion connector into which you can plug a JAMMA adapter. I really want it as an AtariST development platform, but
it will of course be great for running the games on. No idea yet on timescales and cost.
I realised that all I needed to finish the Scramble game was an AY-3-8910 VHDL implementation.
Then I realised I already had one in the shape of
the YM2149 code I have had knocking around for ages. I did have to write a 8255 core however - which I expected would take about ten minutes but
ended up taking two evenings, it has so many funny modes. The audio board is complete and seems to work however, so I hope to release this platform soon.
(however the pub is calling ....)
Sean has sent me a Pacman Multigame release which I will stick up here shortly.
Right, enough chat - back to work.
p.s. it is damn cold in Stockholm at the moment, when do they turn the heating back on again ??
Sean Riddle has been working on extending the Space Invaders implementation to support multiple games,
and this is now released on the Space Invaders page. A total of 16 different games are supported running from the Strataflash
on the Spartan3e starter kit.
Well, the summer holidays are over, the annual get (very) drunk at IBC
been survived (just) so it is time for some new stuff.
I have released the Spartan3E port of the Bally Astrocade, you can get that
on the Platforms page. Sean Riddle found and fixed a bug in the T80 core, so there
is a update to that on the Library page. Sean has been working on a Space Invaders multigame
on the Spartan3E board, and I will include that here as soon as possible.
I was a bit upset that the Spartan3E starter kit from Xilinx has only single bit RGB on its VGA connector.
This is a real limitation when running the games on the board - so I have modified it. I have documented the
changes required, and have released some VGA test pattern generator code which will allow you to test the modification.
I wasn't really sure where to put it, so it is on the Platforms page under DisplayTest for now. (at the bottom)
Arnim Läuger has updated some of the projects. Adventure Vision has been updated with a new T400 core.
Colecovision and LadyBug have had the SN76489 audio chip updated.
The SN76489 and VDP19 (TMS9918A, TMS9928A,TMS9929A) cores from the designs have been repackaged and are
available together with some short READMEs on the Librarys page.
Time to watch the Sweden England football game. As I am English and living in Sweden it should be interesting :)
I came across some work by Peter Wendrich
www.syntiac.com
where he has implemented a Commodore 64 including a rather neat 6502/6510 processor. I have not
tested it, but it looks very good and correctly implements decimal mode arithmetic - something I am
going to merge into the T65 core. It is mirrored here on the Library page.
In other news I am working with a chap know as 'the FROG' on converting the Atari Jaguar
and Jaguar2 ASIC netlists into VHDL. This is a long term project, but we hope to recreate the
unreleased Jaguar2 console in an FPGA.
Finally, I have been talking to a Wolfgang Förster on and off for the last year or so. www.http://www.experiment-s.de.com
He has done an excellent job and got further than me with the AtariST chipset and has got the thing running. I am hoping to mirror
the site here and produce a build of it. I am continuing with my own low level conversion of the Atari netlists, and am also designing a
board to run it on.
Blimey, an update within a month of the previous one, that does not happen too often!
<= Here is the very nice Spartan3E starter kit board from Xilinx.
It is pretty suitable for our gaming needs. One problem is that the VGA
output it limited to 1 bit RGB, but thats ok for this game. The board includes a DAC,
but we will add a simple resistor/capacitor filter and use a PWM output from the Xilinx.
I had just got my hands on one of these boards, and at about the same time I received
a file from a chap called Paul Walsh who had been working on modelling the Space Invaders analogue audio.
It seemed the right moment to put it all together, so you will find on the Space Invaders page in the Games section
the release for this board. With the addition of the original ROM images, you can build and play the game on the
original hardware, or as close as we can get....
Arnim Läuger has completed the sound CPU so it is time for a new release.
The new T400 controller from www.opencores.org now
happily substitutes the original COP411L for sound generation.
Arnim Läuger has been at it again, and his latest release is a re-implementation of the 1982 Adventure Vision console,
complete with emulation of it's rather odd display method.
I got a bit of a shock when I realised how long ago it was I released the first
Pacman FPGA code. It was time for a general tidyup, and to target more modern devices.
Release 3 is aimed at Xilinx Virtex2/Spartan3 style devices with bigger block RAMs, supported
by a new release of RomGen. All ROMs are now internal, the code will simulate with the standard
Xilinx Unisim library and the whole design is now clock enabled which simplifies the clock requirements,
especially when running with the scan doubler for VGA style displays. The code can be found on the Games/Pacman page.
Arnim Läuger has updated his Colecovision project. The new release adds some undocumented functionality for
Graphics II mode, and is now accepted by the Xilinx XST tool. A top level design has also been added for the Zefant XS3
board which hosts a Spartan3 FPGA plus audio (AC97) and VGA interfaces.
Arnim Läuger has completed his implementation of Coleco's third generation video
game console from 1982. This was the first console to feature Donkey Kong and sold over six million units. Arnim has
tested the code with more than 50 games, so head over to the Platforms menu to have a play.
Oh, and Happy new year to all !
I have now got most of the kit over here in Sweden (including a computer) so
hopefully I can finally complete everything I have started - before Arnim does everything :)
Arnim Läuger has updated the Lady Bug project during the last few weeks.
Code cleanup, memories are tech independent now, ported to Spartan IIe
and added support for devices with small internal RAM.
Eric, over at
Fpga-games
has written an article about FPGA arcade game recreation in the Xilinx XCELL publication. He has also got
a number of the games featured here running on his dedicated gaming FPGA board.
Right, at long last an update.
I have relocated to Sweden, so the last few months have been a bit busy. I have a lot
of things underdevelopment.
The major push at the moment is the AtariST Custom ASIC conversion. I now
have the four chips running in the simulator, but some major tidying has to be done before release.
I have a new development card which has more memory on board, which will help with the final debugging of Defender.
Omega race and Star Wars are also nearly complete.
Completed the T80 CPU update, which I have added to the library page.
New Bally release with this core. I will be testing the T65 CPU and updating the other games shortly.
Defender almost done .....
So, I started to merge all the cpu bug fixes I have received.
I have added the latest cpu cores to the library page. I have not tested these yet, but I
will update all the game zips and test with the new cpus over the next few weeks.
Added the Omega Race vector prom and some Atari ST logic analyser traces for interested parties to the Library page.
The Atari customs are progressing nicely. Managed to persuade my friend Carl to do some work to get Scramble and Frogger going,
so hopefully I will be able to release them soon.
Having taken lots of measurements, I have simulated the output DAC to a reasonable accuracy.
On the library page you can find both versions, along with a 10 bit volume table.
I may be tweaking it to improve a possible commercial release, but it's pretty close as is...
This picture shows the output of the real chip on the top trace, and my output on the bottom.
I have tried a number of demos and sound tracker programs on it, all have sounded fine.
I have been having lots of fun(?) analysing the output level of the YM2149 used in an Atari.
In this application, the three analogue outputs are wired directly together, and the channels
interact so the mixing is far from linear. Lots of Atari software drives the three 4 bit tone volume controls in parallel
to emulate a 8 bit DAC, so I have to get this accurate. I have taken over 1000 measurements so far, and am aiming to model the output
stage and produce a full table.
I have released the 'linear-mix' version on the Library page - which is currently playing some Atari demo chip music quite happily.
Right, only 3096 measurements to go ... If only I had gone to the pub instead on Saturday ...
Right, back in the swing of things again. I have completed the YM2149 (AY-8910 with some extra envelope resolution)
used in the Atari ST and I have it working in a real Atari playing some music - picture on the Platforms\Amiga & Atari page.
I have half finished the MFP 68901 and will be shifting focus to the Atari customs next.
A little news update before the end of the year. Currently under development
and nearing completion are Xevious and Scramble games. These releases will include a
AY-3-8910 sound chip core, and I will also be releasing details of the Namco Customs used.
I am also working on the StarWars vector game, but that is a little further off. The
vector rasterizer is based on the Asteroids Deluxe code, but enhanced to support the AVG
used in StarWars.
On the Platforms page I have added a page for the Amiga / Atari ST computers that I am
aiming to replicate. A 68000 processor core is also in development, and I have posted a picture
of the rig I am using to test the beast.
So, lots of exciting things for the new year. Have a good Christmas and jolly drunken New Year.
I have had a few problems with XST (Xilinx Synthesis tool), which has
forced a slight rewrite of a small part of the code. The design now builds under
XST as well as the Mentor tools.
This release is complete apart from the light pen interrupt. I will release another version
shortly that uses external SRAM and supports higher screen resolutions.
The Bally code now runs the Burn-in Test Cart sucessfully. Thanks very much
to the people who supplied that. Slight video and blanking problem to resolve
and finish the sound off still.
I've added some new pictures to the bally page, and hope to release the code this weekend.
I have finally written enough of the Bally Astrocade code for it to run up.
It has a few issues, but the code is now complete, so just a bit of debugging now.
Still not finished Scramble ...
p.s. Blimey, you can tell it's been summer beer drinking season - three months since the last update !
At last an update - and the release of that spinning rock vector game from 1980.
This version features a vector to raster scan converter which will drive a standard
VGA monitor, and includes full audio with a POKEY chip core.
Updates to the Custom parts page, and some reference material in the Library page.
Almost finished my lastest game which involves vector graphics and spinning rocks ....