Conversation

Jarkko Sakkinen

I still regret selling my Gravis Ultrasound MAX. I might buy one of these some day. It is amazing achievement. Before GUS Amiga sounded so much better than any of the Sound Blaster crap hardware with its 8-bit DACs. GUS was a game changer in the 90s. https://www.tindie.com/products/kdehl/gravis-ultrasound-gus-pnp-replica/
1
0
1
@vbabka What can I say, I was young and really stupid :-)
0
0
1

Jarkko Sakkinen

Edited 1 year ago
@suihkulokki And not having that weak and distorted sound that Sound Blaster provided and my friends with Amiga's were picking on me :-) Still remember watching DOPE for the first time with proper sound (also demonstrated on that page): https://www.youtube.com/watch?v=HtXxM0pezAs
2
0
1
@suihkulokki BTW, Jugi's track never gets old... What a great tune.
0
0
0

Jarkko Sakkinen

Edited 1 year ago
@suihkulokki

"with PHONG shading no less, metal shading, phong env mapping" -from one comment.

Tbh, all phong shading was just the standard environment mapping trick (you precalculate the light to 2D texture) that everyone was using during that time but still impressive work. I know this for a fact because I've talked to some members of the group (complex is from my birth town).

There's one trick that not that many knew at that time, and also one of the first ways I learned how you can do *data* cache optimization for profit. Before Pentium, all the focus was mostly on instruction pipeline.

When you have a 2D texture of pow2 size, you partition it into 8x8 tiles with one byte per pixel (VGA was 320x200 8-bit framebuffer), i.e. do this sort of precalculation step instead of directly interpolating the original texture. This on average takes away a lot of cache misses even tho adds a bit of complexity to the inner loop. 8x8 tile is a great fit for Pentium cache lines.

On instruction cache you of course similarly make your inner loop fit nicely to the cache line and order instruction dependencies so that the dependencies between opcodes are minimal and you get maximal throughput out of the CPU.

Pentium sort of started the era of memory optimization. Now most if not all optimization of code is a caching exercise...
1
0
2
@suihkulokki To add, Pentium had two instruction pipelines that you wanted to keep busy so ordering opcodes correctly was super important, and compilers were not that great giving the best results, so all had to be done in hand-written assembly.
0
0
1