Hacker News new | past | comments | ask | show | jobs | submit | binji's comments login

This is using my gameboy emulator, binjgb[0], on the website! (well one of my gameboy emulators, heh [1][2]) It's been used as the emulator for GB Studio for a little while now, but I don't know how often people embed it in their websites, so it's really cool to see.

[0] https://github.com/binji/binjgb [1] https://github.com/binji/pokegb [2] https://binji.github.io/raw-wasm/badgb/


If this is the same emulator ejected by GB Studio when it exports to web, that makes sense. All GB Studio projects on Itch.io likely use your emu too!

https://itch.io/games/made-with-gb-studio

725 listed so far (lots of asset packs and tech demos I'm sure, but still.)


heh, good point! Most of the older ones are using GameBoy-Online[0] instead, since that was the GB Studio default for a while. But I think everything since GBStudio 3 should be binjgb.

[0] https://github.com/taisel/GameBoy-Online


GB Studio 3 is the shit. Thanks for (unintentionally?) being apart of that!


As the creator of GB Studio, thanks, really appreciate that! And thanks to binjgb for the excellent emulator.

Really cool to see GB Studio being used for this.


Online version using the emulator is here:

https://grimacesbirthday.com/


The animation when grimace wipes out is mildly amusing


Thank you for your emulators. I've used pokegb as reference to my own emulator, and used binjgb debugger to fix many issues.


Glad they've helped! There are plenty of better emulators, but I'm pretty proud of binjgb for being small, pretty fast, and pretty accurate.


do you get compensated for use?


nah, people can do whatever they want with it :)


You are in the credits though!


Represent


McDonalds makes ~$23 billion per year. You deserve something.


I personally don't think we should expect more from a "richer" user as soon as they're following the license of OSS (or expect anything different at all, regardless users' background or purpose).

It just doesn't make sense, not even morally.


Not only that but Macdonald's presumably paid for this game to be developed etc.

That developer is more directly profiting from the tools. If you want to make a moral argument, surely it's them that should be passing money down the chain.

If I buy something from Amazon, should it be on me to identify the open source projects they use and pay them? Further where does it stop? Someone presumably used Linux in all this, do I need to send Linus a cut? Which driver writers do I need to support? How many copies of busy box were used in all this?


Where do you put the bar of the legal vs morale argument? A few days ago, I discovered a government entity in Pakistan was using my AGPL software [1] to handle censoring of media through their "ministry of information and broadcasting". I did release my software under AGPL as I like the underlying ideology of free software with a large emphasis on the freedom and not the free of charge but would have never expect some regime would come to use it to handle censoring.

[1]: https://github.com/mickael-kerjean/filestash


I personally think your particular scenario is the easier one: such "client" will ignore any license requirement or "moral pressure" anyway, as soon as they can acquire the software in some way. There shouldn't be moral burden on the devs. You do more good (way more) than harm. Otherwise I doubt Linus can sleep at night. I'd say this is no difference from, say, a knife manufacturer when it comes to the harm the knives do.

Commercial use is something devs are more torn because they feel they're being exploited while the client is not doing anything wrong inherently (doing business).

And in that case, you have to adjust your expectation to be exactly the same as the license you put in to resolve such cognitive dissonance.


"the harm the knives do"

Ah yes, those famous knives that jump up and attack people, when they're not too tired from autonomously cutting steaks and chopping vegetables.


You got what I meant. Sorry, not a native speaker.


No need to apologise, your post made sense.


Woah. This is really an incredible project. I'm currently running a seafile server for this purpose but it really isn't all that great and I keep debating going back to simple SFTP. Using your frontend would be a great addon.

Very nice work and congrats on taking this on successfully.


You used the wrong license then.


Morally, everyone in a value chain should get a cut, including the cleaning lady keeping your toilet stalls fresh and the midwife who helped deliver her.

Alas our cultural narrative frames achievements as products of genius individuals existing in a vacuum rather than celebrating them as accomplishments of humanity or at least the societies that enabled them to be brought about.

So yeah, legally it doesn't make any sense. Morally it's highly debatable.


But... but... but... the startup bros compel you to monetize! How could you leave money on the table?!?!? [/sarcasm]


When they decided to release it how they did they decided that compensation was secondary.

Maybe just the fact that their software is now used by millions of people is cool enough?


The amount of money that McDonalds makes is completely irrelevant to how much the developer "deserves". Especially given that they released their product as open-source and explicitly sought no payment.


Please read the licensing terms in their GitHub repo first before making a comment.


What you can do isn't necessarily the same as what you should do. McDonald's missed an opportunity to make this even cooler by compensating the developer. A couple thousand dollars in the right place can be more effective than millions in marketing. It just shows the company cares.


Who else should get random bonuses?

How about the hundreds of open source contributors to web browsers? What about the children of the people who clean the offices of the studio that made the game? I bet I could identify about a million people who deserve a bonus here.


...yes? They all arguably deserve something.

Hell, we're long overdue for a universal basic income - such that everyone can pursue things for the sake of coolness or intellectual curiosity or whatever if they want to, without needing to worry about making ends meet.


One could argue that the relatively high compensation for programmers is the main reason so much cool opensource stuff could even get started. A universal income for everyone could, hypothetically, put everyone in a similar position of being able to afford to do "productive" hobbies, vs. working a third minimum wage job.


Even with UBI, wouldn't the argument that the people involved should get a bonus still exactly be the same?

I'm pretty sure that most developers in western countries have no problem making ends meet and freely pursue things for intellectual curiosity.


Ubi Now you are showing your true colors here


I haven't exactly been quiet about my Georgist socioeconomic stances :)


It's not a random bonus though. It makes sense in the context of the promotion.

In any case, that is far off the point of my comment, which is explicit in the very first sentence. You tried flipping my argument but destroyed the context in the process.


Maybe it's both OK to say things like this to promote the megabusiness...

>Just be sure to order some McDonald’s to support them. Who knows… if we keep eating McDonald’s, they might keep producing these oddball retro gaming related projects.

>I, for one, will NEVER stop eating McDonald’s. You have my word.

...and it's also OK to wonder if that megabusiness could've paid or otherwise credited the small guy. Not that it's obligated to.


>What you can do isn't necessarily the same as what you should do.

We are talking about a giant multinational corporation here, or did you miss the context?


Compensation was suggested just because of the size of the company and you said, a little passive aggressively I would add, that one should read the licensing terms before commenting, in which ocasion I pointed out that what one is able to do, legally, isn't necessarily what one should do, meaning morality and legality are two separate, sometimes intersecting paths but not always, as in this case.

Context should be clear now.


I have the right to stand up in front of a music performer, invite friends to come over and listen to the great show, receive expensive gifts from my friends for their great evening and then give nothing to the street performer. Its my right !


I mean... yeah. In the meantime you haven't taken anything from that person; they are performing on a public street. On the contrary, similar to a packed restaurant, your presence might signal to others that there is something worth experiencing where you and your friends are crowded. This could in turn benefit the person you're crowded around by bringing more wallets within earshot. So you haven't actually given nothing, you've given your attention, and you've advertised for that person as if you were wearing a giant chicken suit spinning a sign and shouting, "Hey everyone, check out this person! Their music is good enough to attract a crowd!"

The fact that your friends in this scenario would weirdly shower you with expensive gifts after inviting them to watch a street musician perform doesn't negate the free advertising you've provided.


Yes, the performer would benefit from that attention. Maybe some of the people your presence brings around will tip them, etc.

The difference is that the existence of the performer is super obvious while in this case author and their work is hidden so author will not benefit in the same way.


> The difference is

Sure, that does differentiate the two scenarios. I was responding specifically to the first scenario.

I have an arguably bad habit of responding only to specific points that people make in their arguments, while ignoring the rest of their argument until they address the unresolved point. In this case, someone tried to make a point about standing around street performers. I had something to say about it.


I see, I took it as objection to the bigger point, because many probably do the same if you want to avoid misunderstanding you can keep doing what you're doing just with a clarification that you have no strong opinion on the issue


The author is also hidden from anyone who would be authorizing payment. The only person involved who might know the author is the guy making the game, and they likely used what leverage they had on their own contract.


based on what I know about other engineers it's almost certain that no one used any leverage whatsoever and the only reason they even checked the license is because legal forced them


Not sure what analogy you are trying for here but that ain't it. Publishing an open source project is not the same as street performance.


They developer isn't complaining, why are you? Maybe you can create something, opensource it MIT, and then complain.


... Recalls Simpon's episode where Bill Gates says "I didn't get rich handing out checks"


You’re thinking of revenue. Where is your outrage over the government using open source given its revenue?

You’re missing the point of open source if you think it’s quid pro quo.


Not everyone does everything with the expectation of seeing their bank account inflated in return. Sometimes people work on things just for the gist of it and I always appreciate seeing something driven solely by legitimate enthusism. :)


Morally, maybe. Legally, no.


They are getting exactly what they asked for.


Funny how people ask this while also being critical on Nintendo. If creator of emulator is to be compensated, are you going to compensate Nintendo as well?


Why would Nintendo be compensated? All the technologies used are re-implementations of their work.


"their work" - enough said.


Lol should open source projects pay commercial vendors? They are recreating "their work" right?


I didn't even argue for it. My only comment was on someone saying the person creating this should get money while they won't think of Nintendo.

Oracle v Google also comes into the picture.


Thanks! I don't work much on WebAssembly anymore, but I'm super excited to see all the progress being made.


That's true, I should have mentioned that I use this extension. It is supported by clang as well, however.


This was brought up for the last one of these I made, but the code here is c++ so wouldn't be allowed. I don't use a lot of c++ features, but it might be hard to keep the code size small without them.


Hi all, author here! Happy to answer any questions y'all have


I didn't handle audio for this emulator. But you can see how I handle resampling in my more fully-featured NES emulator here: https://github.com/binji/binjnes/blob/ca6977469168069a165176...

I'm not sure it's the right technique, but it seems to work pretty well!


I kind of dreaded writing that one, to be honest! I didn't quite cover all the details but I hope it made a little more sense. :)


Yep, I made a mistake it's actually 68.


Ha, I guess we'll see when I go for my next gig :-)


JVM is a great choice! You might also want to check out WebAssembly too (full disclosure: I used to work on wasm). There aren't too many opcodes, and a lot of them are relatively simple math operations.

Once you get it working, you could run things like JSLinux! https://bellard.org/jslinux/vm.html?url=win2k.cfg&mem=192&gr...


Given your experience at this level of abstraction, do you have any thoughts on what an ideal set of opcodes look like? E.g. something like Knuth's MMIX. Do you prefer RISC or CISC? What about RISC-V? How much do the designers of real-world micro-architectures talk to folks like you?

A bit of a tangent, I know, but it feels important.


I'm probably the wrong person to ask, to be honest. I was around for a lot of the design of Wasm, but wasn't really involved at that level.

That said, in my opinion the ideal set of opcodes really depends on your goal. There were many goals For Wasm, but I think there was a focus on keeping it small and simple. Originally it was AST-based, but it was changed to a stack machine to reduce size. It was also designed to be AoT or JIT compiled, so the opcode layout is not particularly friendly to hardware decoding or interpreters (although people have made some very high quality Wasm interpreters).

And of course there were a lot of discussions and disagreements about the best way forward: AST vs. register VM vs. stack machine. Structured control flow vs. goto. How to handle unreachable code. How to store integer literals (LEB vs. prefix byte). What the text format should look like (sexprs vs. ...?) etc.


Are there any meeting notes/chat logs for those discussions? It would be fascinating to get some insight into the design process for a modern VM.


Yes, you can find all the meeting notes here: https://github.com/webassembly/meetings

However there were a lot of discussions that were not in those meetings and were in smaller groups or held in GitHub issues or PRs. Most of these were in https://github.com/webassembly/design.


That’s a great idea, I’m not that familiar with wasm and the best way to learn is of course to implement a VM :)

Cheers for the link to the meeting notes in the other comment chain, sounds like a great rabbit hole


You're right about wasm not being too complicated, I've learned this when watching David Beazley coding a WebAssembly interpreter in under an hour. And it doesn't require any knowledge about it beforehand.

https://www.youtube.com/watch?v=r-A78RgMhZU


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: