Commit Graph

731 Commits

Author SHA1 Message Date
d2701a0401 small optimization: avoid calling InterleaveSprites() if no sprites were drawn. 2019-01-06 23:16:10 +01:00
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
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
4b6ebd0532 HARK HARK HARK HARK 2019-01-05 13:03:25 +01:00
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
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
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
4601636788 GX: always latch rendering engine registers even when not flushing (similar to hardware). 2019-01-03 15:29:25 +01:00
172c2eb229 blfdkgg. I'm a derp.
fix potential buffer overflow.
2019-01-03 13:21:21 +01:00
b6481a28ac make nocashprint work from ARM code too.
fixes #315
2018-12-31 20:58:58 +01:00
eec27ebf69 oops 2018-12-31 14:19:02 +01:00
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
a4593a8f58 also, detect bad old romlist.bin and warn the user. 2018-12-31 04:54:17 +01:00
f6b979357f ROM list by game code rather than CRC 2018-12-31 04:35:58 +01:00
2fd913aff2 add 'window size' menu to set the window to an integer size 2018-12-30 21:07:09 +01:00
0f0e04bfa3 init savemem to 0xFF instead of 0x00. 2018-12-30 20:57:20 +01:00
52d783e066 might want to update that when hotplugging joysticks, too 2018-12-30 13:43:59 +01:00
15be25085f make it also be a thing under Windows 2018-12-30 01:49:47 +01:00
fc3952c981 libui/gtk: center windows 2018-12-30 01:17:50 +01:00
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
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
1cf49e0dbe make joystick hotpluggable 2018-12-30 00:27:12 +01:00
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
7a949ddd0e 2D: add support for 8bit reads to DISPCNT/BGCNT.
fixes #331
2018-12-21 17:53:48 +01:00
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
f86fe46035 move the W=0 check, to be sure to check all the vertices 2018-12-20 01:40:32 +01:00
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
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
dd30b417b8 implement proper support for POWCNT1.
fixes #260
2018-12-18 17:04:42 +01:00
71bbb35bbf watch your debug code better, you derp 2018-12-18 02:00:50 +01:00
694d6cafa2 fix STRD_POST (dumbest copypaste bug of the year)
fixes #276
2018-12-18 01:56:21 +01:00
4a36193cab be sure to always reset NormalPipeline 2018-12-17 02:50:36 +01:00
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
a99ebf38db prevent crash if mic init fails 2018-12-16 14:18:59 +01:00
3f26fbddc0 HAW HAW HAW HAW 2018-12-16 01:13:14 +01:00
4a47bd6d53 make it even saferer 2018-12-16 00:39:14 +01:00
502d8c3fa0 avoid potential crash with EmuDirectory if we somehow got no argv or an empty path 2018-12-16 00:38:10 +01:00
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
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
7fb1c0518c Merge pull request #285 from abcdjdj/limit_fps
Add option to limit framerate from UI
2018-12-15 00:38:35 +01:00
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
56c2160855 attempting to fix some potential input dialog crashes 2018-12-15 00:22:28 +01:00
e6c03619a1 libui/gtk: make uiWindowSetFocus() actually work 2018-12-14 22:57:06 +01:00
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
10ebae42db avoid crash when the mic WAV couldn't be loaded 2018-12-14 14:20:59 +01:00
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
c0c115a0ee fix some wav/mic bugs 2018-12-14 05:48:50 +01:00
c7433ca664 finalize microphone code (hooked to all settings etc)
also add volume setting
2018-12-14 05:15:57 +01:00
8372edac0c add file picker thing
I guess this part is done
2018-12-14 04:28:57 +01:00
5efb162302 actually save shit 2018-12-14 04:25:39 +01:00