Skip to content

RetroArch for the NGM

acmeplus edited this page Feb 19, 2021 · 5 revisions

Introduction

This is a fork of the main RetroArch base with some patches for compatibility with the NGM.

The NGM board is based on an Actions Semi SoC that is MIPS compatible. The kernel is 2.6.37 and while the board has a vivante GPU for which OpenGL drivers exist, the kernel is too old to support that version, therefore all graphics are rendered via the framebuffer device (/dev/fb0).

The board has many similarities to the Dingoo A320, and therefore it's fairly easy to port other tools to the NGM.

Description

This repository contains the minimal patches required to run RetroArch on the NGM. However, in order to run this you will need to have a rooted NGM console.

How to compile?

RetroArch can be compiled for arm with a crosscompiler toolchain. You have some options:

  • Ubuntu with mipsel- cross compile package
  • Off the shelf crosscompiler package (e.g. Linaro 4.9.4-2017.01)
  • Build your own Buildroot (use a ~2015 based branch)

In order to compile everythying you will need to:

  1. Set up your cross-compilation toolchain
  2. Compile SDL-1.2, libpng, freetype, zlib
  3. Compile RetroArch (you can use something like these flags for configure: --disable-networking --host=mipsel-linux --enable-dynamic --disable-opengl --enable-rgui --disable-pulse --enable-freetype --enable-zlib --enable-sdl)

Pre-Compiled versions

Please read the precompiled binary installation instructions

Latest NGM release: https://github.com/acmeplus/RetroArch-ASP/releases/tag/v1.9.0-ngm-beta1

Known issues

  • Audio can be routed to the headphones or the speakers but not dynamically yet. you need to update the retroarch_standalone.sh script to enable/disable headphone or speaker audio. If you want to enable headphone audio, comment out the following line on the retroarch_standalone.sh script:
# Enable speaker audio (comment out for HP audio)
#echo 1 > /sys/class/sound/sound/pa_enable
  • Audio volume is controlled by the NGM launcher, and cannot be increased/lowered within a retroarch launched game. However, you can access the RetroArch menu (press SELECT + START) and change the volume via menu options.
  • Performance is limited due to the lack of OpenGL acceleration and no support for KMS/DRM directly. This means we cannot easily support libSDL2 and other libraries like EGL.
  • If you want to try mame cores, stay with mame2000 or 2003. Higher versions have performance issues.
  • For some platforms, some cores are better than others. For example, NeoCD core has some performance issues while FBNeo with NeoCD subsystem runs much better

Useful Links: