Related
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
CLICK HERE FOR THE XDANDROID 2.2 PROJECT
XDANDROID 2.1 AOSP
Welcome to the official XDANDROID thread which is dedicated to getting Android running on our beloved HTC devices.
So far devices supported are raphael|fuze|diamond|blackstone|topaz|rhodium
Over at the vogue forums, Zenulator has just released an updated version for Android. Codename Eclair, it brings Android to 2.0.1
Since then it has been bumped up and based upon Manup456 port. Many thanks
Stinebd has recently built an 2.1 AOSP build from source for those who want to use a clean 2.1 build. The current builds are based on the AOSP and we are waiting for 2.2 source
Phhusson: has dedicated most of his time helping users and updating kernel to run Eclair and his work for other msm7k devices. However phhusson is not alone as there are also other members working on this. You can find some of them on http://www.htc-linux.org. I've listed some of the developers i know of that currently are working on and they deserve credits and thanks. We also have to note that before this work done there was quite a substantial number of people starting working on linux for our devices. Without them we may not be where we are today. So respect and credits to everyone involved in working on linux kernel for msm devices.
I am not responsible for any damages or problems your device encounters. The build is relatively safe and shouldn't cause any problems.
Dedicated threads
Dedicated threads for other devices running XDANDROID
Diamond500
Raphael800
Blackstone
Topaz
RhodiumThread1
RhodiumThread2
xda-developers signatures
For everyone posting on this thread about problems and issues, I urge you to please specify you're device or more conveniently update you're signature in control panel so it always has the details at the bottom of your posts.
FAQ
This has lots of Q&A and is recommended to go through before posting bugs and problems
XDANDROID project wiki huge thanks to sd73ta for hosting
Android questions and general FAQ
Connect-utb help section
RaphaelEclair-wiki
Media Scanner fix
For people who have problems with no having no ringtones, notification tones or general music problems look here:
MediaScannerFix
Waiting for SDCard error
For people who have problems with sdcard message, add this to your startup
msmsdcc_1bit msmsdcc_fmax=14000000 msmsdcc_nopwrsave
Overclocking Android on MSM7K
MSM7K Android OverClock
XDANDROID boot-Animation | Wallpaper contest
XDANDROID wallpaper | boot animation contest
TheDeadCPU video for XDANDROID
XDANDROID initial-bootup
XDANDROID booting on HD2 NEW!
Thanks to
phhusson, zenulator, Chamonix, Stinebd, Makkonen, MrPippy, cr2, Markinus, bzo, captainoord, glemsom, balsat and anyone else who contribued or who i forgot
Thanks ben_duder for the awesome sig
Donations:
Please consider a donation to the XDANDROID project. We work on this on our spare time, even not on our spare times and every little bit gives us more inspiration and motivation to continue providing you our friends awww* great builds and support
Thanks to from me and phhusson:
R^7Z | auss81 | Sergej Philipp | Malte Lewan | suksanto | Tyler Brixey | axelo | ElbertF
w3bm4st3r | Kenny Maples | Daniel Krebs | Dan Colardeau | Ghostdogg | Gregory Thomas
Vincent Paoli | nim_ayyan | mindfrost82 | Olivier van der Kruijf | Robert Russell
Kamil Kowalski | Tobias Kästle | Scrog | Mehdi Bouzakri | Jay Onisch | Daren Scroggie
Robert Batty | James Frank | Matthias Helfmann | colo-natas
dcb.insomniacsoft.com | Alexis Perez | Ann Marie Steichmann | Cristian Pereyra
Adam Williamson | Benedikt Wieloch | Brad Stage | Paolo Vernazza | CDK Hosting
Haicheng Wang | Jonas Lejeune | Haicheng Wang | Jonas Lejeune
Adrian Kajda | Wilson Seto | Pedro Aragao | babijoee (yup, myself XD)
Spread the word about xdandroid, please feel free to use this sig created by ben_duder
Working:
Touchscreen:
Vibration:
Capacitive Buttons and Navigation wheel
Keyboard
Radio
Brightness Control: Must turn off autolight in WinMo
GPRS (thanks Phhusson )
Microphone works
Charging (phhusson )
Market
Sound ( Phhusson )
debugging breathing led for sleep mode: lets you know when your device is sleeping. This shouldnt affect your battery life at all.
Wifi: was always on when enabled. Now it is used alot less often so the device will be warm at most. (phhusson)
Task killer app.
Android information program.
Gsensor: fixed
Power collapse
Proximity sensor
ramzswap
idle sleep mode
deep sleep: Remove pm.sleep_mode=X from startup.txt if you have it in your default.txt
Accelerometer fix: Now very accurate and shouldn't cause your device to randomly change view. Thanks to mmone3
sms fix: yep the one you guys have all been waiting for ( thanks phhusson )
Android system wide Mic support. Eg: Voice dialer works. (phhusson)
14.01.10
updated apns.xml ( hopefully this should fix some 3g/GPRS issues people are having )
Fuze keyboard layout: (Stinebd)
Updated generic Raphael layout with better keymapping
15.01.10
Power off should work now (MrPippy)
Tested and working on Raph100. Raph110 doesn't work. Weirdly doesnt work for raph800. Please dont post bugs and errors about this or you will be flamed :3
Keyboard arrows for fuze, raph users should now work. (Stinebd)
Fixed layout for 500,800 CDMA
Mapped PTT button for fuze only. (Stinebd)
16.01.10
Old plus new apns.xml merged plus some extras.This should re-enable data connection people had before but broke now. For people who never had data connection this may help or may not.
New RIL: now has geolocation: (Chamonix)
Apps now separate for people who want to choose what to put in Android. Will be placed within AndroidApps folder
Live Wallpaper ( Battery drainer )
Matrix code
Bubbles
Star field
22.01.10
Proper Backlight control: dimming and controlling brightness. No need to change in WinMo anymore (phhusson)
Updated RIL: force cdma option, for cdma topa/rhod since we have no way to detect that they are cdma
Slow sim option to slow down SIM access, I think this might fix the problem of people having crashing android with bad sims (phhusson)
Updated apps
Startup cmds:
force_cdma=1
slow_sim=<time in microsecond to wait between every SIM access)
24.01.10
Clean Build
AndroidApps now consists of 4 folders
Ring Delay set to 0 from 3000 milliseconds
Updated startup configs
System is definantly faster when stripped
(Copy the applications you want to the root of AndroidApps. For people who dont know what core files to copy, i suggest you copy them all)
Core
Games
Media
Others
Nexus One media
Audio
Resource
2.02.10
touch screen calibration tool (makkonen & phhusson)
tilt2 keymap (adamw)
sensors for rhod/topa
LedEffect included in apps for diam/raph (chamonix)
Update by leobaillard
04.02.10
ShootMe ( AndroidApp to take screenshot via shaking phone )
Merging the massive apns.xml direcly pulled from my nexus one into current one. I hope fixes data for some people
Overall smoother scrolling. (Stinebd)
Rhod210 keylayout (adamw)
Double RAM implement in kernel.
08.02.10
hw3d ( MrPippy & Phhusson )
Ramzswap: ramzswap settings from user.eclair.conf are applied ( Phhusson )
Wifi changes ( Phhusson )
No longer need wifi calibration file. it's readen from nand, and is written to data.img ( Phhusson )
Updated ledeffects ( Chamonix )
Calibration file will be removed in future XDANDROID packages.
27.02.10
Bluetooth via new rootfs
Use Home++ as base launcher
Battery Indicator to show 1% increments in notification panel ( Note to ignore it in advanced task killer to keep service alive )
Topaz sensors added ( Markinus )
Latest updated rootfs
Removed gtalk, googlevoice for a very special members request
Added Genie widgit ( thanks for wpbcubsfan for extracting from nexus one )
Changed default lcd.density to 240. Majority android devices are using it even my nexus one
1.03.10
Slightly updated raph800 startup.txt ( Makkonen )
Slightly updated apns list for cdma networks ( Makkonen )
Readded gtalk, gservices apks
Removed topaz custom g-sensor and integrated with default one ( Markinus )
Updated Topaz startup.txt
Fixed Market downloads problem
31.03.10
Added DeskClock apk
Added calculator apk
Readded Gallery apk
Updated Home++, BatteryIndicator, Advanced Task Killer, AndroidInfo
Added OI file manager
Removed Astro File manager ( due to trial expiring and long waits )
Added updated version of Facebook
Updated STARTUP CONFIGS
Removed google Maps to save 3mb space
Bundled with balsat zImage autobuilds without debugging for speed
03.05.10
Based on Stinebd MSM 2.1 AOSP XDANDROID
Updated hosts file to block ads in apps (delta_foxtrot2. Updated version by phaelox)
home++, Battery Indicator, IO file Manager, Advanced Task killer, XDA forum app
Updated ledEffects (charmonix)
Nexus Boot Animation
Nexus media
Fixed Startup configs
11.05.10
GPS ( phhusson , cr2, jonpry )
31.5.10
Readded Google Maps since we have GPS support now
Replacing default Music app modd by cacheinjection
Adding new launcher LauncherPro 0.3.0
Removing home++ as i think LauncherPro is quite awesome
Updated xda app, advanced task killer, OI file manager, Battery Indicator
12.6.10
Updated APN list from cynaogen nexus one rom
Using LauncherPro beta as default launcher
Removing default launcher
Updating music application
Removing apps from /system/app to AndroidApps on SD
Implementing test boot animation from lugiber [ NOT FINAL ]
Removing BatteryIndicator as reading are not accurate and always jumping.
Updating startup files
Removing livewallpaper picker and livewallpapers as they dont work at the moment.
Support for non ascii characters
Nordic raph keylayout
Uploading ext2 file for people using ext2
21.6.10
Updated build.prop
Updated Launcherpro to latest
Added libspeech for voice search support
Added 3D driver for 3D support
Removed Advanced Task killer
Not Working
Camera/videorecord
Removed
light sensor
Added but not yet released
Terms and conditions
Enjoy and remember to post some feedback.
Downloads
Bundles
21.06.10 | 2.1 builds NEW!
XDANDROID.2.1.AOSP.21.6.10
The latest release of XDANDROID for AOSP 2.1 based on Stinebd AOSP build kitchen.
System
Old builds can be located here
htcandroid.xland.cz
4shared.com
Here is a repositories for older releases of XDANDROID and Android1.6 donut files
zImage Autobuild: ( glemsom / balsat )
glemsomAutobuilds
balsatAutobuilds
zImage are updated quite often but just because its updated, it doesn't necessarily mean it will work 100%. If a new zImage breaks and doesn't boot; load a previous working zImage. thanks
Rootfs Autobuild ( Stinebd )
RootfsAutobuilds
Get the latest rootfs here from the rootfs build service provided Stinebd for XDANDROID
Initramfs Autobuilds ( Stinebd )
InitramfsAutobuilds
Get the latest Initramfs here from the Initramfs build service provided Stinebd for XDANDROID
Others
WinMO/Android dual-boot
Yozgatg dual-boot
Yozgatg has released his dual boot WinMo / Android program for everyone to enjoy
LiteWM ROM to autoboot linux
LightNHB boot
MichyPrima has created a lite WinMo that automatically loads haret from your SD card. It loads pretty quick and i can confirm it works It has a boot option so just wait until you see Booting countdown and touch the screen.
Reboot, Shutdown, USB mass Storage and Continue Booting Android
CAB-Install for XDANDROID
Automated cab-install
TheBrilliantMistake has made a convenient program for people out there having installation problems with XDANDROID.
Have a look and see if you like it. If this proves successful we may roll out the updates like this in the future.
Chamonix ledEffects
LedEffects
LedEffects controls how your device reacts to calls, messages, charging and other phone status'
Guide
Place everything into the root of your sd card for Raphael and Everything in your internal memory for Diamond. Remember to copy the correct startup from the startup config folder.
It should look like this
--root--
\AndroidApps
\conf
\media
-haret.exe
-initrd.gz
-rootfs.img
-system.ext | system.sqsh
-zImage
-modulesXXXXXXXXXXX
-startup.txt
Startup|default configs options
Overclocking
acpuclock.oc-freq-khz=XXXXXX ( i use 600000 )
but it very unstable if you try to get higher than 650000-700000
Physical Keyboard layout
physkeyboard=fuze
physkeyboard=raph
physkeyboard=nordic_raph
physkeyboard=tilt2
physkeyboard=rhod210
physkeyboard=rhod100_de
physkeyboard=rhod100_fr
physkeyboard=rhod100_it
physkeyboard=rhod100_uk
physkeyboard=rhod100_nordic
physkeyboard=rhod400
physkeyboard=rhod500
Button wake up
board-htcraphael-navi.wake=X
0 = screen only wakes on power button
1 = wakes on any keypress
Onscreen terminal keyboard
msmvkeyb_toggle= (on/off)
on = displays terminal onscreen keyboard
off = hide terminal onscreen keyboard
Headset
snd.force_headset=X
1=USB headset
2=3.5mm headset
Incall volume adjust
htc_hw.call_vol=X
0-5
Enable/Disable handsfree
htc_hw.handsfree=X
1
0
Recommended best loud and clear voice values are said to be 5/1
htc_hw.call_vol=5
htc_hw.handsfree=1
LCD density / resolution
lcd.density=XXX
210 = 640x480 VGA devices
240 = 800x480 WVGA devices
Load Haret
Load haret by going into FileExplorer and navigate to where haret is and load it.
Navigation
Note: This is a dummy screen i took from google images Its not actually looking like this
1. Power Button
Press: Go home screen
Hold: Switch between Application
2. VolUP
Press: Increase ringtone, media and incall volume
3. VolDown
Press: Decrease ringtone, media and incall volume. Can also set vibrate and Silent.
4. Home Button
Press: Open up setting
5. Call Button
Press: Open recent call
Hold: Launch Voice dialer
6. Back Button
Press: Goes back one previous screen
7. Call end Button
press: Turn off display or end phone call
Hold: Set audio on or off, Airplane mode or turn off device
8. Center Button
Press: Accept or select. Also used as scrolling, zoom in or out.
9. Android Menu tab
Pull up or down to open / close Program tab
10. Notification tab
Pull up or down to open / close notification tab
11. USB
Plug in USB for adb, USB debugging, charging
Useful links
XDANDROID Facebook fan page
Stinebd blog
BugFeatures and Request
Phhussons git repo
Phhusson wiki
Nice to see someone contributing for the Raphael side of the forum, as i always felt why is support so good on the Vogue for Android? Why does Sense UI, most Android related etc. work on Vogue, well nvm. Looking towards the new build, nice work.
[email protected]
RAPH110 not working
I had tried it two days ago with kernel 2009-12-13 and the original files and got freeze at the setup screen on my RAPH110.
Procedure was as depicted and after deleting data.img.
At the top of the frozen screen there was the "no network" sign and I did not get the usual sounds of GSM network handshake in my loudspeakers so the hang seems to be in really early stage. That was weird enough to mention because on donut the radio turns on before the GUI comes up.
It could be Android initializing hardware that our kernel does not yet support. All i can think of is GPS and camera. But i'm going to stick with GPS for the time being. As data connections can be disabled and other hardware is at a functional stage.
my device is resetting at the android splashscreen, I had one time where I've seen the setup page. but then freeze and reset...
I don't know if its a problem but my diamond isn't detected in this build, it's detecting a vogue. So probably its loading false drivers?
the recognition is in the rootfs
These are really good news!
I'm glad to see some one looking into this! I own a raph100 and (needless to say) i got no further than you guys. But is there some way i can provide information? I'm no programmer but if there is any way i can help let me know!
/P
will try this on my diam100 ... i will only have to change the system.sqsh right ??? and keep all the other files
TQ
cruzzmz said:
will try this on my diam100 ... i will only have to change the system.sqsh right ??? and keep all the other files
TQ
Click to expand...
Click to collapse
I hope my guide was easy to understand . Its pretty much like any other build. The two main files are system.sqsh and rootfs.img. Kernel is always from glemsom autobuilds and the basefiles should provide the rest.
Razzee said:
my device is resetting at the android splashscreen, I had one time where I've seen the setup page. but then freeze and reset...
I don't know if its a problem but my diamond isn't detected in this build, it's detecting a vogue. So probably its loading false drivers?
the recognition is in the rootfs
Click to expand...
Click to collapse
same behavior when recognizing diamond.
is there a logfile anywhere or an option for one? so that we can see at what task it fails?
You can setup adb, which will let you see what task is being run. I've been reading into it and will set it up soon. As this would surely give us a better detailed diagnosis.
Eclair on RAPH100
Tested on my RAPH100 and got stuck on the setup screen too :-(
Offering a Diam100 to test
Hy guys! I offer a diam100 to test. Im not much of a programmer.
I offer my diam100 to do any test. At the moment i've tried and when i have "android" letters on screen, after 20 seconds the system reboots and enter into Windows mobile again. I'll be awake, every new version i'll try it and post feedbacks. Thanks for building.
Jordi
Spain
pik0n said:
At the moment i've tried and when i have "android" letters on screen, after 20 seconds the system reboots and enter into Windows mobile again.
Click to expand...
Click to collapse
Same problem here, after the SMD ch 0 closing -> opening and SMD ch 0 opening -> opened messages it resets.
I haven't tried the kernel flashing from the androidinstall package, for I'm a bit scared to brick my phone (though I'm not scared to flash it when I know it's quite safe )
Greetz
p.s. running on wm 6.5.3 (28011) if it matters.
Anyone have any luck with ADB, Windows7 and XP both say the android is an unrecognized device and it won't allow me to use the usb_android drivers that came with ADB.
jamen said:
Anyone have any luck with ADB, Windows7 and XP both say the android is an unrecognized device and it won't allow me to use the usb_android drivers that came with ADB.
Click to expand...
Click to collapse
nvm, i was missing 'board-htcraphael.adb=1' in the startup.txt almost got it working now!
it's pity i can not download all files.
Hi, since the kernel is shared between raph, diamond & blackstone, I tried it on my blackstone.
It did not work either, but I managed to save the debug output.
I've attached it here, in case it helps you.
aavan said:
Hi, since the kernel is shared between raph, diamond & blackstone, I tried it on my blackstone.
It did not work either, but I managed to save the debug output.
I've attached it here, in case it helps you.
Click to expand...
Click to collapse
What occurs to me is:
Code:
12-18 13:35:09.058: INFO/ActivityManager(160): Start proc com.android.setupwizard for activity com.android.setupwizard/.SetupWizardActivity: pid=221 uid=10023 gids={3003}
12-18 13:35:09.228: ERROR/jdwp(221): Failed sending reply to debugger: Broken pipe
and later at the end:
Code:
12-18 13:35:17.428: DEBUG/BT HSHFP(210): Starting BluetoothHeadsetService
12-18 13:35:17.478: DEBUG/MobileDataStateTracker(160): default Received state= DISCONNECTED, old= DISCONNECTED, reason= gprsDetached, apnTypeList= default
12-18 13:35:18.438: DEBUG/GoogleLoginService(243): onBind: Intent { cmp=com.google.android.googleapps/.GoogleLoginService }
12-18 13:35:18.458: DEBUG/dalvikvm(210): GC freed 3317 objects / 237640 bytes in 895ms
12-18 13:35:18.528: WARN/GoogleLoginService(243): Device has no accounts: sending Intent { act=com.google.android.googlelogin.LOGIN_ACCOUNTS_MISSING }
It looks like the last sequence of actions were to find out there is no google account set up, with the reaction to call the Intent googlelogin with LOGIN_ACCOUNTS_MISSING. I guess the right reaction to that would be to request for login data.
Not that does not seem very hardware dependent to me so I'd rather bet the the freeze is due to something initiated earlier, maybe "Starting BluetoothHeadsetService". Looking at what happens in that process (pid=210) this looks like a weird path:
Code:
12-18 13:35:16.008: DEBUG/(210): unable to unlink '/data/data/com.android.phone/shared_prefs/_has_set_default_values.xml.bak': No such file or directory (errno=2)
Where is /data mounted and was there something created in /data/data?
Are you interested in making or editing a CHT widget? To make a widget for Co0kie Home Tab 2.0.0 is not such a difficult job as you may think, I tell you by experience. I have no previous formation in programs or informatic code but i could make a few widgets(*) and I would like to share this experience with you. This is not so altruistic work, I am expecting a huge amount of widgets made by all of you to install and enjoy in my brand-repaired HD2
Co0kie Master has allready published a guide for making a CHT widget (it is into the widgets kitchen); also Genius_Rat_2665 has made a tutorial for making a cht clock widget, so -the third time lucky- lets bring here all that knowledge and try to make a simple widget step-by-step. Also this could be a good place to share and learn each other some code for widgets. Things like how to make an blinking element, how to change number in text, how to read from the registry, etc.
(*) What is for sure is that no one widget I could ever do without the help of others. Lets start quoting the existing Co0kie's guide:
Here is a guide on how to build your own widget for CHT.
I decided to break this up into 3 parts.
The kitchen section is a brief description of the kitchen structure and batch files.
The guide section will tell you how to build your own widget and make a cab to install it.
The "how it works" section will tell you what's going on in the background - why the system is the way it is.
#####################
*** 1) Kitchen ******
#####################
Just a few words about the kitchen folder structure:
- Workspace - here you'll find all the raw files that are being worked on currently
- Tools - all the needed tools
- deploy - just a little temp dir used by the batch scripts to compile and deploy files directly to your device
- cab - the cab file and setup.dll
- cab\_files_final - all the final compiled files that will need to be inside the cab
The batch files:
These files automate the process of editing manila files.
Connect your device to your PC via ActiveSync to be able to run the batches.
z_init.bat - You need to run this one before starting. You just need to run it one time. It will copy restartmanila.exe to you device.
_Deploy_to_device_in_dev_mode.bat - this batch will:
1) compile the lua files from \workspace\_lua and copy them to the deploy folder
2) copy all files from \workspace\mode9 and other \workspace\ subfolders to the deploy folder
3) use rapicopy.exe to copy everything from the deploy folder to \windows on your device (it's set to overwrite exitsting files)
4) restart manila on your device
_Generate_files_for_cab.bat - this will compile and copy the workspace files but it will not deploy them to your device,
instead it will copy them to \cab\_final_files
it will also rename the base mode9 and lua files to CHTmode9 and CHTlua - more on this in the "how it works" section
[[ It also needs to be modified the files _Generate_files_for_cab.bat & _Deploy_to_device_in_dev_mode.bat to addapt them to your own widget. Click with the right button of the mouse over the files and select edit, then change the name of the widget (PoyTEST.lua & PoyTESTtranslation.lua in the attached example) and the corresponding manila files ]]
[[ Tools folder includes m9editor for the edition of mode9 files, notepad2 for the edition of the Lua files, CFC_GUI for the qtc files (graphics), manilaHASH to obtain the right manila names corresponding to .luac files, and some other .exe files used automatically by the kitchen. ]]
################################
*** 2) Making your widget ******
################################
Guide - how to make CHT addon widgets:
First of all, because you will be developing, you need to turn on CHT's dev mode.
Open the reg key HKCU\Software\HTC\Manila\ and create a DWORD value, call it "CHTI.AddonWidgets.DevMode" and set it to 1.
This will allow you to deploy and test your widget directly from the kitchen.
[[ This is very important as you do not need to create and install the cab for test the widget, just using DevMode the widget will go from \workspace\ directly to your device, so you can make changes and see results easily. ]]
Now proceed to build your widget. I suggest you use the analog clock addon as a base. [[ You can use PoyTEST, its much simplier ]]
There are two rules you simply must follow:
1) For every new widget, its CHTWidgetDev.lua file must change the "widgetName" property. It must something unique.
I suggest a naming system of "CreatorName_WidgetName" - that should ensure that the names are unique - there must not any conflict here!
Modify anything else however you'd like. The rest of the fields in that file don't need to be as unique as the "widgetName" property.
2) The 30182CB6_manila mode9 file must follow a special rule: The "Scene" section must not contain any components. See how it looks like in the example addon.
That's how it must look for all new widgets.
[[ Making a widget is like making a puzzle (but much more funny ), you have to put the right pieces in the right places. There is no a fix rule and there is a lot of trial and error. Where to find the right pieces? Co0kie gave us thousand of decompiled lines of Lua code in CHT_Source. Download it from post#6 of CHT 2.0.0 thread. Also look in every published widget's kitchen in CHT thread, Rat_2665, Dunc0001, ZaxXx, Azarbel, Colossus_r, RoryB, MnCessna ... (Sorry I dont remember all right now!) ]]
Once you've done that you can do ahead and run "_Deploy_to_device_in_dev_mode.bat" - that will compile the files, copy them to your device and restart manila.
Then just go to the edit widget menu in CHT - your widget should be at the bottom of the list - add it and test it.
When you have finished making your widget, you can pack it up into a cab file.
To prepare the files for the cab you have to run "_Generate_files_for_cab.bat".
The final files will be in the \cab\_files_final\ folder.
Making the cab file - this is what an addon cab must have:
1) Every last one of those files from \cab\_files_final\ need to be in the cab and they have to be set to be copied to %windows%.
Do NOT set the install dir to %windows%, set the files to be copied to %windows%.
2) The setup.dll that is in the \cab\ folder also needs to be added to the cab.
3) Last, but extremely important, set the install dir to \CHTAddons\^widgetName^ - where ^widgetName^ should be your unique widget name same as in the lua file.
[[ This is really important. If you are not creating a new widget but just editing the mode9 and/or lua files, please do not modify the installation dir in the cab properties, as it is used in the installation process and modification may cause problems in CHT ]]
If you want to test that cab on your device make sure you disable dev mode first ("CHTI.AddonWidgets.DevMode" to 0), so that the dev mode widget you were working on and the newly installed one do not conflict.
A widget must not be installed in both dev mode and as a cab at the same time!
##########################
*** 3) How it works ******
##########################
CHT addons plug into slots that interface with the core layout manager.
There is maximum number of addon slots (that number is 10 for the dev preview beta, but it will be 20 for the final).
Each widget consists of 4 parts:
1) a mode9 file for the CHT widget interface
2) a lua file for the CHT widget interface
3) any number of extra mode9 or lua files
4) xml file with a manila file list for CHTScheduler
Numbers 1-3 there are directly needed for CHT. Number 4 is needed for CHTScheduler (I'll leave the explanation of that for the CHTS thread - it's not need for now if you just want to try to build your own widget).
Numbers 1 and 2 are the most important and they are directly linked to the slots.
Here is how:
The interface mode9 and lua need to have a specific names depending on which slot they go into.
To make this happen those 2 files are dynamically named on install.
While you are developing your widget you are working with the dev widget slot. There is only one of these so it has one pair of mode9/lua names (30182CB6_manila and 7D241726_manila).
But once you make the addon cab the widget can be installed in any slot (first one found to be free). That's why in the release files, there is a CHTmode9_manila and CHTlua_manila.
Those are the same files that you were developing with (30182CB6_manila and 7D241726_manila) - they will be renamed on the fly once installed - this is where the special setup.dll comes in.
The dll will look for the first free addon slot and install the widget there, i.e. it will rename the files so they correspond to the first slot.
The install dir name that you had to specifically enter is used as the widget install ID and will be stored in HKCU\Software\HTC\Manila\ "CHTI.AddonWidgets.SlotX" (this is needed to uninstall the widget correctly).
The files that are being installed should all go to \windows so you set that directly for the files, and that allows the install dir name cab field to be used for this purpose.
Click to expand...
Click to collapse
If you have reached here I recomend you re-read Co0kie's guide, is short but it contains a lot of information, i would say every word is important!
So now the first trial:
1.- Install the kitchen: Every widget has its own kitchen, I have attached a kitchen for a very simple widget. Just download in your PC and copy all the files & folders in a separate folder (\CHTwidgets\PoyTEST\) same as they are inside the .rar
Now connect your PC and your device via USB and sinchronize. Then run the file z_init.bat - You need to run this one before starting. You just need to run it only one time. It will copy restartmanila.exe to you device.
2.- Put your device in DevMode: Go to HKCU\Software\HTC\Manila\CHTI.AddonWidgets.DevMode and change to DWORD =1 (create if does not exit). Now restart Sense.
3.- Run the file _Deploy_to_device_in_dev_mode.bat. Your device will automatically restart Sense. Then go to Edit Mode - Add new element - Select PoyTEST - done. You should see now the simple widget in your device's screen.
It will continue ....
SENSE CRASHED? NO PANIC
It is normal to crash sense when you are doing some experiments, but it normally get solved just deleting files 30182CB6_manila & 7D241726_manila in \windows folder\ and/or dissabling DevMode in registry HKCU\Software\HTC\Manila\CHTI.AddonWidgets.DevMode = 0
rat_2665 said:
It's a tricky thing. Do you use one of Co0kies widgets? For this I "took it over" at first. I didn't change the structure, only made new names in the manila files. You have to check over and over. A blank space in a name in the mode9 file cost me a day. In the next step you can try to change the behaviour.
What you see is the normal screen for an error (i had it often ). Check if all variables in the lua files are also in the mode9 file. Then in the developer mode you can't see errors in the lua scripts (absent end in functions and so on). For this I used sometimes the m9editor, compiled the scripts and looked for errors.
Click to expand...
Click to collapse
Even we can learn from this crashs:
Co0kie Monster said:
Sense nuke and lua "debugging"
The empty screen after adding your widget will happen if there is an error in your widgets lua code. Alternatively it could be a bug in the mode9 file (but those usually cause sense not to start at all), or maybe you left dev mode on and installed your widget via cab - dev mode uses a special widget slot and it will cause a conflict if a widget is installed both via cab and in dev mode at the same time, so remember to turn off dev mode.
But, anyway I'm guessing the problem would usually be in the lua code. In that case you need to debug it. I've uploaded all the needed tools to "Co0kie's Home Tab\_Development\Lua_debugging_tools". (* inlcuded in the widget kitchen)
Because lua is a script It's not really debugging, it's pretty much just a trace log.
Run attach.bat while your device is connected via active sync and that will collect trace information and display any errors along with the file and line where they occurred.
All the info is collected in debug-attached.txt.
Do whatever causes the bug, then run terminate.bat to stop pdebug (that will also restart manila).
Open up the log and look for **Lua Error******.
Other than that you will also see trace() output there.
The other batch (run.bat) is for debugging from startup. You need to turn off manila (WM Settings->Home-> turn off HTC Sense from the list) and then hit run.bat - it will start manila and log at the same time. That's only needed in case of startup errors.
Click to expand...
Click to collapse
HOW TO SOLVE SOME GRAPHICS ISSUES
santod040 about some graphic issues said:
I am not exactly sure yet why the 16 rule only applies to some roms. I think this may actually be the difference between a CFC and non CFC manila.
Though Im digging into this more still.
I also think of this more as one rom listening to the mode9, no matter what the image claims to be or is.
Where the other needs the image to specifically be what it expects, according to the mode9 and lua.
I also think it's more about "4" and "16"
Here's a few key items from Mode9 and a small bit about each.
Though it may be somewhat irrelevant mostly.
String: UTF-16LE encoded strings (represented as UTF-8 in XML and YAML)
Path: UTF-16LE encoded strings (represented as UTF-8 in XML and YAML)
UInt32: 4 byte unsigned integer
Q16: 4 byte Q16.16 fixed point number
Int32: 4 byte signed integer
Boolean: 4 byte, either 1 or 0
Vector3: 3*4 bytes of Q16 numbers (X,Y,Z)
RectQ16: 4*4 bytes Q16 numbers (X,Y,Width,Height)
RectInt: 4*4 bytes of signed integers (X,Y,Width,Height)
Size: 4*2 bytes of Q16 (Width,Height)
Color: 4*1 bytes (R,G,B,A)
Viewport: either a Vector3 or a RectQ16, depends on size
FrameValue: either a Vector3 or a Q16 number, depends on size
BinaryScript: a binary value, encoded as Base64 in the XML or YAML file
The CFC should not be used as a standard.
Heres why:
Non Cfc and Cfc images, will work on a Cfc rom.
Whereas Cfc images will not work right on a non Cfc rom(any stock rom).
So to be universal, non Cfc is the best approach.
Also consider that manila, and your device have to decompress as they use the images.
So, to offer Cfc as an option is nice, but not the universal offering.
Click to expand...
Click to collapse
santod040 said:
Similar issue again.
The qtc needed to be a more accepted dimension by manila.
I still don't have any concrete answers behind it, other then the info I already posted regarding textures and sizes in manila.
So, I adjusted the mode9 and also the qtc to be standard sizes.
I have made a few that worked.
The first was 256x64, but then was hard to move, lol.
So I edited again and made it 512x64 and reposted just now.
It seems to move just fine.
Now only to move the resize button up some and it would be near perfect.
But since it's almost 3am, that will have to wait.
Click to expand...
Click to collapse
santod040 said:
Something else to think about.
As far as the 16 rule.
I also mentioned 4.
So for example,
64 divided by 16 = 4 (good number)
96 divided by 16 = 6 (bad number)
128 divided by 16= 8 (good number)
Click to expand...
Click to collapse
only 10 widget slot problem solution
mike2nl said:
We, the CHT teams, have found a solution for the 10 slots for widget issue.
After we had changed things we are now in state to use 20 widgets(*) at all (0..19).
It is tested on HD2 and TP2 WM phones, and it's running without any issue until now.
The new file was tested by santod040, MichelDiamond, poyensa and me.
My last test was to use 20 widgets on the HD2 about the performance. And yes it does the work .
How to install the fix:
1. unzip the manila file
2. switch off sense
3. copy the 7c60907d_manila file o the \Windows directory
4. restart your phone
5. switch on sense
6. have fun to install more widgets now (max. of 20)
7. follow the install routine from every widget
Click to expand...
Click to collapse
Last but not least, thank you to all involved team members...
Click to expand...
Click to collapse
You can do your own widget just changing PoyTEST - PoyText1 - PoyGraphic1 for your own names
The best way to make a new widget is start from another widget, in this case we can start from PoyTEST, its a simple widget with 2 variables to display in the home screen of our devices: one graphic file as background and one text field. This 2 fields (or variables) will be created by the mode9 file. We have to give unique names for all the variables so the easiest way is just to change PoyTEST - PoyText1 - PoyGraphic1 - for your own names in every line of the files involved. So open file 30182CB6_manila using m9editor and do the changes. (If you are not familiar with m9editro go here)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The mode9 file 30182CB6_manila use to define also the content of the graphic variables (SetTexture) but we will do it later for this example. Other important thing is the order in mode9 stablish the order of the elements shown in ours screen. It means that we will see PoyText1 over PoyGraphic1 as we like.
Now we have to change the file CHTWidgetDev.lua using Notepad2 and change all the PoyTEST - PoyGraphic1 & PoyText1 for the name previously used in the mode9 file. It not dificult just change PoyTEST -nothing else- in every line where it appears, substitute for the name previously used in mode9 file. YES YOU HAVE TO LEAVE THE SMALL w
Some important things:
Be careful with capital and lower letters. For lua languaje 'PoyTEST' is different than 'poyTEST' so only one letter can make the widget not working.
If the line strat with '--' then the line is dissabled, this is usefull for notes & reminders and also to activate and deactivate lines. If you use Notepad2 the deactivated line will be green coloured.
The files 30182CB6_manila (mode9) & CHTWidgetDev.lua always have to be in any CHTwidget, and they must have always the same structure. In mode9 file 30182CB6_manila we do create the variables and in CHTWidgetDev.lua (renamed as CHTlua_manila in the cab) we connect the widget to the rest of Co0kie Home Tab.
Now we do not need to change anything, may be later when we are more familiar with widgets:
* Lines 3-8 is to register the widget in CHT
* Line 8 is connected to line 82-83-84. We define there how many layouts is going to have the widget (black-white-etc). We leave everything as it is now ...
* Lines 10-48 are to control the size of the widget, in the future you can play there a bit specially in line 42 if you wish your widget bigger, but now we leave it as it is.
* Lines 50-62 are very important. We do nothing there -never- just change the names for our's widget name. Specially line 62 we put there the object (clockface, bakcground, etc) that is going to react when we press it with our finger. In our case it will be PoyGraphic1 (change it for the variable name used in mode9 file 30182CB6_manila).
* Line 64 conect to our widget lua file. As you may know the lua file defines the behaviour of the widget. In this lua file we are going to say what our widget is going to do. Is time to open ManilaHash and find the manila name of our widget's lua file. Dont change the path just the final name, you can use any but by convention better use something like CreatorName_WidgetName.lua
* Lines 82-84 is to add more layouts in our widget. You can see some examples in other widgets and also in CHT_Widgets.lua (CHT source), but dont forget to modify line 8 then!
* Lines 88-104 is defined the animation effect how the widget comes to the screen when swipping between levels. I never touch anything there.
* same for lines 106-116. It was there before me and i never modify anything there (just the widget name)
* Now have a look again to every line, check the spelling, capital letters, etc.
Now you are using manilaHash you can also find the name for any other graphic file you are going to use. e. Dont change the path just the final name
Now we can start to modify the file PoyTEST.lua. Using Notepad2 you have to change PoyTEST for your widget name used in the previous lua file and also modify the name of the variables defined in the mode9 file 30182CB6_manila (PoyText1 & PoyGraphic1) in all the lines where those appears.
In this lua file can be added some properties that use to be set in mode9 file (lines 15-25) I do that for one reason: This file does not change the name in the widget installation process, as the other CHT files (CHTmode9_manila & CHTlua_manila) does. This file will be always 41CBC6DC_manila in \windows\ folder so it is easy to substitute later to correct some bugs, etc.
You can get out of the line 29 (just put -- at the begining of the line it will be green cloured) This is a test I am doing for translate widgets regarding this post. If so you have also to activate the line 28 (delete -- then the line will be black colour) and delete file PoyTESTtranslation.lua in \PoyTEST\workspace\_lua
I cannot say much more for this file. Here comes the problems. How to do things? I am not a coder I have only read and read and read a lot of code in other widgets and CHT_Widgets.lua and other files in CHT source, and try and try and try a lot, and finally ask rat_2665
* Line 33 is a way to set texture for graphic fields in lua files instead of mode9 files
* Lines 38-63 is to define what the widget does when pressed
You can do your own widget just changing PoyTEST - PoyText1 - PoyGraphic1 for your own names
Now is time to check the USB conection, device is sinchronized, then click on _Deploy_to_device_in_dev_mode.bat and see your widget working!
[[be sure the .bat file has been edited correctly by adding your widget name, as explained in post#8]]
Sense crashed ... dont worry. Nobody has got it at the first time!
1. Be sure you are in DevMode
2. Check that all the names are correctly written, specially capital letters- lower letters
3. if you got an error in the black screen after run .bat file, read it slowly. It will help
4. Once you make the corrections you can run again .bat, even with sense crashed.
MAKING THE CAB
Co0kie Monster said:
When you have finished making your widget, you can pack it up into a cab file.
To prepare the files for the cab you have to run "_Generate_files_for_cab.bat".
The final files will be in the \cab\_files_final\ folder.
Making the cab file - this is what an addon cab must have:
1) Every last one of those files from \cab\_files_final\ need to be in the cab and they have to be set to be copied to %windows%.
Do NOT set the install dir to %windows%, set the files to be copied to %windows%.
2) The setup.dll that is in the \cab\ folder also needs to be added to the cab.
3) Last, but extremely important, set the install dir to \CHTAddons\^widgetName^ - where ^widgetName^ should be your unique widget name same as in the lua file.
Click to expand...
Click to collapse
Be sure that you have edited the file _Generate_files_for_cab.bat with your own name widget as explained in post#8. By running this file all the lua files will be recompiled automatically and all the files will go from \workspace\ to \cab\_final_files\ If you have a look to the screenshot you will notice that some files names have changed: we will find there CHTlua_manila & CHTmode9_manila. This 2 files will change the name again when the cab be installed in the device, depending the free slot asigned will take the final manila in \windows\ folder in your device. Isn't magic?
Dont forget to add the magic setup.dll. When you add the files into the cab select windows as location. Then in cabinet properties - Installation directory do create a folder in \root\CHTAddons\NameOfTheWidget with the same name as your widget (line 5 of chtwidgetdev.lua) and mark hard-coded-path. Finally save the cab.
CHTScheduler
If we add a xml file named as CHTWidget_NameOfYourWidget.xml (CHTWidget_PoyTEST.xml in this case) directly in \windows\ folder with just a description of the manila files names used in our widget (see some of them as example) this widget will be used by CHTSheduler for diferents profiles, baselines, etc.
It does not seems dificult, isnt it? it simple but if you substitute the qtc file attached 1F88A376_manila, and change the color property for the text in line 17 of PoyTEST.lua to black (0,0,0,255) .... it could be the begining of an usefull widget
1.- Lets do our own CHTwidget
2.- Using JMLMenuSense
3.- Final touches
4.- A Bit of CHTS
Its good to have a look into CHTWidgetDev.lua from Co0kie's Standalone Analog Clock, with extended comments by Co0kie (in green). You have it into the Co0kie's widgets kitchen. We all started here:
-- File name: 7D241726_manila -- \windows\htc\home\scripts\home\chtwidgetdev.luac
-- ##### CHT Wigdet interface file #####
-- this script is an abstraction layer that sits between a widget and the core CHT Layout Manager
-- the template needs to be filled in the correct way, but once it is, the created widget will be plugged into the layout manager
-- and automatically behave like any other CHT widget - be movable, have access to different layout profiles, correct lockscreen behaviour etc.
-- even if I do say so myself, the system is *very* powerful
-- the comments below should provide a good description of the template
-- the primary and most important comments will be marked plainly with --
-- secondary comments will be marked with --// and they will contain some additionl points of interest, but not critical info
-- on your first read through I suggest you stick to just the primary comments
-- lines marked with --%% are commented out code that could be part of a template, but is not needed for this example in particular
-- if you have any other question, hit me in the social group
-- this first line creates a new template file based on 'WidgetTemplate' (defined originally in CHT_core.lua)
--// it's best to make it a local - it can be a global too, but there's really no need since it will not be accessed directly anywhere
--// except in this file - and one less global means less polution in the global namespace which could be very important going forward
local wStandaloneAnalogClock = WidgetTemplate:new()
-- this next step registers the newly created widget with the core CHT Layout Manager
CHTLayoutManager:RegisterWidget(wStandaloneAnalogClock)
-- some basic information needs to be filed in about the widget
-- 'widgetName' field - try to make this name as unique as possible, because it is used to save/load widget registy information
-- the core widgets have plain names (Clock, Appointments, Tasks...), but give your widget unique names to avoid conflicts
-- the simplest unique naming scheme would be to just add your name before the widget name
wStandaloneAnalogClock.widgetName = "Co0kieStandaloneAnalogClock"
-- this defines the text that will appear in the advanced settings/add a widget menu
--// sadly, I could not find a way to make the localization system distributed for every widget so you can't enter localized "IDS_*" strings here
wStandaloneAnalogClock.settingsString = "Standalone analog clock"
-- this defines the category in which the widget will appear in the advanced settings/add a widget menu
wStandaloneAnalogClock.settingsCategory = "Clock"
-- the maximum layout count (the layouts that are cycled by the previous/next button on the popup menu or in the settings menu combo box)
wStandaloneAnalogClock.layoutCount = 1
-- should the widget snap to the center of a page
-- // but "center" isn't really center - it's more like snap to posX == 0, 480, 960..., if that position X is the center of a page depends on how you made your widget
wStandaloneAnalogClock.snapToCenterX = false
-- here you can define default settings for your widget on a "per layout" basis
-- if defaults for a level are not given, it will use {visible = false, layout = 0, posX = 0, posY = 0, scale = 1, pinned = false}
-- the visible, posX and posY fields speak for themselves
-- the layout field is the layout number (can be between 0 and layoutCount-1)
--// scale is used for storing size info for resizable widgets
--// pinned is used for storing the pinned state of pinnable widgets
--%% wStandaloneAnalogClock.defaults["HomeLevel0"] =
wStandaloneAnalogClock.defaults["HomeLevel1"] = {visible = false, layout = 0, posX = 0, posY = 0, scale = 1, pinned = false}
--%% wStandaloneAnalogClock.defaults["HomeLevel2"] =
--%% wStandaloneAnalogClock.defaults["HomeLevel3"] =
--%% wStandaloneAnalogClock.defaults["HomeLandscape"] =
--%% wStandaloneAnalogClock.defaults["CHTLockscreen"] =
-- now come the widget function definitions
-- 'Initialize' - and extremely important function
-- it's called when the widget it loaded for the first time (on startup or when added from the advanced menu)
wStandaloneAnalogClock.Initialize = function(self)
-- these first few lines should be the same for all addon widgets
local newComponent = Component()
WidgetLayer2D:Attach(newComponent) -- you may modify this to be either WidgetLayer2D or WidgetLayer3D -- more info on this later
if not self.addonWidgetID then -- this is very important, every addon widget must have these line - do not modify them
newComponent:SetComponentClipCharacter("CHTWidgetDevSlot")
else
newComponent:SetComponentClipCharacter("CHTWidgetSlot" .. tostring(self.addonWidgetID))
end
self.positionLayer = newComponent
-- these two need to be filled in but they differ depending on how you named your mode9 fields
self.animationLayer = StandaloneAnalogClockAnimationLayer -- the layer that will be animated (fade in/out or any other more interesting effect that you can define - dee below)
self:AddObject(SACFace) -- defines the touch surface that, when touched, will enable the widget to be moved
-- the rest is completely up to you
require("Home\\Scripts\\Home\\Co0kieAnalogClock2") -- the script file that describes the behaviour
-- make sure that all new names that you add are unique so that there are no conflict with built-in widgets or any other addon widgets
-- suggested naming scheme is: yourname_variablename
-- the unique name requirement goes for all objectc in mode9 files, lua global variables and classes
StandaloneAnalogClock = StandaloneAnalogClockClass(StandaloneAnalogClockGroup, SACFace, SACMinuteHand, SACHourHand, SACSecondHand)
end
wStandaloneAnalogClock.GetPosX = function(self)
return self.posX + 128 * (1 - self.scale)
end
wStandaloneAnalogClock.GetPosY = function(self)
return self.posY - 128 * (1 - self.scale)
end
-- GetHeight and GetWidth provide feedback for layout manager so it can know the exact borders of a widget
wStandaloneAnalogClock.GetHeight = function(self)
return 256 * self.scale -- in this the base width of the analog clock is muliplied by the scale
end
wStandaloneAnalogClock.GetWidth = function(self)
return 256 * self.scale
end
-- resizing system definitions - I suggest you skip this part on your first read
wStandaloneAnalogClock.isResizable = true
wStandaloneAnalogClock.rotatingResizeButton = true
wStandaloneAnalogClock.GetResizeRefX = function(self)
return self.posX + 128
end
wStandaloneAnalogClock.GetResizeRefY = function(self)
return self.posY - 128
end
wStandaloneAnalogClock.GetResizeButtonXDelta = function(self)
return 90
end
wStandaloneAnalogClock.GetResizeButtonYDelta = function(self)
return -90
end
wStandaloneAnalogClock.CheckScaleLimit = function(self, scale)
return (scale >= 0.5 and scale <= 1.3), 0.5, 1.3
end
wStandaloneAnalogClock.GetResizeUnit = function(self)
return 128
end
wStandaloneAnalogClock.ApplyScale = function(self, newScale)
self.scale = newScale
local newRadius = self:GetResizeUnit() * newScale
self.animationLayer.Scale = Vector3Property(Vector3(newScale, newScale, newScale))
end
-- these are the layout control functions
-- this example widget has only one layout available, but these function come in very handy for defining multiple layouts
-- this function is run before any of the defined layout functions
-- this should contain something that should be set commonly for any layout
wStandaloneAnalogClock.CommonPreSetLayout = function(self)
StandaloneAnalogClockAnimationLayer.Center.x = SACFace.Size.width / 2
StandaloneAnalogClockAnimationLayer.Center.y = -SACFace.Size.height / 2
if not self:CheckScaleLimit(self.scale) then
self.scale = 1
end
self:ApplyScale(self.scale)
end
-- one of these functions is run depending on the selected layout
-- the string to be shown in the settings menu combo box is also defined here
wStandaloneAnalogClock.layoutName[0] = "[[IDS_NO_ALT_LAYOUTS]]" -- combo box text
wStandaloneAnalogClock.SetLayout[0] = function()
end
-- additional layouts can be defined here
-- the number of functions must match the layoutCount field defined above
--%%wStandaloneAnalogClock.layoutName[1] = "Second layout"
--%%wStandaloneAnalogClock.SetLayout[1] = function()
--%%end
--%%wStandaloneAnalogClock.layoutName[2] = "Third layout"
--%%wStandaloneAnalogClock.SetLayout[2] = function()
--%%end
--%%wStandaloneAnalogClock.layoutName[3] = "Etc"
--%%wStandaloneAnalogClock.SetLayout[3] = function()
--%%end
-- like CommonPreSetLayout this function is run for any of the layouts
-- but it's run after the layout specific function
--%%wStandaloneAnalogClock.CommonPostSetLayout = function(self)
--%%end
-- animation function, they are run when switching between level or adding/removing a widget
-- the basic thing that needs to be done here is make the widget visible or invisible,
-- but you can play around with the animations and put in some eye candy
--// Interopolate can be used with Opacity, Position, Rotation and Scale and some cool effect combinations can be made
--// post in the social group if you need more info
wStandaloneAnalogClock.AnimateIn = function(self, instant, swipeDown)
if instant then
self.animationLayer.Opacity.value = 100
else
self.animationLayer.Opacity:Interpolate(100, 10, 0, Interpolate_Linear)
end
end
wStandaloneAnalogClock.AnimateOut = function(self, instant, swipeDown)
if instant then
self.animationLayer.Opacity.value = 0
else
self.animationLayer.Opacity:Interpolate(0, 5, 0, Interpolate_Linear)
end
end
-- these two functions define what should be run to connect or disconnect widget press actions
-- the functions are called on transition to the lockscreen, edit mode, but also for some smaller details (like when menus are up)
wStandaloneAnalogClock.ConnectPressHandlers = function(self)
StandaloneAnalogClock:ConnectPressHandlers()
end
wStandaloneAnalogClock.DisconnectPressHandlers = function(self)
StandaloneAnalogClockisconnectPressHandlers()
end
-- these two do much the same as the previous functions, but the serve as exceptions for the lockscreen
-- in this case the analog clock should not have any action on the lockscreen
-- but for example, the music player uses these functions to reconnect the play controls on the lockscreen
--%%wStandaloneAnalogClock.ConnectLockscreenHandlers = function(self)
--%%end
--%%wStandaloneAnalogClock.ConnectLockscreenHandlers = function(self)
--%%end
-- this one is used to clear the the widgets selection status
-- in this example when the clock is pressed it sinks in a bit
-- in certain situations, there might be a need to deselect a widget even if it's still under the finger
-- (for example when a side scroll is started)
-- that's when this function is called
wStandaloneAnalogClock.ClearSelection = function(self)
StandaloneAnalogClock:ClearSelection()
end
Click to expand...
Click to collapse
You can try now making your own Clock-CHTWidget, following rat_2665 tutorial:
This is a little guide for clock widgets:
Read at first the widget development guide by Cokie (it's in the below mentioned kitchen) !!!
Step 1 manila hash names
1. Download the kitchen for the analog clock widget by cookie and make a temp folder in there. Copy the files for your analog clock in this folder (best if you have already a working clock for CHT 1.8.5). Save the pictures out of the qtc manila files as png in this folder (this is only useful for oversight). Rename the whole widget with your widget name.
2. Make a list with new names for your text and image objects with manilaHASH.
- the names should be unique. I use my name and a widget number as prefix, f.e. rat_w001_secondHand
- determine the manila hash name. For this use the line
\windows\htc\home\assets\images\Home\VGA\Your_Name.qtc
Save this list. You need it all the time for oversight.
3. Rename your images in the temp directory with the new manila names (this is only useful for oversight); then rename also your manila image files with these names.
4. Delete all files in the workspace\qtc directory and copy your new manila files into this (but not the old 1E1A6CCD_manila and 1EC5924B_manila)
Step 2 mode9 file.
5. Open the mode9 file in the workspace directory. Go in the library to the StandaloneAnalogclockGroup. There are the image and text objects for the clock.
6. If you have more objects in your old 1E1A6CCD_manila file for your analog clock add these objects in the group.
7. Then substitute
- for all objects the Instance value with your new name (f.e. rat_w001_secondHand),
- for the image objects the Texture path with the (here shortend) string that you used for the manila hash name (f.e. .\Assets\Images\Home\VGA\rat_w001_secondHand.qtc)
- for the text objects the String value to the variable used in the lua file (f.e. rat_w001_weekday). If you want to use AMPM like in the normal clock, don't change this value.
8. Change the name of the StandaloneAnalogClockGroup to a unique name (that is used later in the lua files, f.e. rat_w001_ClockGroup)
9. Change the name of the StandaloneAnalogClockAnimationLayer to a unique name (that is used later in the lua files, f.e. rat_w001_ClockAnimationLayer)
10. Save the file.
Now to the lua files.
Step 3 CHTWidgetDev
Substitute all uses of wAnalogClock2 with a unique name (f.e. w_rat_w001_Clock). You can do this in Notepad2 with the Edit/Replace function.
Then substitute in line 69 StandaloneAnalogClockAnimationLayer with the new unique name you used in the mode9 file for the animation layer (f.e. rat_w001_ClockAnimationLayer).
Do the same in line 74, 135, 136, 191, 195 and 212 for all uses of StandaloneAnalogClock (f.e. rat_w001_Clock)
Replace the string in line 28 with the name of your widget (f.e. "rat_w001_clock").
In the next line insert the string that is shown for the widget in the home layout (f.e. "my analog clock").
For an analog clock you don't need to change the next item (""Clock").
In line 70, 135 and 136 is the image object for touching mentioned. You have to substitute "SACFace" with your image object (at best the greatest, f.e. rat_w001_clockface)
The last part is line 73 and 74. In line 73 you have to substitute "Co0kieAnalogClock2" with the name of your special lua script (f.e. rat_w001_clock).
Line 74 is the bridge to your lua script. Here are the arguments of the ClockClass defined that are used in the StandaloneAnalogClockClass.__init function in your special lua file. Of course the name of the function is later also to be changed.
In the example it is:
rat_w001_Clock = rat_w001_ClockClass(rat_w001_ClockGroup, rat_w001_clockface, rat_w001_minuteHand, rat_w001_hourHand, rat_w001_secondHand)
Step 4 special lua file
For naming use the lua script file name you used in the CHTWidgetDev.lua file (rat_w001_clock)
In the first (commentary) line change the location with the new name instead of Co0kieAnalogClock2 and use the manilaHash app with this string:
\windows\htc\home\scripts\home\your_widget_name.luac
Then substitute also the manila name (f.e. -- File name: 1F2E1A7D_manila --\windows\htc\home\scripts\home\rat_w001_Clock.luac )
Substitute all uses of StandaloneAnalogClock with your name (rat_w001_Clock)
Change all uses of SACShowAMPM to your name (rat_w001_ShowAMPM).
That would be all if you only want to make a normal analog clock widget, but if you want to change more you have to go to the central function for the behaviour. For this you have to look in this two functions (these are the old Co0kie names):
StandaloneAnalogClockClass.UpdateTime = function(self)
StandaloneAnalogClockClass.UpdateSecondHand = function(self)
Here the update interval and the rotation of the hands is defined. In Co0kies clock it is pretty simple. If you want to add more functions here is the place. The names of the standard arguments clockGroup, clockFace, minHand, hourHand and secondHand should be unchanged in the whole file. For every other variable and object use your special unique name.
Of course you can add other functions in their own place. You find examples for this in my clock thread.
Now it is testing, testing, testing.
Step 5 bat.files
In the kitchen there are these two files
_Deploy_to_device_in_dev_mode.bat
_Generate_files_for_cab.bat
for handling in the development process.
Here you have to substitute in both files in the second luatool line 35E966AF_manila ..\Workspace\_lua\Co0kieAnalogClock2.lua
with your new widget name and its manila hash name. (in the example: 4C0089BA_manila ..\Workspace\_lua\rat_w001_Clock.lua)
Step 6 CHTS file
Rename the file in the CHTS with your new widget name (f.e. CHTWidget_rat_w001_Clock.xml).
Open the file with the windows editor.
Take your list with the manila hash names and substitute the objects with your new names and the manila names.
For the third line use your widget name and in the fourth line ("description") the string you used in the CHTWidgetDev.lua for the home layout description.
Click to expand...
Click to collapse
This links always useful ...
TUT: Editing manila!
LuaTool 1.2 - Lua Decompiler, Compiler and Compare
TF3D manila mode9 editor
CFC GUI - THE Manila/TF3D Image Editor
Manila file names
Manila CMD Kitchen Environment
Lua 5.1 Reference Manual
Manila Development for Beginners
Example of use of longpress thanks to RoryB
Modifications of the lua script/functions thanks to rat_2665
and reserved5 (i hope is enough )
Great post...I have been wanting to work on my own widget for CHT. Hope this thread will help me jump start...
So here are a few little things I have gathered over the last few months which I have found useful.
The ManilaHash.txt contains two lines of text for you to cut and paste into Manila Hash which you need to generate the correct manila filenames for your widget scripts and qtc image files. Just open Manila Hash, open the txt, copy and paste the relevant line into MH and alter the last bit to your image/script name. Then click Get Manila and you'll have your unique manila filename. Then highlight the hashed name, right click and copy. If it is the name for your widget script you are generating you then need to use this in the two bat files (Deploy to device in dev mode/Generate files for cab) before you run either bat - right click and Edit and you'll see something like this:
Code:
@echo off
pushd tools
luatool /c -o ..\deploy\7D241726_manila ..\Workspace\_lua\chtwidgetdev.lua
luatool /c -o ..\deploy\3DFA729F_manila ..\Workspace\_lua\dunchexclock.lua
copy ..\Workspace\mode9\*.* ..\deploy >nul
copy ..\Workspace\qtc\*.* ..\deploy >nul
copy ..\Workspace\png\*.* ..\deploy >nul
copy ..\Workspace\locales\*.* ..\deploy >nul
copy ..\Workspace\CHTS\*.* ..\deploy >nul
rapicopy -d -e -s ..\deploy \windows
rapistart restartmanila.exe
del /q /s ..\deploy\*.* >nul
pause
NB - The bat files included in the widget kitchen contain notation by co0kie but the code above shows the actual active parts of the bat.
The line you need to change is this one:
Code:
luatool /c -o ..\deploy\3DFA729F_manila ..\Workspace\_lua\dunchexclock.lua
Change the manila name to the one you just generated for the script (highlight/paste from MH) and change the script name to whatever name you are giving your widget script. BTW confusing as it may seem the hashed name is generated using .luac and the bat refers to it as .lua - this is correct!
Also for reference you should also edit the first line in your widget script to show the correct script name and hashed manila filename. Incidentally you'll notice this line in the script has -- at the start. This basically 'disables' the line so it becomes for reference only. This is handy during testing because you can remove elements from use without actually removing the text from the script, so they are easy to add back in later. If you are using Notepad2 which is in the tools folder (and I strongly recommend you do because it is specifically formatted for editing these scripts) you'll see that lines beginning with -- appear in green so you can easily identify inactive lines.
If you have generated a hashed name for a qtc file then simply copy the name, right click on your qtc file and Rename, highlight current filename and paste.
Widget mode9 Filenames.txt contains the hashed filenames for the mode9 files of each widget depending on which widget slot it is installed into. The mode9 and WidgetDev.lua filenames are generated during install depending on the slot number so you will need these if you are going to edit the mode9 after you have actually installed a widget (not relevant if you are still working on it in dev mode). You can also use this list to locate the mode9 file for any widgets you already have installed but which you may want to take a look at for reference or edit.
LUA Ref v5.1.pdf is a really useful quick reference guide for lua syntax, but before you get in a spin trying to get your head around lua for the first time I would strongly recommend reading this BEGINNERS GUIDE. There are many online references including the main LUA Reference Manual (there's a link to it in the site I've just linked to) but this one gives an easy to follow guide to the basics so read it first!
rat_2665's CHTAddon Dev Mode Switch - adds a new toggle switch in the CHT Toggle Switches list. Works like every other toggle to activate/deactivate Dev Mode rather than having to do it manually with a registry editor. Just toggle on/off and soft reset after each change to enter/leave Dev Mode. I'm sure rat won't mind me posting this here - it's all his work so all credit to him for this one - but it really is a timesaver when you are developing!
One final word of advice/experience - when you are first starting out on developing widgets it can be very VERY frustrating, especially if like me you have absolutely no previous experience of coding. However we are all here to help -that's what this community is all about. If you have a problem just ask. And be prepared for many many Sense crashes and resets! But hey, that's what dev mode is there for - another of co0kies little flashes of genius!
Right, that's just to give you all a hand with some basics! We are now open for business - ASK AWAY
Thanks Poy, Rat, Dunc, and all those involved with CHT and CHT widget dev.
This could prove to be very useful for anyone wanting to jump into making their own widgets and for collaborative efforts as well.
I look forward to seeing where this goes from here.
If I decide to add anything to the great info already posted, I will place it here.
Thanks for your efforts to get this going Poyensa.
Excellent thread, hope to try out the tutorial at some point.
At the moment interested in the toggle switches and how to make them, since it's not covered anywhere.
I've opened up rat_2665's toggle switch cab (hopefully that is ok - it is a good example).
The two key files are:
CHT_switch_DevMode.png
CHTlua_manila
The lua code is as follows:
Code:
Co0kieSwitchLink("DevMode Switch", "\\Windows\\CHT_switch_DevMode.png", _application.Store:GetValueChangedEvent(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode"), function(l_1_0)
if _application.Store:GetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode") == 0 then
_application.Store:SetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode", 1)
else
_application.Store:SetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode", 0)
end
end
, function(l_2_0)
if _application.Store:GetIntValue(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode") == 0 then
return false
else
return true
end
end
)
From the above you can identify:
The switch title - "DevMode Switch"
The graphic - "\\Windows\\CHT_switch_DevMode.png"
Trigger - _application.Store:GetValueChangedEvent(Lifetime_Permanent, "CHTI.AddonWidgets.DevMode")
Action - function(l_1_0)
Switch position - function(l_2_0)
The setup.dll in the cab, sorts out the install side (as mentioned in the other posts).
Anyone know what lua file is the wifi switch? Or what regkey it monitors? Thanks.
Sorry if this info is written somewhere else, but I've not been able to find it so far.
meltwater said:
Anyone know what lua file is the wifi switch? Or what regkey it monitors? Thanks.
Sorry if this info is written somewhere else, but I've not been able to find it so far.
Click to expand...
Click to collapse
I would like to know that as well.
ai6908 said:
I would like to know that as well.
Click to expand...
Click to collapse
The wifi switch is in the Co0kieLink.lua file
Code:
Co0kieSwitchLink("[[IDS_WIFI_TOGGLE]]", "\\Windows\\CHT_switch_wifi.png", machineStatus.WifiOn.OnValueChanged
,function()
JMLComm("wifi")
end
,function()
return machineStatus.WifiOn.Value
end)
meltwater said:
Anyone know what lua file is the wifi switch? Or what regkey it monitors? Thanks.
Sorry if this info is written somewhere else, but I've not been able to find it so far.
Click to expand...
Click to collapse
ai6908 said:
I would like to know that as well.
Click to expand...
Click to collapse
Download CHT_AddonLinksKitchen.zip in post#6 of CHT2.0 thread. Inside \workspace\_lua\ you will find decompiled 6ADCC943_manila -- \windows\htc\home\scripts\home\chtlinksdev.luac with comments from co0kie
You beat me to it! BTW, Meltwater in the house - we are honoured
Making new links is actually way easier than making new widgets because there are only very small scripts involved and no mode9. You can either make new links to add in to the existing link sets (Miscellaneous, Toggles, etc) which is really straightforward, or you can create entirely new link sets. I have done both, adding new DatePicker and All People links into the Misc group, and making the new Page Switch Link set. Making a new set is also pretty straightforward although you also have to define the class and function, but most importantly each new set of links must have a unique link ID. This ID needs to be chosen and then notified to the CHT dev group in the Widgets discussion. If you don't have access to it then ask here and we'll provide you with one and feed it back to the dev group.
I can't remember what's in the kitchen Poy just linked to so I have attached my three kitchens below, along with a zip containing the CHT_quicklinks and freelinks luas and one of MichelDiamond's scripts for some of the links he added in for CHTS.
Again, any questions you have keep asking. We're waiting to see what amazing new stuff you come up with...
Dunc001 said:
You beat me to it! BTW, Meltwater in the house - we are honoured
Making new links is actually way easier than making new widgets because there are only very small scripts involved and no mode9.
... ...
Again, any questions you have keep asking. We're waiting to see what amazing new stuff you come up with...
Click to expand...
Click to collapse
Thanks guys. I did look at this when it was released, but found it difficult to get started with it.
That was my theory, make a few switches and get used to the plugins. Thought I could make some custom ones for switching on an in-car mode and various other things (switching into development modes for debugging the tabs would be handy too).
Obviously there is potential for using the stuff I've got for an improved RSSWidget and FbWidget but I'm still working out how to create stuff from scratch (but I am getting there).
Would be interesting to make a widget which displays set text items (perhaps a graphic too) from the registry, with callbacks to an app if pressed. That would be enough for a .net program to tie into, this is the basis of the RSSTab. Such a general widget could be used for a lot of things.
By the way, if you want to use some wiki space, feel free to carve out a chunk!
http://forum.xda-developers.com/wiki/index.php?title=WM6_HTC_Sense_Developer_Wiki
Have you got the CHT RSS widget kitchen? I'll upload it if not. If you could make a widget template for an updated rss widget or Facebook/Twitter widget to look/function in a similar way to the Android sense widgets that would be fantastic. Scrollable, with channel icon/Facebook pic beside each item, and also showing update time. Core CHT tasks and contacts widgets are already scrollable so all the necessary code should be available to copy/adapt. Let us know what you need any help with.
Dunc001 said:
Have you got the CHT RSS widget kitchen? I'll upload it if not. If you could make a widget template for an updated rss widget or Facebook/Twitter widget to look/function in a similar way to the Android sense widgets that would be fantastic. Scrollable, with channel icon/Facebook pic beside each item, and also showing update time. Core CHT tasks and contacts widgets are already scrollable so all the necessary code should be available to copy/adapt. Let us know what you need any help with.
Click to expand...
Click to collapse
I think I'll get my feet wet by doing some toggle switches first.
At the moment don't have the time to do the full widgets yet, got plenty that needs doing on the tab itself, but it would be great to get it all to tie in.
Well, the basics are done. If you miss something let us know. We also will try to bring here some tricks, fixes, mods, etc. And of course the answers for all your questions, excepting the date for next CHT update!
meltwater said:
Would be interesting to make a widget which displays set text items (perhaps a graphic too) from the registry, with callbacks to an app if pressed. That would be enough for a .net program to tie into, this is the basis of the RSSTab. Such a general widget could be used for a lot of things.
Click to expand...
Click to collapse
I totally agree with you.
I am monitoring this thread since its creation and I plan to investigate it when I will have more free time next week.
My goal: modify the RSSWidget to display feed informations from Google Reader (via the "Speeed Reader" application and probably a mortscript to parse the .xml and update registry).
kalhimeo said:
I totally agree with you.
I am monitoring this thread since its creation and I plan to investigate it when I will have more free time next week.
My goal: modify the RSSWidget to display feed informations from Google Reader (via the "Speeed Reader" application and probably a mortscript to parse the .xml and update registry).
Click to expand...
Click to collapse
Well I hope to integrate Google Reader into the RSSTab at some point.
Edit:
Watch post number 4.
Included links to:
AutoDVR.v.2.1.17b.cab
MyDVR.me.5.3.cab
What is it ?
Two programs to record the route.
AutoDVR.v.2.1.17b.cab
https : // rapidshare . com / files / 829434410 / AutoDVR.v.2.1.17b.cab
MyDVR.me.5.3.cab
https : // rapidshare . com / files / 3091089181 / mydvr.me.5.3.cab
If you have a problem with the track record in MyDVR suggest:
[HKEY_LOCAL_MACHINESoftwareSilogMyDVR]
"TargetFolder"=".\Память телефонаВид.рег"
"TargetFolderStill"=".\Память телефонаВид.рег"
Where Память телефонаВид.рег replace the previously created file in Storage Card
for example:
\Storage Card\MyDVR
http : // hotfile . com / dl / 132817704 / 8b16744 / AutoDVR.v.2.1.17b.cab.html
http : // hotfile . com / dl / 132817796 /b66db46 / mydvr.me.5.3.cab.html
mydvr seemsto be a little better-smoother on xperia x1 but for what do i need this app^^
AutoDVR does not work smoothly on HTC HD2.
And for both programs is 30 fps movie recording.
I am waiting for colleagues from Russia, who will tell us how to record in AutoDVR 800x480 without cropping the image.
AutoDVR screen
new version 2.3.3
http://uploading.com/files/26f1947f/AutoDVR.v.2.3.3.eng.crk_igorca.cab
Hello,
Thanks a lot for these apps. But how do I play the captured *.cpt video files from AutoDRV on Windows 7 ?
I think they should be MJPEG but it didn't work on vlc lan player nor wmp.
Today I found very annoying and strange bug (or, may be, MS call it "feature" ). Seems like directories on isf can hold 1024 files only...
Try code below:
Code:
Random rnd = new Random();
using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
{
byte[] data = new byte[1024];
isf.CreateDirectory("test");
for (int i=0; i<1025; i++)
{
string fileName = "test\\" + i.ToString("D4") + ".bin";
using (IsolatedStorageFileStream fs = new IsolatedStorageFileStream(fileName, FileMode.Create, isf))
{
rnd.NextBytes(data);
fs.Write(data, 0, data.Length);
}
}
}
After loop completed, resulting directory "test" will be empty! But change i<1024 and you'll get all yours 1024 files...
Tested on emulator and HTC Surround, same results. Can't find any documentation about this limitation... Shame on you, MS!
Update: another strange behavior ('cause of this bug) - if you already have 1024 files and try to add one more, the whole directory content is "magically" disappear But exception isn't thrown...
Interesting, I'll try it as well. This would be lame to have to work around.
Dbeattie said:
Interesting, I'll try it as well.
Click to expand...
Click to collapse
Yes, please, confirm...
I can't test this at the moment but I know I write well over 1000 files to /shared/media so I'm curious to tet this.
sensboston said:
Yes, please, confirm...
Click to expand...
Click to collapse
Hey just tried it out, wrote 2k items to a folder called "Data".
While it didn't show up in the Windows Phone Power tools, the file does exist in the folder itself.
bool success = storage.FileExists(Path.Combine("data", "1999"));
So it's either a problem with the WPConnect api or with the power tools, haven't tried the command line tool.
Yep, fortunately you are right, it's a ISETool.exe (or drivers) bug, not a WP7 ISF.
sensboston said:
Yep, fortunately you are right, it's a ISETool.exe (or drivers) bug, not a WP7 ISF.
Click to expand...
Click to collapse
Could you therefore edit the title of the thread please?
Thanks.
Hi,
I would like to share with you this release of RetroArch for ARM devices
Over 70 Core successfully compiled and tested on low end device,
Including N64 core with GPU render (Which is very rare)
Version: 1.15.5
Platforms:
Any Windows on ARM (with UWP Support)
Window 10 Mobile (More details? ask here)
Lowest Build: 15035+ (14393 with few cores)
This release contains the latest ANGLE library (by Google) that used to make OpenGL ES supported
Also I made many improvements for UWP functions,
and reverted back the incompatible functions for the lower builds.
Download: Get it from Here
WindowsRT?
Recently I discovered that RetroArch (UWP) required DirectX feature level 11.x
and this was probably cause crash on WinRT,
so please use release marked with `GL` if `D3D` crashed
Note 1: Some cores are using "Interpreter" which is very slow on low end devices, we need "dynamic re compiler" to these cores.
Help me add Dynarec for Flycast: GitHub Issue here
Spoiler: Installation
Download the app from the link above
Extract the files
Install all the files in 'Dependencies' folder
Install the certificate 'RetroArch_UWP_1.14.4.0_arm.cer' as Trusted People (Local Machine)
Finally install the app 'RetroArch_UWP_1.10.4.0_arm.appx'
Spoiler: Get Started
By default Retroarch will be installed without assets
It's very important as first step to do the following:
Go to Online Updater
Select 'Update Cores Info Files' (Then wait)
Select 'Update Assets' (Then wait)
Select 'Update Databases' (Then wait)
Select 'Update Overlays' (Then wait)
Select 'Update GLSL/Slang Shaders'
Done
-----------------------------
If you faced any issue with the update process do the following:
Go to: Click Here
Then download the requested file
Extract the file to any location you want (I prefer to extract using computer then copy the files)
Go to RetroArch Settings (Second Icon from the right)
Scroll to the bottom and Select 'Directories'
Find the requested target and change the location to the new location (where you extract file.zip)
Restart
Spoiler: Supported Cores
Arcade:
FB Alpha 2012
FBNeo
MAME2000
MAME2003-Plus
Special:
DOS Box (Pure)
Vectrex (GLES 2.0)
ScummVM (2.6.0) Thanks to diablodiab
Game & Watch
Atari:
2600
5200
7800
Jaguar
Lynx
Nintendo:
NES
SNES
N64 (GLES 2.0, GLES 3.0)
GB / GBC / GBA
NDS
VirtualBoy
Pokémon Mini
SEGA:
SG1000
Master System
GameGear
Mega Drive
Mega CD
Saturn
Dreamcast (D3D11, GLES 2.0)
NEC:
PC Engine
PC-FX
NEC PC-8000
Sony:
PlayStation PSX (with GLES 3.0 support)
PPSSPP (GLES 2.0)
SNK:
Neo Geo Pocket
NeoGeo CD
Others:
The 3DO
WonderSwan
Fairchild Channel F
Game Music Emu
LowRes NX
Magnavox Odyssey2 (Videopac)
Microsoft MSX
ColecoVision
Pocket CDG
Watara Supervision
TIC-80
Commodore Series (64 , C128, CBM-II..etc)
Amstrad CPC
Mac II
Jump 'n Bump
Sinclair ZX81
Mattel Intellivision
Games Engines:
OpenLara (GLES 3.0)
2048
Cannonball
Cave Story
Doom, Doom II
Flashback
Quake
Rick Dangerous
Spoiler: Load Content
By default you can access to the content using
Playlists
Local 'Downloads' folder
'LocalState' folder
Pick your custom folder
I made some improvements on the picker process so,
RetroArch will remember the last picked folder so you can open it again
Recommended: I advice you to always select root folder for all games
--------------------------
Create Playlists:
Playlists is nice solution to organize your games
also you can access to any playlist later without browsing any folder
Steps:
1- Press on 'Playlists' icon near to home icon at the bottom2- Select 'Import Content'3- Select 'Manual Scan'4- Select 'Content Directory'--Click 'Open'--Select your target folder, like 'DS Games'--After confirm click on 'Scan This Directory'5- Scroll to 'Default Core' and select the core6- Scroll to the end then click 'Start Scan'7- Your 'Playlist' will be ready in 'Playlists' menu8- Repeat the process for each folder you have9- Done, you can access the games anytime
Spoiler: Touch GamePad
By default RetroArch will not place any touch pad on the screen
To activate the touch pad do the following:
Be sure you have 'Update Overlays' in 'Online Updater'
Go to 'Settings' at the bottom
Scroll to 'On-Screen Display' and press on it
Then select 'On-Screen Overlay'
Scroll to 'Overlay Preset'
A lot of presets will be available choose what you want
---------------------------
Note: You can customize this option later from the game by pressing back button
after the menu appear scroll to 'On-Screen Overlay' and do the same steps
Spoiler: Interface
If you felt that the default interface is a bit big
You can scale it down:
Go to 'Settings' at the bottom
Scroll to 'User Interface'
Select 'Appearance'
Select 'Menu Scale Factor'
Choose what is good for you
After confirm the result go to 'Home'
Scroll to 'Configuration File'
Click on 'Save Current Configuration'
Done
Spoiler: Menu Style
The default menu called 'glui' (for Mobile), It's compatible with the mobile interface and very fast
but if you want to change the menu please note:
1- Menu 'ozone' is compatible with 'dxd11'--To Goback inside the menus press on the bottom bar2- Menu 'rgui' is compatible with any video driver and fast--To Goback inside the menus press on the top bar3- Menu 'xmb' is compatible with 'dxd11' and work fine with 'gl'but 'xmb' is not user friendly for mobile and need a controller to navigate better
How to change it?
Go to 'Settings' at the bottom
Select 'Drivers'
Scroll to 'Menu'
Choose the menu you want
before exit and apply change the compatible video driver
Quite RetroArch
Reopen, Done
Spoiler: Shaders
Shaders can add magical touch to the game
To enable shaders be sure you have 'Update GLSL/Slang Shaders' from 'Online Updater'
Steps:
Open the game
Press back button to In-Game menu
Scroll down to 'Shaders'
Enable 'Video Shaders'
Select 'Load'
Choose whatever you want
Done
Note 1: Some shaders could reduce the performance but most of them fast
Note 2: GLSL shaders will work only when the video driver set to GL
Spoiler: Free Content
Libretro is providing free content and some roms for testing
to get these files do the following:
Open 'Online Updater'
Select 'Content Downloader'
Download whatever you want
Downloaded rom will be exist at 'Load Content' -> 'Downloads'
Done
Spoiler: GLES Support
The fact about GLES 2.0, 3.0 support is: Microsoft using ANGLE library to translate the OpenGL ES call to DirectX
so at the end we are using DirectX.
That's led to few visual issues in the cores that support GLES and I'm working very hard to find solutions asap.
Spoiler: Non-UWP Support
Many of the compiled cores could work on the ARM release of RetroArch (NON-UWP)
Go to the download link above and download the cores separately from my Repo then add them to the Retoarch in 'cores' folder
Spoiler: App Permissions
For your privacy concerns here some explains for the app permissions:
-Internet access: used for download contents and online play-Act as server: for online/network play-File System (WOA only): Reducing the UWP limitations for files access (disabled by default)-Uses all system resources: for specific hardware usage (probable for some RetroArch advanced features)-codeGeneration: added specificly for PPSSPP core as it's uses VirtualProtectFromApp functionread more about VirtualProtectFromApp: Click Here
Spoiler: Known Issue
I guess there is known issue in libretro cores,
When the performance is low try ONE of the following:
Pause the game for seconds then resume
Rotate the screen
in some cases it will back to the normal speed
If you found any thing not clear, or you faced any issue while installing.. please let me know I will be happy to help.
Many thanks.
yo instale en mi lumia 640 XL y cuando lo abro se cierra solo
tryhard-_ said:
yo instale en mi lumia 640 XL y cuando lo abro se cierra solo
Click to expand...
Click to collapse
Not sure why it's not working on 640/650, I will try to see some way to test on similar device to do test.
Same issue on Windows 10 ARM ( on surface RT )
Timdu66 said:
Same issue on Windows 10 ARM ( on surface RT )
Click to expand...
Click to collapse
Can you please test this release and let me know if it has the same issue:
Download RetroArch (ARM) 1.9.10
astifan said:
Can you please test this release and let me know if it has the same issue:
Download RetroArch (ARM) 1.9.10
Click to expand...
Click to collapse
Thank you for your reply. I try this version but it fails to install
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Timdu66 said:
Thank you for your reply. I try this version but it fails to install
Click to expand...
Click to collapse
It should work fine, unless your system build is 14393 or below.
astifan said:
It should work fine, unless your system build is 14393 or below.
Click to expand...
Click to collapse
I have the build 15035 (the only windows 10 on RT… unfortunately) perhaps if there is no build testing (min or max) it’s could be great
Timdu66 said:
I have the build 15035 (the only windows 10 on RT… unfortunately) perhaps if there is no build testing (min or max) it’s could be great
Click to expand...
Click to collapse
Try this version, I re-targeted the package to 14393 and merged the cores from the latest release in case it worked, so you will not missed any core.
Download RetroArch (Latest)
UPDATE (New readers): For WinRT Use release that marked "No DirectX"
Hope it will work fine (don't forget to re-install the certificate)
Nice !!! Thank you a lot, it works ...(and in French ...it's better for me)
Timdu66 said:
Nice !!! Thank you a lot, it works ...(and in French ...it's better for me)
Click to expand...
Click to collapse
Great.. I'm happy to hear that,
Can you help me to test this release:
Download RetroArch (Latest)
UPDATE (New readers): For WinRT Use release that marked "No DirectX"
I noticed that any release compiled with Visual Studio 2022 will crash on older builds
but the MSVC 2017 release worked fine.
I hope it will work for you as well
Thank you for your answer. Sorry for the long time between yours and my answer.
I'm testing this version, but it crash when open Rétro Arch : There is the logo and the app closing.
Timdu66 said:
Thank you for your answer. Sorry for the long time between yours and my answer.
I'm testing this version, but it crash when open Rétro Arch : There is the logo and the app closing.
Click to expand...
Click to collapse
Thanks, I really appreciate your help.. just one last request try again and after the crash go directly to "Event Viewer" from:
- Start Search
- Or Windows+R then type eventvwr
Then:
- Select Windows Logs
- Select Applications
You should find error log related to RetroArch at the top..
Just do screenshot for the details so I can understand what exactly is getting failed.
Many thanks for your time.
astifan said:
Thanks, I really appreciate your help.. just one last request try again and after the crash go directly to "Event Viewer" from:
- Start Search
- Or Windows+R then type eventvwr
Then:
- Select Windows Logs
- Select Applications
You should find error log related to RetroArch at the top..
Just do screenshot for the details so I can understand what exactly is getting failed.
Many thanks for your time.
Click to expand...
Click to collapse
Here the screenshots.
When i try to access to TWui/Operational log for additional infomation, i have a big blue screen of death !
Thanks to looking for the issue !
Timdu66 said:
Here the screenshots Thanks to looking for the issue !
Click to expand...
Click to collapse
Many Thanks!!, Sorry my mistake I was mean the details in General Tab.. it will contains the main reason for the crash
astifan said:
Many Thanks!!, Sorry my mistake I was mean the details in General Tab.. it will contains the main reason for the crash
View attachment 5589541
Click to expand...
Click to collapse
Sorry .. i re-edit my last post to show other tests
Timdu66 said:
Sorry .. i re-edit my last post to show other tests
Click to expand...
Click to collapse
Great, I'm very thankful for your help and your time, it's OK there is no need for TWui/Operational
the screenshots is very helpful.. I will push a fix for this issue within few days.. Many thanks.
astifan said:
Great, I'm very thankful for your help and your time, it's OK there is no need for TWui/Operational
the screenshots is very helpful.. I will push a fix for this issue within few days.. Many thanks.
Click to expand...
Click to collapse
With pleasure ! Thank you, because it is you who work, for my part, I am only testing
astifan said:
Try this version, I re-targeted the package to 14393 and merged the cores from the latest release in case it worked, so you will not missed any core.
Download RetroArch 1.9.10 (14393)
Hope it will work fine (don't forget to re-install the certificate)
Click to expand...
Click to collapse
Hi,
I am trying this versione on the same machine and windows of Timdu66 but I can't install the certificate. It returns error if installing on local machine.
Error is on rundll32.exe - the parameter is incorrect
Is thera a way to work it out?
Slycarter said:
Hi,
I am trying this versione on the same machine and windows of Timdu66 but I can't install the certificate. It returns error if installing on local machine.
Error is on rundll32.exe - the parameter is incorrect
Is thera a way to work it out?
Click to expand...
Click to collapse
Not sure if the system is missing something, but try the following:
1- Open 'Start Menu'
2- Search for 'certmgr'
3- Select "Manage Computer Certificates"
4- Right click on "Trusted People"
5- Select "All Tasks"
6- Then choose "Import"
and follow the instructions.
(Another solution) Alternative method (if there is no other solution):
1- Turn on Developer mode (Settings->Privacy & Security->For developers)
2- Extract the package with '7z' or any archive app (to D:\RetroArch) as example
3- Register the package with 'powershell' (Win+R-> type 'powershell')
4- Run the following command:
Code:
Add-AppxPackage -Register D:\RetroArch\AppxManifest.xml
Hope it will work.