Z80, 6502, 65816, 68000, MIPS, x86, ARM7, PS2 VU, and probably more I'm forgetting.
I still love C and assembly. Not fond of needing 30 GB RAM and a 10 core CPU for things we did 20 years ago on a 68000 just because of a Java VM...
SNES mode 7 ftw:
PS2 was probably my favorite system to program on. I wrote a partial OpenGL miniport fully utilizing chained DMA, VIF/GIF, and VU1 for transforms. Keeping everything running concurrently and avoiding dependency stalls and the 64 bit dual scalar/vector instruction pair architecture of the VU was just fun as hell. I spent days in color coded Excel cells pipelining the hell out of my VU transform loop around the 7 cycle scalar perspective divide.
When you start out just getting a screen space triangle on the screen sending things directly to GIF, then completely redo the code to send untransformed data to VIF instead, and have a VU program transform, clip, and perspective divide in pipelined VU code and build a GIF packet in VU RAM and xgkick it and get the same triangle on your screen for that very first time, it's orgasm inducing.
Then there was that 4-5 parallax layer demo I did on NES using MMC3 1k CHR ROM bankswitching and scanline IRQ counters.
Heres the zipped ROM in .nes format. Will run on any NES emulator or on real hardware with a flash cart like a Powerpak that properly implements MMC3.