intvnut Posted September 11, 2015 Share Posted September 11, 2015 I am partial to "relative to car orientation" vs. "relative to screen orientation." At least to me it is explicit. "Relative" does not really qualify to what it is relative. Fair enough. Reminds me of an old joke: The two hardest problems in Computer Science are cache invalidation, naming things, and off-by-one errors. Why would people complain so loudly, enough to cause Mattel to react, to make the game harder to play in the general case? It seems much more plausible that the change would have been the other way around. Maybe the change happened between the test marketing and the final production run? I need to look at the delta between the two versions a little more closely. I recall thinking that one of them looked more elegant than the other. I vaguely recall thinking the version without the Easter egg actually looked more ham-fisted in the part that handled the steering dispatch, but honestly I can't back that up right now. I've seen an even more inexplicable change in Las Vegas Poker and Blackjack. Between the two versions of the ROM, a two instruction sequence changed to a different two instruction sequence that's exactly the same size, takes exactly the same number of cycles, and does exactly the same thing. WTF? That's not a running change... that's a running stay-the-same! Or something. ; Poker 1978: MVI G_01C1, R0 ; 59A8 0280 01C1 TSTR R0 ; 59AA 0080 ; Poker 1979: CLRR R0 ; 59A8 01C0 XOR G_01C1, R0 ; 59A9 03C0 01C1 1 Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted September 11, 2015 Share Posted September 11, 2015 Could it be that MVI takes an extra word when using 10-bit ROMs? Idunno. Quote Link to comment Share on other sites More sharing options...
intvnut Posted September 11, 2015 Share Posted September 11, 2015 (edited) Could it be that MVI takes an extra word when using 10-bit ROMs? Idunno. The two sequences are literally the same length and take the same number of cycles. You can see the opcodes to the far right in the disassembly I showed. I actually asked David Rolfe about it years ago. The best he and I could come up with is that some macro in the EXEC header files must've changed between the 1978 build and the 1979 build. (The other difference between the two ROMs is the copyright year displayed.) Anyway, back to Auto Racing: I'll peek at it this weekend if I get a chance. Edited September 11, 2015 by intvnut Quote Link to comment Share on other sites More sharing options...
+nurmix Posted September 11, 2015 Share Posted September 11, 2015 I'm almost certain that when I first played Auto Racing on my next door neighbor's Intellivision in 1980, it was the "screen directional/intuitive" version. When I got my Intellivision and Auto Racing a year later in 1981, it was "realistic". Quote Link to comment Share on other sites More sharing options...
mr_me Posted September 11, 2015 Share Posted September 11, 2015 I'm almost certain that when I first played Auto Racing on my next door neighbor's Intellivision in 1980, it was the "screen directional/intuitive" version. When I got my Intellivision and Auto Racing a year later in 1981, it was "realistic". And do you remember what you and your neighbour thought of the controls for their Auto Racing? I've never played the "screen directional/intuitive" version but I can see it being problematic. To do a hard turn you'd have to keep moving your thumb and being careful not to go into the oversteer zone which keeps changing. I can't imagine playing track five with the hairpin turns this way. Likely lots of cars crashing or going out of control and complaints to Mattel. I can also see lots of complaints after changing to absolute/realistic steering as well. I'd like to know what Mattel was thinking during the development and release of Auto Racing. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted September 12, 2015 Share Posted September 12, 2015 And do you remember what you and your neighbour thought of the controls for their Auto Racing? I've never played the "screen directional/intuitive" version but I can see it being problematic. To do a hard turn you'd have to keep moving your thumb and being careful not to go into the oversteer zone which keeps changing. I can't imagine playing track five with the hairpin turns this way. Likely lots of cars crashing or going out of control and complaints to Mattel. I can also see lots of complaints after changing to absolute/realistic steering as well. I'd like to know what Mattel was thinking during the development and release of Auto Racing. You bring an interesting point. I've never played the "screen directional/intuitive" version either, and just assumed it would be easier. I can imagine how people can complain about it then. It's as if Mattel had a great game but couldn't really figure out how to design a usable interface for it. Quote Link to comment Share on other sites More sharing options...
+nurmix Posted September 12, 2015 Share Posted September 12, 2015 And do you remember what you and your neighbour thought of the controls for their Auto Racing? I've never played the "screen directional/intuitive" version but I can see it being problematic. To do a hard turn you'd have to keep moving your thumb and being careful not to go into the oversteer zone which keeps changing. I can't imagine playing track five with the hairpin turns this way. Likely lots of cars crashing or going out of control and complaints to Mattel. I can also see lots of complaints after changing to absolute/realistic steering as well. I'd like to know what Mattel was thinking during the development and release of Auto Racing. I remember we weren't very good at it; and there were a lot of crashes! I've played the "intuitive/screen directional" version in recent years on my Cuttle Cart 3, and I find it frustrating and nearly unplayable. There is a great deal of unpredictability with control, depending on when and where you push the disc. The "realistic" version, on the other hand, works the way my brain expects it too - right is right, left is left. And pressing near the top of the disc produces a gradual turn, pressing closer to the bottom produces a sharp turn - with a great deal of fine control; depending on how far up or down the disc you are pressing as you make turn adjustments. Quote Link to comment Share on other sites More sharing options...
fabulous_Muller Posted September 12, 2015 Share Posted September 12, 2015 (edited) Hi folks.. Before the internet I din't even know that there was 2 variants available. Just played the "realistic" one which for me was the only one for years, Even now I didn't played the other. I don't know how could people complaining because if a 9 yrs boy find pretty normal to go right , as a real car wheel , when you are going down the screen when the curve is for the right , so... nothing absurd and that's all funny of the game. And how abouth the phanton circuits ? , when it ends in a (neck)tie. How many hours I spend going from one circuit to another between the trees, it requires a high level break control skill to do that. So high that I simply cannot succeed nowadays , requires some deep training... Edited September 12, 2015 by fabulous_Muller 1 Quote Link to comment Share on other sites More sharing options...
intvnut Posted September 13, 2015 Share Posted September 13, 2015 I've looked at the Auto Racing code a little more. Originally, I had made the statement that it seemed weird to remove a mode rather than just flipping the default when making a running change. But, looking through the code, it looks like the changes were much more extensive, including bypassing some EXEC routines with hand-rolled code. I now get the feeling that the original version had both versions of the control scheme in there, but when reports came in about crappy handling, when they decided to go fix it they didn't have room for both and had to pick one. I say this without really having dug deeply into both versions. There are enough differences that go in the direction of "Realistic-only version seems a little more complicated" suggest it's the newer version, with tweaks intended to improve performance of the code. I'd need to spend more time reverse engineering, though, to really say that that's what's going on here, though. So this raises a different hypothesis: APh delivered a version capable of both control schemes, but "intuitive/directional" enabled. Folks complained that control wasn't responsive enough. Mattel, when going to fix the controls, decides to switch to "realistic" also at the same time. The Easter egg gets removed at that time because there's no room for it. Quote Link to comment Share on other sites More sharing options...
Keatah Posted September 13, 2015 Share Posted September 13, 2015 But, looking through the code, it looks like the changes were much more extensive, including bypassing some EXEC routines with hand-rolled code. I now get the feeling that the original version had both versions of the control scheme in there, but when reports came in about crappy handling, when they decided to go fix it they didn't have room for both and had to pick one. If there was room for both, why would there all of a sudden be room for only one? And I clearly remember playing with both controls. You had to pick which one you wanted. And we always argued about which was better. In fact it's in my notes and logbook! Quote Link to comment Share on other sites More sharing options...
intvnut Posted September 14, 2015 Share Posted September 14, 2015 If there was room for both, why would there all of a sudden be room for only one? And I clearly remember playing with both controls. You had to pick which one you wanted. And we always argued about which was better. In fact it's in my notes and logbook! We're not talking about a lot of code either way; however, the code that's in the realistic-only version is somewhat larger. At least one data table is larger in the "supports-realistic-only" version, supporting a wider dynamic range of values. I can't tell if those values are supposed to be velocities or what. In the "supports both types" version, there's an update task called as a dedicated timed task once every 2 ticks. This task updates both cars. (I think.) (This is task number 3 in a timer table with 4 tasks.) In the "supports realistic only" version, this task has been tacked on the end of another task that gets called every tick, and it manually maintains a flag that toggles each time to know which half of the work it's doing. The timer task table has shrunk to 3 entries. It's all little stuff like that. If it was just a matter of flipping the default, you'd just tweak this code which selects the direction control scheme for each player by changing the BEQs to BNEQs: . .TITLECODE: MVII #$0058, R0 ; 5029 Pattern for [1]+[4]+[9] (or [1]+[6]+[9]) MVII #$0170, R1 ; 502B Where to store the flags MVII #$0002, R2 ; 502D Value to store for 'directional steering' MVII #$01FE, R4 ; 502F CMP@ R4, R0 ; 5031 Does right-hand player want 'real steering'? BEQ L_5035 ; 5032 Yes: skip the next store MVO@ R2, R1 ; 5034 No: Set $170 to 2 L_5035: DECR R1 ; 5035 CMP@ R4, R0 ; 5036 Does left-hand player want 'real steering'? BEQ L_503A ; 5037 Yes: Skip the next store MVO@ R2, R1 ; 5039 No: Set $16F to 2 L_503A: MOVR R5, R7 ; 503A Return . So, either they started with a version that only did 'real' steering, and optimized it so they could cram in both varieties and the code to switch; or, when folks complained about the controls, when they tweaked the logic to make the controls better, they had to take out support for switching because the tweaked code was larger. The latter seems likely given the Lock'n'Chase story about the controls in that game. Quote Link to comment Share on other sites More sharing options...
intvnut Posted September 14, 2015 Share Posted September 14, 2015 I'm digging into the Auto Racing binaries a bit more... They're surprisingly different in all sorts of weird ways. I needed a short break from firmware development. I'm not sure how much more time I'll be able to spend on this, though. 1 Quote Link to comment Share on other sites More sharing options...
Tempest Posted September 14, 2015 Share Posted September 14, 2015 This is all really interesting stuff. I wonder what we'd find if more people dug into the code of games? Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted September 14, 2015 Share Posted September 14, 2015 Fascinating! Joe, let us know what else you can come up with. Is there any way to tell which version came from which cart release, in order to align them chronologically? I'm inclined to think along the same line as you: that APh created a "generic" version that supported both steering controls; then people complained and the programmers attempted to improve the controls of ONE of them, removing the other due to space constraints. It is at least plausible. @Nurmix, armed with the technical details provided by Joe, and the new theories of the sequence of events; it would be interesting to pose them to Keith Robinson & Co. to see if it sparks a more detailed account from their memories. dZ. Quote Link to comment Share on other sites More sharing options...
+nurmix Posted September 14, 2015 Share Posted September 14, 2015 Fascinating! @Nurmix, armed with the technical details provided by Joe, and the new theories of the sequence of events; it would be interesting to pose them to Keith Robinson & Co. to see if it sparks a more detailed account from their memories. dZ. Started that ball rolling this morning.. Quote Link to comment Share on other sites More sharing options...
Games For Your Intellivision Posted September 15, 2015 Share Posted September 15, 2015 I remember we weren't very good at it; and there were a lot of crashes! I've played the "intuitive/screen directional" version in recent years on my Cuttle Cart 3, and I find it frustrating and nearly unplayable. There is a great deal of unpredictability with control, depending on when and where you push the disc. The "realistic" version, on the other hand, works the way my brain expects it too - right is right, left is left. And pressing near the top of the disc produces a gradual turn, pressing closer to the bottom produces a sharp turn - with a great deal of fine control; depending on how far up or down the disc you are pressing as you make turn adjustments. I recall my grandmother, who grew up during World War I in Germany, watching me crash on auto racing and was making comments about how I might lose my driver's license! Video games were so new at the time she thought the skills might be interchangeable! 1 Quote Link to comment Share on other sites More sharing options...
intvnut Posted September 16, 2015 Share Posted September 16, 2015 The more I dig through this ROM, the more weird crap I find. For example: The starting position of the cars shifted over by a couple pixels between versions. How the "Winner" screen is handled is quite different (at least inside the code)—one version drops into an infinite loop, the other sets a flag and returns to the event loop (I think...). And restarting after a crash moved from pressing the keypad to pressing an action button Weird, weird, weird, weird, weird! I will say generally the changes still lead me to believe the "real steering only" version is newer, but it may just be confirmation bias. 1 Quote Link to comment Share on other sites More sharing options...
freewheel Posted September 16, 2015 Share Posted September 16, 2015 And restarting after a crash moved from pressing the keypad to pressing an action button Never noticed this when testing them, so I checked it out. However... on the ROMs I have, "realistic" (ie: left turns your car left, always) uses the action button and "intuitive/directional" uses the keypad. Checking the instructions confirms this - left=left, with the oversteering, refers to pressing the action buttons to restart. To me, restarting with the action button seems like something that would come in a later version. Because they realized how asinine and forced the keypad was (Mattel sure did like foisting the keypad upon everything in the early days). But that contradicts most of the rest of your observations. Quote Link to comment Share on other sites More sharing options...
intvnut Posted September 16, 2015 Share Posted September 16, 2015 Never noticed this when testing them, so I checked it out. However... on the ROMs I have, "realistic" (ie: left turns your car left, always) uses the action button and "intuitive/directional" uses the keypad. Checking the instructions confirms this - left=left, with the oversteering, refers to pressing the action buttons to restart. To me, restarting with the action button seems like something that would come in a later version. Because they realized how asinine and forced the keypad was (Mattel sure did like foisting the keypad upon everything in the early days). But that contradicts most of the rest of your observations. I'm operating under the assumption that the newer one is the "Real steering only" version, and that uses the action buttons to restart. What you said matches what I saw in the ROMs and I agree, it fits the hypothesis that real-steering-only is the newer version. Early on, I thought the "intuitive/directional" version was newer, but I've since been swayed to "real steering only" is newer, as I suggested here: So this raises a different hypothesis: APh delivered a version capable of both control schemes, but "intuitive/directional" enabled. Folks complained that control wasn't responsive enough. Mattel, when going to fix the controls, decides to switch to "realistic" also at the same time. The Easter egg gets removed at that time because there's no room for it. and here: So, either they started with a version that only did 'real' steering, and optimized it so they could cram in both varieties and the code to switch; or, when folks complained about the controls, when they tweaked the logic to make the controls better, they had to take out support for switching because the tweaked code was larger. The latter seems likely given the Lock'n'Chase story about the controls in that game. I'm not sure where you're seeing a contradiction. Quote Link to comment Share on other sites More sharing options...
freewheel Posted September 16, 2015 Share Posted September 16, 2015 I'm operating under the assumption that the newer one is the "Real steering only" version, and that uses the action buttons to restart. What you said matches what I saw in the ROMs and I agree, it fits the hypothesis that real-steering-only is the newer version. Early on, I thought the "intuitive/directional" version was newer, but I've since been swayed to "real steering only" is newer, as I suggested here: and here: I'm not sure where you're seeing a contradiction. I'm an idiot, that's why. I honestly can't figure out what I read. My post actually started with "OK, I think you've convinced me, realistic IS the newer version" but then my brain went "wait a second..." and I somehow inverted the logic. Suffice it to say - I'm just about convinced that realistic must be the newer version. I really need to try "intuitive" on an actual controller to see it, but I'm still stunned that people in the early 80s found "realistic" more natural. Pretty much every game at the time was "your joystick moves translate precisely to what you see on the screen", but I can't think of any top-down driving games using sticks to compare against. Casual gamers fought against this type of control scheme well into the 90s (Resident Evil was infamous for this), so I'm more than a bit surprised that Mattel would have received better feedback on realistic. Maybe the average Intellivision owner was a bit more savvy than most. Quote Link to comment Share on other sites More sharing options...
intvnut Posted September 16, 2015 Share Posted September 16, 2015 I'm an idiot, that's why. I honestly can't figure out what I read. My post actually started with "OK, I think you've convinced me, realistic IS the newer version" but then my brain went "wait a second..." and I somehow inverted the logic. Suffice it to say - I'm just about convinced that realistic must be the newer version. I really need to try "intuitive" on an actual controller to see it, but I'm still stunned that people in the early 80s found "realistic" more natural. Pretty much every game at the time was "your joystick moves translate precisely to what you see on the screen", but I can't think of any top-down driving games using sticks to compare against. Casual gamers fought against this type of control scheme well into the 90s (Resident Evil was infamous for this), so I'm more than a bit surprised that Mattel would have received better feedback on realistic. Maybe the average Intellivision owner was a bit more savvy than most. Well, my own theory is that the original Auto Racing just sucked for responsiveness period, and so when it came time to do something about it, Mattel had to pick one of the two control schemes to improve. How that got decided was probably a matter of internal debate and who had the most clout. Here's something that's probably worth trying: Compare / contrast "Real steering" on the two ROM variants. If my hypothesis holds, the "real steering only" version will handle better than the "real steering hidden as Easter egg" version. The cheat code is [1]+[6]+[9], held across reset. And it's per-controller, if you're playing 2-playered. Alternately, you can use the following config file with the "Intuitive/Directional" version of the ROM to flip it over to "Real" steering: . [macro] @P 5034 34 @P 5039 34 . If you're not using jzIntv, you can 'bake' that config into a ROM using either rom_merge or bin2rom... Quote Link to comment Share on other sites More sharing options...
intvnut Posted September 16, 2015 Share Posted September 16, 2015 (edited) Another oddity: In the intuitive/directional version, when the game ends, it seems to drop into an infinite loop after the cheering stops. You pretty much have to hit reset to do anything after that. In the real steering version, it appears to delay for a few seconds with cheers and such, but then drop into a new race. EDIT: Ok, the 'real steering' version does not drop into a new game on finishing. It does just 'stop'. I imagine it just drops into the EXEC. Just tested it. :-P Now to test what the 'Intuitive' version does. EDIT 2: The big difference is that in the 'real steering' version, the 1+9 "pause" still works, and therefore the normal display blanking likely still works. In the 'intuitive steering' version, when you finish the game, the machine really just seems to hang with the display enabled. Edited September 16, 2015 by intvnut Quote Link to comment Share on other sites More sharing options...
intvnut Posted September 16, 2015 Share Posted September 16, 2015 (edited) Another difference between the two: The "Intuitive / Directional" version doesn't play a splash sound effect when you hit the water, but the "Real Steering" version does. Also, the acceleration effect of water seems to be a little more involved in the "Real Steering" version. Edited September 16, 2015 by intvnut Quote Link to comment Share on other sites More sharing options...
+Lathe26 Posted September 16, 2015 Share Posted September 16, 2015 This is all really cool information. I was curious as to how tightly packed the code was in the 8KB image. The largest gap of "unused ROM" I saw in the hex editor was a 48 byte block of all zeroes, but it is possible that even this is legit data (I used a hex editor, not a disassembler). When all is said and done, someone should collect up all the differences found and put them into one single post. Quote Link to comment Share on other sites More sharing options...
intvnut Posted September 16, 2015 Share Posted September 16, 2015 This is all really cool information. I was curious as to how tightly packed the code was in the 8KB image. The largest gap of "unused ROM" I saw in the hex editor was a 48 byte block of all zeroes, but it is possible that even this is legit data (I used a hex editor, not a disassembler). When all is said and done, someone should collect up all the differences found and put them into one single post. I'll probably end up putting my reverse engineering work up in a Google Doc or something. Right now I have everything in a spreadsheet, with side-by-side disassembly. I'm attempting to line up code between the two versions to show additions, deletions and changes, similar to, say, tkdiff. If others want to drive the reverse engineering further, I could offer write access to the Google Doc as needed. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.