build with `-p:MachineExtraCompilationFlag=BIZHAWKBUILD_DEBUG_RUMBLE`
there's nothing special about SDL2 I just can't be bothered finding the
other impls
This is most likely more correct. .net framework does not have a dedicated method for checking absolute paths, so this was most likely accidentally used instead.
-closes #4068
There's still two callsites that don't check the return value, but I'm not sure whether they can fail and what they should do if they do.
The Z80 should only be sampling the /WAIT pin during the 3rd cycle T of an IO REQ M Cycle.
Instruction timing tests verified on CPCHawk using WinAPE plustest.dsk.
Note: CPCHawk is the only core to currently use the Z80A /WAIT pin (FlagW), so other core exposure is 0.
* [CPCHawk] Start of new gate array and CRTC implementation
* [CPCHawk] Some cleanup
* [CPCHawk] More Cleanup
* [CPCHawk] More CRTC work
* [CPCHawk] More crtc work
* [CPCHawk] more CRTC work
* [CPCHawk] More CRTC work
* [CPCHawk] more crtc
* [CPCHawk] GateArray breaking changes WIP
* [CPCHawk] GA, CRTC and Screen changes
* [CPCHawk] CRTC and GateArray
* [CPCHawk] More stuff
* [CPCHawk] Progress
* [CPCHawk] Starting CRTC type abstraction
* [CPCHawk] Start CRTC status register implementation
* [CPCHAWK] Update colour palatte
* [CPCHawk] Trying to fix GA colour issues
* [CPCHawk] Actually use the Z80 /WAIT line
* [CPCHawk] Frame now running at req 19968 x6 INT
* [CPCHawk] Implement PAL16L8 as a separate device
* [CPCHawk] Border cropping SyncSetting
* [CPCHawk] Stuff
* [CPCHawk] More accurate CRT emulation
* [CPCHawk] Reset vertical timing var only when VSYNC ends in the middle of a scaline
* [CPCHawk] Allow IN port accesses to affect certain write-only devices
* [CPCHawk] Fixed high-impedence returns
* [CPCHawk] Readme update
* [CPCHawk] Update readme with Z80 timing test failures
* [CPCHawk] Update readme
Drawing a string is really having GDI+ do the drawing in software, uploading the result to a texture, then overlaying it to the render target. Since this texture is largely transparent, it needs blending. Of course, assuming the colors are all otherwise opaque, we only need to do this for the string texture draw
- setting multiple buttons to autofire actually works
- the config to respect lag in autofire is applied now
- can set meaningful axis hold / autofire
- removed last reference to "float autofire"
The documentation for these is lacking, as I've come to expect, but I'm
angry all the same.
For EmuHawk and DiscoHawk, I've pushed `$(Description)` (normally only
seen when publishing to NuGet) into `$(AssemblyTitle)`, which Windows
labels as "File description", and then explicitly set `$(Product)`.
Also `$(NeutralLanguage)` doesn't set a culture, it points any lookups
for `en-US` localisations to embedded resources, which I believe is the
default. This just makes it explicit.
broke with 8956657a34 I'm assuming. Notably this will now no longer copy the current settings over, but that might actually be more consistent with the behavior of the normal new option, so...
fixes#4056
`ControllerAdapter` ctor uses `(discs?.Length ?? 0) > 0`, but it gets
`discs` from earlier in core init; when it's later assigned to `_disks`,
empty lists are replaced with null, and other places in `NymaCore` use
`_disks != null`. The `default(int)` is to match pre-3af5b7a7f
behaviour.
in an ongoing effort to try and make the logic understandable
This should also restore default columns now when an existing tasmovie is currently loaded with column changes
and an existing bk2 is opened (which is then converted to a tasproj) (possible after 2ad7fc095c)
this allows loading the input roll settings stored in a tasproj even after it was initially `Load()`ed. This fixes those settings not getting applied when loading an existing, playing tasmovie into TAStudio.
If you want something like this done, just look for a .cue file next to the .bin file. Do not try to generate a temp .cue and pass that .cue along as the disc file to load, you will potentially run into a situation that temp .cue filename (mind you, this is random!) will act as the game name (due to not being present in db for whatever reason), affecting stuff like SaveRAM and such. The disc file "loaded" must not have some random junk in the filename.
ClearStickies clears buttons and axes, but the virtualpad tool wants to control whether only buttons are cleared.
also contains minor cleanups regarding related function calls.
while this did "work", and mimicked other emulators handling internal upscaling, it was a hack, and ends up causing issue with lua padding. it is also more unneeded now that #4029 (makes the UX of a sudden "large window" more managable) and #4011 (allowing for mimicking the frozen smaller window state) are merged
resolves#4039
- Stop overwriting/deleting other games' cheat files after rom change
- Always clear/update references to disposed memory domains
- Keep current cheats after core restart
* Add option to disable automatic main window resize
* Add option to window size submenu
* Rename parameter to `forceWindowResize`
* Add XML doc comments
* Save main window size
* Make `Config.MainWndx `/`MainWndy` nullable
* Reduce total diff size
* Move cast inside of `foreach`
* Remove obsolete workaround
Position isn't saved anymore when minimized
* Combine config values into `Point` and `Size`
* Add `Point` and `Size` to known good serializable types
* Remove doc comment from implementation
* Adding initial version of the core
* Adding base files
* Trying to load waterbox now
* Adding stella
* Adding bk class
* Compiling bk interface to stella core
* Now compiling against Stella + SDL2-based BK backend
* Progress
* More progress
* Frame advancing (no render)
* Calling video update but crashing on zero div
* Now rendering to screen with correct palette
* Now rendering appropriately and with correct palette based on region
* Now reading controls
* Trying to capture audio
* Now adding audio
* Now polling inputs
* Now polling inputs
* Now reporting memory regions
* Added memory regions
* Removing debug prints
* Fixing indent
* Adding stella core
* Updating readme and make all cores
* Recovering ending comma
* Using heap alloc for sound buffer
* Removing unnecessary files
* Update src/BizHawk.Emulation.Cores/Consoles/Atari/Stella/Stella.IMemoryDomains.cs
Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>
* Update src/BizHawk.Emulation.Cores/Consoles/Atari/Stella/Stella.IMemoryDomains.cs
Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>
* Fix
* Restoring vscode
* Removing warning
* Update waterbox readme
* Fix Stella's `[Core]` attr
* Increased sound buffer size to 1Mb, as some games need more than 4K
---------
Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>
Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
* refactor InputDisplayGenerator and LogEntryGenerator handling
* Fix NRE in Tastudio. I can already see this avalanching into 100 different bugs
* cba, revert 48f4e13de and bring back bullshit dummy default MovieController
* Refactor MnemonicCache + make Bk2LogEntryGenerator and Bk2InputDisplayGenerator static. This should simplify stuff and make the logic clearer
"Don't use target-typed new for throw expressions"
where there was a type name checked-in before being removed,
I've restored it (they were all `Exception`)
This does change some behavior, but hopefully the new structure is more logical and more correct. Calling HandleFrameAfter from HandleFrameBefore definitely didn't feel proper.
* Update QuickerNES interface to accept arkanoid controllers
* Updating
* Updating quickernes to its latest version and now supporting ArkanoidNES and ArkanoidFamicom controllers
* Apply suggestions from code review
applying yoshi's suggestions
Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>
* Using proper C#
* Updating based on Morilli's comments
* Updating the linux core
* Fixes based on Yoshi's comments
---------
Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>
* Rename StartNewMovie parameter
* Move PopulateWithDefaultHeaderValues to MainForm.Movie, make private
Author still needs to be set locally
* Make PopulateWithDefaultHeaderValues non-static
* Remove now-unnecessary firmware parameter in RecordMovie
* add TODO comment
* add Prepopulate function before movie load
Now, the main header population happens after the core is reloaded, ensuring all values are in the correct state.
A few movie values still need to be set beforehand though to ensure the core reboot works correctly.
* Allow recording movies even with outstanding reboot
Should be safe now with the previous commit.
I believe this is more correct than what was previously done. In particular the lag log and statemanager should always be invalidated at the same time. Maybe the `this.IsRecording()` check should be removed altogether?