Updated Retron 77 (markdown)

Christian Speckner 2020-01-26 00:28:00 +01:00
parent aa6ee5509b
commit 62357c6013
1 changed files with 2 additions and 39 deletions

@ -117,43 +117,6 @@ The FAT32 partition is wrongly labelled as type 0x83 (linux ext2). As a conseque
**WARNING:** Only use fdisk if you know what you are doing. Don't accidentally mess up your other drives.
# The Future
# SDL2 and Stella 6
## Improving the included version of Stella
The version of Stella included with this device is quite old; version 3.7.5, released in 2012. While it is compatible with most vintage-era games, its support for newer homebrew games is not as strong. As such, updating Stella to the latest version (from this point on known as 'Stella 5') is probably the most important upgrade for this system.
Upgrading to Stella 5 is not currently possible without updating other parts of the system as well. The main issue is that Stella 5 requires version 2 of the [SDL library](http://libsdl.org), and uses hardware acceleration exclusively (Direct3D, OpenGL(ES), Metal, etc). It is not compatible with SDL1.2. Updating the system to use SDL2 requires work in several areas, and for the developer to be very familiar with Linux development, compiling kernels and library software, etc.
### SDL2
SDL2 doesn't directly support the GPU included in this hardware (Mali 400).
* There is a fork of SDL2 with preliminary support for Mali400 at [[https://github.com/mihailescu2m/libsdl2-2.0.2-dfsg1]], with the actual diff located at [[https://github.com/RetroPie/SDL-mirror/commit/ab0cc17ccadb24f2a20deab249c82bcee6f33e69]].
* One would need to compile this fork on the system and debug/test it, as follows: [[https://github.com/cdev-tux/q3lite/issues/6]]. Note that this code *has* been shown to work with Quake 3 at a good framerate, which has much more demanding requirements than Stella 5.
### Mali 400 drivers (kernel-side and client-side)
There is both a kernel-side and client-side driver component required for Mali400 hardware. Depending on the version of the kernel to be used, there are different paths to follow (the first option is preferred, and probably quite a bit easier).
* Using kernel 3.4.113 (currently installed on the system). This kernel is supposed to include all required modules for the Mali400 hardware. It is unclear whether the current build actually compiles these modules into the kernel. If not, one will have to research how to do that (ie, enable the modules in Kconfig, test to make sure they are compiled in and enabled, etc). More information is available at [[http://linux-sunxi.org/Mali_binary_driver]].
* Using a 'mainline' kernel. Allwinner H3 and Mali400 support can also be included in a mainline kernel. More information on this is available [[https://bootlin.com/blog/mali-opengl-support-on-allwinner-platforms-with-mainline-linux]]. Note that if you go this route, you will have to determine all the changes that Hyperkin have done to the current kernel (mainly the sunxi-atari driver) and port it to the new kernel too.
### Stella 5
Once the Mali drivers and a Mali-enabled SDL2 are installed, compiling Stella 5 should be straightforward. At that point, the system will be quite similar to a modern Linux system, and compiling Stella should be as simple as it is on standard Linux.
## Basic requirements for development on this system
As mentioned above, one needs to be quite familiar with Linux development to attempt to upgrade to the latest version of Stella. You will need skills in the following:
* configuring and compiling kernels, as well as testing your results
* configuring and compiling SDL2 (the included link will get you most of the way, but there are always gotcha's)
* installing proprietary drivers onto the system, probably manually (there is unlikely to be an error-free install file, and some manual copying, etc will be required)
* compiling and testing Stella; this is actually the easiest part
As well, while not absolutely necessary, it would be much easier if you could connect to the system while it is running, to inspect it at runtime. For this, you will need a [Serial convertor module](https://www.amazon.ca/gp/product/B072K3Z3TL/ref=oh_aui_detailpage_o01_s01?ie=UTF8&psc=1) to connect to a serial debugger port on the system. More information will follow on how to connect this device once I have one myself.
Finally, while some members of the Stella Team may be able to direct you, answer general questions, etc, our time is limited, and dedicated to actually working on and improving Stella 5 (and beyond). If you decide to take on this project, please consider the amount of work involved and level of experience required.
An updated and cleaned up firmware tree is available [here](https://github.com/DirtyHairy/r77-firmware-ng). This firmware runs Stella 6 contains kernel patches and firmware to enable the Mali GPU and a modified version of SDL2 that runs on Mali without X11 and supports gamepads without udev. In addition, this firmware supports a developer mode that enables SSH access via an ethernet USB dongle.