You're viewing posts in the nintendo category.
View all posts instead.

SuperCIC = The best mod for your Super Nintendo

If you own a Snes and some import games, your best bet to playing them up to now was using a converter or disabling the CIC chip inside the console.

There are many different types of converters, and they vary a lot with compatibility. The basic ones work by passing the Snes the CIC chip signals from the local cart and the game info from the import cart, tricking the Snes into thinking that it has a local game plugged in. Nintendo got wise to these converters and built checks into later games that locked out the game if it didn’t pass them. after this, more advanced converters came out such as the Datel programmable universal adapter, which allowed you to enter codes to get round the extra checks in most of the troublesome titles, but neither of these options can play ALL games (SA-1 titles being the main problem).

Datel programmable universal adapter

After reading this thread on the nesdev forums last year, I made a mental note to check back periodically to see if it went anywhere. I checked back in May to find that forum user ikari_01 had released SuperCIC.

SuperCIC is a PIC microcontroller based CIC replacement which works in any region Snes. Its main features are:

  • lock allows the region to be set+saved by holding the reset button.
  • region can be set to 50Hz, 60Hz, or autodetect based on key CIC.
  • selected region is indicated by LED color (uses a dual LED).
  • has a ~9s timeout before switching from detected to forced region to trick most games. This feature can be enabled/disabled using a configuration pin on the lock.

I bought me a PIC programmer, some PIC 16F630 chips and got to work. I won’t bother with a guide as Klaus at Wolfsoft.de has already done a great job with his.

I opted to remove the CIC chip and use the resistor, I then mounted the SuperCIC in an IC socket nearby (the resistors you can see go off to the tri-colour LED).

SuperCIC Installed

My Snes now runs all my games, no matter what region, even my only SA-1 based cart, PGA Tour 96.

Best option is to do the mod to an American Snes, snap the tabs off and you have a system that will play ANY game with no need to mod the cart slot.

My Retrode N64/GB/A2600 adapters have arrived

Well look what we have here…

Retrode N64/GB/A2600 adapters

Guess I had better crack out my Game Boy carts and have a play :)

Retrode Virtual Boy adapter build #3

the finished adapter

Behold, It is finished!

Since the last update, I finished securing the bits inside the case, and made a nice label for the front. I have tested it with the following games, a couple of them don’t show the proper names, but that is due to them being in Katakana characters, they all work fine apart from one, Red Alarm.

  • Virtual Boy Wario Land - USA
  • Galactic Pinball - USA
  • Mario Clash - USA
  • Teleroboxer - USA
  • Mario’s Tennis - USA
  • T&E Virtual Golf - JPN
  • Panic Bomber - JPN
  • V Tetris - JPN
  • Red Alarm - JPN

I am not sure why, but it registers as a 512KByte file when it should be a 1024KByte file. The other 1024KByte game I have works fine, so am not sure why this one isn’t behaving.

I will try and post a video of the adapter working soon.

stickers printed out ready for applicationnice and informativeready for use

This is the final pin-out I used if you fancy making one yourself!

---------------------------------------
Sega Edge       Signal          VB Edge
---------------------------------------
A1              gnd             1, 2
A2              +5v             54
A3              a8              15
A4              a11             22
A5              a7              17
A6              a12             24
A7              a6              19
A8              a13             26
A9              a5              21
A10             a14             28
A11             a4              23
A12             a15             30
A13             a3              25
A14             a16             32
A15             a2              27
A16             a17             34
A17             a1              29
A18             gnd             33
A19             d7              38
A20             d0              39
A21             d8              37
A22             d6              42
A23             d1              43
A24             d9              41
A25             d5              46
A26             d2              47
A27             d10             45
A28             d4              50
A29             d3              51
A30             d11             49
A31             +5v             36, 53
A32             gnd             59, 60
B1              N/A             -
B2              N/A             -
B3              N/A             -
B4              a9              18
B5              a10             20
B6              a18             13
B7              a19             11
B8              a20             16
B9              a21             -
B10             a22             -
B11             a23             -
B12             N/A             -
B13             N/A             -
B14             N/A             -
B15             N/A             -
B16     /C_OE (Output Enable)   35
B17     /C_CE (Chip Enable)     31
B18             N/A             -
B19             N/A             -
B20             N/A             -
B21             N/A             -
B22             d15             40
B23             d14             44
B24             d13             48
B25             d12             52
B26             N/A             -
B27             N/A             -
B28     /LDSW (not used)        -
B29     /UDSW (not used)        -
B30             N/A             -
B31             N/A             -
B32     /CART_IN (not used)     -
---------------------------------------

Retrode Virtual Boy adapter build #2

There were no updates last month as I was busy with other things, but I am aiming to get this finished soon.

After spending a couple of hours last night and again tonight, I have got it to a point where it works again, and fits in its case. I tried a couple of other games that I didn’t try before, and they both worked. It’s so much easier now it’s just a question of plugging it in, instead of doing it pin by pin!

It was mainly a case of routing each wire from my home made edge connector to the relevant ROM point on the megadrive cart board as neatly as I could.

Next step is to make the vb cart connector nice and secure in the case, I will probably try and get that bit done later this week.

Lots of wires solderedvb carts fit on nicelylooks quite neat all together

Am really pleased with how it looks…

looks quite neat all together

Retrode Virtual Boy adapter build #1

I have finally started to work on the nice looking, easily usable adapter.

First thing was to somehow make a socket for the Virtual Boy cartridges, something sturdy that you can just push the cartridge onto, rather than have to insert individual pins each time. I have had this in mind for a while now, trying various bits to see if they fit or not. I finally came up with something suitable. the pitch for a 2.5” HDD is the same as it is for the Virtual Boy, but unfortunately, the pin size is too big. I managed to find a couple of sockets that connect a 2.5” HDD to a laptop main board, these looked perfect.

I was able to push the pins from a PCMCIA socket through this HDD socket and then solder them in place from the back, leaving a convenient pad to solder the wires to later. I then glued them together so that there was the full 60 pins needed (I will use the extra bits at the sides to fix it in place).

I cleaned the sticker off my donor Mega Drive cartridge too, ready to make some cuts, hopefully, it will look quite neat when it is finished.

HDD socketHDD socket with PSMCIA pins soldered inMega Drive cartridge case cleaned up

It fits really well, wish I had found these earlier…

Final testing of Retrode Virtual Boy adapter

If you haven’t already read the initial tests of the adapter, I would advise doing so before reading this.

Okay, so where were we? Ah yes, It didn’t work. Matthias suggested that I send him a copy of the dumped ROM so that he could cast his ever-so-slightly-better-qualified-eye over it, to hopefully find something of worth in it. Which he did.

Somehow*, he noticed that the addressing was shifted by 1 bit, and suggested checking my wiring, as the text file I had followed showed that the Mega Drive address lines started on a1 where as the Virtual Boy’s started at a0. Sure enough, I had wired a1 to a1 and so on, meaning that they were all out by one. Oops.

*This was found by looking at the first few bytes of the dump in a hex editor. If a game is 4Mbit, it should wrap around at 0x080000 (512kByte). The Dump started over at 0x040000 (256kByte) and everything was half as long as it should have been, this pointed to all addresses being off by a factor of two. After noticing the mismatched pin numbering in the text file, it all became clear.

I unplugged all of the wires, and put them back taking into account the Virtual Boy’s shifted address lines. I made another dump and sent it to Matthias. This was better he informed me, but still didn’t look quite right. He said that the data lines looked like they were crossed** and suggested swapping d0-d7 with d8-d15.

**Reading BB AA DD CC where it should be AA BB CC DD points straight at the data bytes being flipped. There are different standards as to how the bytes in a 16-bit “word” are aligned in memory, little-endian and big-endian. After a quick bit of research, it was found that the Virtual Boy CPU (NEC V810) is little-endian and the Mega Drive CPU (Motorola 68000) is big-endian. The Virtual Boy cart data lines needed to be switched to match the order that the Retrode was expecting.

So again I unplugged all of the wires, and again I put them back in, only this time switching the data lines (by this time I had added a strip of masking tape with the socket numbers written on it to the Virtual Boy PCB to aid in re-seating the pins). Again I sent a dump to Mathias, and this time it was almost as it should be, but there was still an issue with the data lines***, he suggested checking their continuity with a multimeter, which I did.

***Comparing the Retrode dump to a known good dump showed that all the data was correct apart from one recurring bit. This bit corresponded to data line 14 on the Mega Drive side.

It was now I found my second wiring mistake, somehow I had switched the d7 and d14 lines which was causing the issue (I am blaming the tiny holes I was having to push the pins into…). After swapping them back to their correct locations, I made another dump, and this time, it had the correct information in it!! The file was the wrong size, but this was due to the Retrode not finding the correct info where it thought it should be, as far as the Retrode was concerned it had a MD cart plugged in.

I sent the ROM dump over to Matthias. After a couple of attempts, he was able to make a new firmware file for the Retrode that correctly reads the game title and file size! All this without the hardware in front of him, clever chap!

I’m not entirely sure why I had to switch the data lines over as it wasn’t mentioned in the text file. Perhaps it is something to do with the way the Retrode reads them? All I know is that it works, mainly due to the help I received, thanks Matthias.

The working test Retrode Virtual Boy adapter The working test Retrode Virtual Boy adapter.

Screen shots of different sized games registering their sizes correctly and running in Reality Boy:

Next task is to make it more user friendly and look pretty…

Retrode Virtual Boy adapter reading Mario Clash Edit: Added more detail regarding how the errors were found.

Initial testing of Retrode Virtual Boy adapter

When Matthias posted the news that he was working on an adapter for Atari 2600 carts for the Retrode, it made me think of something I had read years ago about Nintendo’s Virtual Boy cartridges (which I mentioned in the comments on the news post). It was a text file that documented how to connect a Virtual Boy cart to a Mega Drive copier. This was possible as they both use the same ROM (albeit in a different form factor). I never got round to trying it on any of my Mega Drive copiers, so I thought I would give it a try with my Retrode.

I will do a proper write up when I have more time. Here is a quick bit of info on what I did:

  1. Got a donor Mega Drive cart and Virtual Boy cart to try and read.

  2. Removed a PCMCIA slot from an old laptop.

  3. Extracted the pins from the slot (unfortunately the Virtual Boy cart doesn’t use a standard pitch connector).

  4. Tested the fit of the pins in the cart, seemed to be okay.

  5. Undressed both carts.

  6. Soldered wires to the PCMCIA slot pins.

  7. De-soldered the ROM chip from the Mega Drive cart PCB.

  8. Soldered the wire/pin combo leads to the Mega Drive PCB in place of the ROM chip.

  9. Joined the relevant wires from the Mega Drive PCB to the Virtual Boy cart as per the details in the text file.

I plugged the Retrode in to my computer and altered the Mega Drive file extension to be .vb, saved the config file and plugged the mess of a cart in. It showed up a file that was 6.12 MB which was obviously wrong as Mario’s Tennis is a 4mb cart (should show up as 512 KB). I tried it in an emulator anyway, but it didn’t boot, it just showed the error ‘Invalid PC - 00000000’.

I had a look at the file in a Hex editor and compared it to a known good dump of Mario’s Tennis, but couldn’t find anything that was visible in the good dump of the game.

I haven’t given up, I will re-check the connections are all going to the right place, and try again. If that fails, I will probably solder the wires directly to the Virtual Boy cart, to remove the possibility of poor contact between the pins and the connector. If I still get the same resulting file, I will have to get the old Mega Drive copier out and try it in that, to see if the text file information is correct.

I leave you with a photo of the mess in the Retrode.

Edit: Read part two, where I manage to get it working!

Current bits I am working on

Thought I would make a quick list of things that I am currently fiddling with.

Retrode

This is an amazing device that allows you to play your SNES and Mega Drive cartridges on your PC/Mac/Wii/Anything that can run SNES/Mega Drive roms from a USB device. Still not quite sure how Matthias has managed it, but he has just shipped his first lot of pre-orders out, not bad for a self financed project.

I have already added the joypad ports for USB SNES pad usage, but I have lots more planned for it.

Read more about the retrode at www.retrode.org

Super Game Boy

I bought a flashcart for the original Game Boy a while ago and purchased myself a copy of LSDJ with the intention of having a go at making some chiptunes. Unfortunately, I wasn’t able to whip up anything worth listening to, but it gave me an idea for a hardware mod involving the Super Game Boy and a four player adapter.

Super Wild Card DX2

I have a few SNES consoles, PAL, NTSC and one with lockout chip and 50/60Hz switches. My SWCDX2 came with an NTSC lockout chip in it but I wanted the option of using it on any of the consoles so I came up with an idea for a region switch on it.

I will get round to writing about them in more detail at some point, hopefully not too far away.