SaaSHub helps you find the best software and product alternatives Learn more →
Top 8 C++ demoscene Projects
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
BezierCurveDemo1997
Utah Teapot and Mystify Screensaver, 16-Bit DOS, Personal Project 1997 https://files.scene.org/view/mirrors/hornet/code/tutors/math/azr_bcrv.zip
I had a deeper look at 4klang, it looks like it's not really taking care of sound output, it's "only" creating the sounds and filling a buffer (I might be wrong, that level of assembly is soooooo over my head. still damn interesting to read, tho)
Gopher also made 64klang, and in the examples here they're using mmsystem to push samples to the soundcard, so I'd be inclined to think that's a pretty good way to do it (if not the best way)
Now they just need to port something like oneKpaq to 16 bit or maybe something from the extremely tiny decompressor thread [1], just to test compression level to get an idea kpaq on its quickest setting(taking minutes instead of what could be days on its highest) reduced SectorC to 82.81% of its size, of course adding the 128 bit stub knocked it to 677 bytes. It would be interesting to try it on the slowest takes day to bruteforce setting, but I'm not going to attempt that.
Some of the compressors in that forum thread since they are 32 bytes and such, might find it easier to get net gains.
[0] https://github.com/temisu/oneKpaq
[1] https://encode.su/threads/3387-(Extremely)-tiny-decompressor...
As someone who has written math libraries over and over again for the last 25 years (no joke - wrote this in 1997: https://github.com/bhouston/BezierCurveDemo1997/blob/master/... and just recently wrote the Threeify math library: https://github.com/bhouston/threeify/tree/master/packages/ma...), I find that operator overloading works only for the simple cases but that for performance and clarify, function names work best.
Function names let you clarify that it is an outside product or inside product (e.g. there are often different types of adds, multiplies, divides), and I can not stand when someone maps cross product onto ^ or dot product onto something else. Also operator overloading often doesn't make clear memory management, rather it replies on making new objects constantly, where as with function names, you can pass in a parameter that will take the result. Lastly, function names allow you to pass in how to handle various conditions, like non-invertible, NANs, etc.
I find word based function more verbose but significant less error prone and also they are more performant. Operator overloading is only good for very simple code and even then people always push it too far so that I can not understand it.
C++ demoscene related posts
-
help packing sound in <4k
-
PicoGUS – ISA Card Emulation on the Raspberry Pi Pico's RP2040 Microcontroller
-
PicoGUS: Emulation of the Gravis Ultrasound ISA Card on a Raspberry Pi Pico
-
Pcmcia Pico W Card
-
Show HN: Micro LZMA decoder (x86 assembly code golf)
-
Is there an audio equivalent of SVG?
-
For all programmers in this sub: You MUST read "Game Engine Architecture“ by Jason Gregory
-
A note from our sponsor - SaaSHub
www.saashub.com | 2 May 2024
Index
What are some of the best open-source demoscene projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | Bonzomatic | 1,331 |
2 | rocket | 351 |
3 | 4klang | 272 |
4 | 64klang | 252 |
5 | oneKpaq | 38 |
6 | retro-book-gardens | 21 |
7 | ShaderPiPFX | 9 |
8 | BezierCurveDemo1997 | 4 |
Sponsored