Close

upgrading from uC-only to the combination CPLD/uC

A project log for SNES AmbiPak

Connects your old SNES console to the new world - adding ambience lighting and controller feedback to improve gaming experience.

ingo-sIngo S. 08/20/2014 at 13:202 Comments

Although monitoring the lower 16 bit of the address line should be possible by using only the two 8-bit ports PORTC and PORTL of an ATmega2560 and triggering an interrupt with the WRITE-signal, the RAM frequency of around 3MHz is a bit too high to get reliable address-readouts because of the sequential readout (8-bit uC -> 2 8-bit readings of a 16-bit bus).

Therefore, a CPLD will be added to the parts list, which will do the address monitoring until a better implementation has come to my mind.

Discussions

DackR wrote 11/23/2014 at 19:40 point
Perhaps if you switched Arduino platforms over to the Arduino Due, it would allow for more accurate address monitoring? Also, do you plan on sharing your source code? :) I'd like to tinker with the code and see if I can get anywhere with it.

  Are you sure? yes | no

Ingo S. wrote 12/01/2014 at 22:28 point
Up to now, there is not much more source code than a basic address comparison in VHDL a'la "if falling_edge(write) and address = 0x... then output = 1 else output = 0", but I try to continue this project in the next weeks. As you can see in the last project logs, an Action Replay MK II cheat-module arrived just a few days ago and this allows me to find out a more accurately and more easily the correct RAM addresses for in-game events (in this case it was 0x7E00C8 for hitting walls in F-Zero). Additionally, the Action Replay module cartridge might be able to hide all the ugly electronic in the future ;)

  Are you sure? yes | no