Commit Graph

399 Commits

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