Using stupid tricks to overload the CIC with -5V and make it overheight are a bit fun, but a bit stupid I found.
And personally I'd rather use a 2nd MCU for the lockout chip, like PIC10F family or something else really small. It seems wasteful to have a really good MCU farting around with CIC stuff, heh. If I'm really smooth I could fit it in the normal CIC pinout, but I'm not at home so I can't check if that's possible at the moment.
The microprocessor is most certainly the same, only the code will differ.I'm excited about the CIC being RE'd too, but once we know how it works it's like they said on GI Joe, "knowing is only half the battle". The Tengen CIC was for North America only, and there's plenty of other NES regions to figure out.
Then, you could include a code that tries all regions, and switch to another if the NES CIC doesn't seem to answer correctly to a given region. This will do an universal CIC that will work with all NES ever made, including those with modern "secured CICs" and with no CICs at all.
I just figured it would be a pain to get something possible both with the pinout of the CIC and the pinout of anyother MCU out there. Pins 1, 2 and 3 must definitely be input ports, pin 4 could be VSS (since it's grounded anyway for CICs on the cart) and then any MCU coming in a DIP8 package with ground pin on pin 4 and VCC pin on pin 8 could do. Clock input and reset could be ported to pins 5-7 that are not connected to the CIC (or grounded).And personally I'd rather use a 2nd MCU for the lockout chip, like PIC10F family or something else really small. It seems wasteful to have a really good MCU farting around with CIC stuff, heh. If I'm really smooth I could fit it in the normal CIC pinout, but I'm not at home so I can't check if that's possible at the moment.
The problem is that the DIP8 pics available have a totally different and annoying pinout, I haven't figured if there were any other MCU in DIP8 package.
EDIT : Here you are the final version of a universal cart with a real CIC and CIC defeater PIC10F DIP8 based MCU.
Notice : PIC10F must be placed in the other polarity than the CIC, and one slot backwards. I know it's not too good looking, but the best I've found.
Code: Select all
___________ 1 : DATA_OUT |____\/____| 16 VCC 2 : DATA_IN | | 15 : DATA_OUT* 3 : N/C ? | PIC10Fxx | 14 : 4MHz CLK* 4 : GND | | 13 : VCC* 5 : /RESET IN* |____/\____| 12 : N/C ? 6 : 4MHz CLK | | 11 : N/C 7 : RESET IN | CIC | 10 : N/C (output) 8 : GND | | 9 : N/C (ouput) +----------+ * : Was origially no connect on CIC, but is served here as PIC10F input/output. Normally shouldn't cause any significant issues. N/C ? : Is no connected on both the CIC and the PIC10F. Maybe it's better to ground it ? DATA_IN is PIC10F's GP0 I/O. DATA_OUT is PIC10F's GP1 I/O.
Something like that might do, but probably not exactly FALSE, just similar, modified in a way that is best for this kind of things. I also like Reverse Polish Notation.tepples wrote:RPN? Let me guess: You're putting in something like FALSE. There exists a compiler for FALSE whose MC68000 object code size is 1024 bytes. Now you're talking sense.
However, I think just a simple very small coprocessor (simple PIC maybe?) where you can put a small code in there that emulates the mapper you want (such that it can emulate most of the common mappers used in homebrew). In this case, a new iNES mapper number should be added for this, and then any variation of the mapper you make up for this can also be emulated in NES emulators on computer loaded from a .NES file (and that a (Free) program can be written to transfer a .NES file to the cartridge and vice versa)
- Part-compatible= Mixed Sunsoft's FME7 and MMC3
- Fits as well as being compatible with Retrozone's Retrokit MMC1
- Mapper that has support for a 8-16 bit IRQ select reg
- 16 bit IRQ compatible with Sunsoft IRQs
- 8 bit MMC3 compatible IRQ
- Mirroring Modes from FME7 (or MMC5-like custom mirroring)
- 00-1f = ROM and CHRROM banks
- 8k RAM Bank(s) at:
6000 if REG $6000 = $80
8000 if REG $8000 = $80
A000 if REG $A000 = $80
C000 if REG $C000 = $80
E000 = Fixed, no RAM