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.
Post Reply
User avatar
ikari_01
Posts: 141
Joined: Sat Jul 04, 2009 2:28 pm
Location: Wunstorf, Germany

Post by ikari_01 »

Yes. It will be switchable between "force 50Hz", "force 60Hz" and "auto".

This is the planned behavior. "PIC" is the user setting, "game" is the detected CIC region.

Code: Select all

PIC	 game		behavior
------------------------------------------------------
50Hz	50Hz		50Hz constantly
50Hz	60Hz		60Hz for x sec, then switch to 50Hz
50Hz	no CIC	 50Hz constantly

60Hz	50Hz		50Hz for x sec, then switch to 60Hz
60Hz	60Hz		60Hz constantly
60Hz	no CIC	 60Hz constantly

Auto	50Hz		50Hz constantly
Auto	60Hz		60Hz constantly
Auto	no CIC	 50Hz or 60Hz (tbd)
Zonomi
Posts: 62
Joined: Wed May 09, 2007 12:45 pm

Post by Zonomi »

ikari_01 wrote: The PIC mod will also allow the user to set a preferred region. e.g. it can stay in 60Hz mode whenever possible except when a PAL game is detected. In that case it will set 50Hz mode for ~10 seconds to trick the software region detection, then switch to 60Hz.
Some protected games do their check during the game, not only at the beginning. So, you can play about 10 minutes and then get the "this game pack is not designed" message.
User avatar
ikari_01
Posts: 141
Joined: Sat Jul 04, 2009 2:28 pm
Location: Wunstorf, Germany

Post by ikari_01 »

PICs don't come with crystal balls, so you'll have to switch manually in that case. And there's always the auto option.
User avatar
kyuusaku
Posts: 1665
Joined: Mon Sep 27, 2004 2:13 pm

Post by kyuusaku »

I would give a hold-reset based override option.
User avatar
ikari_01
Posts: 141
Joined: Sat Jul 04, 2009 2:28 pm
Location: Wunstorf, Germany

Post by ikari_01 »

That's exactly what's planned. Current setting is indicated by a dual LED. Inspired by seb's switchless mod. I just heard about the rainbow mod for the first time here :)
User avatar
Marcel
Posts: 6
Joined: Fri Apr 16, 2010 7:07 am

Post by Marcel »

Hi there. These new findings are quite exciting.
Zonomi wrote:Some protected games do their check during the game, not only at the beginning.
ikari_01 wrote:PICs don't come with crystal balls, so you'll have to switch manually in that case.
One doesn't need a crystal ball ^ ^
AFAIK, a majority of games detect the region on runtime by checking the fourth bit of register $213f.

I don't know if you can address this register from the PIC though. See Anomie's register doc for the details.

--
edit: link
Last edited by Marcel on Mon Apr 19, 2010 3:26 am, edited 1 time in total.
caitsith2
Posts: 74
Joined: Mon May 26, 2008 11:41 pm

Post by caitsith2 »

Marcel wrote:I don't know if you can address this register from the PIC though. See Anomie's register doc for the details.

--
romhacking.net does NOT allow hotlinking to any of its documents. Even copy/pasting the link does NOT work. You instead have to link here.
User avatar
jims cool
Posts: 119
Joined: Fri May 11, 2007 12:47 pm
Location: Guelph, Ontario, Canada
Contact:

Post by jims cool »

just so the ideas out in the open.. i'm using the delay at the beginning of the SNES lock to detect the system because the NES doesn't have it
Marcel wrote:One doesn't need a crystal ball ^ ^
AFAIK, a majority of games detect the region on runtime by checking the fourth bit of register $213f.

I don't know if you can address this register from the PIC though. See Anomie's register doc for the details.
most adapters use a chip such as the TIBPAL16L8-25CN or some other programmable array logic... if i remember correctly i saw a AVR or PIC MCU with a PGA on board. i don't know if it has enough pins and it could also be over kill.. :)
Near
Founder of higan project
Posts: 1553
Joined: Mon Mar 27, 2006 5:23 pm

Post by Near »

caitsith2 wrote:romhacking.net does NOT allow hotlinking to any of its documents. Even copy/pasting the link does NOT work. You instead have to link here.
blargg came up with a better solution last time this came up:

http://web.archive.org/web/200806040318 ... 5Dregs.txt =)
User avatar
kyuusaku
Posts: 1665
Joined: Mon Sep 27, 2004 2:13 pm

Post by kyuusaku »

Microcontrollers don't make very good address decoders..
User avatar
ikari_01
Posts: 141
Joined: Sat Jul 04, 2009 2:28 pm
Location: Wunstorf, Germany

Post by ikari_01 »

How to inject a bit? I can decode the B Bus address + /PARD and drive an output connected to D4 but the PPU will still drive its own, won't it?
Does it come down to just hoping that the logic gate's output driver is strong enough to override the PPU output? Or is there a way to tell the PPU to tristate its data lines?

Not that I'm planning to implement this right now, just curious. Won't have time for the next couple of days. And of course it cannot be done with a PIC alone. ;)
User avatar
Jeroen
Posts: 1048
Joined: Tue Jul 03, 2007 1:49 pm

Post by Jeroen »

I don't think overriding the line is a good idea...
User avatar
Memblers
Site Admin
Posts: 3901
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Post by Memblers »

Seems a little extreme to add hardware to do what can probably be done by changing one instruction into a NOP in the program.
User avatar
jims cool
Posts: 119
Joined: Fri May 11, 2007 12:47 pm
Location: Guelph, Ontario, Canada
Contact:

Post by jims cool »

Memblers wrote:Seems a little extreme to add hardware to do what can probably be done by changing one instruction into a NOP in the program
this is fine if you have a flash cart or some flash roms and you don't care if you deface your game. game genie could patch a game but it probably doesn't work on most of them... the chip is only about $2.50
ikari_01 wrote:How to inject a bit? I can decode the B Bus address + /PARD and drive an output connected to D4 but the PPU will still drive its own, won't it?
Does it come down to just hoping that the logic gate's output driver is strong enough to override the PPU output? Or is there a way to tell the PPU to tristate its data lines?
the logic gate's output driver is strong enough to override the PPU output.. this is how most of them work but it would be safer if you lift the pin. B Bus is a good idea (less address lines) you really only need to listen on the address lines for the $213f register then override D4. :)

EDIT: $213F seems to originate from S-PPU2 (U3, 5C78) pin 55 and 73 are both D4, these pins would be lifted and connected together.. the other soldering point could be U4 pin 16.. the PAL could then make D4 one or zero without bus conflicts
Hura
Posts: 1
Joined: Wed Apr 28, 2010 2:43 am

Post by Hura »

Hi
I've tested the lock version with a PAL snes (50/60 Hz switch already installed).
It works with all games besides SA-1 games.

Star Ocean works without graphic glitches, but the only SA-1 game I own (PGA Tour 96) doesn't star. It does work on a mint PAL SNES, so the cartidge isn't faulty.
Post Reply