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
Sigrid Solveig Haflínudóttir
c7f3014fe9
zoom: ignore if 0, ie if the screen is somehow TOO small to do any scaling
2023-05-02 22:53:07 +00: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
ce0cc5a352
Do not center on resize
2023-04-26 12:04:44 -07:00
Devine Lu Linvega
0da70d6bd1
Allow tiny sizes for the screen
2023-04-26 12:01:45 -07:00
Devine Lu Linvega
ebf31ecb03
(uxnemu) Removed debug line
2023-04-22 14:57:26 -07:00
Devine Lu Linvega
40d6c889bc
Set Console/type after memory is initialized
2023-04-22 14:56:12 -07:00
Devine Lu Linvega
3038d5c40b
(console) Use 0x00 for no-queue
2023-04-17 11:27:54 -07:00
Devine Lu Linvega
d8bee29626
(console) Use 0x1 for no-args
2023-04-17 11:19:37 -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
1bf0ffc5e5
(uxnemu) Display usage when no roms and no params
2023-04-17 10:29:39 -07:00
Devine Lu Linvega
453f491918
(uxnemu) Display new zoom values in usage
2023-04-17 09:59:00 -07:00
Devine Lu Linvega
72e23f0260
(uxnemu) Simplified boot sequence
2023-04-17 09:48:27 -07:00
Devine Lu Linvega
d1dc143912
(uxnemu) Only set zoom scale once on boot
2023-04-17 09:36:55 -07:00
Devine Lu Linvega
a9527fbd95
(console.tal) Added input type port to example
2023-04-16 22:03:44 -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
32fa0f95c3
(uxn.c) Catch div-by-zero errors
2023-04-15 09:52:08 -07:00
Devine Lu Linvega
25cc4a1329
(screen.tal) Improved screen testing rom
2023-04-14 19:51:05 -07:00
Devine Lu Linvega
c7203de2ea
(uxn.c) Less indirections in uxn core
2023-04-14 10:30:08 -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
Lior Stern
847b3f2b56
uxnemu: Add dpad support
...
More info about joyhats in SDL2:
https://wiki.libsdl.org/SDL2/SDL_JoyHatEvent
2023-04-12 11:08:48 -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
daa421c259
(uxn.c) Cache stack pointer
2023-04-11 10:32:23 -07:00
Devine Lu Linvega
fc8400dcac
(uxn.c) Formatting
2023-04-11 10:24:54 -07:00
Devine Lu Linvega
3973bc2ab8
Made the uxn stacks private again
2023-04-11 10:14:29 -07:00
Devine Lu Linvega
6f55ed496c
(uxncli) Fixed issue with DateTime device mask
2023-04-08 08:53:56 -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