Commit Graph

660 Commits

Author SHA1 Message Date
neauoire 28b9265042 Let us make a device page in shadow memory 2022-01-06 18:49:54 -08:00
neauoire a82f7d79f8 Defined the location of stacks in shadow memory 2022-01-06 17:29:34 -08:00
neauoire 4c6821189e Merge branch 'main' of git.sr.ht:~rabbits/uxn 2022-01-06 14:32:35 -08:00
neauoire ed1f6e6263 Connected error reporting and the hypervisor 2022-01-06 14:32:28 -08:00
Sigrid Solveig Haflínudóttir d21bfb20e0 SDL_PIXELFORMAT_XRGB8888 → SDL_PIXELFORMAT_RGB888 (for older SDL2 versions) 2022-01-06 18:24:35 +01:00
neauoire 3cc2ba98f0 First hypervisor 2022-01-05 20:44:33 -08:00
neauoire b9a37077c3 Started work on the hypervisor 2022-01-05 19:48:51 -08:00
Sigrid Solveig Haflínudóttir 4cd52209ac make the SDL texture XRGB8888 (no alpha) and remove padding pixels from it 2022-01-05 22:45:49 +01:00
Andrew Alderwick f48a09c482 Stop LeakSanitizer complaining about Uxn's RAM. 2022-01-05 18:18:13 +00:00
Andrew Alderwick 4cbb661f48 Implement System/vector for debugging. 2022-01-05 17:27:24 +00:00
Andrew Alderwick 0fd288de79 Fix compiler suggestion. 2022-01-05 14:37:37 +00:00
Andrew Alderwick 291cb3d1a2 Simplify stack determination logic. 2022-01-05 14:02:06 +00:00
Andrew Alderwick 646d79fff5 Factor out common parts of system_dei/deo. 2022-01-05 13:29:18 +00:00
Andrew Alderwick c77799dac2 Just pass an error code to uxn_halt. 2022-01-05 13:07:04 +00:00
Andrew Alderwick c37831749f Split uxn_halt into beginnings of System device file. 2022-01-05 13:03:17 +00:00
Andrew Alderwick c827fdc960 Move errored stack identification to after error handling label.
Partial revert of commits 1ce8b9bc27 (and
c296187ea9).
2022-01-05 01:27:27 +00:00
Andrew Alderwick c296187ea9 Rename ERROR/err to FAULT/fault 2022-01-04 02:15:38 +00:00
Andrew Alderwick 2a825de2fd Switch void context increments from pre to post 2022-01-04 02:05:32 +00:00
Andrew Alderwick 1ce8b9bc27 Bring back working/return stack identification on errors 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
cancel 416389bcf4 Improvements to uxn.c 2022-01-03 13:41:20 +00:00
cancel 1cab0dffeb Removed unused fields in uxn.h 2022-01-02 23:26:13 +00:00
Andrew Alderwick 52598bdad7 Remove uxn-fast.c since new reference core is almost as fast. 2022-01-02 23:05:28 +00:00
cancel 6980abacfc Refactor uxn.c. 2022-01-02 23:03:06 +00:00
neauoire ecc2654165 Prefixed helpers in uxn.c 2022-01-02 11:04:13 -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 e12e07e457 mouse.c: add newline at eof 2021-12-29 18:58:31 +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
~d6 abd6a3a5da Support nested comments in uxnasm.
Previously, code like this would fail with an error
about an unrecognized ) token:

    ( this is a ( nested ) comment )

With this patch, the above code will now work.

Relatedly, it was previously possible to write code
that compiled but was confusing:

    (open parenthesis should have a space )
    ( in this case the ADD2 will be ignored )ADD2
    ( this comment with ( would have been fine )

With this commit, the first example will emit a warning
but continue to work as intended. The second and third
examples will continue searching for a matching ) token,
which due to the new nested coment behavior will probably
mean the rest of the file gets commented out.
2021-12-28 19:28:15 -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 69f72485c7 Invert y scroll 2021-12-28 10:56:53 -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
Sigrid Solveig Haflínudóttir a8944f36ec remove aarch64-specific logic, it has been moved to its own branch, "aarch64" 2021-12-27 13:38:44 +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 b7453e1206 ppu aarch64: sorry, neauoire 2021-12-26 14:31:24 +01:00
Sigrid Solveig Haflínudóttir e488f76766 ppu arch64: clear "changed" on fg/bg and handle leftovers, if any 2021-12-26 14:19:02 +01:00
Sigrid Solveig Haflínudóttir 68c3a81301 ppu aarch64: clean up 2021-12-26 13:54:06 +01:00
Sigrid Solveig Haflínudóttir 6338f8d9a2 ppu_aarch64: initial version of ppu_redraw using Neon 2021-12-26 07:32:35 +01:00
Sigrid Solveig Haflínudóttir 66f5ba6e4d apu: Uint32 already defined in uxn.h 2021-12-26 07:28:19 +01:00
Sigrid Solveig Haflínudóttir 73177d91fe ppu: mark ppu_redraw as weak symbol so it can be overridden; move paletter to the start of Ppu struct (for alignment) 2021-12-26 07:09:12 +01:00
Sigrid Solveig Haflínudóttir ba7e8a9fb4 uxn_eval: multiply as two uint32s to avoid UB 2021-12-25 23:29:36 +01: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 69cfef46be ppu_palette: rewrite for more readability 2021-12-25 22:42:34 +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 37cd90bec1 ppu_blit: change type to Uint16 2021-12-25 19:00:26 +01:00
Sigrid Solveig Haflínudóttir 2c8a7ed05a ppu_blit: tiny bit faster by doing less memory reads in the inner loop 2021-12-25 18:56:36 +01:00
Sigrid Solveig Haflínudóttir 5848fbe50b ppu_blit: mostly cosmetic - explain blending's 4th row, gain few more cycles 2021-12-25 16:26:01 +01:00
Sigrid Solveig Haflínudóttir 8bbe5c1dfd ppu_resize: f49143782a was wrong. keep successfully reallocated layers 2021-12-25 16:06:30 +01:00
Sigrid Solveig Haflínudóttir 831014e811 ppu_redraw: use the same optimization that one-layer logic had 2021-12-25 15:57:43 +01:00
Sigrid Solveig Haflínudóttir c2829ce5fe ppu: remove the last(?) remnants of single layer logic 2021-12-25 15:12:30 +01:00
Sigrid Solveig Haflínudóttir f49143782a ppu_resize: don't leak if one layer failed to resize 2021-12-25 15:05:33 +01:00
Sigrid Solveig Haflínudóttir ef2b2e881b ppu header: remove unused macros 2021-12-25 14:48:05 +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
Sigrid Solveig Haflínudóttir b2bb585e1d ppu: clear should only mark one layer as changed 2021-12-24 23:27:41 +01:00
Sigrid Solveig Haflínudóttir db957f4dbb ppu: resize already calls clear, no need for repetition 2021-12-24 23:27:07 +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 0a040824b7 Optimized ppu_redraw 2021-12-24 10:10:55 -08:00
neauoire cc6f2c8b29 Inlined ppu_read 2021-12-24 10:02:23 -08: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 668eab05bf (ppu) Minor optimisation 2021-12-24 09:29:26 -08:00
neauoire 4d2b55c188 Removed stdio from ppu 2021-12-20 09:45:56 -08:00
neauoire 5ebeaf6852 Using ppu_clear on resize 2021-12-20 09:42:29 -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
Andrew Alderwick 62f740416d Remove redundant declaration. 2021-12-14 23:17:32 +00:00
Andrew Alderwick 2330320985 (readability) Use preincrements throughout in void context. 2021-12-14 23:17:32 +00:00
neauoire bae2d37fc2 (uxnasm) Only catch hex labels with slen of 2 or 4 2021-12-06 09:01:48 -08:00
Andrew Alderwick 60f04ca053 (uxnasm) Add error for relative references that are too far. 2021-12-01 11:42:44 +00:00
neauoire da797b33c6 (uxnasm) Stop on resolve failure 2021-11-30 10:27:35 -08:00
neauoire 074a049ff2 (uxnasm) Renamed conflicting function 2021-11-29 16:19:47 -08:00
neauoire 25df420607 (uxnasm) Improved errors 2021-11-29 08:48:12 -08:00
Andrew Alderwick 6ba2af5c62 Avoid combining literals across | or $ pads. 2021-11-28 18:07:22 +00:00
neauoire 6c0e39ad6f (uxnasm) Fixed issue with labels 2021-11-27 14:58:37 -08:00
neauoire b4e50165b6 (uxnasm) Warn for refs size limit 2021-11-27 14:44:28 -08:00
neauoire 78853ac5c6 (uxnasm) Removed lit flag for writebyte 2021-11-27 14:20:56 -08:00
neauoire fbbddf50d6 (uxnasm) Cleanup 2021-11-27 14:07:25 -08:00
neauoire 4b6efa6fc6 (uxnasm) Combine byte literals 2021-11-27 13:55:33 -08:00
neauoire 71e8177657 (uxnasm) Rewrite 2021-11-27 11:33:22 -08:00
neauoire b873f04789 Added tal syntax highlight for nano 2021-11-26 08:11:18 -08:00
Devine Lu Linvega 088897c6b4 (uxnasm) Display exact numberof bytes 2021-11-24 17:12:01 -05:00
Andrew Alderwick d4e033e715 Remove vestigial mention of "include". 2021-11-18 00:14:15 +00:00
Andrew Alderwick c3ac41c41d Change "include" word into ~ rune for includes. 2021-11-17 22:06:00 +00:00
Sigrid Solveig Haflínudóttir f75f644aff
same fixes for uxncli 2021-11-17 14:29:36 +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
Sigrid Solveig Haflínudóttir 4988b2214e
uxnasm: reset scope to avoid pointing at garbage 2021-11-08 18:51:28 +01: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
Andrew Alderwick d2c6d5e12d Remove unused limits.h 2021-11-07 19:34:41 +00:00
Sigrid Solveig Haflínudóttir fd7cf5e221
file: write: return error if fflush failed 2021-11-07 20:21:15 +01:00
Sigrid Solveig Haflínudóttir 3606081184
file: reduce casts 2021-11-07 20:06:15 +01:00
Sigrid Solveig Haflínudóttir 677b02f0a3
file: replace strncpy+strncat with a single snprintf call 2021-11-07 20:00:56 +01:00
Sigrid Solveig Haflínudóttir 90225ad773
file: replace PATH_MAX with 4096 to have the same limit everywhere (Windows has the macro set to < 300) 2021-11-07 19:32:48 +01:00
Devine Lu Linvega 42d0f65d12 Rewrote get_entry 2021-11-07 12:26:37 -05:00
Devine Lu Linvega dee04ff44a Renamed prepare for init 2021-11-07 10:30:56 -05:00
Andrew Alderwick db0efaeff1 Drop redundant dirfd 2021-11-07 00:51:42 +00:00
Andrew Alderwick ea42a0bdd7 Use basename for File/stat output 2021-11-07 00:46:18 +00:00
Andrew Alderwick 3acaaa2874 Drop fstatat for building on MSYS2 2021-11-07 00:45:55 +00:00
Sigrid Solveig Haflínudóttir 0465b68ab5
add file device build dep to mkfile; fix file_delete prototype 2021-11-07 00:12:11 +01:00
Andrew Alderwick ede10292d6 Add flush to File device writes 2021-11-06 21:22:00 +00:00
Andrew Alderwick a92dd9fd73 Rearranged File ports for backwards compatibility. 2021-11-06 00:51:43 +00:00
Andrew Alderwick 3a11945fec Fix null pointer dereference if File/name not set 2021-11-05 23:26:45 +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
Sigrid Solveig Haflínudóttir e21a0ed885
clang-format 2021-11-03 23:05:47 +01:00
Sigrid Solveig Haflínudóttir 5a20eb69b0
ppu: simplify ppu_set_size 2021-11-03 23:03:33 +01:00
Andrew Alderwick 38f534d9ec Allow shifts up to 0xf in byte mode 2021-11-03 07:15:14 +00:00
Sigrid Solveig Haflínudóttir 28aaf40e6d
ppu_write: put new byte value only if it's different 2021-11-02 18:18:30 +01:00
Sigrid Solveig Haflínudóttir ca5675419e
ppu_write: remove duplicate condition we already checked for 2021-11-02 18:15:11 +01:00
Andrew Alderwick 1bf7fb11b2 Update uxn-fast.c with new LIT opcode meanings 2021-10-30 08:55:23 +01:00