Jump to content

Photo

Rom Variants Auto Racing etc.


107 replies to this topic

#26 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Fri Sep 11, 2015 10:14 AM

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



#27 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • 11,956 posts
  • The P-Machinery AGE is almost here!
  • Location:NC, USA

Posted Fri Sep 11, 2015 10:26 AM

Could it be that MVI takes an extra word when using 10-bit ROMs? Idunno.

#28 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Fri Sep 11, 2015 11:30 AM

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, Fri Sep 11, 2015 11:33 AM.


#29 nurmix OFFLINE  

nurmix

    Stargunner

  • 1,729 posts
  • Location:Los Angeles

Posted Fri Sep 11, 2015 3:54 PM

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

#30 mr_me OFFLINE  

mr_me

    River Patroller

  • 3,679 posts
  • Location:Ontario

Posted Fri Sep 11, 2015 5:21 PM

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. 



#31 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • 11,956 posts
  • The P-Machinery AGE is almost here!
  • Location:NC, USA

Posted Sat Sep 12, 2015 6:02 AM

 

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.



#32 nurmix OFFLINE  

nurmix

    Stargunner

  • 1,729 posts
  • Location:Los Angeles

Posted Sat Sep 12, 2015 10:55 AM

 

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.



#33 fabulous_Muller OFFLINE  

fabulous_Muller

    Star Raider

  • 57 posts
  • Location:Brazil

Posted Sat Sep 12, 2015 12:50 PM

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, Sat Sep 12, 2015 12:51 PM.


#34 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Sun Sep 13, 2015 1:43 PM

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.



#35 Keatah OFFLINE  

Keatah

    Missile Commander

  • 21,794 posts

Posted Sun Sep 13, 2015 5:48 PM

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!



#36 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Sun Sep 13, 2015 6:55 PM

 

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.



#37 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Mon Sep 14, 2015 1:59 AM

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.



#38 Tempest OFFLINE  

Tempest

    Fallen Moderator

  • 27,124 posts
  • Location:Dark Places

Posted Mon Sep 14, 2015 7:24 AM

This is all really interesting stuff.  I wonder what we'd find if more people dug into the code of games?



#39 DZ-Jay OFFLINE  

DZ-Jay

    Quadrunner

  • 11,956 posts
  • The P-Machinery AGE is almost here!
  • Location:NC, USA

Posted Mon Sep 14, 2015 8:57 AM

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.

#40 nurmix OFFLINE  

nurmix

    Stargunner

  • 1,729 posts
  • Location:Los Angeles

Posted Mon Sep 14, 2015 10:10 AM

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

#41 Games For Your Intellivision OFFLINE  

Games For Your Intellivision

    River Patroller

  • 2,311 posts

Posted Mon Sep 14, 2015 8:52 PM

 

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!



#42 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Tue Sep 15, 2015 8:02 PM

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.



#43 freewheel OFFLINE  

freewheel

    River Patroller

  • 3,085 posts

Posted Tue Sep 15, 2015 9:55 PM

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



#44 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Tue Sep 15, 2015 10:05 PM

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.



#45 freewheel OFFLINE  

freewheel

    River Patroller

  • 3,085 posts

Posted Tue Sep 15, 2015 10:14 PM

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



#46 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Tue Sep 15, 2015 10:25 PM

 

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

 



#47 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Tue Sep 15, 2015 11:16 PM

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, Tue Sep 15, 2015 11:47 PM.


#48 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Wed Sep 16, 2015 8:47 AM

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, Wed Sep 16, 2015 8:48 AM.


#49 Lathe26 OFFLINE  

Lathe26

    River Patroller

  • 3,798 posts

Posted Wed Sep 16, 2015 9:46 AM

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.



#50 intvnut ONLINE  

intvnut

    River Patroller

  • 3,206 posts
  • Location:@R6 (top of stack)

Posted Wed Sep 16, 2015 3:58 PM

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.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users