Jump to content

HP rx5900 series firmware issues cause display problems


Guest The PocketTV Team

Recommended Posts

Guest The PocketTV Team

Users have reported incorrect / garbled display when running PocketTV on the new HP Ipaq rx5900 series.

Since PocketTV uses the same technique used by many games and video application for direct access to the frame buffer, it is likely that other applications and games will experience similar problems.

We don't have actual information about the problem on this device, but apparently it is caused by one of the following:

- The orientation returned in incorrect (orientation 0 should always correspond to Portrait orientation on Pocket PC devices)

- The frame buffer data returned by GETRAWFRAMEBUFFER or by GAPI or the underlying ExtEscape(hdc, GETGXINFO,...) is not in the Portrait orientation (on Pocket PC, GETRAWFRAMEBUFFER and GAPI/GETGXINFO should always return data corresponding to a Portrait-oriented buffer).

Please let us know if you have more information regarding those firmware issues on the HP Ipaq rx5900 series.

Thanks!

Edited by The PocketTV Team
Link to comment
Share on other sites

Guest The PocketTV Team

here are some of the bugs and issues we found in the Rx5900 (a device apparently marketed as a "Travel Companion" and designed to be used in cars):

1) PROCESSOR_INFO: the szVendor string is set to "Smasung Electronics" (sic!!!)

that could cause problems for applications that use specific code when running on Samsung processors. make sure you test against "Smasung" too!

2) SPI_GETOEMINFO returns "Hewlett-Packard Company"

oh good! thanks! this string is sooooo useful to identify this device! and it happens to be a device that software will have to identify in order to work around other firmware bugs.

note that you can use the reg key HKLM\Platform\Name = "NorthStar Platform" to identify the device ...

3) GETRAWFRAMEBUFFER is not implemented. that's ennoying since GAPI does not work well on WM5 devices and is being deprecated.

4) GAPI and the underlying ExtEscape(hdc, GETGXINFO,...) return a buffer oriented in Landscape orientation! on all Pocket PC devices, GAPI/GETGXINFO is supposed to *always* return a buffer in "Portrait" orientation, regardless of the current orientation of the UI.

This issue can cause video applications and games to either crash/freeze, display incorrectly or be much slower (in case they detect the problem but don't know how to work around it).

5) This is the first Pocket PC where orienting the screen in "Portrait" orientation causes the display to be in fact oriented in "Up-side-down" orientation, i.e. causing ChangeDisplaySettingsEx to return DMDO_180. All the other Pocket PC use DMDO_0 when set in "Portrait" orientation.

This issue can cause problems with applications that do things differently depending on the screen orientation. Many such applications have never been tested with DMDO_180 and might not work correctly in that case.

In fact, i remember asking a MSFT engineer at the last MEDC conference if we should worry about making sure that applications should run in the DMDO_180 orientation, and the answer i got was: don't worry about it, the Settings only allow 3 orientations: Portrait (DMDO_0) and Landscape right and left, but not "up-side-down" DMDO_180. That was true at the time, but the advice given proved to be wrong, he should have said: "yes, some device will run in DMDO_180 orientation, so make sure you support it."

thanks, HP and MSFT, for the excellent testing job.

of course this is probably only the visible part of the firmware-bugs iceberg.

Edited by The PocketTV Team
Link to comment
Share on other sites

  • 2 weeks later...
Guest HomerTTR

Hi,

I subscribed to this forum so I could reply to this thread.

I am experiencing similar problems on my HP rx5935 with other applications also (particularly games, for exemple the Nine Hole Golf provided for free on Microsoft WM website).

Do you think this is a firmware problem which can be corrected by HP in a next release ?

Thanks for your help.

Link to comment
Share on other sites

Guest The PocketTV Team

> I am experiencing similar problems on my HP rx5935 with other applications also (particularly games, for exemple the Nine Hole Golf provided for free on Microsoft WM website).

thanks for reporting this. i'm not really surprized to hear that, but it's funny that a Microsoft game is among the applications with problems on the HP rx5900 series.

> Do you think this is a firmware problem which can be corrected by HP in a next release ?

from our past experience with device manufacturers, it is VERY UNLIKELY that HP will do anything about the firmware issues, even in their next release (if there is one).

the best that can happen is that some software developers will adapt their applications to work around the firmware issues on this device. that's what we have done.

it would be nice if device manufacturers (and MSFT) would learn of their past mistakes, but they rarely do, as you can see here (similar issues have happened in the past, and if they had learned, this one would have been caught).

it would certainely be helpful if you could post here (in this thread) the name of all games and applications that have problems on the HP rx5900 series, and that you try to contact the developers of the software and point them to this thread.

Edited by The PocketTV Team
Link to comment
Share on other sites

Guest HomerTTR
from our past experience with device manufacturers, it is VERY UNLIKELY that HP will do anything about the firmware issues, even in their next release (if there is one).

this is exactly what the email support team answered me :D

it would certainely be helpful if you could post here (in this thread) the name of all games and applications that have problems on the HP rx5900 series

Actually I am new to this (this HP 5935 is my very first PDA and I got it a few weeks ago) so I am not sure which bugs are related to GAPI and which aren't.

So far, I noticed display problems with :

- Nine Hole Golf (distributed for free by Microsoft but written by OmniG Software)(with this game the problem was solved by unticking the 2 GAPI related boxes in the options dialog).

- Spb Brain Evolution (this one was clearly unable to read orientation correctly and resulted in displaying the game in 240*240 on my 320*240 screen, with the buttons positions not corresponding to the place on the screen you actually need to tap !).

- Mastersoft Sudoku v2 was also unable to run after an install without issues (and even erased almost everything on my PDA ;) , so this is probably not *only* a display problem).

- Atlantis Redux (crashes when launched from landscape mode, OK if launched in portrait mode then it switches automatically to landscape for playing). Also in this game a small offset problem with video scenes (right 10% portion of the video being displayed on the left of the screen - is this a GAPI issue ?)

For now this is the only games I tried.

Thanks in advance.

Best regards.

Link to comment
Share on other sites

Guest The PocketTV Team
Mastersoft Sudoku v2 was also unable to run after an install without issues (and even erased almost everything on my PDA , so this is probably not *only* a display problem).

this display issue can cause applications to simply not run, so it might be related.

Link to comment
Share on other sites

  • 1 month later...
Guest Tom_VrX

Hi all,

I beleive that GAPI is not supposed to always return portrait screen ratio for DMDO_0.

If the device is native landscape device

(can be tested with ARM Device Emulator

and normal WM5 or WM2003/SE image, just set /video 320x240x16)

then the DMDO_0 means 320x240 !

DMDO_90 means rotated 90 degrees CCW, DMDO_180 = 180 deg. CCW and so on...

You can get the device native display size by using the coredll function:

EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devMode);

The return from this function is not affected by user orientation, it's always the same,

unlike the GetSystemMetrics function.

Regarding optimal renderer, the priority list is as follows:

1. DirectDraw if available

2*. Rather GAPI then RFBI if GAPI will work correct. (on non-VGA, non-rotated screens it will)

3**. RFBI if no GAPI and no DirectDraw

4. GAPI via GETGXINFO if no RFBI and no VGA and no DramBuffering from GAPI

(Dram buffering can be tested using GDI to write a pixel, then try to read it from GXINFO buffer)

5. GDI if nothing else is available

* By using RFBI the OS can't know if it is good to start grabbing another frame, because

the user code doesn't call any DrawingEnded routine.

Some new LCD screens have a built in frame memory, some devices have a HW support

for page flipping (via DMA transfer). On such devices, RFBI access will cause increased

power usage, as well as tearing effect because there is no vSync handling.

** Sometimes it is neccesary to flip the w/h info returned by RFBI and/or GAPI.

This can be easily tested by testing the pitches for sanity, concerning the native

device screen resolution gotten from EnumDisplaySettings.

I hope I'll help shine some light on this resolutions/orientations and OS versions

mess we are dealing with :-))

Kind Regards

Tom

Qsoftz

Link to comment
Share on other sites

Guest The PocketTV Team

thanks.

i didn't know about EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devMode);

Edited by The PocketTV Team
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.