byuu
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!
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.
Thanks so much!
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.
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.
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!
Hopefully a respite from coding in my spare time will help my hands recover a bit.
> Fwiw I think your fursona is adorable.
Thank you very much ^-^
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.
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.
https://twitter.com/Kampidh/status/1234029776144175110
(it's G-rated, don't worry.)
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.
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.
Thanks for the kind words, take care as well!
Some emulators have run-ahead now, which removes internal processing frames from games. Combined with an adaptive sync monitor, 1000hz USB polling, and other tricks, emulators can actually respond to inputs faster than the original gaming consoles did on CRTs. It's pretty much the closest thing we have to magic.
Here's a video demonstration I made: https://www.youtube.com/watch?v=1AvOa8yt6Vc
An an article of mine explaining the concept: https://byuu.net/input/run-ahead
I imagine this won't be a significant loss to its new owner, but it's still unfortunate.
How would this affect Cloudflare's "checking your browser" anti-DDoS protection screen, meant to block bot requests from accessing sites?
Even my subdomain from my previous host from 15 years ago is squatted to this day to serve up advertising. It's even aware of the software that I used to host there.
One answer in my view is to remove the maximum length of prepayment for domains. Let us buy a domain for 100 years. Sure, that's $1,000. Maybe throw in a discount. But now we never have to worry about it again, as long as we live. Or at least, as long as the registry lives. It would never be squattable.
I guess it's easy to judge this 25 years later with all we know now. That was a very cool idea to have implemented back then! Putting the mvn there would definitely be a boost compared to having the mvn be in a slow ROM area (6 master clock cycles per byte transferred.)
So basically every 12 bytes, you get 4 bytes that are no longer usable before the next 12 bytes.
I haven't actually looked at this game's code, but it's certainly clever if the author found a way to avoid having to perform unconditional jumps in there that would sacrifice most of the gains in performance.
It's still doable, and it's definitely worth doing, but I understand the uses I've mentioned are rather niche, so it's unlikely to occur. For one, we still don't have built-in stackful coroutine support even in C++20.
Say you want to take a snapshot of where your program is, run the code some more, and then later on restore execution back to that snapshot.
In the parlance of video games and emulators, this would mean save states. You could use these save states to implement speculative execution to eg remove input latency from games using a method called run-ahead [2].
With state machines, this is trivial: just record all the state machine variables. With coroutines / cooperative threading, it's not: the state is all stored on the stack frame.
My stackful coroutine library can do this by essentially memcpy'ing the stack frames themselves, but it comes with some seriously negative caveats: the biggest is you can't save this to disk, because on the next program run, ASLR, etc would invalidate the pointers in the stack frame. In fact, you can't even safely release and allocate new memory between a serialize and unserialize point, or the stack frames may have dangling pointers in them. In practice, this is acceptable and workable for features like real-time rewind and run-ahead.
Library support for C++ coroutine serialization would be trivial since they are stackless. Getting around the limitations I mentioned for stackful coroutines would be immensely more challenging.
But let's be real: the internet is quickly becoming a walled garden, so having access to DNS requests is mostly only going to give you a billion facebook.com + twitter.com + youtube.com + google.com + google-analytics.com lookups anyway.
You can of course change it, but it's opt-out and not communicated to users that this is happening.
Also my program was inside a ZIP archive. It did not help me.