Commit Graph

291 Commits

Author SHA1 Message Date
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 4d7ce3e893 Made a console_listen function 2023-08-15 16:24:40 -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 de7b24e820 Added soft reboot 2023-08-13 18:48:32 -07:00
neauoire c7884b625f Fixed issue where redraw region always started at 0 2023-08-10 08:47:34 -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 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