Showing posts with label game systems. Show all posts
Showing posts with label game systems. Show all posts

Friday, November 21, 2014

Setup for 3DS Homebrew

Well, it's finally here!  The 3DS homebrew scene is live and ready to start.  With everything out in the open, I thought I'd do a quick tutorial on how to install everything to your 3DS, and what you can and can't do with it.

Setting up your 3DS

The first thing you will need is a 3DS (duh), an SD Card, internet access on your 3DS, and the game "Cubic Ninja".  This can either be a physical cartridge, or the version off of the Nintendo eShop (Japan only) [This has been taken down as of now].  Once you have this, go to the main menu of Cubic Ninja, select "Create", then select "QR code", and finally select "Scan QR Code".  This should open up a view from your 3DS' camera, and allow you to scan a QR code with it.

Once there, go to http://www.smealum.net/ninjhax/ and select your 3DS version, click submit, and it should present you with a nice QR code you can scan.  Scan this with your 3DS and you should see a screen like this pop up:


Don't forget to make sure that your 3DS has an internet connection as well to download part of the exploit.  Now you can choose to either run a homebrew application, or install it to the save file of the game.  This allows you to not have to worry about using the QR code in the future or needing an internet connection, so I highly recommend doing this, as it can be uninstalled later if you so choose.  Once this is done, you are all set and can begin using homebrew applications!

Running Homebrew

To run homebrew applications, you simply need to put the a boot.3dsx file on the root directory of your SD card, and then when you launch NinjHax, it will run your application.  My recommendation is to download a homebrew launcher and just leave that as the file, so that you can launch other homebrew applications with it.  It's a pretty simple process, but if you have questions, feel free to post them below.

To add other homebrew applications to the homebrew launcher, simply create a folder called "3ds", and place folders contain the boot.3dsx files of homebrew applications within there.  If you wish to make icons for your games, simply place them in an application's directory as "icon.bin" files.  You can use the SMDH tool included with devkitPro to make them, or look into my application over at https://github.com/gemisis/SMDH-Creator (Windows only).

When it comes to what you can run, please be aware that this does NOT run pirated games.  It ONLY runs homebrew applications.  We do NOT support piracy and will NOT be adding support in.

Deleting Homebrew

Should you ever wish to delete the homebrew save file on Cubic Ninja, all you have to do is hold L+R+X+Y on the main menu, and it will prompt you to delete the game's save data.  Click yes, and poof!  All of the homebrew stuff will be gone.  This can also be used to update the launcher in the future, as you can just delete it, and then reinstall it.

Creating Homebrew

Creating homebrew is a bit trickier, and requires knowledge of C.  As of right now, most of the tools are available from https://www.github.com/smealum/ctrulib.  There is also a quick install tutorial there, though I may add one on here in the future if a need arrives.  Using the libraries is a topic for another post, so I'll try to go over making a simple application at another time.

I hope this all seems pretty straight forward!  If you have can questions or comments, post them below!  Happy homebrewing!


Thursday, June 26, 2014

Google Cardboard - A Perfect Start for Virtual Reality

Man, it seems like I've been on a VR rant these past two days now.  Let's cut straight to the point on this post: Google Cardboard is the exact thing virtual reality needs right now.  It's cheap, it's (fairly) high quality, and anyone can get it right now.  This kind of access is the perfect push for anyone who wants virtual reality to succeed, and while the Oculus Rift and Control-VR might have a nicer case, Google has managed to blow them both out of the water.  Let's go ahead and review everything really quickly.

Wednesday, June 11, 2014

Game Systems - 8th Generation Current Status

Game systems are a very tricky business to read into.  While your favorite system may have all the games that you like, that doesn't mean that it is selling well.  At the same time, high sales for one console at the start might not mean that it will be the best selling in the end.  There are quite a few ups and downs specifically to the current 8th generation of game systems, each complete with coming challenges as well.

Please note that this was written prior to E3 2014, and so this is just my personal opinions and thoughts on the current generation of consoles before then.  I will be writing up a post E3 version soon.

Saturday, February 1, 2014

One PC, Three Kinects

Recently I managed to get a hold of three Microsoft Kinects.  A few of my family members had one (including myself) and ended up not needing them since they never used them.  Being the "techy" I am, the first thing I did was attempt to integrate them into my recent Oculus Rift projects.  While the code seems to be correct, there was an issue from a hardware perspective that I was hoping to not run into.  Alas, I have, and thus am writing this blog post about what exactly is going on.  It's an interesting little hardware problem that I'm hopeful Kinect 2.0 will solve a bit more, and that'd I decided to do a quick write-up about.

Saturday, January 25, 2014

Why to Start Programming with Homebrew

When I was in High School, I decided to learn to program for the Nintendo DS.  I absolutely loved the games on the system, and thought it would be awesome to be able to create my own games on it.  A little bit of research at the time however showed that professional development on it was out of the question.  Thousands of dollars for a development kit?  I needed to buy an office building?  There was no way I could afford that, but I wanted to learn to program.

What about developing for the PC?  At the time, finding a good, cheap, and well documented PC game engine to learn was incredibly tough.  The tools tended to be very obscure, or super expensive, or limiting with what I could do.  I picked up Game Maker for a little while (which I still believe is a great starting tool), but eventually reached a point where I couldn't do much more with it.

I went back to looking at video game consoles and came across this "new" thing called homebrew.  Researching more into it, I realized that this would allow me to make games for the Nintendo DS, Gamecube, the Sony PSP, and more later on.  This seemed incredible, but there was one big thing: I had to "hack" my systems to do so.  Now as someone brand new to the homebrew scene, that worried me a bit at the time.  Hacking? Wasn't that illegal?  Couldn't I get into trouble with that?  Is this a good way to go about learning to code?

To start tackling all of this, I began looking into what exactly I could do with it and whether it was worth even starting.  The tools I was using (PAlib at the time) were fairly well documented and included tons of examples.  Within a few days I had a simple demo up and running and had begun programming a game.  This prompted me to go through and actually read about what I was using and the legalities with it.

Within a few months, I had discovered that homebrew really doesn't require anything illegal (usually, I'll explain more on that later though).  While yes, you do have to "hack" the system, there isn't actually wrong with doing so to your own hardware.  It's similar to if you got locked out of your car and had to break back in, it's your car, you own it.  If that's the case though, why do people get so up and arms about it sometimes?  It's because of what you can do with it.

To elaborate, let's image that you get locked out of your car and then break back in.  Now imagine that you drive the car through a red light and get pulled over.  Is the problem that you broke into your car?  No, it's what you did with it.  Homebrew is very similar.  If you "hack" your device to play music you own on it, then that's perfectly fine.  But if you create an application that plays music you don't own, then that's obviously not okay.  These days, homebrew seems to have a very bad rap for what it is: A way for anyone to learn to program.

The Oculus Rift is another example of something that was
started as a homebrew project and grew to something more!
If you don't trust this, just read up on the history of companies such as Electronic Arts.  EA was founded by two guys who did nothing more than tinker with homebrew tools of their own.  Homebrew has been around since computers were first invented.  It provides a cheap way to program on things you already own.  It's nothing more than making something of your own at home, rather than as a business.  If that's the case though, why does homebrew have such a bad rap?

I think a huge part of why homebrew has become viewed in this way is due to what people have begun to use it for, especially in recent years.  A big offender of this is software piracy, as most of these tools easily lead to it, mainly due to the sheer nature of these tools.  It's not the fault of the tools' developers, it's just how these things work, and there's only so much one person (or even a group) can do to prevent piracy.

Another huge issue however is only showing up more recently, and that's the creation of tools using code by the companies make these systems.  The PS3 saw this for a while, where homebrew developers would use tools owned by Sony, which was obviously not allowed.  In some cases, making the tools is difficult, which can lead to an impassible barrier for making homebrew.

With all of that being said, is homebrew something worth learning?  Absolutely!  It's a cheap entry point for coding and allows you to learn a lot more than you normally would when coding for a PC.  A good starting point for this actually is the Nintendo Wii.  The system, while old hardware wise, is easy to get started with, and is a great entry point for learning how to work with systems that have these huge limitations.  When you develop on a PC, you usually have a near-unlimited amount of resources for basic games.  But when you work with something like the Nintendo Wii, or especially the Nintendo DS, you have to be very careful about what resources you use.  A computer may have on average two gigabytes of ram, but the Nintendo DS?  You're going to be using at most four megabytes of ram, a fraction of a PC.

These limitations, while tough to overcome, will ultimately help make you a better coder.  You learn how to use faster sorting methods, so as not to slow down the CPU.  You learn about memory management, and why it's important to release resources when you no longer need them.  You also have to learn how to make most of the high-level tools you need.  On top of all that though, the hardware to get into this is very cheap usually, and you may have most of it lying around your house right now.  Just be cautious of what you make, and you'll be fine!