Commit Graph

881 Commits

Author SHA1 Message Date
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
Arisotura cde1963e63 better TCP sequence numbers 2019-03-09 01:34:57 +01:00
Arisotura f3f4613b4e somewhat better TCP
still not perfect
2019-03-09 00:47:55 +01:00
Arisotura e026574901 receive data, too 2019-03-06 18:21:12 +01:00
Arisotura 012a04021c send shit.
into the void for now.
2019-03-06 17:07:07 +01:00
Arisotura 349322b94c less shitty code.
also, initiating TCP connection!
2019-03-05 15:01:23 +01:00
Arisotura 623b0ea2e0 * begin work on actual socket shito
* move UDP-frame finishing to separate function
2019-03-05 14:06:24 +01:00
Arisotura 950170df6d finish (halfassed) DNS support. 2019-03-05 13:24:42 +01:00
Arisotura a88f0b6792 start work on DNS 2019-03-05 01:09:23 +01:00
Arisotura 909b29042c start making things nicerer 2019-03-05 00:34:30 +01:00
Arisotura cfaf5a0f3f rework wifi settings dialog.
fail gracefully if pcap isn't loaded successfully.
2019-03-04 23:55:39 +01:00
Arisotura 3f82c7dcc1 make melonDS build again 2019-03-04 23:17:03 +01:00
Arisotura 720a5fbea5 fixor Platform.cpp
also remove debug shit that accidentally slipped in
2019-03-04 22:24:28 +01:00
Arisotura 0392f8736b nearly finish the split. 2019-03-04 21:11:25 +01:00
Arisotura 8448e6bea0 take it further 2019-03-04 20:58:13 +01:00
Arisotura 1e108ad7fb start differenciating between direct and indirect LAN modes.
indirect mode will use regular sockets and not pcap.
2019-03-04 20:52:29 +01:00
Arisotura 7a0c1af30b more progress on LANMAGIC 2019-02-24 13:24:42 +01:00
Arisotura 60391a8a1b LANMAGIC: get somewhere.
it works, but fucks up connections on the host.
2019-02-24 11:59:43 +01:00
Arisotura c135670b9c complete DHCP. ARP for the DHCP server. feed in proper DNS settings. 2019-02-23 18:50:58 +01:00
Arisotura 93d51b0cbc start work on non-direct mode. reply to DHCP discover frame. 2019-02-23 13:41:51 +01:00
Arisotura 0550d22833 hook LAN shito. open proper pcap device. etc 2019-02-21 03:44:22 +01:00
Arisotura f9822cdd44 save LAN settings 2019-02-21 03:06:37 +01:00
Arisotura 023a1ba200 list adapters, display their info 2019-02-21 02:45:01 +01:00
Arisotura 616f2b494b make it somewhat functional. move wifi socket bind setting to wifi settings dialog. 2019-02-21 02:12:33 +01:00
Arisotura 81eae0e3ea add base for wifi settings dialog 2019-02-21 01:58:03 +01:00
Arisotura 78c259121b import some sekrit code that was never committed before 2019-02-21 01:47:35 +01:00
Arisotura 2d41291ee9 pack your shit, kids, we're moving 2019-02-21 01:32:28 +01:00
Arisotura 2340be886c oh well. 2019-02-21 01:21:04 +01:00
Arisotura 6743ea0639 start adding LAN interface shito 2019-02-21 01:20:10 +01:00
Arisotura d2d7c20208 fix WAV loading for files with more than one channel (fixes #351) 2019-02-16 04:14:15 +01:00
Arisotura 86b894ca71 change LidCommand to HotkeyMask so we can use it for other hotkeys without needing a billion variables 2019-01-24 21:28:58 +01:00
Arisotura 4bd96207fe standardize way to detect whether a joystick button was just pressed
(paving the way for more hotkeys)
2019-01-24 03:01:47 +01:00
Arisotura b0efde8bf7 also, update copyright name 2019-01-22 15:58:29 +01:00
Arisotura 47a3d2b49a blarg. setting it to 4 breaks Millionaire 2019-01-22 15:47:32 +01:00
StapleButter adc6da5f21 tweak cached memory timings.
fixes things, but needs watching closely for other things that could break.
2019-01-18 20:29:12 +01:00
StapleButter d2701a0401 small optimization: avoid calling InterleaveSprites() if no sprites were drawn. 2019-01-06 23:16:10 +01:00
StapleButter 64ab8302cb pause audio/mic devices when they're not needed.
fixes potential pop when starting emulator (due to playing uninitialized audio buffer).
2019-01-06 14:22:14 +01:00
Zapeth 7630e2d9db Use workaround for GCC incompatibilities with MSVC aggregate returns
Fixes crash on MinGW builds when ID2D1RenderTarget::GetSize() is called
2019-01-06 12:03:01 +01:00
StapleButter 4b6ebd0532 HARK HARK HARK HARK 2019-01-05 13:03:25 +01:00
StapleButter 669247e8c8 redesign main emu loop to use timestamps instead of being a trainwreck
* cleaner code
* faster in some cases
* more accurate (on-demand compensation for timers and GPU)
* less prone to desyncs
* overall betterer
2019-01-05 05:28:58 +01:00
StapleButter 90f2c0834e add PoC ARM9 instruction cache logic. not actually in use, but it's there as a reference (and if we ever need it). 2019-01-04 21:47:06 +01:00
StapleButter 1e35d18ce6 GX: polygon pipeline doesn't get as far if the polygon is rejected by culling/clipping. 2019-01-03 20:30:30 +01:00
StapleButter 4601636788 GX: always latch rendering engine registers even when not flushing (similar to hardware). 2019-01-03 15:29:25 +01:00
StapleButter 172c2eb229 blfdkgg. I'm a derp.
fix potential buffer overflow.
2019-01-03 13:21:21 +01:00
StapleButter b6481a28ac make nocashprint work from ARM code too.
fixes #315
2018-12-31 20:58:58 +01:00
StapleButter eec27ebf69 oops 2018-12-31 14:19:02 +01:00
StapleButter 786abe63cb add support for 128K EEPROM (Pokémon Mystery Dungeon - Explorers of Sky)
fixes #344

also, fix save type for Puzzler World (plain old 8K EEPROM. not sure why the Wood entry was different)
2018-12-31 14:17:58 +01:00
StapleButter a4593a8f58 also, detect bad old romlist.bin and warn the user. 2018-12-31 04:54:17 +01:00
StapleButter f6b979357f ROM list by game code rather than CRC 2018-12-31 04:35:58 +01:00
StapleButter 2fd913aff2 add 'window size' menu to set the window to an integer size 2018-12-30 21:07:09 +01:00
StapleButter 0f0e04bfa3 init savemem to 0xFF instead of 0x00. 2018-12-30 20:57:20 +01:00
StapleButter 52d783e066 might want to update that when hotplugging joysticks, too 2018-12-30 13:43:59 +01:00
StapleButter 15be25085f make it also be a thing under Windows 2018-12-30 01:49:47 +01:00
StapleButter fc3952c981 libui/gtk: center windows 2018-12-30 01:17:50 +01:00
StapleButter f9e143fc69 libui/gtk: add functions to uiWindow for setting/getting minimized/maximized state
remember if main window is maximized, avoid updating the saved size when it is
2018-12-30 01:07:25 +01:00
StapleButter 62704aee31 * make savestate SRAM reloc disabled by default (confusing behavior)
* add config entry for keeping track of whether the main window is maximized
2018-12-30 00:44:07 +01:00
StapleButter 1cf49e0dbe make joystick hotpluggable 2018-12-30 00:27:12 +01:00
StapleButter 65c27c5c28 fix potential crashes in input config dialog when setting joystick buttons, by using uiQueueMain()
how could I not think of this? GTK is not thread safe.
2018-12-29 23:32:58 +01:00
StapleButter 7a949ddd0e 2D: add support for 8bit reads to DISPCNT/BGCNT.
fixes #331
2018-12-21 17:53:48 +01:00
StapleButter 63ae6bf8fb libui/windows: some work on hiDPI shit
still looks derpy but atleast the rendering and touchscreen aren't broken
2018-12-21 05:01:37 +01:00
StapleButter f86fe46035 move the W=0 check, to be sure to check all the vertices 2018-12-20 01:40:32 +01:00
StapleButter f6e6fa05ea some work on extreme/degenerate shit in GPU
* clip against Z then Y then X. apparently, fixes #310. I had also observed hints that the hardware does it this way.
* truncate W to 24 bits before viewport transform.
* mark any polygons that have a W=0 at that point as degenerate. do not render.
2018-12-20 01:31:31 +01:00
StapleButter 0c37824447 2D: fix fade effects to semitransp sprites and 3D layer. fixes #263
(also remove some useless variable. wtf)
2018-12-19 05:54:39 +01:00
StapleButter dd30b417b8 implement proper support for POWCNT1.
fixes #260
2018-12-18 17:04:42 +01:00
StapleButter 71bbb35bbf watch your debug code better, you derp 2018-12-18 02:00:50 +01:00
StapleButter 694d6cafa2 fix STRD_POST (dumbest copypaste bug of the year)
fixes #276
2018-12-18 01:56:21 +01:00
StapleButter 4a36193cab be sure to always reset NormalPipeline 2018-12-17 02:50:36 +01:00
StapleButter 59c715475d fix oversight regarding hotkey joystick buttons. also prevent triggering the lid command a billion times in a row with a joystick button. 2018-12-16 14:41:46 +01:00
StapleButter a99ebf38db prevent crash if mic init fails 2018-12-16 14:18:59 +01:00
StapleButter 3f26fbddc0 HAW HAW HAW HAW 2018-12-16 01:13:14 +01:00
StapleButter 4a47bd6d53 make it even saferer 2018-12-16 00:39:14 +01:00
StapleButter 502d8c3fa0 avoid potential crash with EmuDirectory if we somehow got no argv or an empty path 2018-12-16 00:38:10 +01:00
StapleButter a34d456fcc GX: timing for command 0x50 is more like 325 cycles on average on hardware. (measured 319/325/331)
fixes #297
2018-12-15 13:33:44 +01:00
StapleButter 12c35093aa set GXSTAT busy flag immediately when writing a command to the GXFIFO.
there was a slim chance that a game could send a couple commands and read GXSTAT.busy as zero immediately after. the new timings made that happen in NSMB (not in the USA ROM, oddly), such that the game was reading the clip matrix while matrix commands were running, and getting the first few values wrong.

fixes #295 and probably others in the same vein.
2018-12-15 05:00:25 +01:00
StapleButter 7fb1c0518c
Merge pull request #285 from abcdjdj/limit_fps
Add option to limit framerate from UI
2018-12-15 00:38:35 +01:00
StapleButter d30043bc85
Merge pull request #230 from dogtopus/pcap-libnames-linux
Add linux libpcap names to the pcap library list
2018-12-15 00:30:44 +01:00
StapleButter 56c2160855 attempting to fix some potential input dialog crashes 2018-12-15 00:22:28 +01:00
StapleButter e6c03619a1 libui/gtk: make uiWindowSetFocus() actually work 2018-12-14 22:57:06 +01:00
StapleButter 2077642a92 libui/GTK: remember directory in which the latest loaded ROM was, point file picker to it. behavior under Windows will likely stay unchanged as the Windows file picker already does that. 2018-12-14 22:03:34 +01:00
StapleButter 10ebae42db avoid crash when the mic WAV couldn't be loaded 2018-12-14 14:20:59 +01:00
StapleButter 46bc2dba33 fix possible overflow in wav resampling. now it doesn't shit itself when loading large wavs. 2018-12-14 05:52:36 +01:00
StapleButter c0c115a0ee fix some wav/mic bugs 2018-12-14 05:48:50 +01:00
StapleButter c7433ca664 finalize microphone code (hooked to all settings etc)
also add volume setting
2018-12-14 05:15:57 +01:00
StapleButter 8372edac0c add file picker thing
I guess this part is done
2018-12-14 04:28:57 +01:00
StapleButter 5efb162302 actually save shit 2018-12-14 04:25:39 +01:00