The Complete Idiot’s Guide to installing Dingux (plus some other facts about the Dingoo) - Using Windoze Edition
V1.2 23 July 2009
SO, WHAT’S ALL THIS ABOUT THEN?
1. What is a Dingoo A320?
It is a Chinese made MP3/Video player, or personal media player. It is apparently marketed and manufactured by Shenzhen Dingoo Digital Ltd., although alternative branded versions of the same device are available (eg: “Chinavision”)
Apart from playing media, the Dingoo emulates the following classic gaming systems:
· Gameboy Advance (GBA)
· Capcom Play System (CPS1/2) 1 and 2
· Sega Megadrive/Genesis
· Nintendo Entertainment System (NES)
· Super Nintendo Entertainment System (SNES)
· SNK NEO-Geo
Every PMP out of
· The Dingoo actually does what its specifications claim. Videos play without conversion, the interface is reasonable, and it is stable.
· All the emulators are playable out of the box. The GBA, CPS1/2 and NES emulators work the best. The Megadrive and SNES emulators are considered the weakest, being prone to slowdown, or graphical glitches.
· It has a proper controls: a dpad, four face and two shoulder buttons, which are critical for classic gaming.
· At about US$83 delivered, it is cheap for a machine which is able to emulate such a wide range of systems. Buy one from here: http://www.dealextreme.com/details.dx/sku.23032~28278619 !
· It is light and small.
· Its battery life is very good. 7 to 8 hours on one charge is common.
· It has enough raw power to emulate most 8/16 bit game systems, including a 400mhz processor.
· It is hackable, now more than ever, with the release of Dingux, which means tht the software on it is likely to improve over time.
· In short, it’s a great machine at a low price as is, and is likely to get better now Linux (Dingux) runs on it!
3. What is firmware?
Firmware normally refers to software embedded in a chip which controls certain key functions of a device.
4. I have heard that the original Dingoo firmware was hacked. What’s all this about?
On 10 April 2009, Team Dingoo released the first Western modified firmware for the Dingoo. The latest version of hacked firmware available at present is ver a320-1.03TD-3. The modified firmware allowed enthusiasts to create customisable themes for the Dingoo’s main menu.
However, the manufacturers of Dingoo have not released the source code of the Dingoo firmware publicly. Without the source code, it has been difficult to significantly modify the original firmware to fix significant bugs which affect the Dingoo’s performance, or to improve the Dingoo’s emulator performance.
The most well documented software bug is the Y/B button bug. In some games, like Super Mario, it is critical to hold down the B button (to crouch) and to press the Y button (to shoot a shell) – resulting in a crouch shoot move. On the Dingoo, pressing Y while B is pressed causes Mario to release the shell and jump, instead of perform a crouch shoot. A workaround for this is normally done by remapping the Y/B keys in the SNES emulator.
The Y/B bug is entirely a software bug, not a hardware fault. (If you install Dingux and run the Snes9x through Singux, this fixes the problem!)
Two other “bugs” relate to:
· Unacceptably slow/non performance in the built in SNES emulator for many games
· Slowdown and graphical glitches (screen “tearing”) in the Megadrive Emulator
6. What is the SDK?
Shenzhen Dingoo Digital has publicly released a software development kit (SDK) for the Dingoo’s native firmware. Some developers have used this SDK to produce homebrew software, such as a Wonderswan emulator, an Odyssey2 emulator, Star Lander, Mindsweeper and a Formula 1 game (check out www.dingoo-scene.com for more on these.) .
However, significant development with the SDK is difficult without the source code of the Dingoo’s firmware, and other technical information becoming readily available. There are also limits to what can be achieved with the SDK alone.
7. So why doesn’t Shenzhen Dingoo Digital release the source code and other technical information?
We don’t know. The economics of Chinese MP4 player manufacturing might mean that if they release it, it would just be ripped off by other manufacturers.
Another likely reason is that they do not control all of this information. The Dingoo contains technology of Ingenic and Chinachip, two large Chinese companies, and runs uCosII, an operating system for embedded devices. From the websites of these companies they are willing to share only certain information publicly. They appear to consider sharing more technical details of their products as detrimental to their interests.
8. What is Linux and why is it important for the Dingoo?
It’s an open source operating system which is able to drive the Dingoo’s hardware, as an alternative to the Dingoo’s built in firmware.
With Linux running on the Dingoo as its operating system, other linux applications can be made to work on Dingoo with less development effort than reverse engineering the Dingoo’s original firmware. Linux is a very mature OS, and there are thousands of applications already available for it.
9. What is Dingux?
Dingux is the name given to the version of Linux which runs on the Dingoo hardware.
In early May 2009, Booboo successfully booted the first Linux kernel on the Dingoo. On 18 May 2009, Booboo publicly released his working Dingux kernel. Several improved kernels have been released since then, with the latest version always here: http://code.google.com/p/dingoo-linux/downloads/list .
The original Linux implementation on Dingoo required the Dingoo to be connected to a PC via a USB cable at all times to launch and run linux.
On 25 June 2009, Booboo released an installer which modifies the Dingoo’s bootcode, so that the Dingoo can boot directly into Linux if the [Select] key is pressed during boot. So the Dingoo no longer needs to be connected to the PC to launch and run Linux. The installation also allows the Dingoo to boot to the original Dingoo firmware if [select] is not pressed, and for this reason, it has become known as the “Dualboot” installer.
10. That’s all very nice, but why do I care about such technobabble?
You don’t need to care about Dingux at all. The native Dingoo firmware works just fine, generally speaking. However, since the release of Dingux, there have been some notable applications released which will only run on Dingux, not the native firmware.
Also, hacking is cool, like the Fonz.
11. What applications?
Waternet, SNES9x, OpenLiero, scummVM, Doom (Prboom), Hexen, Heretic, Transball 2, Reminiscence, MAME4ALL, GNUrobbo (Gameboy emulator), a Sega Master System Emulator …..
12. Is this the tip of the iceberg?
Hopefully!. For example, the GP2x, which was deliberately designed to run Linux, has hundreds of apps available for it. If the Dingoo gains in popularity, similar development effort should follow.
13. OK, you’ve convinced me. How do I get Dingux going?
WHAT’S INVOLVED IN GETTING DINGUX GOING
1. Is it hard? I’m scared!!
Hard is a relative word. If you already have the technical skill to format disks, unzip files, copy files between folders and edit text files in Windows, you won’t find it difficult at all. In fact, if the supplied drivers work for you, the Windows method of installing Dingux is simpler than the Linux installation method (read about that method here).
If none of the above made sense to you, then you might find some of the concepts outside your comfort zone. Persevere! That’s what this idiot’s guide is for, and you might learn something as well. If you generally know your way around a graphical user interface, you will be fine!
2. Can I wreck my Dingoo putting Dingux on it?
The risk of permanently damaging your Dingoo in any way is remote. Make sure your Dingoo is fully charged before flashing to it, and you should be fine.
3. If I put Dingux on, will I be able to run the original Dingoo firmware?
Yes! You will not lose the original firmware. You will be able to select if you wish to run Dingux or the original firmware, each time you reset the Dingoo.
4. There are a few guides out there, and all the relevant Dingux installation files have instructions. Why should I follow this guide?
This guide has been written to be as simple to follow as possible. If you follow the steps in this guide, the result will be a working Dingux installation which automatically boots into a graphical front end (dmenu) and which includes all emulators (including MAME4ALL) developed for Dingux to date.
I hope you will find it easy to follow. You can of course use any other guides on the internet you find useful. They may take different approaches to the steps involved, but they all work.
5. Is the method shown in this guide the only way to get Dingux going?
No, there are a variety of methods which may be followed to achieve the same result.
6. OK, what exactly will we be doing?
Basically, all we will be doing is:
a. flashing the firmware of the Dingoo (using these files: dual_boot_installer_20090628.zip ); and
b. formatting a mini-SD card in FAT32 format, and
c. unzipping the files in either:
2. alternatively, you can use this archive: local.zip instead of the above archive (this archive is maintained by warpedflash, and the latest version can be found here. If a later version is available, you should use it.)
Why is there a choice of archives?
Basically, warpedflash and toddler have (and we are lucky for this!) voluntarily decided to maintain their respective versions for the good of the Dingux community. There are some cosmetic differences between the two archives, and depending on how much time either toddler or warpedflash get to update the files, one may archive have slightly more apps than the other at any given time. Toddler’s version is actually based on warpedflash’s original, but ultimately, they will both work. Don’t get hung up about it and be grateful we have two official “archivists” on the scene! Props to you both, toddler/warpedflash.
7. Why do we need to flash the firmware and prepare a miniSD Card?
When the Dingoo starts normally, it boots straight to the original firmware. The code which boots the Dingoo is embedded in the Dingoo’s hardware, on the NAND Flash, a rewritable memory chip (NB: this is not the same memory chip as the 4GB of flash RAM which is built into the Dingoo). To allow Dingux to run, the boot code on the NAND Flash must be modified (IE: the Dingoo’s firmware must be “flashed”) so that the Dingoo will bypass the original firmware, and boot the Dingux “kernel”. Think of the Dingux kernel as the “core” code of Dingux.
Once the firmware has been flashed, the boot process will look for the Dingux kernel (contained in a “zimage” file), and the kernel will in turn expect to find a certain bunch of special directories on the miniSD card (the “rootfs”). In practice, this simply means we have to copy certain files onto the miniSD card.
8. Oh gawd, I’ve read the above and don’t understand a word of it! What do I do?
Don’t panic. You should be able to muddle through by follow the steps described below, even if you have no idea what you are doing.
9. What do I need to install Dingux with this guide?
This guide assumes you have the following:
a. A Dingoo and its connecting USB Cable
b. A PC
c. A mini-SD Card
10. OK, I’m raring to go! What exactly do I do now?
Follow the steps in the next Chapter!
STEPS TO PUTTING DINGUX ON YOUR DINGOO USING WINDOWS
A. Flash firmware
If you didn’t get this guide in a package with all the required files, get the Dingux files you need
The files you will need are:
· Booboo’s dual boot installer for Windows: dual_boot_installer_20090628.zip
Connect to Dingoo and update drivers if necessary
1. Make sure your Dingoo is fully charged! If you lose power while the Dingoo is being flashed during this step, you could brick your Dingoo!
2. Turn on your Dingoo. Go to the “System Setup” menu, then “About”, and press A. Then press the following key combination: up-right-down-up-right-down. Then you will see a hidden diagnostics screen. Look around and you should see "ILI9325" or "ILI9331" somewhere. If you do not see it, you might have an unknown LCD model and should contact Booboo at: http://www.dingux.com/ . Write down which lcd controller your Dingoo has, "ILI9325" or "ILI9331”.
3. Put your Dingoo in USB boot mode by resetting it while holding the B button pressed. The Dingoo LCD will remain dark.
4. Plug in your A320. If a "new hardware found" dialog shows up, select "No, not at this time", and when you're asked for a driver location use the directory that you unpacked the dual boot files. The driver should successfully install (if it does not, see “Driver Troubleshooting” below). When the drivers have installed, you are ready to flash! Got to Flash firmware..
5. If the "new hardware found" dialog doesn't show up, that means you have the ChinaChip drivers installed. You have to uninstall them. Open the hardware manager dialog, find the device, right click on it and select "uninstall". Unplug your A320 and go to step 4.
The drivers provided in the Dualboot installer will
probably not work for all versions of Windows. Windows XP provides the
best compatibility. Some users of
· Repeat Step 4 on another computer with Windows XP installed
· Use Puppy Linux to do the flashing – follow Chapter 3, Section A (“Flash Firmware”) in the Linux version of this guide: http://www.dingoo-scene.com/TheCompleteidiotsGuidetoDingux1.htm (you can also download the Linux version of the guide in pdf here or download a zipped PDF here )
· Use a Mac – follow the Mac instructions in the readme file of the dualboot installer package.
1. Make sure the drivers have been installed as per step 4 above. Unplug the Dingoo from the PC. Press the Reset button on your Dingoo, and let it boot to the original firmware (do not use the on/off switch).
2. Then, while holding the B button down, press the Reset button to reset the Dingoo again [This ensures that your Dingoo will be put in USB mode]. Plug the Dingoo back into the PC.
3. Open a command shell (Start --> Run --> "cmd"), change to the directory where you unpacked the dual boot files and execute the following commands:
usbtool-win 1 hwinit.bin 0x80000000
This should initialise the Dingoo’s NAND flash, preparing it to be written to. Then type:
usbtool-win 1 zImage_dual_boot_installer_ILI9325 0x80600000 (replace “ILI9325” by “ILI9331” if you have the later LCD type)
4. You should now see your Dingoo launching the flasher script, and a screen like this should appear on it:
5. Follow the instructions on the Dingoo’s screen, and at the end of it, something like this should appear:
6. Your Dingoo will now reboot and you should see this screen on your Dingoo:
(Thanks to yoannd26 and GX Mod for the 3 pictures above!)
However, as you have not prepared the mini SD Card yet, it will boot through to the original Dingoo firmware.
B. Prepare the mini-SD Card
1. Reset Dingoo. Plug into your PC. Wait for your PC to find Dingoo.
2. Press “Windows+e” to open file explorer. Locate the miniSD card and right click on it. Select “format”:
Make sure you select “FAT32”:
4. When the files have unzipped, go to your miniSD Card and rename the correct zimage file FOR YOUR LCD CONTROLLER (either zImage-20090707-ILI9331 or zImage-20090707-ILI9325 ) to “zImage” (right click on file, select “Rename”). You can delete the unwanted zImage file.
That’s it! Unplug and reset your Dingoo while holding down the [Select] key. Your Dingoo should boot into Dingux, automatically launch Dmenu, and you should see this screen:
C. Final tweaking
Actually, you won’t be able to enjoy it too much without adding ROMS to the different emulators. Copy ROMs to the following folders:
Mame roms to local/mame4all/roms
Snes roms to local/games/snes
You also need to add WAD filesfor the various3d shooters. Get the WADS from here - Shareware Wad Pack http://www.mediafire.com/download.php?n31hzdzzwmn (Doom1.wad, Heretic.wad, Hexen.wad and Rise of the Triad data files.)