After Nintendo’s initial release of the NES Classic back in November of 2016, it became an instant hit across the globe. And shortly after it was discovered that it could be hacked to install a ton of other game roms, it became even more popular, but Nintendo pulled it off the market shortly after that.
In what I can only assume was an attempt to close off the ability to hack to the NES Classic, Nintendo discontinued the console and focused on releasing the NES Classic.
But of course, who doesn’t like to just print money. Nintendo knew they were missing out on a huge opportunity by pulling the NES Classic off the shelves, so they re-released it in early 2018 and produced more inventory, they are usually in stock most places like Amazon. And they did make some updates to the software and hardware, but it wasn’t enough to keep hackers out.
If you’re looking to hack your NES Classic console to get more games, and you already have a Windows 10 PC, you can follow our old instructions, or skip to step 7 in this guide and follow along (disregard anything talking about USB passthrough if you already have a Windows PC).
Essentially the hacking process is exactly the same as it was before, you just need an updated version of Hakchi2 CE, the hacking software developed for this purpose. The only problem with Hakchi2 is that it only runs on windows. And that’s why I decided to put this guide together.
Hack NES Classic on Mac
There are a number of guides out there for hacking your NES Classic using an iMac, Macbook Pro, or other Apple computers, but as I was trying to do this myself, I found that a lot of them are incomplete and didn’t solve some of the issues I was having.
You will still need to run Windows on your Mac in order to make this hack work, but if you’re unwilling to load up Windows 10 in Bootcamp on your Mac, then this is a great solution for you.
What We’ll Be Doing in this Guide
- Downloading, Installing, and Setting Up Virtual Box running Windows 10 virtual machine on your Mac.
- Downloading Hakchi2 CE to add games to the NES Classic
- Installing the proper drivers needed to recognize the NES Classic
- Setting up the USB passthrough properly in order for the virtual machine to recognize the device
- Downloading NES roms to add to the NES Classic
- Adding new games to the console
Those are the basic steps needed in order to get this done, but they will be a little more involved than they sound. As long as you have basic computer knowledge and can follow directions, this shouldn’t be that bad.
Disclaimer: There is always the possibility that could you brick your console so you agree to follow this article at your own risk. We do not assume any responsibility for what you do from this point forward. There are ways to reflash the kernel and restore your device to its factory settings, but we’re not going to discuss those here.
I followed these exact steps myself with zero problems on a new NES Classic that was purchased in late July 2018, so I know for a fact that this process will work on the new versions of the console.
But enough of the babble, let’s get to it.
1. Download and Install Virtual Box
The first thing we need to do is download and install VirtualBox so that we can get Windows 10 up and running on your Mac.
Download VirtualBox Here (click on OS X hosts under VirtualBox 5.2.16 platform packages, version may be different)
Once the file has downloaded, double click on the file and then the installer, and follow the instructions.
2. Download and install the VirtualBox Extension Pack
Get the Extension Pack Here. (click on All Supported Platforms, under the VirtualBox 5.2.16 Oracle VM VirtualBox Extension Pack heading about 1/3 of the way down the page).
Double click the file and press install.
3. Download the Windows 10 iso file for VirtualBox
Click here and download the MSEdge on Win10 (x64) Stable for the VirtualBox platform. The file is over 4GB, so make sure you have the space. It shouldn’t take too long to download on a decent connection.
Once downloaded, double click on the .zip file in order to extract the files you need.
4. Import Windows 10 Appliance in VirtualBox
Open up VirtualBox and go to File > Import Appliance
Click the folder icon to the right of the empty box and browse to find the MSEdge – Win10.ovf file that should be in the folder you extracted in step 3. Then press the Continue button.
A new window will pop up with the Appliance settings, just press the Import button at the bottom, no need to change anything.
5. Setup the Virtual Machine to Passthrough the USB devices from your Mac to the Windows 10 VM
Connect your NES Classic to your computer using a micro USB cable and turn on the console (press the power button).
Once it is turned on, go to VirtualBox and you should see “MSEdge – Win10_preview” in the left pane. Click it once to highlight it.
Now click on Settings just above that.
In the settings window click on Ports and then USB.
Click the checkbox next to “Enable USB Controller” and either check USB 2.0 or USB 3.0, depending on what your computer has. Mine has USB 3.0, so that’s what I checked. You can figure this out by going to the Apple Menu in the upper left of your computer, About This Mac, then click on System Report…, once in the system information find USB on the left and click it. Then on the right you should see something that says USB X.0 Bus, that will be your USB number. If your computer is newer than 2013 (at least), you should have USB 3.0.
Now, with your NES Classic turned on normally, click the little USB icon with the plus sign to the right of the empty box.
You should see an option that says “Nintendo Co., Ltd…” click on that and press ok.
You should now see the Nintendo device showing up in that empty box on the settings page.
Click ok to save.
Turn off the NES Classic using the power button.
We now have to passthrough the NES Classic in its recovery mode, or FEL. We’ll be using both modes in the Windows 10 environment, so both need to be passed through. And we’ll actually be passing through a 3rd device later on.
To get your NES Classic in the FEL mode you need to hold the Reset button on the console, press the power button on, wait 2-3 seconds, and then release the power button.
The power indicator on the console should not light up, but you’ll see that it’s in the right mode when we add the USB passthrough.
Go back into the settings page and back to the ports > USB and click the USB icon with the plus sign.
You should now see an option for “Onda (unverified) V972 tablet in flashing mode…”. Click on this one to add it under the Nintendo one we added before, and press OK.
Now that we have the USB devices passing through to the Windows 10 VM, we can fire up Windows 10.
6. Launch Windows 10
In VirtualBox, you should now be back to that main screen that shows MSEdge – Win10_preview in the left pane. Single click it to highlight and click the Start button just above it.
This will start the Windows 10 VM so that we can use it to hack the NES Classic.
Some sites are reporting you may need a password for the VM, so if you do, try Passw0rd! (the 0 is a zero). I did not need a password for mine, but just in case.
7. Download Hakchi2 CE 3.3.0 (or whatever version they are on)
From within the Windows 10 VM, open up the Microsoft Edge browser (web browser) and download Hakchi2 CE 3.3.0 debug (or latest version), from here.
8. Download NES Roms to the Windows 10 VM
I can’t help you with this step, you’ll have to find the ROMs yourself and get them on to the Windows 10 VM somehow. I don’t know all of the legalities, since it’s technically piracy, so you’ll have to find the roms and download them yourself, but it’s not that difficult if you know where to look. My suggestion is just download them all right on the Windows 10 VM from the Edge Browser instead of trying to deal with shared folders and things like that.
9. Flash the Kernel on the NES Classic
The next step is going to be to flash the kernel on the NES Classic so that it can accept roms that aren’t on the system by default.
This is where it gets a little bit tricky, so read carefully.
Make sure your NES Classic is connected to your computer and turn it on.
Open up Hakchi2 CE and click ADD GAMES in the lower left corner.
A window will pop up asking if you’ve already flashed the kernel on the console, click No.
If you haven’t already, click the “Install Driver” button and let the driver for the NES Console install on your machine.
Follow the instructions to put the console into recovery mode by turning off the console, then holding the reset button, pressing power, then waiting 2-3 seconds and releasing the reset button. The light on the console should not come on.
Hakchi should detect that it’s in recovery mode and start the process of flashing the kernel, except it’s going to fail when it tries to reboot the system, so there’s something we have to do while it’s trying to do that.
When the process says that it’s waiting for your console to reboot, go back to your Mac side of things, find the VirtualBox application, click on the Windows 10 VM on the left panel to highlight it, right click on it, and select Pause. This will pause the VM.
Now, in VirtualBox still, go to Settings, Ports, USB, and click that little ‘add usb’ icon on the right of the box. You should now see one that says ‘hakchi’ or similar. Add that one to the box and click ok to exit settings.
Now right click on the Windows 10 VM again on the left panel and resume (or unpause) the VM.
Go back to the VM and wait for the reboot to finish. If it errors out and said that it took a long time to reboot the console, etc… close the window. Unplug the NES Classic, plug it back in, and click “Add games” again.
When it asks if you’ve already flashed the kernel say no (we didn’t since it failed the first time). You should be able to get through the process now without any issues.
It took me hours to figure out I had to add ‘Hakchi’ usb device for passthrough to complete the process, so hopefully this saves you the headaches I endured.
10. Add More Games and Update Artwork
Once the kernel is flashed you should be able to click Add More Games, browse to the Roms you downloaded and then click Synchronize selected games with NES/SNES Mini. And your games should then appear on the NES Classic.
Before you sync be sure to highlight new games and right click and select “Download box art for selected games” to ensure that you have all the artwork appearing on the dashboard of the console.
And that should be it. You should now be able to fire up the NES Classic and see all your new games appear. Although, if you didn’t mess with the folder structure in hakchi, you’ll have to click through some folders to see the games, but it’s easy to figure out, and you can change it if you’d like.
Tip: With the hacking of your NES Classic you now have the ability to reset games from the controller instead of having to get up and go to the console to physically press the reset button. Just press and hold select and the down arrow on the d-pad for a couple seconds and you’ll be brought back to the dashboard.
If you have any questions about this process, or something is confusing (or maybe I left something out), please let me know in the comments and I’ll try to help you out as best I can.
Remember, I take no responsibility if you mess up your NES Classic attempting to follow these instructions.
Also, if you plan on buying one of these consoles, you absolutely need a controller extension. I’m not sure why Nintendo made the controller cables a foot long, but it’s impossible to play comfortably without an extension.