Hardware (items in italic were used in my assembly):
- Raspberry Pi with Power Supply (Raspberry Pi 3 Model B with 2.5 Amp-5V Vilros Power Supply)
- 8 Gb or larger microSD Card (16 Gb SanDisk microSD card)
- Case for Raspberry Pi (Vilros black plastic http://www.vilros.com)
- HDMI Cable for Connection to HDTV
- Two (2) Intellivision Flashback, Intellivision II, or Original Intellivision (with DB9 adapter) Controllers (Intellivision Flashback controllers included with the ATGames Intellivision Flashback console http://www.atgames.us/Intellivision-Flashback-IN460.htm)
- Two (2) Retronic Design USB Joystick Adapters https://www.retronicdesign.com
- USB or Wireless Keyboard for initial configuration (Logitech K400 wireless keyboard)
Software
- RetroPie for Raspberry Pi https://retropie.org.uk (v3.6 or later) which includes the jzIntv Intellivision emulator http://spatula-city.org/~im14u2c/intv
- Retronic Design Intellivision Firmware https://www.retronicdesign.com/en/download (v3.0c or later)
- “hackfileRD.cfg” file to map output from Retronic Design USB Joystick Adapters to jzIntv emulator joystick functions (file listing included at end of document)
- “grom.bin” and “exec.bin” bios roms for Intellivision (available on the Intellivision Lives PC game, Intellivision Rocks PC game, or through creative online or torrent searching)
- Intellivision game roms (available on-line with *.int, *.bin, or *.rom file extensions)
Initial Software Installation/Configuration
- Install RetroPie v3.6 or later image file onto microSD card using the following installation instructions: https://github.com/retropie/retropie-setup/wiki/First-Installation
- Install v3.0c or later firmware into each Retronic Design USB Joystick adapter using the following installation instructions: https://www.retronicdesign.com/en/usb-adapter-upgrade-tutorial (Note: On Intellivision Flashback controllers, the “6” button on the keypad is the “Fire” button referenced in the instructions.)
- Insert the created RetroPie microSD card into the Raspberry Pi, connect the joysticks and keyboard to USB ports, connect the HDMI cable to HDTV, tune the TV to the correct HDMI input, and plug in the power supply to start the Raspberry Pi.
- After 30-60 seconds, the “EmulationStation” software will load, and should begin automatically walking you through the process of setting up your controller. This setup is for navigation of the EmulationStation and RetroPie software only, and has nothing to do with the controls used in game play. For this tutorial, I have set up the controller as:
Intellivision Keypad “ENTER” = EmulationStation “START” Button all other keys left unassigned)
- Use the Intellivision controller to navigate to and run the “RetroPie” software by pressing the Keypad “1”. The RetroPie software will start:
- Select “CONFIGURE WIFI” from the menu and follow the prompts to connect the Raspberry Pi to your wireless network. This will allow you to transfer game ROMS to the Raspberry Pi via WiFi.** The following steps take place on a Windows PC on the same network as your Raspberry Pi **
- Go to a Windows PC on the same network as your Raspberry Pi, start the “File Explorer” program, and enter “\\retropie” into the Address Bar. After a few moments, the Raspberry Pi should be located on your network and the following folders appear:
- bios
- configs
- roms
- splashscreens
- Using File Explorer, copy the “grom.bin” and “exec.bin” files into the “bios” folder on the Raspberry Pi (see the “Software” section of the guide above for an explanation of these files).
- Using File Explorer, copy the “hackfileRD.cfg” file into the “roms\intellivision” folder on the Raspberry Pi.
- Using File Explorer, copy any game roms (*.int, *.bin, or *.rom) files into the “roms\intellivision” folder on the Raspberry Pi.
- Using File Explorer, navigate to the “configs\intellivision” folder.
- Open the “emulators.cfg” file with Windows Notepad, and make the following modifications (in bold) to the file (the following text appears on one line in the file):
jzintv="/opt/retropie/emulators/jzintv/bin/jzintv -p /home/pi/RetroPie/BIOS --displaysize=1 --kbdhackfile=/home/pi/RetroPie/roms/intellivision/hackfileRD.cfg -q %ROM%" default="jzintv"
Notes:
–displaysize=1 changes the display resolution of the emulator from 320×200 to 640×480, which looks much clearer when upscaled to 1080p on an HDTV.
–kbdhackfile=… tells the jzIntv Intellivision emulator how to map the controller output from the Retronic Design USB Joystick Adapters. (If you skip this step, the controller keypad and side buttons will be all mixed up.) - Close File Explorer on your Windows PC, and go back to the Raspberry Pi.
Advanced Software Configuration (Keyboard Required on Raspberry Pi):
- Removing Black Border around Screen: If your screen has a black border around it, and you want to expand the image to fill the entire screen, follow these steps:
- From the main Emulation Station menu, select “RetroPie”.
- From the RetroPie menu, scroll down and select “Raspberry Pi Configuration Tool Raspi-Config”.
- From the Raspi-Config menu, select Option 9 “Advanced Options”.
- Select Option A1 “Overscan”.
- Select “Disable” overscan; will return to main Raspi-Config menu.
- Select “Finish”, and follow the prompts to reboot the Raspberry Pi. When the Pi restarts, the black borders around the screen will be gone.
- Fix Games that Won’t Play: Some games (Beauty and the Beast, Demon Attack, etc.) use different memory mapping that most Mattel Intellivision games. The jzIntv Intellivision emulator can support these games through an additional*.CFG memory map file for each game rom:
- Search online for the corresponding *.CFG memory map file for games that won’t play. The *CFG memory map file must have the same filename as the corresponding *.INT or *.BIN rom file (i.e. “Demon_Attack.int” and “Demon_Attack.cfg).
- Follow the instructions above for using a Windows PC to copy game rom files onto the Raspberry Pi to copy the *.CFG files into the same “roms\intellivision” folder on the Rasperry Pi. The jzIntv Intellivision emulator will automatically search for a corresponding *.CFG memory map file when an *.INT or *.BIN game rom is loaded.
- Add Support for jzIntv Intellivision Emulator to Run *.ROM file Extensions: A *.ROM file is an *.INT or *.BIN rom file combined with a *.CFG memory map file into a single larger file. The jzIntv Intellivision emulator can play these files, with the following software configuration (Note: This modification requires use of the text-base “File Manager” included with RetroPie. Instructions on how to use the “File Manager” are available on-line.):
- From the main Emulation Station menu, select “RetroPie”.
- From the RetroPie menu, scroll down and select “File Manager”.
- Navigate to the “/etc/emulationstation” directory.
- Highlight the “es_systems.cfg” file and press F4 to edit.
- Scroll down to the <system> <name>intellivision</name> section, and modify the <extension> section as follows:
<extension>.int .bin .INT .BIN .rom .ROM</extension> - Press <CTRL-X> to Exit, and type “Y” to save the file.
- Press F10 to exit the File Manager
- Restart the Raspberry Pi by pressing the ENTER (START) button on the Intellivision controller and Selecting “QUIT->RESTART SYSTEM”.
- Add Game Box Art to EmulationStation: To display box art and descriptions for your game roms in EmulationStation (Internet connection to Raspberry Pi is required):
- From the main EmulationStation menu, press the ENTER (START) button on the Intellivision controller.
- Select “SCRAPER->SCRAPE NOW”, and follow the prompts. The software will automatically scan net web site for game box art and descriptions.
- Remove Unwanted Emulators from EmulationStation Main Menu: To remove unwanted emulators from the EmulationStation main menu display:
- Go to a Windows PC on the same network as your Raspberry Pi, start the “File Explorer” program, and enter “\\retropie” into the Address Bar. After a few moments, the Raspberry Pi should be located on your network and the following folders appear:
- bios
- configs
- roms
- splashscreens
- Using File Explorer, navigate to the “roms” folder, and create a new folder named “Unused”.
- Move the “roms” subfolders for the emulators you want to hide into the “Unused” folder. To get rid of all emulators but “Intellivision”, move the “amiga”, “apple2”, “dreamcast”, “macintosh”, pc, “ports”, “scummvm”, and “zmachine” folders from “roms” to “roms\Unused”.
- Restart the Raspberry Pi.
- Note: This procedure works because EmulationStation only displays the emulators with files in the corresponding “roms” sub-folder. The sub-folders listed above come with default files in them.
hackfileRD.cfg
; Keyboard Hack File for jzIntv Intellivision Emulator ; when used with Retronic Design USB Joystick Adapter(s) ; and Original Intellivision or Intellivision Flashback ; Controller(s). ; ; Note: For Special Combination Keypresses [Button 1 + Button 9] ; [Button 4 + Clear], [Button 5 + Button 0], and [Button 6 + Enter], ; must use Retronic Design USB Joystick Adapter Intellivision ; firmware version 3.0c or later. ; ; April 15, 2016 ; ; Free to Distribute ; ; ----------------------------------------------------------------------------------------- MAP 0 ; keymap 0 (default keymap) ; ----------------------------------------------------------------------------------------- ; ***** Joystick #0 - Left Controller ***** ; ** Side Buttons and Numeric Keypad ** JS0_BTN_00 PD0L_A_T JS0_BTN_01 PD0L_A_L JS0_BTN_02 PD0L_A_R JS0_BTN_03 PD0L_KP1 JS0_BTN_04 PD0L_KP2 JS0_BTN_05 PD0L_KP3 JS0_BTN_06 PD0L_KP4 JS0_BTN_07 PD0L_KP5 JS0_BTN_08 PD0L_KP6 JS0_BTN_09 PD0L_KP7 JS0_BTN_10 PD0L_KP8 JS0_BTN_11 PD0L_KP9 JS0_BTN_12 PD0L_KPC JS0_BTN_13 PD0L_KP0 JS0_BTN_14 PD0L_KPE ; ** Combination Keypresses (Requires firmware v3.0c or later, see note above) ** ; Pressing [Button 1 + Button 9] on Controller triggers JS0_BTN_15 ; Mapping of JS0_BTN_15 is not necessary since Intellivision Game ROMS interpret [1+9] as PAUSE GAME ; Pressing [Button 4 + Clear] on Controller triggers JS0_BTN_16 JS0_BTN_16 PAUSE ; (Pause Emulator - Same as Pause/Break on keyboard) ; Pressing [Button 5 + Button 0] on Controller triggers JS0_BTN_17 JS0_BTN_17 RESET ; (Reset Emulator - Same as F12 on keyboard) ; Pressing [Button 6 + Enter] on Controller triggers JS0_BTN_18 JS0_BTN_18 QUIT ; (Quit Emulator - Same as F1 on keyboard) ; ** Direction Disc ** JS0_N PD0L_J_N JS0_NNE PD0L_J_NNE JS0_NE PD0L_J_NE JS0_ENE PD0L_J_ENE JS0_E PD0L_J_E JS0_ESE PD0L_J_ESE JS0_SE PD0L_J_SE JS0_SSE PD0L_J_SSE JS0_S PD0L_J_S JS0_SSW PD0L_J_SSW JS0_SW PD0L_J_SW JS0_WSW PD0L_J_WSW JS0_W PD0L_J_W JS0_WNW PD0L_J_WNW JS0_NW PD0L_J_NW JS0_NNW PD0L_J_NNW ; ***** Joystick #1 - Right Controller ***** ; ** Side Buttons and Numeric Keypad ** JS1_BTN_00 PD0R_A_T JS1_BTN_01 PD0R_A_L JS1_BTN_02 PD0R_A_R JS1_BTN_03 PD0R_KP1 JS1_BTN_04 PD0R_KP2 JS1_BTN_05 PD0R_KP3 JS1_BTN_06 PD0R_KP4 JS1_BTN_07 PD0R_KP5 JS1_BTN_08 PD0R_KP6 JS1_BTN_09 PD0R_KP7 JS1_BTN_10 PD0R_KP8 JS1_BTN_11 PD0R_KP9 JS1_BTN_12 PD0R_KPC JS1_BTN_13 PD0R_KP0 JS1_BTN_14 PD0R_KPE ; ** Combination Keypresses (Requires firmware v3.0c or later, see note above) ** ; Pressing [Button 1 + Button 9] on Controller triggers JS1_BTN_15 ; Mapping of JS1_BTN_15 is not necessary since Intellivision Game ROMS interpret [1+9] as PAUSE GAME ; Pressing [Button 4 + Clear] on Controller triggers JS1_BTN_16 JS1_BTN_16 PAUSE ; (Pause Emulator - Same as Pause/Break on keyboard) ; Pressing [Button 5 + Button 0] on Controller triggers JS1_BTN_17 JS1_BTN_17 RESET ; (Reset Emulator - Same as F12 on keyboard) ; Pressing [Button 6 + Enter] on Controller triggers JS1_BTN_18 JS1_BTN_18 QUIT ; (Quit Emulator - Same as F1 on keyboard) ; ** Direction Disc ** JS1_N PD0R_J_N JS1_NNE PD0R_J_NNE JS1_NE PD0R_J_NE JS1_ENE PD0R_J_ENE JS1_E PD0R_J_E JS1_ESE PD0R_J_ESE JS1_SE PD0R_J_SE JS1_SSE PD0R_J_SSE JS1_S PD0R_J_S JS1_SSW PD0R_J_SSW JS1_SW PD0R_J_SW JS1_WSW PD0R_J_WSW JS1_W PD0R_J_W JS1_WNW PD0R_J_WNW JS1_NW PD0R_J_NW JS1_NNW PD0R_J_NNW