Locked



Post subject: Programmers' etiquette
Experienced player (691)
Joined: 11/23/2013
Posts: 2239
Location: Guatemala
I have some silly question regarding BizHawk. How do you implement a core to it? I know it requires expert programming knowledge and C+ language and stuff but... how it's done? FOR EXAMPLE: If I want to port a Neo Geo Pocket emulator to BizHawk, what should I do, or where do I begin or what are the basics?
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
There's no sense writing the procedure down for you until you're an expert. You won't understand any of it. And, in fact, being an expert means you can look at the code and immediately understand what to do, which is why we haven't needed to write it down. Furthermore, anything we did write down here would be out of date by the time you became an expert. Finally, any response you could possibly have to such information would be in the form of questions based on confused miscomprehension of information only an expert can understand. So there's no sense in continuing this thread. If you want to feel some kind of hope, begin by taking the emulator you're interested in, getting it to build, ripping out the user interface, and abstracting out its use of the filesystem. Address questions to a c++ programming forum while you're busy learning c++.
Active player (274)
Joined: 2/1/2014
Posts: 928
The above post MAY sound mean, but it's actually a very helpful post. Really jumping in to implement a new core with less than 5 years of experience (random guess) would be a huge hassle and would probably lead nowhere. But disregarding the learning a language portion. As simple as I can think of it (And I will state I have never implemented a core or have done anything meanful towards Bizhawk), but lets just assume: 1. you find a stable Neo Geo Pocket emulator (that some others have created) 2. strip it down to its system (no GUI, no controllers, no lua if it had it) 3. attach the missing pieces from Bizhawk's (GUI, Controller, anything else that needs connections). Makes it sound easy, but understanding code is probably some high level programming (or low level? haha.. did I do good on my programming joke? -sad-)
Experienced player (691)
Joined: 11/23/2013
Posts: 2239
Location: Guatemala
It was just a question dude, don't have to be so mean about it. <Like I would do anything like that. I'm not you that knows everything about emulators.
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
I had to be mean to stop you from wasting someone's time. And your own. You posed a question as if you were going to consider doing the work. Now you've said, as I suspected, you would never do anything like that. So the entire explanation would have been aimed at something which will never be. We can leave this thread here for when you or someone else is actually seriously considering doing the work, and then fill it with fresh information. Finally, me and solarplex both actually answered your vague question about as well as could be done, and you didn't acknowledge or probably even recognize it. Again, as I expected.
Experienced player (691)
Joined: 11/23/2013
Posts: 2239
Location: Guatemala
You're literally being a dick right now man, CALM THE FUCK DOWN.
Here, my YouTube channel: http://www.youtube.com/user/dekutony
ars4326
He/Him
Experienced player (778)
Joined: 12/8/2012
Posts: 706
Location: Missouri, USA
Kurabu, being a laymen on the subject, I also don't have the slightest idea on how to implement emulator cores into Bizhawk (and would likely need years of programming experience to comprehend it). However, I recommend checking out this video Bisqwit made a couple of years back where he created an NES emulator using C++11. I have no idea what's going on, but it's fun to watch :)
"But as it is written, Eye hath not seen, nor ear heard, neither have entered into the heart of man, the things which God hath prepared for them that love him." - 1 Corinthians 2:9
Editor, Emulator Coder, Site Developer
Joined: 5/11/2011
Posts: 1108
Location: Murka
Kurabupengin wrote:
You're literally being a dick right now man, CALM THE FUCK DOWN.
Fuck off and stop wasting everyone's time.
ALAKTORN
He/Him
Former player
Joined: 10/19/2009
Posts: 2527
Location: Italy
Kurabupengin wrote:
You're literally being a dick right now man, CALM THE FUCK DOWN.
He’s not being that bad. You’re the only one who’s using swear words, even. Maybe you should calm down a little. The answer’s been given.
Joined: 2/3/2013
Posts: 320
Location: Germany
Obligatory: http://www.catb.org/esr/faqs/smart-questions.html (yes, read the whole thing. It'll serve you well)
All syllogisms have three parts, therefore this is not a syllogism.
Experienced player (691)
Joined: 11/23/2013
Posts: 2239
Location: Guatemala
Ok, let me rephrase my question then: One day, I would like to be able to implement a core into BizHawk, where can I start? Technically links could help, and not mean looking answers is nice. BTW, I want to apologize to everybody posting here, I didn't wanted to sound stupid or mean, I just wanted some help and some basic info. Even though zeromus and natt's comments were hurtful but true, I want you to know no hard feelings. (BUT TRY TO BE NICER NEXT TIME, CUZ IT REALLY LOOKED MEAN). Also, my english is fucking terrible, so that didn't helped at all either. SORRY IF I'M WASTING YOUR TIME.
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
OK then you were already answered. There are no links. Pick your open source emulator and play around with it for a year while you learn programming. Do the things we said, or do other things, or do whatever makes you happy. Just do anything. Change all the blue in the emulator to purple. Change all the bleeps to bloops. Then make it print 'bloop' instead of blooping. Then make it write bloops.wav. Fix some things that annoy you. Repeat until you're an expert.
Experienced player (691)
Joined: 11/23/2013
Posts: 2239
Location: Guatemala
zeromus wrote:
OK then you were already answered. There are no links. Pick your open source emulator and play around with it for a year while you learn programming. Do the things we said, or do other things, or do whatever makes you happy. Just do anything. Change all the blue in the emulator to purple. Change all the bleeps to bloops. Then make it print 'bloop' instead of blooping. Then make it write bloops.wav. Fix some things that annoy you. Repeat until you're an expert.
...
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Samsara
She/They
Senior Judge, Site Admin, Expert player (2241)
Joined: 11/13/2006
Posts: 2823
Location: Northern California
Kurabu, I think he's trying to say this, and anyone else feel free to correct me if I'm wrong about any of it: By the time you have the ability to add a new core to Bizhawk, you'll know how to do it just from knowing how to program. It's a simple process, one that can be reverse engineered easily by looking at the source, however you actually need to understand the source first. Start learning to code if you're interested, and once you get to a point where you can do things comfortably, start playing around with Bizhawk's source. Learn its ins and outs and how it works, since you'll need to adapt other emulators to work with it. Once you have a nice understanding of Bizhawk, you can start working with other open-source emulators to begin the implementation process. The important thing is that you learn how to code in the first place. Bizhawk is coded in C#, if I remember correctly, so you should start learning that if you want to help. Someone with more knowledge of coding can give you a link to some resources to help you start out. Devs, I suppose I can see that there isn't really a good way to give documentation for this. That absolutely doesn't forgive the harsh responses, mind you. It would've been just as easy to, y'know, not tell someone who wants to learn how to help with the project to "fuck off" and to "stop wasting everyone's time". If you have the time to metaphorically piss on someone asking an innocent question, you absolutely have the time to give them the information they're looking for.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family. Now infrequently posting on Bluesky
warmCabin wrote:
You shouldn't need a degree in computer science to get into this hobby.
Editor, Expert player (2080)
Joined: 6/15/2005
Posts: 3284
Kurabupengin, Please realize that the BizHawk team (and probably other coding groups as well) reserves the right to be rude to anyone, for any reason. Accepting this, and also assuming that the reverse situation is not a right (being rude to the BizHawk team, for whatever reason), is probably for the better. Anyway, it's been stated previously in broad terms that implementing a core is basically taking another emulator's core (just the essential part of it) and linking it to BizHawk's interface. I don't know of anything else so I can't specify. However, acceptance to BizHawk is more than just "implementing" it; there has to be some quality checks (since BizHawk is focused on emulation quality) and that can only be done by programmers who are very much experienced in regards to the console which the core is concerned with. Also, I advise not to inquire any further about the issue, considering how this thread has gone.
Experienced player (691)
Joined: 11/23/2013
Posts: 2239
Location: Guatemala
FractalFusion wrote:
Kurabupengin, Please realize that the BizHawk team (and probably other coding groups as well) reserves the right to be rude to anyone, for any reason. Accepting this, and also assuming that the reverse situation is not a right (being rude to the BizHawk team, for whatever reason), is probably for the better.
I respectfully disagree with this paragraph. This implies that I cannot say anything with the devs just because they are the devs and they can insult and make fun of me just because they are the devs. That's honestly unfair, realizing their responses and everything else. They shouldn't have that priviledge to insult whatever they want just for being devs. I can get it for the admins, but the admins are the most mature, correct and respectful people I know.He isn't being like this and thus I'm not going to let that go.
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
catb.org says why devs are rude and why it isn't unfair. Did you read it yet? I answered your rephrased question and all I got back was ellipses. I think you didn't understand it. Did you reread it yet?
Samsara
She/They
Senior Judge, Site Admin, Expert player (2241)
Joined: 11/13/2006
Posts: 2823
Location: Northern California
FractalFusion wrote:
Kurabupengin, Please realize that the BizHawk team (and probably other coding groups as well) reserves the right to be rude to anyone, for any reason. Accepting this, and also assuming that the reverse situation is not a right (being rude to the BizHawk team, for whatever reason), is probably for the better.
I respectfully submit that you might want to rethink this statement. What gives anyone the right to do this? At all? Ever? Why does coding the site's main emulator give them the power to say the kinds of things they've been saying? How can you look at "Fuck off and stop wasting everyone's time" and think that's even the slightest bit okay in this situation? He just asked a question! A harmless, innocent question! If he ran in and insulted all the devs, that'd be a different story. Everyone has the right to defend themselves from baseless accusations: Hell, look at what Kurabu's been doing in this very thread! But to go as far as say that they have the right to just tell people to fuck off whenever they want, and to force people to accept it? That's just... despicable, for lack of a better word, or power abuse, for lack of a better pair of words. I absolutely respect the work going into BizHawk, but I don't have to respect the people putting that work in if they show me they're not worthy of respect. I hope no one is ever in a position where they're forced to show respect for people who don't deserve it.
TASvideos Admin and acting Senior Judge 💙 Currently unable to dedicate a lot of time to the site, taking care of family. Now infrequently posting on Bluesky
warmCabin wrote:
You shouldn't need a degree in computer science to get into this hobby.
Active player (274)
Joined: 2/1/2014
Posts: 928
zeromus wrote:
OK then you were already answered. There are no links. Pick your open source emulator and play around with it for a year while you learn programming. Do the things we said, or do other things, or do whatever makes you happy. Just do anything. Change all the blue in the emulator to purple. Change all the bleeps to bloops. Then make it print 'bloop' instead of blooping. Then make it write bloops.wav. Fix some things that annoy you. Repeat until you're an expert.
Snap! I gotta make my bleeps more bloopy?!
Joined: 12/31/2009
Posts: 174
Kurabupengin wrote:
FractalFusion wrote:
Kurabupengin, Please realize that the BizHawk team (and probably other coding groups as well) reserves the right to be rude to anyone, for any reason. Accepting this, and also assuming that the reverse situation is not a right (being rude to the BizHawk team, for whatever reason), is probably for the better.
I respectfully disagree with this paragraph. This implies that I cannot say anything with the devs just because they are the devs and they can insult and make fun of me just because they are the devs. That's honestly unfair, realizing their responses and everything else. They shouldn't have that priviledge to insult whatever they want just for being devs. I can get it for the admins, but the admins are the most mature, correct and respectful people I know.He isn't being like this and thus I'm not going to let that go.
Admins usually deal with both front and back-ends. If there is drama, it starts with the community which then escalate to the mods and reach the admins if needed. If there are server issues, it starts with the developers in general which then escalate to the developers in that specific area and reach the admins if needed. It is common for the developers to avoid talking to the general public because it isn't their job to talk to people outside the team/company. As for being rude, it is because they (usually) have to get deal with shit from self-entitled idiots and end up under-appreciated regardless the result. This is only a hobby and they receive nothing in return for their work (in some cases, not even recognition). Unless you give decent contributions, they don't owe you or anybody respect. As for being rude to the devs, you are only burning bridges and don't expect to get anything after that. The important question is why should the devs NOT be rude to you. Come up with a good argument please.
ars4326
He/Him
Experienced player (778)
Joined: 12/8/2012
Posts: 706
Location: Missouri, USA
Before the tone of this thread escalates further, I'd like to (even if only temporary) nudge it into a different direction. Zeromus and everyone on the dev staff: Thank you for your hard work and contributions to this site. BizHawk, especially, has been the best emulator I've used and made TASes with. From one semi-anonymous avatar to the other--you're appreciated. With that said, I can understand that it can get quite annoying when newbie questions are asked out of blue; moreso, I imagine, in such a technically skilled field as programming. On that, I would only respectfully urge that patience and kindness would be considered in these exchanges (on BOTH ends). After all, we're all a close-knit community that shares the same interests in regards to speedrunning our favorite video games. Anyhow, I hope everyone involved can take a deep breathe and forgive one another. Hope everyone has a good evening/morning/afternoon/etc. :)
"But as it is written, Eye hath not seen, nor ear heard, neither have entered into the heart of man, the things which God hath prepared for them that love him." - 1 Corinthians 2:9
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
Samsara wrote:
What gives anyone the right to do this? At all? Ever?
I don't think anyone really has the right to anything, but nothing's quite as simple as ever and never, and I'll humor your question with some possibilities. If you come onto programmer's turf and talk about programming, you better expect to speak programmer's language. Programmer's language uses rudeness as a mechanism of emphasis. If programmer spends words writing very detailed rude things, it's because he wants you to take them very seriously. Programmer's language is exact. If the reality is harsh, then the words are necessarily harsh. Programmer's time is limited and programmer's social skills are retarded. Sugar-coating aforementioned harsh language is both costly in terms of time and energy. Programmer's instincts for communication balk at adding semantic gauze. Programmer's life is spent busting balls for users. Some programmers expect respect. Some other programmers just expect the common courtesy of having what they've bothered to write be actually read. As a practical matter, it doesn't pay to be rude to people who are busting their balls for you. Programmer wonders why he's talking about being mean instead of programming. He would be in a support group talking about his feelings if the former's what he wanted. As catb.org explains, a reply from a programmer is a compliment. It's already being nice. But a programmer's power comes at a terrible price, and it's that each word he says makes him into a bigger asshole. Sometimes it's hard to even try fighting it. If he fights it, he probably sounds like a sarcastic smartass due to some law of verbal alchemy where rudeness can neither be created nor destroyed but only change form. So what's the use? If someone can't help but be rude, maybe that gives them the right. Maybe you want them to have the obligation to try not to be rude, but perhaps they'll get more code done if you don't tell them that. I am literally writing these words during time I had booked for working on disc loading.
Active player (274)
Joined: 2/1/2014
Posts: 928
Invariel
He/Him
Editor, Site Developer, Player (171)
Joined: 8/11/2011
Posts: 539
Location: Toronto, Ontario
Without trying to devalue zeromus' words, programmers can learn tact. But it takes a long time, time that could be spent doing other things, and it's not an easy thing to practice. Responding to the thread in general, Kurabupengin asked a question. It was, quite plainly, a question asked out of ignorance, but it received two equally valid responses. Go back and read them, they're up there. Kurabupengin didn't understand the answer (which was predicted) and responded negatively. Not in this thread, Kurabupengin took to IRC where the context and subtext of the thread was explained to him several times, prompting him to come back and write his apology and rephrase his question. To which he received another polite response, and misinterpreted again. I don't know how better to say, "What you are asking is difficult, but if you had the skill apply an answer, you would have the skill to figure out the answer for yourself and thus not need to ask the question; furthermore any answer given to you right now will likely be out of date by the time you can use it," than what zeromus said originally, while still affording respect and not talking down to the other person. What Kurabupengin actually wants, as stressed by his second question, is to learn how to code, and again, as zeromus replied, the best way to learn how to code is to sit down and start writing code. There is no malice in those words, no disrespect. This thread derailed into "who's being rude" because there are two languages being spoken here. One is English, as spoken by programmers, which values being concise and precise, the other is English, as spoken by non-programmers, which appreciates ambiguity and vagueness. The vague question ("How do I do X?" which actually meant "How can I learn how to program to eventually do X?") was met with a precise answer ("You lack the skill to do X, otherwise you would not need to ask.") and disjunction followed. Kurabupengin, answering your actual question again, pick a language (C# is a good starting point if you want to work on BizHawk, but any of the object-oriented languages is good), tinker with it, get better at tinkering with it, and when you think you have the skill level required to start poking at BizHawk's internals, track someone down, ask them where the bug and feature list is, and see if there is something you can take on for yourself.
I am still the wizard that did it. "On my business card, I am a corporate president. In my mind, I am a game developer. But in my heart, I am a gamer." -- Satoru Iwata <scrimpy> at least I now know where every map, energy and save room in this game is
Editor, Emulator Coder
Joined: 8/7/2008
Posts: 1156
daayuumm you must have gone to tact academy. My folks sent me to pecker prep :/

Locked