byuu v3 + higan v109 released
byuu v3 + higan v109 released2020-03-12 19:18:35
I've posted new versions of byuu and higan today.
- Famicom: emulated the X24C01 EEPROM for Bandai-FGC boards (no X24C02 support yet)
- Mega CD: CDC PCM DMA can only write to current bank [EkeEke]
- Mega CD: CDC DMA address setting now clears d0-d2 for proper transfer alignment [EkeEke]
- Mega CD: improve power-cycle handling (not perfect; best to restart the emulator between each Mega CD game still ...)
- PC Engine: trigger VDC coincidence IRQs at start of scanline (fixes Bomberman '94, Air Zonk start screen rendering issues)
- PC Engine: improved RCR interrupt emulation (fixes Air Zonk in-game)
- PC Engine: fix VDC DCR writes (fixes Gaia no Monshou, Magical Chase, etc)
- PC Engine: reduced VDC access delays (fixes Wonder Momo, but may not be hardware accurate)
- PC Engine: improved instruction timing
- PC Engine: added Avenue Pad 6 emulation (higan only for now)
- WonderSwan: window emulation improvements
- byuu: BIOS firmware settings window improvements
- byuu: can now load firmware from inside ZIP archives
- byuu: added trace logging tool
- byuu: added manifest viewer tool
- byuu: add path overrides for saves, BPS patches, and DSP firmware files
- higan: fixed a serious issue with the "Create New System" option from the launch screen
- nall: fixed a subtle yet important issue with Natural/Integer::bit() that allowed out-of-range bits to be set
Permalink • 14 Comments • #releases
Cricri2020-03-12 19:57:09Fantastic, thanks!
Bobby2020-03-13 18:37:08Amazing work!
I only wish there were true full screen mode and a video filter like blargg's NTSC.
nickblame2020-03-14 13:38:08I also agree that the fullscreen should be an option on the menu (apart from the F11 shortcut key).
Moreover while I know it is only for the lazy people, I think picking up XInput automatically with premapped keys would be contributing to the ease of use that byuu emu is focusing on.
Finally, I still can load Mario Kart rom in bsnes but the same rom asks for the dsp rom files in byuu and I'm not sure why that is.
Hammy2020-03-15 08:13:40Great job, as always!
Only drawback for me: Final Match Tennis still hangs after the players enter the court. Other than that: Thanks for your time and effort!
Proud AdNauseam Advocate2020-03-15 10:42:53If fullscreen was an option in the drop down menu, it would only be a one way path. That is, it would let you enter fullscreen mode, but not exit it. A hotkey is essential because the user needs a way to not only enter fullscreen, but also exit fullscreen. One would think the Esc key could be used regardless of assigned hotkey, but that's actually false; while in fullscreen, Esc will do nothing unless it is assigned as a hotkey (in which case it would also enter fullscreen when pressed in windowed mode). By requiring a hotkey to be used to enter fullscreen, it forces users to memorize what key they used to enter fullscreen so that they can press the same hotkey to return to windowed mode.
blargg's NTSC filters are system-specific. He made separate filters for the Famicom (nes_ntsc), Super Famicom (snes_ntsc) and Master System (sms_ntsc), and he claims to have made shaders for the Mega Drive, Commodore 64, and TI 99/4A, but only available via e-mail. I can't speak for Near, but I doubt Near would want the extra complexity of system-specific filters added to byuu. snes_ntsc could be used for other consoles as long as their display resolutions are 256px wide, but that's not ideal.
byuu does support OpenGL shaders, though. They come included in the Windows download, but if you're using any other operating system, you will need to copy them from bsnes. One of the shaders is an NTSC shader ported from libretro format to bsnes/byuu format, and it tries to generically work for all emulated systems.
I agree about automatically assigning XInput mappings in the Windows version of byuu. bsnes should do the same thing. This obviously won't help anyone with an older DirectInput controller or a different operating system, but for XInput users, it would help the emulators Just Work™ out of the box.
As for the DSP firmwares, the reason why byuu requires them and not bsnes is that bsnes supports high-level emulation of the DSP1 coprocessor that Super Mario Kart uses, and byuu only supports low-level emulation, which requires the firmware to work. Near has always focused on accuracy first and foremost while developing bsnes and higan, and that hasn't changed with byuu's release. Adding high-level emulation to byuu would only further increase complexity for development, and it's only with a heavy heart and great reluctance that bsnes supports high-level DSP emulation at all. You can thank No-Intro for stubbornly refusing to catalog the DSP games with concatenated firmware and making life harder for everyone else.
If you have the DSP firmwares (they aren't hard to find with a DuckDuckGo search), concatenate the DSP1 or DSP1B program ROM and data ROM in that order to the end of your Super Mario Kart ROM. Its filesize will be 520 KB, but it will work in both bsnes and byuu, and bsnes will even use low-level emulation unless you explicitly disabled it in the settings.
Nintendo DS Low-Level Emulation Dreamer2020-03-15 23:53:33Hey Near,
higan should emulate the Nintendo/iQue DS.
Does this require extracting its firmware from sealed consoles?
Do you have any plan to integrate neogeo / neogeo-cd core?
nickblame2020-03-16 14:28:55@Proud AdNauseam Advocate
Thank you very much for the details!
Okay about the fullscreen button you are absolutely right. What I would do though is add a grayed out menu entry in the top menu with label:
Fullscreen (press F11)
Because intuitively the user would look for that in there.. I mean I thought I was blind that I couldn't find it. Even if it's wrong and old fashioned it wouldn't hurt.
About the dsp rom files okay got it. However it was also confusing that it behaves differently in the two emulators and I have to be honest here, I switched to bsnes for this reason while my main concern was to test byuu a little bit and sadly I'm not sure if I will find the time to concat the roms in the near future.
BFG2020-03-17 00:03:47Thanks, as always, for your work on this! However, I've run into a couple issues with byuu v3 and am not sure the best place to ask about them. I tried byuu's email a couple times but I'm sure he's busy.
1) I have an actual SNES controller hooked up via USB. When mapping in byuu v3, I had to swap the X/Y and A/B mapping (i.e. B was mapped to "A" in the console) for the buttons to work correctly in-game. (Tested on LoZ:LTTP.) Anyone else seen this?
2) Most games with low-level processing (CX4 in MegaMan X2/3, Super FX in StarFox 1/2, SA1 in Kirby Super Star and Super Mario RPG, etc.) run at 30fps and half speed for me. Is this due to my old (2008) laptop being too weak, or a different issue? Oddly, S-DD1 games (Star Ocean, Street Fighter Alpha 2) are fine. Should I switch to bsnes with frame skipping?
theperm2020-03-17 01:57:06Awesome! Thanks for all your hard work, it is super appreciated!! Any plans to add adaptive sync to byuu similar to bsnes? Love all your emus.
Near2020-03-17 05:36:02Hammy, v4 will have substantially improved PC Engine support. Final Match Tennis is running in the nightlies already.
I won't be emulating the Nintendo DS or Neo-Geo, sorry.
nickblame, bsnes was meant to be the ultimate SNES emulator, so I went out of my way to support less accurate high-level emulation, enhancements, ZSNES bug compatibility, overclocking, software filters, and a lot more. If you want the best SNES emulator, stick with bsnes for sure. byuu is meant to be higan in easy mode, but the goal of the project is still accuracy above all else, hence the need for the DSP firmware.
BFG, the mapping is intentional, it's based on an Xbox 360 controller layout. I will try to make it more intuitive for v4+. Yes, your laptop is likely too old, sorry. Please try bsnes instead, it should handle it better.
theperm, byuu supports adaptive sync already, you're good to go there!
MetalMax2020-03-17 16:09:25So I've a question about byuu itself. I noticed that, when running on Linux, fullscreen is broken. More specifically, it doesn't scale properly. Was this intended behavior? because the same thing does not happens under bsnes!
Daryl2020-03-17 16:38:44This software is amazing. I dabble in software design, so I can only imagine the amount of effort involved in this endeavor. It's no wonder you want to take a break and let others continue the work.
BFG2020-03-19 00:15:58Thanks so much for the reply, byuu. Two quick follow-ups:
1) The B-to-A, Y-to-X mapping isn't a big deal if a user knows about it, but it is unexpected. I mainly wanted to ensure you were aware.
2) Would it be easy to add a frame-skip (ideally variable aka sync-to-realtime, but alternatively a constant frameskip) option in byuu? It sounds like byuu is the best of the 3 options from an accuracy first, speed second perspective, so I'd prefer to keep using it, but will switch to bsnes if adding that would take much effort or require sacrificing anything.