byuu v1 released
byuu v1 released2020-02-24 18:03:29
Update: I posted v1.1 to address some rendering issues affecting key Super Nintendo games. Apologies, it will be a touch rocky at the start while I iron out all the kinks in the new renderers. Things should stabilize in the coming months as they did with the bsnes relaunch. Thank you!
I'm excited to release the first official version of my magnum opus software project, byuu version 1.0!
byuu is a multi-system emulator that aims to combine the accuracy of higan with the simplicity and performance of bsnes. Essentially, what bsnes did for higan's SNES emulation, I want byuu to do for all 25 of higan's emulated systems.
byuu currently emulates the Nintendo, Super Nintendo, SG-1000, Master System + Game Gear, Sega Genesis, TurboGrafx-16 + SuperGrafx, MSX + MSX2, Game Boy + Color, Game Boy Advance, WonderSwan + Color, Pocket Challenge V2, and Neo Geo Pocket + Color.
I poured my soul into this, and even for a first release, there has been substantial development. As compared to higan v107, byuu v1 features a brand-new, easy-to-use user interface in the general style of bsnes, that loads traditional game ROM images directly, supports native file dialogs, more than doubles the performance of Super Nintendo and Sega Genesis emulation, quadruples the performance of TurboGrafx-16 emulation, and provides a 20% boost to Game Boy Advance emulation. A Ryzen 5 2600 CPU should be able to run any supported system at 150fps or more. As with my other emulators, features like adaptive sync and dynamic rate control come standard.
Future plans for byuu v2+ are ambitious: I hope to add support for rewind, run-ahead, a save state manager, a cheat code editor, frame advance, screenshot capture, and much more. Possibly even a hybrid desktop + couch-mode user interface! I also want to expose my Famicom Disk System, Sega CD, and future PC Engine CD emulation to byuu. Furthermore, I hope to expand byuu beyond my own collection of emulators: specifically, I would like to offer Nintendo DS, Nintendo N64, Sony PlayStation, and Sega Saturn emulation in future releases by relying on other leading emulation projects; although I may need help in achieving those goals.
And now a heartfelt plea: I'm putting everything I have into this project, and my future in the emulation scene depends upon this project's success. Essentially, I'm getting older, and I have too many emulation cores to maintain as just one person. bsnes brought a revival to higan's SNES emulation, and I am hoping that byuu can do the same for higan's other cores.
I am looking for other developers to join on as equal contributors to this project. If this proves highly successful, I'll stick around to guide the project forward. But if not, then I will be looking for a new lead to take over the project. In that case, I would continue to periodically submit patches, time permitting, but would hope for someone else to guide byuu, higan, and bsnes forward. If neither of these two things happen by the end of this year, then my current intention is to regrettably step down from the projects, although I haven't decided on an exact date of when yet. Effectively, I've gone about as far as I could as a sole developer.
Essentially, I am hoping for this project to be what I'm remembered by after I'm gone one day, and so I want it to be as much of a success as possible. I also want these emulation cores to live on beyond me, and not just be tied to me as a person. Already bsnes and higan benefited massively thanks to 15+ years of contributions from well over a hundred volunteers. These emulators are so much more than just me. I hope to accelerate that trend, so that one day I can pass on the torch.
I hate to ask this, but anything you all can do to help promote this project would be greatly appreciated! Getting the word out about it, creating user guides and video tutorials, writing an article about it, posting about it on a forum, adding it to an existing emulation website, ... anything would help. I am hoping that in naming the project eponymously, that I can short-step some of the time-consuming struggle of establishing a new emulator project, but word of mouth is still vital for people to know that this project exists.
Thank you all so much! I hope you'll enjoy this new software as much as I've enjoyed making it.
Permalink • 21 Comments • #releases
NTI2020-02-24 19:19:52Will you reuse Talarubi's Nintendo DS emulator back into byuu?
radius2020-02-24 19:30:26are your emulation cores behind a common API that can be reused by other frontends (not asking about libretro in particular, just curious)
dailyskeptic2020-02-24 22:46:26Congratulations!!! Your hard work is greatly appreciated!
*some-guy*2020-02-25 05:26:37That's awesome! Keep up the great work!
birdsnotberries2020-02-25 10:08:49Do you have a source zip download for v1.1? It's how I build the AUR package.
There are ways to pull from git and I can set that up if I need to but it's kinda annoying for me :)
Nick2020-02-25 11:05:38I use bsnes since 2007. Thanks byuu.
Lucied_982020-02-25 12:07:27First off, I haven't used your emulator (or any for that matter) in very very long time so I may miss some things. This instance looks really good. I've been following it since 2004. It's very simplistic, easy to use; and now, the ability to toggle emulator choices in the menu is a nice touch for a change. The stylistic "b" is good choice as well. I've played several games and they all seem to run fine. I'm using the most recent byuu version (1.1); and apart from the typical frame drops at certain points in games, I can tell that the games perform snappier. Well, I'm not sure if that's from the emulator performing better after the new optimizations or my computer not being bogged down by my local network anymore after me fixing it. I haven't yet got to play games like Star Ocean or the like that tend to have graphical errors. However, I did notice while playing Chrono Trigger that the screen flashes brown every time you go out onto the world map. I haven't played all the way through yet, but that's one issue. I'm no expert, but there's also graphical garbage at the bottom of the screen left over from some sprite effects or something. Maybe, it's meant to be cropped out or hidden from view. I tried several games and it's in every one of them at varying scenes. Lufia II has it once you enter the world map. Earthbound has it all the time if I can recall. I will fiddle around some more and post again in the near future. :)
Krusher2020-02-25 17:15:41Wow, these are big ambitions indeed. I'd love to see it, and I wish you the most luck on your endeavour!
I'm into software/emulation preservation and the holy grail of any emulator is version 1.0. which I can't seem to find anywhere since version 1.1 is out. For the posterity, could anyone please give me a link to version 1.0?
Near2020-02-26 12:02:28NTI, I would *very* much like to. Nintendo DS emulation inside my emulators would be amazing.
radius, yes they are but it's somewhat complicated (uses a tree-view of reference-counted objects) and requires C++. I'm working on making the GUI interface more adaptable so that other emulators can be plugged in, or the interface can be used to export emulators from higan/byuu. All in good time.
birdsnotberries, the v1.1 source link is on the project page.
Lucied_98, I fixed that issue in v1.2. It's available here: https://cirrus-ci.com/github/byuu/byuu/master -- but it may be best to wait for v2 so I can iron out more issues ^-^;
Ramon, I'll enable downloading v1.0 for a short time longer on itch.io then. Please grab it soon, but also understand there's some serious issues with its brand new SNES video renderer. I wouldn't actually use it if I were you.
boff2020-02-27 20:05:09Near (byuu), far from offending you and if you are offended I apologize in advance, but why create everything from scratch yourself? You are a brilliant programmer with the BEST SNES emulator out there, why don't you join the RetroArch people and focus only on core development? Working together with a team would be much better for you (I think) and we players would have the best accuracy in all emulators. Strong hug!
Near2020-02-28 02:30:16boff, RetroArch writes frontends, I write emulators. We have different (yet often complementary) roles in the scene.
Yth2020-02-28 03:01:04First off, the ability to choose the video renderer has fixed my stuttering issues in NES games that have plagued every single other emulator I've tried out. I am immensely grateful for that one alone.
Would you be willing to consider adding a checkbox prohibiting Left+Right simultaneous presses (interpreting them as no directional input) and some more hotkey mapping options (a hotkey for soft reset, or specific hotkeys for selecting each save slot, for instance)?
Kyle2020-02-28 03:35:57byuu - Thank you so much for your work on this. It's greatly appreciated!
I'd much prefer this route to RetroArch. It has a steep learning curve that makes it harder to recommend. It reminds me more of Bizhawk.
Please consider adding a flat version of the CRT-Geom Shader. It looks like all that is required is a couple of tweaks to crt-geom.fs. https://emulation.gametechwiki.com/index.php/CRT_Geom
Finally, it wasn't immediately obvious how to disable the blur shader. I was toggling the bleed and blending options thinking that was my bilinear filtering.
Jasonsgroovemachine2020-02-28 14:50:21I'm pretty excited about this. Bizhawk has been getting on my nerves lately. I love bsnes and I'd love to use higan, but higan doens't doesn't have the performance that I get out of other things. It's kinda slow, which is weird. I also never loved the interface much. But if byuu is gonna do everything higan does (and them some), plus have the performance of bsnes (at least), then I'm all in.
Near2020-02-28 15:37:42Yth, the emulation cores themselves prohibit up+down and left+right as required, because allowing them will cause potentially game-breaking glitches. Is that not working for you? As for the other hotkeys, I'm happy to add more over time and most are good suggestions, but per-slot hotkeys may be a tad overkill ^-^; We'll see though.
Kyle, I'm willing to add a a flat CRT-Geom shader. Would've thought most would be on Royale, although Royale is immensely demanding. I'll take the confusion over blur options under advisement.
Jason, byuu will be roughly 2-2.5x faster than byuu depending on the core, but it will still be demanding, especially if you enable run-ahead (which will double the system requirements because you have to emulate twice as much per video frame now.) Hopefully the speedups will make it more usable for you.
Yth2020-02-28 17:39:53My assumption as to what's going on in regards to Left+Right (in the NES core specifically) is that e.g. pressing Right without letting go of Left first is interpreted as letting go of Left and pressing Right.
It's hard to tell if that's exactly what happens without any input visualisation, but my assumption is based on a brief play session in Chip 'n Dale 2, which has that mechanic where you can pick up crates and 'charge' them by walking in the same direction for X pixels. The thing is, if you change direction without stopping for even 1 frame, the game interprets this as walking in the same direction - making it possible to 'charge' crates by e.g. holding down Left and repeatedly tapping Right, essentially staying in one spot. That would prolly be frowned upon among speedrunners.
The expected behaviour is that pressing Right without letting go of Left is interpreted as neither Left nor Right is being pressed. And when you let go of Left - then the core should recognise Right as being pressed. This way, the characters in games would be forced to stop before changing their direction, mimicking the gamepad behaviour.
ephaestos2020-02-28 18:10:51Is there a way to enable diagnostics/debug messages ? byuu crash every time I start a game with ASIO audio driver. My sound card, a sound blasterZ, should support it.
Cricri2020-02-28 21:18:19Nice Byuu, thanks! I just quickly tried sega sms/gg/genesis as well as nintendo gb/gbc/gba/nes/snes cores and it looks great so far!
byuu2020-02-29 11:28:52Yth, ah that's a complicated issue. I used to support it as a gate so left+right=no input. There was a big discussion on NESdev and the conclusion was the most desirable result for the most people was that the latest key to be pressed took effect. See here for example: https://github.com/byuu/byuu/blob/master/higan/fc/controller/gamepad/gamepad.cpp#L50
All of that pesky code is to support that behavior. So, supporting an option where the inputs work the way you want would be a massive amount of work I'm afraid. So for right now, I'm afraid I'd have to decline, sorry. But I will keep it in mind.
ephaestos, not currently. If you open settings.bml in Notepad, you can search for "ASIO" and change it to "None". The ASIO driver is sadly not reliable. I 1:1 implemented Steinberg SDK's example ASIO player, but it doesn't work, and Steinberg doesn't provide any support for it.
Greyor2020-03-07 03:43:29hello Near, thank you for your hard work as always!
question about byuu -- just compiled and installed v2, and it doesn't seem to like gamepaks. I converted everything to gamepak format and would prefer not to switch back.
Should I use higan instead of byuu in that case, or do you plan to support gamepaks in byuu at some point?
thanks in advance!