Could Dreamcast et al handle this/that game/effect? *DC tech retrospective *spawn

Well there were some resolution dc supported if you messed with the way it did it sync signals and probably write directly to framebuffer. I remember a coder even created some 75,120,240 hz mode. If they were useful I am guessing people would have used them otherwise Its probably just a gimmick to say look my monitor says the Dreamcast is doing 1440x900.
Resolutions they hacked out of the dc:
Not a total gimmick, but still not that useful. Stuff like the 800x600x60hz isn't actually displaying a 800x600 framebuffer, but a 540x600 frame buffer.

The rate at which the DC's RAMDAC outputs pixels has exactly two speeds, one for interlaced NTSC/PAL/RGB, and one for 640x480x60hz VGA. So you can't make it output pixels faster for higher resolutions, but you can trade horizontal resolution for vertical resolution while keeping refresh rate the same, and you can trade refresh rate for total resolution. I've done 800x600x50hz and 1024x768x43hz, with full size framebuffers. Only one monitor I had, my smaller CRT, supported that last one.

You can also trade the other way, and reduce resolution for higher refresh rate. When I was adding VGA support to KoF, at one point I had the registers wrong, and used VGA pixel clock with a mix of VGA and NTSC pixel timings. The end result was KoF running double speed at 120 FPS (the reason the display is stretched vertically in the link is because of the mix of VGA and NTSC, it's fixable). Both 640x240x120hz and 320x480x120hz work; the first one has scanlines while the second one doesn't, at the cost of horizontal blurriness. Theoretically 320x240x240hz would work, but I don't have a display that supports it.

The official drivers for the DC never supported any resolution besides 640x480, 320x480, 640x240, and 320x240. The Sega's video initialization function takes bitmask to select the display mode, and one bit controls horizontal res, and another bit control vertical res. Earlier versions of the driver only support 640x480 on VGA; it wasn't until later in the DC's life that Sega added support for lower resolutions on VGA, which is why early low res games lacked VGA support.

The only "normal" alternate display modes the DC can do well (besides halving horizontal and/or vertical res) are 640x350x70hz and 640x400x70hz, which would be handy for stuff like ScummVM. It can't actually get the sync polarity right on those, but that hasn't really been a problem on my displays.
 
Surfing the source code for the regta 3 I found this line.

RwCameraSetFarClipPlane(Scene.camera, 2000.0f); // 250.0f on PS2 but who cares

So right now if I understandi it correctly, the DC version since it is based on the PC decompilation is running 8x distant clipping compared to the ps2 version. lol.
Also, even if they do reduce the distance, the levels still draw more polys considering the water towers, fire escapes, fences, etc added to the pc/xbox versions. Unless frogbull completes his remodeling endeavor.
 
Also, even if they do reduce the distance, the levels still draw more polys considering the water towers, fire escapes, fences, etc added to the pc/xbox versions. Unless frogbull completes his remodeling endeavor.

It can draw 100x more polys than the PS2 version, it still looks overall worse looking due to the lack of lighting and shading.

Enabling that alone will likely require a draw distance reduction to help with performance.
 
Apparently you can mod and patch the PS2 version.

Patch things in such as widescreen support and force higher output resolution.

The FPS boost is interesting, seems it just removes the 30fps cap rather than actual optimisation, but it appears that PS2 can go quite a way over 30fps.

 
Um, what happened to my post on 480i/p? Try again!

Thinking about it, at 30fps there's no difference between 480i and 480p. You render the same 640x480 pixels in 1/30th of a frame and present it to the screen. 480p only affects render target size for games that are 480p60. A 60 fps game at 480i60 is rendering half as much as that game rendering at 480p. So for any 30 fps games on PS2, there can't even be a 640x240 render buffer.

If we want to get technical, you could render two tiles, 640x240 for the top half, 640x240 for the bottom half, and combine for final output.
 
Last edited:
Reading the comments, it's a cap removal, so in some scenes capped at 30 fps it can run faster but scenes that drop it below that will still be below that. For comparing to DC we'd need to ignore the 30 fps cap and only look at framerates that come in below that. Internal render resolution is the same when patched.

I don't think this drastically changes anything, although >30 fps at 448 lines means an internal FB of 640x448 and not interlaced 640x224.
 
So...what happened with huge triangles on DC? How was a full screen quad binned and rendered? Or put that another way, how many tiles was a 640x480 framebuffer divided into and drawn, and how many triangles could occupy a tile?
I've talked about that previously.

Relevant bit:
In order to not have to run through the entire display list for each tile, each tile gets an extendable array of pointers to what is potentially visible in that tile. Determining exactly what tiles something covers would require rasterizing it, which was way too expensive back then, so the GPU just calculates its screen space bounding box and adds pointers to every tile the box touches.

The GPU works mainly on triangle strips (it also supports individual quads, but does not support fans). You can send a strip of any size, but they are broken down into substrips of either 1, 2, 4, or 6 triangles. The bounding box is calculated and pointers are written for each substrip. A long 5,000 poly triangle strip snaking across the entire screen will not have pointers to the entire strip written to the entire screen, but just the substrips and their bounding boxes.

Since it takes time to write the pointers to memory, a strip that covers a large area will take more time to write out then a strip that covers a small area. A triangle that doesn't cross tile boundaries only needs one pointer written, while the full screen 640x480 quad needs (640x480)/(32x32)=300 pointers written out, so there's a big difference in processing time.

Tiles are 32x32 pixels, so 640x480 would be 300 tiles. Horizontal antialiasing compresses each tile down to 16x32, and doubles the tile count. The number of polygons per tile is limited by available RAM, there's no hard limit otherwise.
 
Funfact: Technology powering the Dreamcast btw still lives on to this very day: it powers gaming devices and the revenue far surpasses even PlayStation and Xbox combined:


Apple used PowerVR before, and now it licensed PowerVR technology to incorporate for their own GPUs.

So in a way, Dreamcast ‘survived’ the Graphic Synthesizer :)
 
TBDR is also used on mobile generally (exclusively??) so the rendering principles live on across billions of devices.
 
Omg the Dreamcast had a Half Life port
Yes! As it is a leaked non finished product has lotta issues, but even like that is totally playable. In fact, back in Dec 03, Jan 04 this is how i played for the first time in my life Half Life and also completed it and then Blue Shift. Controls weren´t a big issue issue back in the day and neither constant load times and some framerate issues. Loved every second and i´m grateful with my DC for bringing me that amazing game, even by non official ways.
 
Yes! As it is a leaked non finished product has lotta issues, but even like that is totally playable. In fact, back in Dec 03, Jan 04 this is how i played for the first time in my life Half Life and also completed it and then Blue Shift. Controls weren´t a big issue issue back in the day and neither constant load times and some framerate issues. Loved every second and i´m grateful with my DC for bringing me that amazing game, even by non official ways.
Plus, coders are fixing the textures and even replacing models with ps2 models. The resolution is higher on DC by default as well. The fps and loading are getting fixed too. Gotta love fanboy propaganda, lol
 
Back
Top