Commit Graph

15 Commits

Author SHA1 Message Date
CasualPokePlayer e4a6d9db67 set initial rtc for epson and sharp rtc in new BSNES
this is needed due to the complete lack of time.rtc handling (and even then, if SaveRAM doesn't exist this is needed)
2023-04-01 02:13:47 -07:00
CasualPokePlayer 22e35c45fc hook up RTC support for new BSNES, resolves #3577 2023-04-01 01:23:16 -07:00
Morilli 0cb63e8d6a BSNESv115+: Implement overscan and aspect ratio correction settings 2022-11-18 13:08:27 +01:00
Moritz Bender 039d822144
BSNESv115+: Replace the 'snes_audio_sample' callback with a dynamic audio sample vector to reduce callbacks (#3010)
* BSNESv115+: Replace the 'snes_audio_sample' callback with a dynamic audio sample vector to reduce callbacks

* fix integration for subbsnes core

* reduce buffer allocations
- also make frame setter private now that it's possible
2022-08-15 20:50:26 +02:00
Moritz Bender 929432086f
BSNESv115: add dedicated subframe core (#3281)
* BSNESv115: allow subframe inputs

* BSNESv115: Implement ICycleTiming

may be correct, not sure

* BSNESv115: add dedicated subframe core

I have probably overlooked something...

* Don't implement ICycleTiming in the non-subframe core

requires re-implementing the "FrameAdvance" function in the subframe core

* Register previously missing services in the subframe core as well

* Wire up SubBsnes everywhere in the frontend

* Change reset cycle to reset instruction

* Deduplicate some code

* Slightly rework frame advance logic. The main intent here is to prevent a case where two frames are ran within a single "frame." The current code probably wouldn't crash due to that, but best not to do that.
Also make SGB work here. A bit of a joke since you really can only abuse it for subframe resets, but might as well especially with the settings implying it's possible (and someone is bound to complain).

Co-authored-by: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
2022-08-10 23:08:44 +02:00
Moritz Bender 339d34413f
Implement msu1 handling for bsnes115+ (#3190)
* Implement msu1 handling for bsnes115+

* RomPath->RomDirectory for clarity

* Remove unnecessary include
2022-03-28 23:52:13 +02:00
Morilli da2a20e55b BSNESv115+: Some general cleanup, remove nonfunctional msu1 code 2022-03-25 08:36:11 +01:00
Moritz Bender 3726cc6291
Fix #3173 by only calling bus.map() on initial power, not subsequent calls (#3176)
* Fix #3173 by only calling bus.map() on initial power, not subsequent calls

* yeah screw that, we'll just lock the bus to prevent map calls from going through

* initialize peekable in reset with false, just for safety i guess
2022-03-09 04:31:30 +01:00
CasualPokePlayer 114124c82e
BSNES Region Override (#3169)
* region override for bsnes

* hook up SnesInitData right. still needs region override sync setting

* settings stuff, also need to make sure sameboy is using the right region for sgb

* and build

* clearer struct definition; move struct to header file

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
2022-03-04 14:21:53 +01:00
Moritz Bender 0d7de83d4b
BSNESv115+: Implement snes_controller_latch function, cleanup input polling behavior (#3084)
* BSNESv115+: get rid of input_state + input_poll; just poll

* call `snes_controller_latch` on latches done in the core,

- this now also actually calls the InputCallbackSystem
- needed some edits in the core to support executing the callback even when no controller is connected in port 1

* Fix and somewhat normalize the SnesCallbacks order
2022-01-22 00:29:47 +03:00
Moritz Bender cc38f4bcba
Implement memory callbacks for the new bsnes core (#2797)
* Actually working callbacks
now actually work after natt's changes
* Set whether memory hooks exist every frame to prevent unnecessary function calls if not
2021-11-29 19:59:47 +03:00
CasualPokePlayer 036e349337
[BSNESv115+] Fix Lag Frames For SGB (#2886)
* better lag detection for sgb. todo: might want to toggle this?

* correct logic and don't fail build this time
2021-08-01 09:54:59 -04:00
CasualPokePlayer 488fd2c6af
Add support for more SGB firmware + Use homebrew bootroms instead of bsnes' illegally provided official ones (#2837)
* add support for more SGB firmware

* replace illegally provided bootroms with legal homebrew bootroms

* let's swap these with homebrew bootroms too

* add builds

* this should probably be preferred

* Fix incorrect assignment

* Fix whitespace changes to Designer files

Co-authored-by: Morilli <35152647+Morilli@users.noreply.github.com>
Co-authored-by: YoshiRulz <OSSYoshiRulz@gmail.com>
2021-07-14 12:48:02 -05:00
Morilli 38bc953e22 Add a designated payload controller based on the multitapcontroller in the new bsnes core
- also patched out the left/right and up/down handling in the core, where it didn't belong
- also fixed the existing payloadcontroller because it wasn't working at all lol
2021-05-26 02:27:54 +02:00
Moritz Bender 5d20862f26
Implement bsnes version 115 as a new core (#2740)
* Slam all this shit in here i don't care

* no lzma pls

* un-hack things that i hacked earlier (closer to bsnes source now)

* remove more unused files

* remove more files

* get some stuff working on this weird ass branch

* do this to get actual video (holy shit it works) while palette is incorrect

* make video look correct and hopefully fix stack waterbox allocation size uh ?

* Move the new bsnes core to its own dir as a new core and get input working

* remove leftover files from old bsnes

* fix some shit for now

* make lag frame detection work

* Improve cartridge loading to hopefully make sgb work (haven't tested)

- also changes some audio buffer stuff, might be better or worse than before idk
- need to figure out the saveram stuff
- path requests might actually completely fail atm, no idea how to verify that

* refactor to use a switch instead of some weird array with function pointers

- and implement snes_get_mapper, might be helpful or smth idk

* implement entropy c++-side and delete all this useless code holy

* delete dumb unnecessary code

* implement snes_peek_logical_register c++-side

* normalize all indentation

* attempt to properly support sharprtc and epsonrtc data loading and writing

* Duplicate winforms code to add entropy support c#-side and implement layer_enable functionality

The duplicated code is just so i can have a proper window for the new bsnes core. I do not like duplicating code like this, so this should be improved if possible

* Checkpoint for the start of getting rid of the ugly api wrapper stuff

* Next checkpoint for a full api refactor

* bullshit denied

just no.
every file is either copied or manually edited or written from scratch etc.
do not. force. one indent_style on every single file.
It just does not work.

* remove the entire eMessage_CMD handling and convert to native function calls

* general improvements regarding functionality

- adds hotfixes and fast_ppu core options
- add back the alwaysDoubleSize setting
- use bsnes's own serialize function for savestating now
- generate and use the color palette only in c# cause it doesn't need to be on the c++-side
- and more cleanup like always

* somewhat implement IMemoryDomains

* Implement trace logger and cleanup more unused stuff

* Implement ISaveRam, fix controller mapping for TAStudio and remove the pwrap stuff

* Fix ISaveRam, add a controller configuration box for the new core, (hopefully) fix controller inputs

- also differentiates BG prio0 and prio1 now (with options for it)
- some minor irrelevant edits in bsnes source

* Cleanup some more and optimize a bit

* Support firmware loading and make sgb work (hopefully)

* Remove all unused files

* Add back CropSGBFrame option and cleanup snes_video_refresh logic

* Some hopefully sensible changes

* One more cleanup pass

* Change to new PortedCore attribute

necessary after the changes in 98b07c42d5

Co-authored-by: nattthebear <goyuken@gmail.com>
2021-05-14 20:06:13 -05:00