Rewrite button driver - XPERIA X1 Q&A, Help & Troubleshooting

I was wondering, would it be feasible to rewrite the button driver to customize the X1 buttons? I mean even higher level than a key hook. Key hooks are annoying because they interfere with other apps that want to set key hooks. Hot keys are useful, but another application can come along and steal your hotkey. I want to modify the X1 buttons at a much higher level.
One thing for instance about the panel button i have always wanted to know. The panel manager sends out button code 0x00EA. Even if this event is suppressed by a key hook, the panel manager still opens. So I wonder what part of the OS is responsible for this? Is there a button driver dll that can be overwritten? Is the button driver built into the OEMXipKernel (but possibly overwrite-able at the ROM cooking level)?
Basically I want to know if it is possible to rewrite the button driver that actually detects the hardware interrupts from the keyboard/buttons and sends key press events to the OS. Does anyone know if this is possible? People have rewritten/modified things such as the battery and even display drivers. Is this in the same category?

yes there is keboard dll
keypad.dll it "supports" panel manager button, ok, arrows & everything else...
if U could write something like thi, it would be great... i think... I'm maniac of very useful Xperia buttons (there is no other device like sex1, which has so many buttons on front panel... ! it's just great !)
giving users possibility to bind actions (win lock, new process, win key, esc, ok, OK/Close, back, home, etc... to any ! button would be great !), swapping, changing them, different actions for different screens ... GREAT !! I can see !!
I was thinking long time ago about doing such of thing but has no idea how to modify existing keypad.dll (no such great programmer skills) or create new one but in "low level type" ... (interfacing hardware ? :/ noooo idea... ! )
If You'd like my help i could create advanced GUI Configurator of program...

cichy3000 said:
yes there is keboard dll
keypad.dll it "supports" panel manager button, ok, arrows & everything else...
if U could write something like thi, it would be great... i think... I'm maniac of very useful Xperia buttons (there is no other device like sex1, which has so many buttons on front panel... ! it's just great !)
giving users possibility to bind actions (win lock, new process, win key, esc, ok, OK/Close, back, home, etc... to any ! button would be great !), swapping, changing them, different actions for different screens ... GREAT !! I can see !!
I was thinking long time ago about doing such of thing but has no idea how to modify existing keypad.dll (no such great programmer skills) or create new one but in "low level type" ... (interfacing hardware ? :/ noooo idea... ! )
If You'd like my help i could create advanced GUI Configurator of program...
Click to expand...
Click to collapse
Yes it really annoys me that manufacturers dont like to let you modify buttons anymore. I wrote X1BC to modify the buttons but I am tired of higher level methods of trapping keys. I want to go straight to the source.
Let me start taking a look at keypad.dll. I see in my ROM kitchen that it exists as a file (not a module) in OEM drivers. I want to see what the effect of cooking a ROM without it is. Also I will look at references to it in the registry and try to examine dll exports (going to google for software to do this; any free PE analyzers?).

So keypad.dll imports coredll.dll and ossvcs.dll. It exports KBD_Close, KBD_Deinit, KBD_IOControl, KBD_Init, KBD_Open, KBD_PowerDown, and KBD_PowerUp. I dont know what parameters those functions should take though. I want to write a keypad.dll and replace the old one to see when these functions are called.

Found this:
http://read.pudn.com/downloads120/sourcecode/embed/511498/HID/CLIENTS/KBDHID/kbd.cpp__.htm

i cross my fingers... thats sounds great... maybe you can little inspire from X2 keyboard layout maybe dll...

Well.. I dont have an X2 to test that with. :-/
Before I can start experimenting with overwriting the keyboard driver, I need to know how to properly sign drivers. I know that without being signed properly a driver will cause the device not to boot. Can someone tell me how I sign my home cooked driver?
*edit*
Well, keypad.dll doesnt seem to be the low level *driver*. Its just a service. Found this by searching keypad.dll into my kitchen:
Code:
[HKEY_LOCAL_MACHINE\Services\Keypad]
"Prefix"="KBD"
"Dll"="keypad.dll"
"Index"=dword:1
"Order"=dword:15
"Flags"=dword:00010000 ; DEVFLAGS_TRUSTEDCALLERONLY
"DisableKeyLight"=dword:0
"DisableGhostKeyDetect"=dword:0
"ActionDebounceTimeout"=dword:64 ; 100ms
So perhaps my dll doesnt need to signed. I dont even need to replace the old dll. Just point it to my own dll. I just changed "Dll"= to something else and rebooted. Device boots just fine but now the buttons do nothing. Good sign .

some time ago I've accidentally replaced HTC Diamond keypad.dll with Xperia's one (well... i didn't know that with cab that I made, was included keypad.dll didn't notice that ) ... the only issue that came after this change was "no keyboard effect", after I installed one more time the dll but with the right one... the issue gone ...

Just as interesting for what's new? Sorry for my curiosity ... Thank you

I have only done basic experimentation so far. First changed keypad.dll to something else in the registry (something that didnt exist) and as expected the buttons stopped working. I have written a dll to replace it that exports the same functions and made it log every time a function is called. I get attached to many processes and receive some calls to KBD_Init and KBD_IOControl. Nothing in particular corresponds with when a button is pushed yet, but that is probably because I need to respond to KBD_Init by initializing the keyboard. Have not been able to work on it for a while but hopefully I will next week, as I am on winter break from school. Thanks for your interest!
Jon

so we have (via Dependency Walker ):
KBD_Close
KBD_Deinit
KBD_IOControl
KBD_Init
KBD_Open
KBD_PowerDown
KBD_PowerUp
and we don't know how to use them (what arguments to use)... so what can we do with it ? guessing parameters ?

cichy3000 said:
so we have (via Dependency Walker ):
KBD_Close
KBD_Deinit
KBD_IOControl
KBD_Init
KBD_Open
KBD_PowerDown
KBD_PowerUp
and we don't know how to use them (what arguments to use)... so what can we do with it ? guessing parameters ?
Click to expand...
Click to collapse
Look at the link in post 5. Hopefully they are the same. What I am going to do next when I have time is understand that code.

So it looks like those are just the standard exported functions necessary for a service dll. The real meat of what the dll does probably has nothing to do with them. What I need to know is how to recieve keypress info from the keyboard driver and how to inject key events into the OS. Can I just use keybd_event funtion to send key events?..
Looks like I found an answer to that. From MSDN:
http://msdn.microsoft.com/en-us/library/ms646304(VS.85).aspx
The keybd_event function synthesizes a keystroke. The system can use such a synthesized keystroke to generate a WM_KEYUP or WM_KEYDOWN message. The keyboard driver's interrupt handler calls the keybd_event function.
Is keypad.dll the interrupt handler? Or is that something else? It must be. Because if I kill the keypad service no button events get through. I dont see how missing that service would kill the keybd_event function. Off to experiment.
If keybd_event proves to be the correct way to send key events the last question is how to receive interrupts from the keyboard.

I have learned loads over the past day. I Now fully understand the role of keypad.dll it must register to receive the interrupt and use keybd_event to sent keys to the OS. Through disassembly of keypad.dll I have also learned that this role is not simple. This dll has a LOT of code. I dont think I will be able to reproduce everything it does.
I have a new idea however. All I need to do is intercept calls from keypad.dll and decide what to really send and call keybd_event myself. I still achieve the goal of catching key events before 3rd party apps. I can think of two ways to achieve this. One would be to patch keypad.dll to call my own routine instead of keybd_event. Another would by to leave the stock keypad.dll and hook the keybd_event API at runtime. While I have learned loads at how to disassemble dlls and read the assembly, I do not yet know how to modify the import table. On the flipside I do not fully know how to hook APIs. Any help? I would like to go the modify import table route as this seems infinitely simpler.

keyboard driver successfully hooked.
The most reliable button reprogrammer is under way.

Program in private beta.
http://forum.xda-developers.com/showthread.php?p=5272353

Related

Idea for a Useful App - Anything like it?

I was curious if there is an app that will, upon pressing and holding a key such as the PTT key or end key, would subsequently end all running tasks, lock the phone, and put it in standby.
If there is such an app would anyone care to enlighten me? If not, I think there may be a market for such a thing. I could be wrong, I've been wrong before and I'm sure I'll do it again soon.
I tried searching xda with google and the xda search and didn't get lucky. Sorry otherwise.
I must confess that would be very useful. Not being a programmer i don't know if its possible or not. Any ideas anyone??
I have not come across such a function and all I have been looking for is a utility that will allow another button to put my tilt into standby (I find it a little difficult feeling the power button w/o looking)!
perhaps we should ask WAKU (creator of wktask) to see if he can import that excellent software into buttons. He has all functions available thru wktask such as closeall/suspend and he can add lock easily. he hasn't updated as frequently anymore perhaps more people should donate
Ill email him, to see if hes willing to do it!
I, too, have asked about this type of functionality. I'd love to hit the power button or the PTT button and have it close all apps (except for those in an exception list) and put the phone in standby.
The last time I asked about this the best reply was someone suggesting that perhaps a mortscript could be written to do it. I never looked further into it.
its possible, but i have never maked programs for ppc =/.. if someone has an idea, or if it is like c/c++ i can..
I use the excellent and free AE Button Plus.
I have a triple press of the ok button place the phone in standby.
(I have a double press of the ok button launch S2U2 to lock the phone and turn off the display but leave the GPS running)
pjam
Its definitely possible. All the individual components have already been done: You can remap the PTT button, , some 3rd party task managers have "end all" features, and software like S2U2 can easily lock your phone. Perhaps you could rig some sort of script to run them all, or find someone to program up a less jerry-rigged version. I don't think that the app would be all that popular, maybe the script is the best way to go.
I am fairly certain I can do this with an action sender & using one of the keyboard driver shortcuts (Short_Power.lnk). I will have a go at compiling a small actions send proggie & seeing if I can compile the kill arguments into it. I can definitely get you into suspend or stand-by, it's the killing of everything else that getting me. So far I can't get both functions into the same key press.
ekw said:
perhaps we should ask WAKU (creator of wktask) to see if he can import that excellent software into buttons. He has all functions available thru wktask such as closeall/suspend and he can add lock easily. he hasn't updated as frequently anymore perhaps more people should donate
Ill email him, to see if hes willing to do it!
Click to expand...
Click to collapse
The latest wKTask is pretty recent...as of 1/9/2008. here is the link:
http://soft.photoracer.net/docs/wktask_en.html

Establish standard for G-Sensor calibration

Here is an idea: a lot of people are unhappy about the fact that their G-Sensor is out of alignment, and that this may negatively affect apps which may be developed in the future (or which are already under developemnt) and which rely on the sensor for something critical. Though my device does not suffer from this, I can fully understand them!
However, today the only app which uses the sensor is Teeter, for which - frankly - this mis-alignment is not a huge issue! The reason I say this is that this app would fall outside of what I propose below...
So, here is my idea: why don't we set up a simple standard for the G-Sensor calibration, to be stored in the registry in a dedicated set of keys, and develop a quick and simple application to calibrate it and store the values in there (much like was done in BubbleLevel)?
As long as all developers here agree to use these values and stick to the standard... voila! We can all have a calibrated G-Sensor, which any future program will know how to read correctly (by correcting the values it gets with the offsets stored in the Registry to get a perfect reading).
What do you people think (especially all you developers out there)? Anyone care to volunteer a registry location and some key names?
That would be really great
that's exactly what we need...
Instead of using HTCSensorSDK.dll we could create a HTCCalibratedSensorSDK.dll (for example )
Exactly same interface, but calibrated... The developers only would have to change their dll names...
I did the day before a such dll for testing purposes, and its really simple (I even successed in 'calibrating' teeter when overwriting the original one..).
I think this is the thing we have to do...
Other inputs?
Sven
g-sensor not working
after i installed gsen my g-sensor dont work! when i try to play teeter the ball is stuck up and only moves left to right. also it opens my ktcalbum upside down. can the touchflo be reinstalled maybe? any idea?
svenso said:
that's exactly what we need...
Instead of using HTCSensorSDK.dll we could create a HTCCalibratedSensorSDK.dll (for example )
Exactly same interface, but calibrated... The developers only would have to change their dll names...
I did the day before a such dll for testing purposes, and its really simple (I even successed in 'calibrating' teeter when overwriting the original one..).
I think this is the thing we have to do...
Other inputs?
Sven
Click to expand...
Click to collapse
This sounds live a VERY good idea. Do I understand you correctly, that you actually have a basic version of the DLL already done???

Softkeys and D-pad keys problem solved!

Software solution for a hardware problem!
Very often when i press softkey or any d-pad key once, it is interpreted as multiple key press. Other users also reported that problem. I even send my device to repair center in UK, but they repaired everything except that. That is VERY VERY annoying! Sometimes i can't unlock the keyboard because of that.
So to solve the problem, i created an application (without UI) that will not allow pressing any of those keys more than once in period of 200ms (without timer, so your battery will not suffer). You can change that value through configuration file and also the keys that you want to monitor (comma-separated). I tested the application for a day, and it works perfectly!
112 - left soft key
113 - right soft key
37 - left
38 - up
39 - right
40 - down
13 - enter
Suddenly i feel free!
After install, shortcut will be created in \Windows\Startup folder so that it is started every time you restart your device.
When you install the application you will have to start it manually or restart device.
Device becomes usable again if you ignore low memory problem
.NET Compact Framework 3.5 is required!
Enjoy!
Good work and a very usefull app, mine thankfully does not double tap too often but I might give this a whirl.
Thanks for the work!
Seems to work great, thanks a lot
I'm glad you find it useful.
I get the following message when trying to run the htckeyboardfix.exe:
Error:
An unexpected error has occured in HTCKeyboardFix.exe.
Select Quit and then restart this program, or select Details for more information.
This application requires a newer version of the Microsoft .NET Compact Framework than the version installed on this device.
I have a HTC S730 with WM 6.0 (original), phone is just new and no updates available... Did you install a newer version of .NET framwork? (don't know how to find out my version of .NET, OS version is = 5.2.1622 build 18128.0.4.4)
Same problem as bmwheaven here. Are you using a cooked rom?
You need to install .NET Compact Framework 3.5.
Thanks for the heads-up.
Installed the framework and the software, but for me it's not really a solution:
The delay of 200ms is way too much; can't even scroll through the menu's normally.
Tried alot of different delays, but nothing; I want to be able to write fast with the qwerty-keyboard, and only a delay of <50ms would help. But then the device responds twice to keypresses again...
Thanks for trying though, certainly a good try, but quite not good enough.
hi - i wont to test this on my MTeoR, install Framwork 3.5, and now i get this Message:
failed acquiring of the hook
whats means this ??
thx, Andi
bmwheaven said:
Thanks for the heads-up.
Installed the framework and the software, but for me it's not really a solution:
The delay of 200ms is way too much; can't even scroll through the menu's normally.
Tried alot of different delays, but nothing; I want to be able to write fast with the qwerty-keyboard, and only a delay of <50ms would help. But then the device responds twice to keypresses again...
Thanks for trying though, certainly a good try, but quite not good enough.
Click to expand...
Click to collapse
I agree that 200ms is too much if you want to scroll through the menu by fast pressing D-pad buttons, because main purpose of this application is to prevent that. What you can do is press and hold d-pad buttons and when you are close to where you want to be you can use slower multipress way to get right where you want.
Personally, to me this is an excellent solution, scrolling through the menus are not problem at all for me.
I am not sure what you mean when you say "I want to be able to write fast with the qwerty-keyboard". Why can't you? I mean, this application does not affect any other keys except soft keys and d-pad keys.
gosinga said:
hi - i wont to test this on my MTeoR, install Framwork 3.5, and now i get this Message:
failed acquiring of the hook
whats means this ??
thx, Andi
Click to expand...
Click to collapse
It probably means that your device is not application unlocked.
amaric said:
It probably means that your device is not application unlocked.
Click to expand...
Click to collapse
thx for answer, but my device is surley unlocked - i have it for 1,5 years and flashed it with some ROM's from here, and it was an open device - not locked from an operator.
so long, Andi
amaric said:
I agree that 200ms is too much if you want to scroll through the menu by fast pressing D-pad buttons, because main purpose of this application is to prevent that. What you can do is press and hold d-pad buttons and when you are close to where you want to be you can use slower multipress way to get right where you want.
Personally, to me this is an excellent solution, scrolling through the menus are not problem at all for me.
I am not sure what you mean when you say "I want to be able to write fast with the qwerty-keyboard". Why can't you? I mean, this application does not affect any other keys except soft keys and d-pad keys.
Click to expand...
Click to collapse
Ah, maybe I'm doing something wrong then.
Because I also tested this with sending text-messages, and it really skipped a lot of keypresses.
Did I have to change values in the config file myself; does the program respond to all keys if I don't edit the config-file or did you already put the d-pad and softkey configuration in there?
bmwheaven said:
Ah, maybe I'm doing something wrong then.
Because I also tested this with sending text-messages, and it really skipped a lot of keypresses.
Did I have to change values in the config file myself; does the program respond to all keys if I don't edit the config-file or did you already put the d-pad and softkey configuration in there?
Click to expand...
Click to collapse
If you don't change the config file, then program will monitor only d-pad and softkeys. Behavior of any other key is the same with or without the application.
Contact HTC Support
HTC Customer support is not aware of this problem. They urge us all to report the issue with the keys, so it can be escalated to HTC development for a fix.
Please do so at:
http://www.htc.com/europe/CS_Mail.aspx
Hallo
My HTC has the same keyboard problem, and Italian support (sigh!) told me to send to repair....
Tested amaric's software : at the moment works great.
Thank you!!!! You delayed the moment in which I will throw the S730 out of the window!!
tested since 26th august: PERFECT
thank you Amaric: I had the intention to change the phone, but with this application it can be decently used
I am really happy that I could help you guys!
I would also like to say that I sold my s730 and bought s740 because of low memory (I just can't create software to solve that problem ). Although I don't recommend HTC devices easily I must say that s740 is everything that I thought s730 will be. I am very happy with it. Almost no problems at all
I also get "failed acquiring of the hook" on my unlocked S730.
Anyone figured it out?
Look for a software called "hook manager" - install it and it should work.
http://www.mobiion.com/downloads.html#hookmgr

$ 100 Reward for Vibration Application for Hardware Keyboard

Hardware Keyboard - $ 100 Reward
100 USD PRIZE MONEY
Dear All,
I love my X1. The only thing I am not happy with is the (lack of) tactile feedback on the Hardware Keyboard of the X1. As there is little to no 'feel' to when you press the hardware keys.
There is an application out there from Snailslug which produces a small vibration whenever the touchscreen keyboard is pressed... see the following link: http://forum.xda-developers.com/showthread.php?t=450256
Now I am looking for the same thing with the HW keyboard. If anyone out there is up to creating an application (with a very small footprint) that produces a small vibration (around 25ms) after each key on the hardware keyboard is pressed, I will give that person 100 USD as a big thank you. To make it fair, here are the rules:
- Deadline: 31st of August (not that someone comes two years later and wants a prize for an application I dont need anymore
- First application that does not slow down my X1 and provides the requested result will be rewarded
Thanks and all the best,
why did you open a new thread? http://forum.xda-developers.com/showthread.php?t=544306
He want to pay a total reward of $200... I guess...
Or not?
the reward is $100. this thread was created as the last title wasn't 'clear enough' as to what the subject is about. good luck with the application. 100 bucks are waiting
go to advanced edit and change the title of the thread if thats all u wanted to change btw
Next time I know ;-)
............
Was anyone able to come up with an application? Shouldnt be that difficult for those that are able to programm
http://forum.xda-developers.com/showthread.php?t=425063
Maybe this will work...
If so, I want my 100 USD!
casklaverstijn said:
http://forum.xda-developers.com/showthread.php?t=425063
Maybe this will work...
If so, I want my 100 USD!
Click to expand...
Click to collapse
That's different. He wants feedback for when the hardware keyboard is pressed, not the screen.
Features:
- Vibrate always on touch events (mouse down, or mouse up)
- Vibrate only if SIP is active
- Vibrate on Key press (hardware keys)
- Adjustable vibration (duration in ms)
- configuration over command line parameters
- fully event based, so only battery consumption while vibrating
- No runtimes needed (pure C++ application)
- Works with WM 5+ (not 2003)
Click to expand...
Click to collapse
I think this will do it, but i think the dev has stopt al long time ago. But it has the features WDM wants.
Oh..the 100USD is for the Developer...lol
this should be entirely possible and maybe even easy to do, IMO
matthewpapa said:
this should be entirely possible and maybe even easy to do, IMO
Click to expand...
Click to collapse
so expect an app from you then?
Actually I'm not sure this is that easy to do at all.
I thought ok I'll take a look so created a new device application in visual studio, getting the device to vibrate is easy, this is well documented.
Trapping key events when you have a form / control with focus is also easy. The problem comes when you want to trap key events without having a form or focus.
I've read several posts online pointing to coredll.dll, but nothing definitive.
Lol you need a hook. Sure this exists on WinMo just like on desktop Win.
Great comments guys. Looks like there are at least a few willing to put some thought and effort in this. any chance of one of you coming up with the application anytime soon?
Firefall! said:
Lol you need a hook. Sure this exists on WinMo just like on desktop Win.
Click to expand...
Click to collapse
I know I need a hook, which hook, which dll, documented where, that being my point.
I'll have another look at this tonight.
richard.ian.brown said:
I know I need a hook, which hook, which dll, documented where, that being my point.
I'll have another look at this tonight.
Click to expand...
Click to collapse
You never stated so. There is not much to such a hook actually I would create the app myself if I had the means. That's about 5 lines of code, just make the device shake and pass the key on. The only trouble you will run into is that the keys seem to be hooked already, so you have to make sure you don't mess with that and prioritize your function.
Thanks Firewall. Is there anyone out there that would be able to write a few lines of code. It appears to be simple enough, if you can programm (which I cannot) which is why i am asking the pros here ;-)

Blackstone device emulator

Hello all,
i have searched quite a bit for an emulator which mimics the Blackstone on your PC.
I am new to Rom cooking (1 day to be precise) and dont want to risk bricking my own so i wondered if there was something of an emulator which i can use to test Roms.
thanks in advance,
- Mega
same is my case...
No idea if this will do what you want, I'm not entirely too sure how this works.
Windows CE 5.0 Device Emulator
http://www.microsoft.com/downloadS/...12-ca31-4be9-a3bf-b9bf4f64ce72&displaylang=en
WM 6.5 Emulator is here:
http://www.microsoft.com/downloads/...1d-97a8-4f80-bc6a-ae010e085a6e&displayLang=en
But I've no idea how to run a blackstone's ROM on MS's emulator.
I'm trying to do same thing that you want do.
Was checking about it a year ago.
Got no answers
Seems its not possible at the moment.
I created an emulator (at least in looks, I don't think you can do a hardware emulator) for my Touch Pro and used it in Visual Studio 2005 Pro when I played with development.
Basically you have three images:
1. A skin (the chasis of the phone, I found a high res image and sized it properly in Photoshop).
2. A layer of what the skin looks like with all buttons pressed (make the Talk button look like it lights up or something).
3. A mask layer with different colors identifying the buttons (Green = Talk, Red = End, etc.).
In an XML file, you'll define the hex codes for the colors and assign an action. For example, if you used green for the Talk button on the mask image, you would enter something like "00FF00 = Talk", so when the Talk button is pressed in the emulator, the "pressed button image" shows the Talk button being "pressed", and the mask image tells the emulator to bring up the dialer, since green (00FF00) = Talk in this case. I've got VS 2008 Pro now (I tinker, not really much of a developer), so I'm not sure how you do it in the standalone emulator. I'd imagine it's a similar process.
-EDIT- I just read your post again, and I'm not sure how you would change the ROM that the emulator reads, since it reads the MS issued ROM when it boots. Maybe have to compile it as a .BIN file, once again, not sure on that.
visual studio includes one (might be useful if you are considering some developing down the line)
Yea, sorry if I made that unclear to Meganut and the others who were asking, VS includes the emulator in the development environment, so all I had to do was make the Touch Pro skin. I'll work on a Blackstone skin and post the files so you guys can hopefully use it as well in the standalone emulator...I just ordered a T8285 today, so I may want to start playing again, so my gain is your gain. I'll try to get it done tomorrow at work.
WOO HOO...I'M GETTING A TOUCH HD!!
GSXR750K2 said:
Yea, sorry if I made that unclear to Meganut and the others who were asking, VS includes the emulator in the development environment, so all I had to do was make the Touch Pro skin. I'll work on a Blackstone skin and post the files so you guys can hopefully use it as well in the standalone emulator...I just ordered a T8285 today, so I may want to start playing again, so my gain is your gain. I'll try to get it done tomorrow at work.
WOO HOO...I'M GETTING A TOUCH HD!!
Click to expand...
Click to collapse
An HD skin for my emulator would be awesome!
Sorry it took so long. Here is the emulator skin for the Touch HD. You can examine the XML file and PNG images to get a feel for what I was saying in my previous post. I've named the files so that you can drop them in and overwrite the default 800x480 emulator in the 6.1.4 SDK Refresh (the default looks pretty pathetic anyway). If you are insistent on keeping it, just rename the files. Reason for doing it this way is I hate screwing with making a new emulator, and if I want to change images (6, 6.1.4, 6.5), I can just move these four files around I have the same skin using a different ROM.
--EDIT--
I corrected the Home button and uploaded the changes below (I changed the mask file also to make it about four times smaller than it was), but for some reason the "Back" button will not respond, although I've tried multiple masks and hex codes to make at least do something. I'll continue to dig in to the Back button issue, I won't have much time this weekend though.
-EDIT-
Scratch what I said here if you already tried it. Like I said previously, I use VS2008 which comes ready to run, so I'm not sure what is needed to get this to work in the standalone emulator. Maybe some of the guys using the emulator can shed some light?
As some might have mentioned above, to make the MS emulator (or any for that matter) run a different ROM is impossible at the moment.
dwizzy130
dwizzy made a good point, the ROM images used in the Emulator and Visual Studio are as Microsoft created them before any vendor touches them. You can "install" things on the emulator and it will retain everything after soft-resetting, just as a physical device will, but chefs won't be able to create their ROMs in a file useable by the Device Emulator. Maybe some of the brilliant people on here can see if they can tear the BIN file apart...
GSXR750K2 said:
Sorry it took so long. Here is the emulator skin for the Touch HD. You can examine the XML file and PNG images to get a feel for what I was saying in my previous post. I've named the files so that you can drop them in and overwrite the default 800x480 emulator in the 6.1.4 SDK Refresh (the default looks pretty pathetic anyway). If you are insistent on keeping it, just rename the files. Reason for doing it this way is I hate screwing with making a new emulator, and if I want to change images (6, 6.1.4, 6.5), I can just move these four files around I have the same skin using a different ROM.
--EDIT--
Just found that the "Home" and "Back" buttons aren't working, I left them off of the XML definitions. I'll leave the "rough draft" version up here for now so you guys can get a feel for it. Depending on whether you've installed Visual Studio or the Standalone Emulator, you'll have different paths to put these files, so make a note of where you install it.
Click to expand...
Click to collapse
Thanks for that. I created my own, but yours look far better
Just one thing: if one would like to revert to the original skin for whatever reason, it might be better to rename the files to e.g. Blackstone.xml etc.
Any chance to get the home and back buttons working? I'll check if i can find out on my own, but seems you're more experienced with that.
Thanks, glad you like it. I'll check on the Home and Back buttons today.
GSXR750K2 said:
Thanks, glad you like it. I'll check on the Home and Back buttons today.
Click to expand...
Click to collapse
That would be great, thanks a lot.
Meanwhile, i found the buttons, but would be great if you could check/confirm. I did check the back button with AEbutton and it gave me the same code on both physical device and emulator. Not sure about the home though.
<button
toolTip="Home"
onClick="0x3B"
mappingColor="0xE6E6E6"
/>
<button
toolTip="Back"
onClick="0x5C"
mappingColor="0xFFFF4B"
/>
The updated skin has been uploaded (it is at the bottom of page 1).
6Fg8, I had to use 0x3E for the "Home" button (which is the same as End), the 0x3B works as the Left Soft Key. I've made several attempts to get the back button to do something...anything, no matter what mask I use or hex command I assign to it, it just sits there. Since you have some experience with the emulator files, feel free to go in and play with the XML/PNG files and see if you can get it to respond and if you figure out what is going on with it, let me know...my weekend is sort of tied up, so I may not have much time to dig into it over the next couple of days. -EDIT- Maybe you can give me some pointer in this aspect, I've found it doesn't seem to matter if I use "onClick" or "onPressAndHold" if I only assign one hex command to it, as no other advanced menu options are assigned. Have you found that it makes a difference?
GSXR750K2 said:
The updated skin has been uploaded (it is at the bottom of page 1).
6Fg8, I had to use 0x3E for the "Home" button (which is the same as End), the 0x3B works as the Left Soft Key. I've made several attempts to get the back button to do something...anything, no matter what mask I use or hex command I assign to it, it just sits there. Since you have some experience with the emulator files, feel free to go in and play with the XML/PNG files and see if you can get it to respond and if you figure out what is going on with it, let me know...my weekend is sort of tied up, so I may not have much time to dig into it over the next couple of days. -EDIT- Maybe you can give me some pointer in this aspect, I've found it doesn't seem to matter if I use "onClick" or "onPressAndHold" if I only assign one hex command to it, as no other advanced menu options are assigned. Have you found that it makes a difference?
Click to expand...
Click to collapse
Thanks for the skin update.
I tested the back button with AEbutton, see here. This is a great piece of software and lets you redefine keys including custom keys, and you can see what code is sent (at least for the custom keys added). Just installed it on emulator, added a user defined key for the back button and an action ("show actions menu"), and presto - works. Compared with the real device the keycode is identical, so i assume the definition is fine. Unfortunately, the home button cant be captured on the PDA for comparison.
The difference between onClick and onPressAndHold is only when the event is fired. onClick fires on button release, onPressAndHold fires on button press and repeats sending codes. So if the software which receives the key doesnt care, there is no difference.
work great, thanks for this and the updated version!
GSXR750K2 said:
The updated skin has been uploaded (it is at the bottom of page 1).
6Fg8, I had to use 0x3E for the "Home" button (which is the same as End), the 0x3B works as the Left Soft Key. I've made several attempts to get the back button to do something...anything, no matter what mask I use or hex command I assign to it, it just sits there. Since you have some experience with the emulator files, feel free to go in and play with the XML/PNG files and see if you can get it to respond and if you figure out what is going on with it, let me know...my weekend is sort of tied up, so I may not have much time to dig into it over the next couple of days. -EDIT- Maybe you can give me some pointer in this aspect, I've found it doesn't seem to matter if I use "onClick" or "onPressAndHold" if I only assign one hex command to it, as no other advanced menu options are assigned. Have you found that it makes a difference?
Click to expand...
Click to collapse
How to use skin in designer window?
thanks for the skin it looks great. I am new to Visual Studio and so wondered if you could help with two problems I have relating to using the HD skin.
firstly, I get to see it in the emulator but it is larger than my screen and it will not scroll up. can this be overcome?
Second, how do I get to use the skin in the Designer Window so I can see what the screen will be like when placing objects on it?
I've tried many ways but to no avail so hope you can help me.
Thanks
Gary

Categories

Resources