Comment by rasz

Comment by rasz 7 months ago

2 replies

Bleem didnt need 233MHz Pentium to emulate 33MHz MIPS CPU, it needed it for the geometry (rotation, scaling). GTE 90-300K triangles per second is a LOT LOT. Geometry was the bottleneck of PC games in mid nineties. For example contemporary Quake was heavily optimized to operate on as little geometry as possible (BSP), rendering up to ~1000 triangles per second while only ever touching up to maybe 10K? triangles (I dont want to research this down to instrumenting quake code/looking at map data, Google results suggest PVS leaves are as small as hundreds of triangles) in active Potentially Visible Sets (PVS) at any given time. Playstation 1 on the other hand DGAF and could rotate/scale/light whole levels on every frame with raw power of GTE.

MMX was meant for anything you would normally use traditional DSP (also fixed point). Intel envisioned software modems and audio processing, in reality it was criminally underused and fell into 'too much effort for little gain' hole. Intels big marketing win was paying Ubi Soft cool $1mil for POD "Designed for MMX" ad right no the box https://www.mobygames.com/game/644/pod/cover/group-3790/cove... while game implements _one optional audio filter_ using MMX. Microsoft also didnt like Intel's Native Signal Processing (NSP) initiative and killed it https://www.theregister.com/1998/11/11/microsoft_said_drop_n...

MP3 - you could decode on Pentium ~100 so why bother, MPEG Pentium ~150 will play it flawlessly as long as graphic card can scale it in hardware. I would love to see the speed difference decoding MPEG with ffmpeg between Pentium 166 with and without MMX. Contemporary study shows up to 2x speedup in critical sections of image processing algorithms but only marginal gains for mp3/mpeg cases https://www.cs.cmu.edu/~barbic/cs-740/mmx_project.html

>drop the emulation CPU usage to a halt

Playstation 1 doesnt support MPEG.

Now could you implement GTE with MMX? Certainly yes, but again why bother when already 166-233MHz CPU is enough to accomplish same thing with integer unit alone.

anthk 7 months ago

Didn't the PSX use MPEG for videos? They were tons of these ingame...

Also, PAL resolutions for instance were a bit like SVGA, but the PSX did most of games at 320x240, as scaling them on fuzzy CRT's gave them almost a free antialiasing. 320x240 was easier to render on couch/bed TV's far away than Unreal or Quake 2 based games at 640x480.

The PSX pushed tons of triangles? At 320x240 on my 14" Nokia TV, they could look astounding, not so much on a PC desktop having to be rendered into a better quality CRT for PC's where 320x240 would look so-so.

  • rasz 7 months ago

    Some PSX games did push a lot of triangles to the screen, but its not even about that. GTE is able to brute force process a LOT of geometry per frame. https://psx-spx.consoledev.net/geometrytransformationengineg... Think of GTE as T&L coprocessor, even wiki uses it as an example of early hardware T&L https://en.wikipedia.org/wiki/Transform,_clipping,_and_light...

    This is why Pentium 100 could not pull of Playstation 1 games with just accelerated rasterizer like 3Dfx. Multiplying matrices is expensive, you either get specialized hardware to do it or hire Carmack and Abrash to use every trick in the book avoiding as much computation as possible. Lowering resolution does nothing, still have to cull, rotate scale, perspective correct and light same amount of geometry per frame.