Two years is a long time for an update and we have a lot to talk about!
As some of you already know, finding an affordable yet large enough FPGA to hold the Pole Position design has always been a challenge. External memory is always an option, but PP has so many clients in need to memory all the time (multiple CPUs, multiple layers of video hardware, etc) I would have to architect another whole layer of memory management hardware just to pull it off (believe me... I started going down that road). Then Xilinx suddenly released it's 7 Series family of FPGAs and guess what... even their somewhat smallest solution seemed to have just enough to hold the PP design. Success!! Well.. almost.
Xilinx decided to only release their 7 Series FPGAs in BGA packages. Having never done a tight-pitch BGA based PCB design before, I proceeded cautiously. I had the PCB design pretty much finalized but needed some layout guidance so I started working through my network of fellow engineers who might have some experience in this area and could give me some guidance. One of which was Clay Cowgill... fellow arcade collector, embedded systems engineer, and all around basic hardware nut like myself. While my days are spent designing hardware at the chip (semiconductor) level, Clay is working on hardware more at the systems level. Not only that, but for most (if not all) of his company's projects he 'is' the PCB layout guy. So what started as a few emails of "Hey how do you suggest I do this?", and "What types of things should I be concerned about here?" ended up as "Wow your system is pretty simple compared to the stuff I have to mess with... why don't I just lay this board out for you?" This was pretty much a no-brainer for me. My work schedule is pretty rigorous and Clay's work experience is filled with PCB design and manufacturing.
Things were off to a very rapid start when all of a sudden Clay got word that the city just approved his request for a Ground Kontrol expansion. Good news for him... no so good news for me. :) Time dragged on as most construction projects do and what started out as a 7 week venture ended up a 7 month venture. But things finally wrapped up and Clay has able to finalize the prototype hardware.
So where are we now? I just got word that Clay has prototype hardware in-hand and in starting assembly. Once he has a few made up and is confident everything is as it should be he'll pass them my way and I'll be integrating the PP design into the FPGA. I already have adapter cards made up (more on that later) and have also started working on the menu system.. Haven't finalized on the name just yet but Pole Position Multi has a nice look to it:
So my goal is to have a working prototype this month. Does that mean production is just around the corner? Not necessarily. I'd like to get the proto into John's hands so he can bring it over to the Hangar and put some burn-in time on it. Get a sense of what features we may want to add... etc.
That's it for now... gotta get back to work but should I dare say that 2017 may just be the year we finalize this long overdue project? Man I hope so!
:)
-Adam
Thursday, June 1, 2017
Sunday, January 4, 2015
Wednesday, November 19, 2014
You Hear Somethin?
1st signs of audio life. Still need to work out the discrete sounds but here are some speech samples recorded directly from the FPGAArcade Replay board running a reduced PPClone.
http://www.onecircuit.com/sites/onecircuit.com/files/temp/ppclone_111914.mp3
http://www.onecircuit.com/sites/onecircuit.com/files/temp/ppclone_111914.mp3
Wednesday, October 8, 2014
Test Screen on the Replay
Now to get the joystick connected up and try the audio hardware...
Thursday, July 17, 2014
Time to trim the fat
So I've realized real quick that the PPClone design will simply not fit into the Replay board as-is.
Looking at the ROM list (http://www.mamedb.com/game/poleposa), there's 168kB worth of ROM info to store (nevermind the ram). The Spartan-3E on the Replay only has enough room for 73kB. So something's gotta go or I need to abandon the Spartan-3E. I hate to do that since it's so attractive from a pricing standpoint so I'm looking at the ROM contents themselves to see if any savings can be made. (large portions of memory with the same patterns in them)
Another possibility would be to store them in external RAM but I'm not sure if I can get the data to the subunits in a timely fashon. We'll see....
Looking at the ROM list (http://www.mamedb.com/game/poleposa), there's 168kB worth of ROM info to store (nevermind the ram). The Spartan-3E on the Replay only has enough room for 73kB. So something's gotta go or I need to abandon the Spartan-3E. I hate to do that since it's so attractive from a pricing standpoint so I'm looking at the ROM contents themselves to see if any savings can be made. (large portions of memory with the same patterns in them)
Another possibility would be to store them in external RAM but I'm not sure if I can get the data to the subunits in a timely fashon. We'll see....
Monday, May 19, 2014
PPClone update on Arcade Outsiders podcast
Last week I sat in on the Arcade Outsiders podcast for a quick interview and update on the PPClone.
Catch the full episode here: http://arcadeoutsiders.com/
Catch the full episode here: http://arcadeoutsiders.com/
Tuesday, November 19, 2013
Monday, October 28, 2013
Friday, October 4, 2013
Blkdog7 pays a visit
John Jacobsen (aka blkdog7) stopped by for some parts the other day and we fired up the PPClone for a sec to show the status.
Skip over to 1h 18m 02s to see the clip.
Skip over to 1h 18m 02s to see the clip.
Thursday, August 15, 2013
Test Screen Hurdle Success!
Finally got through that test screen hurdle. A lot of 06xx and 5xxx custom stuff to figure out. In the end I decided it was worth the time to just work though the disassembled Z80 and document everything. I figured out about 80% of it all. It was actually pretty fun.. I haven't had to do so assembly since college. ;)
That allowed me to pinpoint exactly where I was running into trouble.
Then I ran into some Z8002 instructions my core didn't support yet so I put in a simple workaround until I can get that stuff implemented.
I also wrote up an arcade video to LCD interface so I can work on the design without needing that arcade monitor.
Long story short... I'd say we're making some headway:
That allowed me to pinpoint exactly where I was running into trouble.
Then I ran into some Z8002 instructions my core didn't support yet so I put in a simple workaround until I can get that stuff implemented.
I also wrote up an arcade video to LCD interface so I can work on the design without needing that arcade monitor.
Long story short... I'd say we're making some headway:
Wednesday, April 24, 2013
Crazy characters
Just a quick status. Lots going on these days with work, board repair, and now a new job prospect. Crrrrrazy!
Barely had time to shoot this video:
Barely had time to shoot this video:
Wednesday, December 12, 2012
Time to call in the Austrians
So it looks like the Z80 and both Z8002's initialize and pass all memory checks and the Z80 is at the point in the code where it is looking for some status from the 06xx. Now the 06xx is basically a customs controller and it has the ability to control up to 4 separate Namco 5XXX series devices. As it stands.. Pole Position actually has 4 of these: 51xx, 52xx, 53xx and a 54xx
So this means I have to now reverse engineer 5 more Namco customs. Or do I?
Calling in a favor from my buddy Wolfgang, who has been working in parallel on an FPGA implementation of the Galaga system. He and I have been sharing the code for our customs for a while and I'm happy to see that he has already done quite a bit of this work:
http://www.pin4.at/pro_custom.php
Woot!
So this means I have to now reverse engineer 5 more Namco customs. Or do I?
Calling in a favor from my buddy Wolfgang, who has been working in parallel on an FPGA implementation of the Galaga system. He and I have been sharing the code for our customs for a while and I'm happy to see that he has already done quite a bit of this work:
http://www.pin4.at/pro_custom.php
Woot!
Tuesday, December 4, 2012
"ERROR IC25"
So the design as it stands today is sitting in the FPGA but alas.. it doesn't seem to be executing the same as the original hardware. As I dug further... I spotted some memory location reads that didn't line up. Turns out.. those are to the security ROM located at 4K for Pole Position 2 which of course, doesn't exist in my design. (Duh!)
I know there are hacked romsets out there that bypass it (replace jump instructions with NOPs), but I'd rather handle it in hardware. That way, when people ultimately use this thing, they can just grab authentic PP and PP2 romsets off the web, toss it on here and it will just plain work. Rather than spend too much time on this just yet, I've decided to switch to the PP romset for FPGA implementation. Once that's all set I'll reverse engineer the IC25 for PP2 and re-veify that PP2 works as well.
I know there are hacked romsets out there that bypass it (replace jump instructions with NOPs), but I'd rather handle it in hardware. That way, when people ultimately use this thing, they can just grab authentic PP and PP2 romsets off the web, toss it on here and it will just plain work. Rather than spend too much time on this just yet, I've decided to switch to the PP romset for FPGA implementation. Once that's all set I'll reverse engineer the IC25 for PP2 and re-veify that PP2 works as well.
Thursday, October 25, 2012
09xx cracked!
Fwew.. what a pain. That larger CPLD had tons of space but due to those longer wires there was quite a bit of noise that made it tricky to clean up. After weeks of working on this guy I was finally able to get it working.
That's it for the CPU/Video related customs which means I can start preparing the RTL for the FPGA development platform. Stay tuned for those updates.. I hope to start a video series that captures the progress from here on out.
That's it for the CPU/Video related customs which means I can start preparing the RTL for the FPGA development platform. Stay tuned for those updates.. I hope to start a video series that captures the progress from here on out.
Thursday, June 28, 2012
June 2012 Status...
Making a lot of headway on the hardware design. I have all of the CPU and Video PCB logic coded up in verilog (with the exception of the sound stuff) and simulating. The Z80 and Z8002's are working (in simulation....so far) but its becoming apparent to me that I'm gonna have to toss this thing into a devkit soon to iron out the bugs. It literally takes hours of simulation time just to get the system out of reset, which happens in a matter of seconds on the actual hardware.
On another note I've started work on the 09xx series custom. I tried programming it into my FpgaArcade device but alas.. it was too small. Time to bring out the big gunz!
On another note I've started work on the 09xx series custom. I tried programming it into my FpgaArcade device but alas.. it was too small. Time to bring out the big gunz!
Wednesday, October 5, 2011
Monday, August 1, 2011
Monday, January 24, 2011
Fluke z8000 pod acquired
Thursday, December 23, 2010
Annnnnnnd we're back!
Well the lab is finally setup and fully operational. With the big bench in place I now have a dedicated station for the PP project. I plan on returning to this project this week
Very excited to make some forward progress...
Wednesday, August 18, 2010
Subscribe to:
Posts (Atom)