I've been waiting for years to be able to build an N64 emulator box. Much to my disappointment, the Raspberry Pi 3 just wasn't powerful enough to run the n64 games, so i've been looking around for other options. I finally found what I was looking for... the Odroid XU4. It is roughly the same size as a raspberry pi, but has double the memory, an 8 core processor and gigabit ethernet. This means it has the horsepower to emulate N64 games at full speed. It is double the price of the Pi 3, but so worth it. (note that it does not have built in bluetooth or wifi)
One of the biggest problems with emulating N64 are the controls. there just isn't an easy way to map the controls to a modern controller and have it work with all the games. you can map the c buttons to the right analog stick, which works for games that use them for camera controls, but you can't really play fighting games that way. So, to that end, i decided that using N64 controllers was the only way to go. I figured if i'm going to use n64 controllers, i should just go ahead and put it in an n64 shell. I picked up a dead n64 a while back when i was hoping the pi 3 was going to be capable, so i finally got to put it to good use.
I'd say it is 90% done. I still need to rig up the reset button to trigger a safe shutdown like i did on my SNES pi system and i need to do a little cleaning of the case.
here it is in the current state. other than the cartridge slot and blue LED, it looks stock.

I wanted to have access to some USB ports, just in case, so i mounted two USB 3 extension cables under the Memory Pak door.

I mounted a 3rd USB 3 extension where the AV port used to be. The hole was a little too big because i originally had an HDMI extension mounted there. This is where i will plug in the 128GB flash drive that is full of dreamcast games.

I mounted the odroid unit so the ports are accessible inside the area where the original power supply used to mount. This is where i'm a little disappointing in how it turned out. i had previously mounted an ethernet jack back there, so the opening was cut a little lower on the right than i would have actually needed it.

Unlike the raspberry pi, the Odroid XU4 has a power switch mounted on the board. Since it is deep inside the case, I wanted to relocate it to the original n64 power switch. I hot glued an arcade microswitch to the shell so that the original power button slider would activate it when slid back. This way I can easily power the unit on.

i had to solder the two wires from the switch to the terminals on the original switch on the odroid unit. I didn't really want to have to do this, but it worked out ok.

I used one of the original screw posts to mount the computer, i mounted the other end to a piece of plastic that I hot glued in place. it seems to hold well.

the yellow wires on the left are from an original xbox DVD drive cable, it happened to plug into the gpio header. i had planned on using this to connect a blue power led, but as it turns out, they gpio pins still have power even when turned off, so i ended up removing this at a later step. you can also see the switch for the original reset button is still in there, but not currently connected to anything, i'll deal with that later.

since i wanted to use the n64 controllers, i picked up two mayflash USB to N64 controller adapters. i cut the cords a little shorter and soldered some jumper wires from these adapters to the original controller ports. you can't see it in this pic, but i also attached the power LED to the 5v and gnd on one of these controller adapters so that the light shuts off when the system turns off.

The Odroid xu4 has three USB ports. one USB 2.0 port on the back near the power and HDMI ports, and two USB 3.0 ports. Since this is not enough, i ended up using an Anker 4 port USB 3.0 hub mounted internally. This way i can plug in my two controller adapters, and the two extensions that go in the memory expansion port, and still have one 3.0 port extended to the back for my flash drive. The USB 2.0 port currently holds the wifi adapter.
here you can see how everything (barely) fits inside. Overall, i'm pretty pleased with how this turned out. I still have a little work to do on the software side, but i should have it finished up by the end of the weekend.

There is no port of retropie for the odroid board, but there is one for Recalbox. I have everything installed on a 128gb micro SD card, which contains tons of roms. It currently boots up directly to the n64 gamelist, but you can easily back out to the main menu to select other systems. i probably won't use it much to emulate the other systems, since the n64 controller is a little awkward, but i figured i had the space, i should fill it up.
it currently has full sets for:
NES
SNES
N64
Gameboy
Gameboy Color
Gameboy Advance
Virtualboy
Sega SG1000
Master System
Genesis
32x
Sega CD
Gamegear
Atari 2600
Atari 7800
Lynx
TurboGrafx 16
NeoGeo
NeoGeo Pocket Color
It also has a nice selection of Playstation games to fill out the rest of the space on the SD card.
This board not only has the power to emulate N64, but also the Dreamcast. I was shocked at how well it runs dreamcast games. I have a 128GB USB 3 flash drive with about 130 dreamcast ISOs on it. the n64 controllers are ok for playing dreamcast games, but not ideal. I figured i'll use playstation or xbox controllers if i choose to play dreamcast. I'm mostly concerned with N64 emulation though, so that is what i built this around.