Category: Atari

Open World Arcade Post-game report

This past Saturday, Dec 7, I had the joy of exhibiting my game, Ancient Technologies, at the Akron Art Museum’s Open World Arcade. It was an honor to have my game selected by the committee for inclusion in the event.

I made Ancient Technologies in 2016 for Ludum Dare 36, already quite a while ago. In preparation for the event, I wanted to make a few improvements and add features I’d wanted to include in the game, but hadn’t had time for due to the time constraints of the game jam weekend.

As a result, behind the scenes, I did battle with a few “ancient technologies” of my own.

At the Open World Arcade on Dec 7, 2019, Chris Sanyk showed his game, Ancient Technologies.  A young gamer tries it out.
Chris Sanyk at the Open World Arcade at Akron Art Museum, 12/7/2019

Plenty of time to get ready

About a month prior to the event, I had to decide how to bring my game to the public. I didn’t want to use my daily driver laptop for this, as it is the machine I depend on for everything, and I just didn’t want to assume any additional risk with it being touched by anyone who I didn’t know. But I have an old AMD Phenom II PC that I built around 10 years ago, which had sufficient specs to play the game, so I decided I would bring that.

I don’t run this box a whole lot, so the very first thing I needed to do was get it updated. I had wiped it some time ago, and reinstalled Windows Professional 7.1 x64, Google Chrome, a few other minor apps, and then hadn’t used it for much since then. So when I powered it on, the first thing I wanted to do was run Windows Update. WU detected about 150 updates that needed to be downloaded and installed, which took quite some time to complete, and I expected that it would take an hour or so, but it ended up taking far longer than it should have. My PC ran updates overnight, and I woke up the next day to find that it had failed to apply updates.

I then had to spend a few days researching the failure, and trying various things to get the system to update. Eventually, I found a Microsoft tool that fixes Windows Update when it breaks in the way mine was broken, and was able to install updates. Well, almost all of them. There’s still one update that just will not install, no matter what I do. Oh well. Typical Microsoft garbage.

I didn’t need to have the PC connected to the internet for the event, so I wasn’t that worried about not having it 100% updated, but I always like to run systems that are updated and maintained.

Once the hardware was updated, I turned my attention to the game. There were a number of features that I had to drop from the original Ancient Technologies, so I took the opportunity to work on adding these.

The most important to me were the UFOs and the player’s special ability (hyperspace, shields, or flip) that in the Atari 2600 version of Asteroids that I was re-creating inside of Ancient Technologies, is activated by pressing Down on the joystick. Fortunately, getting these implemented wasn’t terribly difficult, and I found it enjoyable to add these things in and get to see the fully realized vision of what I had wanted this game to be. It took me only about four evenings to do it, and it mostly went smoothly.

And, actually, adding these features wasn’t what took most of my time, it was fixing numerous minor bugs that I kept finding in the game as I tested it, and I tested the game extensively. None of these bugs were game breaking, and probably wouldn’t have been noticed by players in a short session, but, being a perfectionist, if I know it’s there, if I can fix it, it needs to be fixed. Numerous minute details, like logical conditions that should prevented certain sound effects from being heard, such as the TV being turned off, or the game console being unplugged or the cartridge being removed from the slot, needed to be checked and tested and fixed.

I figured out a simpler way to do this: create an audio group for all the sound effects that play through the in-game TV, and then set the gain to 0 when the TV is off.

The last minute stuff

The day before Open World Arcade, I tested out my game one last time. This time, I did more extensive play testing with my gamepad. Mostly, I’d been testing the game with keyboard input, since it was more convenient. To my horror, I discovered that the D-pad on Xbox 360 gamepads is absolutely terrible. It wasn’t so noticeable before, but now that Down does something, I kept accidentally hyperspacing when I just wanted to turn. It was completely unacceptable. The engineers who fucked up the D-pad on the XBox 360 gamepad should be flayed and their families put to ruin. Seriously, you guys, how hard is it to include a bit of tech that’s been around since the mid-80s, and not make it total garbage?

Suddenly, on short notice I had to find a better controller, a wired gamepad that worked via Xinput, and that has a really good D-pad.

I researched and couldn’t find any reviews that I considered reliable enough for alternative wired XBox 360 controllers that have a D-pad that doesn’t suck. I did find a number of tutorials on how to do surgery on your controller to make it work better, but I wasn’t willing to take a risk on it so close to deadline. I’ll probably do it later, though.

I did end up finding a few controllers for Xbox One that had reviews for good D-pads. I wanted to pick up a Hori Fighting Commander, which looked like it would be ideal, as it lacks analog sticks, it therefore must have a good D-pad. But I couldn’t find a physical store to buy one at within 100 miles, and I couldn’t order one to be delivered and have any hope of getting it in time. This was super frustrating.

I ended up picking up a PowerA Enhanced Wired gamepad for Xbox One.

Then I found that because Microsoft is a horrible company, they couldn’t be bothered to ensure that Xbox One controller drivers were available and easy to install for Windows 7, and had to spend several hours trying to find a method to install drivers so that my PC would recognize the damn thing. I still don’t have it working on my laptop, but fortunately, for whatever reason, I found a driver that will install and work on the PC I intended to use for the Arcade. Why the exact same driver won’t install on my laptop, I have no friggin’ clue. Goddammit, Microsoft, why? Why do you have to be so abysmal when it comes to supporting your own shit?

One nice thing, though, the D-pad on the PowerA Enhanced Wired gamepad for Xbox One is better than the horrible D-pad on the otherwise pretty darn good Xbox 360 controller.

Another last minute idea that I had was that I thought it would be fun to put Ancient Technologies side-by-side with the original. I had the equipment, I only needed a small enough CRT TV set that I could easily transport it and set it up. I didn’t have one, but I put the word out and one of my friends had a small TV that I could borrow.

Game Day

Game day started out smoothly, until I realized during setup that I had forgotten to pack my PC’s speakers. My desktop system has a nice set of 5.1 speakers which were really more than was called for, and I knew I had a set of regular stereo speakers in a closet somewhere, meant to grab them, got distracted, and forgot. This necessitated a last minute run to a store where I could pick up a set. Fortunately, I had plenty of time before the opening of the Arcade to do this, and it ended up not being a huge deal, but I had to drop another $25 on that, which, after the $25 I had to spend on a gamepad yesterday, left me annoyed at myself.

When I came back from the store, I happened to check my phone, and saw in one of the Facebook communities that someone had posted a photo of their old living room gaming setup:

Posted to one of the gaming communities I follow on Facebook, just before my day at the Open World Arcade began: an old TV set with Atari 2600 system connected to it.  Suddenly I felt connected to millions of people who grew up with this experience.
This looks familiar…

Seeing this hit me emotionally, and it made me feel that the game I was about to exhibit belonged and had relevance and cultural resonance. So may people in my generation grew up in a house with a big wood cabinet color TV set, and hooked up their game systems to it.

The screen where Ancient Technologies takes place echoes a common experience shared by a generation of the first video gamers.
Ancient Technologies harkens to a shared past.

I also discovered, to my dismay, that the TV set that I borrowed wouldn’t work. I didn’t have time to test it prior to the event, but when I looked at it more closely, I discovered that the power button was gone. There was a hole where it used to be. A remote control was taped to the TV set, but when I tried it, it wouldn’t work, and then I noticed that the batteries inside had gone bad and corroded the contacts, so there would be no way to use the TV. Regretfully, I put the TV and the Atari back in my car, and they would not be a part of the show.

Turning my attention to the PC, I booted it, launched, and tested that everything was working as it should. Of course, it wasn’t. Why should it be? I had only tested extensively and fixed every visible problem that I could see for a week. But somehow or another, the “put down” sound effect that I had coded wasn’t working. When you unplug the cartridge, or the power cord, it’s supposed to play the sound, but it doesn’t for some reason. I had never noticed this previously to the day of the event. My first thought was, “OK, somehow or other, I accidentally added the “put down” sound effect into the group of sounds that play through the in-game TV set, which is off, and that must be why the sound isn’t playing.” Nope! When I turn the TV on, the sound still doesn’t play. And when I went back to review my code, the “put down” sound effect isn’t in the TV sounds audio group. What’s more, if you unplug the joystick it also plays the same sound, and that’s the one place where it’s still working properly. Looking at the code in that object vs. the others, it’s the same frickin code: when you click the mouse on the object, play the sound. It works there, but not in two other places that are identical. No clue why. Maybe it’s because the joystick stays in the same place, while the cartridge and power cable move, putting them away from the mouse cursor, which somehow retroactively fails the audio_play_sound() function, even though it’s in the same god damn code block as the code that moved the object? WTF, GameMaker? What the Fing F?

Ancient Technologies is coded in GMS 1.4, which is no longer supported. I suppose the next thing to do would be to import the project into GMS 2, compile it, and see if it behaves the same way. I had been enjoying picking up this old project and working on it again, but with weird shit like this breaking for no explainable reason, it really puts me off wanting to do anything serious with GameMaker.

This problem wasn’t a showstopper. Most people who played the game probably wouldn’t have noticed it at all, not knowing that there was supposed to be a sound played when there was none, or in a lot of cases not even doing the action that would have triggered the sound effect. But after looking into it and finding no fault in my code whatsoever, I’m more frustrated with GameMaker Studio than ever.

The Open World Arcade

The event itself was great. I sat in my chair all day, and people came up and gave Ancient Technologies a try. I tried to give each person the experience from the start of the game, rather than leave the Atari console hooked up and playing Asteroids already. Players were about 50%-50% on having owned an Atari or played one before. I had people of all ages try it out, from about 4 on the low end to a gentleman who looked to be in his 60s.

Most of them were uncomfortable with the controls at first, having forgotten the function of the Down direction, or never having known it. I observed that nearly all of them immediately went to the dual analog sticks on the gamepad, a conditioned reflex that explaining the controls to them would not undo. About half of the players opted to use the keyboard controls rather than the gamepad, and it occurred to me that I could just as well have not bothered providing the gamepad at all, and no one would have really missed it.

Almost everyone started out playing the Hyperspace variation, and everyone’s immediate reaction to starting the game was to rapidly touch every control on the gamepad to figure out what did what. In virtually every case, the first thing they did was blink out of existence, into hyperspace, and then re-appear, confused and often about to collide with an Asteroid, which would promptly kill them. I realized pretty quickly that Hyperspace was probably the worst ability to start players off with, and that Shields or Flip would have been a much better choice. I needed to explain to most players that there were several variations, and how to access them using the Game Select switch on the console by clicking it with the mouse.

Many players seemed to hesitate after losing a life, reaching for the mouse for some reason. I’m not sure what they were thinking in the moment, but perhaps they weren’t aware of how many lives they had remaining, and thought that they would need the mouse to restart the game. But most players didn’t play more than once, even though I told everyone they could play as many times as they liked. It occurred to me that using the gamepad’s start button would have been convenient, but this wasn’t really a design decision given that I was trying to replicate the experience of hooking up and using an Atari 2600, and the Game Reset switch is on the console, not on the controller. A few players left their game in-progress, but I didn’t let it bother me.

I had left a stack of flyers with information about the game, but if anyone took one, I’d be surprised. I don’t think anyone did, although a handful at least looked at it. I also left a notepad for players to leave feedback or a comment, and only one person did so. I’m not sure what to take away from that, to be honest. I didn’t push anyone to leave me feedback or take a flyer or one of the business cards that I had, unless they engaged me in conversation and seemed like they would like one, then I gently offered that they could take one if they wanted.

Most of the “feedback” I obtained was through silently observing players and noting common patterns in how they engaged and interacted with the game. This gave me a bunch of ideas of things that I wish I would have thought of to put in the game, but couldn’t have thought of without watching someone else experiencing the game. Any time I noticed anything that could have been added or changed to make the experience better, I took note of it. Much of this was help/tutorial text on screen. Although, I wanted to avoid that, since the first part of the game is figuring out how to hook up the Atari. But I think something, like a ? icon in the corner that appears after several seconds of nothing happening, could have possibly helped players get into the game. As it was, I found that I had to explain to most of the players how to set up the Atari, and I think that defeated much of the purpose of letting them figure out the “Mystery of the Ancients” for themselves. Another feature I would have liked to add was an idle timer that reset the game after a period of inactivity, so that it would always start the next player off with a fresh experience even if I forgot to reset the game after the last person.

In all, it was a great experience for me to show my little game to random people and see how they interacted with it. Thanks to the Akron Art Museum and their wonderful staff for organizing this event.

Superman (Atari 2600) alternate map Romhacks, part 4

I had one more idea for an interesting map. This time I wanted to emphasize the importance of the Bridge to the map. So I thought, I would split the map into two halves, and put the bridge between them, as the only way to get from one side of the map to the other.

This was my prototype:

The prototype was shaped like an H.

I thought that this map had interesting potential, but I also had some concerns. I wanted to make sure that the traffic flow would still work, and that by splitting the map in this way, I didn’t make it likely that random movement would tend to collect everybody in one area of the map, and I wanted the random distribution of characters to not be unevenly distributed between east and west ends of town. I also wanted to ensure that the subway system would be evenly distributed, both in terms of entrances and exits, and that the subway provided useful shortcuts.

As I walked through this map, I quickly decided that a less obvioulsy symmetric map would be more interesting. I re-arranged screens and quickly came up with this:

A masterpiece of design!

The connections between the screens are a bit different from my previous versions. Moving horizontally, the map wraps, shifting up a row if you’re at the west edge, and down if you’re at the east edge. Vertically, the columns wrap around without shifting. The Bridge screen is different, when moving vertically it wraps around back to itself. This serves to keep the Bridge screen isolated, so bridge pieces will be somewhat protected from the helicopter when placed here.

Finally, the extreme corners of the map, the northeast and southwest corner screens, are connected to each other horizontally, creating a second junction between the two halves of the map. This helps provide a route for Clark Kent to walk to the Daily Planet at the end of the game, without being forced to use the Subway system, although this overworld walking route is very long.

The subway exits are again unchanged, and the subways provide several routes for traversing from one side of the map to the other. I arranged the subway system so that each colored subway screen has two exits on the opposite side of the map, and one exit on the same side of the map.

Thus, despite the broken bridge in the center, this map has very nice traffic flow between both halves of the map, many interesting shortcuts, and a challenging layout to learn, without the confusing one-way vertical borders on the Phonebooth and Bridge screens that vexed many beginner players of the original. After playing this map a few times, I think it’s every bit as good as the original, and might even be more fun to play. And aesthetically, I love that the Bridge is now the centerpiece of the map, and truly joins the two halves of Metropolis together.

Here’s the map again, with the wrap routes indicated:

I don’t think there’s much more I can do with the map after this. So I think this is where I will leave the evolution of the map variations.

I would still like to introduce randomized bridge piece starting screens, but to figure that out will require more understanding of the source code than I currently have.

I also think it would be neat to make a super-rom that includes all of the map variations in one file, switchable via the Game Select switch. Again, this is beyond my current capabilities with my very limited understanding of the source code and 6502 asm.

You can download the entire collection of romhacks here:

Superman (Atari 2600) alternate map Romhacks, part 3

After publishing part 2 of this series, I played my grid map romhack a few times, and I think it’s rather good. I don’t know that I would say that I prefer it over the original map, but this is certainly a viable alternative map.

After a few playthroughs, I notice a few things:

  1. The helicopter moves bridge pieces away from the Bridge screen much more frequently. In the original, once you’ve placed a piece at the Bridge screen, the helicopter would only rarely remove it.
  2. The helicopter seems to move pieces from their starting screen much sooner, as well.

I like both of these differences; they make the game more challenging, and I think, more fun. You really feel like you need to race the helicopter to complete the bridge task. But I think it’s worth experimenting with the map to see if there’s a way to restore the original design intent, by reducing the number of paths into the Bridge screen. It occurs to me that an easy way to do this is to make the two screens above and below the Bridge screen connect to each other, rather than to the Bridge screen. So the Bridge will exit vertically to those screens, but reversing course will skip over the Bridge, but still place you near the Bridge; players would need to figure out that they are “around the corner” from the Bridge in this map, which is potentially disorienting, but should be less of a problem than the original map, which puts you clear across into the middle of the other end of the city.

I do think that this map has a few peculiarities that make it sub-optimal.

  1. Some of the subway entrances are right next to their exits. There’s little point in a subway trip that results in you re-emerging on the overworld map one screen over from where you started. For example, the Red subway entrance is one screen away from two of its exits, due to being on the top left corner of the grid, and the wrapping effect. The Blue and Yellow subway entrances are about optimally located relative to their exit screens, and the Green subway entrance is directly above one of its exit screens.

It’s possible to remedy this by moving the subway entrances around, or by changing their exits to more useful screens for this map layout. I was reluctant to try this, because I wanted to keep the changes that I am making to the maps minimal, but it seems that these changes are necessary for the good of the game.

Metropolis 21/7

Another thing that strikes me is that I didn’t need to remove one screen from the overworld in order to have even rows. 21 = 3 x 7, so I could have made an overworld map of 3 rows of 7 screens. This might make the subways more useful, since it would make it easier to place the subway exits such that they are 3-4 screens from their entrances.

A 7×3 grid will allow all 21 overworld screens to be included in the new map. Again, I went to an image editor and re-arranged the screens to make a layout, then visually reviewed and analyzed the map for playabiltiy concerns, and made tweaks.

My first iteration of this was to lay the screens out in the original map’s horizontal sequence, and see how that would play. That map looks like this:

First iteration

Without actually playing it, it’s easy to miss things, but I can see that this map has a few potential issues:

  1. The bridge pieces starting screens are all on the west end of the map, and are nearby the Bridge screen.
  2. The Phonebooth, Bridge, and Jail are all on the bottom row, which makes the bottom row feel too important, and the top row feel unimportant.
  3. The “critical path” relationships in the original map are broken in this map. This may not be a problem per se, but it will make the new map feel less familiar to experienced players.
Superman bridge piece routes
The original Metropolis map has a very tight spatial relationship between the most important screens on the map. The new map layout breaks this by moving the Jail screen far away from the rest of the screens.

Otherwise, I think the map looks pretty decent. I’m not sure how I feel about the potential issues I mention above.

I do think that the Bridge should be the center piece of the map, so I shifted rows and columns in order to make it so, but the rooms are still in the original order, using the horizontal progression from the original map.

It’s interesting how shifting things around can change perspectives on things. With this view, I’m able to notice different things:

  1. Now all the “important” screens (Jail, Bridge, Phonebooth, Daily Planet, and all but one of the bridge pieces) are on the west end of town.
  2. But balancing that, all the subway entrances are on the East end of town.
  3. Subway exits are somewhat evenly distributed, but there’s a few interesting things to point out: The Red subway exits all line up in a column at the far west edge of the map, while the Yellow subway exits are all distributed across the top row. The Green subway exits follow a diagonal from the northwest corner of the map, moving southeast. And the Blue subway exits are scattered about as far from each other as they could be.
  4. Shifting the screens changes the loopback point at the top right, and as a result the screen that normally is to the left of the Phonebooth screen no longer is. Which, despite what I thought when I first decided to shift the screens to put the bridge in the center of the map, does fundamentally change the map. Then I realize… I did it wrong!

I can’t just grab the top row and move it to the bottom, and then slice the right couple of columns and move it to the left. That will not preserve the horizontal order of the screens. To do that, I need to grab the top-right screen, move it to the bottom left, and then let all the other screens shift right by one, snaking around. This approach gives this result:

Overall, it’s actually very similar to the first two iterations. It’s literally the same horizontal sequence as the first iteration, but it’s not all that different from the second iteration, either; the “important” screens are still mostly to the west, the subway entrances are still mostly to the east. I think the subway exits are a bit better distributed than in iteration 2.

The vertical path is quite different. I think this map will run slower, due to the placement of the Jail in the corner of the map, and its distance from most of the subway entrances, and the Phonebooth/Bridge screens. There might yet be some quick paths that will become apparent through repeated play, but for now I feel that the map feels disorienting because the Jail isn’t north of the Yellow subway entrance screen any longer, and I struggle to locate it as a result.

Certainly there are many other possible arrangements for the overworld map, and I haven’t even begun to re-design the subway. But I think this is enough to satisfy my curiosity, at least for the time being. I may come back and revisit this further if I feel a need to after playing the maps I already created more extensively.

There’s much more to do in a hack of Superman, as well. I would like to figure out how to randomize the starting places of the bridge pieces, for example. I would also be interested in figuring out how to put up a hard barrier around the outer edge of the map, rather than having the map wrap around at the edges. But these projects, if I ever attempt them, will have to wait until I have a deeper understanding of 6502 assembly.

Download all of my Superman map romhacks here:

Superman (Atari 2600) alternate map Romhacks, part 2

For the second alternative map, I needed to carefully re-organize the screens to put them into a grid.

There are 21 overworld screens, and so I will use a 5×4 grid, omitting one of the overworld screens, since there can be only 20 screens in a 5×4 grid.

Selecting the right screen to omit is important. The removed screen must not be:

  • A subway entrance
  • A subway exit
  • The phonebooth, bridge, or jail screen
  • A bridge piece start screen

One of my goals with this redesign is to keep the layout of the screens reasonably familiar to players of the original game. This is a formidable task, and technically impossible since I am changing the layout, but my goal is to make the changes minimal, and to preserve as much of the critical paths through the map as possible.

But just as important, I want the redesigned map to be balanced and fun to play.

To achieve this, I want the subway entrances and exits to be distributed about the map, and not clustered together too much.

There are 11 unique subway exits, and 5 subway entrances (counting the Daily Planet), so 16 of these screens have something to do with the subway system, and another three are the Jail, the Daily Planet, the Phonebooth, and the Bridge screen. (Both the Daily Planet and the Jail are also subway exit screens, so are already counted among the 16 overworld screens that are related to the subway system, but adding the Phonebooth and Bridge brings the total of “must keep” screens to 18, leaving just 3 redundant screens for possible removal.) I didn’t realize how tight the map design is until I noticed this.

After considering the matter for a bit, I decided that this screen would be the one to go:

But I just as well I could have picked this one:

Or this one:


I mean, they’re all kindof the same, aren’t they?

I note that the three “dispensable” screens all have a similar color scheme to them, green and white, and wonder if there’s something being communicated through a visual language here, or if it’s just a coincidence… there are two other green/light grey screens, the Yellow Subway entrance, and the screen above the Jail, which is one of the bridge piece starting rooms. So… probably just a coincidence, then.

At the edges of the overworld grid, the map will wrap around to the next row or column. As an experiment, I think I’ll also create a variation where the map will wrap around to the same row or column, but I think this variation will only be playable on Easy difficulty — because, when Superman is struck by kryptonite, he will be stuck in the current row of the overworld map, and if Lois Lane isn’t present on that row, he’ll be unable to get revived until she wanders in, or the helicopter brings her, which could take ages, and would be unfair.

I take a picture of the overworld, cut out each room, and put it into an image editor and move them around until I have them arranged in a 4×5 grid that I think will be satisfactory. I end up needing to move things around a good bit to achieve this, but I think I managed to do it while still preserving some of the critical relationships between certain rooms.

Here’s what I ended up with:

Grid map for the Superman romhack
I think this might be OK. And might make a cool quilting project, too!

Here’s the original map for comparison:

So you can see, there’s a bit of re-shuffling that I had to do in order to balance the map out, and many of the vertical and horizontal connections are different in the new map.

The major changes are:

  1. The one-way vertical boundaries for the Phone Booth and Bridge screens are two-way.
  2. One screen is removed from the overworld, to allow for an even grid.
  3. The Phonebooth and Bridge screens are in the center of the map. (Although, since the edges of the map still wrap, center/edge is all relative.)

The important non-changes are:

  1. The subway system exits are all to the same screens as before. (But, due to the shuffling of these screens relative to one another on the overworld, this does still mean there’s some significant differences. The key exits to get to the Daily Planet and Jail screens are the same as in the original, though. And several of the subway exits now get you close to the Bridge screen.)
  2. The bridge pieces are still found on the same screens as they were in the original. I didn’t try to re-locate them. (Sometime, I’d like to introduce randomization into their starting positions, and see how that plays.)

Now that I had the design determined, I had to hack the rom to make the changes for real. To do this, I went through the original code and noted the names of each screen, and figured out from the boundary change code the correct addresses for each room, and mapped them together. This was straightforward, if a bit tedious, but fortunately the map is small.

One thing I noticed as I coded the new map connections was that there’s a peculiarity at the top-right and bottom-left corners of the map, due to the way the rows and columns wrap; if you’re in the top-right screen, going up or right will both take you to the bottom-left screen; and if you’re in the bottom-left screen, going down or left will take you to the top-right screen. This doesn’t make sense, unless you understand the way the overworld wraps. If you get to the end of a row or column, continuing in that direction wraps you around to the next row or column, and at the very end of all the rows and columns, it wraps you around to the opposite corner, and so the top-right and bottom-left screens are connected to each other in two directions.

I have only played through this map once, and mostly just to test that everything was connected properly. I think it’s a viable, and interesting variation, but I wouldn’t call it better than the original. Certainly, due to the re-positioning of the screens, the quick path to the bridge pieces isn’t as short as in the original map, which means speed running potential for this map is reduced. Beyond that, the Phonebooth and Bridge screens are not low-traffic screens any more, meaning that you’ll often find gangsters on these screens, and the helicopter may find bridge pieces that you’ve left at the Bridge site more readily, which will again make it more challenging as the helicopter removes them again.

You can download the entire collection of romhacks here:

Superman (Atari 2600) alternate map Romhacks

So for the first alternative map, I will just make the Up screen the same as the Right screen, and the Down screen the same as the Left screen. This means that there will only be the Horizontal progression through the map, and that Up/Right will be “forward” and Down/Left will be “backward” through this progression.

You can download the modded rom below:

I playtested this, and found that it works exactly as intended. The map is far simpler to navigate, and getting lost is now virtually impossible. Fly up/right to go forward, down/left to go backward, and all overworld screens appear in order. The confusing one-way vertical borders on the Phonebooth and Bridge screens are eliminated.

The downside of this is that traversing the overworld map is slower, since there are no shortcuts to be gained by using cornering techniques. You still can rapidly advance two screens in the horizontal map sequence by going diagonal from near the corner, transitioning on both the vertical and horizontal edge transitions. But compared to the original, where a vertical transition would typically advance you between three and five screens in the horizontal sequence, it’s much slower, and offers no real opportunities for useful shortcuts.

The only real shortcuts possible are via the subway system, which I left unmodified. Despite playing this game over nearly four decades, I’ve never bothered to memorize the subway in its entirety — there’s little reason to. The only exits of real importance are the ones that go to the Jail and Daily Planet. But with this map, knowing the rest of the exits is potentially more valuable, because it can get you to the other side of the overworld in less time than any other method. It may be interesting to study the exits and try to figure out alternate layouts that might make the map more interesting by providing additional useful shortcuts.

I can reliably win Superman typically in 1:30, +/- 15 seconds, but this variant took me 3:04 to win on my first play. I’m sure faster times are possible. The gangsters seemed to be bunched up more, and rounding them up preoccupied me at first, leading to the helicopter moving bridge pieces away, which I think happened earlier than normal. But because the map is essentially a two-dimensional line, finding the helicopter was trivial, making any challenge increase by the bridge pieces moving around quite minimal.

My impression is that this alternative map might have made the game more playable for very young players, ages 3-5, and as an “easy” version for beginning players, much like Superman‘s sibling Adventure offered players Game 1 with a simplified map. But overall, the simpler map makes the game less interesting and less challenging to play. But if you’re interested in the game’s design, playing this variant to see why it’s less interesting is… well, an interesting exercise. I invite you to download it and play it for yourself and make up your own mind. If you do, please drop a comment and let me know what you think.

My next Superman romhack will present the overworld map as a grid.

Hacking Alternative Maps into Superman (1979, Atari 2600)

My research on Superman has lead me to a deep understanding of the map topography, and I have come to regard it as an inspired design. But whenever I hear people talk about Superman, I feel like I must be in the minority. People who like the game tend to agree with me, while people who don’t, don’t.

Often I’ll hear players who do not have the appreciation for the game that I have complain that the map is a weakness in the design. I always rebut this by saying that yes, it’s confusing at first but once you learn it, it’s actually a strength. I can point to all the shortcuts that are made possible by the map topology, its utility in weighting the randomness of the AI movement, and argue that it’s actually beneficial that the map is confusing, because it makes the overworld seem bigger than it really is, and adds to the challenge of the game.

But I think it would be even more convincing to demonstrate alternative maps, and let players experience them and decide for themselves.

It’s fairly likely that I’m the only one in the world who cares about this, and I’m almost certainly the only one who cares about it as much as I do. But what the hey.

I decided to see if I could could learn how to hack the ROM for Superman, and change the map navigation in order to rearrange the map screens. This would be preferable for authenticity, but it might also be limiting, in terms of what’s actually possible.

If that doesn’t work, or if I have ideas for expanding on Superman‘s design that aren’t feasible in a romhack, the other option would be to remake Superman in GameMaker, keeping it as faithful to the Atari version as possible, and experiment with the map that way.

Alternative Maps

The easiest Map design to implement would be to make the vertical and horizontal sequences identical, and to make up/right be “forward” and left/down be “backward”. The subway system could be left unchanged, up to go to the next station, and any other direction to exit back to the overworld, keeping the exit screens the same as in the original. At the end of the list of overworld, we can loop back to the beginning.

The biggest problem with this redesign idea is that there are no overworld shortcuts, other than to take the subway. To get to/from anywhere, it is always a straight line. This is slow, tedious, and to me, it seems like it would be boring. Subway travel helps somewhat to speed up travel, and becomes more important. But a bigger problem is that the gangsters can’t really spread out deep into the map by randomly moving in one of four possible directions. Their possibilities have been halved; they can only go forward or backward to the next screen, and so they will all be found in the first few screens, and rarely if ever would they make it to the end of the map.

But on the plus side, this map is extremely easy to navigate, much harder to get lost in. Gone are the one-way vertical transitions from the Phone Booth and Bridge screens, and the confusion they created. This might make it an ideal variation for a very young player, or for someone who is very inexperienced with Superman.

The other easy to understand map would be a cartesian grid. We have a problem in that 21 overworld screens do not map neatly to a regular grid of equal rows/columns. We can take a 5×4 grid to get 20 of the rooms in, with one room left over. We could truncate the overworld to simply remove this screen, which is the easiest solution. At the end of each row or column, we can either have a hard edge, where you cannot proceed beyond, or we can wrap around to the start of the row or column, or we can increment the row/column and move to the start of the next row or column. I’m not sure how to make a hard edge work, though. The easiest way would be to make these edges refer back to the same room, but doing it this way, Superman would still warp to the other side of the same room, which would be weird. Still, as a proof of concept, it’s quick and easy to do.

The advantage of this map is that it would be still be easier to understand and learn. The disadvantage is that, at least using the first two traversal approaches, you can no longer go through the entire overworld by going in one direction. When the world loops, it will only take you to the beginning of the the current row or column.

The ROM Hack

I looked into it and discovered that the ROM hack path would be much easier than I had anticipated. So much of the work had already been done for me by others.

  • I searched the web and found decompiled assembly source code for Superman, which had been nicely annotated.
  • I learned that sometime in the recent past, someone named chunkypixel had released a Visual Studio Code extension called Atari Dev Studio.

This saves me a ton of time. I don’t have to learn how to disassemble the rom myself, and I don’t have to learn 6502 Assembly well enough to be able to make sense of the disassembled code to figure out what’s going on.

So, literally, all I had to do to get started was:

  1. Install Visual Studio Code
  2. Install Atari Dev Studio plugin
  3. Open the decompiled superman.asm
  4. Edit it
  5. Compile it
  6. Test it in Stella

I’m astounded that it’s this easy. The annotated source code is documented well enough that I can tell where I need to make my edits, and what the changes I need to make are. Hats off to the homebrew community for developing these tools and making the information generally available!

First, I did a test compile to make sure that the decompiled assembly that I had was viable. It compiled right away without any problems. I fired up Stella and ran it, and it ran, and seemed to play exactly like Superman. Success!

To make the edits, I read through the source .asm file and tried to understand what I could. Fortunately, the file is reasonably well documented. Without actually knowing 6502 ASM, I can’t say I understand everything I’d like to, but I can see enough that I should be able to make edits by trial and error, and make progress.

The section I’m interested starts off like this:

Screen00: ;unused??
;Screen Info: 8 bytes per screen
;Offset 0 = GFX bitmap low byte
;Offset 1 = GFX bitmap high byte
;Offset 2 = Foreground color
;Offset 3 = Background color
;Offset 4 = screen above
;Offset 5 = screen right
;Offset 6 = screen below
;Offset 7 = screen left
    .word IF2AC ; $F000
IF PAL
    .byte $46 ;red $F002
    .byte $08 ;grey $F003
ELSE
    .byte $36 ;red $F002
    .byte $08 ;grey $F003
ENDIF
    .byte <Screen00 ;$F004
    .byte <Screen00 ;$F005
    .byte <Screen00 ;$F006
    .byte <Screen00 ;$F007

From reading through the code, I infer that the stuff after a semi-colon is a comment, so the different comments explaining the Offsets help me to understand that Offsets 4 through 7 have to do with the connections between the different screens in the map. All I should need to do is update them with different addresses, and the map will change! Easy!

In my next update, I’ll present my modded Superman maps and do a little analysis of them.

AtariBox entering “pre-production” phase as architect quits

This morning, my email inbox greeted me with another announcement from Atari, explaining how excited they were that the VCS is “going into pre-production.”

I’m not entirely clear what this means, given that the normal understanding of the term “pre-production” would seemingly cover the entire history of the AtariBox project, given that nothing has gone into production so far.

Some more teaser images showing prototype  hardware in various stages of assembly, and some explanation of the design/layout of the motherboard, apparently in response to the reaction to the first announcement where they showed an image of the motherboard, which lead to speculation about whether it was real, or complete, or might have been  hastily created by a company that specializes in rapid turnaround in order to give Atari something tangible to show backers while they continue to delay more meaningful steps toward release of a product.

There’s some more information in Atari’s latest Medium article — it is capable of running both Linux and Windows (hardly surprising, given the AtariBox is an AMD x64 system); it will have a fan-based cooling system (to me this is disappointing news, as I would have hoped for a silent running system, but again not terribly surprising, given that most computers these days are fan-cooled); default RAM will be 8GB (2×4) and user upgradeable, some frankly boring talk about plastic injection molds… and they’re still working on the actual software that will run on the system, although they had teased something at E3, it’s not ready to run on this hardware yet.  Which is really bizarre — if this AMD x64 system is capable of running Linux and Windows, and if they can tease the front-end that they’ve been working for on some type of computer system, then what’s so different about the AtariBox hardware that Atari can’t run it on the machine they’re designing it for right now?  Why couldn’t they all along, every step of the way? Something is not right about their software delivery lifecycle if they can’t create builds that will run on their target hardware.

I guess if there’s one positive thing to take from this announcement, it’s that Atari are apparently stepping up the frequency of their announcements, which may be a good sign that they are actually making progress with bringing their vision closer to reality.

That is, however…

Today The Register is reporting that Rob Wyatt, the architect of the VCS, has quit the project, and claims that he hasn’t been paid in 6 months.  It was reported earlier that Wyatt was starting a new project, and after Atari’s previous announcement, rumor boards were awash with speculation about whether Wyatt was still on board with Atari.  Atari’s PR deflected questions about it, but it’s clear now that Wyatt is no longer working with Atari on the VCS project.

The Register’s reporting on this project has been very thorough and is to be commended.

Sadly it’s looking more and more like AtariBox has been smoke and mirrors, underfunded wishes, and — let’s be frank — lies, and appears to be increasingly unlikely to launch. And even if it does, there’s no indication that it will be worth buying, due to a lack of first-party exclusive game content.

Atari: We now have games for the VCS! (Not really…)

After being stung recently and repeatedly for their lack of progress on the AtariBox project, Atari released their Big Announcement about the games that will be available on the console.

TL;DR, the announcement is very underwhelming. Atari is packaging a bunch of old classic games for streaming to your AtariBox. They’re not even doing it themselves; they’re partnering with another company.  

That’s right, they still have ZERO new exclusive launch titles for this system. You know, the thing that tends to drive people to buy new systems? They still don’t have that.

Let’s be generous, the three word elevator pitch for this is: “Netflix for videogames”.  Only, no Netflix Originals, just re-runs of games you’ve played a million times already, and already have access to through a variety of other platforms. If you aren’t lucky enough to have lived through most of the history of video games and have a library devoted to that history, you might find this enticing.

In a way, this is cool.  For only about 25 years now, gamers have had to resort to piracy and emulation to play thousands of arcade game titles for free.  Now, they can pay $10/mo + $350 for the console for the privilege of doing it guilt-free, albeit restricted to just those titles that are available through Antstream.  And that’s something, isn’t it? 

No, I know that sound sarcastic, but it really is.  For only 25 years or so, the problem of preserving historic videogames has been ignored by the industry that created them, and was left to be solved by dedicated fans who recognized the importance of such an effort. But this was always an ethical quandary, and enthusiasts were forced into a dilemma:  literally preserve history before it was too late and games were lost forever, and violate copyright for a bunch of outdated products that companies refused to continue to produce or make available in any format?  Well now for just $10/mo our consciences can finally be clear.  And our reward for this will be that only the games deemed worthy of preservation for their long-tail commercial potential will be preserved.  Shut down the MAME project, everyone, and rejoice:  we’ve won.

OK, ok, that’s unavoidably sarcastic, but it’s true.  This service creates value by ripping the hard work of emulation preservationists, and by graverobbing what rightfully should have by now been the public domain, to provide games-as-a-service to  you, so that you can pay for them forever, without ever owning them. Because in the new economy, ownership is theft.  There’s literally no reason you would ever want to own anything anyway, this is a post-scarsity economy, after all.

Antstream itself kickstarted into existence in April of 2019, and, well, isn’t it telling that a physical “not-a-console” gaming system that kickstarted TWO YEARS earlier and STILL doesn’t have any exclusive launch titles lined up, kept silent about this deficiency for all that time, until fed-up backers had a mutiny about it on Reddit, and so had to run out and find something, anything, so they could claim that they will have games, and picks something that only became a thing this year?

It makes you wonder what the hell Atari have been up to for the past two years, apart from rendering the shell they’re putting their components into, and re-releasing the same empty hype announcement every 6 months or so. According to their Kickstarter page, Antstream have been developing their service for four years now, so the Kickstarter is more an effort to do viral marketing for the launch of the service rather than a no-product preorder like Atari’s VCS Indigogo was. Yet, if Atari had planned all along to make use of this service, and had to remain quiet about it all this time, one wonders why they couldn’t have said something around the time that Antsream launched their Kickstarter campaign. Why the need to remain silent for another 6 months?

Still unanswered: Is anyone actually developing any games that will run only on this system, so that there will be a reason to buy it? Any first party game development, at all? (Well, it’s a silent NO, that’s the answer.) Atari 2019 is a brand name only, not a developer of anything substantial. In trying to establish a platform, they’re leveraging the work of others and passing it off as their own. AMD for the hardware. Antstream for the content. Maybe there’s some internal work being done to create the GUI to do configuration management and launch apps, but that’s not exactly exciting, now, is it?

It’s worth mentioning that around the time Antstream announced itself — about a month before, actually — Google announced Stadia, and there’s literally no reason any of the games that you might have access to through Antstream couldn’t also be streamed to your screen through Stadia.  Other than, I guess, some exclusive rights deal that would preclude availability on other platforms.  But then, Stadia is still in pre-order, too. Sigh.

So for the time being we’re still safe from the future hell of games-as-service, that you can never own, and which will be preserved for all time only to the extent that a company decides to preserve them.  Which is to say, any old versions will be superceded by the latest patch, even if earlier releases are historically relevant.  And games that aren’t attracting sufficient interest will be dropped unceremoniously, and probably not many people will care, except the small audiences for games who really love those games even though they’re part of a small audience not big enough to be considered commercially viable.  But who cares about them, anyway?

Even if Antstream is great — no, especially if their service is great– it’ll be available on all platforms that its client can be ported to, there’s still no compelling answer to the question, why get an AtariBox?

Atari attempts to answer this by assuring us that:

When Atari VCS users log in or subscribe to the Antstream service using their Atari VCS, it will immediately unlock an exclusive and enhanced version of the Antstream app engineered specifically for the Atari VCS. The Atari VCS Edition of the app will house the largest collection of Atari games available anywhere and ready for immediate play. This enhanced collection will be exclusive to the Atari VCS at launch and will not be available on other Antstream platforms without an Atari VCS account.

Atari

Re-read that last sentence.  You can stream Antstream’s exclusive AtariVCS content to any Antstream-capable platform, provided you have an Atari VCS account.  My guess is that you’ll be able to get one of those without buying the AtariBox hardware, if not immediately then eventually. No word on whether that will cost a monthly subscription on top of whatever Antstream will cost.

But this leads me to wonder what’s up with Atari’s earlier announcement that the Atari Vault would be available to VCS owners?  I mean, I don’t really wonder, because who cares.  The AtariVault is on Steam and I can buy it and play it right now through my Steam account on my PC, and I don’t have to pre-order and then wait 3 years for some outdated low end PC in a pretty case to do it, either.

But lets say I did decide to wonder.  Well, is the Atari Vault still going to be part of the picture, or did they just shitcan it and replace it with a subscription-based streaming service?  

Oh, and there’s a picture of their motherboard.  Suck on that, haters!  I bet everyone who doubted that AMD Ryzen board could have an Atari Fuji logo custom silkscreened onto its PCB are all eating crow now!

Well, it’s something, anyway. Not enough. But at least it’s something.

The AtariBox story continues to be dismal

Update from the Register… It’s sad that this is the reality but it’s about exactly what I expected, and have been warning the public about since the crowdfunding campaign pitch.

Don’t give these people money until they have a product. Promises and hype are nothing. Shame on the people who continue to abuse the Atari name for continuing to string gullible fans along with so little evidence of any actual work happening toward delivering on the vision they pitched over 2 years ago.

Meanwhile, in the real world, Collectorvision’s Phoenix console is shipping in October, and was announced after Atari first announced the AtariBox concept. The Phoenix not only plays ColecoVision games through a cartridge slot, it also has an FPGA core to play Atari 2600 cartridges as well. It’s not trying to be a next-gen console or a brand reboot for a dead company, but it exists, it works, it plays classic games with incredible fidelity to the original hardware, and I’ve touched one.

Atari taking pre-orders for VCS console. But where are the games?

Atari made another announcement about their upcoming console, formerly known as the AtariBox, today.  They are now taking pre-orders, through their website, as well as GameStop and Wal-Mart, and expect to be shipping orders in early 2020.

I went to Atari’s website, AtariVCS.com, to see what other information I might find about upcoming game titles, and found… no further information.  

Well, nothing beyond what they’ve already announced months ago, about making old classics available through the “Atari Vault”. Which, given the existence of 9 previous generations of Atari Flashback consoles, which have sold for less than a third of what the Atari VCS will sell for, doesn’t make me feel too excited. The “Atari Vault”, which seems to echo Disney’s marketing with the “Disney Vault” of old re-releases that they would only put out once in a while, to ensure demand for them when they did, isn’t really an apt metaphor, considering that Atari IP has constantly been repackaged and made available with every generation of new hardware, from the NES to Now. This is simply the latest such repackaging.

Atari have a section of their site devoted to game developers, with an email link for interested developers to contact Atari for more information about developing for the system.

I make games, so I tried sending an email to their address, devs@atari.com.  The email bounced.  

Not a great sign.  Even if there are developers interested in working with Atari on games for the new system, they can’t contact them, because their email server isn’t configured correctly. 

Something tells me that if they can’t even be bothered to verify that their mail server is working before they launch their website, they aren’t exactly doing the best job with running the company.

It may be that this is simple incompetence on the part of whoever set up the site and didn’t bother to test critical functionality, and this will be corrected quickly. Or it may be that they didn’t bother setting up their email server correctly because they don’t have a product, or are so far behind in having a product ready that they’re not really able to field inquiries from would-be developers.

It’d be rather surprising if this were true; it’s one thing to scam backers on Indiegogo, but GameStop and Wal Mart would certainly file expensive lawsuits if Atari failed to come through with a product, wouldn’t they?  One would expect so. But I think unless Wal Mart and GameStop actually advance any money to Atari, they wouldn’t have any reason to do so.  Pre-orders don’t always mean that the product gets released after all, and retailers don’t have any control over that. Products often get canceled and delayed, and it’s almost a routine thing these days. Being partnered with two major retailers really doesn’t mean anything for Atari’s credibility.  If Atari did end up failing to deliver and canceled the new Atari VCS console, GameStop and Wal-Mart already have returns departments that would reimburse customers.  Meanwhile, they can sit on the money and allow it to collect interest from now until release day.

As usual, until Atari does more than show digital renderings of the case and controllers, and actually show working hardware, and announce a game lineup that is more than just repackaged old content, there’s no reason to recommend anyone buy this console.  While I’d love to see the Atari of Old return and become a vibrant and relevant force in the industry again, the Atari of Today isn’t that company, and hasn’t yet shown the world anything to get excited about yet, a few pictures notwithstanding.  I’m still skeptical that Atari is capable of successfully launching a new console in 2020.

To have any hope of  being successful, Atari needs to bring exclusive new games that provide a compelling, refreshing vision of what their original intellectual property could have become if it had continued to be developed and evolve from the 1970s to the present day. 

Their one title that they announced when they first pitched the AtariBox concept to crowdfunders about a year ago, Tetris 4K, was released last year — on other consoles. Consoles that actually exist. No other titles have been mentioned. Atari only makes vague statements about “talking with developers about some exciting things” and that they “can’t reveal more information at this time.” That’s hardly confidence-inspiring.

So, Atari, where are the developers?  Where are the games?

From what Atari have been able to tell us about the upcoming hardware, it is a generic AMD x64/Linux machine with their branding and front-end, and will run games that run on standard Linux. Which means, a pretty big library, potentially, right out of the starting gate, but also means little reason to expect any games released for the Atari VCS will be exclusives that would draw gamers to buy the hardware. And why own an AtariBox if you can buy the same games for the conole(s) you already own?