OutRun Arcade - A vastly superior version of a classic racer could be coming to an Amiga near you via Reassembler

In 1986 Sega released one of the greatest racers of our time, it just had to be Out Run. An Arcade racer designed by Yu Suzuki, that was not only a commercial success, but became one of the best selling games of its time. A game that featured incredible graphics, fantastic music and fast paced track racing. Thankfully other people remember this Arcade classic, as we've recently found out via Per-Ola Eriksson, that reassembler is working on a vastly superior version of Outrun for the Commodore Amiga. A version of the game which he hopes to put right "one of the nastiest Amiga arcade ports".

Here is what reassembler said in Jan of this year prior to the latest footage provided from today. "In terms of tools and references, I used:

  • - VSCode Amiga Assembly (what an awesome project!)
  • - Bare Metal Amiga Programming
  • - The Amiga Hardware Reference Manual
  • - Mountains of Python scripts to translate data structures and remap things for speed optimization.

"This was enough to get me going. From my previous CannonBall project and work on arcade hardware, I have the entire OutRun codebase decompiled and documented".

HOW HARD COULD THIS BE?

"Pretty hard! I made the decision to target AGA with a modest accelerator (TerribleFire 1230). Mostly because this is the hardware I have sat in front of me. And let's face facts - if this is to be an arcade port of sorts, rather than a rewrite or my own interpretation of OutRun, it's not going to run on the A500".

"Anyway, I started by porting the road code and simulating the custom road hardware. This may not sound particularly fascinating, and perhaps it isn't that sexy. But in reality, the entirety of the OutRun engine is based around the road hardware and corresponding code working correctly".

"For those not familiar with Sega's hardware, it's 2 x 68000 processors clocked at 10Mhz and a Z80 to drive audio. There are a significant number of custom graphics chips, which really do all of the heavy lifting, and represent the most significant translation challenge. To give you an idea, I tried a naive yet optimized port of the MAME road rendering code to 68K and it took about 8 vblanks to render a single frame on an accelerated 030! HAH! And that was without any game code running".

For the road rendering, OutRun dedicates an entire 68000 processor, plus custom road rendering hardware - pretty advanced for its day! In fact, even the master 68000 also gets involved in controlling the road width, applying height maps, the road split at the end of the level and beyond. So there are two 68Ks chipping away at this thing.

"Obviously this is one reason OutRun is/was the boss of 2D racers. Flexible road widths, dynamic road palette, roads splitting into lanes, undulating landscapes. The road, well roads, as it can render two are important. As far as possible I've tried to keep the original 68K code intact for now. It's a line by line port. The main changes have been to the data structures (palettes, the road rom and various other madness) in a vague attempt to marry it with Amiga hardware expectations and my frankenstein Amiga code".

"After rewriting the entire road hardware layer about 7 times - and I really mean that - I landed on a solution pairing the Copper and Blitter with some ingenuity. This is mostly OutRun ingenuity, as opposed to anything revolutionary for the Amiga. My Amiga programming is probably bad. One thing I'm particularly excited about is I managed to streamline the entire road priority system, which is a beast... handled on a per-pixel basis on MAME, where every single road pixel is cross referenced against a priority table and compared with the 'other road' to determine which pixels should be shown... to a single minterm blit per plane and a complete rework of how a road is represented in memory".

"Just to be clear: I'm not sure how far I'll get with this project. It's a tough cookie. I've poured a lot of energy into the basics and it's been a great and somewhat painful learning experience!".

And that's all we know so far, but for further developments visit the link (HERE)


10 comments:

  1. One wonders how Lotus II could be possible on a 500.

    ReplyDelete
    Replies
    1. Not only "lotus2" but even "Crazy Cars 3" and "out run europe"....and of course the excellent ports of the original Out Run for mega drive and pc-engine!!

      Delete
    2. Magic code.

      Delete
    3. Lotus 2 uses a fixed road width and prescaled sprites, both of which are much less computationally expensive than the variable-width road and realtime scaled sprites. used in arcade Out Run. Lotus 2 is still impressive for the hardware though!

      Delete
  2. This is incredible!

    ReplyDelete
  3. Awesome, there is also another version being developed by agermose for basic amiga AGA ... https://youtu.be/ornEFPpVn4c?si=c12Ikv6P1wmMaxf8

    ReplyDelete
  4. that's cool but a lil 'cheaty' since the original port was created for a far less powerful Amiga than a 'AGA with accelerator'. The A500 had many fun racing games like the Lotus series.

    ReplyDelete
  5. Man! I love this and other remakes of games for the Amiga. :-)

    ReplyDelete
  6. In my opinioni he can try ti re-use the program routines of "Out Run Europa" a good racing game playable (and great to llook and hear) even on and Atari st-f with only 512kb of RAM from 1985....Imagine what can you do doubling RAM and colours and using the blitter and hw scrolling..

    ReplyDelete

All comments are moderated! Constructive criticism allowed, but abusive comments will be removed and you will be IP banned! Banned users will not show up in my comment feed, you will be gone for good as will all of your posts! - Play nice and enjoy IndieRetroNews!