MIsc updates to the NTSC box
authorAlyssa Rosenzweig <alyssa@backtick.town>
Mon, 27 Jun 2016 18:47:32 +0000 (11:47 -0700)
committerAlyssa Rosenzweig <alyssa@backtick.town>
Mon, 27 Jun 2016 18:47:32 +0000 (11:47 -0700)
src/PPU/NTSCBox.tosh

index 02c1288..b798590 100644 (file)
@@ -1,41 +1,40 @@
-; "256x256 framebuffer"
+; "240x224 framebuffer"
 ; "Uses smart double buffering with a poking rendering method"
 ; "Designed for use with ScratchNES"
 
-define-atomic paint
+define-atomic evaluate pixel x: (mX) y: (mY)
+set color to (16000000 * <mX > box x and mY > box y and mX < box x + 8 and mY < box y + 8>)
+
+define-atomic fast phosphorus paint
 go to x: -128 y: 128
 set I to 1
 set Y to -1
 pen down
-repeat 256
+repeat 224
        delete all of scanline
        change Y by 1
        set X to 0
        set flag to 0
        repeat 240
-               set color to 16000000 * <X > box x and Y > box y and X < box x + box w and Y < box y + box h>
+               evaluate pixel x: X y: Y
                add color to scanline
                change X by 1
                change flag by <item I of view = color>
                change I by 1
        end
-       set x to -128
        if not flag = 240 then
+               set x to -128
                change I by -240
                set X to 1
-               repeat 60
+               repeat 120
                        set color to item X of scanline
-                       set color2 to item X+1 of scanline
-                       set color3 to item X+2 of scanline
-                       set color4 to item X+3 of scanline
+                       set color2 to item (X + 1) of scanline
                        replace item I of view with color
-                       replace item I+1 of view with color2
-                       replace item I+2 of view with color3
-                       replace item I+3 of view with color4
-                       change I by 4
-                       change X by 4
-                       set pen color to ((color * 0.25)  + (color2 * 0.25) + (color3 * 0.25) + (color4 * 0.25))
-                       change x by 4
+                       replace item I + 1 of view with color2
+                       change I by 2
+                       change X by 2
+                       set pen color to ((color + color2) * 0.5)
+                       change x by 2
                end
        end
        change y by -1
@@ -46,23 +45,22 @@ when flag clicked
 initialize framebuffer
 set box x to 128
 set box y to 64
-set box w to 64
-set box h to 64
 hide
 reset timer
 set count to 0
 show variable q
 forever
-       set box x to 128 + (64 * cos of (50 * timer))
-       paint
+       set box x to 84 + 64 * cos of (10 * count)
+       set box y to 64 + 48 * sin of (20 * count)
+       fast phosphorus paint
        change count by 1
        set q to timer / count
 end
 
 define initialize framebuffer
 delete all of view
-repeat (256 * 240)
-       add -1 to view
+repeat 240 * 224
+       add "-1" to view
 end
 pen up
 clear
This page took 0.030656 seconds and 4 git commands to generate.