B

byuu

byuu.org · Personal blog · on HN since 2011

byuu is the developer behind the bsnes and higan SNES emulators, writing about emulation accuracy and game preservation.

What HN saysHN links it for the bsnes emulator and the libco coroutine library. Commenters also cite his UI toolkit and a user script.
77HN people shared it
39linked it in comments
64stories submitted
2.9Kstory points
4 years agolast shared
2011people per year2026

Most-shared posts

  1. 1
    Byuu extracting Higan SNES Core to resurrect bsnes
    11 people · 29 points · first shared 2012 · 1 comments on HN
  2. 2
    Fast coroutines in C from BSNES
    7 people · 29 points · first shared 2016 · 2 comments on HN
  3. 3
    Higan
    7 people · 2 points · first shared 2013 · discussion on HN
  4. 4
    The Edge of Emulation
    6 people · 277 points · first shared 2020 · 34 comments on HN
  5. 5
    Compact Disc Structure
    5 people · 249 points · first shared 2019 · 37 comments on HN
  6. 6
    Missing $10,000 package of PAL SNES games recovered
    4 people · 369 points · first shared 2017 · 117 comments on HN
  7. 7
  8. 8
    Bsnes has emulated every SNES DSP
    4 people · 212 points · first shared 2012 · 37 comments on HN
  9. 9
    Run-Ahead for Input Latency Reduction
    3 people · 3 points · first shared 2019 · discussion on HN
  10. 10
    Higan – cycle-accurate SNES emulator
    3 people · 2 points · first shared 2018 · discussion on HN
  11. 11
    Libco
    3 people · first shared 2014
  12. 12
    Bsnes
    3 people · first shared 2011
  13. 13
    Color Emulation
    2 people · 529 points · first shared 2019 · 117 comments on HN
  14. 14
    Cartridge Printed Circuit Boards
    2 people · 187 points · first shared 2019 · 42 comments on HN
  15. 15
    Cooperative Threading
    2 people · 143 points · first shared 2019 · 64 comments on HN

What HN people wrote when they linked it

RotsiserMho · 2016-06-16
hiro (https://gitlab.com/higan/higan/tree/master/hiro) by byuu (http://byuu.org) is similar to libui in that it wraps native controls. It isn't quite stable but it's very interesting. I love the simplicity of the API.
zargon · 2020-05-25
Personally, I have been using byuu's user script for this. I also love it for the click tracking removal and display of the complete url. https://byuu.org/projects/google
kingbirdy · 2020-04-02
If you found this interesting, the author's website has a number of informative, in-depth articles about emulator development & console architectures: https://byuu.net/
byuu · 2019-09-27
My favorite bragging point: the code in the necdsp folder (and the CPU core itself at component/processor/upd96050) there was used by Stephen Hawking when they emulated his old voice machine that used the same chip. http://pawozniak.com/emulator/ Pretty cool that the same NEC uPD772x chip was shared between a text-to-speech engine and Super Mario Kart. If you want to know everything there ever was to know about the chip, I mirrored every PDF datasheet I could find on it on my site: https://byuu.net/datasheets#uPD7720 It has one of the most wild ISAs I've ever encountered, using a strict Harvard architecture and 24-bit VLIWs (very long instruction words.) Every opcode can do over a dozen different things in the same instruction at the same time. Writing code for it is quite the challenge.
kibwen · 2019-05-11
They do, absurdly enough. See for example BSNES, https://byuu.org/ , here's a quote from their most recent release notes: "If the coprocessor firmware is missing, bsnes will fallback on HLE where it is supported, which is everything other than SD Gundam GX and the two Hayazashi Nidan Morita Shougi games." See past HN submissions about the extreme lengths BSNES goes to in order to get this data: https://news.ycombinator.com/item?id=3675123 , "In order to extract these programs from most of the DSPs, we had to decap the chips, scan them in with an electron microscope, and 'tweak' the processors to allow us to dump their protected program ROMs."
justinator · 2017-02-23
The day of the first, "lost package", and receiving the letter are the same: February 14th. https://byuu.org/emulation/preservation/lost-package/: As of the time of writing, February 14th, 2017 — this package has yet to arrive. https://byuu.org/emulation/preservation/found-package/ On February 14, 2017, I received the following letter from USPS: They totally left out this when making their initial post. Part of the package arrived, with a letter by USPS - the package didn't mysteriously vanish. It's a little different story. I don't know why they wouldn't have mentioned it. In the initial story, he blamed USPS for being incompetent on taking control of the delivery; in the second he blames Deutsche Post for a bad packaging job.
btrask · 2016-05-26
Actually, there is: https://en.wikipedia.org/wiki/Setcontext A library I personally recommend, which supports several platforms and back-ends: http://byuu.org/library/libco/
mpyne · 2013-03-04
Also to note, the most accurate available SNES emulator is byuu's "bsnes", which is meant to be an archival-quality SNES emulator. Although it looks like now it's called "higan" since it supports more systems than just SNES. http://www.byuu.org/
georgeorwell · 2012-12-10
This related article on accurate hardware emulation by byuu is great: http://byuu.org/articles/emulation/snes-coprocessors The process required an electron microscope!
DiJu519 · 2012-12-10
I thought i recognized the name. This guy has his own emulator aswell. http://byuu.org/
mwill · 2012-12-10
Byuu is one of my hacker heroes. He's passionate, opinionated, and dedicated. The steps taken to map out the SNES, and make bsnes accurate makes it one of my favorite non-library open source projects. I highly recommend checking out his emulation articles on his site[1], and also his piece on ars [2]. [1] http://byuu.org/articles/ [2] http://arstechnica.com/gaming/2011/08/accuracy-takes-power-one-mans-3g…
funkah · 2012-03-07
Great stuff! I found myself missing a bit of background, though, which you can find here: http://byuu.org/articles/emulation/decap
corysama · 2017-01-12
At the hardware level, the author of BSNES recently wrote up an excellent rant on sources of latency in modern machines https://byuu.org/articles/latency/ But, most of what you are talking about is software latency. At 1/30th of a second each, software pipelining systems seem cheap individually but pile up very quickly. Hit a button, read the button, react in AI, react in animation, react in physics, react in graphics, process in the GPU, process in the display device. These can easily add up to 5/30ths of a second with poorly planned software. In the middle of all that, the animation and audio has aesthetic requirements for smooth transitions that can insert a 1/2 second lag in the middle of that process. Now we're up to 20/30ths. Regarding animations: I've been in convos with managers requesting character animations to be "Smoother, but more poppy!" because of the conflicting needs of aesthetics and control latency. The best compromise I've found is to design a smooth transition, but have the underlying representation pop and the visuals skip immediately to mid-way through the animation.
JonnieCache · 2011-01-04
>How long is the list of games that zsnes doesn't have 100% accuracy Plenty of popular games. http://board.zsnes.com/phpBB3/viewforum.php?f=16 Notably, Yoshi's Island glitches out to the point of unplayable-ness in around half a dozen levels under ZSNES, the first one being 'Touch Fuzzy Get Dizzy'. This is the most high profile example. bsnes is the only emulator that lets you play yoshi's island properly, which happens to be many people's favourite game on the platform. The problem is down to some games exploiting timing tricks in the graphics subsystem to achieve transparency-like effects and so on. All the emulators apart from bsnes compute the graphics line-by-line, which breaks these tricks. bsnes draws it's output pixel-by-pixel, like a real snes, which is much more computationally intensive. "The reason is because while a scanline renderer runs at a mere ~15.75khz, a clock-based renderer would run at ~10.75mhz. That may not seem like a lot, but when you are writing an emulator that claims absolutely flawless interprocess communication, that means synchronizing two separate processors over ten million times a second."[1] All that context-switching makes your processor mad. The main reason for bsnes is homebrew snes developers' need of a bit-for-bit accurate snes emulator. These people need an emulator that will help them test code they are planning to flash to a cart and run on a real snes. ZSNES and other emulators designed to simply run commercially produced…
anfilt · 2023-03-14
Went to look to look for this library. Looks like the website for that project is gone: https://byuu.org/library/libco/ So unless there is an authoritative mirror somewhere I can't tell you.
optimiz3 · 2021-02-02
Bit perfect cd archival tool; extracts all possible non-track data (lead-in/out, subcode, ecc data, etc.), while losslessy compressing audio and meta into a single archive file per disc. Enables binary reconstruction of discs down to the etm layer. Sort of like a losslessy compressed bcd format proposed by byuu at: https://byuu.net/compact-discs/structure/
garaetjjte · 2021-01-24
>audio CDs which I've found don't use checksums or other mechanisms to prevent small defects from mangling the bitstream Redbook audio CDs does use CIRC error correction, by storing 8 bytes of parity data inside each 33 byte F3 frame. It is not enough to correct all errors though, and Yellowbook data CDs stores extra correction codes on top of it. (276 bytes for each 2352 byte sector). (and there's also issue below F3 frame level about EFM modulation, whether merging codes are generated properly to keep DSV low enough) See: https://byuu.net/compact-discs/structure/ https://john-millikin.com/%F0%9F%A4%94/why-i-ripped-the-same-cd-300-ti… https://john-millikin.com/%F0%9F%A4%94/error-beneath-the-wavs
thristian · 2019-12-29
The author of this article is the creator of the bsnes SNES emulator[1], which is surprisingly resource-intensive even as a native binary. Making it a PWA (via WebAssembly or asm.js or whatever) just isn't practical, at least with the current state of browser tech. [1]: https://byuu.org/bsnes
waz0wski · 2019-09-27
the owner of this repo also has some good blog posts about this topic, including an overview of some of the custom chips and their impact on the emulator they also maintain (bsnes) https://byuu.net/cartridges/boards
edsiper2 · 2019-02-07
A really good library that we use is libco[0], it supports different architectures and mechanisms. We use it extensively on Fluent Bit[1] to manage async IO network operations (epoll + coroutines). - [0] https://byuu.org/library/libco/ - [1] https://fluentbit.io
snvzz · 2018-01-16
Conversedly, there's higan[1] (formerly bsnes), a multi-system emulator focused on accuracy, even if it's at the expense of speed. A very beefy current CPU is necessary to emulate the sfc/snes. [1] https://byuu.org/emulation/higan/
SyneRyder · 2017-02-16
Yep, he seems to hint at that in his blog post, while mentioning that the sender chose the insurance value: https://byuu.org/emulation/preservation/lost-package/ "... when I went to return the first box of 100 games, I was surprised to learn that FedEx would only insure packages for up to $2499. Anything higher would require documented proof of value, and the faxing of many forms, which the retail employee I worked with had no interest in even contemplating."
ANTSANTS · 2014-08-09
I think you're looking for phoenix: http://byuu.org/programming/phoenix/ An example application using it, with the GTK backend: https://i.imgur.com/pW2Jl9q.png and the Qt backend: https://i.imgur.com/z6cC3rM.png The author (byuu) posts here, he might be able to answer questions.
someone13 · 2013-03-24
bsnes is now distributed with / renamed to a project called "higan", which is a multi-system emulator. See: http://byuu.org/higan/
paraboul · 2012-12-10
He's not only a redditor. He's the creator of "bsnes" http://byuu.org/bsnes/ http://en.wikipedia.org/wiki/Bsnes one the most powerful emulator.
jonknee · 2012-12-10
In case anyone else is interested in the source of this quote: http://byuu.org/articles/emulation/snes-coprocessors It's a fascinating story.
near · 2012-08-06
My current builds do perform per-pixel synchronization of the CPU and PPU. It cuts the speed in half compared to scanline-based, and even that is only because I run the chips out-of-order until synchronization is absolutely required. It's needed by Air Strike Patrol to draw the plane's shadow, as seen here: http://byuu.org/bsnes/images/accuracy/air-strike-correct.png It also affects a lot of "line error" issues, but those are fairly easy to work around with a scanline-based renderer.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close