Commit Graph

2415 Commits

Author SHA1 Message Date
RSDuck 7ac2eb2d71 attempt at fixing Windows build 2024-09-15 07:38:28 +02:00
RSDuck a3d696121e rework gdb packet parsing
it should be a bit more robust now
2024-09-15 07:30:53 +02:00
Nadia Holmquist Pedersen 50d32f3c96 flake: clean up dependencies a bit
* qt6.* instead of kdePackages.*
* use an extra-cmake-modules that depends on Qt6 rather than 5, and
  exclude it on macOS
2024-09-13 05:43:39 +02:00
RSDuck 74f479ce6d gdb stub config setup fixes 2024-09-11 14:41:22 +02:00
Jakly f719438a6e
Improve calculation of light colors (#1967)
* maintain precision until all lights are calculated

fixes lugia on the soul silver title screen

* small optimization

* small note

* small cleanup/notes

shouldn't need to check that every time, since the variable shouldn't be able to overflow

* hw doesn't cap difflevel at 255

Should it cap at all?
Can vtx colors overflow...?

* diffuse level appears to be shifted right by 9

fixes some minor inaccuracies

* improve specular lighting a little

* small improvement to diffuse lighting

fixes a few off by ones
- finding by azusa

* small tweaks

* handle overflows of diffuse lighting properly

-credits to azusa once more

* attempt at improving specular lighting calcs

still far from correct, but its a start.
fixes: https://github.com/melonDS-emu/melonDS/issues/1545

* meh

* improve specular lighting further

* add notes

* theory: add half vec instead of subt 1

* implement azusa's specular lighting algorithm

* fix minor edge case with spec lighting

* give proper credit in comments

* fix some bugs/misc tweaks

* more quirky overflow/underflow handling

* fix a spec lighting edgecase

remove some redundant parentheses

* fix an edge case with light vector calcs

* spec recip uses a different calc for light dir?

also remove a check that shouldn't be mathematically possible to trigger

* nvm that thing i thought couldn't trigger was required

also move reciprocal calc into the light vector calc function since i might as well now ig

* replace a bunch of stuff with much *much* simpler algorithms

* misc cleanup

PARENTHESES WOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

* leave a note abt shininess table's default value being incorrect
2024-09-10 16:13:51 +02:00
Nadia Holmquist Pedersen 268c4f14c1 vcpkg: support building on Linux 2024-09-06 22:50:12 +02:00
Nadia Holmquist Pedersen d18524d5ac Nix: Add dev shell for building using vcpkg 2024-09-06 19:44:48 +02:00
Nadia Holmquist Pedersen 277b151ada update vcpkg and nixpkgs 2024-09-06 13:39:42 +02:00
Alex 4f6498c99c
Fix "Ejected GBA cart" not adding a newline (#2140) 2024-08-21 13:39:34 +02:00
Jesse Talavera 824eb370e4
Fix the build when the JIT is disabled (#2139) 2024-08-19 15:21:34 +02:00
Arisotura 0e6235a7c4 LAN: remember player name and max players setting 2024-08-15 13:34:27 +02:00
Arisotura 5b986d3111 wifi: add hack to facilitate multiplayer connections (extend post-beacon interval when connection is being initiated) 2024-08-14 16:47:08 +02:00
Nadia Holmquist Pedersen 2fff4c0b5a vcpkg: build qtbase with harfbuzz enabled, fixes windows widget drawing 2024-08-14 06:42:06 +02:00
Nadia Holmquist Pedersen deb1ba2bb2 README: Update build instructions to include enet and qtsvg
(input and battery dialogs don't render correctly without qtsvg, we
should have been installing it)
2024-08-13 08:40:10 +02:00
Nadia Holmquist Pedersen f54b6311c1 ubuntu... 2024-08-13 08:05:36 +02:00
Nadia Holmquist Pedersen cb6f60c383 ci: Linux runners should install qtsvg for proper bundling 2024-08-13 07:59:38 +02:00
Nadia Holmquist Pedersen c6cab9ed41 mac-libs.rb: Make bundling a bit smarter
* Resolve symlinks to avoid including the same thing twice (like
  version-numered dylib symlinks)
* Look in all Qt prefix paths for plugins - the package may not
  necessarily have the same path
* reduce install_name_tool invocations to make it a bit faster
* change dylib IDs to remove original source path
2024-08-13 07:53:09 +02:00
Nadia Holmquist Pedersen e290c42360 flake: add wayland to library path like nixpkgs does 2024-08-11 04:54:05 +02:00
Nadia Holmquist Pedersen 5598065985 Netplay.cpp should not include main.h, also fix a format warning 2024-08-11 03:14:14 +02:00
Arisotura 8d31875902
Backport LAN (#2131)
backport the old LAN feature to the modern melonDS codebase.
2024-08-10 23:20:50 +02:00
Nadia Holmquist Pedersen ec71b15505
Add a Nix flake (#2097)
Adds a Nix flake, allowing easy building and running of melonDS using the Nix package manager, as well as potentially very stable and reproducible CI in the future.
2024-08-08 05:36:06 +02:00
Nadia Holmquist Pedersen 53c58bd777 fix potential issue with glib shim min/max defines 2024-08-07 17:49:29 +02:00
Nadia Holmquist Pedersen 4359bccfcb fix the slirp shit some more 2024-08-07 17:45:56 +02:00
Nadia Holmquist Pedersen b47563e888 Apply FixInterfaceIncludes to the slirp package again to work around
package inconsistencies
2024-08-07 17:28:25 +02:00
Nadia Holmquist Pedersen a174901412 fix building with system libslirp 2024-08-07 17:24:07 +02:00
Nadia Holmquist Pedersen 8423dae6ff Add "Open melonDS directory" menu option 2024-08-07 15:53:58 +02:00
RSDuck dd386d12a9 use templates to only execute GDB stub related code if enabled 2024-08-05 03:23:49 +02:00
pants64DS 76c2723f5c
Fix console output on Windows (#2122)
Co-authored-by: pants64DS <pants64DS@users.noreply.github.com>
2024-08-02 02:21:37 +02:00
CasualPokePlayer 757a608b6e
Fix a few compiler warnings (#2063) 2024-08-01 23:26:46 +02:00
Jakly 54e87c915f
fix a couple polygons (#1920)
hw prioritizes the earlier vertex instead of leftmost
2024-08-01 22:55:00 +02:00
Jakly 12be06beb6
fix gdb stub causing the emulator to hang on undefined instructions (#2054)
* dont hang on undefined instruction

* Add spaces

---------

Co-authored-by: Kemal Afzal <RSDuck@users.noreply.github.com>
2024-08-01 22:48:52 +02:00
Jakly 161bd9d3d2
Default zero dot display register to the 24 bit integer limit (#1968)
* 0 dot disp defaults to the 24 bit integer limit

* useless correction

it goes through the reset function to set the variable on boot anyway but why not have the initialized state be correct too
2024-08-01 22:46:05 +02:00
Jakly d0a7239f15
fix some bugs with compressed texture look up (#2051) 2024-08-01 22:44:04 +02:00
Jakly 29c67f2140
implement 16 bit r/w IF and DISPCAPCNT (#2061) 2024-08-01 22:41:21 +02:00
Jesse Talavera 327ce45124
Refactor network implementations to be more reusable and less buggy (#2107)
encapsulate network interfaces
2024-08-01 22:02:45 +02:00
Jesse Talavera c6bf5d5181
Allow `AREngine` to be used independently of `ARCodeFile` (#2108)
* Make `EmuInstance::cheatFile` use a `unique_ptr`

- Fixes a memory leak, as the cheat file wasn't cleaned up in the destructor

* Split `AREngine` and `ARCodeFile` apart

- Suitable for frontends that have their own way of storing cheats
- Store the cheats in `AREngine` in a `std::vector`
- Apparently cheats are _supposed_ to be executed each frame; I didn't understand this until recently
2024-08-01 22:01:00 +02:00
Nadia Holmquist Pedersen f3f6a6a194 Fix building on i686 Linux
I doubt anyone actually cares about support for it but hey may as well?
2024-08-01 21:57:32 +02:00
pants64DS 37c0320cbe
Fix an inaccuracy with the No$gba debug registers 04fffa14 and 04fffa18 (#2119)
Writing to either of the two registers would print one newline too many

Co-authored-by: pants64DS <pants64DS@users.noreply.github.com>
2024-07-31 01:13:06 +02:00
RSDuck b778fbaad1 attempt at correct utf8 decoding for toml config file path 2024-07-30 17:48:41 +02:00
Nadia Holmquist Pedersen 01c2d65f07 Explicitly include QModernWindowsStylePlugin in static builds
I hope this'll make it look right.
2024-07-30 03:10:01 +02:00
Nadia Holmquist Pedersen d62c61ba08 vcpkg 2024.07.12 2024-07-30 00:43:15 +02:00
RSDuck 12563fb636 use platform file functions for savestates and NAND importing file check
should fix character encoding issues on Windows
2024-07-29 00:15:19 +02:00
Nadia Holmquist Pedersen c0ada2f445 Fix invalid .gitattributes entries 2024-07-28 03:23:07 +02:00
Nadia Holmquist Pedersen ececf337f2
Build Windows CI builds with vcpkg and Qt 6 (#2112)
If using Qt 6 becomes a problem in terms of compatibility, toggle it off in the CMakePresets.json.
2024-07-27 17:22:35 +02:00
Nadia Holmquist Pedersen d31eabb6fa Don't disable firmware settings controls when override external firmware
settings is disabled
2024-07-27 16:56:29 +02:00
Jesse Talavera 837a582087
Expose some fields of `DSi_BPTWL` needed to support direct boot (#2103)
expose boot flag
2024-07-21 17:23:19 +02:00
Jesse Talavera 821f5f5f29
Allow frontends to use different headers for OpenGL declarations (#2102) 2024-07-21 17:02:31 +02:00
BueniaDev 9b828c2cde
Implement Rumble Pak support. (#2101) 2024-07-21 17:01:30 +02:00
Nadia Holmquist Pedersen 5eadd67df6 EmuInstance: Use GetLocalFilePath to get the wfcsettings path
Fixes the file being created in the current working directory.
2024-07-17 15:44:47 +02:00
Nadia Holmquist Pedersen 4b17de7e8c Fix annoying Qt touch event deprecations for real this time 2024-07-15 14:37:37 +02:00