After a long break I did some major updates again on my C64 on an FPGA.
First, I mounted all the parts on a wooden board, so shortcuts and broken connections should not bother anymore.
Top Left: FPGA with the C64
Top Middle: AD725 Breakout with a Lowpass-Filter for the Sound
Top Right: AV-Out
Bottom Left: IEC-Breakout
Bottom Middle: SD2IEC
Bottom Right: (that's what's new) The Control Panel
And I wanted to add 2 joystick-ports with paddle-support, while not loosing more I/Os for the soon to come cartridge port. The solution you see on the bottom right: An Arduino Pro Mini together with an 1.8" Color LCD, some contol buttons plus 2 joystick-ports - connected using I2C to the FPGA.
With only 2 Pins used for the I2C, I have 2 joy-ports with (soon to come) paddle support (there are some analog inputs on the arduino), and a simple control panel to reset or mute the C64, as well as turn off borders and enable some debug visuals from the VIC-Emulation. The "Menu" is used to define the default kernal image.
Joysticks are updated ~30 times/second - which is fast enough for all games.
I always wanted to make my own Joystick - so I decided to connect an Arduino UNO together with a JoyStick Shield to the FPGA64. I know, not really my OWN Joystick, but at least I can program it the way I like (e.g. configure one Button for "UP" for Jump'n'Runs, RapidFire, WiggleMode for Decatlon .....)
Further I added one more Bit to the Video-Output, so now we have 9 Bits (3 Bit for each color). Much closer to the real thing than before!
Nono, this project is still NOT stuck! Just the pace is a little down.
To achieve the next milestone (which is an expansion port), I need to switch to another FPGA Board with more I/Os. I already have one here, but as I always tend to overread specs, I missed that there is no SRAM, but only an SDRAM on this Board.
And no, I'm really not in the mood to write an SD-Interface. So I've ordered some SRAM-ICs which I will hook up later.
In the meantime, I was able to programm and read the Flash IC (CIF) on the Board. So all Roms (Kernal, Basic, Charset) are no longer occupying valuable BlockRam.
If everything goes well, I will have an expansion port up and running still on 2012 :-D