Jump to content
IGNORED

Fixing E.T. The Extra Terrestrial


recompile

Recommended Posts

Everyone complains about E.T., but no one does anything about it.

 

30 years after its release, with some time off for the new year, I took a shot at fixing some of the problems like accidentally falling in to wells and the punishing difficulty. It turned out really well, and makes for a much better experience. I have a quick write-up about the hack here: http://www.neocomput...g/projects/et

 



- E.T. is Not Green                       
-------------------------------------------
17FA: FE FC F8 F8 F8
1DE8: 04

- Difficulty Fix  (Walk, Run, Hover)     
-------------------------------------------
0707: A4 F8
071B: A4 F8
0685: A4 F8
0FEF: AD 82 02 29  08 4C 4E BB
0B4D: 60 4A 4A 4A  49 01 85 F8
04F0: A5 81 29 1E

- Falling Fix                            
-------------------------------------------
002A: 4C F6 BB
0BF6: A5 9C 69 07  85 F6 4C AB  BC
1013: 05 D9 65 E3  65 F6 85 8B  4C 4B F0
101E: 08 E4 8B D0  06 24 13 70  02 85 2C  E4 9E 08 E8
102D: A4 86 8A
1034: 85 02 84 1C
1060: A5 87 85 1B  A5 88 85 06  8A A8 B1 BA  85 0E B1 BC
1070: 85 0F E4 9F  4C 1E F0
18F3: 2E F0
0B40: A9 EF
07ED: E9 04
0BA5: 22


- BUG FIXES
- Don't Fall Leaving Forest on Left
-------------------------------------------
0D54: 4A
0D6C: 01

- Ship Shouldn't Crush Elliott 
-------------------------------------------
07BD: 4C D9 BA

- FIX SCORING TO MATCH MANUAL
-------------------------------------------
058E: 85 F4 A5 DD  85 F5 65 F4  85 DD 69 10  EA EA
1382: 4C 9D F3
1395: A9 99 85 D3  85 D4 D0 09  A5 F8 D0 02  AA A8
13BD: A9 01 05 DE  85 DE A2 07  A0 70 20 41  F3 EA
1341: A5 D2 C9 0A  F0 08 E9 10  85 D2 A2 04  A0 90 A5 DD
1351: F8 4C E9 F7
17E9: C9 1F 90 0A  8A 09 10 AA  A5 D3 E9 07  85 D3 D8 60
13FD: A9 99 85 D3  85 D4 A9 00  85 F4 85 E3
147A: A9 00 85 DD  85 D9 85 94  A5 29 C5 DC  B0 02 A5 DC
148A: 4C A5 F4

Note: If you don't include the difficulty fix, make
      the following change to the scoring fix:
      139D: EA EA EA EA  EA EA


- Easter Egg - Ninja E.T. 
-------------------------------------------
148A: A5 F4 C5 F5  D0 0C C9 03  D0 08 A9 AA  85 D2 85 D3
149A: 85 D4 4C A5  F4 EA EA EA

- Add Extra Game Option - Scientist Only
--------------------------------------------
0471: E0 05
02ED: 29 01 F0 09

 

Here's what the game looks like with all the changes applied:

 

figure6.png

 

If you actually step on a well, you'll fall in -- just not when you're clearly on solid ground, as in the image above. I've attached the full version. You can download a ROM with any combination of the above changes from the article.

 

Let me know what you think.

 

::UPDATES::

(1) Thanks to Nukey Shay's suggestions, sprites are no longer "blocky".

 

(2) Thanks to Random Terrain's bug report, the hovering sound works properly. I've attached the new ROM (ET_Fixed_v2.bin).

 

(3) Fixed Elliott's shirt and made it easier to pickup candy (most of the time). I've attached the new ROM (ET_Fixed_v2a.bin).

I haven't updated the write-up yet as there are a few things l'd like to try out and a new feature I plan to add before hand.

 

(4) Wow, that's a lot of changes. The write-up has been updated, but here's a list of changes off the top of my head: You can pick-up Candy easily regardless of the circumstances. Items in wells are kept at their original positions. There are no graphical hickups near the edges of the screen. Elliott's shirt is striped, the FBI agent is no longer bald, and E.T. doesn't get "blocky" near the right-edge of the play area. The difficulty fix can now be enabled and disabled with the color switch. The most important change, of cousre, is that Elliott can now revive you (how did I miss THAT bug?!).

 

(5) The scoring has been fixed to match the manual. If the difficulty fix is enabled, no points are awarded for remaining energy. Ninja E.T. is back as an easter egg. A few bug fixes and that's all, I think. The write-up has been updated.

 

Baring some strange bug, I'm ready to call this version 'final'. Give it a try and let me know what you think. If it's good to go, I'll submit it to the "hacks" section.

 

Thanks again to everyone.

ET_Fixed_Final.bin

Edited by recompile
  • Like 15
Link to comment
Share on other sites

Did you mean to mess up the look of the Interplanetary Phone Pieces and put an H on top of the Wilted Flower?

 

Those are both unfortunate consequences of the changes at 1060. I mention that in the write-up. It may have been a good idea to change the sprite data to make the phone parts look more like the originals, and the flower more flower-like. (The flower does look a bit odd.)

 

I don't think I can avoid changing the look altogether, but I'll see if I can improve their appearance. That is, unless another enterprising ROM hacker wants to contribute.

 

BTW, I love your site. I have two separate links to it in the write-up! :)

  • Like 1
Link to comment
Share on other sites

Very interesting hack. I'd like to share a couple of thoughts.

 

Can you make it so the collisions are about the bottom 1/2 or 1/3 of ET instead of just his feet? That would make it easier to pick up candy and still be easier to avoid wells than in the original game.

 

Is there any way to keep the original pixel height? If it's a matter of ROM space for the extra code, I think it would be worth increasing the ROM size to keep the higher resolution sprites.

 

Thanks for sharing. ET has always been one of my favorites for the 2600.

Link to comment
Share on other sites

Plenty of romspace available if you use a proper disassembly ;)

 

Dennis Debro reverse-engineered this game (and commented much of it). That would be a good starting point for any hacks. So there's no need to overwrite and break working code when a disassembly will shift stuff around on it's own to accomodate your additions. Not enough free cycle time to do that check as they are drawn, but there is some unused ram to put the scanline difference at...then just CPX when drawing.

 

http://www.bjars.com/disassemblies.html

Link to comment
Share on other sites

Can you make it so the collisions are about the bottom 1/2 or 1/3 of ET instead of just his feet? That would make it easier to pick up candy and still be easier to avoid wells than in the original game.

 

Yep, just change 1015 from 08 to 06 and 1063 from 07 to 05

 

I've been thinking about a way to make it easier to pickup candy. It shouldn't be too complicated, just a regular "is this point inside this box" type check and some changes to make use of that result instead. There's tons of time, just not where we need it for ...

 

Is there any way to keep the original pixel height?

Sadly, no. Space isn't the issue, there just isn't enough time.

 

 

Plenty of romspace available if you use a proper disassembly ;)

Yeah, but it wouldn't have been nearly as fun!

 

Dennis Debro reverse-engineered this game (and commented much of it). That would be a good starting point for any hacks.

Wow, that would have saved me a lot of effort! I don't know that it would have saved our sprites, however, as time was at a higher premium than space.

Edited by recompile
Link to comment
Share on other sites

Is there any way to keep the original pixel height?
Sadly, no. Space isn't the issue, there just isn't enough time.

 

Not enough free cycle time to do that check as they are drawn, but there is some unused ram to put the scanline difference at...then just CPX when drawing.

 

Sorry, that still sounds like Swahili to me, but are you saying it is possible to keep the original pixel height if written a little differently?

Link to comment
Share on other sites

Notice how you are subtracting a known value from the scanline counter (TXA,SBC#07,CMP$9C). Rather than do that, you could take $9C and add 7 (storing the result into a byte of ram unused by the kernel) before the display is drawn. That automatically saves 4 cycles in the kernel routine...just CPX with that byte.

 

Also, unused romspace can lead to free cycles within the display. Through redundancy/dedicated subkernels, unrolling loops, etc.

 

But doing the above and skipping over the WYSNC might be enough cycles on it's own. ET really isn't my bag :P

  • Like 3
Link to comment
Share on other sites

Notice how you are subtracting a known value from the scanline counter (TXA,SBC#07,CMP$9C). Rather than do that, you could take $9C and add 7 (storing the result into a byte of ram unused by the kernel) before the display is drawn. That automatically saves 4 cycles in the kernel routine...just CPX with that byte.

 

A fantastic idea. That was enough to save our sprites!

 

I've already updated the article, giving you credit, of course. Thanks!

Link to comment
Share on other sites

Even the flower is back to normal. The only problem I have found so far is if you stop yourself from falling all the way into a well, there can sometimes be an irritating constant tone until another sound is made.

 

Good catch. Thanks for that.

 

Apparently this is an artifact of the hovering / floating part of the difficulty fix. I was able to fix it once I puzzled out why such a simple seemingly unrelated change could cause such a huge problem. The ROM is updated in the write-up along with a description and a credit to you. I'll update the ROM attached to the first post in a minute or two.

  • Like 1
Link to comment
Share on other sites

Pretty cool. Elliot's colors are screwed up in the latest version though. Do you have a fix for that?

 

 

Also, I wanted approximately the lower 1/3 for collision detection, so I tried decreasing those 2 locations you mentioned in the 1st hack. That made the humans go back to being blocky, so I tried changing just the 1st location at 1015 and that seemed to work fine. I didn't play it much though to see if it harmed anything.

Edited by KevinMos3
Link to comment
Share on other sites

Is there a way to fix navigating the cube? I think that is a bigger issue than the pits. When you navigate on the equator it makes sense but from the poles it doesn't. North shouldn't always be located at the top of the screen and south shouldn't always be located at the bottom of the screen. The screens should change directions. How it is now there are three cubes. In other words, it takes more than six screens to create a six sided cube.

Link to comment
Share on other sites

Is there a way to fix navigating the cube? I think that is a bigger issue than the pits. When you navigate on the equator it makes sense but from the poles it doesn't. North shouldn't always be located at the top of the screen and south shouldn't always be located at the bottom of the screen.

 

I couldn't find any problems navigating the cube. It seems to work correctly. Here's a crude map with the screens rotated correctly, as though unfolded from a cube. The red lines indicate the top of the screen:

 

crudemap.png

 

Sorry it's not nicer looking. I don't have a lot of time in the middle of the week for fun stuff. I hope that helps anyway.

 

Pretty cool. Elliot's colors are screwed up in the latest version though. Do you have a fix for that?

 

Sadly, not yet. You can add a red stripe if you want by changing 1AAD to 34 but it's not the same.

 

Also, I wanted approximately the lower 1/3 for collision detection, so I tried decreasing those 2 locations you mentioned in the 1st hack. That made the humans go back to being blocky, so I tried changing just the 1st location at 1015 and that seemed to work fine. I didn't play it much though to see if it harmed anything.

 

Here you go: ET_Fixed_v2_KevinMos3.bin

 

On the red stripped shirt and the candy piece pickup, I have a few ideas, but I don't know if I'll get a chance to work on it until the weekend. I'll let you know how it goes either way.

 

 

In other news...

Stock prices plummet in the midst of a rumor that Atari's "E.T. The Extra-Terrestrial" video game may contain more than 6 screens.

I hope not! With any luck, only France will be affected. They seem to have the most invested in E.T. for the Atari 2600:

 

http://www.retrotaku.com/remake/e-t-la-daube-legendaire-de-latari-2600-retravaille-par-un-fan/

http://mag.mo5.com/actu/31160/le-tristement-celebre-e-t-sur-atari-2600-revu-et-corrige/

http://www.gamopat.com/article-e-t-the-extra-terrestrial-revu-et-corrige-114166084.html

Link to comment
Share on other sites

I couldn't find any problems navigating the cube. It seems to work correctly. Here's a crude map with the screens rotated correctly, as though unfolded from a cube. The red lines indicate the top of the screen:

 

crudemap.png

 

Sorry it's not nicer looking. I don't have a lot of time in the middle of the week for fun stuff. I hope that helps anyway.

 

Starting from the four pit screen on the far left, if you go up to the forest you should be able to continuously hold up to end up on the screen with the most pits. From there you should be able to keep pushing up and get to DC. Then from there you should be able to keep pushing up and end where you started. What happens instead is you push up to the forest, then up to the two big and two little diamond pits, then back to the forest, then back to the two big and two little diamond pits, then back to the forest, then back to the two big and two little diamond pits,..... You should be able to go either left, right, up, or down continuously and circle the cube. You can only do that going left or right on the equator. Also the tops of the screens should change. For an example, DC and the forest only has one top.

Link to comment
Share on other sites

Starting from the four pit screen on the far left, if you go up to the forest you should be able to continuously hold up to end up on the screen with the most pits. From there you should be able to keep pushing up and get to DC. Then from there you should be able to keep pushing up and end where you started.

To be honest, I'm not sure how that would work with the rectangular screens (they'd be a bit distorted when rotated) You'd also need to add another bank (or two). It's not a change I'm going to make.

 

Don't let that stop you from trying -- there's room enough in the world for another E.T. hack.

 

 

By some reason the website has the text twice!
Thanks! It's been fixed.

 

 

Okay, I've updated the ROM. The stripes on Elliott's shirt and the FBI Agent's hair have been restored and it's now easier to pick-up candy (it works just like it does unmodified). The only hitch is that the candy-pickup still requires you to touch it with your feet if the candy, E.T. and another character are on the same line. This may be something that I can fix, so hang on.

 

I'm also planning a new feature. I'll see if I can work out those things this weekend, if I can find a few hours.

  • Like 1
Link to comment
Share on other sites

Sounds great! I look forward to the new ROM.

 

Thanks! I put up a new version earlier today if you want to give it a go. I'd like to hear what you think of the current candy setup (you only need to touch it with your feet when you're in line with another character). I'm going to try to fix that (I have an idea), but still curious as to what you think, just in case I can't!

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