Author Topic: OpenDingux update 2014-08-20  (Read 10666 times)

mth (OP)

  • Posts: 317
OpenDingux update 2014-08-20
« on: August 20, 2014, 07:26:25 pm »
You know what we did last summer? Work on OpenDingux of course! And this work is now available in a firmware update.

Download and instructions, as well as the release notes, can be found on gcw-zero.com as usual.

Some of the changes enable application developers to do more (hardware scaling, g-sensor, rumble, SDL2, Love2D) so if you're not a developer yourself you'll have to wait for applications to be updated before you can benefit from these.

Emulator users will likely enjoy the improved previews and faster handling of large file lists.

ruffnutts

  • Posts: 2654
Re: OpenDingux update 2014-08-20
« Reply #1 on: August 20, 2014, 08:53:19 pm »
Thanks mth and the team... look forward to testing after my holiday ;D

ruffnutts 8)


Gab1975

  • Posts: 1165
Re: OpenDingux update 2014-08-20
« Reply #2 on: August 20, 2014, 09:43:03 pm »
Thanks for the update! I made a quick test with the new firmware and all seems to work well ! :)

I have a question/curiosity: the IPU can be used only to rescale video or can it be used also to speed up the rendering method? It could be useful in some emulators, like the FBA or the MAME4all...

pcercuei

  • Posts: 1675
    • My devblog
Re: OpenDingux update 2014-08-20
« Reply #3 on: August 20, 2014, 10:20:08 pm »
Only if they render at a resolution different than 320x240.

mth (OP)

  • Posts: 317
Re: OpenDingux update 2014-08-20
« Reply #4 on: August 20, 2014, 11:15:26 pm »
I forgot to mention this: if you want to develop applications that use SDL2_image, SDL2_ttf or SDL2_mixer, get the new toolchain. Or get it anyway because it has a newer GCC, which generally produces better code.

RodrigoCard

  • Posts: 314
    • Mac Joystick Apps
Re: OpenDingux update 2014-08-20
« Reply #5 on: August 21, 2014, 04:25:49 am »
Nice! I will mess with that g-sensor stuff :)

TimeDevouncer

  • Posts: 231
Re: OpenDingux update 2014-08-20
« Reply #6 on: August 21, 2014, 05:17:07 am »
Thanks for your work!!!!

With the new image scaling, the tv-out is near? ;D
Look behind you! A three-headed monkey!

Nebuleon

  • Guest
Re: OpenDingux update 2014-08-20
« Reply #7 on: August 21, 2014, 05:25:55 am »
For those reading this thread and confused about the new metadata keys, X-OD-NeedsDownscaling and X-OD-NeedsGSensor:

Adding X-OD-NeedsDownscaling=true to a .desktop file, by itself, will NOT make an application use the IPU. Please do not unpack OPKs, add this key then repack them. It would be a waste of time. The key is a hint to the system that your code may need some things that would hinder performance if enabled for all applications, such as 640x480 software rendering.

One needs to add the SDL_SetVideoMode call to their code, with over-320x240 dimensions, and set X-OD-NeedsDownscaling (or simply use under-320x240 dimensions without setting the key), to form an OPK that properly uses this feature.

Adding X-OD-NeedsGSensor=true to a .desktop file, by itself, will NOT add accelerometer support to an application. Please do not unpack OPKs, add this key then repack them. It would be a waste of time. The key is a hint to the system that your code will open the g-sensor, which is better to leave off if unused due to its power consumption.

One needs to add the key, then open and use the accelerometer as a joystick with the name "mxc6225" in their SDL event loop in code. Other chip names may appear in the future for this joystick if the factory decides to change the chip.

Thank you.
« Last Edit: August 21, 2014, 05:30:21 am by Nebuleon »

Senor Quack

  • Posts: 225
Re: OpenDingux update 2014-08-20
« Reply #8 on: August 21, 2014, 07:16:01 am »
Thanks for the hard work, GCW geniuses.. Can't wait to add rumble support to my upcoming port and also see what I can do to incorporate accelerometer support into the other upcoming port.  Awesome to finally have SDL2 with more robust alpha blending features and more.

Special thanks Nebuleon, for clarifying how to use the accelerometer and IPU, very useful info.
« Last Edit: August 21, 2014, 07:21:09 am by Senor Quack »

ker

  • Posts: 620
Re: OpenDingux update 2014-08-20
« Reply #9 on: August 21, 2014, 08:16:58 am »
Thank you very much!!!

Nebuleon

  • Guest
Re: OpenDingux update 2014-08-20
« Reply #10 on: August 21, 2014, 08:17:37 am »
In updating my SDL input testers for use with the SDL 2 Force Feedback API (simple example code), I've found that the SDL_HapticRumblePlay function ignores any length set for rumbling, and that the SDL_HapticRumbleStop function reports success but does not stop rumbling.

Is my usage of the Force Feedback API wrong (see commit 68f880f for my implementation), or is there a bug in the driver?

Since this is highly hardware-dependent, I will state that I am using a retail Special Edition GCW Zero.

Here is a log of my SDL 2 input tester running on this firmware:
Code: [Select]
Succesfully opened device
SDL 2.0 input tester starting
fbdev_display succesful
Kernel: Vivante GPL kernel driver 4.6.6.1381
Physical address of internal memory: 00000000
* Video memory:
  Internal physical: 0x00000000
  Internal size: 0x00000000
  External physical: 00000000
  External size: 0x00000000
  Contiguous physical: 0x8c7edf80
  Contiguous size: 0x00400000
native_fbdev: 2 buffers of 320x240
Framebuffer format: 6, flip_rb=0
Framebuffer format: 6, flip_rb=0
Force feedback device 0: "pwm-haptic"
Joystick 0: "mxc6225"
Joystick 1: "linkdev device (Analog 2-axis 8-button 2-hat)"
Starting force feedback as requested by the user
Stopping force feedback as requested by the user

Gab1975

  • Posts: 1165
Re: OpenDingux update 2014-08-20
« Reply #11 on: August 21, 2014, 08:21:39 am »
Only if they render at a resolution different than 320x240.

Thanks for the clarification! If I have interpreted things correctly, the IPU comes in to rasterize the pixels for the video output and it can't help the CPU to emulate the console/coin-op video interface.

Nebuleon

  • Guest
Re: OpenDingux update 2014-08-20
« Reply #12 on: August 21, 2014, 08:44:49 am »
Only if they render at a resolution different than 320x240.

Thanks for the clarification! If I have interpreted things correctly, the IPU comes in to rasterize the pixels for the video output and it can't help the CPU to emulate the console/coin-op video interface.
To be even clearer, the IPU provides resizing of input images that have already been rasterised (by pixel access or SDL_Blit in 2D emulators and games, or by the GPU in 3D games), into 320x240.

Using the IPU provides a speedup compared to software bilinear scaling in emulators such as PocketSNES, ReGBA and FCEUX. It does not provide a speedup to unscaled output in any application.

Gab1975

  • Posts: 1165
Re: OpenDingux update 2014-08-20
« Reply #13 on: August 21, 2014, 09:08:11 am »
To be even clearer, the IPU provides resizing of input images that have already been rasterised (by pixel access or SDL_Blit in 2D emulators and games, or by the GPU in 3D games), into 320x240.

Using the IPU provides a speedup compared to software bilinear scaling in emulators such as PocketSNES, ReGBA and FCEUX. It does not provide a speedup to unscaled output in any application.

Thanks for the additional clarification! :)

surfi80

  • Posts: 252
Re: OpenDingux update 2014-08-20
« Reply #14 on: August 21, 2014, 09:45:43 am »
To be even clearer, the IPU provides resizing of input images that have already been rasterised (by pixel access or SDL_Blit in 2D emulators and games, or by the GPU in 3D games), into 320x240.

Using the IPU provides a speedup compared to software bilinear scaling in emulators such as PocketSNES, ReGBA and FCEUX. It does not provide a speedup to unscaled output in any application.

Thanks for the additional clarification! :)

Please make a more mundane translation
improve MAME, FBA, CPS3, and 32X? work to provide them with developers?
play with the best? die like the rest!

http://www.elotrolado.net/wiki/PS_VITA_Usuarios_EoL

Nebuleon

  • Guest
Re: OpenDingux update 2014-08-20
« Reply #15 on: August 21, 2014, 09:52:27 am »
<removed 2 levels of quoting ~Nebuleon>

Please make a more mundane translation
improve MAME, FBA, CPS3, and 32X? work to provide them with developers?
Which words are difficult to understand after being Google Translated to Spanish?

I must say your "work to provide them with developers?" question is nonsensical, ironically :P

surfi80

  • Posts: 252
Re: OpenDingux update 2014-08-20
« Reply #16 on: August 21, 2014, 10:03:33 am »
<removed 2 levels of quoting ~Nebuleon>

Please make a more mundane translation
improve MAME, FBA, CPS3, and 32X? work to provide them with developers?
Which words are difficult to understand after being Google Translated to Spanish? (I referred to the technical part)

I must say your "work to provide them with developers?" question is nonsensical, ironically :P
this new version will help to substantially improve the emulators?(Sorry if I do not understand the English)
play with the best? die like the rest!

http://www.elotrolado.net/wiki/PS_VITA_Usuarios_EoL

Nebuleon

  • Guest
Re: OpenDingux update 2014-08-20
« Reply #17 on: August 21, 2014, 10:11:40 am »
@surfi80:

Basically:
* if you use an emulator without scaling the image to fill the screen, this firmware will not help
* if you use an emulator and ask it to fill the screen, look for a hardware scaling option in the emulator, because that option will be faster than what was there before

Yes, now your question makes more sense. It only provides speedups if scaling the image to fill the screen.

I have released new versions of PocketSNES and ReGBA, which pcercuei and I used while developing the driver. They both allow hardware scaling if you want your games to be fullscreen.

Seph817

  • Posts: 127
Re: OpenDingux update 2014-08-20
« Reply #18 on: August 21, 2014, 04:03:01 pm »
I have a problem. I have a Zero SE and I can't install this update. I installed the 10-04-2013 firmware. Then, I installed the anti-corruption update. Finally, I tried to install the 8-20-2014 firmware. It says "ERROR! Unable to generate image: required files are missing." Did I forget to do something?

mth (OP)

  • Posts: 317
Re: OpenDingux update 2014-08-20
« Reply #19 on: August 21, 2014, 05:07:01 pm »
I have a problem. I have a Zero SE and I can't install this update. I installed the 10-04-2013 firmware. Then, I installed the anti-corruption update. Finally, I tried to install the 8-20-2014 firmware. It says "ERROR! Unable to generate image: required files are missing." Did I forget to do something?

No, it seems I forgot to do something...  :-[
The boot loader files are missing from the update.

We will release a bug fix within a few days. Right now, as a workaround, you can install the May 5th update first and then the August 20th update after that.