Commit Graph

1198 Commits

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