Atari 3D graphics
My #DecemberAdventure Log
1-Dec
Started with something simple today. Create some curve stitching in Atari Basic.
2-Dec
My first attempt at a cube using fixed point arithmetic in CC65 (no floating point package)
I'm taking the task of implement a basic IEEE754 float library in cc65.
3-Dec
Nothing. (Depeche Mode concert)
4-Dec
Keeping up with cube and fp stuff, getting better. some weird vertex drawing
5-Dec
This is probably the slowest rotating cube in history. Wrote a BASIC implementation to debug the rotation. Some shearing is happening
6-7 Dec
Realized I don't know how to multiply matrices, fixed the formula in the original c code.
8-Dec
Implemented a nice little routine to clear the screen. now use the wam routines to speed up the drawing
9-10 December.
Implementing fast pixel routines. for some reason multiplying by 40 is not working
11 -Dec
Implemented putpixel and line in c, as base to troubleshoot. not too much difference in performance.
11 -13 Dec
so much going on that I could not update. Adapting the putpixel routine to 2 bytes included a lot of debugging. I have a set pixel directly to video memory.
Dealing with the arithmetic was tricky. ended up rewriting the y*40 routine.
14-15 Dec
Next step was to write the line in assembler. found a couple of routines already made here:
https://forums.atariage.com/topic/231690-known-fast-line-algorithms/
tried to port and integrate dr Sid implementation (in thread). moving from mad assembler to cc65 was not too bad. but not sure about the macros.
So mostly works, however , resolution and x coordinates are off. Rightmost triamgle should be in the middle
And it worked !
Next step : double buffer.
Compare with the BASIC implementation speed
16-17 Dec
Trying to make page flipping work with mode 8
it seems display list requires more work to cross a 4k border. So I have buffer and a half.
18-19 Dec
Gap issue fixed and double buffer working, still had to move around some memory align manually.