Just released my first ever demoscene demo at Revision 2026 in the Wild-Compo:
A tech demo for Casio fx-9860G graphical calculators!

Sourcecode: https://github.com/Manawyrm/Casiomania

Details: https://kittenlabs.de/casiomania/

https://youtu.be/aLiuF9k3Xt4?t=31

#revision2026

GitHub - Manawyrm/Casiomania: Demo for Casio fx-9860G graphical calculators (audio, grayscale, 3d rendering)

Demo for Casio fx-9860G graphical calculators (audio, grayscale, 3d rendering) - Manawyrm/Casiomania

GitHub
@manawyrm So that was what that repo was for!
I don't have an fx-9860 (/derivative), and it seems to depend on the T6K11 drvier's functions so I can't test directly, but that just looks (and sounds!) awesome

@lda No idea what happens without a t6k11 (I mostly only use it for the initial snow and contrast setting).

Give it a shot on a different calculator with SH-4 if you've got one :)
(no promises, though :D)

@manawyrm hm, after removing basically all calls to t6k11-related functions (and with build-fxg3a), it still failed

looks like it's caused by the audio thread using DMA channel 0 (channel 0 and 1 are reserved for gint tasks on the fx-CG50, 0 IIRC is for sending VRAM over and 1 is... something? I honestly forgot why it was used)
I think you'd also need to mess with the C0MID address used as it's hardcoded (I'd say my branch of gint defines fields for that, but the forge it's on is getting hammered by AI scrappers, sorry!)

Still doesn't seem to get past the introduction sequence, so I assume there's something wrong with the DMA code still...

@manawyrm UPDATE: turns out the hang was because I used the wrong DMARS selector (I geninuely forgot each DMARS field held 2 RIDs!)

It now works (mostly) fine on fx-CG50/G90+E (except for audio playback speed, but that could likely be fixed by using a better value for the SCIF's SCBRR/computr it on the fly)

@lda hell yes ๐Ÿ˜ป๐Ÿ˜ป
@manawyrm I saw that on the stream earlier and greatly enjoyed it, thank you.
@manawyrm
Amazing! How do you like the party so far?
@manawyrm one of the best demos this year :D i loved it
@manawyrm oh nice, that's exactly the calculator that got me through secondary school! should try it out sometime.
@manawyrm ๐Ÿ’–๐Ÿ˜ต
@manawyrm This is awesome, and I love that the demo scene is still a thing (I had no idea).
@manawyrm i just got to watch it, and I'm blown away. That's a LOT of demo for a little calculator
@manawyrm awesome piece of code!
@manawyrm glad to see that there are still people pumping out wonders on these calculators.
@manawyrm so music is doable on the serial port? I haven't looked at the source (well I stopped after recognizing the fxsdk's structure) but I suppose it's something you did through timers, isn't it? Also, DMA? How so? Are you mixing on CPU and just pushing the data through serial with the DMA?

@Ronflaix no timers (those are used for grayscale!) but DMA yes.

Every time the DMA finishes sending bits, it triggers an interrupt which will then generate a new PCM buffer and also convert that into the PWM bitstream.

No mixing at all, just single stream, but you could totally mix if you wanted too.

@manawyrm ooh, I didn't know you could wire an interrupt this way, neat! I'm really piss poor at optimizing for SH4 (the pipeline timings wring my brain like nobody's business) but hearing about it kinda makes me wanting for more haha
@manawyrm that's pretty good nonetheless! Can we say you made a port audio system (pun intended)? :D
@manawyrm by the way, can I ask you how much such a audio subsystem takes on the CPU? It's for a friend's project!
@Ronflaix I didnโ€˜t even optimize at all basically, itโ€˜s all written in C (altough I had to be a bit careful in certain places like those interrupt routines)