Jump to content
IGNORED

Extra Terrestrials ROM released, loose carts, follow up story and more


sydric

Recommended Posts

Hey folks! It's been a while since we've released any news about "Extra Terrestrials" - the new "holy grail" of Atari 2600 collecting.

 

I have written up a full page about the development of the reproduction of the cartridge with photos:

 

http://pcmuseum.ca/story_etfollowup.asp

 

The page includes information not previously released including information about how many cartridges we have now located out there, an updated worldwide sales map, and more!

 

The site also includes a downloadable link to the ROM - which comes with a bit of a request. The ROM does not play 100% properly on any emulator (that we know of). The original programmer was doing SOMETHING with the Atari back in the day (it really was experimenting without documentation) and the emulators don't like it when it comes to collision detection. You can see and hear the game, but eating the candy doesn't work out right and catching the extra terrestrial isn't right either. If you put the ROM onto a Harmony cart or similar you will see that indeed the same file runs correctly on real Atari 2600 hardware. I've been in touch with the current maintainer of Stella and he did spend some time on it, but is very busy. In his initial look he did not understand what was going wrong and asked that I turn to the community to see if someone can determine what the issue is.

 

I'm also happy to announce that as of today you can order the cart only from Good Deal Games:

 

http://gooddealgames.com/inventory/Atari%202600.html

 

So if you want to play the game properly and own a piece of history at the same time, now is the time to do so!

 

I also want to take this opportunity to thank everyone here on AtariAge and especially awhite2600 for his contributions and hard work on the project (and Michael at Good Deal Games). It has been an amazing experience for us at the museum and we were able to receive UNPRECEDENTED media coverage - bringing to light the fact that while our community might be small, we're still very active and passionate about it.

  • Like 2
Link to comment
Share on other sites

Did you happen to ask the original programmer how he developed the game?

 

Obviously there was a lot of trial-and-error in discovering the subtleties of 2600 hardware, but what platform did he use? Are there any surviving technical notes or log books?

 

I am actually much more interested in the development process than the final product. :)

Link to comment
Share on other sites

Yes we did - and I believe we covered it in another post. He used a CP/M machine for the development that was provided to him by the business (remember that Skill Screen Games was an offshoot of Telcom Research, an established telecommunications manufacturer). He said that it was a lot of trial and error figuring out how the games worked because there was no documentation. He is still hopeful that he will locate some of his original notes and will share with us if he does. He's still busy programming working long days so we're being very patient - it's been great what he has been able to contribute so far.

  • Like 1
Link to comment
Share on other sites

The site also includes a downloadable link to the ROM - which comes with a bit of a request. The ROM does not play 100% properly on any emulator (that we know of). The original programmer was doing SOMETHING with the Atari back in the day (it really was experimenting without documentation) and the emulators don't like it when it comes to collision detection. You can see and hear the game, but eating the candy doesn't work out right and catching the extra terrestrial isn't right either. If you put the ROM onto a Harmony cart or similar you will see that indeed the same file runs correctly on real Atari 2600 hardware. I've been in touch with the current maintainer of Stella and he did spend some time on it, but is very busy. In his initial look he did not understand what was going wrong and asked that I turn to the community to see if someone can determine what the issue is.

This needs some experiments on a real VCS to verify, but I think the problem is that the emulators don't handle accesses to the RSYNC register at all at the moment.

 

If you compare the game on a real VCS and on Stella, you'll notice that the players are positioned about 30 pixels too far to the right on the emulator. And when you play the game, you'll see that all collisions are handled as if the players were positioned these 30 pixels further left.

 

A VCS game normally would do the coarse positioning the players once per frame in a timed loop and then fine shift them to their final position. Extra Terrestrials only does the coarse positioning once at the start of the game and then shifts the players when they need to be moved while playing.

 

The accesses to the RESPx registers for the coarse positioning happens during the initializing routine right after all registers and the RAM have been cleared. During this clearing loop the game accesses RSYNC 9 CPU cycles (or 27 pixels) after it accesses WSYNC. It doesn't access WSYNC again before triggering the RESPx registers to position the players.

 

Triggering the RSYNC register resets the horizontal sync counter, and triggering a RESPx register seems to set the position of the player to the current value of this counter. In a normal line without a RSYNC the counter would reach that value 27 pixels later, which would explain why the players in Extra Terrestrials are off by that amount.

  • Like 1
Link to comment
Share on other sites

^---- what he said. Thanks for the technical explanation! Now...the bigger question, is can we fix the emulators to work with this ROM. That sounds better (easier too?) than patching the ROM but I'm not sure. I'm a programmer as well, although I've never done any 2600 programming but I wouldn't want to try and fix this game unless we can get the source code out of Herman (unlikely but if he finds it! Woot!)

Link to comment
Share on other sites

^---- what he said. Thanks for the technical explanation! Now...the bigger question, is can we fix the emulators to work with this ROM. That sounds better (easier too?) than patching the ROM but I'm not sure. I'm a programmer as well, although I've never done any 2600 programming but I wouldn't want to try and fix this game unless we can get the source code out of Herman (unlikely but if he finds it! Woot!)

 

At least for Stella, RSYNC isn't implemented at all. This is only the second ROM (out of thousands over the years) that I've seen that uses RSYNC. As for the fix, the ROM should definitely not be modified. This is an error in emulation, and should be fixed there. Now finding time to actually do it is another thing, since we need to research exactly how RSYNC should behave in all situations. This is why RSYNC emulation hasn't been done up to this point; the research hasn't been done yet.

 

BTW, remember when I mentioned there were others in the community that could easily find the issue? Well, Eckhard was at the top of the list :)

Link to comment
Share on other sites

^---- what he said. Thanks for the technical explanation! Now...the bigger question, is can we fix the emulators to work with this ROM. That sounds better (easier too?) than patching the ROM but I'm not sure. I'm a programmer as well, although I've never done any 2600 programming but I wouldn't want to try and fix this game unless we can get the source code out of Herman (unlikely but if he finds it! Woot!)

While I agree with Stephen that this issue should eventually be fixed in Stella, I also agree with him that it would require a lot of research work. ;) Fixing the ROM on the other hand would be relatively simple, because the problem is in the startup code and there is plenty of unused ROM space. I think it might even be possible to get the ROM to display properly by moving only 4 bytes.

Link to comment
Share on other sites

At least for Stella, RSYNC isn't implemented at all. This is only the second ROM (out of thousands over the years) that I've seen that uses RSYNC.

 

Was the other game that used RSYNC Fatal Run? Here is a rough disassembly of the NTSC prototype I did. Maybe it will be of use.

 

Fatal Run (NTSC prototype).zip

 

Actually, that's another one; now there's three :) The other one was a very simple test ROM that had a yellow vertical bar that moved when you pressed the fire button (I assume it changed RSYNC). I can't seem to locate it right now. Maybe you sent it to me some time ago??

Link to comment
Share on other sites

^---- what he said. Thanks for the technical explanation! Now...the bigger question, is can we fix the emulators to work with this ROM. That sounds better (easier too?) than patching the ROM but I'm not sure. I'm a programmer as well, although I've never done any 2600 programming but I wouldn't want to try and fix this game unless we can get the source code out of Herman (unlikely but if he finds it! Woot!)

While I agree with Stephen that this issue should eventually be fixed in Stella, I also agree with him that it would require a lot of research work. ;) Fixing the ROM on the other hand would be relatively simple, because the problem is in the startup code and there is plenty of unused ROM space. I think it might even be possible to get the ROM to display properly by moving only 4 bytes.

 

If it's that easy to patch, then I guess you could do that. But it would be a good idea to mark the new ROM as non-original/fixed, to differentiate from the original one.

 

Also, after a little research, I'm not entirely sure it is an RSYNC issue. I modified Stella to show accesses to RSYNC, and it doesn't seem to use any. And when I disassemble the ROM, I can't find any access to RSYNC ($03).

 

EDIT: Scratch that last comment. There's no literal access to RSYNC/$03, but it does happen just as you say. And in Stella, it shows a zero being poked in RSYNC. However, it does that for many other ROMs I've tested too. I guess in most of the other ROMs, the lack of RSYNC functionality doesn't affect the emulation.

Link to comment
Share on other sites

If it's that easy to patch, then I guess you could do that. But it would be a good idea to mark the new ROM as non-original/fixed, to differentiate from the original one.

 

Also, after a little research, I'm not entirely sure it is an RSYNC issue. I modified Stella to show accesses to RSYNC, and it doesn't seem to use any. And when I disassemble the ROM, I can't find any access to RSYNC ($03).

The loop at L13AF triggers RSYNC at it's mirror at $0103.

 

And again I agree with you that the ROM image should have distinctive name. Maybe we could also put a little ASCII text into the unused space of the ROM that indicates it's state as being modified from the original. But right now it's too late over here to dig out the VCS and test the patched ROM on a real console. That'll have to wait until tomorrow.

Link to comment
Share on other sites

Actually, that's another one; now there's three :) The other one was a very simple test ROM that had a yellow vertical bar that moved when you pressed the fire button (I assume it changed RSYNC). I can't seem to locate it right now. Maybe you sent it to me some time ago??

I think Wickey made the rom you are thinking of. IIRC I tried it on real hardware, and it didn't move the bar along for me. It was a long time ago though.

 

 

when i catagorize this on my harmony what do i put it under. Homebrew, Hack, or was it a part of the original run of games?

 

Its a head scratcher to me.

 

 

Scott

I would categorize it as original, third party game, because of the era it was made.

Link to comment
Share on other sites

If it's that easy to patch, then I guess you could do that. But it would be a good idea to mark the new ROM as non-original/fixed, to differentiate from the original one.

 

Also, after a little research, I'm not entirely sure it is an RSYNC issue. I modified Stella to show accesses to RSYNC, and it doesn't seem to use any. And when I disassemble the ROM, I can't find any access to RSYNC ($03).

The loop at L13AF triggers RSYNC at it's mirror at $0103.

 

And again I agree with you that the ROM image should have distinctive name. Maybe we could also put a little ASCII text into the unused space of the ROM that indicates it's state as being modified from the original. But right now it's too late over here to dig out the VCS and test the patched ROM on a real console. That'll have to wait until tomorrow.

The loop at $13AF is only used for the initial clearing of ram in the game. After that it never seems to be used. Thinking about it now, almost every single Atari game strobes RSYNC because they usually have a clearing loop. Stella does trap this write to RSYNC upon power up.

 

@Stephena, Here is a rough disassembly if it helps. The very first JSR is the routine in question.

 

Extra Terrestials.zip

Edited by Omegamatrix
Link to comment
Share on other sites

Actually, that's another one; now there's three :) The other one was a very simple test ROM that had a yellow vertical bar that moved when you pressed the fire button (I assume it changed RSYNC). I can't seem to locate it right now. Maybe you sent it to me some time ago??

I think Wickey made the rom you are thinking of. IIRC I tried it on real hardware, and it didn't move the bar along for me. It was a long time ago though.

 

Yes that's right, it was a very simple ROM that hit RSYNC at different times during the frame if you held the joystick button. I think I had different results on different hardware as well.

Link to comment
Share on other sites

I'd vote in favor of patching the ROM now so that everyone can play it, and then fix Stella later on as time and circumstances allow so that the unpatched version of th ROM plays correctly on that. We know how busy Steven is and what a great emulator he has (one I use on a regular basis) and if the ROM is as easy to patch as it seems, it would be a easy and effective 'stop gap' measure for right now until Stella can be changed later on.

 

And Rom Hunter, I'd argue that in this case the original programer of the game, for whatever reason, did something different in the game that almost NO other game of the era did, and I'd go so far as to call it a 'bug'. So all we're doing is fixing the 'bug', or if you prefer, patching it to allow it run correctly like any other game of the time.

 

The big question is -- why did the programer choose to program the game this way? Lack of experience? Unfirmilarly with the Atari and how it operated? Lack of time? Just picking the quick and easy way to do it?

Link to comment
Share on other sites

I want to buiy this game but can it be played as a single player? I read something some where that it has to have 2 players in order to play it,

 

The game is two player only.

 

According to the posts above there is space in the ROM for more code. Perhaps an ambitious programmer can add some single player logic and release a hack. ;)

Link to comment
Share on other sites

The big question is -- why did the programer choose to program the game this way? Lack of experience? Unfirmilarly with the Atari and how it operated? Lack of time? Just picking the quick and easy way to do it?

 

I spent a bit of time speaking to the programmer. I guess I can answer with "all of the above". Herman wrote the game in 1983/84 - long before the Internet and other 2600 resources were available. He had to reverse engineer everything himself. He managed to dump a few commercial games and used brute force to write Extra Terrestrials. Time was a factor too as the original plan was to release the game in time for the 1983 Christmas season. Programming took longer than expected (partly because Herman became hooked on River Raid) and they missed Christmas. This is the reason the game is virtually unknown. By the time it was finished in early 1984 the 2600 market had crashed. The game was only distributed locally via a few door-to-door sales to retailers.

 

I get weird collision detection errors on my CC2 as well. I assume I'm not suppose to hit invisible walls in the middle of the play field unless I'm just using the wrong bankswitch file.

 

The walls are sometimes a bit "off" but generally should work correctly. There is no bankswitching required. The game is only 4K.

Edited by awhite2600
Link to comment
Share on other sites

Random interjection.

If we need more RSYNC examples, it at least was discussed years ago on the StellaList.

It was believed that to have the 2600 enter Interlace mode, RSYNC would have to be used.

 

I see a few threads about it, but no concrete successful ROMs on intitial search:

http://atariage.org/pipermail/stella/2000-September/026609.html

http://www.biglist.com/lists/stella/archives/200208/msg00076.html

 

If more examples are needed, that might be a place to dig.

I thought that someone had actually succeeded.

 

-John

Link to comment
Share on other sites

I'm ok with patching the ROM - as long as it we keep the naming etc. distinctly different. The game, as it is, DOES play properly on real hardware. Now that we *think* we know what the issue is, if this spurs on the fixing of Stella by making it technically more complete that's great! On the other hand, I understand it could be a lot of work to address only 2 or 3 ROM's. Is it possible to "fake" Stella into returning the RSYNC values Extra Terrestrials is looking for? (what am I saying, emulation is really a big fake lol).

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