Commit Graph

110 Commits

Author SHA1 Message Date
zeromus 9c6834db17 fix bugs in "Display scaling by integer" caused by edits for NDS rotation (e45943c26a)
fixes #1958
2020-04-28 18:56:24 -04:00
zeromus bb68d55db8 fix AR problems due to NDS screen layout work 2020-04-07 23:34:41 -04:00
zeromus e45943c26a raw capability for DisplayManager handling the NDS screen layouts. someone else will have to hook up the configuration in "CreateCoreScreenControl()". Gap, rotation, and layouts all supported. You will see that other configurations with varying view sizes won't be hard either.
Note that this was actually not very difficult, compared to dealing with the client sizing logic, which was teetering on the brink of total collapse. I may have messed something up while trying to support it here (mainly related to emu-space and client-space padding). There were many assumptions that the core's videoProvider would remain sensible, which this "core screen control" system subverts. The padding and sizing was added after I designed the pipeline specifically for this, so the padding and sizing is not handling it very well. Nonetheless, I think it works.
2020-03-29 21:50:06 -04:00
adelikat 729c0516ed some nitpick cleanups 2020-03-29 15:57:27 -05:00
adelikat 730156b5db DS - wire up some screen setting options, the side by side ones don't work because screen arranger has a bug, and it is flawed, going to refactor all of this 2020-03-28 12:03:26 -05:00
adelikat 3e89a7f201 DS - refactor settings so that it is an enum that then translates to ScreenArranger settings 2020-03-28 11:21:39 -05:00
adelikat e2ac7d7a8f cleanup ds video options code 2020-03-28 10:31:25 -05:00
zeromus 6c541de69d ZOOM 2020-03-28 03:51:47 -04:00
zeromus 90246dd4c1 fix raw screenshots, which previously were a mixed up mess of user filters and sysdrawing downscaling. fixes #1902.
This was broken by 95bc69b448 (or else it was benign at that time and broken later, but the fundamental change was here).

This caused the raw screenshots to go through the displaymanager instead of very simply converting the core's videoprovider at that point. The reason was because only the displaymanager had the power to render an opengl core's texture ID.

In this commit, I fixed it so that displaymanager had the power to render a videoprovider WITHOUT the user's scaling filters
2020-03-28 03:46:31 -04:00
SuuperW 88904e6b44 support custom screen layouts in MelonDS core (no UI yet) 2020-03-22 18:40:52 -05:00
adelikat 6a25679ae3 remove trailing comma in various places in Emuhawk probject 2020-03-21 16:04:08 -05:00
SuuperW c59d8130bb
DS Hawk (#1884)
* Add MelonDS.cs, support opening (but not really) .nds files.

* init MelonDS

* MelonDS: Load selected ROM.

* MelonDS: FrameAdvance and frame counter.

* MelonDS: IVideoProvider

* MelonDS: Add DLL files.

* MelonDS: IInputPollable

* MelonDS: IStatable (and add forgotten file MelonDS_InputPollable.cs)

* update libmelonDS.dll

* MelonDS: ISoundProvider

* Add NDS to Global.SystemInfo, and convert screen coords when running NDS.

* set up default NDS controller

* MelonDS: ISaveRam

* MelonDS: remove romlist.bin

* MelonDS: ISettable

* Create firmware folder if it doesn't exist on Windows; otherwise, an exception is thrown.

* Add database entries for NDS bios/firmware files.

* MelonDS: Use the bios/firmware files selected in BizHawk's "Firmwares" dialog.

* MelonDS: Re-work sync settings a bit.

* NDS's firmware file contains user settings; these are over-written by sync settings, so we shouldn't allow them to impact the hash

* MelonDS: Add (currently unused) bootToFirmware sync setting, and NDSSettings dialog.

* Update NDS firmware hash; it seems I had somehow corrupted mine.

* MelonDS: Use boot to firmware sync setting.

* MelonDS: Allow user to set some firmware user settings via the NDS settings dialog.

* MelonDS: Add singleInstance attribute to core.

* MelonDS: IMemoryDomains

* update libmelonDS.dll

* MelonDS: Set up default sync settings if none are provided.

* MelonDS: Allow user to reset settings to default.

* MelonDS: bios+firmware files are recommended

* libmelonDS.dll

* MelonDS: Don't use real time.

* MelonDS: Update to reflect new way of handling RTC in MelonDS.

* MelonDS: Notify if savestate load failed.

* update MelonDS.dll

* MelonDS: Allow user to set startup date/time in settings dialog.

* MelonDS: Create melon directory if it doesn't already exist.

* Don't include Designer's "fixes" in PR (partially reverts 56b474c00)

* Don't show a broken console window; alert user of need to restart instead.
This fixes an error related to MelonDS trying to use the broken stdout stream.

* update default NDS controls to match other updated controls

* Implement a system bus, using ARM9 read/writes.

* MelonDS: Allow BizHawk to change the contents of the frame buffer.

* update libmelonDS.dll

* fix stuff that was merged incorrectly, or was broken by merge

* update libmelonDS.dll
(includes memory leak fix)

* update libmelonDS.dll
(fixes memory leak and an occasional savestate crash)

* fix stuff that broke with the merge

* cleanups, remove stuff that is no longer needed by service interaces

* simplify DS MemoryDomains

* DS - fix order of controller buttons to be consistent with other consoles.  This probably breaks any existing movies made on this core, but those would have been experiments, right?

* NDSSettings - make min value for day and month 0, whiel those aren't "valid" values they are the default values in the core for whatever reason, better to not crash on load and not show a value that isn't actually the setting.  This can easily be reverted if the core changes to default to 1

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
Co-authored-by: adelikat <adelikat@tasvideos.org>
2020-03-21 10:53:30 -05:00
YoshiRulz e1951b9fc5
Cleanup PathExtensions
Fixes f02295455/c731e1168/5c7135d67
2020-03-21 13:45:58 +10:00
adelikat e16dc33722 move some PathManager methods to a PathUtils class in BizHawk.Common 2020-03-15 15:59:10 -05:00
adelikat ef13754f79 consistent variable naming in config.cs 2020-01-25 10:57:39 -06:00
YoshiRulz 165c2a0e2e
Merge BizwareGL.SlimDX into BizwareGL 2020-01-22 07:21:22 +10:00
YoshiRulz 87833d76d7
Merge GdiPlus and OpenTK into BizwareGL 2020-01-22 07:05:50 +10:00
adelikat 3d833af617 break out enums from Config.cs 2020-01-21 09:02:42 -06:00
YoshiRulz 060255471b
Improve exception docs in BizHawk.Client.EmuHawk 2020-01-02 21:51:37 +10:00
adelikat 0f33e2b1e7 cleanup display manager code 2019-12-31 11:14:10 -06:00
adelikat b65b9d64d7 DisplayManager cleanups 2019-12-21 12:33:45 -06:00
YoshiRulz e6374ef477
Use string interpolation 2019-03-19 00:06:37 +10:00
zeromus b164d8b31c implement user crop area as a negative padding
fixes #1453
2019-01-18 01:16:03 -05:00
zeromus e53d861db4 Revert "bad attempt at implementing user crop area" 2019-01-18 01:00:24 -05:00
zeromus 578bb546f3 bad attempt at implementing user crop area. need to do differently. needs to happen.. like... as soon as we get the video provider. 2019-01-18 01:00:07 -05:00
zeromus 9d99995e04 small revision to 14ad5a3907 to work better in some cases with really, really weird window sizes 2018-09-15 23:17:47 -04:00
zeromus 14ad5a3907 fix #1279 (warp speed during minimized) 2018-09-10 15:25:40 -04:00
zeromus fb697840d0 dont blow up when a core reporting 0x0 virtualsize is auto-loaded. not the most graceful solution, but it works 2017-08-22 18:34:45 -04:00
zeromus d96f26452c fix d3d dispmethod crash
probably fixes #947
2017-07-29 14:58:56 -05:00
zeromus 94e2fe2a10 fix displaymanager crashes when rebooting snes9x (and maybe others) while paused (due to unset virtualsize). 2017-07-27 22:42:13 -05:00
adelikat 59139ab266 Spell out Numerator and Denominator 2017-05-05 11:25:38 -05:00
adelikat 62a13d961d Move VsyncNum and VsyncDen out of CoreComm and into IVideoProvider 2017-05-05 11:21:37 -05:00
J.D. Purcell 303e8d41e9 Cleanup code to create GUI Renderer. 2017-04-29 17:49:34 -04:00
J.D. Purcell 676da1002d Update MultiHawk's DisplayManager. Because I was testing out multiple D3D controls. 2017-04-09 22:44:58 -04:00
J.D. Purcell f1dee6c20e Fix flickering when toggling vsync on/off (e.g. while fast forwarding). 2017-04-08 16:56:15 -04:00
J.D. Purcell 0b81463408 Make sure Direct3D objects get disposed. Fixes all SlimDX warnings when exiting. 2017-04-08 15:18:55 -04:00
zeromus f7638e8352 "fix" client.bufferwidth and client.bufferheight .... I dont understand why they were doing what they were doing. It seems like such a simple thing, just return the dimensions of the core's videoprovider. Someone should rethink all these (and the surface names, and the padding names) and craft a complete, new design. 2017-01-26 00:54:44 -06:00
zeromus 676b5791f6 lua: add gui.DrawFinish() which will let you choose when to finish drawing; and add optional argument to gui.DrawNew which when set to false lets you keep it from being cleared. 2016-04-21 16:43:37 -05:00
zeromus 3adc8f7c82 dont send 0-sized framebuffers deep into displaymanager (prevents crashes when sending fullscreen windows to other monitors sometimes, and probably other bugs) 2016-04-20 12:33:59 -05:00
zeromus 1a1a688b96 remove NeedsToPaint; client now repaints ~100fps while paused all the time. as it already did when input display was enabled. fixes #615.. probably 2016-04-20 12:17:41 -05:00
zeromus f1ea49133d fix bug in d3d alternate vsync + frame advance 2016-03-29 03:05:00 -05:00
zeromus 17cae0ad1c fix old bug in raw screenshot with game extra padding 2016-03-27 21:02:18 -05:00
zeromus 10272b4857 add alternate vsync method for d3d display method, in case youre the lucky owner of a system that sucks 2016-03-27 04:49:17 -05:00
zeromus 406b431280 add comments for later about triple buffering 2016-03-26 12:39:31 -05:00
zeromus 3deb7fcb31 add autoprescale concept. default it to on, since really I can't think of when you'd ever not want it, except in some very low-spec system scenarios. Add NOP concept to filter chain, potentially troublesome 2016-03-23 20:26:31 -05:00
zeromus 86b3ecf7b8 displaymanager: change how windows shrink to <1:1 by shrinking content instead of attempting to inversely 'letterbox' it by shoving it offscreen (fixes #579) 2016-03-04 01:59:25 -06:00
zeromus 95bc69b448 some prepwork for opengl texture ID importing (skip rendertarget resolve on OGL display method) but there are still problems and it can't be enabled yet 2016-02-22 00:23:20 -06:00
feos 128c09e7b4 progress with lua:
- added fceux and gens/snes9x pixelated fonts
- added gui.pixelFont() function for them (no resizing, so perfectly scalable)
- added background to drawText and pixelText (halo was painfully slow, so just a box)
- reordered fore and back colors for gui.text (no need to specify back every time we want to change fore). thought its back color was shadow, that is obsoleted by halo now, whose color we can't change. anyway, it's way slower than simple text functions, so they should be used mostly.
- option to toggle all scripts if none is selected. greatly reduces routine when heavily tweaking a script, and is just generally pretty.
2015-11-28 22:19:15 +03:00
zeromus ea45f40743 fix error in sizing of lua draw buffers with SetGameExtraPadding (and probably ClientExtraPadding) use 2015-11-13 15:07:14 -06:00
zeromus 4fe51a1364 support custom AR selection in addition to custom exact-specified resolution 2015-10-25 02:15:59 -05:00