poll:outrun for msx2

Page 10/13
3 | 4 | 5 | 6 | 7 | 8 | 9 | | 11 | 12 | 13

By smx

Resident (48)

smx's picture

29-07-2019, 08:49

This is my test Test.dsk.

Only 1 row at the moment, but I hope to complete it with 7 rows and curves.

I use 6 pages. Only colors change via vdp.
It's partial basic and partial asm. Change last basic row to increase speed.

By Metalion

Paragon (1444)

Metalion's picture

04-08-2019, 10:23

Over the last few days, I've written a basic ASM polygon engine, using the VDP LINE command.
I've figured that you need no more than 64 polygons drawn on screen to render the road.

It's fast enough if you draw only the "wires" (it can be done within a frame). But the problem is painting the polygons so they look solid. The fastest way to paint them is to use again the LINE command, but even when optimized (I'm only updating 2 registers between each line), it's not fast enough.

My last measurement is 7 frames to draw and fill 7 polygons (ranging from small - upper side of the road - to large - lower side of the road). So unless there's an even faster way to fill the polygons, it won't be fast enough to render the road at a decent fps.

Damned ... These CPC Vespertino guys have upset me.

How do they render a 25 fps road, apparently with a dedicated 3D engine, and we seem not able to do it on a machine that has a graphic co-processor ?

By GhostwriterP

Hero (619)

GhostwriterP's picture

04-08-2019, 10:34

HMMV maybe?

By Grauw

Ascended (10066)

Grauw's picture

08-08-2019, 23:00

The Vespertino guys don’t use real 3D as-in polygon drawing. They use the tried-and-true pseudo-3D road rendering technique described earlier in this thread, and used by games such as Out Run and F1 Spirit 3D Special for MSX. Of course there is still 3D maths involved, choosing the right lines to render and dealing with curves and hills and such, also sprite placement and scaling. They’ve called this engine of theirs “3D CRTC-FX”, or “3D Effects for the Cathode Ray Tube Controller” (CRTC is the CPC’s VDP), which also alludes to its pseudo-3D-ness.

p.s. As you found, using LINE for 3D polygons is too slow unless you want wireframe. The fastest way to paint solid polygons is using the scan line algorithm with either CPU VRAM access or HMMV VDP commands. See this thread if you’re interested.

By mohai

Paladin (932)

mohai's picture

05-08-2019, 12:26


On pseudo 3D games there are more to compare than just Hyper Rally or direct ZX-ports.. ie:
This one is with hills... even loops, but no "real" side objects.
Smooth animation, but weird roadside distance and only small side objects.
Really cool road routine, side objects done with 1-color sprites.
SpeedKing deserves special mention, because it is only of these games that I've really played a lot.. No side objects

Hello. Just a couple of ideas:
I think coaster race or TZR are good approaches, but everything in those games is too fast and blocky.

I think the best approach is the way Speed King or Hang on do the road. I think it is the way Out Run does too. Try the arcade and try to go slow. You will notice that the engine is very similar.

The road limits at the sides are done with small "objects" (lines, or whatever), so what is shown on screen are lines that make the side limits of the road.
The road (almost always) has the same shape and size.
The engine controls every horizontal line, so every object pair can be freely moved to the left or to the right, so "drawing" curves.
Depending on the kind of curve, move the first lines more to one side and the last lines less.
If the engine needs to show a ramp down or a ramp up, it just simply draws some lines in a higher or lower position. That means that higher lines will draw over the horizon or lower lines will draw over the higher ones, so it looks like the road stretches up or down.
The objects outside the road such as trees, stones, buildings, etc, can be done using patterns moving in a blocky style.
If they are wisely drawn and you go fast, you will not notice the "blockyness".

By Grauw

Ascended (10066)

Grauw's picture

08-08-2019, 23:23

So I’ve been looking at some of Sega’s Master System racers…


Hang-On MSX: Smooth animation, but weird roadside distance and only small side objects.

Hang-On shows what it was supposed to look like. What a difference. Fast and buttery smooth. Surely programmed the traditional way with a series of scroll register splits.

Talking about tile based engines earlier, Out Run Europe is exactly that. Quite impressive, the road’s not smooth but gameplay is quick and the road-side decoration is extensive.

And the regular Out Run is a blend of horizontal scroll for curves and tiles for hills; the inclination changes in steps rather than smoothly and is built out of 8 pixel high bars.

Out Run Europe clearly needs the tiles for the environment, but Out Run looks rather barren so why didn’t they go for the smoother Hang-On engine? I bet it’s because Out Run has hills, and the SMS VDP vertical scroll affects sprites the same way the V9938 does, rendering them unusable with splits.

On MSX2+ I think one could do both Hang-On and the Out Run “blend” approach (I think F1 Spirit 3D does). And as for MSX1, I don’t think I see anything in Out Run Europe that can’t be done on TMS9918, so that definitely seems feasible. Could even try to port it to MSX, just replacing the tile graphics.

By santiontanon

Paragon (1486)

santiontanon's picture

09-08-2019, 00:44

I was thinking the same about Out Run Europe, that's clearly a tile-based engine. So, the same exact thing should be doable on an MSX1, except for the color limitations, of course

By PingPong

Prophet (3766)

PingPong's picture

03-09-2019, 20:59

look at this: the author say it run on old TMS hw not F18A

By PingPong

Prophet (3766)

PingPong's picture

04-09-2019, 13:01

No one seen this? considering that work on a plain TMS 9918 i think it's a big achievement.
Very Smooth and fast.

Page 10/13
3 | 4 | 5 | 6 | 7 | 8 | 9 | | 11 | 12 | 13