Commit Graph

270 Commits

Author SHA1 Message Date
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 c68936b475 (uxn.c) Renamed POP/PUSH to POPx/PUSHx 2023-08-07 16:22:57 -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
Cellmaker 9ca8e9623d added microtonality to the audio device 2023-07-30 15:03:34 -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
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
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
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
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
Devine Lu Linvega 83ba7e05ea Added mock behavior for the friend port 2023-05-02 10:31:33 -07:00
Matus Laslofi d2e054346f Declare snprintf to fix builds on macOS
For some reason on macOS, the functions `snprintf` and `vsnprintf` are
not in the X/Open 5 (ANSI C89) standard but rather in the X/Open
6 (ISO C99). A simplest solution seems to be to declaring the missing
functions before using them, which is what I did here. Another option
is to use the C99 standard with `#define _XOPEN_SOURCE 600`, which
seems to be an overkill for such a niche issue.

Quoting from the STANDARDS section in `man 3 snprintf` on macOS:

> ...the snprintf() and vsnprintf() functions conform to ISO/IEC
> 9899:1999 (“ISO C99”)...
2023-05-01 09:27:49 -07:00
Devine Lu Linvega 0da70d6bd1 Allow tiny sizes for the screen 2023-04-26 12:01:45 -07:00
Devine Lu Linvega 3038d5c40b (console) Use 0x00 for no-queue 2023-04-17 11:27:54 -07:00
Devine Lu Linvega 98282cb1a6 Moved error printing to system.c 2023-04-17 11:03:11 -07:00
Devine Lu Linvega 9a882a64c7 (uxnemu) Write arguments end in console device 2023-04-17 10:41:03 -07:00
Devine Lu Linvega fbba9b304d (console) Implemented 0x17 port with stream type based on design by zzo38 2023-04-16 21:13:50 -07:00
Devine Lu Linvega 25cc4a1329 (screen.tal) Improved screen testing rom 2023-04-14 19:51:05 -07:00
Devine Lu Linvega 99874908e4 (screen.c) Skip blit when color is 0 2023-04-14 10:19:57 -07:00
Devine Lu Linvega 0f75b123a4 (screen) sprite address wrapping 2023-04-14 10:05:15 -07:00
Devine Lu Linvega 04554dd1d3 (screen.c) Reduced number of variables indirections 2023-04-14 09:51:50 -07:00
Devine Lu Linvega b6e6839d25 (screen.c) Removed pixel function 2023-04-13 21:57:17 -07:00
Devine Lu Linvega d0db4f9223 (screen.c) Improved readability of the code 2023-04-13 21:33:16 -07:00
Devine Lu Linvega 891204610a Fixed issue with screen/fill layer 2023-04-13 09:58:09 -07:00
Devine Lu Linvega 2acc7edb6f Added comment for blending LUT 2023-04-13 09:53:05 -07:00
Devine Lu Linvega d043ce633d (screen.c) Faster drawing of pixel 2023-04-13 09:42:59 -07:00
Devine Lu Linvega a44dbd9696 (screen.c) Merge all checks 2023-04-12 20:00:17 -07:00
Devine Lu Linvega 8aae16a9d0 (screen) Removed clamp function 2023-04-12 19:20:11 -07:00
Devine Lu Linvega 540847694e Removed screen_wipe 2023-04-12 14:35:48 -07:00
Devine Lu Linvega be138f5952 Removed FIXED_SIZE flag 2023-04-12 12:22:17 -07:00
Devine Lu Linvega 11e9b635c8 Removed mono mode to screen 2023-04-12 11:58:32 -07:00
Devine Lu Linvega 344c5c9904 Added flip-x/flip-y to pixel fill mode 2023-04-11 11:31:36 -07:00
Devine Lu Linvega 07e8306616 (screen) Created static fill function 2023-04-11 11:11:12 -07:00
Devine Lu Linvega 24dbc7d5f8 (screen) Rename screen_clear to screen_fill 2023-04-11 10:42:32 -07:00
Devine Lu Linvega 3973bc2ab8 Made the uxn stacks private again 2023-04-11 10:14:29 -07:00
Devine Lu Linvega eaf7d095ec (system.c) The debug port will always print the stacks, even if empty 2023-04-06 17:50:03 -07:00
Devine Lu Linvega 8b43d0d7ae Removed redundant pixel param from screen routines 2023-03-27 08:38:54 -07:00