* 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>
* 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>
This does not remove the llvm dependency for waterbox, just the submodule. The script pulling and checking out llvm kind of conflicts with the submodule, and having it be a submodule is not necessary here anyways.
* Adding GPGX as core for SMS and GG
* Enabling SMS FM selection
* Allow selecting PicoDrive as the preferred core for MD/Genesis
---------
Co-authored-by: James Groom <OSSYoshiRulz+GitHub@gmail.com>
Co-authored-by: feos <feykomylce@gmail.com>
* Added deep freeze functionality
* Adding support for selecting sound chip
* Adding LUA interface to the deepfreeze list
* Implemented sprite always on top in the VDP
* Found and fixed the issue that manifested itself in a reset Gargoyles and an outright fail in Ristar. The issue was the use of a union type containing overlapping cd and cartdrige data. Using struct now to keep them separated
* Fix PC reg in tracelogs
---------
Co-authored-by: feos <feykomylce@gmail.com>
Co-authored-by: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
this gives us a great level of control over how we build SDL2, omitting parts we don't want, and including parts we do want, like libusb support!
windows sdl2 normally doesn't support libusb, but with some magic it can be built and linked in fairly easily, giving windows sdl2 libusb support.
libusb support in sdl2 means official GC adapter support! (resolves#1879)
linux build will be done in a later commit
* Waterbox setup has been revamped to use the latest llvm parts (llvm 16 for compiler_rt/libunwind/libcxx/libcxxabi).
* Clang is now possible to use, and is the preferred compiler (due to superior performance).
* Supported compilers are now clang 14/15/16, and gcc 12.
* Other core updates are mixed in.
---------
Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
This never really worked. Besides being unusuably slow and not very accurate, there was a miscompliation problem that caused release builds to not function.
* emu83
* builds and get rid of wtf this thing is
* multidisk bundler for ti83
* release
* link src
* also put in the commit hash why not
* Nitpicks
* update ""rom"" extensions for ti83
* don't forget to set a preferred core
Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
* basics for sameboy
* lol
* bleh
* lol
* push this in
* push this in
* settings, and also update sameboy bootroms
* bleh
* build linux
* remove some debugging shiz
* fix the order of this
* debug stuff also do gpu palettes right
* use new key mask API
* push shit in
* bleh
* add in replacement impl for joypad, use until opposing directions are allowed upstream
* update
* finally get this working without needing GB_INTERNAL
* hook up acc controls
* oops
* oops x2
* oh right this doesn't use this
* finish this up
* also mark this as released
* cleanups
* Nitpicks
Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
typically changing the submodule paths wrecks repositories. you can try to repair it by deleting the directories and doing "git submodule update --init --recursive" from the bizhawk root. In my experience, git GUIs may mess something up here
Waterbox supports threads now, but they're not real threads on the host side because that's complicated and can be nondeterministic. Instead, everything is scheduled to share one host thread. This means that scheduling is actually cooperative and certain patterns of spinlocks and other nonsense can fail to work at all, but "regular" code probably will.
With this, add DobieStation PS2 core. This core was selected because it has threads and is otherwise simple to port; easy to build and a good core/frontend separation. It's not a wonderful core however, with low speed (made abysmally lower by our lack of real threads) and low compatibility, so it remains a curiosity for now.
Create an all new waterbox build environment:
WSL2 + Ubuntu 20.04 LTS (Other linuxes may work)
Musl libc with waterbox customizations
LLVM's libclang-rt, libunwind, libcxxabi, libcxx
Static linking to elf files
Compared with the old system, this is easier to set up a dev env for and easier to update in the future. The executables are larger but produce smaller savestates due to static linking. The modern toolchain means advanced library features and language features that sometimes appear in some upstream cores will be reusable.