Jump to content
IGNORED

Rom Variants Auto Racing etc.


Recommended Posts

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

; 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

  • Like 1
Link to comment
Share on other sites

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 by intvnut
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

 

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.

Link to comment
Share on other sites

 

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.

Link to comment
Share on other sites

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 :grin: , requires some deep training...

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

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.

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

 

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

 

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!

  • Like 1
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

 

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

Link to comment
Share on other sites

 

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

 

Link to comment
Share on other sites

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 by intvnut
Link to comment
Share on other sites

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 by intvnut
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

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