Commit Graph

1407 Commits

Author SHA1 Message Date
RSDuck 6b306e18a5 handle edge cases properly 2021-01-09 22:06:15 +01:00
RSDuck c475372372 mask off upper bits when incrementing RX addr
fixes #931
2021-01-09 18:31:12 +01:00
RSDuck 7081c2de65 readd vram invalidation through display capture
also remove stray printf
2021-01-07 22:39:36 +01:00
RSDuck e311eea1c5 fix out of bounds read 2021-01-07 18:36:49 +01:00
Arisotura 1d8e302c13
Merge pull request #926 from WaluigiWare64/fix/freebsd-include-aflink
Fix FreeBSD undefined identifier issues in Lan_PCap.cpp
2021-01-07 18:32:02 +01:00
Arisotura 641ddf8137
Merge pull request #678 from WaluigiWare64/feature/zip-support
Add support for loading ROMs from a variety of compressed files
2021-01-07 18:30:12 +01:00
WaluigiWare64 e485ce3e13 Add Open ROM inside Archive function
instead of using file extensions
2021-01-07 17:26:55 +00:00
RSDuck 5865b4438e fix JIT block hash after a merged thumb BL
fixes #928
2021-01-05 22:38:29 +01:00
WaluigiWare64 8a1f3d8ce2
Properly fix macOS finding libarchive
(i hope)
2021-01-05 16:22:07 +00:00
WaluigiWare64 00e9a5e0c7 Allow melonDS to write the file
The directory wasn't created, so the file was not being written
2021-01-05 15:34:28 +00:00
RSDuck ef75e3cdd1 JIT A64: fixes
also update Switch code for latest libnx
2021-01-05 14:36:50 +01:00
WaluigiWare64 dbb12b48ec Fix FreeBSD undefined identifier issues in Lan_PCap.cpp
FreeBSD requires net/if.h to be included as well.
2021-01-05 12:06:17 +00:00
Madhav Kanbur 25455cb7aa
Set menubar height to 0 in fullscreen (#924)
* Set menubar height to 0 in fullscreen

* Avoid using hide() on the mainwindow's menubar as it breaks menubar
actions.

* Fixes save/load state shortcuts not working in fullscreen (#922)

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>

* Don't modify menubar width when exiting fullscreen

* Fixes weird looking menubar on Windows

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>
2021-01-05 11:37:27 +01:00
RSDuck 6e3207f9dc GX: fix vector test
after I broke it in d2c04c5c51
fixes Mario & Luigi Partners in Time
2021-01-04 16:36:51 +01:00
WaluigiWare64 6c91157495
Fix libarchive being found on macOS
properly this time
2021-01-04 10:31:57 +00:00
WaluigiWare64 9e15488e95
Fix mistake in merge commit 2021-01-03 16:00:50 +00:00
WaluigiWare64 83648f2d31
Merge branch 'master' into feature/zip-support 2021-01-03 15:53:23 +00:00
WaluigiWare64 f070eafce4
Fix return value of Archive::ExtractFileFromArchive 2021-01-03 15:29:03 +00:00
RSDuck cb58a422ac fix mac/clang build again 2021-01-02 19:58:49 +01:00
RSDuck 7d448d911d use C++ style structs everywhere 2021-01-02 11:38:06 +01:00
RSDuck e2c61b28e0 fix mac/clang build 2021-01-02 11:28:46 +01:00
RSDuck 18fe5c6759 prevent bleeding in screen texture
fixes #920
2021-01-02 08:55:48 +01:00
RSDuck fa4363ede6 make FIFO size static whene possible 2020-12-30 23:37:46 +01:00
Madhav Kanbur 6adf1731c1 Add option to open recent files
* Remember last 10 roms in config
* Clear button for clearing list

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>
2020-12-30 18:57:43 +05:30
RSDuck d2c04c5c51 GX: add fastpath for single parameter cmds 2020-12-30 02:29:43 +01:00
RSDuck 1649c0e089 don't calculate the CRC checksum of ROMs on load
the value isn't used anywhere anyway
2020-12-30 01:59:35 +01:00
WaluigiWare64 b24e855fb8 Fix the ARM64 Code Emitter on macOS 2020-12-28 18:18:33 +05:00
Arisotura e2de622d57 heh 2020-12-25 14:42:23 +01:00
Arisotura 08416329aa welp 2020-12-25 12:42:49 +01:00
Arisotura 5025e9a989 clean up some things 2020-12-24 13:08:46 +01:00
RSDuck d6b0ff1eda fix last commit, account for little endian 2020-12-24 12:34:40 +01:00
RSDuck 0e304441e4 add eCDP to romlist
closes #885
2020-12-24 12:22:38 +01:00
WaluigiWare64 82af9de9b6
Fix JIT linkage on ARM64 Macs (#890) 2020-12-24 11:23:29 +01:00
Arisotura b00cd8bdee remove the hardcoded F11 debug key before I forget about it again 2020-12-24 01:46:13 +01:00
RSDuck 0f353e0d5f add palette and OAM dirty flag
currently not used anywhere
2020-12-23 09:23:46 +01:00
WaluigiWare64 78419dbce1
Allow pkg-config to find libarchive on macOS
macOS already provides the libarchive libraries, so Homebrew doesn't link it.
However, macOS does not provide the headers.
2020-12-19 18:17:06 +00:00
WaluigiWare64 0be3f449a7
fix for the last commit 2020-12-19 17:46:09 +00:00
WaluigiWare64 df190b0400
Merge branch 'master' into feature/zip-support 2020-12-19 17:43:53 +00:00
WaluigiWare64 d6cade25f4
Extract ROM to new folder next to archive
For example if DS_ROMS.zip had game.nds, the directory structure would be:
├── DS_ROMS
│   └── game.nds
└── DS_ROMS.zip
2020-12-19 17:41:51 +00:00
RSDuck 659dc58d4d fix segfault for build with OpenGL disabled 2020-12-14 17:21:55 +01:00
Arisotura c106bec1a0 correct save type for Jelly Belly - Ballistic Beans (USA)
fixes #852
2020-12-14 11:34:40 +01:00
Arisotura 49317e9165 don't axe error bits when writing to IPCFIFOCNT. fixes #801 2020-12-11 18:06:26 +01:00
Arisotura aac843c7de GL: don't break rendering order when translucent polygons contain opaque pixels.
fixes #831

(also disable edgemarking for now. it sucked anyway)
2020-12-11 04:38:11 +01:00
Arisotura a47a3fa692 GL: align uniform-buffer size to 16-byte boundary. atleast makes RenderDoc happy. 2020-12-11 03:29:37 +01:00
WaluigiWare64 a9223d6c0a
Fix fastmem building on ARM64 Macs (#841) 2020-12-11 01:41:53 +01:00
Arisotura 8530c099bc GPU: make sure to always pass BG0HOFS to the 3D engine, even if the 2D engine is disabled. 2020-12-10 19:34:31 +01:00
Arisotura 66cec85a9a GPU: forward BG0HOFS to internal rendering engine register for 3D layer scroll (only when the rendering engine is enabled).
fixes #840

thank you RSDuck and Hydr8gon for your insight into this.
2020-12-10 19:12:08 +01:00
Arisotura 1dbe69c6be remove some debug crap 2020-12-10 18:09:11 +01:00
RSDuck e34ce013df only start display capture on first line
fixes Spearpillar in Pokemon D/P/Pt
also fixes #782 and #474
2020-12-09 22:45:16 +01:00
RSDuck b6de3cc638 VRAM dirty tracking fix reset/savestate load 2020-12-09 20:10:44 +01:00
RSDuck 51b2671aa9 add cur vertex and light information to savestate 2020-12-09 19:18:42 +01:00
RSDuck 49b5860f0f aligned_alloc instead of memalign
also carry over new Switch changes
2020-12-09 18:58:51 +01:00
RSDuck d2cfd71c32 rename the class as well
this is getting emberassing
2020-12-07 18:45:50 +01:00
RSDuck 23b1a231cb change cmake file as well 2020-12-07 18:36:14 +01:00
RSDuck 77996879a8 rename GPU2DSoft.cpp to GPU2D_Soft.cpp 2020-12-07 18:34:42 +01:00
RSDuck 9673659db4 fix toggle FPS hotkey 2020-12-07 17:00:53 +01:00
RSDuck b80d5a04f3 lay base for multiple GPU2D backends 2020-12-06 17:40:16 +01:00
RSDuck 40899940b5 fix #838 2020-12-05 12:25:49 +01:00
Arisotura 129018a662 Merge remote-tracking branch 'remotes/origin/master' into dsi_camera 2020-12-04 18:28:15 +01:00
Arisotura 6aad429383 misc. shito 2020-12-04 18:26:48 +01:00
RSDuck 42e083960e always cap FPS to 1000 2020-12-04 00:00:35 +01:00
RSDuck 906521e7e9 fix 4-bit affine sprites 2020-12-03 14:52:36 +01:00
WaluigiWare64 07423492c4
Use AF_LINK and net/if_dl.h on all non-Linux systems (#835) 2020-12-01 23:01:57 +01:00
webgeek1234 298b958e2a
Rename jit linkage asm files (#836)
An extension of lower case s indicates to not run the
preprocessor while upper case S does. These files have defines.
2020-12-01 19:48:46 +01:00
RSDuck 6e8bac3909 Merge vram dirty tracking
Squashed commit of the following:

commit b463a05d4b909372f0cd1ad91caa0c77a25e5901
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Mon Nov 30 01:55:35 2020 +0100

    minor fix

commit ce73cebbdf5da243d7ebade82d8799ded9cd6b28
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Mon Nov 30 00:43:08 2020 +0100

    fix dirty flags of BG/OBJ mappings not being reset

commit fc5d73a6178e3adc444398bdd23de8314b5ca8f8
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Mon Nov 30 00:11:13 2020 +0100

    use flat vram for gpu2d everywhere

commit 34ee9fe2bf04fcfa2a5a1c8d78d70007e606f1a2
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Sat Nov 28 19:10:34 2020 +0100

    mark VRAM dirty for display capture

commit e8778fa2f429c6df0eece19d6a5ee83ae23a0cf4
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Sat Nov 28 18:59:31 2020 +0100

    use flat VRAM for textures and texpals
    also skip rendering if nothing changed and a bunch of fixes

commit 53f2041e2e1a28b35702a2ed51de885c36689f71
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Fri Nov 27 18:29:56 2020 +0100

    use vram dirty tracking for extpals
    also preparations to take this further

commit 4cdfa329e95aed26d3b21319c8fd86a04abf20f7
Author: RSDuck <rsduck@users.noreply.github.com>
Date:   Mon Nov 16 23:32:22 2020 +0100

    VRAM dirty tracking
2020-11-30 19:49:18 +01:00
Filippo Scognamiglio acb272ed78
Use ashmem instead of memfd_create on Android. (#816)
* Use ashmem instead of memfd_create on Android.

* Fix code styling issues.

* fix small mistake in merge commit

Co-authored-by: RSDuck <RSDuck@users.noreply.github.com>
2020-11-30 15:33:43 +01:00
WaluigiWare64 7da4550eea
Add support for macOS (#771)
* use shm_open() instead of memfd_create() on macOS

malloc.h isn't a header on macOS

* Change OpenGL headers + create ifdef for DO_PROCLIST

macOS seems to already have the OpenGL functions defined, without the ifdef, it gives "ambiguous references" errors.

* macOS doesn't have ->gregs in uc_mcontext

and it doesn't have REG_RIP either
https://github.com/gperftools/gperftools/blob/master/m4/pc_from_ucontext.m4

* use getpid() to make memory file name unique

* #ifndef __APPLE__ for AF_PACKET and linux/if_packet.h

* Add include and link directories for macOS and link the OpenGL framework

* Add macOS CI

* Use newly added libslirp package from Homebrew

https://github.com/Homebrew/homebrew-core/pull/63412

* Use Apple's Clang instead of GNU GCC on macOS

* Add macOS build instructions to README

* Try to fix macOS undefined symbol

* snprintf doesn't take null terminator into account

* Map new memory on macOS for JIT

* Only use gcc-ar if using GNU Compiler

* re-add fastmem code - whoops!

* Fix style issue - use camelCase not snake_case

* Set Minimum macOS version

* Switch Minimum OS X version to 10.9

* Add macOS libpcap library name

* fix memory leak

* Fix binding keys in macOS

* Allow getting MAC address on macOS

melonDS on Linux uses AF_PACKET, which doesn't exist on macOS. Instead, this commit uses AF_LINK on macOS to get the MAC address.

* Remove unneeded macOS CI dependencies

* Build melonDS app bundle on macOS

Now it is no longer required to install the libraries on macOS, they come with the app bundle.

* fix macOS CI not being able to find macdeployqt

* copy melonDS.app with recursive because it's a folder

* Disable fastmem checkbox on macOS

* Disable fastmem by default in config

* forgot a semicolon

* Don't bundle libraries, causes issues on macOS <10.15

* Update README + allow finding version in Finder on macOS

* Make sure fastmem checkbox stays uncheckable
2020-11-29 17:11:33 +01:00
RSDuck 1ff4a1564f fix DSi mode with interpreter
I'm so stupid
2020-11-26 00:04:19 +01:00
WaluigiWare64 f11d53c69c
Add radio buttons to switch between Direct and Indirect Mode (#822) 2020-11-22 15:31:29 +01:00
WaluigiWare64 a1cf1967ac
Fix fullscreen toggle with joysticks (#821) 2020-11-22 13:00:18 +01:00
RSDuck 50cdfd0137 fix edge indices count 2020-11-19 17:46:21 +01:00
RSDuck 690eed9e26 GPU2D: don't an indirect call in tight loops 2020-11-16 18:33:58 +01:00
RSDuck 842379c410 harmless DMA micro optimisation 2020-11-16 17:22:34 +01:00
RSDuck 1085cc14a4 prevent use after free 2020-11-16 17:03:24 +01:00
RSDuck 21dbca9543 use proper index buffers 2020-11-16 15:58:23 +01:00
Raphaël Zumer 550241dbad
Fix GBA file drag-and-drop when the system is off (#817) 2020-11-15 16:15:09 +01:00
RSDuck 05b94eff66 make audio output thread safe(r?) 2020-11-15 15:29:38 +01:00
RSDuck d697f9e0d2 make fastmem work again 2020-11-13 15:20:53 +01:00
RSDuck 62e3f41f20 delay savefile flush to the end of the frame 2020-11-11 13:38:05 +01:00
RSDuck 2720df9650 make platform objects typesafer and add mutex 2020-11-09 21:52:35 +01:00
RSDuck 052079afeb fix Windows 2020-11-09 20:56:31 +01:00
RSDuck 78839f862e JIT fixes
- fix fastmem problems on linux
- small fix memory leak
- SlowWrite functions always take in a 32-bit variable so that the C compiler knows that the values aren't necessary zero extended
- a few other stylistic things
- handle SIGBUS as well (for macos)
2020-11-09 20:43:31 +01:00
RSDuck ad7791f726 better framelimiter for reference: https://github.com/citra-emu/citra/blob/master/src/core/perf_stats.cpp#L129 2020-11-02 20:13:22 +01:00
Filippo Scognamiglio fbca47381b
Fix a couple of wrong cpp function pointers. (#785) 2020-10-31 17:53:01 +01:00
Filippo Scognamiglio 45ea1fa990
Fix compilation issues on pedantic cpp compilers. (#783)
* Fix compilation issues on pedantic cpp compilers.

* Avoid using fullblown static function.
2020-10-31 17:40:05 +01:00
RSDuck 9ac60a840a SPU: work with scalars instead of arrays 2020-10-31 13:48:02 +01:00
Hypnotron 05e274a1f6 Added 8/16-bit IPCFIFOSEND writes 2020-10-29 16:09:25 -04:00
RSDuck c03d83b7be remove qt_sdl dependency from frontend util 2020-10-28 19:45:50 +01:00
Arisotura d2cd3eadbe fix to timers (ZXDS no longer runs slow as shit) 2020-10-27 05:03:17 +01:00
Arisotura 81964a0f89 make things function atleast somewhat
no pciture is being actually sent yet
2020-10-26 21:54:08 +01:00
Arisotura c0c1c2e1c2 camera: remember PLL config 2020-10-26 21:16:20 +01:00
Arisotura fc922ffb14 Merge branch 'master' into dsi_camera
# Conflicts:
#	src/DSi_I2C.cpp
2020-10-26 20:47:30 +01:00
Arisotura 49a96f41da I2C: silence logging for devices A0/E0 (mysterious alternate cameras) 2020-10-26 20:34:54 +01:00
Arisotura 2f15bcf93b betterer battery level 2020-10-26 17:55:25 +01:00
Arisotura af0a9e92c4 make unlaunch'd NANDs work 2020-10-25 18:25:09 +01:00
Arisotura 9fdc1de6fe add a few missing 32bit I/O accesses (IPC, SPI) 2020-10-25 18:14:40 +01:00
WaluigiWare64 8d70d0926c
Merge branch 'master' into feature/zip-support 2020-10-23 00:39:29 +01:00
WaluigiWare64 a8851a51f1 Switch to libarchive 2020-10-22 23:41:26 +01:00
RSDuck 65be1840f0 change JIT branch optimisations default to 1
branch linking is dead
2020-10-15 05:59:45 +02:00
Madhav Kanbur dc46da0e24 Input : Treat numpad keys as keypresses
Typically, modifiers are masked out of keypresses to distinguish
between hotkeys and keypresses. This patch prevents the numpad
modifier from getting masked out in KeyPress() and KeyRelease().

Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>
2020-10-13 11:02:58 +05:30