5

The arcade game MagMax by Nichibutsu came out in 1985 and features for its time an impressive 3D scrolling effect which, in my observation, is not widely discussed yet, although it should be noteworthy.

There are plenty of videos online if you want to have a quick lock.

It reminds me of the "Mode 7" of the Super Nintendo which came out many years later.

However, I could not find any information about the graphics chip/controller or if any special hardware is used in that arcade machine.

So I'm wondering if rather standard arcade hardware for that time is used and that effect is achieved by clever programming using raster interrupts or the like, or if a similar/predecessor/same chip as in the SNES is used.

7
  • 1
    It's a crude but good enough display hack in which a static background is drawn with perspective and each scanline of the background is scrolled at a different rate to give a parallax effect. This is a fairly standard sort of beam-chasing trick which the Amiga's copper made easy in 1985, and was probably quite doable on the earlier 8 bit Ataris which had similar display hardware.
    – pndc
    Sep 7 at 20:21
  • 2
    The youtube video "CODING SECRETS: How Toy Story's "Next-Gen" 3D Depth Effect Was Created" explains this technique with visual aids. While that game was done on the Sega Megadrive/Genesis the requirements are much lower. As @pndc says you really only need some sort of static background layer along with the ability to update that layer's scroll value on each scanline.
    – David
    Sep 7 at 20:39
  • There are even C64 games that do this in an albeit chunkier manner, for example Plekthora: youtube.com/watch?v=4zQDyaXHRKg
    – Alan B
    Sep 8 at 9:01
  • On Amiga this effect was called "parallax scrolling"
    – ufok
    Sep 9 at 7:20
  • usually and typically it seems parallax scrolling can be done with only a few layers (2-3), hence i thought this might be an entirely different thing
    – scrollbear
    Sep 13 at 19:58
3

https://github.com/mamedev/mame/blob/master/src/mame/drivers/magmax.cpp

A quick look through that file shows a hardware capable of both a tile background and Sprite foreground.

static const gfx_layout charlayout =
{
    8, 8,   // 8*8 characters
    256,    // 256 characters
    4,  // 4 bits per pixel
    { 0, 1, 2, 3 },
    { 4, 0, 12, 8, 20, 16, 28, 24 },
    { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 },
    32*8
};

static const gfx_layout spritelayout =
{
    16, 16, // 16*16 characters
    512,    // 512 characters
    4,  // 4 bits per pixel
    { 0, 1, 2, 3 },
    { 4, 0, 4+512*64*8, 0+512*64*8, 12, 8, 12+512*64*8, 8+512*64*8,
        20, 16, 20+512*64*8, 16+512*64*8, 28, 24, 28+512*64*8,         24+512*64*8 },
        { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32,
            8*32, 9*32, 10*32, 11*32, 12*32, 13*32, 14*32, 15*32 },
        64*8
};

Has a 68K for main game CPU and a Z80 as the sound CPU able to drive three AY sound chips.

Sure looks to me like it's programming. Not some esoteric arcade Hardware.

4
  • What is this code? Magic numbers everywhere and no explanation? It looks like some of the legacy stuff I've "inherited" at work
    – OmarL
    Sep 9 at 11:24
  • 1
  • @OmarL explanations are found elsewhere in the Mame project. Emulations require givens. Definitions of things, hardware memory maps, types, etc... The file this code chunk came from describes the system at a basic level, and that is the source of the magic numbers.
    – Spud
    Sep 10 at 3:00
  • 1
    ah thanks, of course, haven't thought about that when i was looking for this information, as the saying in the industry often goes, "the documentation is the code", and that means MAME in cases like this.
    – scrollbear
    Sep 13 at 20:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.