Page 5 of 5

Posted: Wed Nov 22, 2006 9:30 pm
by kyuusaku
Perhaps writing during rendering could be as simple as a 2006/7 clone which empties the buffer on the rising edge of /rd && /wr (or during a read cycle of PPU A13 = hi)

I like the idea of using fast SRAM for DMA as well. Too bad PRG ROM (and internal VRAM) is so slow..

Posted: Thu Nov 23, 2006 10:39 am
by Bregalad
Seems right now it's worth the wait to have both the actual reverse enginer of the CIC and the latest PIC18 devices with PMP port !
Using stupid tricks to overload the CIC with -5V and make it overheight are a bit fun, but a bit stupid I found.

Posted: Thu Nov 23, 2006 12:41 pm
by Memblers
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.

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.

Posted: Thu Nov 23, 2006 12:58 pm
by Memblers
And also, if we want the PMP on the PIC, we'd be better off just getting it now from the 24F series. It looks like the 18F ones being made with the PMP are also standard Flash (rather than the enhanced Flash like the 18F4525). But with them all being fine-pitched parts, as much as I'd like having more I/O pins, I'm not too excited about soldering a bunch of those.

Posted: Fri Nov 24, 2006 10:26 am
by Bregalad
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.
The microprocessor is most certainly the same, only the code will differ.
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.

Posted: Wed Nov 29, 2006 1:00 pm
by Bregalad
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.
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).
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.
Also is the CIC reset active high or low ? If it's active high an inverter should be added before pin 5, because PIC's reset is active low. This could be done with a 74HC04, 74HC14 or a comparator easily.

Posted: Sat Dec 15, 2007 5:10 am
by jargon
jit dukescript style high-level programmable.

possibly rpn.

(yes i am insane.)

Posted: Sat Dec 15, 2007 8:57 am
by tepples
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.

Posted: Mon Feb 07, 2011 6:44 pm
by zzo38
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.
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.

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)

Posted: Tue Feb 08, 2011 11:47 pm
by Hamtaro126
A Really inexpensive Mapper, About $5-$10 for one or the likes, It can be:

- 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

That's it