Firmware Updates

The update process depends on which firmware version your Zero is currently running. To check the version, go to the "Settings" tab and start "System Info". Look at the dates on the Compiled on lines.

Older than October 2013: Update to the October 2013 firmware first, then read on below. October 2013: (2013-10-04) Install the special anti-corruption mini-update to fix a data corruption issue that can prevent the full update from succeeding. After that, install the 2014-05-05 update and finally the 2014-08-20 update. May 2014: (2014-05-05) You can install the 2014-08-20 update right away.

You can find installation instructions below the change logs.

OpenDingux Release 2014-08-20

Download: OpenDingux Update for GCW Zero

Image Scaling:

The hardware image processor (IPU) is now used to rescale video to fit the Zero's 320x240 screen. This is already useful for some applications and is an essential step towards HDMI and analog TV-out.

Applications can be modified to request resolutions smaller than 320x240, which will then be scaled up in hardware. This can allow for example some emulators to run a bit faster. By default, scaling will preserve the aspect ratio, but if you prefer to have no black borders even if that means distorting the image, you can switch modes using Power+A.

Applications can also set the key X-OD-NeedsDownscaling=true in their OPK metadata to request the use of resolutions higher than 320x240 which are then downscaled to 320x240. This can help in porting PC applications that need for example 640x480 output resolution. For applications that can render in either low (320x240 or below) or high resolution, we suggest to not set this key and render in low resolution, since outputting fewer pixels is better for performance and battery life.

G-sensor:

A driver was added that makes the g-sensor in the Zero available as a joystick. Applications that want to use this should set X-OD-NeedsGSensor=true in their OPK metadata.

Rumble:

A driver was added for the rumble motor inside the Zero. It can be used via the SDL2 haptic API.

GMenu2X Improvements:

The file selector is now a lot faster when entering directories with lots of files. Also the button repeat rate is now configurable, so you can increase this if you think scrolling is too slow.

Preview images (such as screenshots or cover art for game ROMs) are shown semi-transparently full screen behind the file list. Preview images should be placed in a directory named previews below the directory containing the data files, where the preview image has the same file name as the corresponding data file, but with the file extension .png . For example for my-favorite-game.rom the preview image would be previews/my-favorite-game.png .

The displaying of manuals was made faster, bugs were fixed and support for non-Latin scripts was improved. Unicode support was enhanced and long line wrapping is supported in more places now. Messages appearing on selecting the Power Off/Reboot menu entries make more sense now. There were lots of smaller tweaks, bug fixes and optimizations as well.

Two new translations were added:

Norwegian by Lithium Flower

Polish by Artur "zear" Rojek

Date and Time Changes:

We switched to a different hardware clock (RTC) driver. A side effect of this is that the first time you run the new firmware, the date will be reset to 1970 (the beginning of time in the UNIX world). The easiest way to correct the time is to connect to a WiFi access point, then the right time will be fetched over the network (via NTP). Alternatively, you can manually set the time using the clock application.

When the system time is updated via the network (NTP), it is now properly saved in the hardware clock (RTC) on shutdown; previously a bug prevented this.

A time zone database was added. There is no GUI for it yet, but from the command line you can create a symlink from /etc/local/timezone to the file under /usr/share/zoneinfo/uclibc/ representing your local time zone.

Changes for Developers:

The popular Love2D runtime is now part of the rootfs.

Added libraries: GLM (OpenGL Mathematics), SDL2 (no longer experimental), SDL2_image, SDL2_ttf, SDL2_mixer, SDL2_net.

Removed packages: links, newt, slang.

Other changes:

The button mapping in DinguxCommander was fixed.

When a Zero is used as a WiFi access point (AP), broadcast packets are now routed over WiFi. This allows a LAN-enabled game instances on two devices (for example, two Zeroes or a Zero and laptop) to find the each other.

Enabled support for huge files and EFI partition tables; this improves compatibility with external SD cards with atypical formatting.

The 7zr tool was added, which can extract .7z archives. Together with the tar , unzip and unrar tools which have been available for a while, OpenDingux should be able to unpack all common archive formats.

OpenDingux Release 2014-05-05

Download: OpenDingux Update for GCW Zero

If you encounter " Flashed image is corrupted! " error messages when installing the 2014-05-05 update, there is a special anti-corruption mini-update to fix that issue. Install it and then retry the 2014-05-05 update. Note that this mini-update is intended only for October 2013 firmwares; you can find the firmware version in the System Info application under the Settings tab.

Root file-system changes:

Triple buffering in SDL

Input through joydev instead of evdev for joysticks

Access point mode (ad-hoc WiFi between two Zeros)

Integrated WiFi manager (GCW Connect)

Integrated image viewer (o2xiv)

WiFi notifier (blinks the green LED slowly)

Low-power warning (blinks the green LED fast)

Root file-system based on Buildroot 2014.02

Root file-system now located on system partition

On-demand loading of the network daemons

Added command-line tool to launch OPKs, "opkrun"

Added WiFi modules for recent units

Added GNU Screen

Kernel changes:

Kernel based on Linux 3.12

Watchdog driver (automatic reboot on kernel crash/panic)

Optional joystick interface for built-in controls; an application can request the joystick interface using the new X-OD-NeedsJoystick key

Supports loadable modules

rfkill (Internal USB bus powered on-demand)

Boot splash (press A for verbose boot)

GMenu2X:

UI improvements

Custom fonts supported

New themes

Full navigation with joystick

Launches OPKs with "opkrun"

Power switch daemon:

Fix the Power + X bug (crazy input events after the combo is used)

Sends SDLK_HOME if the switch is quickly flicked

New important libraries:

Allegro 4

OpenAL

Java (JamVM + GNU Classpath)

JavaScript: NodeJS

Lua: lua-jit

SDL2 (experimental)

OpenDingux Release 2014-04-27

This update was retracted because the files it installed could be corrupted while copying and one of the checksum verifications that protects against activating corrupted installs didn't work either.

OpenDingux Release 2013-10-04

Download: OpenDingux Update for GCW Zero

Changes:

Included improvements in OpenGL ES from the Etnaviv project; read details here

Set GPU clock to 500 MHz (was 432 MHz)

Set VPU memory bus clock to 166 MHz (was 333 MHz, but it didn't actually work at this speed); the VPU itself runs at 500 MHz

Print a reminder that the login name is "root" in the network configuration utility

OpenDingux Release 2013-09-13

Download: OpenDingux Update for GCW Zero

Changes:

Added OpenGL ES 1 and 2 support; this is based on Etnaviv and Mesa, so fully open source; read details here

Added network configuration utility under the "settings" tab in gmenu2x; you can choose between setting a random password (recommended) or passwordless login; login name is "root"

Fixed problem where the analog joystick (nub) sometimes wouldn't work

Added file type detection for DOS .bat and .com files

and files Show black screen when switching video mode, instead of leftover graphics data

Screenshots (power + Y) work now for all applications (16 bpp was broken before)

Mouse emulation (power + B) works again

GMenu2x can now be controlled by joystick

Several graphical cleanups in gmenu2x, also added an animation on tab switching

GMenu2x now shows large SD card capacities in gigabytes instead of megabytes

Reduced key repeat rate in gmenu2x

Fixes in the gmenu2x file selector

OpenDingux Release 2013-07-22

Download: OpenDingux Update for GCW Zero

Changes:

Fixed problem where a headphone wouldn't activate if plugged in when an application was already running

Completely turn off sound at minimum volume setting

Reduced pops when starting and stopping audio

Umproved file type detection, in particular for data files used by emulators

Fixed problem where powering off the device by holding the power slider for 3 seconds didn't work in some situations

GMenu2x will pick up new OPK files (uploaded through FTP, for example) without restarting

The file selector in gmenu2x will accept all files by default

Added clock to bottom bar in gmenu2x

OpenDingux Release 2013-07-06

Download: OpenDingux Update for GCW Zero

Changes:

Improved video performance (enabled framebuffer caching)

Made vsync more robust (eliminated glitches on page flipping)

Made the FTP server list hidden files (names starting with a dot)

Improved Unicode support in both gmenu2x and command line tools

Fixed bug that powered off the system if the power slider was raised, released, then raised again soon after

List IP addresses in System Info application

Added unrar command line tool

Added shared memory support (allows more applications to be ported)

First make sure you have a backup of all valuable user data you have on your GCW Zero, such as save games.

Download the most recent updater application above. Transfer the application (OPK file) to the apps/ directory on your GCW Zero. Then start the application from the menu:





You can select an option with the d-pad and confirm your choice with the start button.

While the update is in progress, you'll see progress information being printed showing what the updater is doing. The update process takes a few minutes, please be patient while it does its work, even if you don't see anything happening for a while on the screen. The output should look like this:





When you press start again, the system will restart. After the restart you can check that the new kernel and rootfs were installed in the System Info application:





The compile date for the kernel and rootfs should be equal to or very close to the date of the updater application.

After the update is complete, you can remove the updater application (OPK file).