I really want to get involved in the development of Dolphin (and other emulators possibly), but I'm not sure where to start in the learning process. I am going to school for software engineering (2nd year atm). I know basics of C++ and a bit more in Java. What else should I try learning (even on my own time) in order to truly understand what is going on in the inter workings of an emulator? I see all the progress the Dolphin team is making, and I get so excited reading the monthly progress reports. I really want to contribute.

Yeah its a check out system, so it wont hurt to mess stuff up on your end ( just don't check it back in ) Sometimes just getting a project complied can be a nightmare. With Dolphin remember you will be developing software more or less, the emulation stuff has momentum. If you want to learn about emulators, give one a try on your own. There is no schooling that will prepare you for that other then some basic knowledge of ASM and dealing with registers. Personally I'd suggest learning to write to a PIC or AVR chip, nothing major just get your feet wet. Get the idea of bit logic down well, endianness, working with a shift register , and writing a hello world in assembly. It helps to know how stuff works if you wan't to emulate it.

You don't need to be able to write or even understand in order to contribute to Dolphin's code. There's a lot of stuff that can be done without asm knowledge. Well, you should at least know what asm is, and how it works in general, even if you can't read 1 line asm.

Thanks for all the feedback! I've been looking through Dophin's code a bit and will look into ASM! I am taking a class on assembly language soon and have a fair understanding of logic and discrete mathematics. Mimimi, what kind of things could be done without much asm knowledge??

Isn't there a branch where Dolphin's being ported from WX Widgets to Qt? That's busy work that no-one wants to actually do, but could be helpful and doesn't really require any knowledge of much. However, I doubt it'll be that interesting to work on.

OS: Windows 10 64 bit Professional
CPU: Intel i5 4670K @3.4GHz... for now @4.6GHz with a quick and dirty (yet stable) OC. May get faster in a bit before the end of time.
RAM: 16GB (Down from 24 GB after some was given to siblings)
GPU: Radeon Vega 56

(11-19-2014, 08:06 AM)Vinnybod Wrote: Thanks for all the feedback! I've been looking through Dophin's code a bit and will look into ASM! I am taking a class on assembly language soon and have a fair understanding of logic and discrete mathematics. Mimimi, what kind of things could be done without much asm knowledge??

Well, depending on your area of interest in contributing to Dolphin, assembly may be totally irrelevant. For this discussion, we should probably clarify which assemblies we are talking about as well. The GC and Wii run on the PPC architecture, so if you want to get involved with Dolphin's emulation of the CPU, you'd naturally have to be familiar with PPC assembly. If you're interested in working on the JIT recompilers, you'd additionally need to know the assembly of the target platform (x64 and ARM in Dolphin's case, AArch64 too??), but if you don't want to help in those domains, I would not focus on learning assembly of any sort, unless you're curious.

There are plenty sections of code that don't even touch assembly. Interested in emulating the Flipper GPU? How about the DSP? Want to work on input? Memory management? General bug-hunting? Interface improvement? Code-cleanup and documentation? That's just stuff off the top of my head. I've worked on a couple of emulators, and they've always been large projects with lots to do. Find a place that interests you, then go at it. Ask questions, learn what you can, then keep working at it until you make something better, faster, or compatible. Then in no time you'll be a super-cool Dolphin dev

Having the "super cool Dolphin dev" title is definitely the ultimate goal Honestly the busy work would be a great place for me to start and any type of work would be rewarding to me. It'll be my first open source project to contribute to and like I said, I would love to be involved in any way. It's so intimidating the biggest piece of code I've ever worked on couldn't have been bigger than 1000 lines!