Jump to content
IGNORED

Disassembling 2600 Games?


DEBRO

Recommended Posts

Actually its a hack of Assault/Fire Birds/Sky Alien.

 

BTW: Initially I also thought The Shaman would be a hack of Demon Attack. icon_smile.gif When the ROM was released I ran it through CloneSpy which clearly shows the origin. The code is identical between 88 and 92%.

Wow! I missed that thread. Some people really have no shame...

Even a simple binary comparison between "The Shaman" and "Fire Birds (PAL)" only shows about 250 different bytes. A quick look at the disassembly in the Stella debugger and you can see that apart for a timer value (for scanline count) the remaining differences are only colors and graphics tables!

Link to comment
Share on other sites

Wow! I missed that thread. Some people really have no shame...

 

Wow indeed. That really pissed me off.

 

 

I'm completely confused. Not unusual. I'm a little curious about what kinds of things people are doing, hacks vs home brew vs original vs whatever just to know, not judge.

 

Hacks are fine, it's not cool to pass them off as your own work.

  • Like 3
Link to comment
Share on other sites

I assume there are tools already, but I like writing my own.

 

 

Yep - DiStella

 

I forgot that Stella has it built in. Just run the program, enter the debugger by hitting the ` key (below escape, above tab, to the left of 1), then type savedis:

post-3056-0-88177100-1471995670_thumb.png

 

Do note that it'll generate better output if you run the program for a bit as it helps Stella to differentiate between code and data.

Link to comment
Share on other sites

I haven't done it yet, but one day I was hoping to make a 2600 rom that disassembled itself. That is the program would list itself line by line and scroll up on the screen.

 

 

 

I do this because it's cool. :ponder:

 

You sir, are truly strange. and clever.

 

I like you. :)

 

-Thom (laughing his ass off) :)

Link to comment
Share on other sites

Fortunately that's a very rare occasion, I can't even remember another one.

 

This is ultimately why I stopped my current coding path on Dodgeball, and pulled back to bone up on my kernel coding. When I realized I was pulling in over 90% of the code from Combat, JUST TO USE ITS PONG COLLISION ROUTINES, I realized two things:

 

(1) I am no longer learning effectively.

(2) It is no longer my own work, but a hack, a derivative.

 

I could not have that. I pride myself on being a scientist and engineer, with the ability to understand the problems I am trying to solve, well enough to implement them.

 

-Thom

  • Like 1
Link to comment
Share on other sites

There are all kinds of hacks in between. E.g. there are quite a lot of TV format conversion hacks and controller hacks.

 

Simple graphical hacks can be done by anyone. There exist tools which allow finding and exchanging the graphics without any coding skills. That's also the reason why maybe 90% of all hacks come from this group. All other hacks usually require disassembling the code, understanding it and coding skills.

Link to comment
Share on other sites

I see there are different kinds of "hacking". Mainly just changing graphic and/or audio data all the way up to rewriting a game as an improvement. Had no idea people were doing the latter. Seems like that could be a much bigger challenge than even writing from scratch.

 

I've done this with my own games in the 80's and Today, but each time I did it I never glanced back at my old code. Having written the game once (or two or three times) always yielded more efficient routines and better gameplay in each successive iteration.

 

I bet if you wrote Space Caverns again or a SQL you would have the same experience from having already written it and also tons of other programs in between.

 

Clearly this approach works with refining someone elses code too when the programmer really Groks it well (commenting the dissembly, etc) but as Thom pointed out they can end up heavily influenced by the other programmers design and miss out on some of the engineering fun and creativity.

 

Hacks (graphical or lots of code changes) are awesome too and tremendous fun, but if the programmer can write or rewrite a game totally from scratch (in BASIC or Assembly, it doesn't matter) I prefer to play these because they play like brand new games. I like to play different versions of the same game on different systems for this same reason.

Link to comment
Share on other sites

I guess I make a distinction between rewriting my own code and other people's code. Harder for me to get into another programmer's head, understand their style, different skill set needed in addition to the base skill set. I've refactored a little bit of regular code in the past, it's a very different experience. Doing that with 2600 code...gotta be difficult. Maybe a different mind set.

 

Code can certainly always be improved given time.

 

Yeah, fun is fun, that's the bottom line.

  • Like 1
Link to comment
Share on other sites

I guess I make a distinction between rewriting my own code and other people's code. Harder for me to get into another programmer's head, understand their style, different skill set needed in addition to the base skill set. I've refactored a little bit of regular code in the past, it's a very different experience. Doing that with 2600 code...gotta be difficult. Maybe a different mind set.

That's exactly why Nukey Shay's hacks impress me so much.

 

 

Imagine how much better Pac Man would have been received if it had been released like this *

post-3056-0-34619900-1472061303_thumb.png

 

It even has the intermissions:

post-3056-0-89113800-1472061660_thumb.png post-3056-0-94354500-1472061664_thumb.png

 

 

 

Here he hacked Missile Command and added the 2 missing missile launchers, bombers, satellites,etc. from the arcade game:

post-3056-0-64507200-1472062598_thumb.png

 

Left, Down and Right on the right joystick controls the firing now, works fairly well with my trackball (in joystick mode) and Starplex controller:

post-3056-0-71110600-1472062496_thumb.jpg

 

Only minor issue is the right button controls the right base while down controls the middle base. Fire also controls the middle base, so a Track & Field controller would be ideal, but I don't have one of those.

con_AtariTrackNField.jpg

 

 

 

* note: In the Missile Command and first Pac Man images I merged 2 screenshots together in order to show all elements (otherwise some are lost due to flicker).

Link to comment
Share on other sites

< has no pride. Just do whatever it takes to make a fun game. If you don't have that, it wasn't a good idea. #hackersaregamerstoo

 

I do believe with every fiber of my being, that Dodgeball will be a fun game... It feels right in my head, so completely, more than just about anything else i've ever done.

 

-Thom

Edited by tschak909
  • Like 1
Link to comment
Share on other sites

Yes, I'd read some of Nukey Shay's thread on his Pac Man game after reading the comments here. Impressive is right. I hadn't known about Missile Command, thanks. Those are 2 tough titles because comparison isn't just to the original 2600, but also the arcade.

 

Atari and some other companies, including VentureVision, might still be around if we'd taken quality more seriously. But then again VentureVision sure didn't have the resources, chicken and egg. And really the market seemed happy with the quality everyone was producing right up until the end. Player's have to be critical to get better games I think.

Edited by DanOliver
Link to comment
Share on other sites

Yes, I remember that thread, or at least some it...maybe some others too. Difficult subject really.

 

I'm thinking more about designing a game without a specific platform, but low res, low bandwidth. Design a great game and then try and make it work on a 2600 and also mobile, desktop, web. Thinking too much about the 2600 limits hurts the design, constrains the flow of ideas too much.

Link to comment
Share on other sites

Possibly...but some of the most addictive games ever produced are not bound by such constraints. They don't exist, because the concept is not dependent upon any specific hardware. Tetris comes to mind.

 

Regarding Atari's Pac-Man, I think that it gets a bad rap. After peeking behind the curtain, you get a glimpse into what Frye was creating rather than was what the public was expecting. Kind of a turning point, in that sense. Prior to that point in time, nobody was "expecting" anything out of any game ;)

  • Like 3
Link to comment
Share on other sites

To add to Frye's defense, and other developers of the day, and by extension myself, there was a different set of constraints. If I'd taken 6 months to make a better Space Cavern I wouldn't have been employed long enough. Peoples' jobs were on the line and speed to market was key in most cases. Not to diminish work done since, but having the time to think long and hard about better ways, all we've learned since, being able to leave a games for a few weeks or months, time for a design to blossom, not having a career on the line, are nice advantages. Not huge advantages by any means. 2600 is still about as hard as it gets no matter the date.

  • Like 1
Link to comment
Share on other sites

No joke. 2600 coding IS the most difficult bit of software engineering, i've _EVER_ done. (of course, I haven't tried to do something on the Fairchild Channel F, so... even the intellivision looks a lot more straightforward, with a whole bag of operating system routines to do animation! spoil me! :P )

 

-Thom

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...