While the newest Gateway update brought two major features, the addition of homebrew support seemed rather unclear initially because of the lack of a method to actually assemble Gateway-compatible 3DS files. However, thanks to the work of 3DSGuy, we can effectively convert ELFs to 3DS files. While many developers will already be able to make use of this, this guide is intended to expand the options for 3DS homebrew by walking through how to compile ctrulib, a library for writing ARM11 homebrew, as well as going over the basics of compiling and running one of ctrulib’s example programs.
Note: I carried out this process on an Ubuntu 12.04 system. While these steps should theoretically apply for any desktop operating system, your results may vary. I’ll try to make everything as universally helpful as possible.
Step 1: Setting Up
Obviously, you’ll need to start by having everything set up to actually be able to compile. To start, you’ll need the basic developer essentials for your given operating system. That goes beyond the scope of this guide, but if you’re developing homebrew, it’s a safe assumption that you’ve already carried this step out, or at least know how to on your own.
Next, you’ll need to install GCC for ARM embedded systems. You can download the files for that here. Windows users will have a straightforward installer, while OSX and Linux users will have to do a little extra setup later. For now, if you’re one of these people, extract your associated download in some folder that you’ll be able to conveniently remember. Alternatively, Ubuntu users can install an alternate PPA available here.
You’ll also need DevKitPro set up as you would if you were developing standard DS homebrew, along with all optional libraries (included in the following guide). A fairly straightforward guide for doing so is available here. Windows users have an easy installer available, and while scripts can handle the task for OSX and Linux users, I highly recommend they follow the guide for a manual setup. It isn’t very long or difficult, and will give you a good grasp on where everything you’ll be using is located.
Finally, you’ll need makerom, this file for compiling ctrulib software with makerom, and this workaround for using makerom with Gateway. Put those all somewhere convenient; we won’t be using them right now, but they’ll be needed at the end of this guide.
Step 2: Compiling ctrulib and homebrew
So you’re all set up and ready to go! Now we get to the fun part. You’re going to want to download ctrulib from here. If you’re familiar with git, this process should be straightforward. Otherwise, just click the “Download ZIP” button on the right side of the screen. You’re going to want to get everything from that link somewhere on your computer, with the same organization as it has on there. This is for convenience sake, as you’ll have everything downloaded at once and readily available. As well, the makefiles of all the example programs assume that everything will be in the same places that it is on github, so moving things around may cause issues.
Now that you’ve got ctrulib downloaded, open up your command line/terminal and navigate to your newly created ctrulib directory (for most operating systems, the command to do this will be cd). navigate into the “libctru” folder, and type “make”. If all goes well, you should now have ctrulib ready for use!*
*If you were one of the users in step 1 who had to just extract the GCC ARM toolkit into a convenient location, then you’ll need to make some slight changes to the Makefile first. Open up the Makefile in a text editor, and the first line should say “CC = arm-none-eabi-gcc”. Get rid of the last part so it simply reads “CC = “, and then add the directory you extracted it to, plus “bin/arm-none-eabi-gcc”, all in quotation marks. So, if I extracted to /usr/local, I would replace arm-none-eabi-gcc with “/usr/local/gcc-arm-none-eabi-[version]/bin/arm-none-eabi-gcc”. Repeat this process for the second line, and just replace the “gcc” at the end with “ar”.
But we didn’t just come here to compile ctrulib, we want to be able to use it. So let’s go compile an example program. Pull up your command line/terminal again, and go up a directory (“cd ..”). Now, navigate into the “arm11u” folder. We almost have everything we need to compile this homebrew right now (You’ll have to repeat the above steps for this makefile as well, if you’re an OSX/Linux user). However, if you try to compile this right now, you’ll find that you’re missing a file- a linker named “ccd00.ld”. Our makefile needs this in order to determine how to compile our homebrew.
Thankfully, if you followed step 1, you should already have this file- it was the file you downloaded immediately after makerom (This one, in case you skipped over it). All you need to do is copy/paste that into the “arm11u” folder, and rename it to “ccd00.ld”. If everything went right, you should now be able to type make into your command line/terminal to create a file called “arm11u.elf”!
Step 3: Converting the .elf into a .3ds
Thankfully, this is the easiest step so far. Now that you’ve got your homebrew file (“arm11u.elf” in the step 2 example), go ahead and paste it into the same folder where you keep makerom and the workaround you downloaded in step 1. Now, use your command line/terminal to navigate to this folder. If you’re a Windows user, at this point you can simple type “build.bat arm11u.elf arm11u.3ds”. If you’re an OSX or Linux user, the steps aren’t much harder. Open up the “build.bat” file in a text editor, change “%1″ to “arm11u.elf” and “%2″ to “arm11u.3ds”, and copy/paste the whole thing into your terminal. You should now have a Gateway usable 3DS file.
I hope this guide is helpful to people in setting up ctrulib and and assembling homebrew for the new Gateway update. As a note on the ctrulib examples, so far arm11u is the only one I’ve had full success with, but it should be enough to get you started, and can be used as a base file for developing new homebrew or porting old homebrew to Gateway. I’m currently working on successfully compiling the “gpu” example, however some odd issues are coming up. If you think you can help with this process, feel free to respond to this thread or PM me about it.
Anyway, I hope this guide helps some people get started in working with ctrulib and Gateway supported homebrew. Most of this information could be determined through trial and error or experience, but I wrote it out so you wouldn’t have to. This is my first guide, so please leave feedback, and if I missed something or you have a question I’ll try to respond quickly. Happy developing, and here’s to seeing some amazing progress from the homebrew scene in the near future.
Good solution for mt card users to play GBA games is sharing here. New multikernel MK01-2 firmware for Gateway 3DS and MT-Card was released. This is a modified version of the MK01 Kernel . The multikernel firmware comes with GBA emulator to allow our users play gba games on n3ds/xl without buying anything extral. and following are more details about this multikernel update
MultiKernel MK01-2 Features :
1.DSI skin imitated,choose a icon just by tapping left/right botton
2.Wood 1.62 for NDS game support.
3.Moonshell 2.10 with full function supported
Changelog(both GW and MT)
1.More emulator added & optimize directory
2.Add icons for the main UI
Former, we have wrote a guide on how to use gateway blue card play gba games on N3DS/XL ,you can reference here : How to use GW3DS Blue card MultiKernel v1.02 play gba game, and today, this article is a detailed guide on how to use mt-card blue 3ds multikernel v1.02 play gba games and hope it will be useful
What you need?
1) 1 x micro sd card
2)1 x MT-Card blue card
3) 1 x N3DS/XL firmware stayed on V6.1 or lower version
4) Download any GBA games and unzip it
1. Download multikernel firmware MK01-2 , unzip it,open the folder and copy the root files into your micro sd card
2.Insert your micro sd card into your gateway 3ds blue card and put them together to your N3DS/XL and power on your console
3.Click Icon and enter kernel v1.02 GUI
3. press direction key to choose GBA emulator
4.. click this icon
6. choose the GBA games and press key “A”
7.Press A again,then the system will inform you following message
8.keep on pressing key”A” ,till you see the game icon on top screen of N3DS/XL
Want to play 3ds games but no idea which one popular ? Recommended to purchase a gateway 3ds flashcart for playing all top 3ds games
As we known, GATEWAY 3DS is 1st successfully hacked Nintendo 3DS. It’s the GATEWAY brings players to a new 3DS gaming experience field, till now,with the continuous enhancements, are increasingly being recognized by more and more players.
However, mt card is first enable you to play 3ds multirom in one microsd card and also has many powerful functions, such as eshop games support, emunand 7.x support, game card backup and restore. Mt-Card and Gateway 3DS are all the best 3ds game flashcart at current. We also know that Gateway 3DS and MT Card both support to play 3ds games, ds games and other ds homebrews. They both have two cards,use almost the same technology and vulnerability of 3DS system. But there are many differences in fact.
Let’s see the features of these two cards from their offical site:
|Gateway 3DS||MT Card|
||1) Hardware design of flexible, build-in CPU with card, upgradable new functions via USB.
2) Support multiROM, support SDHC card, support up to 256 games, selecting game in Menu or by pressing key.
3) Support FAT32, drag and drop, no need of diskimager.
4) Save to TF directly, no need of pressing home to backup SAVE.
5) Support NAND-emulate,official carts region free,Nand backup.
6) Support Eshop games.
7) Support SaveEditor,and Card-dump soon
8) switching 3ds game by pressing little button on card.
They both have the main functions like support 3ds roms,multiROM and emunand.
There are many differences in setup & install:
The Gateway 3DS is very easy to setup.And one picture will show you all the steps
The MT Card almost the same usage. The only different is the firmware and cards.
Because they use the same technology, so the operation are almost the same.
The Gateway 3DS change games more simple. At the menu option, you can change games as the normal r4 flashcart. But the MT Card need to press the button on the card.
Mt Card use USB to upgrade
Gateway 3DS can upgrade by file or patch.
The Mt Card looks cool ,but maybe the usb will be broken and missing the connection data which will result in broke mt card.
Gateway 3DS provide more help tools at the download page. like rom tools. Gateway 3DS is more realiable and have powerful team. Then, what’s your opinions after reading and comparing those differences?
We clearly remember GATEWAY 3DS is the first successfully hacked Nintendo 3DS.It’s the GATEWAY brings players to a new 3DS gaming experience field, till now,with the continuous enhancements, are increasingly being recognized by more and more players. However, R4i gold 3ds deluxe , the almost being forgotten first r4 for 3DS games card , still has no any important updates, technical stagnation in GW, MT card… Even the basic Multi-ROM has not supported so far. Obviously,they are particularly embarrassing. Especially now GATEWAY has ushered in 2014 with the second major update “GATEWAY 2.2 OMEGA ” emergence is to let the players exclaimed, online games and 3ds homebrew supports is the strongest in the world undoubtedly.3DSFlash-cart.com is a reliable 3DS flash carts official online shop that sells original Gateway 3DS directly to customers. 3DSFlash-cart.com are pride of providing sincere customer service,lowest prices, and global free and fastest shipping. All gateway flashcarts in Stock, 100% Tested, 100% Work Fine and 100% Quality Warranty! Get Started Now!!
For those wonderful functions, will you consider to buy Gateway 3DS ?
Today Gateway-3DS team present Gateway firmware 2.2 “OMEGA” which is packing quite a few of highly anticipated features!
change logs GW 2.2 OMEGA public release:
-3DS homebrew support
-Savegame backup and restore
-Improved Game Card Dumper
However, the online support is really very useful , that’s right, now you can play online with your friends by Gateway 3DS !As we hinted in our previous firmware release, the current “scene” dumps are missing critical data which is needed for online support.Our game card dumper however does create proper dumps, and will allow you to play online.To play online you will need a game dumped with our Game Card dumper and you must rename the file extension from .3DS to .3DZ in order to avoid accidental activation of online support.As always, use online play at your own risk. Since online play is linked to a genuine Game Card, we do not recommend that multiple users go online with the same game dump simultaneously as it will most likely result in a future online ban.
However , gateway cannot help you if your 3ds console gets banned from online play.