Commit Graph

59 Commits

Author SHA1 Message Date
feos dce6253c8a default doom controls 2025-05-22 23:43:15 +03:00
Sergio Martin 654544b329
Adding Opera (3DO) as emulation core in Bizhawk (#4264)
* Adding base

* Progress with opera and adding 3do firmwares

* Adding missing callbacks

* Adding missing callbacks

* 3DO core starting

* Now passing inputs

* Passing gamepad inputs

* Fixing input names

* Now supporting mouse

* Adding mouse support

* Added flightstick

* Added flight stick

* Adding last inputs and fixing audio

* Adding controllers and fixing audio

* Adding orbatak

* Fixing mnemonics, added orbatak

* Adding font roms

* Adding font roms

* Adding region

* Adding region

* Fixing mouse issue

* Fixed initialization bug in fresh installs

* Setting mouse to relative inputs

* Using mouse as relative

* Bypassing bios checks to enable bizhawk to pass whatever bios it wants

* Adding default inputs for 3DO

* Adding detection of nvram changes

* Adding lag frame and nvram saving

* Adding cd use detection

* Adding cdrom light

* Using cd callbacks

* Using cd callbacks

* Bypassing image name check

* Adding multidisc support

* Removing 3do-iso special extension

* Fixing build

* Attempting to add disc swapping

* Trying to add multidisc support

* Uncommenting cd functions

* revert unrelated changes

* misc unmanaged integration

* Update waterbox-cores.yml

* Added reset button, removed eject/insert

* Added reset button, removed eject/insert

* Fix line endings in `Bk2MnemonicLookup.cs` changes

* Fix indentation

* Fix spaces in `Opera.cs`

* Alphabetise

* Make `Opera`'s `ISaveRam` implementations `override`

* Misc. code style changes

* Fix casting array index to `uint` for comparisons

* Adding default framerate and removing message duration parameter

* Refactoring input parsing and fixing some errors

* Fixing indentation

* Exposing non volatile ram

* Adding automatic sram management

* Now letting bk manage saveram automatically

* Fixing indentation and removing unncessary flag

* Removing dead code

* Removing dead code

* Removing unnecessary mnemonic fallbacks

* Keep fixing indentation errors

* Removing struct for memory areas

* Adding proper detection of input reading

* Changing namespace to not have an underscore

* fix whitespace in PlatformFrameRates

* make waterbox function non-virtual

* Update src/BizHawk.Emulation.Cores/Consoles/3DO/Opera.cs

Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>

* Fixing controller mapping

* Fixing controller mapping, 3DO->Panasonic3DO, added submenu

* Fixing controller

* Fixing controllers

* Removing unnecessary function

* Fixing namespace and default ctrls

* Fixing 3DO detection

* Adding submodule branch

* Adding PAL framerate for opera

* controller pic

* Fixed firmware naming

* Fix line endings

* Recompress image

* Realphabetise after namespace/sysID change

* Move this `case` block up

* Minor code style fixes

* Renaming user-facing Panasonic3DO strings to 3DO

---------

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>
Co-authored-by: feos <feykomylce@gmail.com>
2025-05-09 10:04:14 +03:00
Sergio Martin 236ff74b2b
Adding DOSBox as core for DOS TASing (#4217)
* Adding dosbox

* Adding placeholder

* Adding initial placeholder for DOSBox

* update

* Update

* Update

* progress

* Progress

* Increasing mem capacity

* Progress

* Now running timer correctly

* Progress

* Stable

* Parsin inputs

* Keyboard working

* stable before using memfiles

* Now accepting rw hdds

* Hard disk rw working

* Fixing conflict

* Getting samples

* Reading samples but sounds too low

* Reading samples but sounds too low

* Now accepting multiple cdrom/floppy images

* Allowing swapping

* Enabling cdrom and disk swapping

* Simplifying

* Simplifying

* Simplifications

* Simplfiications

* Capturing sdl delay

* Adding configuration presets

* Enabling joystick

* Enabling joysticks

* Added mouse support

* Adding mouse support

* Progress with hard disk

* Adding default hard disk images and making them selectable

* Adding mnemonics, more configs, and some refactoring on the standard confs

* Processing file extensions

* Adding sram

* Adding saveram

* Adding drive lights

* Adding drive lights

* Adding memory domains

* Removing warnings

* Fixing warning

* Revert unrelated changes to Multi-Disk Bundler

* Re-alphabetise lists and clean up diff

* Missed a bit

* Make `DOSBox`' `ISaveRam` implementations `override`

* Fix `DOSBox`' `[PortedCore]`

* Clean up string comparisons in `DOSBox` ctor

* Set values for `WriteableHardDiskOptions` instead of translating

* Clean up reading of DOSBox config presets from embedded resources

* Fix code style warning

* Removing duped line

* Fixing extension parsing

* Small adjustments

* Aligning fps to that of normal DOS

* Aligning fps to that of normal DOS

* Simplified extension getting and adding base config file resource

* Remove unused import

* Properly measuring extended mem size

* Adding more settings and simplifying machine presets

* Adding check for SRAM size to prevent wrong-sized HD being loaded

* Removing unnecessary directive

* Update correct DOS framerate

* Adding sensible configuration presets

* Adding to the config preset description text

* Update src/BizHawk.Emulation.Common/Base Implementations/Bk2MnemonicLookup.cs

Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>

* Removing stale config files

* Fixed mouse emulation

* Fixed mouse emulation

* Removing unused keyboard flag

* Addressing feos' comment about virtual height/width

* Fixed bug with saveram

* fix VirtualWidth

scanlines remain constant so they aren't stretched, and width is adjusted to be 4/3 of height, because video modes in DOS were designed for a 4:3 monitor. exact pixel shapes may slightly differ depending on exact pixel clock but setting 4:3 for DOS is standard.

* DependentUpon

* Making FPS configurable

* Making FPS configurable

* Adding fps num/denom

* Implementing proper fps numerator / denominator defaults for DOS

* Passing mouse deltas from bk

* Passing mouse deltas from bk to the core

* expose and use deltas directly

to make it work in hawk, one needs to bind RMouse X/Y for Mouse X/Y Delta in config.ini, by manually editing the file (for now)

* Implementing support for .cue+.bin and other cdrom types

* Fixing sensitivity

* Adjusting mouse sensitivity

* Fixing integration for windows

* [WIP] loading cds from bk

* [WIP] loading cds from bk

* Using .cdrom extension for cdroms, and passing disk name to the read callback

* Using .cdrom extension for cdroms, and passing disk name to the read callback

* Cleanup and fixing .iso loading and swapping

* Fixing .iso loading and cdrom swapping

* Adding default controllers

* Added callback for video updates to prevent tearing

* Removing unnecessary message

* Fix line endings in `Bk2MnemonicLookup.cs`

* Fix indentation

* Fix misc. whitespace crimes

* Drop redundant `<None Remove/>`

* More whitespace fixes

* More code style fixes

* Small fixes

* Fixing misc comments

* Adjusting naming

* Fixing values

* Removing dead code

* Clarifying the source of DOS framerate chosen

* Removing unused variable

* Removing duped assignments

* Fixing typo

* Removing no-longer required SRAM management

* Removing no longer required sram management functions

* Removing no-longer needed SRAM logic

* Fixing framerates as per feos's comment

* Passing init struct for a more tidy initialization. Also fixing identation for good

* Fixing hard landing on failure to load SRAM. This is needed to prevent crashes in dosbox when preserving hard disk contents

* Added missing submodule and artifact

* Reverting unnecessary change

* Removing no longer needd dosbox-iso extensions

* Removing no-longer necessary virtuals

* fix

* Adding lines into readme

* fixing indentation

* Reducing job concurrency for dosbox -- otherwise the server gets overloaded

* adding recursive submodule for dosbox-x

* Simplifying

* Simplifying

* Simplifying

* Simplifying

* Only offer drive switching if more than one drive is present

* Adding proper Disc identification for ISO9660 / Joliet (default target DOS)

* Adding CDROM case

* Moving comments to proper place

* Moving comments to proper place

* Code style fixes

* Clean up handling of Next Disc buttons

* Clean up `DOSBoxKeyboard` definition

* Remove redundant button mnemonic overrides

* remove leftover hack from my initial 2-byte range

it's hard to tell from upstream code what the range should be...

* Fixing mouse buttons getting stuck and aligning mouse speed minmaxes to what dosbox expects

* Removing default framerate for DOS

* set mouse speed range to match raw deltas range
(see 93bc50288f)

since this makes minimal mouse delta 1 now instead of 2 or 3 (they were different for x and y because ranges were different), I readjusted default sensitivity to match default turning in doom in upsteam

* fix casing on public fields
we use PublicField, _privateField, and localVariable casing

this commit also includes WIP to expose attoseconds like mame does, so that 1 value could be used to determine framerate, and movie parsers won't need too many changes to support DOS framerates

* fix num/denom values to match dosbox-x for when it launches into dos
video dump info was not super clear so I relied on values that are actually assigned to `fps` in `VGA_SetupDrawing()`

TODO: check other machines, update sync settings descriptions when we expose render fps info to user

* use an existing thing instead of GetFullName
it was copied from uae where I made it because I didn't know about `Path.GetFileName(rom.RomPath)`, it's now fixed in master too

increased message duration so user could read potentially long filenames (copied from uae too)

* Move init of new `MouseState` to top and eliminate locals

* fix naming for mouse states

* update submodules

* Adding function to get video refresh rate

* Adding report on video refresh rate update

* Revert "Merge branch 'dosbox' of github.com:SergioMartin86/BizHawk into dosbox"

This reverts commit e5b16a6307, reversing
changes made to ced12c51b4.

* Merge branch 'dosbox' of github.com:SergioMartin86/BizHawk into dosbox

* Removing unnecessary directive

* Fixing reboot

* fps notice formatting

* Zero init fps vals

* Using variable framerates

* Now accepting variable framerates as given by the core

* Moving ISO9660 detection lower

* Storing refresh rate in savestate -- update it on load if different

* fix GetFullName()

* Adding function to get number of ran cycles

* Adding ICycleTiming

* attoseconds are obsolete now

* fix loading CDs with spaces in their name

* Message duration needs to be left to the user to configure. Just passing a null

* Setting notify times back to 4 seconds cause these require a bit more time to read/understand

* Updating CycleCount from within wbx

* Simplifying cycle timing

* Removing FPS change notification, using default waiting times

* Updating submodule

* Fixing bug in disc swapping

* Adding drive selection functionality

* fixing period input

* Adding logic to present disc swapping operations from repeating when holding the button

* added defines for drive id

* point submodule to specific branch

---------

Co-authored-by: YoshiRulz <OSSYoshiRulz+git@gmail.com>
Co-authored-by: feos <vadosnaprimer@users.noreply.github.com>
Co-authored-by: feos <feykomylce@gmail.com>
2025-04-20 16:19:38 +03:00
Morilli 72f880db27 add default rumble binds
- closes #4081
2025-02-17 10:58:01 +01:00
CasualPokePlayer 24a4b47adf don't try to "fix" y axis in touchpad (it should just match the mouse convention), add touchpad button to default controls for nds/3ds touch
note that touchpad axes aren't put in default controls, can't actually have multiple axes bound at the same time
2025-01-07 02:11:10 -08:00
feos e29a4bc052 add amiga to default controls 2025-01-05 14:30:46 +03:00
Morilli 5f835164de fix default controls having a deadzone for mouse
Deadzone when you're using mouse values as input never makes sense.
2024-09-24 00:14:21 +02:00
Asnivor 5d37fb1ec2 ChannelFHawk: Default controls and VirtualPad 2024-09-04 17:36:57 +01:00
CasualPokePlayer aeda8f1659 Add microphone button for melonDS
This changes the behavior so the user just has to press the microphone button to blow the mic, where the volume of the blowing can be controlled with the mic volume axis (but now the neutral value of mic volume is 100 rather than 0)
2024-08-30 17:35:18 -07:00
CasualPokePlayer 3f8c0cc952 fix oops in 3DS default controls 2023-07-29 15:17:10 -07:00
CasualPokePlayer ff6834617f add default controls for 3DS 2023-07-29 00:13:57 -07:00
YoshiRulz ec3a23259c
Remove default bindings for keyboards (resolves #3257)
and the Libretro mouse (leaving the other mice because you need to choose them
as peripherals for the axes to be bindable)
2022-12-02 05:35:58 +10:00
YoshiRulz 42455ac4a3
Fix syntax in `defctrl.json` and remove empty objects 2022-12-02 05:28:29 +10:00
CasualPokePlayer c23b063733 basic virtualpad + default controls for TIC80, mark it as released 2022-11-26 19:54:45 -08:00
CasualPokePlayer 7f8b4b8c87 fix whitespace in default controls (fixes 8732e561a1) 2022-10-02 19:10:13 -07:00
CasualPokePlayer 8732e561a1 Better Jaguar Virtual Width/Height
Jaguar VPad
Proper Jaguar default controls
Remove a lot of unneeded `ReSharper disable once UnusedMember.Global` in vpads (Global has been gone for a while now...)
Set VirtualJaguar to released
2022-10-02 18:53:34 -07:00
CasualPokePlayer 583f0f61cc biz side vb nyma 2022-05-29 19:46:38 -07:00
CasualPokePlayer d6b33fbec6
Nymashock (#3093)
* nymashock wbx

* shit

* lagflag stuff

* saveram stuff

* debugging how this works

* lets see if this works better

* fuck strings

* ok let's do this right i think

* probably have this all working

* get repo in

* add nymashock to build scripts

* also update this readme

* get rid of this default, seems to break internally anyways?

* ""fix"" dualshock (wtf to do with rumble???), make override defaults actually default, add hack to allow for overriding default controllers

* hide useless rtc settings

* hack fix override defaults for controllers, get something going for nyma psx schema

* oops dont forget this

* make fucking default controllers hack work (what the fuck is this code???) also complete schema and mnemonics

* FUCKING FIX THIS BULLSHIT DEFAULT

* let's make this a little nicer

* add mnemonics for □/△/○, fixes weirdness with input display

* fix weird overscan issues when multiwidth + no-interlacing happens at the same time

* do this "properly"

* analog mnemonics

* default controls for dualshock/gamepad filled

* set nymashock as preferred core

* apparently this didnt get committed?

* update README too

* control name fix

* Revert "control name fix"

This reverts commit a3cae89b18.

Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2022-01-30 08:52:49 -08:00
CasualPokePlayer 41128abc37
[melonDS] Redo porting, waterbox style now (#2945)
Co-authored-by: nattthebear <goyuken@gmail.com>
2021-10-24 21:40:23 +03:00
YoshiRulz b28a52befa
Add default feedback bind for N64 P1 (and add copy in test data)
the rest of the default binds are still garbo though
2021-07-21 12:27:41 +10:00
YoshiRulz 8f7b01bffe
Fix whitespace in defctrl.json 2021-05-08 06:26:17 +10:00
YoshiRulz b9e29e78b4
Fix default PCE gamepad bindings (fixes #2720) 2021-05-08 06:23:23 +10:00
YoshiRulz 7c1b40df1f Revert "The next time I look at this I want to see waterbox builds actually fucking working again. This means copying to dll as they are now, and not silently being overridden by stale files stored in another folder. This is not my problem to fix because I did not fucking break it."
This reverts commit d8d42b9f81.
2021-04-28 15:35:11 +10:00
nattthebear d8d42b9f81 The next time I look at this I want to see waterbox builds actually fucking working again. This means copying to dll as they are now, and not silently being overridden by stale files stored in another folder. This is not my problem to fix because I did not fucking break it. 2021-04-27 19:37:53 -04:00
YoshiRulz 771b5397fe
Fix range, def. binds, and Virtual Pad for SEGA Mouse 2021-04-17 12:54:17 +10:00
YoshiRulz e2ac1aca84
Add and use DistinctKey enum (copy of WPF's key enum) 2020-11-21 17:43:58 +10:00
YoshiRulz 4bf50e6e51
Fix docs/strings/identifiers copypasta'd between various Hawk cores
A2600 standard controller and A7800 standard controller were using the same
keybinds, now only Atari2600Hawk uses those and A7800Hawk's are blank unless
configured manually or configured on config regen
2020-09-08 12:02:53 +10:00
adelikat 6fd2252753 fix psx default controls, fixes #2251 2020-08-01 15:55:55 -05:00
alyosha-tas e4e078a1c9 DS: Fix default binding for stat key 2020-07-04 19:53:54 -04:00
adelikat c13430896f remove empty controller mappings from defctrl, also remove duplicates that caused it to be invalid json (.net happily was deserilizing it anyway), don't save empty mappings when saving from the ui 2020-06-22 19:54:36 -05:00
adelikat b9f59337dd fix Saturn and NGP default controls 2020-06-21 17:31:28 -05:00
adelikat 123f1b3c99 default controls for Nyma PCE cores 2020-06-21 16:27:06 -05:00
YoshiRulz cc4b12b0ae
Fix remaining "Nintento 64" typo
see eb1d87933
2020-04-10 09:58:59 +10: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
adelikat 7cc4e3db7d add some default controls for odyssey 2, don't know how much of the keyboard is needed for typical games, but the numbers seem to be needed to start a game 2020-02-18 18:28:30 -06:00
adelikat cce1fb6123 add default controls for vectrex 2020-01-25 15:47:29 -06:00
YoshiRulz fe0ff1d983
Update default keybinds (incl. X* for controllers) to OpenTK values
Fixes N64 keybinds being blank since eb1d87933; does not remove DirectInput J*
controllers
2020-01-15 09:49:42 +10:00
alyosha-tas 62c178ff2e GBHawk: add default bindings 2018-12-24 12:33:09 -06:00
Asnivor b397cb58fb ZXHawk: small update to defctrl.json 2018-06-22 17:11:25 +01:00
Asnivor deba6b18b8 Added 'Get Tape Status' keybinding - fires an OSD message with state info about the current tape 2018-03-12 14:37:45 +00:00
Asnivor 35bb1d0c93 Fixed default keys and also fixed a major syncsettings snafu 2018-03-06 16:40:25 +00:00
Asnivor 3cc4b94406 Added default control bindings and prettified the controller configuration panels 2018-03-06 11:17:30 +00:00
Tastyfish bc11c34e99 Eh make the SK-1100 defaults for Graph and Kana keys more reliable 2017-11-25 01:23:12 -05:00
Tastyfish 480f3b73f9 Keyboard support for SG-1000/Mark III 2017-11-25 01:23:12 -05:00
Tastyfish 9693d812d2 Adds SEGA Sports Pad for SMS support, also make controller syncsetting 2017-10-27 20:34:12 -04:00
Tastyfish d0fdc75a1e SMS Light Phaser support 2017-09-01 22:39:01 -04:00
Tastyfish 1069a50219 Adds Sega Master System paddle support 2017-08-30 23:16:14 -04:00
adelikat c70dce5b85 default controls for pizza boy 2017-07-14 14:52:58 -05:00
adelikat 8399cbc7c6 PC-FX - default controls 2017-07-14 13:52:47 -05:00
adelikat d701e67e54 picoDrive - default controller assignments 2017-07-13 12:07:50 -05:00