commit 0d6f81570b5309251dfcfbeeba7a1c1295a7bf0d
parent d9aa276b133d7979a2bfaf8cdd38080d58eacc0a
Author: neauoire <aliceffekt@gmail.com>
Date: Sat, 20 Mar 2021 11:37:01 -0700
Added extra keyboard controls to Noodle
Diffstat:
8 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/build.sh b/build.sh
@@ -20,5 +20,5 @@ cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werr
# cc uxn.c emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -o bin/emulator
# run
-./bin/assembler projects/software/nasu.usm bin/boot.rom
+./bin/assembler projects/software/noodle.usm bin/boot.rom
./bin/emulator bin/boot.rom
diff --git a/projects/bigpicture3f2c.bit b/projects/bigpicture3f2c.bit
Binary files differ.
diff --git a/projects/font.bit b/projects/fonts/font.bit
Binary files differ.
diff --git a/projects/picture2a1a.bit b/projects/picture2a1a.bit
Binary files differ.
diff --git a/projects/picture2010.bit b/projects/pictures/akane2010.bit
Binary files differ.
diff --git a/projects/pictures/logo0808.bit b/projects/pictures/logo0808.bit
Binary files differ.
diff --git a/projects/pictures/tima2a1a.bit b/projects/pictures/tima2a1a.bit
Binary files differ.
diff --git a/projects/software/noodle.usm b/projects/software/noodle.usm
@@ -6,6 +6,8 @@
arrows - move zoom
space - toogle zoom
backspace - blank canvas
+ m - toggle mirror mode
+ 1-8 - select brush size
TODO
- Only draw-canvas when mouse has changed
@@ -14,6 +16,7 @@
- Limit size
- Draw point inbetween
- Pixel cleanup brush
+ - Drag canvas content
BUGS
- If canvas is higher than 0, mouse picking fails
)
@@ -29,7 +32,7 @@
;center { x 2 y 2 }
;toolbar { x1 2 y1 2 x2 2 y2 2 }
-;cursor { x 2 y 2 x0 2 y0 2 size 1 patt 1 drag 1 }
+;cursor { x 2 y 2 x0 2 y0 2 size 1 patt 1 drag 1 mirror 1 }
;zoom { active 1 x 2 y 2 }
;rect { x1 2 y1 2 x2 2 y2 2 }
;origin { x1 2 y1 2 x2 2 y2 2 }
@@ -121,7 +124,13 @@ BRK
( in canvas )
,$no-touch-canvas ~Mouse.x CLN2r ~canvas.x1 GTH2 STH2r ~canvas.x2 LTH2 #0101 NEQ2 JMP2?
,$no-touch-canvas ~Mouse.y CLN2r ~canvas.y1 GTH2 STH2r ~canvas.y2 LTH2 #0101 NEQ2 JMP2?
+
~Mouse.x ~canvas.x1 SUB2 ~Mouse.y ~canvas.y1 SUB2 ,paint JSR2
+
+ ,$no-mirror-mode ~cursor.mirror #00 EQU JMP2?
+ ~Mouse.x ~canvas.x1 SUB2 ~canvas.w 8* SWP2 SUB2 ~Mouse.y ~canvas.y1 SUB2 ,paint JSR2
+ $no-mirror-mode
+
$no-touch-canvas
( background interface )
@@ -166,7 +175,13 @@ BRK
( toggle zoom ) ~zoom.active #00 EQU =zoom.active ,redraw JSR2 $no-space
DUP #08 NEQ ,$no-backspace ROT JMP2?
( erase ) ,clear JSR2 $no-backspace
+ DUP #6d NEQ ,$no-mkey ROT JMP2?
+ ( mirror ) ~cursor.mirror #00 EQU =cursor.mirror $no-mkey
+ DUP
+ DUP #30 GTH SWP #39 LTH #0101 NEQ2 ,$no-numkey ROT JMP2?
+ ( size ) ~Keys #31 SUB =cursor.size ,draw-toolbar JSR2 $no-numkey
POP
+
( release ) #00 =Keys
$no-keys
@@ -437,6 +452,12 @@ RTN
( draw new cursor )
,$outside-canvas ~Mouse.x CLN2r ~canvas.x1 GTH2 STH2r ~canvas.x2 LTH2 #0101 NEQ2 JMP2?
,$outside-canvas ~Mouse.y CLN2r ~canvas.y1 GTH2 STH2r ~canvas.y2 LTH2 #0101 NEQ2 JMP2?
+ ( do not draw size in toolbar )
+ ,$outside-canvas
+ ~Mouse.x CLN2r ~toolbar.x1 GTH2 STH2r ~toolbar.x2 LTH2 #0101 EQU2
+ ~Mouse.y CLN2r ~toolbar.y1 GTH2 STH2r ~toolbar.y2 LTH2 #0101 EQU2
+ #0101 EQU2 JMP2?
+ ( do not draw size when holding alt )
,$outside-canvas ~Controller #02 EQU JMP2?
~cursor.x #0003 SUB2 =Sprite.x
~cursor.y #0003 SUB2 =Sprite.y
@@ -613,7 +634,7 @@ RTN
@save_icn [ fe82 8282 848a f400 ]
@blank_icn [ 0000 0000 0000 0000 ]
-@filepath [ projects/picture2a1a.bit 00 ]
+@filepath [ projects/pictures/tima2a1a.bit 00 ]
@font_hex ( 0-F )
[
@@ -641,4 +662,4 @@ RTN
|FF60 ;File { pad 8 name 2 length 2 load 2 save 2 }
|FFF0 .RESET .FRAME .ERROR ( vectors )
-|FFF8 [ d0ef d03f d03f ] ( palette )
-\ No newline at end of file
+|FFF8 [ f07c f0e2 f0c2 ] ( palette )
+\ No newline at end of file