Wednesday, November 11, 2009

Look Both Ways!

One interesting aspect of disassembling games you're fond of, is that you might uncover hidden code that was unused in the final build. This can give an insight into some of the features that were planned that didn't make the final cut, either because of time, technical problems or maybe they simply didn't prove fun during playtesting.

Lately I've been disassembling the traffic handling code, and in doing so I stumbled upon an interesting memory address that controlled a block of code related to spawning traffic. I was unable to figure out exactly what it did from the code and couldn't find any references where the address was written to. So I fired up the MAME debugger and wrote to the memory address manually so that the block of code would always execute.

In Outrun, all traffic drives into the horizon before disappearing. To my surprise, setting this flag caused the traffic to drive away from the horizon in the opposite direction towards the player's Ferrari. I imagine that the original idea was to have two-way traffic. The fact that Outrun's hardware supports two separate road layers means that the final effect could have been quite impressive with independent flows of traffic on each road!

As it is, the code is clearly unfinished, and no graphics exist for traffic travelling in the opposite direction. But it demonstrates what the development team originally planned. It certainly would have been impressive back in 1986 if they'd pulled it off. 

You can see for yourself in the MAME debugger by changing the address with: b@60b6b = 1 once the game has booted.


The Mind of a Programmer said...

Any chance JSNES will be released as open source?


yt said...

JSnes was never finished, and the source code needs a lot of tidying and cleaning. So it's unlikely.

I provided it to a couple of people who said they were interested, but I'm presuming they realised how much was missing and gave up.

It would be far easier for someone to port Snes9x to Java if the end goal is a working Snes emulator for Java.

JSnes was ultimately more of a learning experience, rather than a serious attempt as a Snes9x/ZSnes beater.

The Mind of a Programmer said...

I'm interested in continuing it, as long as it becomes open source, a java snes emulator has potential.

yt said...

Sure - let me know your e-mail and I'll mail it to you.

It needs a lot of work though. It's very rough around the edges.

The Mind of a Programmer said...

haza55 (at]