Andrew Alderwick
c37831749f
Split uxn_halt into beginnings of System device file.
2022-01-05 13:03:17 +00:00
Andrew Alderwick
2a825de2fd
Switch void context increments from pre to post
2022-01-04 02:05:32 +00:00
Andrew Alderwick
7e3353ea72
Rename u->ram.dat to u->ram, u->ram.ptr to pc.
2022-01-04 01:40:48 +00:00
Andrew Alderwick
205f63cc43
Clear up SDL_KEYDOWN/SDL_TEXTINPUT logic
2022-01-04 01:12:17 +00:00
neauoire
4789d8ccef
Removed peek16
2022-01-03 13:29:47 -08:00
neauoire
0ee477615b
Removed poke16
2022-01-03 13:23:57 -08:00
neauoire
cca1253376
Use calloc for memory array
2022-01-01 15:20:48 -08:00
Sigrid Solveig Haflínudóttir
22c6e07fca
emu: make sure to handle key down event if the same key is up at the same frame
2021-12-29 23:32:18 +01:00
Sigrid Solveig Haflínudóttir
2b1e7fe20f
emu: use SDL_BUTTON macro to get bitmask from a mouse button event
2021-12-29 18:47:54 +01:00
Sigrid Solveig Haflínudóttir
148dae4ebd
fix a few "set and not used" warnings
2021-12-29 18:33:23 +01:00
neauoire
385fa44f9d
Prefixed globals with uxn_
2021-12-29 09:11:03 -08:00
neauoire
51b55f3d99
Do not check for erroring video twice
2021-12-28 17:38:55 -08:00
neauoire
a747e4b20a
Fixed issue with screen resize
2021-12-28 17:22:40 -08:00
neauoire
c3506869b5
Renamed Apu to Audio
2021-12-28 13:47:35 -08:00
neauoire
7b33cf3d95
Renamed PPU to Screen
2021-12-28 13:37:26 -08:00
neauoire
2a9fc00441
Renamed mouse mod to mouse scroll
2021-12-28 11:21:56 -08:00
neauoire
a1dc75a2bc
Implemented scroll x/y
2021-12-28 10:45:34 -08:00
neauoire
8488ce64a4
Moved the emulator controls together
2021-12-27 13:59:22 -08:00
neauoire
004fa800ef
Fixed issue with function keys
2021-12-27 13:50:39 -08:00
neauoire
3c47876d5e
Start button is now HOME
2021-12-27 13:42:36 -08:00
neauoire
51b9c699b8
Mini fix to controller button order
2021-12-27 13:37:37 -08:00
neauoire
87507f7f03
Added joystick support
2021-12-27 11:44:57 -08:00
neauoire
9f743399b1
Added gamepad support
2021-12-27 10:04:24 -08:00
neauoire
4a223f91b5
The screen is now a member of Ppu
2021-12-27 09:57:48 -08:00
neauoire
fe75479fae
Moved controller device to devices/controller.c
2021-12-27 09:24:43 -08:00
Sigrid Solveig Haflínudóttir
a12781f23a
get_button: do not pass the whole event struct on the stack
2021-12-27 15:24:22 +01:00
neauoire
32c18e82ca
Started extracting the controller device
2021-12-26 21:33:23 -08:00
neauoire
89c07988ac
Moved mouse to devices/
2021-12-26 21:02:24 -08:00
neauoire
13fd0d9724
Moved file APIs in device/file
2021-12-26 20:26:27 -08:00
Andrew Alderwick
d9e619d8a1
Revert "emu: use SDL_clamp" since that function is not available in Debian's SDL.
...
This reverts commit a967525caf
.
2021-12-26 21:14:41 +00:00
Sigrid Solveig Haflínudóttir
d8667dca0b
emu event loop: peek for a key up only on key down event
2021-12-25 22:58:10 +01:00
Sigrid Solveig Haflínudóttir
8d4e7d54e1
emu: use SDL_Quit directly and let SDL handle shutdown itself
2021-12-25 21:44:19 +01:00
Sigrid Solveig Haflínudóttir
2f7bfd4122
emu: set_zoom: window is always there, remove useless check
2021-12-25 21:37:22 +01:00
Sigrid Solveig Haflínudóttir
a967525caf
emu: use SDL_clamp
2021-12-25 21:28:02 +01:00
Sigrid Solveig Haflínudóttir
f436ebff12
emu: shut up -Wtypedef-redefinition with SDL headers when using clang
2021-12-25 21:27:23 +01:00
Sigrid Solveig Haflínudóttir
927fdb497f
ppu: unite 1bpp and 2bpp into one - ppu_blit
2021-12-25 13:50:34 +01:00
neauoire
8a25a5e387
Renamed layer.p to layer.pixels
2021-12-24 12:01:10 -08:00
Sigrid Solveig Haflínudóttir
f79b092e71
ppu: separate reqdraw for fg and bg
2021-12-24 20:45:31 +01:00
neauoire
3fb4d40eb0
Split pixels into fg/bg
2021-12-24 09:59:18 -08:00
neauoire
250e338d07
Redraw is now part of the PPU
2021-12-24 09:46:21 -08:00
neauoire
0794070adf
Palette is now part of the PPU
2021-12-24 09:39:51 -08:00
neauoire
4d2b55c188
Removed stdio from ppu
2021-12-20 09:45:56 -08:00
neauoire
6c64678829
Merge branch 'main' of git.sr.ht:~rabbits/uxn
2021-12-19 12:20:21 -08:00
neauoire
c4d9e52fd6
(uxnemu) Clear debugger on toggle
2021-12-19 12:20:13 -08:00
Sigrid Solveig Haflínudóttir
1e224079ed
emu: when both key down and key up are generated on the same frame, skip the up until the next one
2021-12-19 20:40:20 +01:00
Sigrid Solveig Haflínudóttir
73c1ecccc0
emu: handle files dropped by loading it as a ROM
2021-12-16 17:29:09 +01:00
Sigrid Solveig Haflínudóttir
2cf6da4a55
emu: use "Back" on android to restart the rom for now
2021-12-16 01:05:59 +01:00
Sigrid Solveig Haflínudóttir
2dc3680bcf
emu: don't call exit(0), return 0 is enough
2021-12-16 00:49:58 +01:00
Sigrid Solveig Haflínudóttir
9bc6a83873
emu/load: use RWops - it's more portable and allows loading roms from assets of an apk on Android
2021-12-15 23:54:44 +01:00
Sigrid Solveig Haflínudóttir
19c16081c6
load: don't leak file handles; don't ignore read errors
2021-11-17 14:21:27 +01:00
Sigrid Solveig Haflínudóttir
6c1720e328
datetime: don't crash if localtime failed
2021-11-17 14:14:38 +01:00
Devine Lu Linvega
170aa0f64c
Try to start boot.rom if no rom is provided
2021-11-09 10:34:10 -05:00
Devine Lu Linvega
ef13809e08
Made reboot static
2021-11-08 12:13:43 -05:00
Devine Lu Linvega
2f8cc83aa4
Renamed reboot for restart
2021-11-08 12:12:17 -05:00
Devine Lu Linvega
737a87ac3f
Building boot on start
2021-11-08 11:21:23 -05:00
Devine Lu Linvega
85322b92ce
Progress toward boot.rom setup
2021-11-08 10:51:09 -05:00
Devine Lu Linvega
dee04ff44a
Renamed prepare for init
2021-11-07 10:30:56 -05:00
Andrew Alderwick
a92dd9fd73
Rearranged File ports for backwards compatibility.
2021-11-06 00:51:43 +00:00
Andrew Alderwick
dc3170db98
Implement File/append flag.
2021-11-05 22:48:04 +00:00
Andrew Alderwick
c970e2c5ef
File device: drop offset shorts, add stat and delete.
2021-11-05 21:32:45 +00:00
Andrew Alderwick
9b15f90008
Rename b0 to port in dei/deo functions
2021-11-04 17:14:15 +00:00
Andrew Alderwick
287bc67e1e
Split talk functions into dei and deo; make deo functions void
2021-11-04 17:13:44 +00:00
alex wennerberg
18dddbacd6
Add [-scale] to usage string
2021-11-04 12:48:49 -04:00
Devine Lu Linvega
3bfbbbc124
Moved debugger to ppu
2021-11-04 11:42:15 -04:00
neauoire
a635fea52f
Use rom name for window title
2021-10-28 09:27:39 -07:00
Sigrid Solveig Haflínudóttir
a3ee7ab982
emu: close audio device if used
2021-10-24 22:14:27 +02:00
Sigrid Solveig Haflínudóttir
2afded6e05
check SDL_UpdateTexture return code as well
2021-10-24 21:48:56 +02:00
Sigrid Solveig Haflínudóttir
297046ec14
check SDL_GetCurrentDisplayMode return code, keep zoom at 1 if it failed
2021-10-24 21:31:25 +02:00
Andrew Alderwick
e82acc875b
Feed extra command line arguments to Console/vector
...
Each argument is followed by a newline character.
2021-10-13 22:58:27 +01:00
Andrew Alderwick
b53d5c428b
Re-added setting border pixels to black
2021-10-09 00:03:34 +01:00
neauoire
08fb3e7f0a
Close uxnemu on System/halt
2021-10-02 12:06:50 -07:00
neauoire
0fe8b39447
Cleaned up PPU
2021-09-30 10:44:40 -07:00
neauoire
c494e42cf2
Drawing is pixel-perfect again
2021-09-29 20:54:27 -07:00
neauoire
bac54f1fd9
Progress on new bitpacking
2021-09-29 20:44:15 -07:00
neauoire
92e44e4314
Merge branch 'main' of git.sr.ht:~rabbits/uxn into ppu-slow
2021-09-29 18:05:08 -07:00
neauoire
7cff22fcc8
Returned zoom functionality
2021-09-29 18:03:56 -07:00
neauoire
ecc1d7c416
Experimenting with 2 layers
2021-09-29 17:58:58 -07:00
neauoire
f3b3823b0c
The PPU require-draw flag is renamed to reqdraw
2021-09-29 16:14:13 -07:00
neauoire
7f3a889771
Removed clamp from within set_zoom
2021-09-29 16:08:36 -07:00
neauoire
8d72c36123
Moved get_pixel to ppu.c
2021-09-29 16:01:54 -07:00
neauoire
30c1e4dc6c
Keep vectors in memory instead of constantly peek16()
2021-09-22 12:16:16 -07:00
neauoire
0cc717b251
Removed white flash on launch
2021-09-22 11:56:27 -07:00
neauoire
659dea48d8
Renamed update_palette to set_palette
2021-09-22 11:54:25 -07:00
neauoire
f2260abed0
Moved mouse-wheel event into domouse
2021-09-22 11:53:13 -07:00
neauoire
5905afc97d
Use set_zoom() but test for gWindow before resize
2021-09-22 11:35:00 -07:00
neauoire
718a74641e
Removed flickering on initial resize
2021-09-22 11:21:57 -07:00
neauoire
2822e598ed
Minor cleanup
2021-09-22 10:57:43 -07:00
neauoire
eeeeb90542
Wait for textures and size before default zoom
2021-09-22 10:42:17 -07:00
neauoire
45a7941d7d
Merge branch 'main' of git.sr.ht:~rabbits/uxn
2021-09-22 10:13:12 -07:00
neauoire
26e9d8bf88
Set size after devices are defined
2021-09-22 10:13:02 -07:00
Andrew Alderwick
dd7401bc4c
Redraw entire screen when asked to by reqdraw
2021-09-22 16:40:42 +01:00
neauoire
43f91cecd9
Fixed crashing bug with zoom flag
2021-09-21 15:56:42 -07:00
neauoire
6f10839acf
Created a set_zoom function
2021-09-21 15:41:59 -07:00
Hannah Crawford
8b83ae7e38
Added scale (-s) flag
2021-09-21 21:27:45 +01:00
Hannah Crawford
753c5836e6
Made window resize around center
2021-09-21 21:22:40 +01:00
Sigrid Solveig Haflínudóttir
3d49536d76
ppu: keep track of the vertical region where redraw is supposed to happen
2021-09-21 19:39:00 +02:00
Andrew Alderwick
a8df7ca410
Fixed palette array
2021-09-20 23:02:42 +01:00
Andrew Alderwick
c0e42f1322
Switched to faster unsigned ints for PPU memory
2021-09-20 22:51:09 +01:00
Andrew Alderwick
b6fe4302d1
Switched to linear PPU memory
2021-09-20 22:51:09 +01:00
Andrew Alderwick
f77fa80d35
Replaced duplicate parts of PPU init with resize functions
2021-09-19 23:34:03 +01:00
Andrew Alderwick
a2305f2d64
Added ability to fix PPU size
...
For testing compatibility with ports that cannot change the PPU size,
the FIXED_SIZE define can be set nonzero and Screen/width,height changes
will be ignored. They can still be read to find the correct width/height
that the PPU is currently using.
2021-09-19 23:21:30 +01:00
Andrew Alderwick
332fbed11e
Only set size when Screen/height is written
2021-09-19 22:56:33 +01:00
Andrew Alderwick
c8f47d8a08
Always return current PPU size when Screen/width,height is read
2021-09-19 22:53:45 +01:00
Andrew Alderwick
15239a1fd2
Rewritten screen_talk with switch
2021-09-19 22:51:35 +01:00
Sigrid Solveig Haflínudóttir
6337680774
ppu: change the API to signal when redraw is required
...
To lower CPU load in idle mode (no changes on screen)
make ppu_pixel return non-zero when a change has been
made.
25% → 4% (piano.rom) after this change on Linux amd64,
Thinkpad X220.
2021-09-19 23:30:53 +02:00
neauoire
a5201767d7
Clear on resize
2021-09-18 17:18:20 -07:00
neauoire
8a32555893
Clear before resizing
2021-09-18 17:10:29 -07:00
neauoire
28cfb143ca
Merge branch 'main' of git.sr.ht:~rabbits/uxn
2021-09-18 16:51:50 -07:00
neauoire
bca5562eec
The screen width/height ports can be written to
2021-09-18 16:51:20 -07:00
Andrew Alderwick
b4fa6f52a8
Replaced malloc and manual initialization with calloc
2021-09-18 22:34:13 +01:00
Andrew Alderwick
e9765337f7
Initialized border color to black
2021-09-18 00:00:28 +01:00
Sigrid Solveig Haflínudóttir
8d98d6d6ef
emu: don't call SDL_UpdateTexture with NULL pixels
2021-09-17 17:22:12 +02:00
Andrew Alderwick
373a797e1e
Removed gSurface and restored previous capture_screen
2021-09-17 09:38:01 +01:00
neauoire
478669a8ca
Reverted to a standard SDL Texture for the screen
2021-09-16 19:48:00 -07:00
neauoire
9835ec4f20
Fixed address issue with screen auto
2021-09-10 09:07:08 -07:00
neauoire
e52fe82925
Fixed PPU auto byte
2021-09-10 08:52:07 -07:00
neauoire
a3502f1637
Implemented the screen auto byte
2021-09-09 09:42:03 -07:00
neauoire
266152e260
Ported devw/devr changes to uxn.c
2021-09-08 17:51:23 -07:00
Andrew Alderwick
b88d2adc3d
Halt when talk function returns false, since setting ram.ptr no longer works
2021-09-08 00:13:21 +01:00
neauoire
19e84072d8
Removed file_talk debugs
2021-09-04 09:11:43 -07:00
Andrew Alderwick
a6b99078de
Changed file_talk files to open in binary mode
2021-08-31 19:30:57 +01:00
neauoire
a2e40d9d10
Removed unused device string
2021-08-29 19:52:12 -07:00
neauoire
91df7ab470
Completed new uxn core
2021-08-29 18:18:52 -07:00
neauoire
90540742ae
Standardizing fns names before merge
2021-08-29 14:41:05 -07:00
neauoire
ca5ad113ee
Minor cleanup
2021-08-29 10:36:23 -07:00
neauoire
c84b5015e4
Repaired zoom
2021-08-28 13:44:53 -07:00
neauoire
83de614e53
Do no display unused macros anymore
2021-08-28 10:30:50 -07:00
Andrew Alderwick
a92fd8fb22
Expanded File/offset to 32-bit /offset-hs and /offset-ls
2021-08-28 00:37:27 +01:00
Andrew Alderwick
87157258b8
Implemented Audio*/vector which runs when notes finish playing
2021-08-20 22:45:39 +01:00
neauoire
d111146eb6
Stack pointers can be written
2021-08-15 17:48:15 -07:00
Andrew Alderwick
7d8600c679
Fixed display being lost when window is resized
2021-08-08 22:47:25 +01:00
neauoire
d3c3ece6ca
Removed PPU backward compatibility
2021-08-08 09:26:20 -07:00
neauoire
352ae83858
Moved some variables to defines
2021-08-04 20:30:57 -07:00
Andrew Alderwick
43b45ac698
Improved audio failure detection.
...
Now, audio-related failures in SDL_Init are caught too.
2021-08-03 23:25:13 +01:00
Andrew Alderwick
43ea2532e8
Made audio open errors into warnings
...
Varvara will continue to execute if SDL_OpenAudioDevice fails, but the
Audio devices will be disabled.
2021-08-03 23:05:48 +01:00
neauoire
de3591c07e
Fixed issue with mouse zoom
2021-08-01 21:51:43 -07:00
neauoire
b64570f827
Minor cleanup
2021-08-01 15:04:51 -07:00
neauoire
5d7151ab61
Cleaned up a few function names
2021-08-01 14:56:12 -07:00
neauoire
4f822f55f3
Prefixed uxn functions
2021-08-01 14:46:43 -07:00
Andrew Alderwick
6e21f3aba0
Removed stdio dependency from uxn.c
...
Reimplementation of patch sent in by Marc Schraffenberger
<marc@schraffenberger.com>: thank you for the rationale and inspiration!
2021-08-01 22:17:48 +01:00
neauoire
98f773c652
Removed unused hor/ver values
2021-08-01 11:38:04 -07:00
neauoire
be85023831
Prefixed function names with ppu
2021-08-01 11:33:43 -07:00
Andrew Alderwick
4257f9818a
Switched to indexed SDL_Surface using blit to window.
2021-07-31 19:46:27 +01:00
neauoire
d2c3d0e524
Started implementing the sprite port for the screen device
2021-07-30 19:23:02 -07:00
neauoire
486e79c48d
screen_talk should not peek at addr when drawing a single pixel
2021-07-30 16:31:10 -07:00
neauoire
7f345428d6
Moved inspect in uxnemu.c
2021-07-30 14:38:08 -07:00
neauoire
2c78f2cedf
Named System device
2021-07-28 20:20:57 -07:00
neauoire
7b7f4fd0f7
System now carries the debug flag, System/0xf is now stopping eval
2021-07-28 10:29:09 -07:00
neauoire
41eb23e2c2
Added missing boot function
2021-07-28 09:24:26 -07:00
neauoire
fa6b8a1769
Improved error messages
2021-07-24 17:09:46 -07:00
neauoire
c5b8595fb5
Reduced PAD, display usage:, and added 2 fonts
2021-07-24 10:27:27 -07:00
Andrew Alderwick
8855b96057
Started pausing the audio device when it's not in use
2021-07-17 10:13:21 +01:00
neauoire
c41ba2b1e2
Improved file-talk message
2021-07-11 18:55:09 -07:00
Andrew Alderwick
91fedff46d
Extended Console to write to FD 2-8 (most useful for 2, stderr)
2021-07-11 17:54:30 +01:00
neauoire
a399c81e2f
New screen defaults
2021-07-07 10:51:12 -07:00
neauoire
a1d00a2df7
Drawing inspect on fg so it can be erased
2021-07-05 09:06:32 -07:00
Sigrid Solveig Haflínudóttir
5e71c0bfc8
emu: start -> run, remove return type
2021-06-29 15:43:28 +02:00
Sigrid Solveig Haflínudóttir
d0fb331aa4
screenshot: one simple trick to reduce the file size
2021-06-29 10:09:42 +02:00
Sigrid Solveig Haflínudóttir
66c16be3a5
screenshot: add timestampp to the filename
2021-06-29 08:11:59 +02:00
Andrew Alderwick
eb8c803b35
Renamed function
2021-06-28 21:57:30 +01:00
Andrew Alderwick
7b5ad795f8
Switched from non-blocking read to thread and custom SDL event
2021-06-28 21:46:50 +01:00
neauoire
74fc816810
Flagged functions as static
2021-06-28 14:42:36 -07:00
neauoire
274edad29d
Simplified console
2021-06-28 09:40:29 -07:00
neauoire
f8f2f66756
The console read byte is its own location
2021-06-27 16:42:47 -07:00
Andrew Alderwick
802aa51d54
Added Console/vector implementation with example
2021-06-27 21:45:50 +01:00
Andrew Alderwick
ba50624994
Silenced warnings in debug build
2021-06-27 18:54:43 +01:00
neauoire
952d022daa
Modified console/char
2021-06-26 15:52:44 -07:00
neauoire
2197e35667
Route errors to stderr
2021-06-26 13:22:01 -07:00
neauoire
4e8375d8df
Removed the Midi device
2021-06-26 13:17:41 -07:00
neauoire
08b64ec33c
Implemented Midi device
2021-06-25 21:28:42 -07:00
neauoire
93e64c93e8
Trying to fix the ctrl+char issue
2021-06-25 09:21:11 -07:00
neauoire
617364916e
Use F keys for emulator controls
2021-06-25 08:57:25 -07:00
Andrew Alderwick
2d1c3aa965
Further fixes to keyboard handling
2021-06-20 22:38:45 +01:00
Andrew Alderwick
b3ffe598c4
Fix keyboard problems introduced in improvements
...
Handling of a lot of ordinary keys was broken, e.g. number row and
non-alphanumeric keys, especially with Shift.
I think what's broken has been fixed, but have reverted the improvement
that Controller/vector is only called once per keypress. Many keys cause
Controller/vector to be called twice, but only once with Controller/key
nonzero.
2021-06-20 22:21:37 +01:00
Andrew Alderwick
c268c7fd96
Various keyboard handling improvements
...
The Ctrl, Alt and Shift bits in Controller/button activate with either
left or right modifier keys, and either can be used to take screenshots
/ zoom / show debugging info rather than left modifiers only.
Delete now sets Controller/key to 0x7f rather than being ignored (by
setting Controller/key to 0x00).
Ctrl + letter now sets Controller/key to 0x01-0x1e rather than being
ignored: for example, Ctrl+S will set Controller/key to 0x13.
Controller/vector is no longer called twice per key press (the extra
call with Controller/key set to 0x00 is removed).
2021-06-19 14:04:09 +01:00
neauoire
7fe0750c17
Added return pointer position to debugger
2021-06-18 20:19:32 -07:00
Andrew Alderwick
b62a543679
Reworked H key handling into switch statement
2021-06-18 09:01:35 +01:00
neauoire
78c428d215
Improved uxnasm error report
2021-06-17 17:41:55 -07:00
neauoire
847728e7d4
Changed capture button
2021-06-11 07:03:48 -07:00
Andrew Alderwick
6f406eebfc
Removed lock/unlock for screenshot
2021-06-11 11:25:17 +01:00
Andrew Alderwick
acf517c422
Fixed order of unlock/save
2021-06-11 11:02:09 +01:00
Andrew Alderwick
52e0f9b29e
Used GetRendererOutputSize to get screenshot size
2021-06-11 09:56:14 +01:00
Andrew Alderwick
a11cbb458f
Added screenshot functionality, contributed by badd10de, thank you!
2021-06-11 09:18:52 +01:00
Andrew Alderwick
4bc3ce0d4b
Dropped SDL/ prefix in uxnemu.c
2021-06-08 15:57:00 +01:00
Andrew Alderwick
d5b2bd9895
Revert "Removed second texture of PPU"
2021-05-30 23:15:37 +01:00
Andrew Alderwick
ffe142ea91
Removed second texture of PPU
2021-05-30 23:04:19 +01:00
neauoire
70edfce206
Unset mouse wheel after eval
2021-05-29 15:05:43 -07:00
neauoire
3276b370e8
Added a scroll wheel port to the mouse device
2021-05-29 15:01:19 -07:00
neauoire
17af020cc0
Restored frame size
2021-05-28 19:14:36 -07:00
neauoire
0183c05d37
Added piano samples in project
2021-05-28 12:37:59 -07:00
neauoire
d163c43201
Improved uxncli and moved all demos into examples
2021-05-26 10:02:13 -07:00