- News for December 17, '00 -

- VIEWS -
REVIEWS
INTERVIEWS
EV BOARD
EV CHAT
THE VIEWS
TOP LISTS

- PROFILES -
EMULATORS
ROMS LITE
ROMS

- OTHER -
NEWS
LINKS
PRIVACY

NEWS w/o ICONS

InterView with Kyle Davis! - December 17, '00 by JoseQ
As you probably know, Bliss recently rocked the emulation scene, being the first publically and freely available Intellivision emulator. The author, Kyle Davis, was very happy to allow to be InterViewed here at EmuViews. So, if you want to learn more about this emulator, just read on! Here it is, an InterView with Kyle Davis, the author of Bliss:

1. Can you tell us a bit about yourself?

Sure. I'm a Java software engineer living and working in Colorado Springs, CO. I've been writing software for about 9 years and working with Java for about 3 years. What I do in my day job has absolutely nothing to do with gaming, but I'm a self-ascribed gaming addict.

2. How did you come in touch with emulation initially?

The first time I ran across emulation, I think it was about 3 or 4 years ago right after I bought a copy of "Arcade Hits" by Microsoft (the predecessor to their current "Return of Arcade"). I went searching on the Internet for playing tips for some of the games included in that CD and, entirely by accident, I bumped into a web site on arcade game emulation. I downloaded and played a couple of emulators at that time, and I was pretty blown away, but for some reason I did not become heavily interested in the emulation "scene" at that time. It wasn't until about 2 years ago when I bumped into the MAME emulator, again mostly by accident, that I suddenly fell in love with classic arcade gaming. It was a whirlwind love affair that finally reached its peak when I completed the dedicated full-size MAME arcade cabinet that now sits in my basement. I included a screen shot of it for the morbidly curious. She's not much to look at, but she sees a LOT of action. :-)

Arcade Cabinet

I would definitely say MAME single-handedly started me on the path which eventually led to my writing Bliss, but there are several other emulation projects that have amazed and inspired me along the way, including RockNES, Stella, Snes9x, DGen, and CCS64. I can only hope someday Bliss will fall into the same league as some of these outstanding emus.

3. What prompted you to write your own emulator? How hard would you categorize starting your emulator and getting to the current state?

Since software is what I do for a living, I've been interested in the "How do they do that?" side of emulation since the beginning. I even modify and compile my own custom version of MAME for my arcade cabinet. I must admit that I've tried and monumentally failed at writing an emulator twice before this one, simply because I really didn't understand the software architecture necessary to emulate games well. The first was an attempt to emulate the original Pac-Man arcade game, and I pretty much gave up after only a few days of work. The next was a Commodore 64 emulator, with which I managed to get something to display on the screen after about a month of work, then gave up. This time, with Bliss, I decided to read and research and plan as much as I could before writing any code. I wrote the CPU emulation core as a stand-alone piece first and when I had it about 80% complete, I met Joe Zbiciak through email. Joe is the author of jzIntv, which is also an Intellivision emulator, although it is not quite complete and is no longer in active development. However, since Joe had already been down the path I was then trying to go down, he already knew just about every piece of info I could ever possibly want to know about the Intellivision hardware. Since then, he and I have been in pretty much constant email communication and there is no way I could be where I'm at now without the incredible amount of technical info and assistance he has been providing. Thanks, Joe!
How hard was it to start? It actually wasn't as tough as I expected, and I can only guess that was because I was riding on the shoulders of knowledge gained from my two previous emulation failures that came before Bliss. In a way, Bliss only works even as well as it does because of what I learned from failing so miserably those first two times. It has also required a lot of hours and a lot of reading and re-reading of technical docs on the Intellivision, but that's been more fun than anything else. The day I wrote the first line of code for Bliss was November 15th, so it's only been alive now for just over a month. Admittedly, though, the Intellivision isn't exactly complicated hardware since it was created in the 1970s.

4. Why did you choose the Intellivision as your target to emulate?

I chose the Intellivision for two reasons: (1) I actually have a history with it since I owned one when I was very young, and still own one today, and (2) primarily because there isn't already five different emulators in which you can play Intellivision games. In fact, as far as I know, Bliss is the only free and fully-functional Intellivision emulator. Sure, that's a small niche, but at least for the moment, it's my niche. :-) For some weird reason, that makes it all the more fun. If there are other Intellivision emulator authors out there, though, who have just not publicly released yet and would like to cooperate in any way with sharing info or anything else, I'd be happy to do it. Viva la Intellivision!!! :-)

5. What were the most challenging aspects of completing Bliss? Where did you get the information to complete the emulation that nobody else had managed to do publically before?

A lack of technical documentation was the single most challenging factor. Before I got in touch with Joe Zbiciak, I was scraping up a few bits of technical info off of the Internet a day, but it was very tough to find what I needed. It's my understanding that long ago, Mattel Electronics(tm) did not want this information distributed so that competitors could not write software for their console, and that's still the largest reason why info is not available today. When Joe agreed to help, the floodgates really opened because he had already been through a lot of the researching efforts I was attempting.

6. Why did you choose Java as your programming language for Bliss?
I chose Java for 3 reasons.

1) I've been writing Java for 3 years and I am now more comfortable with it than C or C++.
2) I knew it would be easily portable.
3) I knew performance would not be too big of an issue since the Intellivision was 1970s hardware.

Well, it turned out performance was a little bit of an issue because of a couple of bugs in the Java graphics processing which I'm hoping will be fixed by Sun in the near future. I'm going to write a DirectX driver for Win32 users that will go around this bug and offer full-screen support soon. That will eliminate the single largest performance bottleneck for Win32 users anyway.

7. If you were to start doing Bliss again, would you choose Java again? why?

Absolutely. The first two reasons I mentioned above are still valid. The last issue with performance can be worked around by writing the native code I would have had to write anyway with a C or C++ emulator. Besides, performance factors always have a way of working themselves out over time as well. CPUs are always getting faster. A year from now when 2Ghz processors are mainstream, who will actually complain if the minimum system requirements for Bliss at that time are a P2-300? Well, who besides the fanatics who doggedly demand for their P166 to remain useful forever. Actually, I think eventually I'll easily be able to get the minimum system requirements down even below that mark.

8. What's do you plan to work on Bliss next? Do you feel it could reach a level where it has 100% compatibility and there's not much else to do in terms of emulation?

In the emulation core, I still have to add ECS mode support and the Intellivoice before it can reach 100% compatibility, then I have to add support for more than one player input before all games will be playable, but I totally believe Bliss will eventually reach 100% compatibility and playability for all known Intellivision games. In the codebase I have now, there are only 3 games left that do not boot up to the title screen and only about a dozen games that will not at least start playing the game. About half of those require the ECS mode support mentioned above. At that point, I'll be mostly working on features surrounding the emulation.
The long-term vision I'm trying to focus on for Bliss is to have a core emulator of Pure Java with support for Pure Java video, audio, and input. Then around that core, I'd like to have runtime detection and support for features specific to the operating system on which the emulator is currently running. So if Win32 users run the emulator and they have the .dll that offers native features, they'll see DirectX, DirectSound, and DirectInput available as configuration options in the config dialog. If Linux users run the emulator and they have the .o library that offers native Linux features, they'll see similar native Linux features. If either user runs the Pure Java core with no native library present at all, they'll only have options for Pure Java video, audio, and input, which of course will be a little slower and lack full-screen support and few other features, but it'll still function just fine.

9. Would you be looking into submitting an Intellivision driver into MESS if you found some extra time? How hard do you think it would be to incorporate it into the emulator?

Unfortunately, it would be an extraordinarily difficult task to add Bliss to MESS because Bliss is written in Java. MESS would require a Java Runtime Environment to be carried along with it just for Bliss, and I bet that's not something the MESS authors are interested in doing. I'd essentially have to write a new emulator in C or C++ for MESS. I'll probably leave that for someone else. I like MESS and it's a nice project, but I'm just not in a position with Bliss to be able to make a contribution to MESS.

10. Any comments to the emulation scene as a whole, or to the Intellivision fans out there?

Emulation rocks! I thought the classic games I played in my youth died a quiet death, but then they were reborn from the ashes into immortality just a few decades later. Bliss is by no means one of the more stellar emulators, but I believe some of the other emulators available out there will still be around in some form decades from now. It's just about the only scene that can legitimately say that. I've been searching for a way to make my contribution to the scene for quite a while. I'm very happy I can now make a contribution and it's very exciting that a few people can get some enjoyment out of it.
And he couldn't be more right. This emulation scene is great indeed. Heck, no other way I'd be doing this for years eh? I do love it as well. Anyhow, major thanks go to Kyle Davis for accepting to do the InterView, and of course, for his wonderful emulator. Thanks for reading!

One Article Up: U64 1.16!
One Article Down: Past-O-Rama update!

Add Your Comments

Name: Paolo Posted: Monday, February 5, 2001 - (18:48)
Subject: exec.bin
From: 212.171.241.139
I can't find exec.bin or grom.bin. where are they????
Thanks for helping me...

[Post a reply]

Name: Posted: Tuesday, September 14, 2004 - (6:49)
Subject: Re: exec.bin
From: w3cache1.univ-montp2.fr
>I can't find exec.bin or grom.bin. where are they????
>Thanks for helping me...
>

[Post a reply]

Name: subpsycho Posted: Wednesday, December 20, 2000 - (8:21)
Subject: more crossing
From: 213.178.65.232
How is a mac port? Is it ever going to get ported to the mac os?

[Post a reply]

Name: someguy Posted: Wednesday, December 20, 2000 - (10:37)
Subject: Re: more crossing
From: 142.22.16.51
>How is a mac port? Is it ever going to get
>ported to the mac os?

Isn't Java available for the Macintosh?
If so, try installing Java and opening the JAR file in the ZIP...

[Post a reply]

Name: Joe Zbiciak Posted: Monday, December 18, 2000 - (2:21)
Subject: And *I* would like to thank...
From: 24.219.30.193
Kyle thanked me extensively in his
interview above, as he's been in close
contact with me for the past couple
of weeks. Much of the information I've
shared with him

*I* would like
to thank William Moeller, Carl Mueller Jr, Scott Nudds, Frank Palazzolo
and John Dullea for providing much of the tech info.

Carl Mueller, Jr. wrote the emu
(INTVPC) that's on the original Intellivision Lives CD-ROM. In the process
of writing it, he did most of the initial "learning Intellivision" work.

William Moeller
actually compiled much of this tech-info Carl had generated and put it
into the De Re Intellivision documents.

Scott Nudds provided the original ROM dumps
and specs for building a cart reader.

Frank Palazzolo hosted much of the docs. He also
provided the Osborne CP-1600 and Intellivision Service Manual scans, and was
instrumental in helping me reverse engineer the Intellivoice.

John Dullea provided information on the ECS, and he, Frank P., and I have been working on
reverse engineering other Intellivision hardware.

Not included in that list, but still an
important contributor is Chad Schell.
He provided the world with the
Intellicart, and he and I worked out a
number of nitty-gritty Intellivision
hardware details as part of that process.
Also, his Intellicart makes it trivial
for me to write short test programs
and probe the behavior of the REAL
Intellivision in different ways. This
is invaluable for emu writing.

So please extend Kyle's thanks to me
to these other people as well.

Regards,

--Joe

[Post a reply]

Name: Joe Zbiciak Posted: Monday, December 18, 2000 - (2:27)
Subject: Re: And *I* would like to thank...
From: 24.219.30.193
>Kyle thanked me extensively in his
>interview above, as he's been in close
>contact with me for the past couple
>of weeks. Much of the information I've
>shared with him

[ack.. somehow deleted part of the paragraph]

Much of the information I've shared with him came from other sources. While I certainly have a deep pile of documentation, I certainly didn't write it all or even most of it.

[Post a reply]

Name: Nighthawk Posted: Monday, December 18, 2000 - (0:22)
Subject: Keyboard
From: 152.163.204.194
Do you plan to emulate some of the intellivision periphials such as the computer module or the piano keyboard. I had a roommate in college who had a full intellivision system keyboard, piano keyboard, invellivoice, atari 2600 adapter and he had rigged up some sort of non standard cassette interface. It was extremely cool to work with a maxed out intellivision (even in 1992). It is too bad that later game systems did not add some of that kind of hardware.

[Post a reply]

Name: Posted: Monday, December 18, 2000 - (12:31)
Subject: Re: Keyboard
From: 63.227.181.132
> Do you plan to emulate some of the intellivision
> periphials such as the computer module or the
> piano keyboard.

Yes, I would absolutely like to include emulation of all known Intellivision hardware in time. Unfortunately, I don't really know any kind of time frame for any of the items you mention as I just have a list of items to complete and I'm pretty much working next on whichever item on the list interests me most. At the moment, that item is full-screen DirectX support. After that, it will likely be ECS mode, then DirectInput (2-player support!), then Intellivoice, but the priorities of this list change on a daily basis. :-)

Kyle Davis

[Post a reply]

Name: Posted: Thursday, October 14, 2004 - (13:29)
Subject: Re: Re: Keyboard
From: ool-18e400ba.dyn.optonline.net
>> Do you plan to emulate some of the intellivision
>> periphials such as the computer module or the
>> piano keyboard.
>
>Yes, I would absolutely like to include emulation of all known Intellivision hardware in time. Unfortunately, I don't really know any kind of time frame for any of the items you mention as I just have a list of items to complete and I'm pretty much working next on whichever item on the list interests me most. At the moment, that item is full-screen DirectX support. After that, it will likely be ECS mode, then DirectInput (2-player support!), then Intellivoice, but the priorities of this list change on a daily basis. :-)
>
>Kyle Davis
>

[Post a reply]

Name: ALESSIO Posted: Sunday, December 17, 2000 - (18:34)
Subject: HELP ME!
From: 194.153.103.230
WHERE I CAN TAKE THE EXEC.BIN ANG GROOVE.BIN FILES?

[Post a reply]

Name: Someguy Posted: Sunday, December 17, 2000 - (19:51)
Subject: Re: HELP ME!
From: 24.69.102.15
>WHERE I CAN TAKE THE EXEC.BIN ANG GROOVE.BIN FILES?
>
Umm, did you try looking in this site's ROMS section for the ROMS...?

[Post a reply]

Name: tom pretto Posted: Sunday, December 17, 2000 - (16:28)
Subject: WOO HOO!
From: 63.23.7.60
I have been waiting SOOO long to play AD&D on my PC! I have wanted a free intellivision emulator for so very long, as my original intellivision system is worth less than the price of a blue sky rangers CD!!! Go figure!
MANY THANKS! Now I can pack my old Intellivision system away where it won't take up any space in my entertainment center ever again!

[Post a reply]

Name: Duckie Posted: Sunday, December 17, 2000 - (14:20)
Subject: YOU are a hero Kyle
From: 162.33.154.238
Thanks so much for Bliss. Your statement: "Bliss is by no means one of the more stellar emulators" is just completely false... I think Bliss is one hell of an emulator, not to mention the fact that it is moving cross-platform emulation into the limelight. Though there are other Java emulators out there, Bliss is demonstrating its power to larger groups of people. Your pioneering efforts are very much appreciated!

Another thing, your comments about CPU speed are very astute. Intel has recently admitted Moore's law will continue to apply well into the future, as they anticipate 10ghz processors (and a .007 micron die) by 2005. In light of this, I'll take accuracy and cross-platform possibilities over speed ANY day. This is similar to the DOS/Windows argument, with people still insisting that DOS is the platform of choice for emulation: Microsoft claimed its death years ago, and future platforms will no longer support a DOS shell at ALL, so we need new (read: better) alternatives. I'll take Win32 and Java. ;-)

Thanks again for the great work Kyle. I look forward to seeing your "additions" to the emu in the future (how well do you think Java would do to support netplay?.

Cheers,
Duckie


[Post a reply]

Name: Posted: Monday, December 18, 2000 - (12:38)
Subject: Thanks!
From: 63.227.181.132
> How well do you think Java would do to support
> netplay?

Java's networking APIs are pretty incredibly well done and are cross-platform as well, so netplay isn't out of the question. The only issue when it comes to netplay is latency. Games usually have to be designed with a high tolerance for latency between multiple players. The Intellivision game cartridges, obviously, were not designed with this latency tolerance in mind. You see similar issues when using existing netplay features of other emulators over an Internet connection, but I would think local-network play should at least be feasible. I'll probably try it out in some future version of Bliss.

Kyle Davis

[Post a reply]

Name: Duckie Posted: Monday, December 18, 2000 - (13:12)
Subject: Re: Thanks!
From: 162.33.154.238
>> How well do you think Java would do to support
>> netplay?
>
>Java's networking APIs are pretty incredibly well done and are cross-platform as well, so netplay isn't out of the question. The only issue when it comes to netplay is latency. Games usually have to be designed with a high tolerance for latency between multiple players. The Intellivision game cartridges, obviously, were not designed with this latency tolerance in mind. You see similar issues when using existing netplay features of other emulators over an Internet connection, but I would think local-network play should at least be feasible. I'll probably try it out in some future version of Bliss.
>
>Kyle Davis
>
>Sounds good to me, Java was really written with networking in mind, so its really in its own element here I would think... you're the expert... ;-)

I have seen some amazing leaps forward in this realm, specifically with respect to ZSNES netplay which is very playable over the Internet (tested it in a wide variety of configurations), I'm wondering if the performance issues of a Java-based emulator would preclude the possibility of attaining that level of playability, but who knows (it would certainly be a first I think!). Regardless, it would certainly be playable over a 10/100 LAN. DirectPlay would be very cool, but since in my case I have two stations each with a gamepad, it would be easier to do netplay than to constantly reconfigure one of the machines for two pads. In either event, even if you stopped writing any more features to the emu today I would still be grateful since Bliss is such a great piece of work!

Cheers,
Duckie

[Post a reply]

Name: muriloq Posted: Monday, December 18, 2000 - (11:51)
Subject: Re: YOU are a hero Kyle
From: 200.190.229.61
>Thanks again for the great work Kyle. I look forward to seeing your "additions" to the emu in the future (how well do you think Java would do to support netplay?.

NetPlay support using Java it's easier than using any other language. All required for this is just there, without the need of any external library.

Muriloq

[Post a reply]

Name: CD Posted: Sunday, December 17, 2000 - (12:30)
Subject:
From: 63.50.143.154
Which controls on the keyboard work for the control pad Intellivision came with? Also will I be able to use my joystick?

[Post a reply]

Name: someguy Posted: Sunday, December 17, 2000 - (12:04)
Subject: interview
From: 24.69.102.15
>Well, who besides the fanatics who
>doggedly demand for their P166 to
>remain useful forever.

Or they're simply too broke to afford a new PC...
:-(

[Post a reply]

Name: tom pretto Posted: Sunday, December 17, 2000 - (19:48)
Subject: forever
From: 63.17.197.208
Actually, I hope that I can FOREVER emulate my intellivision system, no matter where technology leads us. Sometimes it seems that older=better, and the only reason we only need faster machines is to emulate our older(read: more interesing) ones! Long live bliss.

[Post a reply]

Name: tom pretto Posted: Sunday, December 17, 2000 - (16:21)
Subject: problems?
From: 63.23.7.60
It sucks that we need 300MHz of "current technology" processing power to emulate a 844Hz "0.844MHz::outdated" intellivision. Java is definitely the crux of the problem. Also, there are TWO java standards: SUNs', and MICROSCOFFEDs', leaving java developers with platform(runtime)-specific code that is not as portable as originally touted.

>>Well, who besides the fanatics who
>>doggedly demand for their P166 to
>>remain useful forever.
>
>Or they're simply too broke to afford a new PC...
>:-(
>

[Post a reply]

Name: Joe Zbiciak Posted: Monday, December 18, 2000 - (2:12)
Subject: Re: problems?
From: 24.219.30.193
>It sucks that we need 300MHz of "current technology"
>processing power to emulate a 844Hz "0.844MHz::outdated"
>intellivision.

Well, keep in mind, it's emulating the
0.9MHz (ok, 894886.25 Hz) CPU, the 3.579545MHz
STIC (graphics chip), the one (or two)
Programmable Sound Generators, and so on.
The Inty had a lot of "hardware assist" that
now must be emulated in software. Granted,
a 300MHz box is overkill if you're coding
directly to the medal, but let's face it,
300MHz boxes are already 3yrs old.

> Java is definitely the crux of the problem.
>Also, there are TWO java standards: SUNs', and
>MICROSCOFFEDs', leaving java developers with
>platform(runtime)-specific code that is not as
>portable as originally touted.

Well, I'm running Bliss using IBM's JDK under
Linux, so obviously it's writing portable code
is certainly possible, and actually *happens*
occasionally.

You get platform-specific portability issues
no matter WHAT language you use -- even PERL!

As for the performance requirements, yes, you
can emulate the Intellivision's 0.9MHz CPU
and simplistic STIC on actually a quite minimal
system (I won't say just how minimal, but I
will say I recently heard of a successful
effort on a machine MUCH MUCH slower than
even a 286).

The problem is that there's a continual
tradeoff between programmer time and program
speed, and computers are getting faster
at a higher rate than programmers are. I
know of a couple emus written mostly in assembly
and, well, they took quite a long time to write
and they're not portable. My own emulator
(jzIntv) is written in C, and is quite portable.
Bliss is almost more portable than even jzIntv.
(I say almost more portable, since I've
ported jzIntv in part to TI's DSPs, but no
such port of Bliss is possible until someone
ports a JVM to the DSP...)

Anyway, I digress...

[Post a reply]

Name: Someguy Posted: Sunday, December 17, 2000 - (19:48)
Subject: Re: problems?
From: 24.69.102.15
>It sucks that we need 300MHz of "current technology" processing power to emulate a
>844Hz "0.844MHz::outdated" intellivision. Java is definitely the crux of the problem.

To be fair: I think developing the emulator in Java is actually a very good idea - it'll make it much easier to port to other platforms such as Linux, Mac, etc.

I think it's more of a comment on how inefficient Java is - I guess Sun has done a good job of learning from Microsoft how to create 'bloatware'.

[Post a reply]

Name: Joe Zbiciak Posted: Monday, December 18, 2000 - (2:13)
Subject: Port? Heh!
From: 24.219.30.193

>To be fair: I think developing the emulator in Java is actually a very good idea - it'll make it much easier to port to other platforms such as Linux, Mac, etc.

Port? Heh. I'm running the "Pure Java" version
as-is on my Linux box.

--Joe

[Post a reply]

Name: Posted: Sunday, December 17, 2000 - (10:45)
Subject:
From: 151.30.72.63
The link to the cabinet image is broken!

[Post a reply]

Name: JoseQ Posted: Sunday, December 17, 2000 - (11:25)
Subject: Re:
From: 24.93.19.224 (not JoseQ)
Fixed. =)

JoseQ

[Post a reply]

Name: jojo Posted: Sunday, December 17, 2000 - (2:38)
Subject: Thanks Kyle
From: 144.132.105.49
You are bringing back many happy memories for me. Keep up the good work. :-)

[Post a reply]

Post Some NEW Comments on this topic...
Name:
Subject:
Text:

2001 EmuViews