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)
One wonders how Lotus II could be possible on a 500.
ReplyDeleteNot 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!!
DeleteMagic code.
DeleteLotus 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!
DeleteLotus 2 is a technical Marvel on the OCS Amiga, but it's no Outrun.
DeleteArcade Outrun looks 10 times as good as Lotus 2, with its 4 color cars that all look the same and its few road objects, though.
Arcade machines were expensive, with much higher specifications as home computers. It's about how well the experience was brought to a relatively cheap computer at home. Lotus II is fast, smooth, fun, who cares that it has less colors as the arcade machine? Moving goal posts to higher specification machines to convert an arcade game is not the way. Make Outrun within a Lotus II framework, or try to improve on Lotus II with the same specifications, that's impressive.
DeleteThis is incredible!
ReplyDeleteAwesome, there is also another version being developed by agermose for basic amiga AGA ... https://youtu.be/ornEFPpVn4c?si=c12Ikv6P1wmMaxf8
ReplyDeletethat'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.
ReplyDeleteYes and I'm glad this guy didn't make any of those. You would just have a long story why the game is so slow and you need to buy some accelerator to be able to play it properly.
DeleteMan! I love this and other remakes of games for the Amiga. :-)
ReplyDeleteIn 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..
ReplyDeleteIt's a good idea from you, but do you think if this guy would have made the original Amiga Outrun, would it have been better or worse ?
DeleteI don't know,believe me but i can say,for sure,that lots of arcade conversions from '80/90 on home computers were destroyed by tons of factors:the greediness of publishers(yes,US GOLD,i'm talkin to you!),the lack of support of the original code,the crazy deadlines etc...now the technology Is better known,programmers can do games for passion and not for money and can take all the time they want and there are a lot of tools to help Them in their task but maybe they are not skilled like the coders from that era...
Deleteawesome!
ReplyDeleteFIRST...THANK YOU for what looks to be a Full Screen Overscan game with no stupid Rasters and borders....all scores should FLOAT with transparency on Arcade quality games. 2nd. an Amiga 500 can certainly run Outrun...Remember an A500 ECS is slightly more powerfull than a Sega Genesis. If a Seag Genesis can do it...Amiga can better..especially with more RAM and using 64 Color EHB mode like Elfmania and Ruff N Tumble.
ReplyDeleteI would not assume it's full overscan, let's see it on a CRT or emulator window first.
DeleteThe Genesis has a different architecture as the Amiga. I took a look at a Genesis Outrun video, it seems to me it is not as smooth as Lotus II but it does seem to use more colors but not so much in the road side objects. EHB mode is out of the question, much too slow, only suitable for very slow games with little going on. You are right however the Amiga can do a better Outrun as the Genesis BUT you have to play to it's strengths use copper and sprite tricks. That's more difficult to code of course, and that's why those contemporary conversions often need very high spec Amigas, the faster the CPU, the sloppier you can be and still make it look good.
Incredible ,absolutely unbelievable. I really thought that the best possible conversion for a single 68000 powered 16 bit platform was the Outrun that was made for Sega Genesis.Which was the usual practice since Sega Consoles almost always got the best SEGA arcade conversions which was expected they were killer apps and one of the stronger selling points for Sega Consoles. Mr White seems to be "Cooking" a "breaking awesome" Outrun port .
ReplyDeleteWhat are you talking about, this port is for AGA+030 at 50hz. Not a fair comparison to a Genesis or Amiga with a 68000
DeleteIndeed ,i stand corrected. I should read thoroughly the article and googled what was the hardware of the "modest accelerator".
DeleteLol: "modest accelerator" a 030 at 50mhz
DeleteMay Inform the Indieretro News team about Turbo Outrun Reimagined https://sk1ds.itch.io/outrun-clone
ReplyDeleteIt is possible to download a demo?
ReplyDelete