Commit Graph

769 Commits

Author SHA1 Message Date
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