• What is the CD-i?
    • CD-i Players
    • CD-i Accessories
  • Open Source
    • Hardware Development
    • Hardware Repair
    • CD-i Title Development
    • CD-izi Authoring Tool
  • Downloads
  • CD-i Emulation
    • CD-i emulator 0.5.3 beta 5 – Titles compatibilities
  • Chronicles
  • High Scores
  • Forum
  • My Account
    • Login/Logout
    • Messages
  • Contact us
    • Website’s History
  • Register
The World of CD-i

SNES to CD-i adapter

The World of CD-i member Lerry Erb using LarryE as username shared with us his work, and it is a pleasure for us to publish it right here!

You can download all the necessary documents to make your own SNES to CD-i adapter right here:
SNEStoCDi-master

SNEStoCDi is an Arduino-based project that allows to use a Nintendo SNES (Super NES) / SFC (Super Famicom) gamepad on a Philips CD-i player. SNEStoCDi requires no more electronic than the Arduino itself. It’s a pretty easy project for anyone with basic knowledge about Arduino and soldering.

SNEStoCDi is released under Creative Common CC-BY 4.0 licence:
http://creativecommons.org/licenses/by/4.0/legalcode

How to make your own SNEStoCDi adapter

First of all, you need the Arduino IDE:
https://www.arduino.cc/en/Main/Software

You also need an Arduino, of course. I use Arduinos UNO and Nano but SNEStoCDi should work with most 5v Arduino versions.

To do a good and durable adapter, you will need a SNES/SFC gamepad connector (a simple way is to recycle an extension cable) and a Mini-DIN 8-pin male connector.

DO THE WIRING:

  • Connect the SNES/SFC connector to your Arduino:
    Please report to wiring.jpg for more information.
  • Connect the Mini-DIN 8-pin CD-i connector to your Arduino:
    Please report to wiring.jpg for more information.

IMPORTANT:

  • The RTS line from the CD-i must be connected to an analog input. If you’re curious about that, report to the Tech Stuff part.
  • The Arduino will be powered by the VCC provided by the CD-i. Do not connect any other power source to the Arduino !

UPLOAD SNEStoCDi SOFTWARE TO YOUR ARDUINO:

  • Connect the Arduino to your computer.
  • Add the SNESpad library (by Rob Duarte) to the Arduino IDE. The library provided with SNEStoCDi is a modified version of SNESpad, optimized for performances and better compatibility with the current Arduino IDE.
    For information on installing libraries, see:
    http://arduino.cc/en/Guide/Libraries
  • Open the SNEStoCDi sketch.
  • Check that the Arduino pins on the sketch match your wiring, if not adjust the sketch with the right pins. The sketch matches the pinout showed on the “wiring.jpg” file.
  • Upload the compiled sketch to your Arduino.

That’s it, you already finished 🙂 the SNEStoCDi adapter is an plug-and-play: just plug it to your CD-i, plug your SNES/SFC pad, start your CD-i and go suffer on some terrible games… 🙂
I’d be happy to know about your build, so don’t hesitate to contact me to let me know how you made your own SNEStoCDi adapter.

SNEStoCDi has been tested successfully with Arduinos UNO and Nano, on a 470 Philips CD-i.

SNEStoCDi MAPPING & FANCY STUFF

The buttons mapping is probably exactly what you expect:

  • The Dpad acts as a Dpad.
  • The “Y” button acts as “Button 1”.
  • The “B” button acts as “Button 2”.
  • The “A” and “X” buttons both act as “Button 3”, which is in fact “Button 1 + Button 2”.

The SNES/SFC provides way more buttons than a CD-i gamepad, so I had the opportunity to add some fancy stuff:

  • The cursor speed is adjustable in 5 steps. the “L” trigger shifts one step down, the “R” trigger shifts one step up.
  • The “start” button resets the speed to the default one (step 3).
  • The speed setting is saved into the Arduino’s EEPROM, so SNEStoCDi will apply your last speed setting the next time you will use it.
  • The “select” button changes the buttons mapping and inverts “B” and “Y”. another “select” press changes the mapping again.

TECH STUFF

You might be curious about the use of an analog input where there is no analog signal. The reason is that the CD-i and the Arduino have different logical levels: The CD-i asserts the RTS line at about 2.4 volts when the Arduino needs about 3 volts on digital inputs. By reading the RTS line on an analog input, I’ve been able to set manually a lower “Virtual Logical Level”. This allows to use the Arduino alone, without any other electronic component to adapt the levels.

For some reason, all my attempts to use the hardware UART to send data to the CD-i failed. This is why I used NewSoftSerial (called SoftwareSerial in the Arduino IDE) to emulate another UART. As it is only used to send data, the RX interrupt is not really used and this is why the RX pin is not connected. The CD-i doesn’t send anything on its TX, it only communicates on the RTS line, this is the reason why the communication between the Arduino and the CD-i is kind of asymmetrical.

THANKS

This project is a work of Laurent Berta’s SNEStoCDi project, so I would like to thank him for his fantastic code base which I could lightly tweak and create PCBs for. I would also like to thank Rob Duarte and Paul Hackmann who provided libraries, code, and documentation which allowed him to create the SNEStoCDi project.


2 Comments

2 thoughts on “SNES to CD-i adapter”

  1. Chiemsee says:
    29/11/2019 at 11:13

    Hi, how do I get in contact with LarryE?

    Log in to Reply
    • omegalfa says:
      29/11/2019 at 11:39

      Hello Chiemsee,
      You just need to use our “Messages Tool” in the right side of the site, under “Guess the Picture”.
      Create a new message and write his name under “to”.

      Log in to Reply

Leave a comment Cancel reply

You must be logged in to post a comment.

CD-i titles

  • [01] Games (144)
  • [02] Kids (82)
  • [03] Multimedia (275)
  • [04] School 2000 (8)
  • [05] Homebrew (7)
  • [06] Music (31)
  • [07] Karaoke (197)
  • [08] CD+Graphics (24)
  • [09] Photo-CD (41)
  • [10] Digital Video on CD-i Movies (21)
  • [11] Digital Video on CD-i Music (14)
  • [12] Video-CD Movies (128)
  • [13] Video-CD Music (17)
  • [14] Video-CD Others (39)
  • [15] Video-CD Sampler / Demo (6)
  • [16] Web-i / CD-Online (5)
  • [17] Internal Use (1)
  • [18] Professional (98)
  • [19] Promotional (16)
  • [20] Demonstration Only (52)
  • [21] Free Demo Discs (19)
  • [22] Tutorial discs (2)
  • [23] Testing Discs (86)
  • [24] Unreleased (46)

More…

  • Catalogue #6900000-0 (USA) (223)
  • Catalogue #69900000-0 (Europe from USA) (24)
  • Catalogue #8100000 (Europe) (156)
  • Catalogue #8110000 (United Kingdom) (101)
  • Catalogue #8120000 (France) (179)
  • Catalogue #8130000 (Germany) (123)
  • Catalogue #8140000 (Netherlands) (200)
  • Catalogue #8150000 (Italy) (57)
  • Catalogue #8160000 (Iberica) (47)
  • Catalogue #8170000 (Scandinavia) (8)
  • Catalogue #8180000 (Belgium) (29)
  • Catalogue #8190000 (Worldwide) (46)
  • Catalogue #PCIM/X-00000 (Japan) (27)
  • Catalogue PC/MAC (17)
  • CD-i Bridge (21)
  • CD-i Ready (40)
  • Exclusive Regional titles (398)
  • Interviews (4)
  • Reviews (24)
  • Tips & Tricks (23)
  • USA Release (43)

Search titles

Guess the picture!

Guess pic!

Recent forum topics

Hello to all CD-i Fans !by WilliamBananaHello everyone, I am french and 31 years old. I recently joi … Read More4 days ago
UK CD-i Magazine Indexby oonagootasoloI've just uploaded an index of the contents of all 20 issues … Read More2 months ago
Announcing CD-i Emulator version …by CD-i FanA new beta release of CD-i Emulator is now available from the Down … Read More3 months ago
USB2CDI or PSX2CDI tutorials for …by the_activityHi, Can somebody provide me with some easy to understand tutori … Read More4 months ago
Hello World of CD-i Community!by DataProHello and welcome, The CDi is a system whose software library is … Read More2 months ago, 2 Replies

CyberChimps WordPress Themes

© The world of CD-i [Please add credits to us when using any content from this site]