Devine Lu Linvega
c39d656b52
Added support for multi-byte keyboard input
2024-02-14 15:20:41 -08:00
Sigrid Solveig Haflínudóttir
3fa01a63d8
screen: fix an UB
2024-02-14 16:28:50 +00:00
Devine Lu Linvega
6128c79b18
Fixed issue with EOF
2024-01-13 16:50:05 -08:00
Devine Lu Linvega
7bf469dca2
(file) Clamp length for stat
2024-01-04 19:03:08 -08:00
Devine Lu Linvega
2878639cd7
(file) Expand stat port to show longer file length than a short
2024-01-04 17:20:50 -08:00
Devine Lu Linvega
6712c3eeb9
(file) atomic result for stating
2024-01-04 16:42:47 -08:00
Devine Lu Linvega
69ddbdf0c3
(file) Do not stat twice
2024-01-04 14:26:21 -08:00
Devine Lu Linvega
9ca712237b
(file) put_line use put_info
2024-01-04 11:28:21 -08:00
Devine Lu Linvega
1f622ff541
(file) Can File/stat with only 4 bytes of length
2024-01-04 10:58:57 -08:00
Devine Lu Linvega
29823e5bd1
(file) Removed PEEK2 macros
2024-01-04 09:44:46 -08:00
Devine Lu Linvega
22af2ba9c3
(screen) Cache the content of the auto byte
2024-01-03 09:19:09 -08:00
Devine Lu Linvega
011662e1dd
(screen) cache elements of the auto byte
2024-01-03 09:05:16 -08:00
Devine Lu Linvega
163d48ec34
Removed extra variable
2024-01-03 08:44:31 -08:00
Devine Lu Linvega
6ba21f8470
(screen) Cache temp values
2024-01-03 08:30:36 -08:00
Devine Lu Linvega
1796eb938f
Removed unused variable
2024-01-02 20:24:42 -08:00
Devine Lu Linvega
02f7add4ac
Housekeeping
2024-01-02 19:20:16 -08:00
Devine Lu Linvega
78526d56e3
Make uxn instance public
2024-01-02 11:54:12 -08:00
Devine Lu Linvega
8c212fed3e
Housekeeping
2024-01-02 11:29:02 -08:00
Devine Lu Linvega
a4f4eb7460
Minor optimization in system
2024-01-02 09:55:52 -08:00
neauoire
3f252c0ee3
Fixed crash from missing dev page
2023-12-25 14:39:29 -08:00
Bad Diode
7ec95315ce
Fix audio device regression
2023-12-20 09:20:22 +01:00
neauoire
b952a2417b
(screen) Fixed issue with blending modes
2023-12-18 17:47:24 -08:00
neauoire
a62fce6316
Faster screen drawing routines
2023-12-18 14:44:36 -08:00
neauoire
e016461263
(screen) Fixed pixel fill bug
2023-11-18 10:56:34 -08:00
neauoire
86c46be310
(Screen) Removed unused variable
2023-11-12 17:05:46 -08:00
neauoire
efd70d34be
(Screen) Pass addr to sprite
2023-11-12 17:01:16 -08:00
neauoire
f744a95a70
(Screen) Cached row only written when visible
2023-11-12 16:54:19 -08:00
neauoire
94f314280c
(Screen) Cache row during sprite drawing
2023-11-12 16:46:44 -08:00
neauoire
d6a966e113
(Screen) Faster sprite drawing
2023-11-12 12:38:43 -08:00
neauoire
99c492d385
Store instance device in Uxn itself
2023-11-11 20:57:28 -08:00
neauoire
0d055306a8
(screen) Added fill() function
2023-11-11 20:44:15 -08:00
neauoire
dd1f3e0725
Housekeeping
2023-11-11 20:32:52 -08:00
neauoire
f9de13652c
Redraw on resize
2023-11-09 14:45:51 -08:00
neauoire
d0a521745a
(mouse.tal) Improved implementation
2023-11-09 14:01:11 -08:00
neauoire
6bdb6ca168
Optimized core
2023-11-09 13:46:10 -08:00
Capital
76732db18a
(uxnasm.c) Add check for missing output file
2023-11-04 19:04:08 -07:00
Bad Diode
798ebafdc8
Fix potential out of bounds when doing tuning lookup
2023-11-02 17:30:14 -07:00
~d6
6a091365a2
Take pitch into account when computing duration.
2023-11-02 17:30:14 -07:00
~d6
dbf1c72f21
Detect duration for note_off as well as note_on.
2023-11-02 17:30:14 -07:00
neauoire
87d6798593
Formatting
2023-11-02 17:30:14 -07:00
neauoire
c4ec4a6340
(audio.c) Default duration is sample length
2023-11-02 17:30:14 -07:00
Bad Diode
c26c27a730
Add dei ports 0x2 and 0x4 to audio devices
2023-11-02 17:30:14 -07:00
Bad Diode
9c8ae94825
Change sdl audio to not play until the first pitch is sent
2023-11-02 17:30:14 -07:00
Bad Diode
1d7c96dd3d
Update default envelope
2023-11-02 17:30:14 -07:00
Bad Diode
8f3d7b9020
Add minimum decay/release of 10ms
2023-11-02 17:30:14 -07:00
Bad Diode
d1c156d56c
Fix uxncli missing device pointer
2023-11-02 17:30:14 -07:00
Bad Diode
e1074c9018
Increase base volume 4x (1 channel max -12dB)
2023-11-02 17:30:14 -07:00
Bad Diode
0f3b070313
Try to avoid audio callback from working after free
2023-11-02 17:30:14 -07:00
Bad Diode
2c3f9f0f47
Fix wrong freeing of memory
2023-11-02 17:30:14 -07:00
Bad Diode
56c500f25e
Restore sample stretching behaviour
2023-11-02 17:30:14 -07:00
Bad Diode
6569c9d749
Add per-cent tuning and change note-off to #00
2023-11-02 17:30:14 -07:00
Bad Diode
b2e67c0319
Make sure device memory is freed
2023-11-02 17:30:14 -07:00
Bad Diode
e6cf770d2e
Fix memory bug and restore previous looping behaviour
2023-11-02 17:30:14 -07:00
Bad Diode
4b64ced669
Restore audio port layout and use 0x5 for duration
2023-11-02 17:30:14 -07:00
Bad Diode
9d1013d3bf
Make sure ADSR uses the audiobuf macros
2023-11-02 17:30:14 -07:00
Bad Diode
c6713b6d1b
Reduce the detuning/pitch table for now
2023-11-02 17:30:14 -07:00
Bad Diode
88ba7a8623
Cleanup warnings
2023-11-02 17:30:14 -07:00
Bad Diode
32853ce8f7
Fix xfading issues
2023-11-02 17:30:14 -07:00
Bad Diode
9437c4e520
Add sample duration handling
2023-11-02 17:30:14 -07:00
Bad Diode
49eda85851
Add initial WIP sample player for new audio device
2023-11-02 17:30:14 -07:00
neauoire
632816a58e
(uxn.c) Housekeeping
2023-11-01 20:37:46 -07:00
neauoire
d28f4f8165
(uxn.c) Simpler switch argument
2023-11-01 19:14:31 -07:00
neauoire
5c79d2813a
(uxn.c) Wrap zero-page
2023-11-01 09:54:57 -07:00
neauoire
be438b40c6
(uxn.c) Ram wrapping for LDZ
2023-11-01 09:35:38 -07:00
neauoire
7dfcd2b579
(uxn.c) Wrap RAM on LDA/STA
2023-11-01 09:25:39 -07:00
neauoire
8e976310d3
Improved cli stack debugger
2023-10-31 11:24:00 -07:00
neauoire
81a3dbee5e
Better on-screen stack debugging
2023-10-31 11:17:33 -07:00
neauoire
8b2d16ffea
(uxn.c) Reconnected tnl core without device masks
2023-10-30 15:12:25 -07:00
neauoire
3d9408e605
(uxn.c) Removed useless mask
2023-10-30 14:22:19 -07:00
neauoire
b35bded3e4
(uxn.c) Reconnected old abc core
2023-10-30 14:14:02 -07:00
neauoire
d167b88996
(uxncli) Zeroing Uxn
2023-10-30 11:24:04 -07:00
Remko Tronçon
0189721956
(uxn.c) Fix pointer wrapping issues
2023-10-30 11:13:46 -07:00
neauoire
f1f1babd47
(uxn.c) Removed used of stack pointer for circular arithmetic
2023-10-30 09:29:40 -07:00
neauoire
85d22bbb90
(uxnasm) Date
2023-10-27 08:43:48 -07:00
Remko Tronçon
cff5746e03
(uxnasm.c) Support outputting to stdout using `-`
2023-10-27 08:42:41 -07:00
neauoire
187f92d31d
(console.write.tal) Added output example to /error port
2023-10-26 11:29:49 -07:00
neauoire
413f3a82f8
Fixed warnings
2023-10-25 15:25:32 -07:00
neauoire
5babd72e6a
Clear screen on debugger toggle
2023-10-25 15:23:56 -07:00
neauoire
d97fa9e8b8
Added F12 to toggle borderless
2023-10-25 14:16:23 -07:00
neauoire
7cc77a47f4
Formatted
2023-10-25 11:24:37 -04:00
Leonora Tindall
b57554a098
(uxnemu) add fullscreen mode and improve argument handling
2023-10-25 11:23:27 -04:00
Sigrid Solveig Haflínudóttir
f8c7e44ea1
console: add a newline at eof
2023-09-21 17:13:17 +00:00
neauoire
5d39dcdbdc
(uxncli) Send zero byte and EOF on stdin
2023-09-05 16:34:49 -07:00
neauoire
a323cb5c56
(screen.c)Fixed redraw issue
2023-09-02 18:34:04 -07:00
neauoire
fb892e4329
Uxn can no longer error
2023-09-02 13:51:03 -07:00
neauoire
a65c1cb9a8
Removed LINK req in uxncli
2023-09-01 15:15:15 -07:00
neauoire
cfd29ac511
(uxnemu.c) Cache audio values before POKE2
2023-08-30 12:12:30 -07:00
neauoire
3b526bbed6
(screen.c) Always cache value before PEEK/POKE
2023-08-30 12:06:04 -07:00
neauoire
f4caad2d51
(uxn.h) Removed unused macro
2023-08-30 11:46:00 -07:00
neauoire
107a25295b
(mouse.c) Do not use POKE2 macro
2023-08-30 11:25:15 -07:00
neauoire
1adb6a8cf0
(uxn.c) Do no check for underflow for push-only opcodes
2023-08-30 11:09:46 -07:00
neauoire
55aae6fee9
(uxn.c) Always cache address before PEEK2
2023-08-30 10:49:00 -07:00
neauoire
e35501976c
(uxn.c) Standardized setter macros
2023-08-30 10:40:04 -07:00
neauoire
e5617f83c9
Removed redundant macros
2023-08-30 10:16:38 -07:00
neauoire
aeb38c0819
(uxn.c) Cache intermediary result in POKE2 usage
2023-08-30 09:52:47 -07:00
neauoire
07dc45c0e7
(uxn.c) Faster stack registers
2023-08-30 09:40:45 -07:00
neauoire
d974111939
(uxn.c) Catch underflow with JCI
2023-08-30 09:24:09 -07:00
neauoire
c9183a02e5
(uxn.c) Only one writing macro per line
2023-08-29 10:48:19 -07:00
neauoire
7992d54115
(uxn.c) Removed needless masking of opcode lookup
2023-08-29 09:41:00 -07:00
neauoire
a18f8697f0
(uxn.c) Removed unnecessary negation
2023-08-25 13:05:45 -07:00
neauoire
1b1c9fc710
Make emu_masks globals
2023-08-25 09:38:03 -07:00
neauoire
d3081fd93d
Zero ram on reboot
2023-08-19 07:58:44 -07:00
neauoire
15d09cf15b
Added stack pointer accessors to system device
2023-08-19 07:34:14 -07:00
neauoire
c6a628e6ae
Pre-process dei/deo masks
2023-08-17 09:25:24 -07:00
neauoire
5a77c3e1e3
Removed unused ports from system deo mask
2023-08-16 20:46:24 -07:00
neauoire
63d5dd681a
Tightened screen debugger redraw
2023-08-16 14:33:45 -07:00
neauoire
d3371d1f73
Muted warnings
2023-08-16 13:53:31 -07:00
neauoire
13bd3ce2d8
Made debugger private to screen
2023-08-16 13:46:07 -07:00
neauoire
cfe02013fd
Inlined system_cmd
2023-08-15 19:23:55 -07:00
neauoire
d8532e7c0e
system_load() is now private
2023-08-15 19:21:06 -07:00
neauoire
b737dfca85
Combined all system reboots
2023-08-15 19:19:06 -07:00
neauoire
bd8b2026b8
Keep boot rom path in system
2023-08-15 18:53:51 -07:00
neauoire
ddd3a46156
Standardized main() in uxncli and uxnemu
2023-08-15 18:47:34 -07:00
neauoire
b66d3f2612
Abstracted emu_end()
2023-08-15 18:44:16 -07:00
neauoire
4d7ce3e893
Made a console_listen function
2023-08-15 16:24:40 -07:00
neauoire
8d4074b372
Removed console queue from emu_start
2023-08-15 16:11:21 -07:00
neauoire
c0d45d1440
Try loading rom during system init
2023-08-15 16:06:29 -07:00
neauoire
9a7a11003f
System device handles boot
2023-08-15 15:59:32 -07:00
neauoire
a77434a671
Reset device page on soft reboot
2023-08-13 21:11:18 -07:00
neauoire
de7b24e820
Added soft reboot
2023-08-13 18:48:32 -07:00
neauoire
a394dcb999
Updated date
2023-08-10 08:50:14 -07:00
neauoire
c7884b625f
Fixed issue where redraw region always started at 0
2023-08-10 08:47:34 -07:00
neauoire
015072fea4
(uxn.c) Removed offset in PUT()
2023-08-09 19:43:28 -07:00
neauoire
18302105c6
(uxn.c) PUT2 should not use POKE
2023-08-09 19:38:18 -07:00
neauoire
b610a88083
(uxn.c) Faster SET() macro
2023-08-09 19:31:33 -07:00
neauoire
23203381a7
(uxn.c) Aligned macros
2023-08-09 16:18:35 -07:00
neauoire
1bd67977fb
(uxn.c) Added missing labels
2023-08-09 16:11:38 -07:00
neauoire
837b839b4c
(uxn.c) Using tnl core
2023-08-09 13:20:03 -07:00
neauoire
e90c716cdc
Merged POP2 calls
2023-08-08 20:00:27 -07:00
neauoire
5675d8e65d
(uxn.c) Merged PUSH calls
2023-08-08 19:53:23 -07:00
neauoire
b523162cf8
(uxn.c) Joined POP22 PUSH22
2023-08-08 19:38:09 -07:00
neauoire
52fac7c52b
Faster Pushxx
2023-08-08 17:23:18 -07:00
neauoire
901f76ed52
Merged POPxPOPx and PUSHxPUSHx
2023-08-08 17:13:39 -07:00
neauoire
a11660f57d
(uxnasm.c) Fixed issue with lambda
2023-08-08 16:46:35 -07:00
neauoire
d15b2367f3
(uxnasm.c) Added comma after date
2023-08-08 16:39:33 -07:00
neauoire
c26de05efa
Added version to uxnasm
2023-08-08 16:35:35 -07:00
neauoire
2e25f6c27e
Added version flag to uxnemu
2023-08-08 15:56:40 -07:00
neauoire
9c25f801d0
Print system versions for uxncli with -v flag
2023-08-08 15:31:48 -07:00
neauoire
2e1b56018b
Added per-device versions
2023-08-08 14:44:17 -07:00
neauoire
97d299261f
Setting up stage to add versioning
2023-08-08 14:13:07 -07:00
neauoire
13570f790d
(screen.c) Hide stack debugger when empty
2023-08-08 10:39:11 -07:00
neauoire
7090ab72b9
Returned the on-screen debugger
2023-08-08 10:27:41 -07:00
neauoire
27ff275cea
Merge branch 'main' of git.sr.ht:~rabbits/uxn
2023-08-08 09:23:49 -07:00
neauoire
a1d2bfbbb0
Removed DEI/DEO from uxn-tnl core
2023-08-08 09:23:11 -07:00
Sigrid Solveig Haflínudóttir
9888dcba03
DEVR: use bitwise OR to avoid C compiler (kencc) promoting types to int and doing other weird stuff
2023-08-08 04:22:10 +02:00
Sigrid Solveig Haflínudóttir
a87ececb71
remove SDL_RENDERER_TARGETTEXTURE (unused)
2023-08-08 02:49:02 +02:00
neauoire
fda12df0f1
Housekeeping
2023-08-07 16:35:34 -07:00
neauoire
c68936b475
(uxn.c) Renamed POP/PUSH to POPx/PUSHx
2023-08-07 16:22:57 -07:00
neauoire
fcf12a12dc
(uxn.c) Connected to device masks
2023-08-07 16:12:12 -07:00
neauoire
6d7696a760
(uxn.c) Reconnected old core
2023-08-07 12:20:50 -07:00
neauoire
222246748e
(screen.c) Inlined sprite drawing function
2023-08-05 10:31:22 -07:00
neauoire
789fb0cd8b
(screen.c) Faster sprite drawing
2023-08-05 09:59:08 -07:00
neauoire
b4d7818632
Added auto byte sprite flipping
2023-08-04 11:55:17 -07:00
Derek Stevens
ffc604fba3
run: set window title from rom
...
Signed-off-by: Derek Stevens <nilix@nilfm.cc>
2023-08-04 11:47:37 -07:00
neauoire
2ddc20b1b6
(uxnasm) Generalized lambdas as common labels
2023-08-02 19:48:48 -07:00
Cellmaker
9ca8e9623d
added microtonality to the audio device
2023-07-30 15:03:34 -07:00
Devine Lu Linvega
3a8cc42e0e
Better labels for lambdas
2023-07-29 16:24:39 -07:00
Devine Lu Linvega
32cc690539
(uxnasm) Lambdas support
2023-07-29 16:14:19 -07:00
Devine Lu Linvega
0efea06b46
Only update viewport rect on resize
2023-07-26 08:37:58 -07:00
Devine Lu Linvega
289d13aeb4
Returned emulator border
2023-07-25 21:43:26 -07:00
Devine Lu Linvega
12509b7e6b
Merged show() and gameloop()
2023-07-25 14:56:26 -07:00
Devine Lu Linvega
db2117ee0a
Resize emulator on start
2023-07-25 14:46:37 -07:00
Devine Lu Linvega
4286e0ba53
Grouped emulator routines together in uxnemu
2023-07-25 14:42:10 -07:00
Devine Lu Linvega
969f03e0ba
Uxnemu skips resizing window until reset vector is done.
2023-07-25 14:30:51 -07:00
Devine Lu Linvega
dcb434760b
Housekeeping
2023-07-24 09:48:49 -07:00
Devine Lu Linvega
26bc456a1b
(screen.c) Blending 00 only clears in accordance to sprite at addr
2023-07-23 19:32:41 -07:00
Devine Lu Linvega
867883409e
Emulator functions prefixed with emu_ instead of uxn_
2023-07-23 19:18:11 -07:00
Devine Lu Linvega
ec973c2ea6
Only set emu size on screen resize, no constant checks
2023-07-23 16:24:09 -07:00
Devine Lu Linvega
29e664c6b8
Do not re-set window size when unchanged
2023-07-23 16:10:48 -07:00
Devine Lu Linvega
4db53c1cc6
(uxn.c) Housekeeping
2023-07-23 11:06:21 -07:00
Devine Lu Linvega
cb41bdfa9a
(uxn.c) Removed PUSH/PUSH2 macros
2023-07-23 10:13:16 -07:00
Devine Lu Linvega
bf1ee0298d
(uxn.c) Fixed issue where JSRr was pushing to wrong stack
2023-07-23 09:57:32 -07:00
Devine Lu Linvega
db6f7d9fbf
(uxn.c) Aligned BRK/JCI/JMI
2023-07-23 09:52:20 -07:00
Devine Lu Linvega
bc4ec9ea5f
(uxn.c) JSI makes use of SET() macro
2023-07-23 09:41:11 -07:00
Devine Lu Linvega
6f15a96d91
(uxn.c) LIT opcodes use SET() macro
2023-07-23 09:36:18 -07:00
Devine Lu Linvega
b020732d6d
(uxn.c) PUT2 should use POKE2 macro
2023-07-23 09:21:09 -07:00
Devine Lu Linvega
41a3a6b358
(uxn) Removed z stack assignment
2023-07-22 20:53:23 -07:00
Devine Lu Linvega
92e06e2eda
Removed window padding
2023-07-22 19:52:17 -07:00
Sigrid Solveig Haflínudóttir
0c9e67b9be
uxncli: stop on EOF as there is nothing left to run (besides endless loop)
2023-07-17 00:52:52 +02:00
Sigrid Solveig Haflínudóttir
51d43a6989
screen: don't leak memory and don't crash if failed to adjust for new screen size
2023-07-17 00:50:19 +02:00
Sigrid Solveig Haflínudóttir
dbcb8ed050
retry_realpath: check before possibly writing out of bounds
2023-07-10 17:21:36 +00:00
Sigrid Solveig Haflínudóttir
784467564c
uxnemu: fix two warnings on 9front build
2023-07-10 15:37:42 +00:00
Sigrid Solveig Haflínudóttir
05356e23b1
capture_screen: check for errors
2023-07-10 15:35:35 +00:00
Devine Lu Linvega
ff6d9e39ca
(uxnemu) Fixes issue where non-zero console/type occurs even when empty, fixed by hikari_no_yume
2023-06-29 14:23:16 -07:00
Weeble
f5c816d215
(screen.c) Fix sprite draw at screen edge
...
Problem - Sprites can be drawn at X/Y coordinates >= 0xfff9 to appear
partially over the left/upper screen boundary. But the dirty-rectangle
calculation doesn't account for this, so these updates will only appear
on the screen if something *else* dirties this area of the screen. This
can be observed in /projects/examples/devices/screen.tal where these
edges of the screen show stale content.
Solution - Detect wrapping and expand the dirty rectangle appropriately.
Change screen_change to take Uint16 to make sure values are truncated to
the intended range. Ignore changes that are fully off the screen.
2023-06-29 07:41:42 -07:00
Devine Lu Linvega
e930804c4b
Do not print message on quit
2023-06-09 09:29:25 -07:00
Devine Lu Linvega
fe10cfecef
Improved usage standard message
2023-06-08 09:47:18 -07:00
neauoire
5dd7fec729
Removed clear between redraws and moved to set_window_size
2023-06-07 08:23:42 -07:00
neauoire
e147b46b55
Snake_cased some SDL variables
2023-06-07 08:03:28 -07:00
Devine Lu Linvega
1d4ae74e41
Removed multiplication from SET macro in uxn core
2023-05-17 20:39:03 -07:00
Sevan Janiyan
305b8469b0
Use the correct definition to obtain snprintf(3)
...
At some point snprintf(3) prototype became guarded off in stdio.h.
Defining _C99_SOURCE makes it visible.
On legacy Darwin, such a guard was not present so the definition
has no impact on the build, but on "modern" macos it has the desired
effect.
Build tested on OS X 10.4 and macos 10.15.
2023-05-15 08:32:48 -07:00
Sevan Janiyan
b5b3177c68
Switch to using SDL_CreateRGBSurface() SDL_CreateRGBSurfaceWithFormat() was introduced in SDL 2.0.5 whereas SDL_CreateRGBSurface() is available since SDL 2.0. This allows uxn to run on legacy systems where it's not possible to reach SDL 2.0.5 but prior versions are, such as Mac OS X Tiger.
2023-05-14 19:34:55 -07:00
Sevan Janiyan
822a7fea54
Use the audio format native to host AUDIO_S16 defaults to little endian format which causes issues when running on big endian systems. Use AUDIO_S16SYS instead which sets to whatever endian the system uxn is being built on is.
2023-05-14 19:34:55 -07:00
~d6
310ba97ef6
Improve screen vector timing somewhat.
...
This patch tries to improve the accuracy of our
screen refresh timing. Notably, it tries to ensure
we don't introduce extra delay in our timing based
on how long the screen vector takes to evaluate.
We also try to ensure we only call SDL_Delay when
we have at least 1ms to wait.
2023-05-09 13:12:23 -07:00
Devine Lu Linvega
09d9990a62
(screen) Fixes warnings
2023-05-04 20:45:52 -07:00
Devine Lu Linvega
77edd1dbbf
(screen) Renamed pixels attr to layer
2023-05-04 20:32:44 -07:00
Devine Lu Linvega
d80885ee22
(screen) Housekeeping
2023-05-04 20:17:38 -07:00
Devine Lu Linvega
98bd2a7849
(screen) Use uxn_screen global
2023-05-04 17:43:44 -07:00
Devine Lu Linvega
9416a0e813
Removed layer struct
2023-05-04 11:33:31 -07:00
Devine Lu Linvega
8f98281d89
(screen) Only repaint changed pixels
2023-05-04 11:15:16 -07:00