Hacking Advice for homebrew creation

  • Thread starter Thread starter dmaster752
  • Start date Start date
  • Views Views 2,548
  • Replies Replies 15
  • Likes Likes 4

dmaster752

Member
Newcomer
Joined
Nov 2, 2011
Messages
11
Reaction score
9
Trophies
0
XP
145
Country
United States
I've been in the scene for a long time now and have decided I want to help out the community. I'm taking some courses soon and what I want to know is what do you guys suggest I learn to really help out the most. I see talks of python and c++ and other things so I'm not really sure what I should go for first. Which one will help me more when it comes down to creating? I'm obviously not going to be much help in the beginning since im fairly new to it all but I wanna start taking my first steps. Any and all help is appreciated thanks!
 
It depends on what you want to be programming. I develop homebrews that actually run on the Wii U hardware, but others do remote game modding and write up communication tools. The latter you can really do in any language you like (most pick Python) but if you want your code running on the Wii U you have three choices - C, C++ and PowerPC Assembly.
Nobody likes Assembly (for... some reason) so you'll probably end up doing most of your work in C or C++. You can learn whichever you'd like - C++ is more focused around classes and is a more high-level language (sort of like Java) while C is much closer to the metal. In practice, you'll need to be comfortable with both but they're basically the same anyway. If you're taking a course I'd recommend C++ since it'll teach you the basics of C, however you will need to know about pointers and memory on a far lower-level scale than I'd imagine a C++ course would teach (no idea though, never really done one.) Of course, you can teach this to yourself later if you wish.
As for which language is used in reality, I find a lot of stuff is in C++ because of a set of libraries written up by Dimok that make using some of the Wii U's more powerful features within reach for the rest of us. These libraries are written in C++ and it's generally easier to write your program to match. That's only if you want to use those libraries, however; C is perfectly sufficient if you're willing to get your hands (and computer) dirty in the Nintendo libraries.
Personally I've always liked C and try to write as much of it as I can. This is mainly because it's closer to what the Wii U is actually doing than C++. With a bit of work, I could probably translate one of my C programs into machine code: Each of its concepts are reasonable to map to what's going on in the hardware. On the other hand, I'd have no hope of doing this for C++. On a system that likes to crash as much as the Wii U, that's a big thing for me.

To sum up: C and C++ are pretty much interchangeable. C++ is more feature-packed and has good support from the community, but C is easier to debug and (to me, at least) is a lot more logical in the way it translates onto the hardware, even if that means writing code that's a bit more crazy. It's up to you to figure out which is best for you: both would be useful to the community.

Also worth noting that C++ is more likely to get you a paying job if the Wii U doesn't work out.

As I mentioned before, if you're not planning on making homebrew that runs on the hardware, you have free rein over what language you pick.
 
Thanks for the advice I really appreciate it. My main goal is creating things that run on the hardware so I guess C++ is the way to go. I have several courses already lined up but I figured I'd ask around before anything is set in stone. They have courses for C++, C#, SQL, Java, Python so I wasnt even sure where to begin. Though they did specify that for my C++ course that no previous programming experience is necessary so I hope I'll be fine.
 
Thanks for the advice I really appreciate it. My main goal is creating things that run on the hardware so I guess C++ is the way to go. I have several courses already lined up but I figured I'd ask around before anything is set in stone. They have courses for C++, C#, SQL, Java, Python so I wasnt even sure where to begin. Though they did specify that for my C++ course that no previous programming experience is necessary so I hope I'll be fine.
Welcome to the club.

My gacubeboy emulator inspired you, didn't it? :D
 
If you can wait until the weekend, when I have access to my console and a little free time, I might release an example showing background colours and basic sprite rendering in GX2 (because that's all I've figured out so far). It may provide useful to people looking to create basic homebrew for the Wii U.
 
  • Like
Reactions: vgmoose
If you can wait until the weekend, when I have access to my console and a little free time, I might release an example showing background colours and basic sprite rendering in GX2 (because that's all I've figured out so far). It may provide useful to people looking to create basic homebrew for the Wii U.
Using Dimok's stuff or under raw GX2? I'd be really interested in this.
 
If you can wait until the weekend, when I have access to my console and a little free time, I might release an example showing background colours and basic sprite rendering in GX2 (because that's all I've figured out so far). It may provide useful to people looking to create basic homebrew for the Wii U.
I wouldn't mind this personally, all the GX2 homebrew I've seen has a ton of overhead, something which just renders a textured sprite would be nice.
 
  • Like
Reactions: Deleted User
Using Dimok's stuff or under raw GX2? I'd be really interested in this.
When you say "Using @dimok's stuff" I assume you mean using his C++ setup involving Application.cpp, threading and having every single GUI element inside a separate class (such as that used in HBL, Loadiine GX2 and HBAS). If that's the case, no, I'm using raw GX2, just like the coloured cube example. :P
 
When you say "Using @dimok's stuff" I assume you mean using his C++ setup involving Application.cpp, threading and having every single GUI element inside a separate class (such as that used in HBL, Loadiine GX2 and HBAS). If that's the case, no, I'm using raw GX2, just like the coloured cube example. :P
Awesome stuff! Can't wait.
 
  • Like
Reactions: Deleted User
Personally my goal is to create certain apps that I don't really see any interest in. Mainly I'd love to create a media player because I loved WiiMC back then but half my files couldn't play on the Wii cause they were HD so I'd love to make a new one or even a port for Wii U. A couple emulators here or there would be nice as well
 
  • Like
Reactions: QuarkTheAwesome
When you say "Using @dimok's stuff" I assume you mean using his C++ setup involving Application.cpp, threading and having every single GUI element inside a separate class (such as that used in HBL, Loadiine GX2 and HBAS). If that's the case, no, I'm using raw GX2, just like the coloured cube example. :P
That's the beauty of his Classes though, you can use as much or as little as needed, or even modify it for your own use. For a project involving just a straight screenbuffer to render though, it does have a lot of extra overhead.
 
I'm learning C++, and I'm still very much a noob: working on Win32 console apps and I'm just about to start with conditional statements. Any advice? I intend to eventually work on 3DS homebrew.
 
  • Like
Reactions: QuarkTheAwesome
I'm learning C++, and I'm still very much a noob: working on Win32 console apps and I'm just about to start with conditional statements. Any advice? I intend to eventually work on 3DS homebrew.
Get yourself really comfy with Win32 stuff since it's a safe environment with debuggers and whatnot. When I say "comfy" I mean that your understanding of what's happening needs to be good since the APIs and methods available are vastly different (not sure about 3DS (how's devKitARM's standard libraries?) but at least for Wii U). You might not have a strcmp (just an example, don't worry, there is strcmp) but if you understand how strings are stored and how the memory is arranged you could write your own fairly easily. Learning by rote (this-does-this-and-this-does-this-and-this-is-how-you-do-this) won't help you here, you need to know the how and the why.
 
  • Like
Reactions: Deleted User
Get yourself really comfy with Win32 stuff since it's a safe environment with debuggers and whatnot. When I say "comfy" I mean that your understanding of what's happening needs to be good since the APIs and methods available are vastly different (not sure about 3DS (how's devKitARM's standard libraries?) but at least for Wii U). You might not have a strcmp (just an example, don't worry, there is strcmp) but if you understand how strings are stored and how the memory is arranged you could write your own fairly easily. Learning by rote (this-does-this-and-this-does-this-and-this-is-how-you-do-this) won't help you here, you need to know the how and the why.
I just realized reading this I should finish my Win32 course before I ask about homebrew xD
 
  • Like
Reactions: Deleted User

Site & Scene News

Popular threads in this forum