User avatar
billb
Posts: 177
Joined: Wed Sep 19, 2012 10:27 pm

jzintv Intellivision emulator

Sun Sep 30, 2012 5:51 pm

You can play Mattel Intellivision games on your Raspberry Pi using Joe Zbiciak's excellent "jzintv" Intellivision emulator. I spent some time a while back getting this running well on PS3 Linux with some help from the developer, and fortunately some of the changes made carry over well to the RPi.

Display modes have been added to support resolutions from 320x200 to 1920x1200 at 32bpp, and it runs at full speed with sound at 1920x1200 without any overclocking. It can run fullscreen or windowed.

Of course you're going to need some Intellivision game ROMs to play, as well as Intellivision BIOS files (exec.bin and grom.bin). If you're not familiar with the legal status of emulators and ROM files, here's a good place to start:

http://en.wikipedia.org/wiki/ROM_image# ... us_of_ROMs

A legal way to acquire the BIOS files and some games would be to purchase the Intellivision LIves! CD for Windows/Mac. There are console ports as well, but at least with the Xbox version I don't know of an easy way to access the files.

http://www.intellivisiongames.com/store ... ucts_id=30

I've tried to write this in a "semi-educational" format so new Linux users might pick up something useful in the process, so forgive me for being long-winded.

With that out of the way, here's how to download / install / run the emulator:

I've already modified the source code as needed and built the emulator and utilities. I'm familiar with creating RPM packages but not .deb, so I've just archived the entire folder with the source, binaries, docs, etc.

1. From the terminal, use the wget command to download the archive (this requires an active Internet connection):

Code: Select all

wget http://pleasantfiction.ipower.com/rpilinux/jzintv-1.0.svn082010-1.tar.bz2
(note this will download the archive to your current working directory)

2. Extract the folders and files from the archive using the tar command:

Code: Select all

tar xvf jzintv-1.0.svn082010-1.tar.bz2
(x is for eXtract, v is for Verbose so it shows what's happening, and f is to specify the File)

Note: In general it may be a good idea to see what an archive contains before extracting it and possible ending up with a jumble of files all over the place and a mess to clean up. If you wanted to do that you'd use the "t" switch instead of "x" for Testing first:

tar tvf jzintv-1.0.svn082010-1.tar.bz2

But in this case everything is nicely contained under the subfolder jzintv-1.0.svn082010

3. jzintv includes loads of documentation and utilities, but all you need to play games is the jzintv binary itself. We're going to copy that binary executable to the /usr/local/bin folder which is where user programs are typically installed (as opposed to /usr/bin which includes programs installed by the package manager).

To make things easier we'll change to the appropriate directory first:

Code: Select all

cd jzintv-1.0.svn082010/bin
If you want to list all the files in the current directory, use the ls command.

To copy files to locations outside of your home directory you need to be the "root user" or "super user" so you need to use the sudo command to copy files to /usr/local/bin:

Code: Select all

sudo cp jzintv /usr/local/bin
4. Now you need to create a place to store the BIOS files. By default, jzintv will look in /usr/local/share/jzintv/rom, so we're going to create those directories. Again, sudo must be used since that's outside of your home directory.

Code: Select all

sudo mkdir -p /usr/local/share/jzintv/rom
(the -p switch makes all directories as needed, instead of having to create them one at a time)

5. As mentioned earlier, you'll have to procure the Intellivision BIOS files on your own. They need to be titled exec.bin and grom.bin and they need to be copied to the /usr/local/share/jzintv/rom directory created in Step 4. Assuming these files are in your current working directory (they show up when you run the ls command by itself), you could copy them like this:

Code: Select all

sudo cp exec.bin /usr/local/share/jzintv/rom

Code: Select all

sudo cp grom.bin /usr/local/share/jzintv/rom
6. And now you need some Intellivision games to play. They need to be uncompressed and they typically have the .int file extension if you happen to find them floating around somewhere. If they are in .zip archives they need to be extracted first, like this:

unzip gamename.zip

You can put your game ROM images pretty much anywhere. For example, you can put them in your home directory in a subfolder called gamefiles, in another subfolder called roms, and yet another subfolder called intv (short for Intellivision). This might be a good idea in case you get hooked on installing various emulators and want to stay somewhat organized. ;)

To create those directories in your home folder, first use the cd command by itself to change to your home folder:

Code: Select all

cd
Then mkdir with the -p switch again:

Code: Select all

mkdir -p gamefiles/roms/intv
(since this is in your home directory you don't have to use sudo)

7. Finally, time to play some games! Almost. Let's do some checking first.

Make sure the which command is able to locate the jzintv executable:

Code: Select all

which jzintv
Expected result:

/usr/local/bin/jzintv

Make sure the BIOS files are in place:

Code: Select all

ls -lA /usr/local/share/jzintv/rom/
(the l specifies long listing format so owner, permissions and file sizes are shown, A shows Almost all files, excluding . and ..)

total 12
-rw-r--r-- 1 root staff 8192 Sep 30 15:46 exec.bin
-rw-r--r-- 1 root staff 2048 Sep 30 15:46 grom.bin

8. What? You don't want to read all the documentation for jzintv and just want to play a game already? OK... so jzintv has no fancy built-in front end and you run it from the terminal like so:

jzintv /path/to/gamefile.int

For example, using the directories created above I have "Night Stalker" (my favorite Intellivision game) in gamefiles/roms/intv, so I start it like this:

jzintv gamefiles/roms/intv/NightStalker.int

You use F1 to Quit, arrow keys to move, and numeric keypad 2 4 8 6 to fire once you have the gun.

jzintv --help will show all the command line options.

Without using any options, jzintv will run at 320x200 in a window. If you want to run at a different resolution, use the -z switch:

-z# --displaysize=# Desired display mode:
0: 320x200x32bpp
1: 576x360x32bpp
2: 720x450x32bpp
3: 1030x644x32bpp
4: 1152x720x32bpp
5: 1542x964x32bpp
6: 1728x1080x32bpp
7: 1920x1200x32bpp

So if you're running at 1080p with no overscan borders, you would use 6.

jzintv -z6 gamefiles/roms/intv/NightStalker.int

This is all in the documentation found under jzintv-1.0.svn082010/doc/ but I'll post it here anyway:

Code: Select all

Function/Special keys, all maps:
    F1              Quit
    F4              Break into debugger
    F5              Switch to keymap 0 (default keymap)
    F6              Switch to keymap 1 (left controller only for 1 player games)

    F7              Switch to keymap 2 (ECS keyboard keymap)
    F8              Shift to keymap 3 while held (command keys)
    F9              Toggle fullscreen/windowed 
    F10             Toggle movie recording 
    F11             Take screen shot
    F12             Reset emulator
    Pause           Pause the emulator
    PgUp            Increase volume
    PgDn            Decrease volume

Numeric Keypad, maps 0 and 1
    1-9             Left controller 1 - 9
    0               Left controller Clear
    .               Left controller 0
    Enter           Left controller Enter

Main Keyboard, map 0.  (Map 1 just moves right controller mappings to left.)
    0-9             Right controller 0 - 9
    -               Right controller Clear
    =               Right controller Enter
    Left Shift      Right controller top action buttons
    Left Alt        Right controller lower left action button
    Left Control    Right controller lower right action button

    Right Shift     Left controller top action buttons
    Right Alt       Left controller lower left action button
    Right Control   Left controller lower right action button

    Up Arrow        Left controller disc up
    Down Arrow      Left controller disc down
    Left Arrow      Left controller disc left
    Right Arrow     Left controller disc right

Fine-grain directional pad inputs:

    U   I   O
      \ | /
       \|/ 
    J --+-- K      Left controller disc
       /|\
      / | \
    N   M   , 
   
    W   E   R
      \ | /
       \|/ 
    S --+-- D      Right controller disc
       /|\
      / | \
    Z   X   C 
Controlling the various games for Intellivision may be somewhat challenging since the controllers had a 16-direction joystick/disc, 3 distinct buttons, plus a numeric keypad (0-9 plus Clear and Enter) that used different overlays for each game.

Sticking with Night Stalker, you can control it using the arrow keys with your left hand and the numeric keyboard with your right. Note that you could not run and shoot at the same time using only one controller, but you could if you used a second controller -- one for moving and one for firing. :roll:

Have fun! :D


NOTES:

* MESS should also handle Intellivision emulation but I've never had any luck with it (probably incorrect rom files) and I don't know how it runs on the RPi

* You can find manuals and overlays for a number of Intellivision games at replacementdocs.com -- without manuals it may be difficult to determine what you're supposed to do in some of these "primitive" games. And of course the overlays are important.

User avatar
billb
Posts: 177
Joined: Wed Sep 19, 2012 10:27 pm

Re: jzintv Intellivision emulator

Wed Oct 03, 2012 7:38 pm

Trying to map controls for Intellivision games to regular gamepads is a pain, and what works well for one game may not work well for another. Using a keyboard won't provide you with the hand cramps induced by the original Intellivision controllers, either.

I looked for ways to connect an original intv controller via USB and found these:

Ultimate PC Interface for the Intellivision
http://www.intellivision.us/intvgames/i ... erface.php

Vision-daptor
http://home.comcast.net/~tjhafner/Vision-daptor.htm

And then there's the Bliss Box which looks pretty amazing (and expensive):
http://spawnlinux.dyndns.org/Bliss-Box/products.html

User avatar
billb
Posts: 177
Joined: Wed Sep 19, 2012 10:27 pm

Re: jzintv Intellivision emulator

Sun Oct 07, 2012 3:23 am

Having trouble getting jzintv to run from terminal without X ... however, didn't know I could just start it like this:

Code: Select all

xinit /usr/local/bin/jzintv -z7 /path/to/romfile
That launches it fullscreen at 1920x1200 and pressing F1 to quit takes me back to the terminal. :mrgreen:

eduardofv
Posts: 29
Joined: Tue May 22, 2012 2:58 pm

Re: jzintv Intellivision emulator

Fri Nov 23, 2012 4:58 pm

Billb, looks great. I have jzintv running on a mac, and tried to download the bz2 for the Raspberry Pi but found the link broken. Can you send me it or do you have an alternate url? If you need, I could host it.

Regards

User avatar
billb
Posts: 177
Joined: Wed Sep 19, 2012 10:27 pm

Re: jzintv Intellivision emulator

Fri Nov 23, 2012 5:41 pm

Sorry about the link being down for the moment. Should be back up by Monday.

For now here's an alternate url:

https://docs.google.com/file/d/0B7Sr8m2 ... lZclE/edit

eduardofv
Posts: 29
Joined: Tue May 22, 2012 2:58 pm

Re: jzintv Intellivision emulator

Fri Nov 23, 2012 7:02 pm

Got it! Thanks a lot!

User avatar
billb
Posts: 177
Joined: Wed Sep 19, 2012 10:27 pm

Re: jzintv Intellivision emulator

Sat Nov 24, 2012 3:28 pm

You're welcome.

The download link in the original post should be working fine, now, too.

bgirardot
Posts: 517
Joined: Wed Oct 10, 2012 6:20 am
Location: Switzerland

Re: jzintv Intellivision emulator

Sat Nov 24, 2012 7:31 pm

thank you for this.

Intellivision was literally the first and last game console I ever played. I am going to have to try this just for the memories.

eduardofv
Posts: 29
Joined: Tue May 22, 2012 2:58 pm

Re: jzintv Intellivision emulator

Sun Nov 25, 2012 3:56 am

May not be your case, but for me, Burgertime is totally worth the effort!

cdu13a
Posts: 2
Joined: Tue Feb 12, 2013 6:45 pm

Re: jzintv Intellivision emulator

Tue Feb 12, 2013 7:58 pm

Very much appreciate the detailed post on how to get an intellivision emulator up and running on the raspberry pi. Its one of the very few good posts I have found on the subject anywhere.

There is a new release of jzintv (version 1.0 beta 4) available at http://spatula-city.org/~im14u2c/intv/ , I was able to get it to compile after some changes to the Makefile (Mostly just removed intel specific compiler flags such as -msse) and added the missing bin directory. Running without X11 using the -z1 and -f1 command line options works well.

dudleydes
Posts: 51
Joined: Sun May 18, 2014 12:19 pm

Re: jzintv Intellivision emulator

Sun May 18, 2014 12:32 pm

Hi

Sorry to resurrect an old thread but I am having trouble getting the keyboard hack file working for the PS3 controller. I have tried it within emulationstation as part of the RetroPie package and from the command line. Lock 'N' Chase launches fine in both instances without the keyboard hack and is playable with the keyboard. With the keyboard hack, the game does not launch at all.

I have amended the command line for intellivision in the es_system.cfg file so that itreads

Code: Select all

COMMAND=/home/pi/RetroPie/emulators/jzintv-1.0-beta4/bin/jzintv -z1 -f1 -q --kbdhackfile=/home/pi/RetroPie/emulators/jzintv-1.0-beta4/bin/LockNChase.kbd %ROM%
The contents of the LockNChase.kbd file are

Code: Select all

MAP 0

; Game interface
JS0_BTN_00 QUIT
JS0_BTN_03 PAUSE
JS0_BTN_10 PD0L_KP1 ; 1 player
JS0_BTN_11 PD0L_KP2 ; 2 player
JS0_BTN_14 PD0L_KPE ; enter
JS0_BTN_13 PD0L_KPC ; clear

; Directions
JS0_BTN_04 PD0L_D_N
JS0_BTN_05 PD0L_D_E
JS0_BTN_06 PD0L_D_S
JS0_BTN_07 PD0L_D_W

; Lock door
JS0_BTN_08 PD0L_A_T
I have asked for advice at the RetroPie forum but no advice has been forthcoming. Any help would be much appreciated.

User avatar
billb
Posts: 177
Joined: Wed Sep 19, 2012 10:27 pm

Re: jzintv Intellivision emulator

Mon May 19, 2014 2:36 pm

Does it give any error when launching from the command line?

From your example above, the command should be:

Code: Select all

/home/pi/RetroPie/emulators/jzintv-1.0-beta4/bin/jzintv -z1 -f1 -q --kbdhackfile=/home/pi/RetroPie/emulators/jzintv-1.0-beta4/bin/LockNChase.kbd [path to your ROM]
(that's all one line)

Or without keyboard hack file:

Code: Select all

/home/pi/RetroPie/emulators/jzintv-1.0-beta4/bin/jzintv -z1 -f1 -q [path to your ROM]
Of course replace [path to your ROM] with the actual location of the ROM you're testing.

dudleydes
Posts: 51
Joined: Sun May 18, 2014 12:19 pm

Re: jzintv Intellivision emulator

Wed May 21, 2014 9:02 am

Thank you for your reply.

The rom launches successfully from the command line without the keyboard hack file but when I include the hack file, the screen goes momentarily black before returning to a blank command line with no error messages. I do need to begin the command line with ./jzintv rather than simply jzintv if that has any bearing.

I do get a message on the command line if I try to launch the rom from emulationstation and then exit it. The message looks like

Code: Select all

======================================================
======================================================
======================================================
====================================================== kbdhackfile

User avatar
billb
Posts: 177
Joined: Wed Sep 19, 2012 10:27 pm

Re: jzintv Intellivision emulator

Wed May 21, 2014 4:31 pm

I tried the same command line options, game ROM, and the keyboard hack file as listed above and didn't have any problems. The only way I could come close to duplicating that behavior was to remove read permission on the kbdhack file -- in that case it went to a blank screen for a moment then returned to the command line, but with an error message:

Code: Select all

Couldn't open keyboard map file 'LockNChase.kbd'
Was your kbdhack file created on Linux? Maybe there's some problem with it that is causing jzintv to crash. I've attached the one I used just in case.
Attachments
hackfile.zip
LockNChase keyboard hack file
(335 Bytes) Downloaded 245 times

i-am-not-onetwo
Posts: 1
Joined: Mon Jul 14, 2014 2:33 am

Re: jzintv Intellivision emulator

Mon Jul 14, 2014 2:51 am

I am having similar problems.

The keyboard hackfile is giving me a lot of difficulty.

I am using RetroPie 2.2

I am playing Beauty and the Beast (with a cfg file) and Dracula. They both work fine.

They also work no problems run from the command line.

I have been using ./jzintv <romname.rom> and that works fine

if I try ./jzintv --kbdhackfile=hackfile.kbd -m0 <romname.rom>

It says it is initialising the rom and bails out unceremoniously to the command line.

if i try sudo ./jzintv --kbdhackfile=hackfile.kbd -m0 <romname.rom> (not recommended)

it gives me the extra information about the joystick
joy: (4 axis....)
when it come to the config information it says
cfg: Fatal error (argument too long?) parsing kbdhackfile

I have tried with the provided file and with some very simple ones I made myself

MAP 0

JS0_BTN_11 QUIT

All I want to be able to do is to quit out of the emulator using a joypad button but I can't get past the first step of it reading in the keyboard hackfile

Anyone else had problems or managed to solve this?

intvnut
Posts: 2
Joined: Sun Nov 02, 2014 5:44 am

Re: jzintv Intellivision emulator

Sun Nov 02, 2014 5:47 am

Howdy! This is Joe Z, author of jzIntv.

I've made several updates to jzIntv since the SVN version you ported, including support for arbitrary resolutions, and the Scale2x/3x/4x filters.

I was recently contacted by an R-Pi user that's trying to get jzIntv running on his system, but I believe he needs an updated version to work with a peripheral he's trying to use.

Would you be willing to make a new R-Pi build with the latest SVN version of jzIntv? If so, email me at my usu. GMail address.

mgoulart
Posts: 126
Joined: Mon Feb 10, 2014 8:56 am
Location: Rio de Janeiro - Brazil

Re: jzintv Intellivision emulator

Sun Nov 02, 2014 12:24 pm

Joe Z,

Is there a way to configure a USB controller to play roms on jzintv?
For example, I don't need to map the numerial buttons. I would like to configure my USB controller to map only the disc-shaped pad and the two buttons on the side of INTV controller. Doing it, I can play 80% of the INTV games.

Regards,
Marcelo

intvnut
Posts: 2
Joined: Sun Nov 02, 2014 5:44 am

Re: jzintv Intellivision emulator

Sun Nov 02, 2014 6:31 pm

There is. The --js<#> flags will let you configure joysticks, and that includes USB-connected joysticks. You can have up to four joysticks, --js0 through --js3. jzIntv sets up a default mapping that works reasonably well for the joysticks and games I tried.

If you run jzIntv with just the flag --js0, you will see what jzIntv detected in its messages to stdout:

joy: Found 1 joystick(s)
joy: Joystick JS0 "Chicony USB Gaming Keyboard Pro"
joy: 0 axes, 0 trackball(s), 0 hat(s), 11 button(s)
joy: Cfg: X-Axis = axis 0 Y-Axis = axis 1 Autocenter = off
joy: Push threshold = 17% Release threshold = 10%
joy: X range = [-49%,50%] Y range = [-49%,50%]
joy: Directions = 16 diagonal bias
--js0="xaxis=0,yaxis=1,noac,push=17,rels=10,xrng=-49:50,yrng=-49:50,16dir"

(Ok, in this case, it's boring because my keyboard reports itself as a joystick, and I don't have a real joystick attached at the moment.)

jzIntv outputs a config string for the joysticks it detects that represents its default settings. The file jzintv/doc/jzintv/joystick.txt describes how to modify this string to get different joystick behavior. The program joy_diag.rom can also sometimes help with tweaking these settings; however, that program is not very user friendly at the moment.

If you need to tweak how buttons, hats and so on map to Intellivision buttons, you need to use a kbdhackfile.

The "event_diag.rom" that comes with jzIntv will show you the events sent by your joystick. The instructions in jzintv/doc/jzintv/kbdhackfile.txt tell you how to use these event names to bind them to controller inputs in jzIntv.

The currently released jzIntv (1.0-beta4) has a bug that breaks kbdhackfile support. This is fixed in jzIntv's development vesion.

I put the latest SVN source for jzIntv here: http://spatula-city.org/~im14u2c/intv/d ... 141028.zip

If someone can help with retargeting this to the R-Pi, that would be great. If changes are necessary, I'd be happy to check them into mainline to that future releases support R-Pi easily.

dudleydes
Posts: 51
Joined: Sun May 18, 2014 12:19 pm

Re: jzintv Intellivision emulator

Mon Nov 10, 2014 1:23 pm

I did post earlier about the issues I was having with keyboard hack files so the new build of jzintv is much appreciated.

I am new to compiling my own binaries but this is what I have tried.

I have written a fresh image of Raspbian to SD card. I copied the jzintv-svn folder to the pi directory. In a terminal, I changed the working directory to /home/pi/jzintv-svn/src and issued the command make. I get the error ‘No targets specified and no makefile found. Stop.’

I then tried the command make jzintv but that didn't work either though a makefile was found.

And that is the limit of of my knowledge. Instructions to compile the jzintv binary would be much appreciated.

[Edit 11 Nov]

I have managed to get jzintv to compile. I noticed that Makefile on the pi was empty so I copied over the jzintv folder again. I updated and upgraded Raspbian. Then I installed SDL by running the following command:

Code: Select all

 sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
I edited Makefile changing the line

Code: Select all

 OPT_FLAGS = -O6 -fomit-frame-pointer -fprefetch-loop-arrays -msse #-DBENCHMARK_STIC 
to

Code: Select all

OPT_FLAGS = -O3 -fomit-frame-pointer -fprefetch-loop-arrays -march=armv6 -mfloat-abi=hard -mfpu=vfp
Then finally,

Code: Select all

cd /jzintv-svn/src
make
I shall report back how I get on with keyboard hack files.

keither20
Posts: 1
Joined: Sun Feb 22, 2015 6:12 pm

Re: jzintv Intellivision emulator

Sun Feb 22, 2015 6:31 pm

Hello,
I am relatively new to RPi and have come up against a challenge that I figure is straight forward enough to solve, but I lack the understanding to do so. I have picked up a converter to convert an original Intellivision 1 controller to USB. I DESPERATELY want to play some of the ROMS that I own but cannot find a way to easily map the buttons on the RPi.

Please be gentle as I have looked at some of the replies to other questions and they are confusing to a noob.

Is there step by step process to configuring the joystick above to play on Intellivision games only as I would like to continue using my PC controller for the other systems I have installed.

Whatever you can do to help would really be appreciated!

User avatar
billb
Posts: 177
Joined: Wed Sep 19, 2012 10:27 pm

Re: jzintv Intellivision emulator

Tue Feb 24, 2015 3:50 pm

Could you post a link to more information or give more details about the converter? I'm wondering if it generates keyboard input for everything or if it's mixed joystick and keyboard.

The Intellivision controller has a 16-direction joystick/disc, 3 distinct buttons, plus a numeric keypad (0-9 plus Clear and Enter).

ulao
Posts: 16
Joined: Tue Mar 10, 2015 11:59 am

Re: jzintv Intellivision emulator

Wed Mar 11, 2015 2:46 pm

billb, not sure if you noticed this but Bliss-box just got better and cheaper.
https://www.kickstarter.com/projects/54 ... trollers-0

Return to “Gaming”