An Interview with Jeff Kulczycki, the creator of D2K: Jumpman Returns

Jeff Kulczycki

Jeff Kulczycki

Donkey Kong II: Jumpman Returns made its public debut at this year’s California Extreme show in

San Jose, CA and should be available soon for purchase (for the latest details, check jeffsromhack.com). The roots of the game actually go back a number of years. In 2004, Jeff Kulczycki wrote an extra level for Donkey Kong and sold it on his site in the form of an updated ROM containing all of the original levels plus one more he made up which he called the Foundry level. It was meant to be played on original Donkey Kong hardware and the response from classic arcade collectors and fellow hobbyists was overwhelmingly positive. Encouraged by this success, Kulczycki continued to add new enhancements to this beloved classic. In 2005, there was an early beta of what would eventually become known as D2k at California Extreme. At that time, the game consisted of three new playable levels and one level that was still very rough (and eventually abandoned) as well as some exciting new intermission sequences built around the original storyline of Donkey Kong. Kulczycki recently published a great article about the making of D2k which you can read in this month’s GameRoom magazine. As an early and ardent fan of the game, I was lucky enough to beta test D2k (read Donkey Kong: Great Game or Greatest Game for my thoughts on the enhancements). I sat down with Kulczycki during this year’s California Extreme show to learn more about the game.

JVW: How did D2k come into existence?

JK: The Donkey Kong sequel that I made started out as a free play hack. It was a game that I owned and I wanted to add free play to it and, at the time, I think Scott Brasington was doing a free play hack as well. So I thought, “No one’s going to want to buy my free play hack because his saves the high scores and everything.” So that’s why I thought maybe if I added an extra level or something cool. So I started adding the custom text where you put your name in the attract mode and then I eventually added the Foundry level. And everybody played that and thought it was really neat so I thought, “Hey, maybe I’ve got something here!” so I decided to try adding a couple more levels. And that’s really how the game was born.

JVW: What you’ve done here really seems unprecedented. We’ve seen a lot of after market add-ons and kits that allow you to play multiple games that run on the same hardware or save the high scores but I can’t think of another example like this where the very game itself has been extended while still remaining true to the game play of the original game. This must have been a really time intensive project. How long have you been working on it?

JK: I’ve been working on it, off and on, for probably three and a half years. It started with looking at the code which, you know, was a lot of work because you have to understand all of the routines if you’re going to add something like a new level. And then, of course, coming up with ideas for a new level. Everybody thinks they have a great idea but, you know, sometimes I’d throw an idea out there and try it and I’d be like, “This isn’t fun at all!” you know? Or this, this looks just like this level, it’s too similar and it’s not really working out. So I kind of went back and forth with a bunch of ideas. And then you stop working on it for a while. And then my kids were born. And you kind of shift your priorities around a bit. So definitely, finding the free time to work on it was a challenge. And it feels good to finally be done with it.

JVW: So are you a programmer or an engineer? What do you do for a living and how did that inform what you were able to accomplish here?

JK: I live in Detroit and I work on automotive electronics and software and I think that background helped a lot. Being an electrical engineer helps with debugging the games and understanding how the games work. But I definitely enjoy getting into the software aspects of it because that’s where you really get to see what the programmer was thinking and find out, for example, why there’s a kill screen and why they have all these certain anomalies, bugs, and stuff like that.

JVW: Speaking of the Donkey Kong kill screen, that’s become something of a favorite line from King of Kong. Were you able to find out why the kill screen happens and have you “fixed it” in the D2k release?

JK: The Donkey Kong kill screen was a little bit of sloppy programming. I suppose they didn’t think that somebody would get that far and there’s a few bytes in there that kind of go wacko when you get up that high. And, yes, I’ve fixed that in Donkey Kong II/D2k. I wanted to take a look at some of the other bugs and see if someone had spent a little more time on it, maybe they’d be fixable, too.

JVW: I thought it was really neat what you did with the Pie Factory level.

JK: Yeah?

JVW: Back in the day, it was hard enough to even get to that level but, when you did get to it, it always felt like you were cheated in that you didn’t have to go all the way up to the platform to rescue the girl like you do on the other levels.

JK: I felt the same way. It’s like you get to the top and then, “That’s it?! It ended? What happened?!”

JVW: So how did you “reverse engineer” the code? How did you figure out what regions did what?

JK: The first game I sort of “reverse engineered” was Dragon’s Lair. I got tips from Jeff Kinder [ed: Dragon’s Lair Project] and worked with Dave Hallock on the code. And, at the time, there was a lot of focus on that game because people wanted to find out why the drawbridge scene was always skipped because it’s on the disc and it wasn’t in the game. And, eventually, Dave Hallock added the drawbridge scene and that was one of the things I was looking into–understanding the code and how things work. That game has a basic engine to it: you program the moves; you program the frame files that you’re expecting to play on the disc. And that got me thinking, “Well, hey, maybe I’ll take a look at some other games.” So basically, you get the ROM and nowadays you don’t even have to necessarily own the game but if you want to read the ROM out, you disassemble it and then you go through it and it’s a pretty painstaking task to understand what every single instruction does. Some people do ROM hacking but they’re only looking at adding extra lives somewhere so all they have to find is the lives routine and kick it up by one. But I really wanted to understand the game a lot more and the more you get into it, the more interesting it gets. So you’re like, “Hey, whoa, this is how they do the jump, this is how they calculate the points.” So I kept going with it. Then you start to find the routines where they draw the screens and then you start to realize, “Hey, I can change this! I can move a girder here or I can add a ladder here!” Donkey Kong is one of those games that really lends itself well to being customized. You can move things around, change the colors, change the way things behave and suddenly you’ve got a new level. I guess, in the back of my mind, it was always a dream of mine to come up with a new Donkey Kong game and I think a lot of people have that same thought.

JVW: Sure, I have.

JK: It’s like, hey, I’m going to make games some day! But I never thought I actually would and, you know, finding the time was difficult, too.

JVW: So it was an iterative process?

JK: Yeah, you go through the code line by line and you look to identify variables–you know, like the number of lives or what level you’re on–and then you kind of trace it through. MAME was actually a really good tool for that. It has a lot of really good debugging tools that allow you to step through the code and see what it is. But a lot of it is just staring at the code and saying, “What is the programmer trying to do here?” And, like I said, you keep following things along and it gets pretty interesting just to see what they’re doing and the number of variables being tracked because they didn’t have the luxury of large hard drives, virtually unlimited space, flash ROMs and stuff like that.

JVW: As you were analyzing the code, what were some of the surprises you discovered along the way?

JK: Well one thing that is interesting is that there is actually text at the end of the Donkey Kong program. If you look at the text is says something like, “If you’ve figured this out, call this number.” And there’s something, I can’t recall if it’s an address or a number or both. It’s pretty well-known if you look it up on the web. [Ed note: There is this text in one of the ROMs of the Japanese version:CONGRATULATION !IF YOU ANALYSE DIFFICULT THIS PROGRAM,WE WOULD TEACH YOU.*****TEL.TOKYO-JAPAN 044(244)2151 EXTENTION 304 SYSTEM DESIGN IKEGAMI CO. LIM.] But the big surprise was a sprite. It’s basically a pie that’s kind of tilted to the end on an angle and, when I saw that, I thought, hey, wait a minute. We don’t actually see that in the game. We just see them going left to right. So maybe, at some point, they were supposed to fall down or something like that and that’s how I got the idea for the mixer level. OK, let’s see what happens if stuff falls off the end of a conveyer and tumbles into nowhere. As far as other things in the code, I could see where they were limited to just the four levels. You look at the space that they have with the 16K of ROM and they make pretty good use of the space. At some point, I guess you have to stop programming and ship it. I mean there’s probably some things they thought about doing differently or even adding but basically they probably just ran out of time.

JVW: I’m amazed you were able to get so much out of that little bit of space. You’ve added lots of cool intermission sequences, four new levels, and you’ve enhanced the four old levels in small but compelling ways and yet it all runs on original hardware. How were you able to do that?

JK: Well, D2k actually runs on a 32K ROM. The original hardware was only 16K. When I did the Foundry level, that really was a challenge because I wanted it to run on the original hardware so basically I had to find the room. I think, again, if you have more time and you can go back and look at something, you can find some routines that aren’t being used, routines that are being called more than once or they’re duplicated somewhere so you can eliminate the redundancies. For example, there’s a scoring routine where they were just adding a bunch of zeroes which, in the world of math, doesn’t do much for you, so I was able to eliminate a lot of bytes there. And just by going through, I guess, you know, again, my background in automotive electronics; we’re also trying to save a lot of money, get things in a small area or space, so it kind of helped in squeezing out a few extra bytes, which is what I needed to fit the Foundry level in. Of course, there was no way to get the four levels and all of the intermissions into 16k so that’s where the Braze kit really helped out just by allowing more space.

JVW: Did you change any of the barrel routines? You mentioned they were complex and one area that you looked into to save space when working on the Foundry level.

JK: Well, there’s a lot of physics involved in rolling a barrel and having it bounce and determining how it slopes down and stuff like that. So, if you look at the code, I think most of it was dedicated to the handling all of those barrels! The rest of it’s really simple, like all those fireballs kind of bounce and go back and forth, extendible ladders just go up and down, Kong goes left and right–those are pretty simple routines–but when it came to rolling a barrel, having it slide at a slant, having it fall of an edge, look for an edge, bounce, turn around and come back the other direction, there was a lot of code in that. And whenever I needed to test something, I pretty much just deleted the Girder level and it would free up a whole bunch of space so I could try things out. But eventually, you know, I knew people wanted to play the barrels level because that’s the first one you see so I had to add it back in before the Foundry was released.

JVW: How did you come up with those intermission sequences? They’re very amusing and they really add to the overall story.

JK: Well, I guess it was Ms. Pac-man that had the intermissions and I always thought that was fun because, back in the day, no one wanted to watch you play but as soon as you got to a new intermission, everyone would crowd around to watch going, “Hey, check it out!” So that was something that I always thought was missing from Donkey Kong. So, I thought, hey, maybe I could group a couple of sprites together and move them left to right and come up with something. Towards the end, I don’t know if you’ve seen the chase where Jumpman is chasing the girl.

JVW: Yeah, I love it!

JK: Well, it’s basically a take-off on Ms. Pac-man where they’re chasing each other and they bump into each another. I thought that would be fun.

JVW: I think it’s even funnier in Dk2 since Jumpman is literally half the height of Pauline. It kind of reminds me of playing kissing tag during second grade recess where the girls were always a good six inches taller than me.

JK: And the hot foot intermission where Jumpman gives Kong the hot foot is basically like Congo Bongo. I think some of those things are memorable in a game because you’re trying to see the next one. It’s like, “OK, what happens next? What does the next one look like?”

JVW: In the hot foot sequence, Kong is shown sleeping on his side. Is that something you drew?

JK: Yeah. There’s a limit to the sprites you can use and I wanted to see if I could come up with something different and I found that by overlapping different sprites and using the solid black square sprite, you’re able to mask things out. It gets pretty intensive because maybe you don’t want a pixel here or there or you want to make a slant or something like that so you’ve got to add like four or five sprites just to cover up maybe one pixel. But by moving stuff around, you can come up with a whole new graphic.

JVW: Ah, is that how you did the Mixer level?

JK: Yeah! First you start with a full pie and now you have an empty tin just by putting a black sprite over the top of it. I used that same idea for that scene at the end of the Rivets level where Kong is hanging on, to make his arms because, you know, those sprites weren’t in there. [Laughs.] And then I ran into a problem there, too, because the first levels had overlapping sprites and things weren’t really showing up right and I think I eventually tracked it down to the fact that the hardware only lets you have sixteen or so sprites in any vertical area and once you had more than sixteen in that vertical area, it would kind of ignore a couple so then I started sort of shifting them a little to the left and a little to the right just so they weren’t overlapping in the same vertical plane. It ended up being a lot of work, working it out on a spreadsheet, just to see which pixels were overlapping and which ones I had to move left and which ones I had to move right. In the end, everything looked okay.

JVW: So what has the response to D2k been like so far? Are there a lot of people following your progress?

JK: Very positive. I guess when you’ve been working on something for more than three years, it kind of drags on and some people get impatient but there is a lot of interest and there have been a lot of people who have been following it. Like yourself and Beau Hall. People will just email and say, “Hey, when’s it going to be done!? Are you still working on it!?” And sometimes it’s that kind of support that you need to really push things through and keep going on a project. And now that it’s done, I’ve definitely heard from a lot of people who are interested in it.

JVW: So tell me about your ideas for a dedicated D2k cabinet?

JK: Yeah, it’s funny… because a lot of people buy the kits and they’ll just stick it in their same cabinet. Like they’ll buy the Donkey Kong kit and stick it in their existing cabinet. And Scott [Brasington], I guess, had the idea of doing the Double Donkey Kong art and I’ve seen some of the new artwork and I thought, that’s great because you want to dress up your cabinet. As a collector, sometimes it’s not just the game, it’s the cabinet. It’s the artwork, the stickers, the coin door stickers, things like that. So I thought, why not do the complete package and try to come up with the full game so some of it was just cut and paste in PaintShop Pro, changing the colors and just giving it a new look because I didn’t really want to deviate from the original Donkey Kong too much. Things had to be kind of similar. But definitely coming up with a different color scheme, like the navy blue that we came up with, makes it just different enough that you recognize it as a sequel, but similar enough that you say, “Hey it’s kind of the same game!”

JVW: And how do you feel about its placement at California Extreme? Should it be after Donkey Kong or after Donkey Kong 3? I know this was the subject of a lot of debate as the show was being set up.

JK: [laughs] I like that it’s next to Donkey Kong because the two games are similar. And there really wasn’t a sequel. There was Donkey Kong Junior but, to me, that wasn’t really a sequel. It never really brought the same game play back. And by the time they got to Donkey Kong 3, it just seems like it changed altogether. So, yeah, having it next to Donkey Kong was the right placement.

JVW: How has the game been received during the show?

JK: I’ve seen a lot of people playing it and it’s been fun to watch people play. It’s fun to see people get stuck at the spots where you expected them to get stuck or scratch their heads where you were hoping they’d scratch their heads. And hopefully I’ve made it challenging enough that people keep wanting to come back but not so challenging that they just throw up their hands altogether. Because, you know, like we were saying, when you played your first Donkey Kong game, you didn’t know how to solve all the levels. Playing it for the first time, you had to experiment and find out all the tricks and tips so, hopefully, this game will bring that back to people who are playing it for the first time.

JVW: Absolutely. So when will the game be available and how will people get it?

JK: Soon. There have been a few setbacks in getting it completed. People who are interested should keep checking my website for updates.

JVW: And if people want to make a dedicated D2k cabinet will they be able to obtain the artwork?

JK: Hopefully I’ll be able to find a way to make the artwork available so people can put their own cabinets together.

JVW: So are you really done? Or do you think you’ll still go back and tweak it a little bit more?

JK: I have to stop! There were some things I wanted to change and you had some good ideas and I thought, you know, maybe I should make the first level a little bit easier because I notice a lot of people have trouble, even with that first jump, the jumping over the fire. So I thought, I should make this a little bit easier. But then I thought, you know, I’ll just throw it out there and let people play with it. I mean, I’ve got to stop working on it some time. [Ed. Note: since this interview, Kulczycki has made additional refinements to the game which should be available in the final release, including making the Refinery level the first level, easing the Refinery gas timing, and moving the fireballs off of level one; all in an effort to make the game more accessible.]

JVW: Well, it’s a fantastic project and the results are amazing and well worth the effort. I just wanted to thank you on behalf of all gamers for your dedication to the hobby and for creating this very cool new game!

JK: I hope people will enjoy it. It’s been a lot of fun working on it.

JVW: So what’s next for you? Are you ready to take on another classic arcade game?

JK: I’ve got to save the ones in my basement right now. I haven’t been paying enough attention to ones I own so I have to get down there otherwise they’re going to find their way to the curb eventually. So, as far as new projects go, I think at this point, I’d like to just take a break and see what happens next.


Comments are closed.

IMG_3944IMG_3943IMG_3942IMG_3941IMG_3940IMG_3939IMG_3937IMG_3936IMG_3935IMG_3934IMG_3933IMG_3932IMG_3931IMG_3930IMG_3929IMG_3928IMG_3927IMG_3926IMG_3925IMG_3924

Bad Behavior has blocked 22 access attempts in the last 7 days.