Jump to content

recompile

Members
  • Posts

    34
  • Joined

  • Last visited

Recent Profile Visitors

3,629 profile views

recompile's Achievements

Space Invader

Space Invader (2/9)

27

Reputation

  1. 1 - Scientist and FBI Agent 2 - FBI Agent 3 - Scientist 4 - No Humans (except Elliot) It's described in "An Extra Game Mode" in the write-up. I had a chance to play this with HSW at the dig. (The documentary crew put the fix on a cartridge for him.) We were going to play on the 'no humans' mode to look at some of the changes. He seemed surprised that there was an extra mode, as he put it "I thought it was two humans, one human, no humans". I replied "Yes, but the one human was the FBI Agent". That FBI Agent is a nasty candy-stealing jerk.
  2. That is strange. I don't know how I missed it, or what the cause could be, but I'll try to look in to it soon.
  3. Now the real reason for this thread: I wanted to talk about the one bug in E.T. which I personally felt - even way back in 1982 - was its Achilles' Heel, and which is still not fixed in the Neocomputer.org rom. When exiting a pit, as soon as E.T.'s neck finishes retracting, his entire sprite moves down one pixel. The fallout of this is that if one exits a pit from the top of it (as opposed to the bottom or the sides), as soon as E.T.'s neck retracts, his sprite shifts down a pixel, so his feet touch the pit, and he falls right back in. The fix for that is really simple, but has an irritating side-effect: When you stretch your neck to use a power zone, you move up one pixel. I wasn't able to find a way around that, so I left that particular fix out.
  4. I wouldn't put too much stock in that site. The author also says "The addresses 004A, 004B and 004C determine where the three items spawn." which is beyond ridiculous as user memory ranges from 80 to FF. I haven't bothered with the rest as I suspect it's just as absurd. Hmm... I may have made things worse for you. I wanted to emphasize that 16 power zone locations per screen doesn't mean 16 power zone variations per game. (I thought that was where the confusion was.) I should have just taken the time to just explain how it works. Let's give it a go. Before I cause even more confusion, let me make clear that there are WAY more than 16 possible game variations. A bit about the randomness: 82 increases by one every 63 frames, 81 increases by one every frame. These are used for randomization. So, yes, when you start a new game or new round determines the setup. If you can guarantee 81 and 82 have specific values when the game starts, you can guarantee a specific game. That caps the maximum number of possible game variations at 65,536, regardless of what should be otherwise possible. For the phone parts and flower locations: The flower is located at whatever pit is identified by the lower four bits of 81. The lower two bits of 82 are used to as an index to a very short table with some "random" numbers which are then added to the value of 81, the lower four bits are masked off, giving the id of the well for one of the phone parts. The value from the table is added in again for the next part, and so on. In short, for any one of the 16 positions that the flower can be in, the phone parts can be spread out in one of four patterns, giving 64 possible starting positions. For the power zones: Three bytes are used to store the random bits for identifying the locations of the various power zones, E7, E8, and E9. E7 is set to the value of 82. The lower two bits of 81 are used as an index to the earlier mentioned (very short) table of "random" numbers. That value is added to 82 and stored in E8, added in a second time and stored in E9. It's a bit hard to follow and the details are very tedious, but essentially what happens is the current screen, E.T's position, and E7-E9 work together and index in to a 128 byte table (used as a 256 nibble table) to determine the current power zone. (Excepting, of course, if a power zone can't appear on a specific screen in which case it's changed on-the-fly to not be a power zone.) The initial offset in to the big table (from the current screen) can be one of only 16 possible values (8, 16, 24 ... 112). That means 16 possible arrangements for any given screen (excluding special things like the phone home zone) which naively leaves us with 16,777,216 (166) possible power zone arrangements for any given game. Of course, that won't actually happen as we're bound by an upper limit of 65,536 possible games. There can't be more, but there can be less. So, how many variations are there really? All I can say with certainty is that there are more game variations than you can identify for any practical purpose. Working out *exactly* how many is certainly possible, but would take more effort than I think I'm willing to invest. If I had to guess, without putting in the actual work, I'd venture something like 24,576 possible games (64*64*6). In any case, it's going to be a whole lot more than 16. John Von Neumann famously quipped: "Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin." Computers just can't make random numbers. (They're deterministic, after all!) You'll be disappointed to know that even today just about every "random number" is just as fake, even in fancy modern games. It's popular to seed PRNG's with the system clock or otherwise introduce entropy by some user action, like pressing a button.
  5. Four on each "equator" screen. That's all of them on every screen except the screen with 8 wells. On that screen, phone parts will only appear in the four wells forming a diamond pattern in the middle, never in the four wells that appear "cut-off" at left and right edges of the screen. Not if you want a playable game that looks even a little bit the the original. It's just not possible. It's not 16 variations per game, or even 16 variations per screen. There are 16 locations per screen in which the different power zones can appear. I suppose I could work out the exact number of possible variations, but it should be sufficient to simply say that there would be too many to meaningfully map. For example, a rather naive calculation gives (8^16) possible power zone combinations per screen. That's an obscenely large number, and it excludes the phone-home and landing zones! Remembering that our massive figure is incomplete and that any one of those combinations can appear on any screen, the word "impractical" doesn't even begin to describe the idea of making a set of cubes! (Really, because of the way the power-zones randomized, it's actually much less than that -- But it's still an impractically large number of combinations.) Well, starting a new game DOES start a new round, after all. If there's any candy left at the end of a round, or left on the ground when you start a new game, that candy will be immediately available in the next round. That's why starting a new game, letting candy appear, and immediately starting a new game nets you +4 to the amount of potential candy available per round. Yes. Er, and No. You don't need the "trick" to get extra candy, just leave some candy on the ground before starting a new round -- either by starting a new game or by completing the current round. Whatever candy is left on the ground from the previous round is immediately available on the next round. It is a bug. I can fix it, but thought it was better to leave it in as it adds a bit or "randomness" to the amount of candy per round. That will still work. If you know there are 20 pieces, however, then you can start single-candy-collecting at 16 collected candies instead. (The candy counter will be 4 at that point, so you'll want to collect one at a time.)
  6. Sorry for the late reply. I've had a very busy few weeks. The FBI Agent heads out as soon as he can. There's no timer or anything like that. The Scientist is a bit different. He won't leave the lab until E.T. attempts to uses one of his powers. This is similar to the scene in the movie when E.T. uses his powers for the first time (to make the solar system float) Elliott get's scared, and the investigators finally locate E.T. You can change the well colors to be anything you like. Change 1DE8 for the background and 1DDF for the foreground. I've resisted making those sorts of changes, and I'm still uneasy about changing E.T.'s color. I agree that The game could look nicer with a better set of colors, the wells being particularly dull. Some input from the community here would be very helpful. A quick note for Schizophretard, it is +4 or -3 to the amount of candy that appears during a round. Yet another update: I've finally updated the write-up and pushed out a new version (it's attached to the first post). Everything seems to be working correctly. Let me know if you find any problems. Some fun news: This project was featured on a local French TV program, LMTV, channel 23 on TNT Sarthe. You can view the program here: http://www.retrotaku.com/category/le-jt-du-retrogaming/les-episodes-du-jt/ The segment starts about a minute in. If anyone can translate the rapid-fire French, I'd be grateful.
  7. Sounds about right. Yep. You can get the +3 on the first round by staring a new game, waiting for the candy to appear, then restarting. To guarantee that you collect all 16 pieces on the first round, after you collect 12 pieces, collect only one at a time, letting the candy replenish in between. Thanks! With the scoring fixed in the hack, you should be able to use all the strategies in that guide. If you want, I can make a ROM for you with just the scoring fix applied this weekend. (Edit: Er, and the bit that keeps Elliott from getting crushed by the ship!) The phone parts and flower can only appear in 16 of the wells. Each above-ground screen is divided in to 16 squares for the power zones. Okay, I get it! I should have been working from the disassembly. By the time you pointed it out, of course, my own notes were more useful to me, I was happy with my workflow, and didn't feel like fighting to get dasm to work in Windows 7. I did make a few annotations to the disassembly in preparation for updating it to reflect my changes, but it was getting awful tedious and didn't seem worth the effort as i didn't intend to use it. If someone actually wants an updated disassembly, I might go through the trouble. I can reverse the order, but I've got to agree with Nukey Shay, the hardest to easiest order seems to make sense in the case of E.T. I can make an updated ROM for you with the order reversed if you want this weekend. I feel pretty good about the current version. I'm going to update the write-up and do some extra testing. If anyone notices any bugs or has an opinion on Ninja E.T., my interpretation of the scoring in the manual, or anything else, I'd welcome the feedback.
  8. I suppose so, but wouldn't it be better if ... Now that's a good idea! Thanks! It turned out to be really easy provided that game 3 has the lone scientist, and game 4 is like the original game 3. 0472: 05 02ED: 29 01 F0 I've attached an updated ROM. I found a stupid what-was-I-thinking bug in the last version which let Ninja E.T. persist when starting a new game, and which started you with more candy that you should have had if you started a new game after playing a round. It's fixed now. After looking at the original game for a while, I'm starting to think that the 1000 points for candies collected over 31 in the manual means that those points are in addition to the 490 or 770 given for collected candy. I've updated the new ROM to reflect that. I'm still iffy about this. Anyhow, here's the latest. I'll do some more testing later and (hopefully) update the write-up. That's long over-due! Edit to attach the ROM: ET_Patched.bin
  9. It's a bit tricky. The +3 (which might actually be +4, I need to double-check) happens when you leave any candy on the ground in a previous game or previous round because D1 (which keeps track of which screen has candy) isn't initialized at the start of a new game or round. (I could fix that, I've got a spare couple bytes for it, but I think it's nice that you get a little variation seemingly at random.) The -3 comes from how candy appears. $DC holds the amount of candy that you can find, the lower nibble of $D1 is like a set of flags, one for each screen with candy. Every so often candy will appear. When it does, candy appears on every screen, and $DC is reduced by the amount of candy added (if two pieces are added, $DC is reduced by 2) However, if the amount of candy necessary to add a candy to every screen is greater than the amount of candy in reserve, no candy will be added! $DC can be effectively empty at or below 3, depending on how you play. To maximize the amount of candy, when you get close to the maximum you can collect, only grab one piece at a time, allowing the candy to be replenished in-between, so that $DC reaches 0. When it stops replenishing, grab the remaining three candies. Down. It's all integer math. Imagine taking the amount of candy collected, rounding down to the nearest even number (leave it alone if it's already even), divide that by two and add it to the original amount of candy collected. Yep. From above 21 will get you 21 + 10 (i.e 21 + (21-1)/2) or 31 potential candies, possibly -3 or 28 candies. That's enough to buy all the phone parts with one to spare. Yep. 16 +/- 3 candies. If you collect too much candy (more than 21 pieces) you'll receive a penalty. How much? If you collect 22 candies your penalty would be (22 + 11) - 31 = 2 units over, integer divide by 2, giving 1 unit over. leaving you with 9292 units of energy (from the table earlier). The amount of candy that appears each round is capped at 31 (+/- 3, of course) If you get enough candy for a penalty, you get the maximum amount of potential candy in the next round. 21 is the most you can collect without the energy penalty. Of course, you'll miss the bonus points as well! They accumulate, but if you have more than 127 extra lives Elliott will assume that you're dead and will not revive you (you'll get the sad-ending screen with the mortally wounded E.T.) I don't know that the flower is more or less likely to appear in a particular well. There's nothing in the code to suggest that. The well that the flower appears in is set according to the lower nibble of $81, which is incremented every frame. The initial wells in which the phone parts appear is set immediately afterward, based partially on that value. Yes. See above and ... Candy replenishes when $81 and $82 sync up a certain way. I haven't taken the time to puzzle out how that translates in to time. The digitalpress page says 17 seconds, but I don't trust it. Candy won't appear while you're on the screen, even if $D1 indicates that candy should be visible. You'll need to leave the screen and return for candy to appear. I've been following the code and the manual to try to puzzle out how things work or were intended to work. I didn't know about the "How To Win at E.T." book, so I'm pretty excited to track down a copy. Thanks for that!
  10. Not with the ROM space I have. It would also require giving our rather stupid humans some much more sophisticated AI. As it stands now, if I sent them home when they fell in a pit, which they'd do constantly, they'd be no threat at all!
  11. In both: The amount of candy collected is determined at the end of the round as the sum of the amount of candy Elliott is holding and the amount E.T. is holding. In the first round, you can find 16 +/- 3 candies. Every subsequent round, the amount of candy you can find is determined by the amount of candy collected in the previous round. In the original: If you collect 16 or more candies in a round, the total amount of candy you can find in the next round is ~1 1/2 times the amount you collected +/- 3 candies. Unless, of course, the amount of candy collected is greater 21 (determined if ~1 1/2 times the amount collected is greater than 31), in which case you'll be penalized and the amount of candy available in the next round will be 31 +/- 3 candies. If you collect less than 16 candies, the amount of candy you can find will be the same as the first round, 16 +/- 3 candies. (This isn't in the manual, it's just how it works.) That means you'll essentially need to collect all the candy in round 1 and round 2 before you'll be able to gather enough candy to get all the phone parts from Elliott. If ~1 1/2 times the total candy collected is greater than 31 you'll be penalized the difference according to a crumby table. dividing that difference by two and for every remaining unit. (I can't really say for every candy!) your starting energy will be 9292, 8484, 7676, 6868, 5959, 5151, or 4242 depending on the amount. More than 7 units over and you're in to unplanned territory. Candy held by E.T. at the end of a round will net you 490 points for each candy. (These are scored first) Candy held by Elliott will net you 770 points for each candy (this is what you see when your score goes up during the munching animation at the end). The 1000 bonus points for every candy over 31 collected is broken. Any amount over 31 that ~1 1/2 times the candy collected is (up to 7, after which the value spills over in to a different data table) you'll get 1000, 2200, 3400, 4500, 6300, 7800, 9900 points (errors beyond that give you 9900, and decrease from there.) Yes, it's broken. In the hack: The amount of candy available is 16 + the amount of candy collected in the previous round +/- 3 candies up to a maximum of 42 +/- 3 candies (to prevent the penalty overflowing your energy.) With a bit of luck, this means you can get all the phone parts from Elliott in the second round. The penalty works exactly like the manual, deducting 700 units of energy for each candy over 31 pieces. (This is done in the munching routine. As a happy bonus, this means you can watch E.T. change color in response the penalty!) Scoring works exactly like it says in the manual. You get 1000 points for every candy collected after the 31st piece. You get 490 points for each candy held by E.T. and 770 points for each candy held by Elliott. There is some ambiguity in the manual, but I didn't think the manual meant you'd get 1000 points plus 490 or 770 for every candy after the 31st collected so you get 1000 points for each candy over 31, deducting the first candy held by E.T., then candy held by Elliott. So if you have 32 pieces of candy with E.T. holding 2 and Elliott holding 30 then you'll score 1000 points for E.T.'s first candy, 490 for his second piece, and 770 for each remaining candy. (If I've misinterpreted the manual and I'm completely wrong on that, please let me know!) I think that covers it. Clear as mud, I know. Yes. (I've lost faith in the accuracy of the digitalpress E.T. Easter Egg page.) I hope that helps. Edit: Minor correction / oversight on my part to the candy penalty part in original version. Also to add, I think I've misread the manual based on what the original code does.
  12. It doesn't seem fair that players taking advantage of the difficulty fix essentially get tons of free points for their remaining energy when they finish a round. I took advantage of six conveniently placed bytes left-over from the scoring fix to change that. Now, if you're playing with the difficulty fix enabled, you'll score no extra points for your remaining energy. With a spare two bytes I was able to tease out in the part that starts a new round, I was also able to give Ninja E.T. secret candy. As always, if you eat a bit of candy, Ninja E.T. turns back in to regular E.T. (I guess because it shows that E.T. lacks the dicipline of a true ninja?) Anyhow, regular E.T. will then have 9 candies. Alternately, Ninja E.T. can call Elliott and earn a phone piece right-off. A nice bonus for suffering through the previous candy-poor round. As always, I'd love to know what everyone thinks about these and the previous new changes (good or bad or suggestions to modify them). Sorry I'm slow on updating the write-up. I'll get to it soon. Yet another new ROM: ET_Patched.bin
  13. Thanks for the kind words, they're very encouraging. You'll be happy to know that Ninja E.T. is back, though the method of his return remains unsettled. Let me know what you think about the current trigger or if you have another idea. Looks great! I had the same thought. You can reduce it a bit and it works fine when you're walking, but flips like crazy when you're running -- often sending you crashing directly in to human you were running from! Okay, I did some stuff. I still haven't updated the write-up, but I'll get there. I'm iffy on the method I picked to enable the Ninja E.T. Easter Egg, and would like that settled before I do. Something you might not have known: The amount of candy in a round is partially determined by the order in which you collect candy. (Crazy, isn't it?) The value at $DC (which looks like a counter but only sort-of is) is a bit fuzzy. There are still some details I need to work out, but it seems as though you can find about +/- 3 candies from that value if you collect them just so. In the original, it was set to 16 and if you collected that much or more in a round, $DC would update to be about 1 1/2 times the amount of candy you collected. You shouldn't have been able to collect more than 31 candies until the third round, which is probably why it seemed so rare. In the last version, I just set DC to 31 for every round after the first. This seemed okay to me, but in keeping with the spirit of the original, it should flux with the amount of candy you collect per round. With the scoring and penalty fixed to match the manual, it seemed a weak penalty as you probably weren't going to find more than 34 candies. (You'd be down 2100 units of energy, not exactly a major threat!) Right now, I have it to set DC to 16 plus the amount of candy you collected in the previous round. There's an upper bound of 42 for DC so that (if I've guessed at the details correctly) you can't cheat by wrapping-around your energy to 9899 by grabbing 31 +15 candies. I could do the half of collected candy thing, but this way you can actually get enough candy to get penalized in the second round, (iirc) like the original. Ninja E.T. is back with a fancy new Easter Egg. While normally I wouldn't reveal the secret, I could use a second opinion on the method I picked to make Ninja E.T. appear. I wanted something a little difficult, but not terribly so that wasn't likely to happen by accident. With the scoring fixed, keeping the "collect more than 31 candies" bit was out. I settled on completing a round with both Elliott and E.T. in possession of exactly three candies as it seemed to rhyme with the commonly cited "collect 33 candies" rule. I've got some testing to do with the new changes, though everything seems to work correctly. Let me know if you find a problem (new or old). With luck, this project should be coming to a close. If anyone wants to try some stuff out easily in Stella: You can force the ship to rescue you and end the round by setting PC to $B583. $DD holds Elliott's candy and the upper nibble of $D2 holds E.T.'s. ET_Patched.bin
  14. I love it. I remember being much better at this game when I was 12. Those yellow rabbits mopped the floor with me! Any luck changing the title screen?
×
×
  • Create New...