Commit Graph

1198 Commits

Author SHA1 Message Date
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
StapleButter fd54abd900 add dialog for audio settings, flesh it out
not functional yet tho
2018-12-14 04:09:51 +01:00
StapleButter a64e59bf99 hook lid close/open to the actual hotkey system 2018-12-14 03:45:27 +01:00
StapleButter ff1e21733d add hotkey config values.
duplicate DlgInputConfig so that it can also do hotkey config.
also prevent from opening those config dialogs a billion times.
2018-12-14 03:32:40 +01:00
StapleButter cb1e6ce750 proof-of-concept code for closing/opening lid. 2018-12-14 02:36:57 +01:00
StapleButter e829c2e4a1 libui/windows: cache ideal size for uiButton.
input dialog isn't abysmally slow anymore.
2018-12-14 01:15:18 +01:00
StapleButter dc2b1219cd b0rp 2018-12-14 00:35:00 +01:00
StapleButter a4eaf7dc19 SPU:
* support channel repeat mode 3, behaves same as mode 1 (loops)
* always clear channel buffers, so if channels 0-7 use format 3, they don't output old data over and over again (fixes #281)
2018-12-14 00:14:06 +01:00
StapleButter 68d5e3c782 3D: in Z-buffering mode, margin for 'equal' depth test mode is +-0x200, not +-0xFF
fixes #274
2018-12-13 22:46:12 +01:00
StapleButter 32392cc8e2 2D: blending cases that bypass the BLDCNT first-target check (semitransp sprite, 3D layer) also bypass the window 'color effect enable' check.
fixes #299
2018-12-13 19:21:03 +01:00
StapleButter eb1289c2fa release audio devices properly 2018-12-13 18:51:01 +01:00
StapleButter aa8c84f040 * correct romlist.bin (Club Penguin Herbert's Revenge EUR uses 4K EEPROM, not 64K)
* support 32bit reads to POWCNT1 (and also POSTFLG)

fixes #300

(insert sparta meme)
2018-12-13 15:03:06 +01:00
StapleButter ef79cc06f3 proof-of-concept code for feeding a WAV to microphone input.
this eventually needs a proper UI.
2018-12-13 14:34:15 +01:00
StapleButter 4d71da04ec start work on NAND shito. 2018-12-12 20:59:08 +01:00
StapleButter 548432c364 add code to support GBA slot reads for later 2018-12-12 19:43:29 +01:00
StapleButter 2c8f674318 add ROM #3159 to romlist.bin 2018-12-12 17:23:54 +01:00
StapleButter 758bed93bc preliminary microphone code. requires an actual microphone. resulting audio is farty and blargy as fuck. 2018-12-12 16:33:40 +01:00
StapleButter 24d6bd2786 send console output to parent process's console.
this way Windows release builds can get console output if run from cmd.exe, just like under Linux
2018-12-12 15:18:43 +01:00
StapleButter affe1c084f can't hurt to fix that, either, I guess 2018-12-12 03:18:14 +01:00
StapleButter a8f2267a18 zarg 2018-12-12 03:09:48 +01:00
StapleButter e7a4fe11ed add nocashPrint type shit 2018-12-12 02:48:37 +01:00
StapleButter d92c7e79df re-blarg. linux doesn't take \ you idiot 2018-12-11 22:17:49 +01:00
StapleButter 1817c15cb0 blarg 2018-12-11 22:14:15 +01:00
StapleButter e84d66dc64 use melon_fopen_local() for romlist.bin.
bump version number up.
2018-12-11 21:52:21 +01:00
StapleButter 3101bd595f add missing shit to savestates. bump the version up. 2018-12-11 21:50:28 +01:00
StapleButter 40f3f91368 move config-file seeking code to its own thing.
look also into the same directory as melonDS. make it the preferred place for storing melonDS.ini.
rewrite WinMain() wrapper.
2018-12-11 21:34:05 +01:00
StapleButter 9a0bf912d9 (finally) axe trainwreck savetype-autodetect code.
pull that from ROM database.
for now, assume EEPROM 64k if not found, or null for homebrew.
2018-12-11 20:39:07 +01:00
StapleButter f03828f7b9 add code that searches into romlist.bin 2018-12-11 19:47:03 +01:00
StapleButter e2f3c29360 blarg.
also, calculate ROM CRC.
2018-12-11 19:16:19 +01:00
StapleButter 0579a1cd2e add CRC32 shit 2018-12-11 19:10:57 +01:00
StapleButter 4aafdee14d more sensible cache timings
(still a big fat hack)
2018-12-11 17:59:52 +01:00
StapleButter e4c6ac55d2 Mario&Sonic doesn't like it when its code is running too fast; dual-screen-3D shits itself big time 2018-12-11 17:28:59 +01:00
StapleButter 91b2f64596 add back faster prefetch for ARM9 2018-12-11 16:41:18 +01:00
StapleButter beb092f93e change where audio/joystick are inited, attempting to fix potential COM initialize issues 2018-12-11 16:24:55 +01:00
StapleButter 3dd8c7b152 finish the work on the main loop. finally fix all cases of desync I could find. also add #ifdef'd debug code to check for desyncs. 2018-12-11 15:56:34 +01:00
StapleButter 78d384a754 temp commit
almost done killing ARM9/ARM7 desync, f
2018-12-11 03:08:46 +01:00
StapleButter aba4610d45 fix bugs
still kinda shitty tho. like, we lost enough timer accuracy to have visible effects (aging cart tests that fail, FMVs that play too slow, etc)
2018-12-09 01:46:10 +01:00
StapleButter b569c03884 make it fasterer 2018-12-09 01:26:51 +01:00
StapleButter 29bca33bc6 take it somewhere.
still need to speed it up a tad.
2018-12-09 01:17:05 +01:00
StapleButter c6fb152d80 start devolving things.
also implement proper DMA timings.

will not build. don't try.
2018-12-08 22:33:41 +01:00
StapleButter 86dae1a25c make this other branch where we're going to actually make it usable
but it'll be a gross hack
2018-12-08 20:27:00 +01:00
StapleButter 0b1c2f9691 begin PU work 2018-12-04 18:32:19 +01:00
StapleButter 9ebcb5f143 axe CP15.h, we don't need it anymore. 2018-12-04 17:55:03 +01:00
StapleButter 172fb4876a begin work on general timing renovation. way shitty because it behaves as if caches were off, so everything will be slow as shit. 2018-12-04 17:54:10 +01:00
StapleButter 808bda9171 do not require dpad mappings for joystick axis to work 2018-12-02 15:11:56 +01:00
StapleButter 5b20f40fad oopsies 2018-11-28 02:45:20 +01:00
StapleButter b1973014d3 add some missing shit to savestates 2018-11-25 22:40:08 +01:00
StapleButter 4b8cea3b38 revise windows to be even closer to hardware.
apparently hardware only ever updates its 'inside/outside window' status when reaching the coordinates. which becomes apparent if you, like, try to invert a window midframe.
2018-11-25 19:13:23 +01:00
StapleButter 2035784f9f on the DS, windows with backward coordinates end up inside-out. revise window code accordingly. fixes #287. 2018-11-25 18:36:47 +01:00
StapleButter 5f1f2a7b4a fix regression in Marvel Nemesis. keep GX cycle counter from drifting absurdly far in the negatives, and fix a few other issues. 2018-11-25 17:39:43 +01:00
StapleButter 3f8befaf4e add support for forced-blank. fixing spurious colors during screen transitions in Picross 3D.
I thought I had already fixed that, but it was stuck in the long-dead jit branch, so, here it is, back from the dead.
2018-11-24 21:10:26 +01:00
StapleButter 46d5a31275 well yeah that's what I thought
GXFIFO stalls don't stall the ARM7
2018-11-24 05:23:35 +01:00
StapleButter 391c8d43b0 drain GX pipelines when there's nothing else running. fixes some weird bugs, apparently. 2018-11-24 04:27:27 +01:00
StapleButter 7b48ce5b75 * fix possible issues with GXFIFO stalling
* rework GPU timings, now almost same as hardware. display lists generally execute faster. not finished. not bad for a start tho.
* Rayman RR2 is still getting sound streaming issues. I don't think GXFIFO stalls are supposed to halt the ARM7. that doesn't make sense and would mess badly with sound since it's also using the ARM7 bus.
2018-11-24 02:29:25 +01:00
StapleButter a9e7f8bc5b add proper support for GXFIFO stalls.
bad games that blast the GXFIFO and overflow it:
* Super Mario 64 DS
* Rayman RR2

latter seems to get its music streaming crapoed.
2018-11-23 22:21:41 +01:00
Madhav Kanbur 78c767b693 Add option to limit framerate from UI
Signed-off-by: Madhav Kanbur <abcdjdj@gmail.com>
2018-11-21 11:11:02 +05:30
StapleButter 27e1ca4103 beginning timing renovation.
smarter Reschedule().

gotta start somewhere, I guess.
2018-11-09 14:10:06 +01:00
StapleButter 7ba32ea076 make the ARM clock shift configurable. nothing fancy there, just paving the way for DSi support later. 2018-11-07 18:38:54 +01:00
StapleButter fa4fa164cb * store all 32 matrix stack entries in savestates instead of 31.
* bump savestate version up. will break compatibility, but the alternative would be guessing the missing matrix entries somehow, so blarg.
* avoid relocating the savefile if loading a savestate fails.
2018-11-05 16:14:48 +01:00
StapleButter 9b32418367 3D: fix0r matrix stack handling when stack pointers overflow (it fucking wraps around).
fixes #231 and probably others of the same vein.
2018-11-05 16:05:16 +01:00
StapleButter b4165cc0a9 3D: keep the rasterizer from accidentally going out of bounds when given very flat X-major edge slopes.
this, by a fucking shitshow of butterfly effect, ends up fixing #234. technically, the rasterizer was going out of bounds, which, under certain circumstances, caused interpolation to shit itself and generate Z values that were out of range (but still ended up in the zbuffer). sometimes those values ended up negative, which caused these glitches when polygons had to be drawn over those.

about fucking time.
2018-11-04 23:21:58 +01:00
StapleButter fb284f33ad Merge branch 'master' of https://github.com/StapleButter/melonDS 2018-10-27 14:44:52 +02:00
StapleButter 658856b256 fix implementation of CoTaskMemRealloc, as it can decide to move the buffer elsewhere, we have to account for that 2018-10-27 14:44:39 +02:00
StapleButter 307c26de93
Merge pull request #248 from Dirbaio/master
Two fixes
2018-10-27 14:16:46 +02:00
StapleButter a4339daade oops! don't hardcode a 9 2018-10-27 13:51:40 +02:00
StapleButter f4890137c0 fix configfile loading under Windows, for when it checks AppData
by making it actually, you know, build the complete file path

hopefully that fixes that crash bug, but I couldn't reproduce it after touching the code some. heisenbugs are lots of fun
2018-10-27 13:50:29 +02:00
StapleButter d4d4965b2f remove trainwrecky code that caused issues now. 2018-10-26 22:17:27 +02:00
StapleButter c8d63f2be7 fuck that shit.
I fucking give up.

Windows actually doesn't want to cooperate either, and is being utter shit.

so, I'm going to do it the desmume way.
2018-10-26 20:10:25 +02:00
StapleButter eb67ac9a1b finally come up with a (crummy) solution for those fucking shitty submenus 2018-10-26 20:56:59 +02:00
StapleButter cbe63f8fd5 until we actually get somewhere with the menu crap... fix potential crashes when exiting. 2018-10-26 18:39:41 +02:00
StapleButter c5670a22a5 fix GTK menus asploding upon exit. hopefully. fuck this code 2018-10-26 16:29:46 +02:00
StapleButter 65bba8ff81 call it a release??? 2018-10-24 00:38:35 +02:00
StapleButter 6e1209dd32 misc things 2018-10-24 00:32:31 +02:00
StapleButter 8b4ba2d8b9 separate SRAM setting coded, I guess 2018-10-24 00:24:36 +02:00
StapleButter 1edf2aed3b * code function for relocating the savefile.
* don't bitch at the user when trying to load a savestate file that doesn't exist.
* grey out 'load state' items if there is no file.
2018-10-23 22:54:09 +02:00
StapleButter f60ac42466 pass savefile name to NDS::LoadROM() instead of having the core generate it. 2018-10-23 21:52:41 +02:00
StapleButter a4a9bca5f0 fix more shit 2018-10-23 20:40:57 +02:00
StapleButter 98076f2334 hopefully fix all 3D-related crashes when loading savestates 2018-10-23 20:20:38 +02:00
StapleButter c9a7a0d744 * start coding UI shito for savestates
* change default mapping for L button to the key right next to Shift because we're gonna derp around with it
* still some shito to fix, but hang on, we're getting there
2018-10-23 19:57:01 +02:00
StapleButter 4075dad0a8 3D: attempt at fixing that shadow/AA interaction bug in the MKDS character select screen 2018-10-22 01:36:04 +02:00
StapleButter d191af8690 rewrite how structures are stored to savestates (store individual fields, to avoid compatibility issues)
also fixes stability issues when 3D is involved. turns out we were storing raw pointers to vertices. figures

more crapo code to get around that, but atleast it works without asploding now.
2018-10-21 03:16:41 +02:00
StapleButter cbcecc8cdb don't store BIOS in savestates. no point doing so. 2018-10-19 01:05:19 +02:00
StapleButter 467461fb3d properly initialize shit before attempting to read from the file
fixes load failure when attaching a debugger
2018-10-18 05:14:15 +02:00
StapleButter b5c39680a5 hax, finally making savestates usable
F1 to save, F2 to load. filename hardcoded for now.

shits itself:
* when the 3D engine is used
* when a debugger is used (heh)
2018-10-18 04:00:16 +02:00
StapleButter 20862b7daf aight, wifi done 2018-10-18 03:22:53 +02:00
StapleButter f51e1ec805 I guess that might have malfunctioned 2018-10-18 03:10:17 +02:00
StapleButter 86f5155f72 more procrastinating before actually starting savestatez0ring wifi.
I need to pee
2018-10-18 03:09:03 +02:00
StapleButter 3a54b9178b RTC done. misc shito. 2018-10-18 03:04:39 +02:00
StapleButter cbe5780837 SPI done 2018-10-18 02:54:48 +02:00
StapleButter 7bf62918cd SPU done 2018-10-18 02:45:38 +02:00
StapleButter a2cc7087f7 GPU done 2018-10-18 02:31:01 +02:00
StapleButter 148f4032f1 fix code that would have fucking asploded 2018-10-18 01:38:33 +02:00
StapleButter f4cf54829e a bit moar of it
brick by brick, file by file, we will destroy capitalism

and make savestates work, maybe
2018-10-18 00:54:21 +02:00
StapleButter de91eabf71 savestate shito: fix compile errors.
still far from being finished, so avoid using unless you want to spawn blackholes or some pretty bad shit.
2018-10-18 00:27:55 +02:00
StapleButter 7cbcc6c230 zlarg 2018-09-15 03:41:09 +02:00
StapleButter 60f24a7432 moar progress on it 2018-09-15 03:29:36 +02:00
StapleButter 0bfd019dc0 start implementing actual shito
(also looks like the test bench in libui_sdl/main.cpp snuck in with the copyright update. shit)
2018-09-15 02:47:34 +02:00
StapleButter fea7955675 fixor copyright years. 2018-09-15 02:32:13 +02:00
StapleButter 1d19145983 moar working now. 2018-09-15 02:14:08 +02:00
StapleButter aa59ee257e base for savestate crapo.
I'm not quite settled yet, so before I can get into the real meat, I figured I'd address some 'popular request' items.
2018-09-15 02:04:21 +02:00
Dario Nieuwenhuis d721e098eb Make "unknown IO" messages consistent, all including value and PC. 2018-05-24 01:09:40 +02:00
Dario Nieuwenhuis cb79a5dc14 Make Main RAM size configurable in a single place. 2018-05-24 01:09:23 +02:00
StapleButter 20050fb668 quick attempt at supercard emulation. really ugly 2018-04-27 20:00:53 +02:00
StapleButter 81e98b5e12 direct boot: init cart ID from NDSCart::CartID instead of hardcoding it 2018-04-27 19:26:46 +02:00
StapleButter f0bc364210 init AUXSPICNT to 0x8000.
(guess sloppy DLDI drivers expect that)
2018-04-27 00:20:18 +02:00
StapleButter 39bd94f551 start work on DLDI, with some (very haxy) patching so it can do interesting things 2018-04-27 00:17:05 +02:00
StapleButter aa3fc8be68 fix build under Windows
(fuck that shit)
2018-04-24 23:16:26 +02:00
Dario Nieuwenhuis a2c95f2dc3 Add 32bit IPCSYNC reads and writes. 2018-04-24 22:31:52 +02:00
dogtopus 41b40cd4fa Add linux libpcap names to the pcap library list 2018-02-22 10:39:02 -04:00
StapleButter aab0030137
Merge pull request #224 from hcorion/alternate-loading
Load bios, firmware and melonDS.ini from exe, ~/.config/melonds or AppData
2018-02-19 13:08:34 +01:00
StapleButter 12e33ae872
Merge pull request #222 from dogtopus/master
Fix build on linux, enable build directory support
2018-02-19 12:50:54 +01:00
Zion Nimchuk 52df6be5f8 Load bios, firmware and melonDS.ini from executable or ~/.config/melonds or AppData 2018-01-11 14:38:57 -08:00
StapleButter 981661a36d wifi: implement increment for txheader[4] 2018-01-04 00:10:35 +01:00
StapleButter d50e7e4686 fix SMULWx/SMLAWx. fixes #78, finally 2017-12-29 03:17:32 +01:00
dogtopus 549bcf6d71 Fix build on linux, enable build directory support
Specifically:

- Include stddef.h for missing ptrdiff_t
- Define PCAP_OPENFLAG_PROMISCUOUS if not using WinPcap because it seems to be
  a WinPcap extension
- Make use of CMAKE_CURRENT_{SOURCE,BINARY}_DIR to enable building under a
  directory other than root of the project
2017-12-22 12:29:34 -04:00
StapleButter 9336e15197 avoid crashing when receiving a packet that is too large 2017-12-19 01:00:55 +01:00
StapleButter 5fe30d306f wifi:
* fix BSSID/MAC check when receiving packets
* safeguard AP auth/deauth so local MP doesn't trigger it
2017-12-19 00:33:09 +01:00
StapleButter 141e2a7ab0 clear chipselect when turning SPI off. fixes libnds bugs. 2017-12-19 00:20:36 +01:00
StapleButter 3bdb7a7f2d hook up the LAN (pcap) interface 2017-12-18 23:24:45 +01:00
StapleButter 0ff67d28d3 wifiAP: basic support for probereq/auth/assoc/deauth/deassoc 2017-12-18 22:44:29 +01:00
StapleButter 9632aa4021 start working on melonAP.
it sends beacons!
2017-12-18 21:37:17 +01:00
StapleButter 07685a80a6 add base for wifi AP 2017-12-18 19:53:51 +01:00
StapleButter 4ec2d109f7 wifi: more shit 2017-12-18 19:31:26 +01:00
StapleButter e44bc7743d actually init pcap etc 2017-12-17 23:09:48 +01:00
StapleButter 17087a1ece start work on libpcap shit 2017-12-17 17:21:50 +01:00
StapleButter e4e8d775c0 libui/windows: don't explode if setWindowText() fails. fixes random crash when closing window.
also add extra safety, can't hurt.
2017-12-17 02:11:28 +01:00
StapleButter 2e82a4f26a gtk: add icon 2017-12-16 05:43:34 +01:00
StapleButter ca41ce6efd windows: add icon 2017-12-16 04:10:32 +01:00
StapleButter fff4ca0c95
Merge pull request #216 from bentley/master
Small fixes
2017-12-12 02:34:00 +01:00
StapleButter 904316de60 fix ScreenGap loading, fixes #218 2017-12-12 02:32:11 +01:00
StapleButter 2333b17029 bump version number 2017-12-12 02:28:57 +01:00
StapleButter 73bf4471ee audio: change output rate to 47340Hz, add resampler with small margin to elimiate pops/clicks due to output rate fluctuation
output rate is picked such that 1024 samples at that rate equal exactly 710 samples at the SPU's output rate
2017-12-11 18:41:05 +01:00
StapleButter c639152541 urgl. how could I let something that dumb slip in 2017-12-07 11:17:51 +01:00
Anthony J. Bentley 4519a7ae1f Pass correct number of arguments to printf. 2017-12-06 22:06:15 -07:00
Anthony J. Bentley b603029549 Fix bitwise operation precedence. 2017-12-06 22:02:55 -07:00
StapleButter e4f030149b add option to toggle filtering 2017-12-07 02:50:05 +01:00
StapleButter 18bcefe83b libui: add parameter to uiDrawBitmapDraw() to specify filtering 2017-12-07 02:41:46 +01:00
StapleButter b58a5334fa fix potential memleak 2017-12-07 01:24:39 +01:00
StapleButter a7c7779917 ensure proper minimum window size at all times 2017-12-07 01:13:13 +01:00
StapleButter b5046b9766 comment out some unwanted printf's 2017-12-07 01:04:00 +01:00
StapleButter 10b797e53d libui/GTK: properly clean up menus, so it doesn't crash upon exit 2017-12-05 05:21:11 +01:00
StapleButter 746b4db382 libui/GTK: add area BG color support 2017-12-05 04:20:52 +01:00
StapleButter dd529f0f5c libui/GTK: fix drawmatrix transform order to match Windows. fixes rotation. 2017-12-05 04:12:03 +01:00
StapleButter c5872dab7d libui/GTK: start adding submenu support. cleanup still has to be done. use uiMenuAppendCheckItem() for checkable items. 2017-12-05 03:41:49 +01:00
StapleButter bdf9f56152 libui/GTK: add uiAreaSetBackgroundColor, not hooked up yet 2017-12-05 03:04:17 +01:00
StapleButter 21e204cdea don't pointlessly restrict the window size 2017-11-23 21:22:47 +01:00
StapleButter 85c375cce7 * remember screen rotation/gap/etc settings
* fix menu cleanup to take submenus into account properly, so it doesn't crash when exiting
2017-11-23 21:02:24 +01:00
StapleButter aa4f427ed4 properly resize window when changing display settings, etc
begin polishing things
2017-11-23 20:01:43 +01:00
StapleButter 8e6d834f13 libui: add API for setting a background color for uiArea. (TODO: do for GTK)
make window background black.
2017-11-23 19:28:06 +01:00
StapleButter b96ac8e000 (finally) fix sound
* reset capture position when starting capture
* reorder channel/capture handling
* implement FIFO for channel and capture
2017-11-11 18:46:42 +01:00
StapleButter c3675af538 properly reset IE/IF, fixes some reset issues. 2017-11-09 16:02:37 +01:00
StapleButter 35c3b34a09 make screen rotation configurable. start making it all clean. 2017-11-09 16:02:17 +01:00
StapleButter f2a5be6096 make touchscreen code take rotation into account 2017-11-09 00:15:59 +01:00
StapleButter 34513063ab begin work on rotation 2017-11-09 00:04:01 +01:00
StapleButter bb87a709be cooler screen positioning in horizontal mode 2017-11-08 02:02:15 +01:00
StapleButter e6e5f48748 attempt at horizontal mode, I guess 2017-11-08 01:53:20 +01:00
StapleButter 857ba49759 actually implement screen gap 2017-11-08 01:34:11 +01:00
StapleButter 5bea3cc530 3D: add support for 8bit accesses to GXSTAT (Golden Sun - Dark Dawn) 2017-11-04 15:13:01 +01:00
StapleButter 0a04efc33e attempt at auto-emphasis mode, emphasizing main screen 2017-10-30 05:45:26 +01:00
StapleButter 85d823d4c7 fix more sizing bugs 2017-10-30 05:17:20 +01:00
StapleButter f4e7e2f62a fix aspect ratio code 2017-10-30 05:08:04 +01:00
StapleButter c9082cd50d some attempt at fancypants scaling, I guess 2017-10-30 04:39:50 +01:00
StapleButter b8706c29c7 make it betterer 2017-10-30 03:21:12 +01:00
StapleButter 84a842c6f3 libui/windows: add support for submenus 2017-10-30 03:11:45 +01:00
StapleButter 3881b2615b libui/Windows: allow file pickers to navigate through shortcuts. fixes #199 2017-10-21 22:24:29 +02:00
StapleButter e9798e032b up version number (I forgot) 2017-10-11 04:38:11 +02:00
StapleButter befc5db031 restore FPS counter 2017-10-11 03:06:30 +02:00
StapleButter f9d9aaec11 Merge pull request #112 from bentley/master
Portability fixes
2017-10-11 02:56:06 +02:00
StapleButter 73626e9f45 fix memory leak 2017-10-11 00:40:56 +02:00
StapleButter 273fbe24f4 add fopen wrapper to support UTF8 paths/filenames under Windows. 2017-10-11 00:32:43 +02:00
StapleButter ee1da52d77 fail gracefully when ROM loading fails 2017-10-11 00:01:05 +02:00
Anthony J. Bentley 56bf1ecc13 Treat failed haptics initialization as a warning, not a fatal error. 2017-10-09 03:42:50 -06:00
Anthony J. Bentley df19b93408 Include POSIX headers required for fd_set and INADDR_ANY. 2017-10-09 03:41:17 -06:00
StapleButter a15c395460 GTK: file drop support. adsfgdgfdg 2017-10-05 03:10:14 +02:00
StapleButter 084d9254e3 maybe now the input dialog can stop being dumb 2017-10-05 02:05:23 +02:00
StapleButter d895dfc9fb hopefully fix that shit for good 2017-10-05 01:58:41 +02:00
StapleButter a84caacb03 make window actually resizable below min size. we lose proper client sizing under GTK tho. 2017-10-05 01:35:50 +02:00
StapleButter f714c492b9 GTK: hook SetMinSize. fuck around with gtk_widget_set_size_request() so the window can be resized smaller than the initial size. 2017-10-05 01:22:03 +02:00
StapleButter 5d5311c53c use grids instead of nested boxes for input config dialog. (still lags, needs optimization)
adjust things to make those dialogs sexier.
2017-10-05 01:03:22 +02:00
StapleButter 9d3f13b689 rework things a bit.
also remove some useless variables.
2017-10-05 00:13:22 +02:00
StapleButter 5b71ffceee minor fix 2017-10-04 02:47:49 +02:00
StapleButter 9125620ff1 christ, did I seriously forget to remove that code 2017-10-03 03:28:49 +02:00
StapleButter 012a7d61a7 actually make uiKeyName() work 2017-10-03 02:52:30 +02:00
StapleButter 9527499124 hook up area key events 2017-10-03 02:19:42 +02:00
StapleButter fbe4e4938b finally finish cairo bitmap support. asdsfdfgfsgf 2017-10-03 01:29:35 +02:00
StapleButter 5450c7cc3d hook up Resize event 2017-10-03 00:51:56 +02:00
StapleButter 7f05bf24ad libui/GTK: start catching up. atleast now it runs without exploding (mostly). 2017-10-03 00:28:41 +02:00
StapleButter dad0e6b6e8 add support for non-resizable windows 2017-10-02 23:26:25 +02:00
StapleButter f8b63759f7 save window size 2017-10-02 23:15:39 +02:00
StapleButter 4781bd5671 fix ARM7 BIOSPROT. not that it matters. 2017-10-02 04:57:23 +02:00
StapleButter dbb174c531 implement 8bit reads to div/sqrt registers.
RaymanDS showed some interest for that, so there we go.
RaymanDS still fucks up.
RaymanDS is a pile of shit.
melonDS is bad at timings.
2017-10-02 04:27:50 +02:00
StapleButter d0770596ea re-add basic scaling 2017-10-02 03:34:17 +02:00
StapleButter 09920126dd add support for setting an explicit min size for libui controls. for now only supported by uiArea. 2017-10-02 01:58:09 +02:00
StapleButter ce592a1d80 this TODO item is already done, idiot 2017-10-02 00:55:44 +02:00
StapleButter 1975efaeea fix bugs with SPI shutdown 2017-10-01 03:19:39 +02:00
StapleButter 9ad89d8cb5 fix crash under Windows 10 2017-09-30 23:17:36 +02:00
StapleButter ab9800fbac actual joystick input
also sync keyboard input nicely
2017-09-30 20:05:56 +02:00
StapleButter 9f486de76a allow entering joystick config 2017-09-30 19:27:47 +02:00
StapleButter acc23f47cc actually get the input dialog somewhere 2017-09-30 18:58:13 +02:00
StapleButter cb284fbe2b get the input dialog started 2017-09-26 02:20:28 +02:00
StapleButter 172babe9d0 add general emu settings dialog 2017-09-25 04:26:41 +02:00
StapleButter 69bc06402c change default keyboard mapping 2017-09-23 04:10:25 +02:00
StapleButter f52322ee20 * support for dragdrop
* support for loading ROMs via command line (except it will try to get the BIOS/firmware from where the ROM is. derp)
* re-add missing BIOS/firmware dialog. fix libui to allow dialogs without a parent window.
2017-09-23 03:39:09 +02:00
StapleButter 14b7cf1987 add hooks for when the window gets/loses focus.
properly refocus draw area.
lay base for dragdrop.
2017-09-23 02:58:04 +02:00
StapleButter a9cacb9dd7 make Quit menu item actually work 2017-09-23 02:03:11 +02:00
StapleButter e298d50e76 avoid potential race conditions during reset/etc by waiting till the emu thread got the message to pause 2017-09-22 01:33:18 +02:00
StapleButter 332282c809 oh also, fuck that shit 2017-09-21 21:44:39 +02:00
StapleButter 8e41ed751e change 'pause' menu item to a proper check item. GTK is picky about it. 2017-09-21 21:31:20 +02:00
StapleButter 65b332b152 reenable wifi socket code 2017-09-21 04:42:31 +02:00
StapleButter 2eea801d26 goodbye wx crap. you will not be missed. 2017-09-21 04:35:55 +02:00
StapleButter 76c5451ad9 I'm an idiot 2017-09-21 04:09:09 +02:00
StapleButter 48cf9eb805 make it a menu option while we're at it 2017-09-21 04:08:03 +02:00
StapleButter 495d0ba12d add support for SPI shutdown, btw 2017-09-21 03:59:12 +02:00
StapleButter 0aa3434ec7 double-buffer framebuffer, eliminates artifacts 2017-09-21 03:49:12 +02:00
StapleButter f13c3fc90c implement run/pause/reset menus 2017-09-21 03:42:40 +02:00
StapleButter b70e085921 fix possible crashes upon exit 2017-09-19 21:06:15 +02:00
StapleButter dbefaf0ad3 Windows: fix colors. use fallback if hardware render mode doesn't work. 2017-09-19 20:48:18 +02:00
StapleButter defe46e37e GTK: apply window client size to childHolderWidget. fixes sizing when a menubar is present. 2017-09-19 17:38:43 +02:00
StapleButter edd33187b6 GTK: thread-safe refresh. doesn't freeze randomly anymore. 2017-09-19 16:53:02 +02:00
StapleButter 4db1a51fa4 add Platform thread/semaphore support, using SDL 2017-09-19 15:39:41 +02:00
StapleButter 62405cde0a change final framebuffer format (again. sorry.) to xRGB, more compatible 2017-09-19 15:39:00 +02:00
StapleButter 8d79355f2e libui: add cairo bitmap code (preliminary). fix bug where putting a draw area directly in the window caused it to be tiny. 2017-09-19 02:22:07 +02:00
StapleButter 5979ab2eb2 libui: fix bug with filepicker filters under GTK. add skeleton for bitmaps. add the right cmake shit. 2017-09-19 00:36:25 +02:00
StapleButter f30e19a2ec touchscreen input 2017-09-17 23:36:28 +02:00
StapleButter 8e7d46e717 * attempt at keyboard input, via raw scancodes
* load config, etc
* some things are nicer, too
2017-09-17 23:25:32 +02:00
StapleButter 66106a8829 sound 2017-09-14 17:06:41 +02:00
StapleButter d463f8252d * build settings for Release
* fix off-by-one error in bitmap drawing
2017-09-14 02:30:11 +02:00
StapleButter ba113d0ca9 actually run the emulator 2017-09-14 00:56:52 +02:00
StapleButter f18690487c start working on API to draw bitmaps
lay out emu thread
2017-09-14 00:30:12 +02:00
StapleButter 62a26977c7 libui: primp file picker dialogs
* support for filters, for Windows (tested) and GTK (theoretical)
* add extra parameter for setting the start directory, but not supported yet
2017-09-11 15:56:52 +02:00
StapleButter dbcec7efb4 actually take it somewhere 2017-09-09 03:23:02 +02:00
StapleButter 70e4841d31 another UI attempt, I guess.
sorry.
2017-09-09 02:30:51 +02:00
StapleButter c9ac08aa5b 3D: blend translucent pixels with bottom pixels when needed.
fixes antialiasing within shadows, under translucent polygons, etc
2017-08-28 22:19:49 +02:00
StapleButter 183b8b58e0 3D: move shadow mask rendering to separate function, optimize it (it doesn't need to interpolate all vertex attributes) 2017-08-28 20:27:56 +02:00
StapleButter ee6daa0e62 fix antialiasing along Y-major edges 2017-08-28 18:48:06 +02:00
StapleButter 2e23ae54b2 3D:
* more accurate polygon edges (still not perfect. heh)
* antialiasing (doesn't always work)
2017-08-28 18:37:07 +02:00
StapleButter d656e6e7ff 3D: faster and more accurate interpolation 2017-08-17 23:34:37 +02:00
StapleButter bc1385e905 3D: revise fog calculation to match hardware (emulate precision loss and overflow with big shifts) 2017-08-16 22:20:53 +02:00
StapleButter 0106406aff * allow 128KB firmwares (DSi/3DS dumps)
* document firmware sizes better
2017-08-05 19:13:55 +02:00
StapleButter 4a899ebe3f 3D: fix culling. fixes #86. watch out for any missing polygons elsewhere. 2017-07-24 01:06:08 +02:00
StapleButter 51d29c8804 dgfhtrydthg 2017-07-23 18:43:22 +02:00
StapleButter 82e42c5be7 2D: mosaic
sprites might be mosaiced wrong, esp. rotscaled ones. blrgdfgdf
2017-07-23 18:36:00 +02:00
StapleButter e6f5507c9e add some more GPU IO 2017-07-23 15:31:09 +02:00
StapleButter f869975a51 implement 8bit writes to DISPCNT/BGCNT/BGPOS
fixes #98
2017-07-23 01:39:21 +02:00
StapleButter 0df3a29374 * FPS counter displays target framerate
* fix potential hang and out-of-bounds drawing when VCount is modified during drawing
2017-07-21 10:19:56 +02:00
StapleButter cfb9e20fe1 * bump version number
* BLDALPHA is readable
2017-07-16 03:47:44 +02:00
StapleButter 08bdef481f add setting for whether to bind the wifi socket to any address or to loopback only 2017-07-16 00:57:26 +02:00
StapleButter bb963c35a4 while we're at it: emulate div/sqrt timings 2017-07-15 19:46:27 +02:00
StapleButter 0d58fcb5d6 add basic response for Pokémon IR transceiver (SPI command 08). lets your pokémon gain EXP. 2017-07-15 19:34:35 +02:00
StapleButter cb0e026ec1 implement transfer delays for both SPI busses
also make microphone input return 0x800
2017-07-15 19:29:10 +02:00
StapleButter 6b6389fbb4 separate polygonID attributes for opaque and translucent pixels.
rendering translucent pixels preserves opaque polygonID and edge flags for edgemarking.

fixes edgemarking malfunctions, like #80 or black dots in Pokémon games
2017-07-15 15:24:25 +02:00
StapleButter d978603852 3D: fix Z calculation in Z-buffering mode (should use original W, not normalized one). fixes horrendous Z-fighting in Pokémon games. 2017-07-14 18:35:34 +02:00
StapleButter cd6ecfc21f apply the interpolation fix to Z interpolation.
more accurate conversion of Z values.

but this doesn't fix the horrendous Z-fighting in Pokémon B/W because of course it doesn't >_<
2017-07-14 04:49:29 +02:00
StapleButter e1926d6e97 2D: fix blending against the 3D layer or bitmap sprites (when those are second target)
fixes #68
2017-07-14 00:32:25 +02:00
StapleButter 04172f47de fix potential overflow in fog density calculation 2017-07-14 00:12:35 +02:00
StapleButter a1401e724c * actually fix linear interpolation when y0>y1
* change the backfacing attribute bit, so that it doesn't mess with edgemarking
2017-07-13 23:09:42 +02:00
StapleButter 800540b710 attempt to fix interpolation when y0>y1 2017-07-10 13:31:05 +02:00
StapleButter 8f031f698b normalize W values in both directions (0123-0157 -> 1230-1570) 2017-07-06 18:54:51 +02:00
StapleButter 3aa83ae641 3D:
* undo 'winding sorting' hypothesis
* special depth test rules: 'less than' function becomes 'less or equal' when rendering front-facing polygon pixels against back-facing opaque pixels
2017-07-06 18:38:13 +02:00
StapleButter b29b128a1b 2D: fix rotscaled bitmap sprites (dumb bug of the year).
fixes #41 and #34
2017-07-06 12:17:45 +02:00
StapleButter dc32613028 3D: opaque polygons are sorted by winding order
the Sands of Destruction character menu relies on this, it mixes and matches polygon windings to thwart Y-sorting
2017-07-06 02:02:30 +02:00
StapleButter d357b1c2ac apparently they suck at keeping their SDL distributions up to date 2017-07-05 21:37:28 +02:00
StapleButter 93ab7064b2 2D: implement large BG, fix non-large bitmap BG. fixes #61 2017-07-05 19:31:13 +02:00
StapleButter 678ae00e0a support 16-bit reads to the div/sqrt registers 2017-07-05 18:46:19 +02:00
StapleButter d5376b4184 3D: Y-sorting 2017-07-05 18:38:10 +02:00
StapleButter 01404ac6c3 3D: move opaque/translucent sorting to GPU3D.cpp 2017-07-05 18:11:00 +02:00
StapleButter 1acf355d99 3D: change viewport handling to match hardware. finally fixes #18 2017-07-04 19:11:43 +02:00
StapleButter ad58a68fc9 3D: fix boxtest coord overflow. fixes #57 2017-06-29 09:48:41 +02:00
StapleButter da10f9b3f6 fix rendering for crapoed 'butterfly' polygons 2017-06-28 21:19:44 +02:00
StapleButter 209a639461 2D: implement enough of mode6 to fix #65 -- shows 3D layer. large BG still needs to be done. 2017-06-28 17:01:20 +02:00
StapleButter 5f6e8cc30b fix toon highlight mode. GBAtek is wrong. 2017-06-28 09:19:38 +02:00
StapleButter f113f2f26e 3D: fix missing term in MatrixTranslate(). fixes Monster Trucks billboards. 2017-06-27 20:52:38 +02:00
StapleButter b5784540ab move HBlank 48 cycles later 2017-06-26 22:01:29 +02:00
StapleButter fbc6ce5fa0 fix render/capture order, corrects interaction of capture and VRAM display. fixes #56. 2017-06-26 13:39:42 +02:00
StapleButter 4afac28263 proper display FIFO emulation 2017-06-26 11:02:10 +02:00
StapleButter 155609b6d9 initialize clearZ to 0x7FFF. fixes #38 2017-06-26 01:18:54 +02:00
StapleButter 8b262f5ee5 also fix the bug for cart SPI 2017-06-26 00:38:07 +02:00
StapleButter 77627af438 * implement firmware saving for user settings
* fix bug with SPI commands that have no parameters
2017-06-26 00:35:19 +02:00
StapleButter 39fbc415f6 new save heuristic. atleast Scribblenauts doesn't lose its shit now.
shut up shibs
2017-06-25 17:35:45 +02:00
StapleButter 4ffb217791 add support for 16bit IE reads/writes (fixes #66) 2017-06-24 01:21:09 +02:00
StapleButter 6ba178d7cf wifi: little fix related to replies (when the address isn't set, don't try to adjust the TX header) 2017-06-22 16:38:35 +02:00
StapleButter 456fe23850 wifi: tiny fix (bad TXSTAT after MP host transfer) 2017-06-20 12:20:37 +02:00
StapleButter c5dbb01aa3 wifi: fix for MP replies.
clean up code.
make packet logging conditional.
2017-06-18 16:26:59 +02:00
StapleButter d5fd96c500 wifi: another little fix 2017-06-18 03:41:36 +02:00
StapleButter 8cde75ce53 wifi: fix reception of MP replies
(still not working, don't catch fire Ndymario)
2017-06-18 02:05:21 +02:00
StapleButter 33fc98fac4 send empty reply when no MP reply is configured 2017-06-16 01:54:31 +02:00
StapleButter 6cda8d98b4 emulate RXTXADDR. receive packets progressively instead of all at once. 2017-06-15 23:38:48 +02:00
StapleButter 43cedebb65 implement RFSTATUS/RFPINS values for TX and RX 2017-06-15 23:01:44 +02:00
StapleButter 32e6e81ef4 more accurate MP reply 2017-06-15 22:26:32 +02:00
StapleButter 4b1b0bdec5 wifi: more correct IRQ behavior, time MP replies better. 2017-06-15 22:10:19 +02:00
StapleButter 402a60ea34 wifi: proper TX/RX status switch and RX check
readme: little update
2017-06-15 21:41:18 +02:00
StapleButter 49f8aec656 fix some shit 2017-06-13 17:44:35 +02:00
StapleButter 3499949129 * send undefined instructions to the proper exception handler
* make ARM9-only instructions fail on ARM7
2017-06-13 15:09:39 +02:00
StapleButter bbd251ddbc fix QADD/QSUB/QDADD/QDSUB, those would write their result to the wrong register.
also make them ARM9-only.
2017-06-13 11:17:22 +02:00
StapleButter 581a0954ad wifi: fix IRQ14 emulation. other fixes and attempts. 2017-06-13 01:01:46 +02:00
StapleButter cb65536c22 fix timing issue with ARM7 DMA (occasionally crapoed the 'Nintendo DS' sound when booting the firmware) 2017-06-12 19:00:32 +02:00
StapleButter bdb7edab51 fix big with ARM STM instructions that include Rb in Rlist 2017-06-12 16:36:24 +02:00
StapleButter 9852709ca3 wifi: attempt at further MP functionality (reply, ack). not working. ugly. 2017-06-09 15:11:39 +02:00
StapleButter 0f827337c8 * fix TX logic again
* add multiplayer CMD slot
* misc fixes
2017-06-07 00:37:14 +02:00
StapleButter f749ede319 wifi: cmd timer 2017-06-05 14:10:12 +02:00
StapleButter 9e36cba941 wifi: fix TX start logic (it is possible to write TXREQ then TXLOC) 2017-06-05 01:58:14 +02:00
StapleButter fb1eb43fb4 * bump version number
* implement 32bit reads to keypad registers
* also implement RCNT more properly
2017-06-04 22:34:31 +02:00
StapleButter c2fa561e40 fail gracefully if BIOS/firmware are missing 2017-06-04 18:36:59 +02:00
StapleButter d8ca8e8300 fix socket recv under anything not Windows 2017-06-04 18:25:15 +02:00
StapleButter fa2db3826e (finally) make the threaded 3D renderer option actually work 2017-06-04 15:55:23 +02:00
StapleButter 568b9fbf49 edge marking 2017-06-03 22:33:14 +02:00
StapleButter 64a447bb7c clean up some shit. make framebuffer access less weird. 2017-06-03 22:10:32 +02:00
StapleButter d81b68b16b * fix range for 'equal' Z-test mode
* confirm clear Z value for screen outer borders
* misc code cleanup
2017-06-03 21:46:14 +02:00
StapleButter 77d0a0d76e only do lower-pixel rendering when rendering under an edge 2017-06-01 15:16:44 +02:00
StapleButter d1781c8bf2 remove more per-pixel checks 2017-06-01 14:59:41 +02:00
StapleButter 27c023a0cc separate rasterizer inner loop into three loops for leftedge/middle/rightedge 2017-06-01 01:02:39 +02:00
StapleButter fe55ef1af1 * begin work on antialiasing, but not good yet. also code sucks.
* start making code nicer
2017-06-01 00:45:47 +02:00
StapleButter d3b3255ce3 * add 'push old pixel down' behavior for antialiasing
* delay final pass (edge/fog/AA) one scanline, required for edgemarking
2017-05-28 19:18:16 +02:00
StapleButter ae78faf2a7 rework slope/edge code. lay groundwork for antialiasing. 2017-05-28 18:36:42 +02:00
StapleButter 529039f766 * delay 3D rendering a bit (fixes Monster Trucks flickering)
* remove logging for ITCM/DTCM
2017-05-27 23:47:20 +02:00
StapleButter 6f4d835c7f fog 2017-05-26 15:14:22 +02:00
StapleButter a63ab24447 fix crapoed shadows 2017-05-26 04:00:15 +02:00
StapleButter 911888f1e0 fix alpha equation when blending is disabled 2017-05-26 03:16:23 +02:00
StapleButter 8558eff8aa properly reset 3D thread state 2017-05-26 01:22:11 +02:00
StapleButter 9d2b36127d add threaded 3D option to the interface and config file. not functional yet. 2017-05-25 22:50:36 +02:00
StapleButter 0c31a7ab01 quick hack: Tab toggles framerate limit.
misc little fix.
2017-05-25 22:46:01 +02:00
StapleButter 4b3caedbe7 first attempt at threading the 3D renderer 2017-05-23 23:38:28 +02:00
StapleButter 88d982b7e3 proper stencil buffer 2017-05-22 22:29:21 +02:00
StapleButter b66ac09e43 make the renderer truly per-scanline 2017-05-22 22:22:26 +02:00
StapleButter 189973f564 gjhdiqokjdrhygjqdryhsjyryujytsrgrtfdhfijeogfieOZPYFGRozhmvyfgrIOZUHESjhjhrgthistoyghresodgyrojyroturgeiutoiyzryueirefrhgdjg 2017-05-21 20:48:15 +02:00
StapleButter 1c6c2564d5 blarg 2017-05-21 20:43:40 +02:00
StapleButter cb1b03b253 make the 3D renderer work per-scanline 2017-05-21 20:14:03 +02:00
StapleButter edc959dcf5 draft APIs for threading in the core.
also, misc wifi crap, nothing noteworthy.
2017-05-19 22:17:28 +02:00
StapleButter d29dc7a2f0 wifi improvements 2017-05-12 05:20:15 +02:00
StapleButter dba6776817 more work on packet reception. 2017-05-12 01:21:39 +02:00
StapleButter 3b07da3a97 attempt at actually sending packets.
into the void for now.
2017-05-12 00:48:42 +02:00
StapleButter 01361f006e (untested yet) code for sending and receiving packets via sockets
MAC randomization
2017-05-11 23:43:57 +02:00
StapleButter e9a24b4d06 forgot Windows needs extra setup for sockets 2017-05-11 23:03:41 +02:00
StapleButter 9a2e2998e9 salvage socket init code 2017-05-11 19:57:49 +02:00
StapleButter eb7154e426 woops 2017-05-10 02:30:18 +02:00
StapleButter f54f54fb7e add support for writing to VCount. incl. fucked-up display and altering framerate accordingly. 2017-05-10 02:21:02 +02:00
StapleButter 63e15d2480 framerate limiter that sucks less, based off SDL2_gfx 2017-05-10 01:42:53 +02:00
StapleButter 9fe24cb1e7 latch 3D registers upon VBlank
(fixes the last bugs in Gericom's train game)
2017-05-09 22:22:52 +02:00
StapleButter 36fa621436 lay base for core->platform interaction
(immediately planned: threaded 3D renderer, wifi connectivity)
2017-05-09 04:55:38 +02:00
StapleButter bde9e7dfed fill BIOS exception vectors with undef opcode when no BIOSes are found 2017-05-09 04:52:17 +02:00
StapleButter 50d2ffb207 misc. things 2017-05-09 03:54:37 +02:00
StapleButter 7c1443b973 fix lighting behavior with normals that overflow 2017-05-03 23:54:31 +02:00
StapleButter 9e622dcc66 3D: attempt at fixing culling. players in Madden are no longer full of holes, and that also fixes occasional missing polygons in RaymanDS, and probably others. 2017-05-03 01:21:39 +02:00
StapleButter ce240f4216 more wifi work: timers and their IRQs 2017-05-01 22:27:05 +02:00
StapleButter d4270b0976 wifi: implement RAM access via the fancypants registers. allows Pictochat to proceed, but noone will reply to you. 2017-05-01 19:29:25 +02:00
StapleButter ee8d621880 finalize CMake shit.
Windows will stick to CodeBlocks until making a cross-platform build system isn't a total trainwreck under Windows.
2017-04-30 03:46:27 +02:00
StapleButter 1b06b2765d Merge branch 'master' of https://github.com/s1nka/melonDS
try to get CMake going, but it's not finished. don't use unless you know what you're doing.
2017-04-29 20:25:57 +02:00
StapleButter ee0effd22f implement xflip for bitmap sprites (fixes #32) 2017-04-29 16:18:33 +02:00
StapleButter da31af9202 fix Z-buffering. not really clean, and not perfectly accurate. 2017-04-29 00:20:04 +02:00
StapleButter 2273bd2ea4 fix texcoord-from-vertex mode. it works like for normals (1.0 = 1/16 texel) 2017-04-28 17:35:57 +02:00
StapleButter 5de98cd484 add 32bit write to DIVCNT and SQRTCNT 2017-04-28 17:23:18 +02:00
StapleButter ecbcf2172a only trigger cart DMA on the CPU for which the cart interface is enabled.
fixes unstable firmware boot.
2017-04-27 18:45:43 +02:00
StapleButter 5217f4b056 set POSTFLG to 1 upon direct boot. fixes Pokémon White among others. 2017-04-26 16:17:03 +02:00
StapleButter d9afcc37b8 fix display capture blending bugs. fancypants motion blur filters shouldn't look like acid trips anymore. 2017-04-25 16:55:19 +02:00
StapleButter 29938b566a tiny thing 2017-04-25 16:24:31 +02:00
StapleButter 6707e5bb85 support 16bit access to the DMA fill regs 2017-04-25 16:13:16 +02:00
StapleButter 7ac538d5d2 better heuristic for Flash save type 2017-04-25 03:24:22 +02:00
StapleButter 9b5f293a9e implement leading gap and 0x200-gap delays for ROM transfers 2017-04-25 02:26:37 +02:00
StapleButter 9eb68c2ede misc optimizations 2017-04-25 01:14:26 +02:00
StapleButter 7ea488a3c9 support 8-bit writes to the color effect registers 2017-04-24 16:01:24 +02:00
StapleButter 8fd1124117 implement 8bit reads to the joypad ports 2017-04-24 01:30:30 +02:00
StapleButter bdac2467e7 oh well 2017-04-23 15:38:39 +02:00
StapleButter 1759672d14 a few attempts at optimization 2017-04-23 15:25:15 +02:00
StapleButter 60cdc7d6f7 fix display capture. dumb bug of the year. 2017-04-23 01:05:04 +02:00
StapleButter 96b471d729 fix shadow oddities
not a proper fix, but shadows aren't emulated properly anyway
2017-04-22 19:06:48 +02:00
StapleButter a086e22023 attempt at shadows. they're still a bit weird tho. 2017-04-22 18:04:54 +02:00
StapleButter 70c72004ac behavior for translucent pixels is preserved even when alphablending is disabled 2017-04-22 17:15:50 +02:00
StapleButter 4f72ee3895 add support for polygon ID and conditional depth update for translucent pixels 2017-04-22 16:47:31 +02:00
StapleButter eb656857d9 optimize the 3D renderer somewhat 2017-04-21 22:40:15 +02:00
StapleButter 796e60828c small optimizations to the 3D renderer 2017-04-13 19:53:09 +02:00
StapleButter 2380c2f4ea hopefully fix the DMA bug without breaking everything this time. 2017-04-13 04:16:57 +02:00
StapleButter c62e160b26 * decal texture blending
* start implementing toon shading
* temp. revert the DMA fix, causes issues
2017-04-12 20:25:54 +02:00
StapleButter 54eeb38d3d make CPU freezes take place immediately. fixes RaymanRR2 backgrounds occasionally getting cut in half. 2017-04-12 17:53:15 +02:00
StapleButter db20d7408e better wifi stub 2017-04-12 16:58:09 +02:00
StapleButter 96a3848d84 make ROM command handling accurate, remove gross DMA hack. 2017-04-11 20:21:31 +02:00
StapleButter 0b981f2a4d fix addressing for tiny EEPROM. 2017-04-11 01:21:35 +02:00
StapleButter 84664a6ded bypass first save command byte when it's zero. for Pokémon games. 2017-04-10 20:56:22 +02:00
StapleButter 8bbcc83771 * always render normal BG/OBJ graphics (even if they're not getting displayed, they can still be fed to the capture unit)
* fix 3D viewport calculation
* keep track of the clearbuffer attributes before VBlank
2017-04-10 20:24:41 +02:00
StapleButter f2622c047b some attempt at actually stubbing out wifi. except it won't fucking work. 2017-04-10 18:47:11 +02:00
StapleButter 2fef876eeb box test, pos test, vec test 2017-04-09 17:15:39 +02:00
StapleButter de4b046232 * more accurate flags (push/pop busy, test busy, vertex/poly overflow)
* more versatile and better clipping code
2017-04-09 16:12:12 +02:00
StapleButter 28ebd56fb8 * fix bug with 0-line tall windows (would be enabled for the whole screen)
* map some I/O ports
2017-04-09 03:47:47 +02:00
StapleButter bc70f00372 windows! 2017-04-09 03:35:32 +02:00
StapleButter 3f3b2977d7 * sound capture from left/right mixers
* support for appropriate output modes
2017-04-08 22:59:27 +02:00
StapleButter a4f436f827 * stub more wifi crap
* louder sound
* misc fixes
2017-04-07 17:37:49 +02:00
StapleButter d8bbf25431 * PCM8, PCM16, ADPCM, white noise
* volume, volume div, panning, master volume
2017-04-07 01:06:10 +02:00
StapleButter 76c4e57608 preliminary audio. only supports PSG (and handles all channels as such). drops out every once in a while. 2017-04-06 22:38:46 +02:00
StapleButter 8d66beba6b start SPU work 2017-04-06 19:44:34 +02:00
StapleButter 28cddadfbc * bump version number
* feed system time into RTC
* start laying base for sound
2017-04-04 15:32:50 +02:00
s1nka 5d13538584 add CMake build system 2017-04-02 13:33:01 +06:00
StapleButter 3a61ed0a91 allow crapoed THUMB hireg ADD/CMP/MOV 2017-03-31 02:20:29 +02:00
StapleButter bfe22e0b9b allow 16/32 bit writes and reads to the gamecard command registers. 2017-03-31 01:50:01 +02:00
StapleButter 46ed4aeeb1 one last fix 2017-03-30 03:31:27 +02:00
StapleButter 8e5f175f5e fix touchscreen input. proper cleanup of threads. meaningless codeblocks crap. 2017-03-30 03:24:46 +02:00
StapleButter a65b45a334 I am a fucking idiot 2017-03-29 23:09:47 +02:00
StapleButter 99e4ad409f maybe this shit will finally work. also update the README. 2017-03-29 22:56:30 +02:00
StapleButter 9baeb3bd1a tweaks 2017-03-29 22:49:36 +02:00
StapleButter 41f4ad6620 derp 2017-03-29 22:44:48 +02:00
StapleButter 4202a8f826 finish Flash support, mostly 2017-03-29 22:12:53 +02:00
StapleButter 2db5b21760 * emulation settings dialog
* proper setting for booting directly or from BIOS
* fix shit, again
2017-03-29 20:23:41 +02:00
StapleButter f88226c99f remember window size.
fix extra shit.
2017-03-29 20:12:03 +02:00
StapleButter 2ae2fedf21 minimum size for the SDL window.
screen scaling that preserves aspect ratio.
touchscreen takes scaling into account.
2017-03-29 19:41:25 +02:00
StapleButter 6bf0bf3924 blarg 2017-03-29 19:00:51 +02:00
StapleButter 4e7dc60d37 * clean up code
* working-ish run/pause/reset
* proper closing/cleanup
* ability to run BIOS alone
2017-03-29 18:59:20 +02:00
StapleButter c0734352ab don't rely on a SDL window to get keyboard input 2017-03-29 17:50:11 +02:00
StapleButter e2cc3f1a72 attempt 2017-03-28 23:21:56 +02:00
StapleButter d6bab52baa oops 2017-03-28 22:12:17 +02:00
StapleButter b5f461b950 custom main() and init SDL before everything else.
included WinMain() for compatiblity.
2017-03-28 22:07:58 +02:00
StapleButter 4ad96f1b34 start work on a separate SDL window 2017-03-28 17:03:08 +02:00
StapleButter 55e75dab47 stop the Start button from getting lost every goddamn time 2017-03-25 16:41:12 +01:00
StapleButter f9a76124c3 woops 2017-03-25 16:25:12 +01:00
StapleButter 762b91d640 actual joystick support 2017-03-25 16:18:35 +01:00
StapleButter 12daf16282 input dialog finished 2017-03-25 05:25:03 +01:00
StapleButter e6124c4776 start getting somewhere with that input config dialog 2017-03-25 05:04:15 +01:00
StapleButter 68eb4f6caf * implement missing graphics (affine BG, rotscaled bitmap sprite)
* fix potential crash upon exit
* more work on the input config UI
* misc fixes
2017-03-24 20:53:01 +01:00
StapleButter f7ac0090f0 fix bugs 2017-03-23 23:55:22 +01:00
StapleButter 4f5eb6caa0 support for tiny EEPROM 2017-03-23 23:47:55 +01:00
StapleButter 49314244e1 start work on the input config dialog. nonfunctional and looks like shit.
add manifest crap under Windows so it gets the cool controls.
2017-03-23 23:38:40 +01:00
StapleButter f237afeb66 aqezsfrdgthfyjgu 2017-03-23 17:27:33 +01:00
StapleButter 8c059c9953 * more thread-safe UI
* config system base
* FPS counter and limiter
2017-03-23 17:14:48 +01:00
StapleButter 91f46b00fb fix bug that occured when a flush command was sent between lines 192 and 215 2017-03-21 18:08:11 +01:00
StapleButter 3590d210f3 always apply matrix push/pop/store/restore to the vector matrix stack, even in mode 1. fixes SM64DS lighting. 2017-03-21 12:52:17 +01:00
StapleButter 3dd79d63f1 start 3D rendering at scanline 215. fixes Worms2D. 2017-03-21 11:45:12 +01:00
StapleButter cc86aa57ae fix that bug where NSMB's backgrounds lagged one frame behind 2017-03-21 02:11:49 +01:00
StapleButter 08a634371a fix bug that happened when HDMA got interrupted (or any repeating DMA, for that matter) 2017-03-21 02:05:40 +01:00
StapleButter 3a89513c93 * more accurate direct boot
* improve touchscreen precision a bit
* proper support for 512KB firmwares
2017-03-21 00:53:04 +01:00
StapleButter 2150240cbd implement some obscure DMA types 2017-03-20 22:18:35 +01:00
StapleButter a56bf5c76c make timers not suck. fixes issues (Worms2 intro FMV plays at the right speed, aging cart tests get further...) 2017-03-20 17:39:42 +01:00
StapleButter f38bc94011 input, with hardcoded (but not retarded) key mappings.
touchscreen support that doesn't suck.
2017-03-20 00:43:45 +01:00
StapleButter 59d107bfb0 make ROM path not be hardcoded. 2017-03-19 19:07:39 +01:00
StapleButter 5a061bc638 begin work on wxWidgets+SDL interface
Windows crapo ditched
2017-03-19 18:43:01 +01:00
StapleButter 8a4ed8f41c reorganize repo, move shit around 2017-03-16 23:01:22 +01:00