• HomeBoards
  • RulesRules
  • HelpHelp
  • WikiWiki
  • Donate

Author Topic: OpenDingux update - 2013-05-18  (Read 7798 times)

pcercuei (OP)

  • Posts: 1698
    • My devblog
OpenDingux update - 2013-05-18
« on: May 19, 2013, 04:40:29 am »
Dear Frankenzeros users,

Here is a new update of OpenDingux (version 2013-05-18):
https://docs.google.com/file/d/0B9EgGumkJaabdGFicUFRMmdzM1E/edit?usp=drive_web

This update will give you the exact same OS that is going to be shipped with the SE units.
It will update the kernel, the root filesystem, as well as the bootloader.

Changelog:

Kernel:
  • The kernel is now based on Linux 3.9
  • Fixed the corruption on the data partition that used to occur during online resizing
  • For the hackers out there, the serial line now outputs the kernel's debug messages
  • The framebuffer driver now supports 16bpp pixel mode, as well as 32bpp pixel mode
  • Double buffering has been implemented; compile your apps with SDL_HWSURFACE | SDL_DOUBLEBUF to get the maximum performance
  • The LCD now refreshes at a perfect 60 Hz (it was more ~58 Hz before)
  • VSYNC has been implemented. SDL will automatically wait for the vertical refresh inside SDL_Flip(), provided you compiled your app with SDL_HWSURFACE | SDL_DOUBLEBUF. This means: no more tearing

RootFS:
  • Pwswd now uses a INI-like configuration file. If you created your own shortcuts, you may have to remove /etc/local/pwswd.conf
  • The "power off" shortcut has been disabled by default; now, the device will turn off if the power slider is pressed for more than 3 seconds
  • The SD cards are now mounted with the UTF8 option by default
  • SDL_image is now in version 1.2.12
  • SDL_mixer is no longer linked to libmad, which is GPL (that obliged all apps using SDL_mixer to be GPL too)
  • The FAT partitions are mounted with a shorter flush delay, which reduces the risks of corruption if the partition if not cleanly unmounted
  • Added a library, "libini", that can be used to read INI-like configuration files. Python bindings are also provided
  • SDL has been fixed to work correctly with double buffering, when a lower resolution is used (e.g. 320x200)

Bootloader:
  • Boot speed increased from 3.8 seconds to a couple of milliseconds
  • Enabled debug output on the serial line

Misc.:
  • The update process is now much more robust and secure. It verifies that the rootfs and kernel are not corrupted before updating. If the update process fails, it won't leave your OS in a bad state. Finally, if for some reason the new version of the OS doesn't boot or has issues, you can boot the old version of the kernel and rootfs pressing X / Y respectively
  • All the Zeros out there currently have a ~16 MB kernel partition, and a data partition formatted with sub-optimal options. The SE and KS units will have a ~400 MB kernel partition, but more space on their data partition (magic!) thanks to better formating options. This is currently not an issue for Frankenzeros users. When the time will come, a tool will be created to switch to the new format.

Known issues:
  • It is recommended to set the "screen timeout" on gmenu2x to 0. Having the screen turns off while files are transferred via USB may lead to a complete crash of the OS.
  • VSYNC acts as a frame limiter: the apps compiled with double buffering won't go above 60fps. This can be a problem with some games as it disturbs their own frame limiter (based on sound output or timers). The proper fix is to disable the app's frame limiter.
  • With VSYNC, the apps that can't push 60 frames per second will be limited to 30fps (frameskip 1). This isn't bad in itself, because a game running at a constant 30fps looks much better than one running at a variable rate between 30fps and 60fps. The problem is that some apps that have frameskip (as in, almost only emulators, but thanksfully only some of them) may be disturbed by this, as they do not expect to be limited to 30fps.
  • Because of the previous point, the games that don't run at 60fps natively (i.e. 50Hz PAL games) will drop to 30fps... A future update will add a 50Hz mode to address the issue. In the meantime, the apps that need to output at 50fps (and only those ones. Go fix your code!) can be compiled without SDL_DOUBLEBUF to disable the VSYNC. But you'll cry your eyes out because of the tearing...

That's all Folks!

retroman

  • Posts: 44
Re: OpenDingux update - 2013-05-18
« Reply #1 on: May 19, 2013, 06:38:48 am »
Thanks a million :) We appreciate your efforts on this project.

ruffnutts

  • Posts: 2654
Re: OpenDingux update - 2013-05-18
« Reply #2 on: May 19, 2013, 12:07:49 pm »
 flashing it real soon.. your all legends ;D

zear

  • * Moderator
  • Posts: 2381
Re: OpenDingux update - 2013-05-18
« Reply #3 on: May 20, 2013, 04:38:19 pm »
Please note that this firmware release requires this updated wireless gui application: https://docs.google.com/file/d/0B7wD0T-3tQNpVFNxUmtBSHM3anc/edit

ruffnutts

  • Posts: 2654
Re: OpenDingux update - 2013-05-18
« Reply #4 on: May 20, 2013, 05:00:17 pm »
Thanks ;D

RupeeClock

  • Posts: 234
Re: OpenDingux update - 2013-05-18
« Reply #5 on: May 28, 2013, 11:57:32 am »
The lack of 50Hz support is making me wonder how Cave Story fares on the GCW Zero, that game apparently runs at 50FPS on the original freeware build, and more than likely the ports based on that firmware.

With current firmware is Cave Story locked to 30FPS?

zear

  • * Moderator
  • Posts: 2381
Re: OpenDingux update - 2013-05-18
« Reply #6 on: May 28, 2013, 01:09:29 pm »
First, only applications compiled with hardware surface support are the subject to these limitations, second, Cave Story on GCW Zero is not based on the original game code, but rather on an engine rewrite called nxengine. That said, I don't know what framerate nxengine is set to run on.

RupeeClock

  • Posts: 234
Re: OpenDingux update - 2013-05-18
« Reply #7 on: May 28, 2013, 01:41:15 pm »
First, only applications compiled with hardware surface support are the subject to these limitations, second, Cave Story on GCW Zero is not based on the original game code, but rather on an engine rewrite called nxengine. That said, I don't know what framerate nxengine is set to run on.

So if the Cave Story OPK is compiled without the hardware surface support (which it doesn't really need, the game runs very well even on less powerful devices as it is), it should be allowed to run at the 50 FPS it runs at.
Well, assuming the engine rewrite nxengine does run at 50fps like the original code anyway.

zear

  • * Moderator
  • Posts: 2381
Re: OpenDingux update - 2013-05-18
« Reply #8 on: May 28, 2013, 02:46:56 pm »
Correct, then it will run at whatever framerate it can, but without v-sync (so with screen tearing).

RupeeClock

  • Posts: 234
Re: OpenDingux update - 2013-05-18
« Reply #9 on: May 28, 2013, 02:54:46 pm »
Correct, then it will run at whatever framerate it can, but without v-sync (so with screen tearing).
Understandable, of course.
I would imagine most if not all applications from this point on will be compiled with hardware surface support though, it grants too much of a performance boost and that "buttery smooth" 60FPS or 30FPS if it can't push 60.
Just in case Cave Story does run at 50FPS, plus a few odd games that only got PAL releases like Terranigma and Mega Man The Wily Wars, I hope the PAL 50Hz mode gets supported in the firmware soon for correct VSYNC.

Awakened

  • Posts: 96
Re: OpenDingux update - 2013-05-18
« Reply #10 on: May 28, 2013, 09:35:58 pm »
Just in case Cave Story does run at 50FPS, plus a few odd games that only got PAL releases like Terranigma and Mega Man The Wily Wars, I hope the PAL 50Hz mode gets supported in the firmware soon for correct VSYNC.
Many games have 60hz patches you can find if they weren't released in english outside PAL territories. For those two specifically:
http://www.romhacking.net/hacks/541/ - Terranigma
http://www.romhacking.net/hacks/514/ - Wily Wars (it's labeled as a SRAM patch, but it also does 60hz)

RupeeClock

  • Posts: 234
Re: OpenDingux update - 2013-05-18
« Reply #11 on: May 29, 2013, 01:11:30 am »
Many games have 60hz patches you can find if they weren't released in english outside PAL territories. For those two specifically:
http://www.romhacking.net/hacks/541/ - Terranigma
http://www.romhacking.net/hacks/514/ - Wily Wars (it's labeled as a SRAM patch, but it also does 60hz)

That's superb, I knew Wily Wars had an SRAM patch to address the saving method unsupported in some emulators, but I didn't realise it made the game run at 60hz!
Thanks for showing me these.

Awakened

  • Posts: 96
Re: OpenDingux update - 2013-05-18
« Reply #12 on: May 29, 2013, 02:55:39 am »
No problem! It took me some time to find out it did that as well since it's not listed directly on that page.

 

Post a new topic