>Running the NES off of the CF is not practical, since there are 2 independent buses ...
You are correct about one thing .. a CF doesn't have two address busses. However, I still believe it to be simplier to put another CF connector on the cartridge then to put a uC, an LCD, and all the stuff required to prevent damage by inserting the cartridge before programming is over.
>... plus the uC would have to translate the address
>info into CF commands, and then discard the high byte (additional buffering of
>the data bus and extra latency)
My design idea didn't have a uC on it. And there are no complicated "commands" for readig a CF ... only for writing it. The high byte does not need to be discarded, both "data buses" can be connected together since each internal flash chip can be selected separately. The entire memory space of the CF is accessible this way.
>The LCD is so you can browse the images on the CF.
So you need buttons on the cart as well to let you select which one you want ... I still think you're making this much much more complicated that it needs to be.
Your design also has increased power needs. I only need a battery for SRAM backup. You need one to power everything.
For people who want to keep making changes to their code and testing their program on the NES ... the CPLD doesn't need to be reprogrammed. Therefore, my method will require no reprogramming on the cartridge. Only a quick program of the CF using the widely available pc USB -> CF programmers.
Also, as stated, my design needs no preprogrammed parts. Therefore if a "bug" in code is found ... all users can upgrade.
Does your design allow the uC to be reprogrammed? If not, will you be shipping preprogrammed parts to people ... and what is the best way to handle "upgrades"?