Page 1 of 1

flipHack of Pocket PC

PostPosted: Aug 30, 2002 @ 1:42pm
by cwpun

PostPosted: Aug 30, 2002 @ 2:37pm
by refractor
I would guess that you're going to be in pretty much the same boat as I am. This will be StrongARM specific here... The way I'd invert the screen would be like this:

make a new physical RAM buffer
copy the current screen into it, but inverted
point the LCD DMA base register DBAR1 at the address of your physical buffer

it'll slow things down with an extra buffer copy in there, but it'd work.

(AFAICR there'd be no way of modifying the direction that the DMA buffer is thrown at the LCD from the original buffer, but I might be wrong).


Note that there are lots of technical pit-falls in there. It sounds easy, but it isn't. (My frame-buffer setup doesn't actually work yet, but I'm working on it and I'm getting ever-closer). As Compaq have been not-at-all-helpful I've been doing "hacky" things to try and figure out what their interrupt handler is doing (or the virtual identifier for the LCD interrupt).

Cheers,

Ref.

PostPosted: Aug 30, 2002 @ 4:46pm
by Dan East
It certainly can be done, as has been proven by JS Landscape. Unfortunately Jimmy Software usually isn't too forthright in revealing their techniques or source code. :(

Dan East

PostPosted: Aug 30, 2002 @ 6:44pm
by Guest

PostPosted: Sep 1, 2002 @ 11:53am
by refractor
As far as I know (I may be wrong), the JS Landscape, etc, work by tweaking the StrongARM's hardware registers... as the 3950 is an XScale device (I think?), I wouldn't expect it to work at all.

I'm still working on the interrupt thing myself, but at the moment I'm still forced to do hacky things like dumping memory and disassembling it to track down what I want to know. Kinda fun :twisted: ... but slow-going. :?

PostPosted: Sep 2, 2002 @ 8:35am
by refractor
It wasn't as hard as I anticipated. For a one-off flip-and-hold it's reasonably simple. If you want something that allows the user standing opposite you to input, then that's going to need a little more work.. you'd have to somehow trap the input before the OS, and munge the coordinates (we're probably back to interrupt handling).

I hacked together a "flip-hack" using the method I mentioned in my previous post (actually I did everything but the screen-flip, 'cos I was feeling lazy), and it works fine (I didn't touch a single driver, either 8) ...but it'll also only work on a StrongARM and has no input).

It could also be done really easily with GAPI. Just invert and copy the screen as your application starts, then blit it at the screen until they let go of the button or whatever.

Cheers,

Ref.

PostPosted: Sep 2, 2002 @ 4:03pm
by Dan East
Refractor, it sounded like he already had the input issue taken care of.

Dan East

PostPosted: Sep 2, 2002 @ 5:30pm
by refractor
Oh yeah. :oops: I really shouldn't scan-read things so much. :? Sorry.