Some 3DO information from back in the day.

All general 3DO chat here please.

Moderators: 3DO Experience, Devin, Bas, 3DOKid

Post Reply
johnwbyrd
3DO ZERO USER
Posts: 19
Joined: Tue Jul 27, 2010 3:00 am

Some 3DO information from back in the day.

Post by johnwbyrd » Mon May 16, 2011 10:10 pm

The moderators seem to not like buy/sell info in the main forum, so I'll temper this request with a bit of history.

I worked at 3DO for three years, from 1994 to 1997. Those were some heady times indeed. In particular, I taught a series of technical classes on site at 3DO -- it was called 3DO University. We ran courses on introductory and advanced 3DO programming, as well as classes on art and sound preparation for the 3DO platform.

I also had the great luck to be heavily exposed to all phases of the development of the M2 platform. Believe me when I say that the M2 was at least five years ahead of its time.

While the original Opera system used cels as their rendering component, cels were essentially sprites on steroids. A cel was a rectangular sprite that could be positioned arbitrarily on screen. You could morph a cel by changing the dx, dy and ddx components in the rendering list for each cel. This allowed the Opera system to produce a lot of cool 3D-ish effects; however, the texture mapping on the Opera system was not "mathematically correct" in the words of Adrian Sfarti. (I think the words were more like "matematacaly carract" when he said them.) Anyway, I think it was this property that caused games like Escape from Munger Manor (as we called it, after David Munger, a developer tech support dude) to make a certain small percentage of the population feel a little seasick after long play periods.

The M2 rendering engine -- all custom silicon -- had a rendering pipeline that would be immediately familiar to anyone doing modern 3-D graphics programming today. It understood bilinear filtering, and proper perspective-based texture mapping. It was an awesomely powerful system, and game developers at the time really didn't know what to make of it. Everyone kept asking me how to do sidescrollers with it. Recall that 3DO was still, at the time, the only game in town in terms of 3-D game systems... the Playstation was still a little ways off when M2 was being developed, and PS turned out to be nowhere near mathematically correct.

Now... if you know anyone who has a 3DO Blaster and might be willing to consider parting with it... please review my post in the Marketplace section. :)

User avatar
NikeX
3DO ZERO USER
Posts: 505
Joined: Mon Mar 12, 2007 2:38 pm
Location: Germany
Contact:

Post by NikeX » Tue May 17, 2011 5:39 pm

Hello John. I want to greet you with

anim -h apew39.csf apew39_world
anim hello.bsf hello.utf
;)

What a great surprise to have you here, in the heart of the 3DO-"movement". Although at the moment, the heart is pumping a little bit slow, but was in a state of tachycardia during the release of IMSA Racing.

The whole community is burning for sure, when it comes to M2 / 3DO development insights. We would like to know more, and you alreasy noticed the thread by MaxTheVool.
"Munger Manor" is one of the most favorite games by one of our forum members: http://3do.cdinteractive.co.uk/viewtopi ... 18&start=0
quote: 4612600 points.

I don't own a blaster, but here are people who might have an idea and could help out. Hope you stay!

User avatar
ewhac
3DO ZERO USER
Posts: 48
Joined: Mon Aug 16, 2010 4:31 am
Location: San Francisco Peninsula
Contact:

Post by ewhac » Tue May 17, 2011 7:54 pm

Hey, John. Nice to see you.

Although we used the word "sprite" when speaking to developers coming from other platforms, I never thought of the cel engine as a "sprite" engine. "Sprite" in my mind implies something that gets directly addressed by the video DMA engine. Your mouse pointer is a sprite, since it's never actually drawn to the framebuffer, but lives in it's own private region of display memory, and the video DMA engine knows its position and when to start pushing out pixels from it rather than the framebuffer.

In Opera, video DMA only accessed the framebuffer, and the cel engine drew into it.

As for "mathematically correct," Opera was mathematically correct... for linear transforms. It didn't perform perspective correction, however. but that didn't stop us from trying to render 3D anyway :-). It turns out that, for small regions, the difference between a linear mapping and a perspective-correct mapping is minimal. So if you broke up the rendering into small enough pieces, it looked good enough. There is an argument to be made as to whether we broke things up enough in Monster Manor. (We wrote the bloody thing in six months; gimme a break!)

johnwbyrd
3DO ZERO USER
Posts: 19
Joined: Tue Jul 27, 2010 3:00 am

Post by johnwbyrd » Tue May 17, 2011 8:49 pm

ewhac wrote:Although we used the word "sprite" when speaking to developers coming from other platforms, I never thought of the cel engine as a "sprite" engine. "Sprite" in my mind implies something that gets directly addressed by the video DMA engine. Your mouse pointer is a sprite, since it's never actually drawn to the framebuffer, but lives in it's own private region of display memory, and the video DMA engine knows its position and when to start pushing out pixels from it rather than the framebuffer.
I never called it a sprite engine back in the day either :) Cels were always rather their own animal. The most likely spiritual predecessor to cels was probably Sega's "super scalar" rendering engine, used in Out Run, Hang On and a few other arcade games from the late 80s. I never discovered tech information on SS but I always figured there was an Opera-style display list to frame buffer.
ewhac wrote:As for "mathematically correct," Opera was mathematically correct... for linear transforms. It didn't perform perspective correction, however. but that didn't stop us from trying to render 3D anyway :-). It turns out that, for small regions, the difference between a linear mapping and a perspective-correct mapping is minimal. So if you broke up the rendering into small enough pieces, it looked good enough. There is an argument to be made as to whether we broke things up enough in Monster Manor. (We wrote the bloody thing in six months; gimme a break!) :D :D
I suppose it was mathematically correct for linear transforms :) For 1992 technology it was an amazing essay. Very few people at this time were trying to do 3D, let alone perspective-correct textures.

You're right, Monster Manor should never have existed. And yeah, I seem to recall that you wrote most of the renderer. And Bob Vieira did the sound... So many people, at the time, were convinced that he wrote an interactive audio score, because he put in so many random sound elements... hey when you get closer to this door, the heartbeat sound gets louder! Well that was all random happenstance -- the audio was all just four minute loop tracks -- and people drew the connections in their own heads. Go Bob!

I miss you Leo. :) If you do hear about a 3DO Blaster, please let me know. It's not for my own collection. It is needed for an Honorable Purpose.

johnwbyrd
3DO ZERO USER
Posts: 19
Joined: Tue Jul 27, 2010 3:00 am

Post by johnwbyrd » Tue May 17, 2011 8:55 pm

NikeX wrote:Hello John. I want to greet you with

anim -h apew39.csf apew39_world
anim hello.bsf hello.utf
;)
LOL! I think Dan taught that class more than I did :) But I remember having to demonstrate those godawful command line tools in MPW. A lot of 3DO early developers had Apple roots, including Trip himself, and Windows was still something of a toy operating system. So all the development tools were tightly interlaced with MPW... i.e. "Make a Macintosh behave like a Unix console".

A lot of developers just tossed aside our wacky IFF based animation format and rolled their own. All the 3DO binary content formats were IFF based... probably a gift from our Electronic Arts roots. EA discovered IFF very early on and 3DO derived a lot of benefit from it.

User avatar
3DOKid
3DO ZONE ADMIN
Posts: 4683
Joined: Sat Jan 13, 2007 4:21 pm
Location: Cambridgeshire, UK
Contact:

Post by 3DOKid » Tue May 17, 2011 8:58 pm

Okay, assume for a second I squandered my Computer Science Degree on being a suited corporate lacky, and have forgot more than I learnt.

What does mathematically correct mean?

(For my benefit and the benefit of human history -- assuming this forum is backed-up.)

johnwbyrd
3DO ZERO USER
Posts: 19
Joined: Tue Jul 27, 2010 3:00 am

Post by johnwbyrd » Tue May 17, 2011 9:12 pm

LOL! It means you're an arrogant rock-star hardware and system designer with SGI roots who has been hired into a group of arrogant ex-Amiga hackers in order to design a next generation game system :)

What Adrian meant was that the Opera system did not display textures with perspective correction. Tilt a checkerboard so that you see it from the side on. The squares nearest to your eye are larger, and the squares farthest away are smaller. Calculating the location of the squares in a computer would have you keeping track of the distance from the camera at the same time you're stepping across the checkerboard (this is where 1/z, u/z and y/z come from in modern texture mapping). Opera could approximate this math but couldn't do it exactly; however, M2 (before just about anyone else) could do this exactly.

oldskool
3DO ZERO USER
Posts: 228
Joined: Tue Feb 09, 2010 6:45 pm
Location: Las Vegas

Post by oldskool » Wed May 18, 2011 4:26 am

Right on! Glad to see a few people that were involved back in the day have a discussion here on the forums. Whatever it's worth, I do want to thank you guys for what you've done.

I don't think people give the 3DO the credit that it's due. It basically set the standards for modern consoles as far as I see it. It was just a bit too much, too early. I've been gaming on the 3DO on and off since around it's release - and followed it and knew about it before it ever came out.

With the know-how that you guys have, why not whip up a nice little game for the 3DO? :D

If you are ever in Vegas let me know, we can party it up nerd style.

Sorry I don't know where a 3DO Blaster is available. :cry:
Image

acem77
3DO ZERO USER
Posts: 107
Joined: Fri Aug 03, 2007 1:39 am
Location: Ohio

Post by acem77 » Wed May 18, 2011 9:42 pm

Great info, love this type of chat.

mathematically correct-the lack of it leads to the textures warping and polygons spliting on the seems in early 3d games, right?

I thought the psx did this to save on cost and keep the frame rate up?

Doskias
3DO ZERO USER
Posts: 50
Joined: Fri Aug 17, 2007 2:21 am
Location: Indianapolis, IN

Post by Doskias » Wed May 18, 2011 11:35 pm

Omg Johnwbyrd keep talking about 3DO development and M2! You just made my year!

johnwbyrd
3DO ZERO USER
Posts: 19
Joined: Tue Jul 27, 2010 3:00 am

Post by johnwbyrd » Thu May 19, 2011 12:27 am

acem77 wrote:Great info, love this type of chat.

mathematically correct-the lack of it leads to the textures warping and polygons spliting on the seems in early 3d games, right?

I thought the psx did this to save on cost and keep the frame rate up?
PS1 definitely didn't do this. PS2 did. Practically speaking, you typically use a hardware Z-buffer in order to implement perspective correction on textures.

User avatar
Mobius
3DO ZERO USER
Posts: 625
Joined: Wed Jan 17, 2007 8:10 pm
Location: Chicago, IL
Contact:

Post by Mobius » Sat Jun 11, 2011 1:34 am

I have toyed with some 3DO homebrew and have been very impressed with the cel engine. It's very powerful, but easy to work with.

This might be a long shot, but you wouldn't have access to any of the old training materials you used to teach the 3DO University classes, would you? I would LOVE to "learn from the pros," so to speak. In particular, I'm no 3D programmer, so the lack of 3D documentation/examples in the SDKs has been a bummer.

JR
3DO ZERO USER
Posts: 2
Joined: Sat Jun 11, 2011 4:53 pm

Post by JR » Sat Jun 11, 2011 4:59 pm

With a number of people on this board who know how Opera works internally, perhaps someone can answer a question that has eluded me for years...(!):

The documentation for the 3DO Opera hardware (including the FAQ) show that there are two "Graphics animation processors" connected to the DMA engine over a 32bit bus.

My question is:

What are these *two* processors?

Are they identical? Is one a CEL engine (or are both)? Is one the Projector and the other the VDLP? How do the two processors interact with each other?

Thanks!

JR

JR
3DO ZERO USER
Posts: 2
Joined: Sat Jun 11, 2011 4:53 pm

Post by JR » Fri Jun 17, 2011 10:33 pm

To answer my own question, based on reading the 3DO patents, it would appear that the 3DO hardware comprised of two identical cel engines. These presumably both contain the Projector and Pixel Processor components and operate in parallel.

There is a third Video Processor that is performs the CLUT expansion of 16bit -> 24bit colour, as well as the interpolation between 320x240 -> 640x480 screen. It can also do CLUT modification on a per scanline basis.

All in all, a pretty powerful system and one that was almost certainly untapped. In many ways it appears to be a next generation Amiga; the cel engines are basically advanced blitters, while the video processor can do similar things to the Copper.

Post Reply