OpenDingux release 2019.04.30

Hi folks,

Here is the first release of the official OpenDingux firmware for the RS-90 (RetroMini). The root FS is based on Buildroot 2019.02.1, the Linux kernel is based on 5.1-rc5.

Download links

The flasher can be downloaded here: Flasher tool download

The toolchain (for developers) can be downloaded here: Toolchain download

Additionally, for Windows users the drivers required for the flasher tool can be obtained here: Windows drivers download

All the sources can be found on the Github page of the OpenDingux project.

DISCLAIMER

Flashing OpenDingux to your RetroMini will permanently remove the native OS, all the games it contains, as well as your savegames. I cannot be held responsible for any damage that this software causes to your RetroMini device or the software it contains. Use it as your own risk.

How to flash

Attention: This flasher has been mostly tested under Linux, and it seems to be a hit-or-miss on Windows. If you cannot flash from Windows, try it from a Linux live-CD.
  1. With the device powered OFF, connect it to your PC through USB.
  2. Power it ON while pressing A. If done properly, the device will now be in USB Boot mode. On Windows, to continue to the following step you will need to have the driver properly installed.
  3. Extract the ZIP of the flasher tool to a directory. On Linux, run flash.sh from the terminal. On Windows, double-click on flash.bat.
  4. The RetroMini should power up, and show the welcome notice of the flasher tool. To continue, just follow the instructions. The flash operation should take a few minutes.
  5. After the installation completed and the device rebooted, OpenDingux has been successfully installed.

Usage

Those who already used a handheld running the official OpenDingux firmware (Dingoo A320 or GCW Zero) will feel at home. The firmware makes uses of the GMenu2X user interface, and OPKs as the format for the applications.

  • The firmware is standalone, and does not come with games nor emulators. These will need to be installed separately.
  • For file transfers, you can either use a FTP software and connect to 10.1.0.2 (anonymous login). Alternatively, you can use a SSH client and connect as the od user. The default password is odrocks.
  • The games or ROMs should be transferred somewhere inside the home directory or a subfolder. The OPK files must be placed inside the data/apps subfolder in order to appear in the menu.
  • The firmware supports overclocking the CPU. A list of frequencies are provided, from 216 MHz to 456 MHz, but I cannot guarantee that your RetroMini will be able to overclock that much. Mine does, though. To choose the frequency at which an application should run, select it in the menu, press SELECT then Edit; the frequency can be selected through the "Clock frequency" setting. Of course, overclocking will reduce the battery life. On the other hand, underclocking will increase the battery life. The default frequency is 360 MHz.

Final words

This project represents more than four hundred hours of work just on my side, all for free. If you value my work, please consider sending me a tip via PayPal using the "Donate" button on the top-right coner of my blog (or if you're on mobile, at the bottom of the page).

  1. #1Slaanesh, 01 May 2019

    Thanks so much looking forward to trying this as soon as my RS-90 arrives. Will port MAME4ALL2 to it ASAP. BTW is there support fir the IPU in this release?

    Reply

    1. #1.1pcercuei, 01 May 2019 (Reply to Slaanesh)

      On this SoC the IPU can only use YUV as its input, and not RGB, which doesn’t make it very useful in our case… So it is not supported for now.

      Reply

    2. #1.2Slaanesh, 01 May 2019 (Reply to Slaanesh)

      I have application level support for the IPU on the Dingoo A320 and Ben Nanonote - both of which use the same/similar jz4720/jz4725 chipset. It’s not ideal but all I do is keep two palettes in memory - one for RGB and the other YUV equivalent. The reason this works well is that MAME uses palette indexes for all graphic bitmaps; the blit to the screen converts the indexes to the host’s RGB (or in Dingoo A320/Ben Nanonote’s case YUV) color space. I’ll just use the same approach for the RS-90.

      Reply

  2. #2Great Crippler, 01 May 2019

    Big thanks on this. Installed easily enough on Windows. Now here’s hoping for anything to install to it. :-D

    Reply

  3. #3Jutleys, 01 May 2019

    Not working on windows installer with the provided instructions drivers are installed goes as far as below then closes down.

    Waiting for 3 seconds, press a key to continue …

    C:\flasher>bin\odboot-client.exe data\rootfs.squashfs data\uzImage.bin data\devicetree.dtb data\ubiboot.bin data\mininit-syspart Detecting OpenDingux… Found Ingenic JZ4750 based device Uploaded 23687168 bytes then does nothing

    Reply

  4. #4XXCoder, 01 May 2019

    Amazing! Bumped some for you. :) Worthy work. Can you re-flash original firmware back though?

    Reply

    1. #4.1pcercuei, 01 May 2019 (Reply to XXCoder)

      Thank you!

      In theory it would be possible to reflash the original firmware. In practice it would require a custom flasher software that I’m not willing to write.

      Reply

  5. #5Onionland, 01 May 2019

    Been playing with it for a bit now, it’s absolutely glorious

    Reply

  6. #6Georgy, 01 May 2019

    Grats! Is there any easy way to backup original firmware to restore it later?

    Reply

    1. #6.1pcercuei, 01 May 2019 (Reply to Georgy)

      Sorry, currently that’s not possible…

      Reply

  7. #7Gojo, 01 May 2019

    On some unit you need to click B instead of A in order for the usb boot mode to work.

    Reply

  8. #8Hugh Jass, 01 May 2019

    I was really excited to try this, but couldn’t get my device to be recognized in Linux (which I tried first) or Windows. Perhaps there are different versions of the hardware? Mine is kind of a smoky gray. Any other tips for getting this going?

    Reply

    1. #8.1pcercuei, 01 May 2019 (Reply to Hugh Jass)

      Did you try with “sudo”?

      Reply

    2. #8.2Hugh Jass, 02 May 2019 (Reply to Hugh Jass)

      I just tried again with sudo on the flasher.sh as well as the other files. It mounts the file system but the terminal still says, “cannot find Ingenic device.” Any other tips would be appreciated, as this hardware is great, just needs a new brain!

      Reply

  9. #9Eric Thomas Bostrom, 01 May 2019

    Thank you so much for your hard work! I’ll dust mine off and give it a go tonight!

    Reply

  10. #10mauricio, 01 May 2019

    Putting roms is not drag and drop?

    Reply

  11. #11Iggy, 02 May 2019

    Windows drivers work fine, however they are not signed properly so to use them you’ll have to disable signature checks for your drivers.

    Boot win10 into safemode with option number 7, install the drivers after going into boot mode and it should work just fine.

    I installed it this morning.

    Reply

  12. #12sipulka, 02 May 2019

    I want to add my Wallpaper - create a PNG file 240x160, trying to write to the folder /usr/share/gmenu2x/skins/Default. I don’t have permission to write to this folder. what am I doing wrong?

    Reply

  13. #13Georgy, 02 May 2019

    After running Power off from menu and turning switch off - it’s dead and doesn’t boot, only green led is on. :( I’ll try reflashing it…

    Reply

    1. #13.1Georgy, 02 May 2019 (Reply to Georgy)

      My issue actually comes from “Waiting for stage1 bootloader to complete operation…” problem discussed out there. I was unable to flash opendingux for the first time because of it, but tried running rs-90 with start or select button (this leads to bootloop when you see logo and reboot), then pressed A and that avoided the waiting issue and I was able to finish the installation as normal. Then I tried regba, smsplus, ftp transfers and used power off menu. After boot - black screen, green led light and nothing happens. Now it seems I can’t reflash it as ‘bootloop’-thingie doesn’t work now and I’m stuck with “Waiting for stage1…”. I also tried flashing from Linux (my old netbook is 32bit, so I had to compile odboot-client, jzboot) but it also ends exactly the same as in Windows.

      Reply

    2. #13.2pcercuei, 02 May 2019 (Reply to Georgy)

      I think you have a version with a different RAM. That won’t work until we add support for it.

      Reply

  14. #14Redz, 03 May 2019

    Hi i was just wondering what is your Retro mini board revision . is there any picture ? also which board revision that is supported on this release . if its the same as mine i am gonna try it. because i kinda afraid by flashing it would be bricked

    Reply

    1. #14.1pcercuei, 04 May 2019 (Reply to Redz)

      Mine is a V2.1. Flashing can’t brick it, if the board is not compatible, the flasher simply won’t run.

      Reply

    2. #14.2Georgy, 06 May 2019 (Reply to Redz)

      Flashing can’t brick it, if the board is not compatible, the flasher simply won’t run. Actually it may brick as I noted in my previous post: I managed to boot dingux installer and completed the installation by running flash.bat from bootloop (holding start or select, then A on blank screen). At least we now know that one should not do this when the flasher won’t flash as supposed by installation manual. Not sure why it has something with the RAM as the dingux was running fine (ftp, regba) until I turned it off. It shouldn’t be working at all if it’s a RAM issue isn’t it? Now jzboot does the first upload steps and waits forever, the retromini is show correctly in Windows as JZ4750 USB Boot Device. I may guess that bootloader is broken or not installed correctly on my retromini and that’s why I see black screen and green led. I wonder if it’s possible to make some standalone test to be uploaded to run with jzboot and see if the retromini able to boot something in current condition otherwise it’s dead. :) I’m not sure why ingenic usbtool is not used to upload stuff to retromini, but it seems not working now. I also know that guys at 4pda.ru made original nand dumps long ago by usbtool but that won’t help as I can’t flash them back by usbtool now.

      Reply

    3. #14.3pcercuei, 06 May 2019 (Reply to Redz)

      @Georgy:

      Well you did not really follow instructions, did you? So your case is a bit particular.

      And yes, it’s a RAM issue - not a hardware problem but configuration problem. When you boot into the original FW the RAM is configured, then if you reboot this configuration is not reset, so the RAM still works; then the flashing process works, but the bootloader flashed to the NAND doesn’t init the RAM properly, so it won’t boot anymore. It’s correctly installed, but it just won’t boot anything.

      As for the rest - the RetroMini is unbrickable, it’s always possible to launch programs from USB. So just keep it in a drawer somewhere until we add support for V3.0 boards.

      Reply

  15. #15Eric Thomas Bostrom, 04 May 2019

    Worked great after I disabled win10 driver signing. It seems like the screen is washed out? It’s a little brighter than it was stock, which was rich with dark darks. Now black is more like mid-gray. Has anyone else noticed this? The unit features and emulation are great, no complaints there. Very happy it all works as it should have new.

    Reply

    1. #15.1pcercuei, 04 May 2019 (Reply to Eric Thomas Bostrom)

      Do you have photos for comparison?

      Reply

  16. #16Nomu, 04 May 2019

    What about RTC and brightness control?

    Reply

    1. #16.1pcercuei, 04 May 2019 (Reply to Nomu)

      RTC is not possible because of the hardware switch - it would reset every time you power it on. Brightness control is supported by the kernel, we just need an app for it.

      Reply

    2. #16.2Nomu, 05 May 2019 (Reply to Nomu)

      And for the RTC there is no workaround possible? Anyway, waiting for the brightness control app! :)

      Reply

    3. #16.3pcercuei, 05 May 2019 (Reply to Nomu)

      There’s a workaround, it’s to never turn off the device ;)

      Reply

  17. #17Ubuntu OD Flasher segfaults on host, 05 May 2019

    Hi

    Many thanx. But I have an issue on Ubuntu. First part works fine, I get asked to continue, and it shows me rs90 v21. Then it flashes something, and then the od-flasher segfaults on the host computer. The retromini part is fine, but the host does not send additional data. Any idea what is going on?

    root@T410:~/flasher# ./flash.sh Found Ingenic JZ4750 based device Uploaded 1496 bytes at address 0x80000000 Waiting for stage1 bootloader to complete operation… Uploaded 4327760 bytes at address 0x81000000 Uploaded 8647 bytes at address 0x81420950 Operation complete. Detecting OpenDingux… Found Ingenic JZ4750 based device Segmentation fault (core dumped)

    Reply

    1. #17.1pcercuei, 05 May 2019 (Reply to Ubuntu OD Flasher segfaults on host)

      Try to compile the binaries for your system: jzboot is at https://github.com/opendingux/jzboot odboot-client is at https://github.com/OpenDingux/odbootd

      Reply

    2. #17.2Retried on Kali Linux with precompiled binaries worked, 06 May 2019 (Reply to Ubuntu OD Flasher segfaults on host)

      Thanx. In the meantime I tried it with the compiled binaries on Kali Linux. It worked there.

      The kernel on the retromini paniced once at the very end of the install. I tried it again, and now I have opendingux running on my system!

      Many thanx!!

      Reply

  18. #18t-x, 06 May 2019

    Hi, someone is reporting screen burn with opendingux, what causes this? and can it be fixed?

    Reply

    1. #18.1pcercuei, 06 May 2019 (Reply to t-x)

      The reason is that the LCD is most likely improperly configured. To fix it properly we need to figure out the exact timings required by the screen, which is really not trivial.

      Reply

  19. #19Laen, 07 May 2019

    OK i get so far tha t the driver signAture is disable in Windows 10. The driver is install and the rs90 is found In the device Manager.

    But every time it hang on “ waiting for stage 1 Boot loader to complete Operation”.

    I try it on 2 different Windows 10 PC and different usb cable.

    What can i Do?

    Reply

    1. #19.1pcercuei, 07 May 2019 (Reply to Laen)

      I guess you have a v3.0 version, which has a different RAM that is not yet supported by the flasher. So just stay tuned until I add support for v3.0 versions.

      Reply

  20. #20JD, 10 May 2019

    Not working with my Chinese-game version. Should probably just throw i away. :(

    Reply

  21. #21JD, 10 May 2019

    Please disregard my last post. I poked around and was able to flash in Linux. Disabled driver signing in Windows, then was able to reflash with the new flasher.zip in the repo just to see if I could.

    Great success. Awesome work. I was ready to throw this thing away.

    Reply

  22. #22Ill send you all my BAT, 11 May 2019

    I have some BAT(basic attention tokens) that I could send you. Its not a lot but eh? here’s a link on how to get set up https://publishers.basicattentiontoken.org/

    Reply

  23. #23s z, 29 May 2019

    hello i just installed the flash and the opk update everything went smooth but when i add any roms and when i try to find them in my retromini i cant see anything please any soultion for that or any hint to do !

    Reply

  24. #24Jutleys, 05 Jul 2020

    RG99 has been released will you add support for it

    Reply

  25. #25VWT Man, 02 Sep 2020

    I can’t seem to get the driver to install properly. I tried on both a windows 7 and a windows 10 machine but have had no luck. In Device Manager my RS-90 shows up as “Ingenic JzSOC USB-DISK USB Device” under the Disk Drives section as well as “D:" under the Portable Devices section.

    I’ve tried updating the driver after tweaking gpedit setttings, disabling safe boot mode, disabling signature checks, booting the computer with advanced options, etc.

    In Device manager I’ll click on the update driver option for “Ingenic JzSOC USB-DISK USB Device”, select the manual option, navigate to “rs90-jzboot-drivers-win” in the “drivers” folder of “System 32”, click the “include subfolders” checkbox, then click next.

    No matter what I do Device Manager tells me the device already has the best (most up-to-date) driver installed.

    I can’t seem to get the device to be recognized properly no matter what I do. Does anyone have a foolproof way to force the correct driver to install?

    Reply