You can to varying degrees, yes. There's a barcode scanner, an exercise bike, a baseball bat, and more. I designed higan around a modular tree structure so that you can just create a new derived node for any peripheral, and define whatever API you like, so that we can emulate the protocol. Then it's up to the GUI to figure out how to do something when it sees Node::ExerciseBike, and how to do I/O with its API interface.
One could imagine, for instance, connecting an actual USB barcode reader to emulate the Barcode Battler, or providing a text box to hand-type a barcode number.
I don't see anyone actually bothering to simulate the entire horse betting network complete with virtual bank accounts, but if you're really interested, Raphael Assenat reverse engineered quite a bit of the JRA-PAT system for fun here:
Hi all, thank you for sharing this article here! It is technically a "laymen's" version of https://byuu.org/articles/edge-of-emulation (submitted here earlier), meant for a wider audience, but it does elaborate on some new discoveries such as the digital video output testing mode.
In the off chance anyone is able to help with this, I've set up a Discord channel (#ars) for coordination here: https://discord.gg/Fx7TfKh
Every member of the bsnes-emu project is on said server.
I'm sure the answer is no, but I emailed a few people at NERD (Nintendo European Research & Development). Asked the obvious question about the documentation even existing anymore, and if there were any possibilities of it ever being made public.
You've probably done that already, but I figured it was worth a shot. I'll update if I actually get a response.
Nintendo's official development manual is available at archive.org [0]. However, AFAICT it is rather low-quality and incomplete, and it pales in comparison to the wealth of documentation created by years of reverse-engineering effort from hobbyists like byuu.
I imagine that the official documentation was leaked rather than publicly released. Nintendo wants to make money selling re-releases of classic games, so they are extremely unfriendly towards emulator developers. Just look at the all the propaganda on their corporate website: "The introduction of emulators created to play illegally copied Nintendo software represents the greatest threat to date to the intellectual property rights of video game developers [...] Such emulators have the potential to significantly damage a worldwide entertainment software industry which generates over $15 billion annually, and tens of thousands of jobs." [1]
I would assume that from a practical standpoint, the SNES emulation 'war' is lost for all practical definitions of it - pirates can run everything they want in more than sufficient quality using any of multiple options.
So Nintendo doesn't have much to lose by letting the few geeks that want perfection for perfection's sake have it.
That's not how corporations work though. The default decision is "no" and an individual employee has no benefit from getting through all the red tape to get a "yes".
It is also about consistency. Let’s say for argument’s sake they decided to sue the creators of the emulators. If even one time Nintendo cooperated with and assisted the emulator developers, it is easy for the defense to argue that Nintendo implicitly endorsed the work and therefore why are they suing them.
It's worth noting that the Virtual Console SNES emulator doesn't really have a reputation for inaccuracy. For sure it's not as accurate as Higan/bsnes but by all accounts it's pretty decent. Of course it was made for running in different constraints. It runs many games very well on the New 3DS' 804MHz ARM11 or the Wii's 729MHz PowerPC G3. Bsnes won't run much in those constraints.
IIRC each game for the Virtual Console comes bundled with its own emulator, tuned specifically to run that game. So there is no single Virtual Console 'emulator'.
I don't think "caught" really is the proper word to use, when they credited the PCSX-Rearmed project in the menu of the Playstation Classic. It might be considered somewhat embarrassing they didn't make their own better emulator (I guess?), but it's not as if they were actively hiding it either.
It may be embarrassing from a PR / image standpoint, as seen by the mainstream who doesn't know better and will read some headline followed by sensational lines like «Sony sued emulator projects to death (and lost) and now uses them for profit in products!»
The truth is that the amount of work and dedication that goes into a great emulator, with all the quirks and ad hoc settings for the whole library... no corporation on Earth can get that within months, it's actually a textbook example of the Mythical Man-Month (you need a few "hotshots" that will give their life for years to reach that level of refinement, you just can't hack it with a team of 10x averages without the heart that goes into it).
And even if you could, it's ridiculous cost versus 'free'.
Sony did the right thing by crediting them explicitely in-GUI. It's a classy move. There's a certain school within Sony that's extremely friendly to open-source, I surmise it's the historical engineering ethos of that company that hasn't entirely left their premises— in some buildings, some labs, the Sony-spirit of old is alive and kicking, e.g. their Sailfish-OS friendly phones (i.e. open-sourced drivers for these models, fully rootable etc).
> The truth is that the amount of work and dedication that goes into a great emulator, with all the quirks and ad hoc settings for the whole library... no corporation on Earth can get that within months
It can and has been done. Have a look at "Connectix Virtual Game Station"[1]. It's a commercial prodcut that played virtually every PS1 game flawlessly on a 233MHx iMac. I spent thousands of hours playing games on that thing, and glitches were very rare in a huge range of games, even the most demanding like Metal Gear Solid.
Shouldn't this fact be celebrated rather than shamed? PCSX-Rearmed gets immense validation, and Sony doesn't waste years of engineering time reinventing the wheel.
I think it's not that easy. Not that corporations like Sony are necessarily lacking, but the greatest emulators are works of art, some masterpieces of reverse-engineering.
I can't confirm it, but it wouldn't surprise me in the least. Throw some scripts in there at boot to do some env setup and then let 'er run. Probably plays nicer with COTS hardware, and no heavy back-end coding required.
Which is essentially the point of re-releasing that, or selling old Nintendo games on the Wii/Switch market -- easy cash grabs with little overhead effort.
If ever there's a law passed that allows Nintendo to get non-licensed emulators banned entirely, I have no doubts they'd do everything in their power to have them wiped from existence by the next day.
If they give up and give assistance to emulator devs, there's no going back on it.
IANAL but my understanding is that while practically speaking the war is lost for SNES, corporations have to be seen to be defending their IP (particularly game characters in Nintendo's case) otherwise they run the risk of it becoming public domain in the long term. An example of this is brand names becoming generic names (e.g. dumpster, chapstick, escalator...). The corporations that owned these terms lost control of them because they weren't able to do enough to defend their IP. Since many of their modern titles are reliant on old IP it is vitally important that they retain a grip on it from a legal standpoint.
That’s specific to trademarks which don’t automatically expire. Copyright and patents are mostly enforced via lawsuits, but in theory are in full effect until the clock runs out.
The response was as expected. Nice people, but it wasn't confirmed if they have documentation or not, and I was told that if they do or don't the policy is not to make any of that public.
I removed the archive.is check, and requested the entire site to be crawled, which is now done. The entire site is mirrored here: http://archive.is/byuu.org
I also sent an e-mail to the archive.org staff requesting the exclusion to be removed.
I hope this will satisfy your request, and that you can sympathize with why I chose not to do this until retiring.
Excellent! Though it seems there is still a user-agent check in place -- visiting your site with an archivebot user-agent just shows "403 Forbidden".
The emulator design articles you've written are interesting and valuable, and I'm glad that they will be preserved for future emulator developers to read.
Oh, sorry I forgot I also had user-agent checks in the code, good catch! archive.is checking was based on IP ranges, since they spoof their user agents as Chrome and use proxies. I removed that too now. All that should be left is a noindex tag on the 1,200 individual game pages at byuu.org/preservation (which I'm told is very important for web indexers; they're all auto-generated thin-content pages.) I believe both archive.is and archive.org ignore noindex anyway, and the full databases are on GitHub at icarus/Database. We should be all good now, but let me know if you find any other issues please.
I don't know how long it'll take for archive.org to remove the exclusion. Requesting it originally took a couple weeks. But they have my approval to start indexing it all again in any case.
I've already paid up for the next year of hosting, so the site should hopefully remain online at least that long, but I might not pay for it forever in the possible event I don't return, so if folks want it mirrored in even more places, now is the time.
It's truly been an honor! I've always greatly appreciated the links to my articles shared here, and the discussions with everyone on these and other submissions on the site.
I'm hoping to return one day when things settle down a bit in my life. Hopefully when that day comes I'll have some great new things to share. Until then, take care everyone!
Thank you kindly! The structural design aspects of programming was one of my favorite parts. I may've gone a bit too far in the final releases of higan with the reference-counted tree to describe system states (specifically serializing the tree is quite involved), but I'm still really happy with the result ^-^;
Hopefully a respite from coding in my spare time will help my hands recover a bit.
I give you my word, they've had a go at me online since 1998. I'm not worried about criticism directed my way. I mostly deserved it anyway.
But they went after my friends. Someone on an imageboard compiled a list of my friends' real names, photographs they had posted, locations where they lived ... really creepy stuff.
I'm stepping down because I don't want my personal friends and the dozens of volunteers who helped develop my emulators caught in the crossfire.
Hey it could be worse, imagine having a link to your own KF thread in a frontpage HN article. Now that's a bad look ^-^;
Referring to GP, of course. I appreciate the link to my reply. For any folks here that read the post, please also read my reply if you don't mind. For folks who don't read the thread at all, just note that this is about me saying dumb things online, mostly when I was a young adult. I haven't actually done anything heinous nor are there substantiated allegations to that effect.
Specifically, my reason for stepping down is because in spite of doing my best to change and better myself, my mere presence was still dragging down the other developers working on my emulators, and my friends were starting to get dragged into things because of their association with me. They went rather easy on me on KF, but there's another 289 pages of this on 4chan. It got to a point where someone there was compiling a list of my friends' real names, photographs, and where they lived. A friend of mine suffered an anxiety attack when I replied to them on social media. Another was fearful enough to delete her Twitter account.
I can handle criticism and admit my mistakes, but I can't handle other people paying the price for them. I feel personally responsible for that, because I am. If I had behaved more professionally, this wouldn't have happened. So it's on me.
As someone that was just curious about what sort of drama was going on I think you responded well and if it's made you a better person there isn't anything to feel bad about.
I have seen stuff from you pop up on here from time to time that I found impressive and cool. I hope you still find motivation to do cool and impressive things and share them with the world even if you are closing this chapter of your journey.
My god the people in that thread are deranged. I don’t know you, but damnit you did something that 100% of the other losers in that thread failed to do- you changed history for the better through your code.
Creating, and more importantly, maintaining, a major open source project takes guts, skill, and tenacity. Take a deep breath, tell yourself “good job” and know deep down that you’ve accomplished something that only an infinitesimally small number of people on this earth are able to achieve.
Losers gonna lose, I guess. You’re not a loser. You don’t owe those losers anything, least of all your time.
Apologizing to internet trolls is a zero sum game.
If you enjoy working on it, and others enjoy using your work, keep doing it and just ignore the idiots on the internet, they'll eventually get bored and go find someone more interesting to harass.
Working on bsnes and higan were the things that made me most happy. Well, bug hunting was of course stressful but the joy of fixing a bug and seeing new games running was always well worth it! I'm definitely going to miss it a lot.
It was everything else that was a problem. If I could have just been left alone to code in peace and without all these pesky health and work issues, I'd be very happy to continue.
I think I still have a ways to go on the self-improvement, but it's hit a point where I think I need a few months' break to go at it offline, and maybe let my hands rest a while from typing so much. I ended up coming back to things the last two bouts of depression, so we'll see.
> Working on bsnes and higan were the things that made me most happy.
What about this work made you happy? What was the reward? You might be able to capture it in a different way.
I don’t get the sense that it was something to do with making the people who used your emulators happy, per se, so probably “solving someone’s problem and seeing them light up” isn’t going to do it for you.
I’d guess that helping to conserve other artistic expressions [to ensure people can experience them the same way they did on the original hardware, long after you’re gone] would make you happy? Especially if you could use your specialized knowledge and experience to do so, in a way where it’s not necessarily true that anyone else would have come along to do the same thing if you hadn’t done it.
Perhaps you could volunteer in a consulting/advisory capacity for some of the Archive.org software-library preservation projects? Not so much programming, as pointing out the pitfalls in the architectural decisions of what other people are programming. Like a software security consultant, but for “ensuring the original work is conserved and reproduced with 100% fidelity” instead of “ensuring nobody can exploit the software.”
> What about this work made you happy? What was the reward?
It's like a really complicated puzzle. I have this game that's not working, and I have this 2 GiB trace log of millions of lines of CPU instructions and registers. I have to sort through it to understand where things went wrong. Sometimes it's obvious and takes five minutes, sometimes it takes two weeks and is mind-bending (like a loop reading from a non-existent I/O register that only breaks because eventually a DMA transfer occurs in between cycle instructions that fetches the correct value onto the data bus, which stays persistent through to the next cycle that compares the value read to finally break said loop.)
I really enjoyed over-architecting the code, and I would build these massively elaborate (read: slow) designs to handle the most ridiculous edge cases (like stacking Game Genie cartridges one after another recursively. It's an incredibly inefficient way of getting more cheat code slots, but you can do it on real hardware, and so I wanted to preserve that experience.)
> I don’t get the sense that it was something to do with making the people who used your emulators happy
That of course brought me joy as well. The tone of the farewell post aside, 98% of people throughout my time in emulation have been absolutely wonderfully supportive. It's meant the world to me.
> in a way where it’s not necessarily true that anyone else would have come along to do the same thing if you hadn’t done it.
I'm under no delusions of granduer, these were "just video games", but I definitely had the sense that if I didn't do this, no one else would. The SNES was a large part of my childhood, and I had the skill and time to do this, so I went for it.
Yeah, both Google and DDG have the "we know better than you" problem with searching. I have to aggressively use the -keyword filter on searches with both.
One could imagine, for instance, connecting an actual USB barcode reader to emulate the Barcode Battler, or providing a text box to hand-type a barcode number.
I don't see anyone actually bothering to simulate the entire horse betting network complete with virtual bank accounts, but if you're really interested, Raphael Assenat reverse engineered quite a bit of the JRA-PAT system for fun here:
https://www.raphnet.net/divers/retro_challenge_2018_09/index...
It's a pretty good read as well!