What happened with SNES CIC reverse engineering?

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
magno
Posts: 193
Joined: Tue Aug 15, 2006 5:23 am
Location: Spain
Contact:

Post by magno »

WOW!!!

It's amazing what you have avhieved!!!!! CONGRATULATIONS TO EVERYBODY, SPECIALLY YOU, IKARI_01!!

I hope I could have spare time to do that code into a little CPLD...
hyarion
Posts: 164
Joined: Tue May 05, 2009 6:12 pm
Contact:

Post by hyarion »

why do you want to have it in a PLD when you can have it in a PIC?
PICs are less expensive and easier to program than most PLDs
magno
Posts: 193
Joined: Tue Aug 15, 2006 5:23 am
Location: Spain
Contact:

Post by magno »

hyarion wrote:why do you want to have it in a PLD when you can have it in a PIC?
PICs are less expensive and easier to program than most PLDs
Because is the first step to have a full system-on-chip; that 's one of the projects I would like to finish before I die :)
Emulating SuperFX chip via programmable logic is the other one XD
User avatar
jims cool
Posts: 119
Joined: Fri May 11, 2007 12:47 pm
Location: Guelph, Ontario, Canada
Contact:

Post by jims cool »

nice job ikari_01!

does anyone have a 3197 / 6117 laying around they don't need or could donate?
it's for the UK/Italy/Australia regions. need one for testing..
apparently the timing is a little different...
i'll send the person a copy of my chip when it's finished as a thank you :)

i also don't have 3195/Europe and 3196/Asia but they should work the same as the 3193.
for the snes i have F411/D411 but the PAL chip is the same

guess i'll offer the same deal with the other chip numbers :)
don't think i need them but they would be good for testing..
so if you send me a cic i don't have i'll send you a programmed atmega8-16pu

about my last post for the load seed from table loop i decided to load two bytes in parallel and interweave the seeds..
the seed is selected with a 0-7 and i still have an extra 56 cycles to play with :)

i'll be testing the nes lock/key today
working on the snes part i noticed lots of change in code
the port3 pins could have something to do with disabling the game??
haven't looked much into that yet

hope implementing both the snes and nes cic's doesn't ugly up my code lol
User avatar
ikari_01
Posts: 141
Joined: Sat Jul 04, 2009 2:28 pm
Location: Wunstorf, Germany

Post by ikari_01 »

Port 3 is the "tristate register", it is used to set the pin directions of port 0. It does not appear to be connected to any physical pins.
Going from snes to nes should be as easy as
  • calling the mangle routine once instead of three times
  • not changing pin directions on the fly
  • replacing the seeds
  • spending an hour readjusting the timing :D
User avatar
jims cool
Posts: 119
Joined: Fri May 11, 2007 12:47 pm
Location: Guelph, Ontario, Canada
Contact:

Post by jims cool »

thanks ikari! :)

EDIT: if anyone has a AVR they think it should compile for let me know
i'm writing it for atmega8 but it will compile for attiny's

it's taking a little longer then i thought it would.. not that i'm racing lol
for the nes/snes only parts i'm just using a flag and it's working out perfect
as an option the delay at the start of the snes cic code can trigger snes mode
this will allow us to use 6 pin attiny4 and 9 as a universal key! :)
pin connections would be P0.0, P0.1, 4 Mhz, RST IN, VCC, GND

some of the code can be made smaller by putting it into loops and arranged for better flow
it would be something if i could make it fit into 512 bytes

i'm going to look in to copyright a little more just encase lol
not too worried about it.. my code is different but i wan't to know what they call different :)
mmmonkey
Posts: 2
Joined: Sat Jun 05, 2010 10:28 am

Post by mmmonkey »

Hi

My first post here :o

I have just tried a couple of the PICs from ikari_01 on a PAL SNES, the first one on a 12f629 works - except doesn't start my only SA-1 game (Kirby 3) - not a problem - there's people in here with mixed success stories on SA-1 games and this mod.

The second - the SuperCIC, first of all - it works with my Kirby 3 :D - that's very impressive!!

There are two problems I'm having though:

If I have it on Auto ORANGE, it remembers it this setting, but after switching the console off and back on again, the LED doesn't light at all, it's still operating in Auto mode, just no LED. If I reset the console the LED stays ORANGE, but the screen goes very bright, black is now grey it's so bright.

If I have it on 60hz RED, it remembers the video mode after switching the console off, but the LED will be GREEN.

50hz mode works fine.

Have I done something wrong?

Oh, I removed the original lock chip and put the 10k resistor in there. And I have pin 4 of SuperCIC at 5v. I am using a 3 leg LED.

Many thanks
Pete
(edited to make corrections)
User avatar
ikari_01
Posts: 141
Joined: Sat Jul 04, 2009 2:28 pm
Location: Wunstorf, Germany

Post by ikari_01 »

Currently I have no clue about the bright screen issue, it never happened to me so far.

The LED color problem may be related to pin 7 of the PIC. Pin 7 selects LED polarity. Connect it to 5V for common anode LEDs or GND for common cathode LEDs. If it is left unconnected the input will sometimes read 1 and sometimes 0, resulting in confusion of the LED color.

See also: http://www.circuit-board.de/forum/viewt ... 572#p35572
mmmonkey
Posts: 2
Joined: Sat Jun 05, 2010 10:28 am

Post by mmmonkey »

Heheh

I just realised I forgot about Pin 7 on the SuperCIC :roll: . I just grounded it and all is now working properly. Including the grey screen issue.

Ikari_01, thank you so much for releasing the BEST snes mod. And as I said in my message the other day - I will add a guide to my site and give all credit to you :D

Thanks again
Pete
User avatar
consolingmyself
Posts: 4
Joined: Sat Jul 17, 2010 8:14 am

Post by consolingmyself »

Hi, just registered so that I could say thanks to ikari_01 and anyone else that helped bring SuperCIC to release.

I tried it our using a PIC16F630 on a Pal SNES and it works great. I removed the CIC chip and used the resistor.

jims cool: Are you still after a 3197? If so, I have one here that I can send you, '3197A' from a Pal NES.

Jon
User avatar
ikari_01
Posts: 141
Joined: Sat Jul 04, 2009 2:28 pm
Location: Wunstorf, Germany

Post by ikari_01 »

It was brought to my attention that PowerPak users cannot enter the save menu anymore when using the SuperCIC lock because it hogs the reset button.
Here's a test firmware that will reset the console for ~6 seconds when the reset button is tapped twice within 586ms. (Of course it's also still a full-featured SuperCIC lock.)
I'd like somebody to try it out as I don't have a PowerPak myself and was only able to observe the behavior of the SNES itself.
kitnoos2002
Posts: 1
Joined: Thu Jul 29, 2010 2:29 pm

Post by kitnoos2002 »

Hello ikari_01 and all!

It's ok for this test firmware with PowerPak 1.05b2.
After pressed twice on reset, and after few second, Powerpak Menu appears on the screen.

Thank you !!!
caketin
Posts: 1
Joined: Mon Aug 16, 2010 1:32 pm

Post by caketin »

Hi ikari_01 and all!

Any chance you could tell me how to put the hex files into the PIC16F630 and the PIC12F629 correctly?
I came across the files on wolfsoft blog website.
In the zip file contains A LEGAL DISCLAIMER FILE x2 hex files and x2 .asm files.
As I understand it .asm is the source files for people that understands PIC chip assemby.
How do you write supercic-key.hex + supercic-lock.hex to the appropriate PIC chips?

The supercic-lock.hex is the code for a PIC16F630 which goes in the snes console and the supercic-key.hex is PIC12F629 to be used in a snes cartridge?
If you use a PIC16F630 with the hex file supercic-lock.hex The fuse setting on the chip id or what ever your programmer calls it set to 34C4 Am I correct?
Sorry to ask questions like this but from the start of this supercic project it appears to of changed from its initial release.

Many Thanks
caketin
User avatar
ichigobankai
Posts: 18
Joined: Thu Feb 17, 2011 1:42 pm
Location: France
Contact:

Post by ichigobankai »

Awesome mod ikari_01 !

I've got just one question;
The supercic lock works without any problem.

I've tried the supercic Key with a 12f629, programmed successfully without problem (on my wellon vp 280). Soldered with your instructions on the asm file.

On my PAL snes console, without any mod/modification the game refuse to start...with another SNES (old switching mod, pal/ntsc and 50/60hz) the game run only with ntsc and 50 or 60 hz, in pal its never starts...

Did you have any idea ?

Thanks and respect again for this incredible mod ^^
User avatar
MottZilla
Posts: 2835
Joined: Wed Dec 06, 2006 8:18 pm

Post by MottZilla »

SNES games can check wether the PPU is running in NTSC or PAL (or 60hz or 50hz) mode and can refuse to run if the mode is incorrect. Game Genie or Action Replay is needed to play these games unless you modify your console. This is all separate from the CIC. The CIC is just the first block against playing imports. With the wrong CIC the SNES will stay in a Reset state. With a region free type CIC this won't happen but the software can check if the system is running in NTSC or PAL mode and refuse to run or just show a message warning you that you are in the wrong region.
Post Reply