@Autz yeah I know, but it looks like the black pixels are unfinished rays (they weren't traced all the way back properly or something) instead of how it's supposed to look
PS1/N64 is a stretch.
The P3D engine exists, but that's an absolute extreme case after probably over a year of R&D. Those 3D games either A: use a technique to accelerate the graphics (which leads to limits) or B: are really slow.
Because DIRECT mode is essentially just interactive-mode SmileBASIC, they have to run all the updates and processes or DIRECT inputs might not work. The BASIC env is frozen when you're in the menus though. Launching a program from the viewers might totally reset the environment, but I have no idea.
Keep in mind that this model is based on RGB channel colors. Trying to add white to anything or anything to white will just be white again. Adding red to red would just be a brighter red, or the same red. It depends. E.g. if the background is RGB 10,10,10 and the sprite is RGB 5,20,0 then the sprite will be RGB 15,30,10 with add enabled.
The #SPADD constant corresponds to a flag in the sprite attribute bits, which is the last argument to SPDEF or SPSET. By setting this flag, you set the sprite to add blending mode.
What additive blending does is adds the color values of whatever draws under the sprite to the sprite itself. To give an example, if the sprite is red and is drawn over a blue background, it would look purple.
You can use WAVSET and WAVSETA to load your own samples with PCM data, which can then be used in BEEP and MML instruments. It's a bit...bothersome, honestly.
The left-shift instruction on an ALU is a bitwise leftshift, done in SB with the << (e.g. 12 << 2), whereas the SHIFT function is like POP, but removes from the start and not the end.
Ah yes, I've always wanted to do this! But I'm just terrible at the perspective math, so I never got to it. I'd love to know how the math really works.