Commit Graph

865 Commits

Author SHA1 Message Date
Arisotura 36f1e6f475 remove glBindImageTexture (4.2) 2019-06-30 16:57:30 +02:00
Arisotura 1b98a3e3a0 fix 'shift by register' operands: always only take the lower 8 bits of the register, fix handling for LSL/LSR >32
fixes #479
2019-06-27 14:05:51 +02:00
Arisotura 204b5d8700 HARK HARK HARK 2019-06-25 19:29:21 +02:00
Arisotura 4d775dcf85 fix OpenGL deinit when closing emu 2019-06-25 17:37:32 +02:00
Arisotura 1d8902c631 remove stupid hack that caused more problems than it fixed 2019-06-25 13:09:06 +02:00
Arisotura 58575f82b7 libui/windows: backport fix for #471 2019-06-25 12:29:56 +02:00
Arisotura 49b2f8d969 raise kMaxIterationCycles to 64 2019-06-25 02:05:48 +02:00
Arisotura e2dc98d144 fix bug when mapping a joystick axis control but no button 2019-06-20 16:31:28 +02:00
Arisotura f59094e033 OpenGL: disable vsync, atleast under Windows 2019-06-20 16:00:12 +02:00
Arisotura 77bf92a272 Merge branch 'master' of https://github.com/Arisotura/melonDS 2019-06-20 13:57:34 +02:00
Arisotura 6d01677a57 add 32bit writes to some IO ports. fixes #313 2019-06-20 13:57:14 +02:00
RSDuck dac9ccc577 fix OGL renderer not working at all on some GPUs 2019-06-17 13:14:52 +02:00
StapleButter c4182b5ad3 BAHAHHAHAHAHH 2019-06-12 14:03:06 +02:00
Arisotura 34c60eaca4 fix bugs with line polygons 2019-06-12 13:14:11 +02:00
Arisotura 886bf6bc10 prevent loading savestates that are too recent 2019-06-12 12:49:52 +02:00
Arisotura 27f758d353 hack so that the GL renderer can render lines 2019-06-12 03:55:40 +02:00
Arisotura 4553da720c add setting for showing/hiding OSD 2019-06-12 03:32:25 +02:00
Arisotura ea5dc39e83 cheapass fix for texture positions, atleast effective at 1xIR 2019-06-12 02:55:38 +02:00
Arisotura a3fed77da3 somewhat better edge marking 2019-06-12 02:23:40 +02:00
Arisotura 711fda469e stop fast-forward hotkeys from getting lost every damn time 2019-06-12 01:39:12 +02:00
Arisotura 4abf0473c2 add pause/reset hotkeys 2019-06-12 01:12:49 +02:00
Arisotura 1cb8f3c8b2 rework input/hotkey code to suck less, implement the new features 2019-06-12 00:59:51 +02:00
Arisotura 82f4f4fdcb fix bugs, make it more responsive 2019-06-11 23:48:49 +02:00
Arisotura bfc12a038e add ability to map joystick axes, too
and add support for multiple hats
2019-06-11 23:41:48 +02:00
Arisotura 1ea25ac6f1 add ability to map keys with modifiers, only in config UI for now 2019-06-11 23:16:15 +02:00
Arisotura 4447e010d7 actually save the current joystick ID 2019-06-11 18:57:22 +02:00
Arisotura b9183b8818 begin work on multiple joystick support 2019-06-11 18:55:04 +02:00
Arisotura 543a40c7cb add some OSD messages. prepare shit. 2019-06-11 04:04:49 +02:00
Arisotura 3c70015da7 software renderer: fix rendering of line polygons. fixes #350 2019-06-11 03:10:32 +02:00
Arisotura 09cfdc6e76 pft 2019-06-10 18:24:38 +02:00
Arisotura fd28391160 fix ass-stupid bug in CP15 PU region setup 2019-06-10 15:29:40 +02:00
Arisotura d28035674a GPU2D: hardware renders sprites one scanline in advance.
fixes #375 (midframe OAM update)
2019-06-10 03:05:26 +02:00
Arisotura 9ab331c6dd fix more stupid shit. askzjkdsf 2019-06-09 20:44:35 +02:00
Arisotura c056dfe509 fix fog alpha 2019-06-09 19:53:28 +02:00
Arisotura 086354a420 miserable, feeble little attempt at edge marking 2019-06-09 19:32:02 +02:00
Arisotura 434a3007e2 fasterer BG/OBJ VRAM reads 2019-06-09 16:06:01 +02:00
Arisotura 00a5576492 fasterer IRQ check. clean up code. 2019-06-08 22:16:51 +02:00
Arisotura 8fc30d69c5 fix last bugs when changing video settings with no game loaded 2019-06-08 13:06:36 +02:00
Arisotura bc53ff35a9 this is the same thing, but, for the sake of consistency 2019-06-08 12:39:52 +02:00
Arisotura eaaf5ec93b also, don't hardcode the timer interval in the callback 2019-06-04 16:19:49 +02:00
Arisotura 86b4cbcb03 when closing an input config dialog, remove SDL timer if needed
fixes #429
2019-06-04 16:17:30 +02:00
Arisotura c8472a67c1 make capitalization consistent 2019-06-04 15:56:09 +02:00
Arisotura 97f4b5f70b
Merge branch 'master' into fast-forward-hotkey 2019-06-04 15:53:08 +02:00
Arisotura 3134c8fc66 add support for setting key mappings to none 2019-06-04 15:44:40 +02:00
Arisotura e3dc4e122a use OSD for some actual purposes 2019-06-03 17:01:53 +02:00
Arisotura 2b3ca2089f take the OSD shito somewhere 2019-06-03 16:45:55 +02:00
Arisotura 4a4415fc2e more work on OSD 2019-06-03 15:00:49 +02:00
Arisotura 43e3e53afc fix some shito 2019-06-02 21:45:36 +02:00
Arisotura 5487a4e71c fix bugs when changing 3D renderer with no game loaded 2019-06-02 15:22:37 +02:00
Arisotura 6de19645f8 fix potential crash when running the software renderer (oops) 2019-06-02 14:57:59 +02:00
Arisotura 3aa971403b lay base for OSD 2019-06-02 14:33:20 +02:00
Arisotura 78208a9728 OpenGL: fix cases of layers/sprites blending over the 3D layer 2019-06-01 03:39:35 +02:00
Arisotura 27d21e06df use regular slash instead of backslash in config file name. fixes #413 2019-06-01 02:54:38 +02:00
Arisotura 06e08b053f do binding of VS inputs and FS outputs before linking shader programs, as per OpenGL standard.
should fix the rendering issues with strict drivers (AMD, Intel).
2019-05-31 02:26:13 +02:00
StapleButter 6f5e45ef2c also, properly delete glarea framebuffers on exit 2019-05-30 23:16:56 +02:00
StapleButter b9529e8361 Linux: fix uiGLGetProcAddress() 2019-06-01 00:27:54 +02:00
Arisotura 5d5e8ceced BAHAHAHAHAHHAHHHHH-~*+ 2019-05-31 21:57:11 +02:00
Arisotura f6814e02c0 * add needed libui functions under Windows, even if they don't do a whole lot
* fix ass-stupid fog bug
2019-05-31 21:37:30 +02:00
StapleButter 65ccf2a717 blarg 2019-05-31 19:29:48 +02:00
StapleButter 1a3314f0bd GL: don't draw the screens when nothing is running 2019-05-31 12:25:16 +02:00
StapleButter 464b116916 fix the whole mutex shito
fixes potential crash when resizing window
2019-05-31 04:15:37 +02:00
StapleButter d8d7ba9251 fix potential crash when switching video output methods 2019-05-31 03:18:09 +02:00
StapleButter c49dec1acd try to fix fog consecutively to the Intel fix. still not perfect for whatever reason
also clean up more code
2019-05-31 03:00:53 +02:00
StapleButter 3ef00f8fa6 attempt at fixing THE FLICKERING without making everything shitty. also, clean up code 2019-05-31 02:21:41 +02:00
StapleButter 27d451d07a clean up code, attempt at shit 2019-05-31 01:46:47 +02:00
StapleButter ea669190aa fix crash when using -O3.
gcc will try to optimize the memfill with MMX opcodes, but those seem to crash if the memory isn't aligned to a 8-byte boundary.
2019-05-30 18:05:52 +02:00
StapleButter ce9d728fb6 fix cleanup of libui objects when closing melonDS
fixes to Cmake shito
attempt shit
2019-05-30 17:29:41 +02:00
StapleButter ee61b97ec9 OpenGL renderer: fix for Intel driver (doesn't like RGB8UI framebuffers) 2019-05-30 02:44:49 +02:00
StapleButter 891ab9fd3c Linux: start getting somewhere with the whole OpenGL shito 2019-05-28 19:48:59 +02:00
PoroCYon ebad773a38 apply tgsm's changes (see PR #411 ) 2019-05-26 00:50:27 +02:00
PoroCYon 38f61a24fc 'port' libui GL stuff to Linux
Only implemented the functions needed by melonDS, and only tested using
a very recent mesa+libglvnd+nouveau. Will most likely bork using
proprietary nvidia or old(er) drivers (see gl.c)
2019-05-26 00:38:24 +02:00
PoroCYon 31e0f15797 fix oudated CMake compile settings, add OpenGL dependency for Linux 2019-05-26 00:37:51 +02:00
StapleButter 99dbbb0b04 gfghfshdf 2019-05-25 22:23:43 +02:00
Arisotura dd14a3e88e for config dialogs that reflect changes instantly, make behavior of window close button consistent with that of Cancel button 2019-05-25 21:03:39 +02:00
Arisotura eb6fe823f8 close any opened dialogs when closing the main window 2019-05-25 20:58:32 +02:00
Arisotura af581513fb * remove old 'threaded 3D' setting from emu settings dialog
* remove 'antialiasing' for now
2019-05-25 20:51:26 +02:00
Arisotura 94f5ecb647 Merge branch 'blackmagic'
BAHAHAHHAHAHAHAAHAHAHAHHH

HARK HARK HARK HARK HA-*~
2019-05-25 20:42:27 +02:00
Arisotura 9ed1dda9ca fix possible crash 2019-05-25 19:52:56 +02:00
Arisotura 956c2c5d86 finalize the GL/software switch 2019-05-25 19:47:19 +02:00
Arisotura 70a3243714 simpler GPU-compositing. will make it easier to grab neighbor 2D/3D pixels individually for filtering. 2019-05-25 19:36:47 +02:00
Arisotura 8c93a45574 also support alpha-only fog 2019-05-25 13:45:00 +02:00
Arisotura 478ca019da implement fog correctly
also some base work for edgemarking
2019-05-25 13:43:06 +02:00
Arisotura 7cdeb7fa4e feeble, miserable little attempt at emulating fog 2019-05-25 04:28:00 +02:00
Arisotura 04f1809dd1 finish fixing shadows 2019-05-25 02:34:14 +02:00
Arisotura 182e123598 fix shadow bugs
bahaahah
2019-05-25 01:55:44 +02:00
Arisotura 8a63c76f4f of course
I'm a complete and absolute fucking idiot
2019-05-24 02:41:24 +02:00
Arisotura 9e2f47f4a0 fix more bugs 2019-05-24 02:35:25 +02:00
Arisotura 0bb3321262 getting somewhere?? 2019-05-24 02:29:16 +02:00
Arisotura 79ea104931 properly recreate window based on changes to either video output method or 3D renderer 2019-05-24 02:12:46 +02:00
Arisotura 667dee6754 more code botching
it's less shitty tho

but still has bugs
2019-05-24 02:04:41 +02:00
Arisotura e5236f0cde add API for getting/setting window size
bahahahaaa
2019-05-23 22:50:46 +02:00
Arisotura 3915b8cb4e botch the code 2019-05-23 22:41:21 +02:00
Arisotura db396e992b welp.
progress
2019-05-21 22:28:46 +02:00
Arisotura c835b24f07 modify libui GL support so that it will be compatible with GTK 2019-05-21 14:53:22 +02:00
Arisotura 139c2d24ec burp 2019-05-20 22:24:11 +02:00
Arisotura b493c24128 remove reference to GL version 4.3 from filenames and namespaces 2019-05-20 00:05:37 +02:00
Arisotura a4417b727a lower GL requirement of renderer itself to 3.1 2019-05-19 23:59:43 +02:00
Arisotura 1fb3968047 properly clean up GL resources 2019-05-19 23:06:42 +02:00
Arisotura 6dbb645ffa make shadows work without relying on black magic.
clean up the code some.
2019-05-19 22:08:30 +02:00
Arisotura 50cc38d781 botch more code 2019-05-19 19:47:23 +02:00
Arisotura cd8236303e begin botching the code
BAHAHAHAAAA
2019-05-19 19:37:13 +02:00
Arisotura 61c1ebe01c finally fix shadows, mostly 2019-05-18 02:34:14 +02:00
Arisotura 5448969ca1 'fix' shadows 2019-05-18 02:16:07 +02:00
Arisotura f5a7cb71fd also, do master brightness 2019-05-18 01:42:50 +02:00
Arisotura a752b1d7c2 woops 2019-05-18 01:32:31 +02:00
Arisotura f1a970ec30 actually finish display capture in hardware-accel mode 2019-05-18 01:21:46 +02:00
Arisotura de287825ee start work on display capture
also fix a bug in the compositing shader
2019-05-17 22:50:41 +02:00
Arisotura 26f997172b fix 3D doublebuffering 2019-05-17 19:09:41 +02:00
Arisotura 8bf4557175 make screen shaders work with OpenGL 3.1 2019-05-17 15:47:40 +02:00
Arisotura 72920bb763 fix 3D on bottom screen 2019-05-16 22:04:27 +02:00
Arisotura c1746f0c60 BAHAHAHHHH
HARK HARK HARK
2019-05-16 20:58:07 +02:00
Arisotura c81bcccadc BAHAHAHAHAHAHAHAA 2019-05-16 16:27:45 +02:00
Arisotura f2282e9e32 Arisotura is a fucking derp 2019-05-16 01:46:09 +02:00
Arisotura 4b874cc440 make GL renderer able to coexist with GL screen drawing 2019-05-16 01:08:53 +02:00
Arisotura f75106c61b don't hardcode screen sizes 2019-05-16 00:46:50 +02:00
Arisotura f2725791d8 preliminary, shitty, code for drawing the main window with OpenGL 2019-05-16 00:30:55 +02:00
Arisotura 256b8cb69c botch GL support. 2019-05-15 19:49:21 +02:00
Arisotura a89366cb5a begin butchering uiArea 2019-05-15 16:43:56 +02:00
Jon Pacheco f769d6e23f Ensure that 'Limit framerate' option is synced with the toggle hotkeys 2019-05-14 17:29:49 +01:00
Arisotura 4d427c9d2d BAHAHAHAHAHA 2019-05-14 17:45:16 +02:00
Arisotura 71ecb6a65b derping around 2019-05-14 15:10:58 +02:00
Rafael Caetano 3a9410b5d0 Firmware backup writing now uses OpenLocalFile 2019-05-13 23:05:50 +01:00
Arisotura 02b4919005 resolution switch somewhat functional 2019-05-12 17:43:39 +02:00
Arisotura f5ba35ca9f don't scale the screen gap 2019-05-12 16:47:34 +02:00
Arisotura 0a464c504d de-hardcode the GL renderer.
init framebuffer to black.
fix bugs.
2019-05-12 16:32:53 +02:00
Arisotura a32c5c99bb finish de-hardcoding it. also, code 4x variant (not that I guarantee it to be fast, but hey, it's here) 2019-05-12 15:58:12 +02:00
Arisotura 2a0bc4e700 make GPU2D somewhat more flexible. change LineScale to be log2. 2019-05-12 15:45:58 +02:00
Arisotura c88981b589 split framebuffer.
setup doublebuffering inside GPU.cpp.
avoid copying a whole framebuffer every frame. better performance at higher res.
2019-05-12 15:01:40 +02:00
Jon Pacheco 7d2ba09fd7 Add fast forward hotkeys 2019-05-12 11:41:46 +01:00
Arisotura 939a376389 add relevant config entries 2019-05-12 04:40:44 +02:00
Arisotura 39080be9b7 draft video settings dialog with the envisioned features 2019-05-11 16:12:57 +02:00
Arisotura b730bb8902 welp 2019-05-11 15:36:42 +02:00
Arisotura 53b2262917 calculate hi-res vertex positions. reduces shaking of polygons when rendering at a higher res. 2019-05-11 15:14:59 +02:00
Arisotura 5c9df6a4e5 attempt to take shadow support a bit further. 2019-05-11 15:01:54 +02:00
Arisotura 858c0eecb9 scale screen gap
also moar optimization...
2019-05-11 01:46:38 +02:00
Arisotura 44e1593e1f some optimization to the 2D pipeline 2019-05-10 22:22:17 +02:00
Arisotura 7a2504a3a4 fix derpy bug 2019-05-10 18:22:34 +02:00
Arisotura 492d2cfa69 implement texture blending/shading modes 2019-05-10 17:49:13 +02:00
Arisotura b74587a482 * optional path for chunked rendering (might be faster, but not always)
* fix bugs
2019-05-10 16:30:20 +02:00
Arisotura 13b0d13e23 move code around 2019-05-10 15:59:46 +02:00
Arisotura 92d67a17de (disabled) proof-of-concept antialiasing 2019-05-10 02:28:26 +02:00
Arisotura 8efc8623ad do not hardcode GL screen size all over the place 2019-05-10 01:52:05 +02:00
Arisotura f1d1a9b828 temp fix for color effects 2019-05-08 03:24:22 +02:00
Arisotura fb4f972cad hires hax. somewhat functional 2019-05-08 01:58:34 +02:00
Arisotura 587d432677 don't do OBJ window if it isn't enabled (oops) 2019-05-07 21:19:33 +02:00
Arisotura 99b07f9300
Merge pull request #398 from Nadia-h/master
Revamp CMake build system
2019-05-07 20:18:18 +02:00
Cameron Cawley f91eb18152 Fix all -Wwrite-strings warnings 2019-05-04 14:07:02 +01:00
Arisotura 83331bc7e5 lay base for hi-res rendering
IT'S A PILE OF HACKS
2019-05-03 19:28:15 +02:00
Arisotura dc68842db4 some work on shadows.
(still need to check opaquePolyID)
2019-05-03 18:55:45 +02:00
Arisotura 3d77087320 betterer transparency support 2019-05-02 13:44:54 +02:00
Arisotura 1e29e1242d beginning work on transparency support.
floats suck.
depth/stencil textures suck.
the world sucks.
burn it down.

r e v o l u t i o n

in the meantime getting this shit working wouldn't be too bad tho.
2019-05-02 04:16:48 +02:00
Arisotura 4a776f5d5b half-proper screen clear.
still missing bitmap mode, but atleast you can play NSMB without being in the dark.
2019-05-02 02:28:31 +02:00
Arisotura 8c2b4b4813 very evil shit 2019-05-01 23:35:48 +02:00
Nadia Holmquist Pedersen a462774ad3 Removed commented code 2019-05-01 06:18:36 +02:00
Nadia Holmquist Pedersen 9c9b2e79ce Remove unnecessary commonted-out lines 2019-05-01 05:20:06 +02:00
Nadia Holmquist Pedersen b31b5ed66a Revamp build system 2019-05-01 05:16:54 +02:00
Arisotura 88bc765455 don't lose half the zbuffer range 2019-04-29 19:13:20 +02:00
Arisotura ffa0ddd94c fix the alpha0 shit 2019-04-29 18:52:23 +02:00
Arisotura 41e7af8412 add remaining texture types 2019-04-29 18:47:32 +02:00
Arisotura e7be82430b texcoord wrap modes 2019-04-29 18:24:36 +02:00
Arisotura eb9cfd12d4 * add type5 textures
* fix texture distortion. I knew it was something stupid like that.
2019-04-29 13:05:15 +02:00
Arisotura 2a63ba40d7 support 256-color textures.
but ass-batteringly shitty.
2019-04-29 04:19:56 +02:00
Arisotura 85b3bdebd1 avoid potential division by zero in framerate counting when running uberfast. likely fixes #394 2019-04-27 20:53:58 +02:00
Arisotura 6febd79f83 finally get wbuffering covered. 2019-04-25 13:32:15 +02:00
Arisotura 448806fada weak little attempt at a zbuffer.
still bad for wbuffering because of course it is
2019-04-24 22:38:50 +02:00
Arisotura 15b7903170 now with perspective correction! 2019-04-10 23:55:34 +02:00
Arisotura 3888518575 here, have vertex colors 2019-04-10 23:47:58 +02:00
Arisotura 210a5b583e make it actually work without asploding half the geometry
also, fix colors
2019-04-10 23:25:01 +02:00
Arisotura ccc9608ad2 it renders shit!!
albeit in monochrome and with fucky clipping for some reason
2019-04-10 22:49:06 +02:00
Arisotura 32c75e20a6 here, have shader shit 2019-04-09 23:23:24 +02:00
Arisotura 00341bbae5 actually, seems faster to read it all at once?? 2019-04-01 04:58:21 +02:00
Arisotura 4bf75a8d8e glörg 2019-04-01 04:52:03 +02:00
Arisotura 1f13d9ce80 * move GL init to main thread
* fix potential bug causing the screen bitmap to be created twice
2019-04-01 04:50:48 +02:00
Arisotura 2d0d501d1f probs better this way
(ultimately RequestLine should be axed)
2019-04-01 04:22:03 +02:00
Arisotura 8bc4ca3fc8 fasterer framebuffer read 2019-04-01 04:20:43 +02:00
Arisotura f8751bd1fb first attempt at things
(also fix softrenderer reset)
2019-04-01 02:51:31 +02:00
Arisotura f1628b98de adding that file might be good, too 2019-03-31 21:54:42 +02:00
Arisotura b48fe5909b * add some GL base to libui (only for Windows for now)
* make the Codeblocks project a bit less braindead (don't repeat libraries for each build target)
2019-03-31 21:54:14 +02:00
Arisotura 75f8cbf953 draft API for OpenGL shito in libui 2019-03-31 21:15:45 +02:00
Arisotura b9703d2e8f fix CP15 control reg init during direct boot (fixes LMNTS demo regression) 2019-03-30 23:49:22 +01:00
PoroCYon fe29bfad44 fix stupid compilation issues on Linux 2019-03-30 16:51:32 +01:00
Arisotura 2a2e6a0c76 fix potential memleak under Windows 2019-03-30 12:33:10 +01:00
Arisotura 60a728283e * remove EmuDirectory from the core
* rework OpenLocalFile(), make the code more elegant, also fixes #352
2019-03-27 13:54:33 +01:00
Arisotura f08b87b41f * move melon_fopen_local() to Platform.cpp
* make it require that the file already exist (hopefully fixing config saving bug)
* finally axe melon_fopen.cpp
2019-03-27 13:34:26 +01:00
Arisotura 6d7e80b677 move melon_fopen() to Platform.cpp
melon_fopen_local() will need fixoring
2019-03-27 04:23:03 +01:00
Arisotura 5d127f9e55 woops 2019-03-26 18:39:52 +01:00
Arisotura 633fb0f555 NDSCart: KEY1-gap delays don't apply when the WR bit is set. fixes #377 2019-03-26 18:34:01 +01:00
Arisotura 5941d57236 extra safety for the case of an empty platform config file 2019-03-26 15:11:32 +01:00
Arisotura 785716ac41 * readme update
* remove TODO that has already been done
2019-03-26 13:38:59 +01:00
Arisotura 02f989d3d8 BAHAHAHAHAH 2019-03-26 03:33:30 +01:00
StapleButter c43574207a add pcap code for Linux. fix bugs. 2019-03-26 02:53:17 +01:00
StapleButter f86782cc2e make it compile under Linux.
it shits itself tho.
2019-03-26 01:58:03 +01:00
Arisotura d67437a11e remove aggressive logging 2019-03-26 01:44:27 +01:00
Arisotura 211aa8ebb1 not gonna need that crap 2019-03-17 01:29:55 +01:00
Arisotura b52458d7be here have more code aaaaaaaaaaaaa 2019-03-15 01:08:37 +01:00
Arisotura 4de4631c15 move platform specific config to platform specif ffile ayyyyyyyyyyygfghj;,gnxbf 2019-03-15 00:58:29 +01:00
Arisotura 5edf40f665 UDP: forward received data 2019-03-09 22:41:56 +01:00
Arisotura d59a52df1f * lay base for UDP
* only handle DNS when it's destined to our internal DNS server
2019-03-09 22:14:34 +01:00
Arisotura 9485a4e8c0 properly close sockets, so that they can be reused 2019-03-09 02:30:05 +01:00
Arisotura 7d2b3bbf76 fix TCP checksum for odd lengths 2019-03-09 02:04:01 +01:00