 |
| |
 |
| Pushing Intellivision to the limits |
IntellivisionWorld interviews Joe Zbiciak, programmer of Space Patrol and 4-Tris games, creator of the Intellivision emulator JzIntv and modern guru of all Intellivision related development.
|
 |
|
|
 |
Interview by Valter Prette
Mr. Zbiciak, thanks for your time, few words about you: where do you live, what's your real job, anything you want to communicate to the Intellivision community.
I currently live in the Dallas, TX metroplex. I am an engineer for Texas Instruments, working on various aspects of DSP CPU architecture.
I'm in my dream job, although in recent months things have been unusually hectic. That's meant that my Intellivision work has suffered somewhat. I am still working on Intellivision projects though, if slowly. I'll share more details in a moment.
I should thank you must of all, for all your efforts spent on reviving the Intellivision during last decade. When did all start? Where you a fan of Intellivision since child?
The first real video game system we owned when I was a child was an Intellivision. I say "real" to distinguish it from the Pong-type units we had before it.
When you decide to start programming the console, did you had technical documentation to refer to? How did you manage to study the assembler of the console?
Shortly after I graduated from college, I decided I wanted to try my hand at writing an emulator and/or a video game for one of the systems from my youth. Intellivision was probably the biggest unknown to me at that point. I had played with a few other emulators by that point, such as MAME and so on. There were emulators for most major systems. My interests were in the systems I had grown up with: the TI-99/4A, Apple II, Commodore 64 and the Intellivision. I had emulators for the TI-99/4A, Apple II and Commodore computers. I couldn't find anything for the Intellivision.
And then I found Intellivision Production's first releases: "Volume 1" and "Volume 2", two downloadable emulator packs that each had three games packed with them. They were advertising a Magus 2 development board and the upcoming Intellivision Lives! CD-ROM. (Later, I would find out that these products all used Carl Mueller Jr's emulator). Other than that, there was scant documentation out there.
After considerable digging, I found William Moeller's De Re Intellivision, based on Carl's reverse engineering documentation, along with a simple development kit Carl had put together. I can't stress strongly enough how vital Carl's work was to my own. He truly blazed the trail here, and I got as far as I did only because he was as thorough and effective as he was. Willy was also instrumental in getting the right people talking to each other, including Scott Nudds to get the early ROM dumps. I would likely have gotten nowhere quickly if it weren't for all that background work.
I also found Frank Palazzolo's DSPLIB site (as it was called at the time) that included data sheets, a scan of the "Osborne Book" that described the CP-1600 and Frank's disassembler. All of that helped get me started.
I downloaded the Volume 1 and Volume 2 emulator packs and set about reverse engineering their resource file format. I was eventually able to unpack their ROM images and so on, and replace them with my own hacked ROMs. Somewhere I have a screenshot of my first "Intellivision program", where I merely replaced the title of a cart with my initials. Nothing great, but it was something.
Skipping forward somewhat... it was from this backdrop that I started writing my own emulator. I started first with the CPU emulation, and eventually I started wrapping the rest of the system around it. My initial emulation work straddled DOS and Linux, since my goal from the beginning was to have a portable emulator. I used DJGPP + Allegro to build under DOS, and the X Window System port of Allegro with GCC to build under Linux. (These days I use SDL in place of Allegro).
I got jzIntv working well enough that it could display character graphics, but not sprites. The CPU emulation was pretty much complete as was audio. Graphics would take a back seat for awhile. I turned my focus to game development, and started retargeting Mark Zenier's public domain "Frankenstein assembler" to the CP-1600. In the meantime, other emulator writers had arrived on the scene. They took Carl's documentation, as well as documentation of my own that expounded on Carl's and Willy's, and managed to write complete emulators while I focused on game development tools. That's how SDK-1600 was born.
In the time since I started jzIntv, we went from having only INTVPC (Carl's emulator) to having several alternatives... Kyle Davis' Bliss, Joe Fisher's Nostalgia, John Dullea's IntvWin/IntvDOS... It was quite the renaissance in Intellivision emulation and development. So, with all these alternatives, I took a break from jzIntv emulator development to focus on game writing. jzIntv was good enough for my purposes even though its graphics support was incomplete. I got the Frankenstein assembler retarged to Intellivision, and started writing my first new programs. That's where all my early demos came from--Bouncing Pixels, Maze Demo, etc. That's also what I used to start writing the first full homebrew game, 4-Tris.
After awhile, it became clear that I wouldn't be able to get back to jzIntv very quickly. So, I collected up all my library routines, as1600, and so on, and released it as SDK-1600. It would be a couple years before I released an updated jzIntv.
|
 |
Something you want us to know about the JZintv package (new upcoming releases, collaboration with other developers, etc.).
jzIntv is inching toward a 1.0 release. It has seen a number of updates, including fixes for wide-format screens, portability improvements to more OSes and platforms (including the GP2X handheld), significant improvements to its debugger (which helsp writing games), and so on. Many of these refinements came in after the "Beta 3" release. I really need to get this out there.
jzIntv has seen inputs from a wide array of people, including but not limited to: Tim Lindner, John Tanner, Rick Reynolds, Pedro Giffuni, Joe Fisher, Frank Palazzolo and Carl Mueller, Jr.
What about the cartridge hardware. What is the solution you adopted to make new real cartridge?
For the existing cartridge releases that are out there, Chad Schell designed a simple, effective EPROM-based cartridge for me. This is the design I used to release 4-Tris nearly a decade ago,
and it's served us quite well up through the most recent Space Patrol release. While it is a robust, simple, effective and relatively low cost design, it is not without its drawbacks. Most notably, it has no provision for in-circuit programming, which means I need to decide ahead of time how many copies of each title to build before I send everything off to be manufactured.
For future cartridge releases, I have a new board design that uses fewer components and allows for in-circuit programming. This means I can build boards before the game is completed (or even written, for that matter). The relentless march of technology is what made this possible at an affordable price, as compared to when the previous design was completed nearly a decade ago.
This new cartridge board and its testing platform were both designed by me. (The testing platform is a simple breakout board with some extra connectors. It's also incredibly cute with those spacers and feet.) I do want to thank Chad Schell for his help guiding me through the process of using the various PCB development tools and so on so that I could do this board design myself. He's been an incredible resource on the hardware side of things. Also, working with him while he developed the Intellicart taught me quite a bit about the Intellivision hardware.
These new cartridges are fabbed and assembled professionally with all-new components.
Additional reasons for the new design include: Larger games supported (up to 240K bytes for the ROM -- previously we were limited to 32K bytes), additional RAM for complex games, more readily available parts, and so on.
How long does it take the production process itself? How long you need to make a new cartridge?
Building the physical boards without any game on them doesn't take very long. It's really about how much you want to spend. Programming games onto the boards also doesn't take that long--a couple minutes per board. Overall, the physical artifacts of a game (boxes, manuals, overlays, PCBs, labels) take a handful of months end to end, subject of course to shipping delays, material availability, etc. (I once had a batch of boxes get stuck in US Customs for 6 weeks, for example. How can I really plan for that?).
The real time eater is writing, testing and debugging the game itself. David Harley spent countless hours tweaking and refining Space Patrol's levels while I chased after 20 cycles here, 15 cycles there, the 2 frame animation glitch over here, etc. We easily spent 3 or more very busy months just refining an otherwise complete game.
The result was worth it, though. I feel like Space Patrol exhibits a level of polish rarely matched in Intellivision games, exceeded primarily by Arnauld's Chevallier superior efforts. :-) His games exhibit a genius for presentation that I can only aspire to.
As far as I know, there is only one real bug in the final production version of Space Patrol. I challenge folks to find it. ;-)
Some people investigated the opportunity of molding brand new cartridge shells in some asian manufacturing, but the cost are quite discouraging. There are new carts available for Atari VCS, did you ever try to adapt for using on Intellivision? What is the constrain?
I've looked into this a few times. VCS shells aren't really appropriate for the Intellivision. *Some* Commodore 64 shells may work for Intellivision. (In fact, if you want to destroy an Intellivision, simply plug a Commodore 64 cartridge in and power it up. You'll may blow the Inty's power supply, since the C64 cart will short +5 and GND.) I did investigate a source for C64 cartridge shells, to see if they could be used with the Intellivision. Sadly, they were too tall.
The Intellivison has one of the smallest cartridge form factors, making it hard to appropriate another system's cartridge shells for use on the Intellivision.
You become famous within the retro community for the 4-Tris game made for Intellivision. Since then, we have seen Space Patrol and the launch of the retrocompany Left Turn Only. What is the situation at the moment? Do you have new projects on the way?
Yes! Arnauld and I both have a couple projects in the pipeline. I had hoped to release something last year, but the sour turn of the economy has translated into hectic times at work, as there's more work to do, but no chance of getting additional employees to help.
Let's speak about the programming contest proposed by your web site. Any result at the end? Did you receive some code you can share with the community?
Ah yes. I *did* receive some entries. I have a 4 day weekend coming up. I should finally get the results posted. I've been so scatterbrained that it keeps slipping my mind to close that out.
What's your opinion on the future of Intellivision? We do not see much new web sites dedicated to it...
I think there is a fairly stable community of true Intellivision fans. Intellivision has always been more of a niche system as compared to the VCS, and so it won't get as wide an audience. The audience that it does have seems dedicated to it though. Because the community is fairly stable, I doubt you'll see a bunch of new sites getting added for it when the existing sites serve existing needs.
What's your opinion about the retrogaming market: there are a lot of projects on Atari VCS and Vectrex. Several conventions around the world. Is this genuine passion or just a case of business in your vision?
For me, it's an interesting hobby. I feel like I'm filling a niche, having turned into the current face of Intellivision Homebrew Development. There seem to be two sides to the retrogaming phenomenon: The coders and the gamers/collectors. There's certainly overlap between the two, but each group has distinct characteristics.
Hardcore coders seem to be drawn to the challenge of coding for such complex systems as the VCS and the Vectrex. Both systems present unique challenges you won't find elsewhere. The Intellivision is, by comparison, a much simpler and more straightforward system to program in general. In the Atari VCS, you're literally chasing the raster scan down the screen computing pixels mere microseconds before they're displayed. It's even more macho in the Vectrex: You control the cathode ray directly! For either system, its complexity and its reputation draw all types to the platform, including young new programmers that were born long after the system was considered "defunct." (On a recent visit to my alma mater, one of my professors told me about a recent grad who had emulated a 2600 on an FPGA for his senior project. If I did my math right, he would have been born 2 or 3 years after The Big Crash of 83.)
The Intellivision is comparitively tame, or at least that's the reputation. You have a nice logical character buffer implemented in hardware, hardware managed sprites with hardware collision detection, a built in character set... It's quite cushy as compared to the Atari VCS. And so, perhaps it's seen as less "sexy" to program. I don't know. It certainly doesn't evoke the "macho programmer" imagery that programming the VCS does, even though the Intellivision has challenges and limitations of its own.
On the other side of things are the folks that just enjoy playing the games, or collecting them. They have a passion all their own, and there's a much stronger nostalgia element there. If you didn't grow up with Intellivision, you're unlikely to come to it now. On this gaming/collecting side of things, I believe the community for Intellivision is fairly stable and truly enamored with the system, but not necessarily very large.
Given that the original Intellivision sold ~3M units, there's easily ~6M folks out there that remember it well enough to maybe be interested in some of what I call "turn-key nostalgia." This is the market that Intellivision Productions operates in. Folks in that market are happy to pay a small sum for a nostalgic gaming experience, but otherwise aren't particularly invested in the platform emotionally or intellectually. It's this market that I think you're alluding to when you say "just a case of business."
My focus is on other programmers and the core dedicated collectors and gamers. For me it's not about "business case." It's about having a fulfilling hobby that brings a smile to people's faces while stretching my abilities as an engineer.
Any chance for a programming book for Intellivision written by J. Zbiciak?
As much as I would love to write such a book, it seems unlikely that it's worth doing. If given a choice between writing a game and writing a book, I currently lean toward spending the time on writing a game. |
|
|
|
 |
 |
 |
 |
|
 |