Jump to content
IGNORED

Halo for the 2600 Released at CGE! Download the game here!


Albert

Recommended Posts

First, thanks for the compliments. I really had no idea so many people still play and write games for the 2600, and, like in Ed's case, take the time to learn to program a game from scratch.

There are some homebrews you should definitely check out.

,
,
,
,
, Thrust,
... It's astounding what the hardware's been pushed to do.

 

(and what the heck... Doctor... what happens when the demo scene collides with the VCS)

Link to comment
Share on other sites

But claiming that it's "one of the most fun Atari 2600 games ever made" is just disingenuous fanboyism. Statements like that cheapen the legitimate praise.

 

Yes, because you know exacly what Cliff's idea of fun is; you two going back so far...

The way you used to skip rocks together at the crick... The stories you must have about you and Cliff in the old days... Wow..

 

Or are you saying the "fun" is a predefined value for everyone?

 

;-)

 

desiv

Link to comment
Share on other sites

It took us three years to learn all the tricks needed to write a game as good looking as Ed's.

We've only built upon what was learned by y'all - I came up with the way to do the dragon in Medieval Mayhem only after having played Dolphin and realized the sprites were large, yet more detailed, than I'd seen them in other games with similar sized sprites.

s_Dolphin_1.png

 

The integrated debugger in the emulator Stella is a major plus too, I don't think you were able to single step thru the code as it was executing back then. I know it helped me to quickly track down a number of bugs that would have otherwise taken a long time to find.

post-3056-128111781135_thumb.png

Link to comment
Share on other sites

First, thanks for the compliments. I really had no idea so many people still play and write games for the 2600, and, like in Ed's case, take the time to learn to program a game from scratch. Ed's description of his experience was succinct and insightful and somewhat embarrassing. It took us three years to learn all the tricks needed to write a game as good looking as Ed's.

The 2600 is an inspiring machine where, by complete serendipity, the hardware/software synergy is ideal. Programming a game is a very challenging one-person project (with a little help from friends for tuning, playing, coding, sounds, graphics, etc.). And coming up with a fun, playable and good looking game? And original? Don't remind me about Street Racer (Dave put salt on the wound when he did Grand Prix and Steve rubbed it in with Barnstorming).

Serendipity? Why, I do believe it is the Larry Kaplan. Welcome to AA! It is always nice to hear from one of the original programmers! Nowadays hobby programmers don't have a time limit. They can work on games at their own pace until they are satisfied with it. That has to be nicer than being on a schedule.

Link to comment
Share on other sites

First, thanks for the compliments. I really had no idea so many people still play and write games for the 2600, and, like in Ed's case, take the time to learn to program a game from scratch. Ed's description of his experience was succinct and insightful and somewhat embarrassing. It took us three years to learn all the tricks needed to write a game as good looking as Ed's.

 

The 2600 is an inspiring machine where, by complete serendipity, the hardware/software synergy is ideal. Programming a game is a very challenging one-person project (with a little help from friends for tuning, playing, coding, sounds, graphics, etc.). And coming up with a fun, playable and good looking game? And original? Don't remind me about Street Racer (Dave put salt on the wound when he did Grand Prix and Steve rubbed it in with Barnstorming).

Not to take anything away from what Ed or anyone else has done, but as Darrell said, programmers working on the 2600 today are using and building upon the techniques that you and the other original programmers first discovered. One example is the idea of associating a color table with a sprite, which you did for the first time in Bowling. Figuring out those "tricks" in the first place, especially with so few tools to work with, was the really hard part.

 

And please don't feel bad about Street Racer! Lots of us had fun with it anyway. Somebody at Magnavox/Philips must have liked it, because as I recall, one of the pack-in games for the Odyssey2, Race, borrowed heavily from it. You may already know this, but Street Racer was actually reissued by Jakks Pacific just a few years ago, as one of the games included in their Atari Paddle 13-in-1 TV-game unit.

Link to comment
Share on other sites

has anybody been able to make it work on a supercharger

 

i load it up and if just sits at the title and only plays the music when i press the fire button

 

I don't think it'll work on an unmodified supercharger. The game uses the whole 4K to the last bit, so $FFF8/$FFF9 are occupied.

Link to comment
Share on other sites

Also I should mention (although you guys already figured this out) that I have been keeping people at Bungie and Microsoft in the loop as I developed this game and was never told I should stop doing it. There's always a chance they could say that, but so far they have been very supportive of this crazy project.

 

That is cool, did they have any feedback or restrictions?

 

Mostly they just laughed at me!

 

It's been a huge hit around here. They decommissioned those rooms in Mill. that had the classic consoles when they relocated. But I've moved the 2600 to a new conf. room. When more carts come, I'd like to get Halo 2600 for that display.

Link to comment
Share on other sites

Thanks for all the kind words. I'm happy to answer any questions people have, technical or otherwise.

 

Ed, is there any piece of code you're extra proud of? Something that was technically tricky? Or some optimization or creative reuse that saved a lot of bytes? I know you give credit to the old masters, but to fit all this in 4K must have required some innovation of your own.

 

Once again, thank you for creating Halo 2600. It's way too fun. I spent way more time playing than I intended. I have to agree that it's on the same level as the best 2600 games of the 80s.

 

- KS

Link to comment
Share on other sites

Thanks for all the kind words. I'm happy to answer any questions people have, technical or otherwise.

 

Ed, is there any piece of code you're extra proud of? Something that was technically tricky? Or some optimization or creative reuse that saved a lot of bytes? I know you give credit to the old masters, but to fit all this in 4K must have required some innovation of your own.

 

Well, one tricky thing is the representation of the rooms. There were going to be 64 of them so they needed to be really small. I settled on two bytes per room. At first I allocated 4 bits for the walls and 3 monsters that could be one of 16 types (4 bits each) for a total of 16 bits (two bytes). But then I wanted to have 4 different areas (outdoor, base, ice, and boss) so I needed 2 bits for that. The walls were redundant in that if one room has a top wall then the room above it must have a bottom wall, so I reduced the wall bits to just two bits per room (bottom and right) and that freed up two bits for the room type. But then I wanted to have more than 16 types of things in the rooms. How could I do that? 4 bits can only represent 16 things no matter how you look at it right? But then I realized that certain items only appeared once and never again. For example the first gun only needed to appear once. What if I thought of the 4 bits as a 16 wide window into a larger list of items/monsters? As you move down the map certain things would come into the window and others would go out. But that means that, say, a 3 would represent a grunt monster in one place and, perhaps, a key somewhere else. That could be confusing. But I built a macro to hide the confusion so that the code looks nice and clean. So room definitions look like this:

; row 4
ROOM EliteGiantLv,Key3Lv,TreeGiantLv,0,0,Outdoor, 3
ROOM EliteGiantLv,TreeGiantLv,EliteGiantLv,0,0,Outdoor, 3
ROOM TreeGiantLv,EliteGiantLv,TreeGiantLv,0,1,Outdoor, 3

 

And the complexity is hidden in the room macro:

MAC ROOM
.byte (({1}-{7})<<4) | ({2}-{7})
.byte ((({4}<<3)|({5}<<2)|{6})<<4) | ({3}-{7})
ENDM

 

That lets me have 23 different types of monsters/items but store them each in only 4 bits. Hope that sort of makes sense!

  • Like 8
Link to comment
Share on other sites

Wow, that is pretty cool. I love stuff like that, especially the insider info on the challenge and how it was overcome. It's funny, even after all these years, I am still impressed with what people can do with a mere four kilobytes. I always wonder what kind of game could be made on a modern console with that kind of attention to detail (That's definitely something I miss in modern consoles; being impressed by how much content the clever coder squeezes into a small amount of space. So many 2600 games amaze me in that way. Also some later era stuff, like Frontier on the Amiga or The Sentinel on the c64 (etc, it was on many platforms.) ) Of course, It would probably take a team of 500 coders ten years :)

Link to comment
Share on other sites

That lets me have 23 different types of monsters/items but store them each in only 4 bits. Hope that sort of makes sense!

Wow, thanks for that explanation! It really illustrates the lengths you had to go to just to squeeze out every bit...

 

I guess if you could save 4 bits per room, it's worth 32 bytes, easily paying for an extra instruction or two to do the decoding.

 

- KS

Link to comment
Share on other sites

That lets me have 23 different types of monsters/items but store them each in only 4 bits. Hope that sort of makes sense!

Clever approach. Now I understand how bizarre the world behind the given walls may look like. :)

 

Did you ever wonder about a randomly generated world (like e.g. in Pitfall! or River Raid)? Or was it important for you, to have full control about the layout and contents?

Link to comment
Share on other sites

Did you ever wonder about a randomly generated world (like e.g. in Pitfall! or River Raid)? Or was it important for you, to have full control about the layout and contents?

 

I thought about it, but I wanted to ramp up the difficulty as the player went on, introduce new items, and generally control the pacing. It could probably be done programmatically but to do it well would likely end up taking more bytes than I used for the map.

  • Like 1
Link to comment
Share on other sites

Fantantistic job, Ed. Great game play, graphics and sound. Plus an opening screen! Really an outstanding feat. Your post of the process is excellent, too.

 

Thanks

 

Wow, welcome to AA. Its really great that the pioneers of the 2600, especially Activision, stop by here to chat. This is fantastic. :thumbsup:

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...