Category Archives: Android

Nvidia Shield

The unknown fourth player in the console market

Android TV Home

Nvidia Shield has been out for a while now and has become a attractive device for Android based emulation due to is relatively powerful SoC and the application support of the Android TV platform.

History

The Shield series of devices started out with the original Nvidia Shield, which was a portable Android powered device which was capable of streaming games from a desktop PC that had an Nvidia graphics card. Very similar to Sony’s remote Play for the PS3 and PSP, and later PS4 and the underrated Vita. They later evolved into the Shield tablet, and the Shield TV which is a Android TV powered streaming set top box, like the Amazon Fire TV.

Processor

The Shield and the Nintendo Switch share the same processor, the Tegra X1, and X1+ in later revisions which is a die shrink of the original processor. The processor is quite powerful, compared to other Android which rock the Cortex A53 (An in order CPU) the X1 has both the A57 and the A53 with the former being used to run common applications. Together with its Maxwell based GPU makes the Shield an attractive device to run emulators on. There are also Android TV games that are distributed on the Google Play store which will run on the Shield.

Play Store has plenty of emulators

Controller

By default the Shield Pro does not come with the Shield controller (Previous versions did) but can be purchased separately and paired. The controller itself seems to be inspired by the PlayStation Dualshock design with its symmetrical dual analogue sticks, and the face/shoulder button design. The controller also features the regular android navigation buttons to call up the home screen or the app switcher. There is also a microphone and a Nvidia button which calls the Google assistant. Vibration is also present, but I have yet to use this with emulators, it seems Nvidia are using a custom controller API which makes vibration support difficult. Remember this is an Android based device, and features like Xinput are unsupported with out third party applications.
Also shipping with the SHIELD is the remote control, which is shaped like a Toblerone, and is quite comfortable to hold. Here you can navigate Android streaming apps and adjust the volume of the TV or AV receiver if you have one. Soundbars are also supported. A nice feature is it come with a backlight that activated when motion is detected.

Emulation

Retroarch

This was the first thing I installed on the Shield, and whilst I’m familiar with how Retroarch, and Libretro in general, there are a couple of issues.
The way it detects the controller is an issue, since Retroarch will detect the Shield remote and assumes it is some sort of controller and assigns it as controller 1, whilst the Shield Controller is detected as controller 2, which prevents you from navigating the retroarch interface. Also sometimes retroarch will not detect a controller at all, the fix for this was to press the home button which would return you to the Android home screen, then open Retroarch again with the controller, which Retroarch should detect as player 1.
Retroarch can be difficult to set up, I’m not sure if this is an issue with the Android / Play Store version since I can use the PC version without these issues. There’s also an issue where retrarch does not apply changes will often resert some setting back to the default, like the BIOS location or the game save directory.

Retroarch


It’s a shame because Retroarch does have a good list of emulators that can be used and its user interface is one of the best, but the complicated set up on config file issues make it a huge turnoff.

Duckstation (PlayStation)

Sideload launcher

The best PlayStation emulator imo, but there is one huge issue here. Duckstation does not support Android TV officially, it will still run if you sideload the apk but the app runs like its running on a smartphone, and there are issues when navigating the interface using the controller as the emulator is expecting the touchscreen. Its perfectly usable with some compromises having to be made. Sideload launcher will need to be installed to access Duckstation.

  • When scanning for roms, Duckstation will open the Android file browser for you to select a directly to locate your roms, but this app does not support input from a controller. The workaround? Use a USB or Bluetooth mouse, which allows you to control using the mouse cursor. Thankfully you only need to do this one since one you have told Duckstation where your roms are located, it will keep updating the rom browser when you add new files to that directory.
  • On screen buttons, thankfully there is an option to disable this.
  • Memory Card file management, I have yet to find a way to change the directory where Duckstation saves the memory card files, I could do this on the Xbox One version and have all my game saved stored on the external hard disk, but are inaccessible since there is no way to change the directory from what I can see.
  • Lastly just to recap what was mentioned at the start, because its not built for Android TV you have to use sideload launcher in order to open Duckstation, and you have to use the platform tools in order to sideload, along with enabling developer mode.

But this emulator has its merits, since it is able to offer enhancement in a simple menu structure. There are two types of settings, global/default applies the settings for all ROMS you load through Duckstation but you can also specific induvial settings for specific games that override the global settings. useful if a specific game has issues with say, enabling PXGP, you can disable that settings and that will only apply to that game only.

Grid list of roms, cover art can be set but is a manual process
  • PXGP support – Helps reduce or completely remove the polygon warping effects, can also help with the texture popping
  • Upscaling – handled in multiples depending on the games resolution, the Shield can handle 720p, with 1080p for some titles. I should mention that some games like Wipeout 3 run in a high resolution mode (around/near 640×480 compared to 320×240 for most games)
    • I should also mention the Shield being advertised with 4K upscaling capability , but this only applied to video content and not games or any app that generates its own graphics. I’m also not sure if the Shield reserves a few CUDA cores for the upscaling, as even though I have tried disabling the AI upscaling option there is little different with the graphics performance when upscaling, 720p seems to be a limit for most titles.
  • CD-ROM Speed – A faster read speed can be used to reduce loading times which was the main issue with CD-ROM based games, but can cause some games to malfunction since they may be hardcoded around the PlayStations CD drive limitations.
  • Memory Card Management: Each game can be set to have its own memory card and the emulator will create a file for that game. This fixes one of the main issues with the PlayStation, as each memory card is limited to 15 blocks per card with some games consuming multiple blocks. You no longer need to create and swap virtual memory cards as Duckstation will do this for you.
    • But you can set memory card slot 2 to be shared, and you can set certain games to use a specific memory card instead by amending which save file it uses. This is useful for PlayStation games that make use of another titles save file.
  • Overclocking – Another nice performance feature, but can break games if they were hardcoded to run at a specific speed. A must for certain games like Driver, The Shield can overclock the PSX CPU at up to 1.5x the original clock speed without suffering from frame drops. Some titles may be able to go further, depending on how they run in the emulator.

Overall Duckstation is perfectly usable, And I would recommend it over retroarch despite the issues outlined above. A lot of these can be fixed by incorporating a few of the Android TV API’s

ePSXe (PlayStation)

On Android its kind of been left to rot, since the interface isn’t very polished and there are a few emulation issues that crop up here compared to the other emulators. Overall it will work and its on the play store, so you can launch it from the Android TV interface directly, but I don’t recommend it.

M64Plus FZ Emulator (Nintendo 64)

A nice emulator for Nintendo 64 titles, has support for upscaling and has a prebuilt set of plugins that can be tailored to performance or accuracy. The Shield can handle the accuracy settings rather well if your happy with 720p rendering, otherwise higher resolutions can be used if you choose the performance profile. Some of the later N64 games that used their own microcode can have considerable slowdown (Perfect Dark) so you may need to tailor the performace settings to compensate.

There is also a similar emulator known as Mupen64+AE which is an older version of the Mupen emulator, and lacks Android TV support.

Yaba Sanshiro 2 (Sega Saturn)

Named after the mascot of the Sega Saturn, this is an Ok emulator but what lets it down is its limited compatability with certain games. Many Sega exclusives will work fine, with a few thrid party games failing to boot or suffering from issues. Thankfully these games have PlayStation/PC/3DO ports which arguably run better on those platforms, at least for 3D titles.

The user interface is noice and tegrate with the android tv launcher, showing previous played games, and will sort the games in alphabetical order which allows you to navigate and find titles more easily.

MAME4droid (Acade)

This is an Android adaption of MAME 0.139, and uses its romsets. As MAME 0.139 was relased mid 2010, it misses out on any improvements to the different machines that MAME emulates and as a result it struggles to emulate machines from the early 90s onwards, espically 3D arcade boards.

Namco System 11 games are playable but the sound emulation is poor, System 12 games struggle to run at full speed. Forget System 22 or Sega Model 2 or above, as the Shield lacks the CPU power to emulate these in the way that MAME does.

Sixth Generation

Emulators for sixth generation consoles are available like Dolphin and Redream, but due to the Shields aging hardware it is unable to reach full speed in these emulators for the majority of games. I wouldn’t recommend using the Shield for Gamecube titles, rather look to the Wii/Wii U instead which features native comparability. Dreamcast you can sort of get away with if you avoid the problematic titles, but for PS2/NGC/DC i would adisve to get an Intel NUC running either Linux or Windows with a living room friendly frontend. Retroarch can be configured to run at startup if you wish to use that.

External Hard Disks

Internally the Shield has 16Gb of flash storage, of which half is reserved for the operating system and the preinstallerd apps. The Shield Pro come with two USB3 ports for expandable storage for use with an external hard drive.


There are two ways to provision external storage on the Shield:
External storage which mounts the drive for use, as long as its formatted using a compatable file system. NTFS, FAT32 and exFAT are supported. As the name suggests, you can transfter files and access them, providing you give the application the correct permissions to do so. And you can connect and mount the drive to another computer or Android device whilst keeping the file system intact.
Device Storage formats the device using it’s own filesystem, which allows for additional Android applications to be installed to the external hard drive. This pairs the hard drive to the console itself, so you cannot use it as removable storage for use of another Android or any other device without reformatting.

However the Shield implemtation is not perfect and there are a few issues when it comes to pwer management. Android itself has no ability to spin down the hard drive without the use of additional software, unless the drives firmware has support to do this.
The Shield does have the option to power down the USB port when it enters sleep mode, however I found this to be rather abrupt since it will shut off the power to the drive without spinning it down first, which means it has the same effect as unplugging the drive whilst it is still spinning. This may have an affect on the life and health of the drive, since hard disks need to be spun down before they are powered off.
I did look into using the hard drive utilities to spin the drive down after a certain amount of time. I downloaded Seagate Tools to see what was offered but found this only allows control of the drives LED lights. Nothing in regard to the hard drives power management or sleep time.
The only other thing I can think of is if an app is keeping the drive alive by accessing it. I did hear that the photos app will routinely check any external drive for new content, and will check every 20 mins or so. I disabled these to check but found it made no difference, The drive still spins.

Alternatives

Amazon Fire TV: Fire TV set top boxes are based on the Android operating system , and Amazon sold game controllers that were compatible with the Fire TV but these have since been discontinued. Note this isn’t regarding the Fire TV stick which are quite underpowered and are designed for boomers to connect their 10 year old Bush/Alba TVs
Later Fire TV devices use the Cortex A53 which can cause issues with more demanding emulators due to the lack of performance, the second generation Fire TV cube or box are recommended.
Nexus Player: Considered to be the predecessor to the Shield, although now underpowered for most apps and emulators.
Razer Forge TV: A good alternative but sadly discontinued. The Shields is more powerful than the Forge TV and runs a later versions of android.

Non-Android
Atari VCS: Recently released in the US, although there is no confirmed Europe release date. Runs a customized Linux disto similar to Ubuntu which should allow for compatibility with Retroarch and Linux emualtors.
Apple TV: Not much experience with Apple gear, but jail braking is a possibility (Check software version before use) and game controllers can be used. However the software restrictions make this a huge turnoff.
Intel NUC: This is more of a DIY solution, but the form factor of the NUC devices makes them suited for set top box use. Windows would be the first option to install, but SteamOS would make more sense sine it has a TV based user interface as the default, and Debian based Linux distributions typically have good hardware and software emulator support. You would have to use your own controller, or use the Steam controller instead if you go with SteamOS.

Xbox One / Series: Can be a good alternative, they are easily the most powerful but install but setup can be longwinded. Two methods are avaliable, the dev mode or the whitelist. The dev mode route requires you to have a developer account with Microsoft, if you have used MSDN or Dreamspark (Or any Microsoft Higher education program) previously you may already be registered. This will allow you to sideload emulators onto the Xbox itself, but requires you to reboot into developer mode each time. Alternativly you can go the whitelist method, which will allow you to run these emulators in retail / regular mode, but the Xbox must be online and connected to Microsoft whenever those applications are used, and may be removed at any time. You must register with the developer who will have to approve your account in order to download and install the emulator. There are also some file system limitations with both methods, having everything stored on an external drive is reccomended, espeically for roms and game saves.