Android NDK r3 and OpenGL ES 2.0! - G1 Android Development
Android Games WILL be improved thanks to NDK r3 and OpenGL ES 2.0
Developers on the Android platform have already been pushing the boundaries of Android gaming. Even Quake 3 has been seen running on the Android platform. Things can only get better with today’s announcement.
The Android Developers Blog today announced the availability of the NDK r3 that will let android developers directly access OpenGL ES 2.0 features.
Applications targeting Android 2.0 (API level 5) or higher can now directly access OpenGL ES 2.0 features. This brings the ability to control graphics rendering through vertex and fragment shader programs, using the GLSL shading language.
A new trivial sample, named “hello-gl2″, demonstrates how to render a simple triangle using both shader types.
With access to these enhanced OpenGL ES features game graphics should be greatly improved and we should start to see an awesome future for Android gaming. Obviously, we still need developers to take advantage of the new API and have the hardware powerful enough to use it, but everything is getting real close to serious gaming on Android.
Source: Android Developers Blog
Source: AndroidSPIN
-----
What is the Android NDK?
The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications.
Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. This can provide benefits to certain classes of applications, in the form of reuse of existing code and in some cases increased speed.
The NDK provides:
* A set of tools and build files used to generate native code libraries from C and C++ sources
* A way to embed the corresponding native libraries into application package files (.apks) that can be deployed on Android devices
* A set of native system headers and libraries that will be supported in all future versions of the Android platform, starting from Android 1.5
* Documentation, samples, and tutorials
This release of the NDK supports the ARMv5TE machine instruction set and provides stable headers for libc (the C library), libm (the Math library), OpenGL ES (3D graphics library), the JNI interface, and other libraries, as listed in the section below.
The NDK will not benefit most applications. As a developer, you will need to balance its benefits against its drawbacks; notably, using native code does not result in an automatic performance increase, but does always increase application complexity. Typical good candidates for the NDK are self-contained, CPU-intensive operations that don't allocate much memory, such as signal processing, physics simulation, and so on. Simply re-coding a method to run in C usually does not result in a large performance increase. The NDK can, however, can be an effective way to reuse a large corpus of existing C/C++ code.
Please note that the NDK does not enable you to develop native-only applications. Android's primary runtime remains the Dalvik virtual machine.
Contents of the NDK
Development tools
The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that can generate native ARM binaries on Linux, OS X, and Windows (with Cygwin) platforms.
It provides a set of system headers for stable native APIs that are guaranteed to be supported in all later releases of the platform:
* libc (C library) headers
* libm (math library) headers
* JNI interface headers
* libz (Zlib compression) headers
* liblog (Android logging) header
* OpenGL ES 1.1 and OpenGL ES 2.0 (3D graphics libraries) headers
* A Minimal set of headers for C++ support
The NDK also provides a build system that lets you work efficiently with your sources, without having to handle the toolchain/platform/CPU/ABI details. You create very short build files to describe which sources to compile and which Android application will use them — the build system compiles the sources and places the shared libraries directly in your application project.
Important: With the exception of the libraries listed above, native system libraries in the Android platform are not stable and may change in future platform versions. Your applications should only make use of the stable native system libraries provided in this NDK.
Documentation
The NDK package includes a set of documentation that describes the capabilities of the NDK and how to use it to create shared libraries for your Android applications. In this release, the documentation is provided only in the downloadable NDK package. You can find the documentation in the <ndk>/docs/ directory. Included are these files:
* INSTALL.TXT — describes how to install the NDK and configure it for your host system
* OVERVIEW.TXT — provides an overview of the NDK capabilities and usage
* ANDROID-MK.TXT — describes the use of the Android.mk file, which defines the native sources you want to compile
* APPLICATION-MK.TXT — describes the use of the Application.mk file, which describes the native sources required by your Android application
* HOWTO.TXT — information about common tasks associated with NDK development.
* SYSTEM-ISSUES.TXT — known issues in the Android system images that you should be aware of, if you are developing using the NDK.
* STABLE-APIS.TXT — a complete list of the stable APIs exposed by headers in the NDK.
* CPU-ARCH-ABIS.TXT — a description of supported CPU architectures and how to target them.
* CHANGES.TXT — a complete list of changes to the NDK across all releases.
Additionally, the package includes detailed information about the "bionic" C library provided with the Android platform that you should be aware of, if you are developing using the NDK. You can find the documentation in the <ndk>/docs/system/libc/ directory:
* OVERVIEW.TXT — provides an overview of the "bionic" C library and the features it offers.
Sample applications
The NDK includes sample Android applications that illustrate how to use native code in your Android applications. For more information, see Using the Sample Applications.
Click to expand...
Click to collapse
You can download the Android NDK: here
just waiting for it ! Good job!
Kind of makes sense now why the binary 3D driver broke from 1.6->2.0
and i most care about whether our G1 are supported ?!
huhaifan1 said:
and i most care about whether our G1 are supported ?!
Click to expand...
Click to collapse
well if the rumors about every single android device being upgraded to 2.1 in the US are true then id think so. we already have partial 3D working, so i think with this release the devs will be able to make it work
Except the chip in the G1 is not built for 2.0.
IMHO, if you'll see 2.0 drivers on the G1 (or Hero) it'll be software. But I'd love to be proven wrong, so please do.
Chainfire said:
Except the chip in the G1 is not built for 2.0.
IMHO, if you'll see 2.0 drivers on the G1 (or Hero) it'll be software. But I'd love to be proven wrong, so please do.
Click to expand...
Click to collapse
from what ive read on androidspin and phandroid, some phones will receive a slimmer 2.1 that doesnt support lwp OTA. some devs have found ways to use software libs and kernel edits to use partial 3D acceleration in some 2.1 roms. Firerat and Case_ managed to get 3D and Youtube HD working on Canon's Roms. The next OpenEclair should have fully working 3D, lwps, and video according to wesgarner, so i think that this upcoming release mentioned in the article will provide more tools for our devs to use on the G1.
but when EXACTLY - like DATE - are they coming!?
chim4ira312 said:
but when EXACTLY - like DATE - are they coming!?
Click to expand...
Click to collapse
The NDK is available now, maybe the devs should look into it:
http://developer.android.com/intl/de/sdk/ndk/index.html
What is the Android NDK?
The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications.
Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. This can provide benefits to certain classes of applications, in the form of reuse of existing code and in some cases increased speed.
The NDK provides:
* A set of tools and build files used to generate native code libraries from C and C++ sources
* A way to embed the corresponding native libraries into application package files (.apks) that can be deployed on Android devices
* A set of native system headers and libraries that will be supported in all future versions of the Android platform, starting from Android 1.5
* Documentation, samples, and tutorials
This release of the NDK supports the ARMv5TE machine instruction set and provides stable headers for libc (the C library), libm (the Math library), OpenGL ES (3D graphics library), the JNI interface, and other libraries, as listed in the section below.
The NDK will not benefit most applications. As a developer, you will need to balance its benefits against its drawbacks; notably, using native code does not result in an automatic performance increase, but does always increase application complexity. Typical good candidates for the NDK are self-contained, CPU-intensive operations that don't allocate much memory, such as signal processing, physics simulation, and so on. Simply re-coding a method to run in C usually does not result in a large performance increase. The NDK can, however, can be an effective way to reuse a large corpus of existing C/C++ code.
Please note that the NDK does not enable you to develop native-only applications. Android's primary runtime remains the Dalvik virtual machine.
Contents of the NDK
Development tools
The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that can generate native ARM binaries on Linux, OS X, and Windows (with Cygwin) platforms.
It provides a set of system headers for stable native APIs that are guaranteed to be supported in all later releases of the platform:
* libc (C library) headers
* libm (math library) headers
* JNI interface headers
* libz (Zlib compression) headers
* liblog (Android logging) header
* OpenGL ES 1.1 and OpenGL ES 2.0 (3D graphics libraries) headers
* A Minimal set of headers for C++ support
The NDK also provides a build system that lets you work efficiently with your sources, without having to handle the toolchain/platform/CPU/ABI details. You create very short build files to describe which sources to compile and which Android application will use them — the build system compiles the sources and places the shared libraries directly in your application project.
Important: With the exception of the libraries listed above, native system libraries in the Android platform are not stable and may change in future platform versions. Your applications should only make use of the stable native system libraries provided in this NDK.
Documentation
The NDK package includes a set of documentation that describes the capabilities of the NDK and how to use it to create shared libraries for your Android applications. In this release, the documentation is provided only in the downloadable NDK package. You can find the documentation in the <ndk>/docs/ directory. Included are these files:
* INSTALL.TXT — describes how to install the NDK and configure it for your host system
* OVERVIEW.TXT — provides an overview of the NDK capabilities and usage
* ANDROID-MK.TXT — describes the use of the Android.mk file, which defines the native sources you want to compile
* APPLICATION-MK.TXT — describes the use of the Application.mk file, which describes the native sources required by your Android application
* HOWTO.TXT — information about common tasks associated with NDK development.
* SYSTEM-ISSUES.TXT — known issues in the Android system images that you should be aware of, if you are developing using the NDK.
* STABLE-APIS.TXT — a complete list of the stable APIs exposed by headers in the NDK.
* CPU-ARCH-ABIS.TXT — a description of supported CPU architectures and how to target them.
* CHANGES.TXT — a complete list of changes to the NDK across all releases.
Additionally, the package includes detailed information about the "bionic" C library provided with the Android platform that you should be aware of, if you are developing using the NDK. You can find the documentation in the <ndk>/docs/system/libc/ directory:
* OVERVIEW.TXT — provides an overview of the "bionic" C library and the features it offers.
Sample applications
The NDK includes sample Android applications that illustrate how to use native code in your Android applications. For more information, see Using the Sample Applications.
Click to expand...
Click to collapse
This doesn't at all in any way say that we're getting 2.0 drivers for the G1. All it's saying is that phones with 2.0 will be able to directly access ES2.0 functions.
Which, really, has absolutely nothing to do with the driver issue we face. Unless you can point out something I missed.
Gary13579 said:
This doesn't at all in any way say that we're getting 2.0 drivers for the G1. All it's saying is that phones with 2.0 will be able to directly access ES2.0 functions.
Which, really, has absolutely nothing to do with the driver issue we face. Unless you can point out something I missed.
Click to expand...
Click to collapse
sorry i probably misunderstood the article =/
im still not very experienced with android development, i thought this would help the devs a little bit with getting 3d working (since theyre already doing that without official drivers)
I did indeed get a humongous boner on reading this earlier. It was enhanced by 3D.
My favorite part about this is the new ability to use openGL in apps! That means the entire face of our OS is going to change.
...and speaking of OS... Qualcom/htc just released a new radio for the G1. The G1 To this day holds over 50% of the android installed user base. There is no doubt the G1 will live beyond 1.X
bleah writing games in opengl es 1.0 was hard enough...
Gary13579 said:
This doesn't at all in any way say that we're getting 2.0 drivers for the G1. All it's saying is that phones with 2.0 will be able to directly access ES2.0 functions.
Which, really, has absolutely nothing to do with the driver issue we face. Unless you can point out something I missed.
Click to expand...
Click to collapse
agreed
the binary still needs to be available
as far as I can see with have two
the open source one
/system/lib/egl/libGLES_android.so
and the proprietary
/system/lib/egl/libGLES_qcom.so
the quoted text in the OP is basically stating that an Android developer will now be able to mix in a little c/c++ to get direct native access to opengl es
functions
Firerat said:
agreed
the binary still needs to be available
as far as I can see with have two
the open source one
/system/lib/egl/libGLES_android.so
and the proprietary
/system/lib/egl/libGLES_qcom.so
the quoted text in the OP is basically stating that an Android developer will now be able to mix in a little c/c++ to get direct native access to opengl es
functions
Click to expand...
Click to collapse
sorry guys like i said i misunderstood =/ i was hoping the NDK would provide some help but i now see its pretty much for apps, facepalm >_<;
edited the title to avoid further confusion lol
speedysilwady said:
edited the title to avoid further confusion lol
Click to expand...
Click to collapse
Was just about to do that, thanks .
I'm sure we'll get drivers eventually, either hacked or official. Just a matter of time.
Gary13579 said:
Was just about to do that, thanks .
I'm sure we'll get drivers eventually, either hacked or official. Just a matter of time.
Click to expand...
Click to collapse
haha no problem, glad to see i have a moderator type mentality. lol
yeah im sure we will, theyre already partially working, so its only a matter of time hopefully
What Chainfire said is that there is no hardware support for OpenGl ES 2.0 in msm720x chips. (refs here, sorry couldn't find official spec datasheet).
So even if 2.0 is supported, it will only be through software drivers implementation, which means really slow rendering.
spocky12 said:
What Chainfire said is that there is no hardware support for OpenGl ES 2.0 in msm720x chips. (refs here, sorry couldn't find official spec datasheet).
So even if 2.0 is supported, it will only be through software drivers implementation, which means really slow rendering.
Click to expand...
Click to collapse
Thats right.
But most Games will probably/hopefully still be written for OpenGL1.1. (Because of the userbase whatsoever)
For a start, but to focus at the future, too bad, the G1 will get old sooner
Related
Android Native Development Kit RELEASED
Check it out here: http://android-developers.blogspot.com/2009/06/introducing-android-15-ndk-release-1.html
Yes, I heard they were making this actually happen... As for building Apps in C/C++ Native.. Pros: -More Stable -More Unique (no Android UI features unless integrated) -More Sophisticated -Will open to a more known (learned) framework, by this I mean if you know C/C++ and already have apps built for other mobile devices it should be much easier to port it over to Android (look out for the flood Android Market) -Other open sourced / commercial apps will be more easily ported...some ideas?...START A THREAD!!!...but just for the record...Apache...FireFox...just about anything that has an open source that relies on C programming...crap you can even extend this by adding Ruby, Perl...etc. -Remember, this is a Development Kit...it just adds tools to the 1.5 SDK that allow you to create C based applications and build them in the android environment. All your apps should still work going back to RC-30 or even further back...depends on the kernel support I would guess. Cons: Much Larger Apps (file size) Need to learn how the Linux Kernel works (for developers) Other: Load times? Ok, so for example if you have one app...say...TuneWiki...just an example of a popular resource hog...if it were to be redeveloped under C++ and optimized for the Android Modified Linux Kernel...your resources could easily be cut in half since you are not relying on the Dalvik VM. SO...outcome? Better for all, as long as you know what you are doing. We should also see a huge upswing in crapware on the market from student programmers doing C++ projects on an easy open-sourced mobile platform (that has a public SDK). So you'll see a lot of "Hello World" type apps that will have next to no function...have fun with those................... From the Official NDK User Forum: Link
acidnine Very nice post. Thanks for the insight.
acidnine said: Pros: -More Stable Click to expand... Click to collapse The opposite actually. Poorly written interpreted code breaks elegantly in a vm. Poorly written compiled code can take a whole system down. -More Unique (no Android UI features unless integrated) Click to expand... Click to collapse You can't integrate any Android frameworks (UIs, etc) period. -More Sophisticated Click to expand... Click to collapse I've seen some very sophisticated Java and some **** C/C++. Don't assume that higher level programming languages are necessarily less sophisticated than lower level ones. -Will open to a more known (learned) framework, by this I mean if you know C/C++ and already have apps built for other mobile devices it should be much easier to port it over to Android (look out for the flood Android Market) Click to expand... Click to collapse The NDK will enable some applications that couldn't previously have been done in the Dalvik vm for performance issues, but it isn't going to be a "flood". Fact of the matter is a lot of developers who have needed native performance or didn't want to rewrite a C/C++ codebase have deployed native code already. but just for the record...Apache...FireFox...just about anything that has an open source that relies on C programming...crap you can even extend this by adding Ruby, Perl...etc. Click to expand... Click to collapse FF is written in C++... [edit: I should also point out that the NDK provides for native code support in the form of libraries (mainly as a helper for computation-intensive functions). Nothing in the way of window managers or other UI is addressed, meaning for the majority of "visible" C/C++ apps the developer would have to rewrite a significant portion in Java still.] Cons: Much Larger Apps (file size) Need to learn how the Linux Kernel works (for developers) Click to expand... Click to collapse I don't know what to say other than these two statements are generally incorrect. There are two main cons to using NDK as opposed to the standard SDK, and they are 1) Reduced (or no) compatibility on future Android devices 2) Significantly reduced ease of debugging.
very interesting...subscribed
jashsu said: You can't integrate any Android frameworks (UIs, etc) period. Click to expand... Click to collapse Not true. This isn't full native code apps, this is the ability to call native libraries in a davlik app. From the actual NDK page ... The NDK provides: A set of tools and build files used to generate native code libraries from C and C++ sources A way to embed the corresponding native libraries into application package files (.apks) that can be deployed on Android devices A set of native system headers and libraries that will be supported in all future versions of the Android platform, starting from Android 1.5 Documentation, samples, and tutorials Please note that the NDK does not enable you to develop native-only applications. Android's primary runtime remains the Dalvik virtual machine. Click to expand... Click to collapse
.milFox said: Not true. This isn't full native code apps, this is the ability to call native libraries in a davlik app. From the actual NDK page ... Click to expand... Click to collapse Correct. As I pointed out above, the NDK actually is just a framework for building native libraries that standard dalvik apps then call. However, my point was that the libraries themselves (the products of the NDK) cannot access or invoke the Android framework. There is a pointed distinction.
At least this could mean the beginning of some video codec porting to the G1's hardware. Be nice to be able to actually make use of my video collection without having to reencode everything.
neonrush said: At least this could mean the beginning of some video codec porting to the G1's hardware. Be nice to be able to actually make use of my video collection without having to reencode everything. Click to expand... Click to collapse That is probably what the NDK is perfect for. It's CPU intensive stuff, already written in platform independent C/C++ that can then be called from within a nice Androidy UI.
So they basically added JNI to the SDK...
http://en.wikipedia.org/wiki/Java_Native_Interface
NDK 1.6 has enabled QT & KDE apps (natively) for Android Devices
So they claim: Source: http://www.kdedevelopers.org/node/4070 More on NDK: http://android-developers.blogspot.com/2009/09/now-available-android-16-ndk.html
That post does not claim anything. The person simply says it is possible for Qt to run with the NDK. NDK 1.6 has not enabled anything directly.
Qt? heh. I h8 qt. It has a real childish look about it. Qt die die die. GTK would be nice. Most real apps use GTK. It would really open a lot of doors for using REAL software, i.e. though openoffice would be a bit too much of a HOG, abiword (which is a very nice *and light* word processor) should work (system requirements below) along with other similar software (spreadsheet, etc.). And the good news is that the same things that would allow Qt would also allow GTK. AbiWord System Requirements: GNU/Linux, BSD, Solaris (2.6, 7,8,9,10), AIX, HP/UX (10.20, 11.0), OSF/1, Tru64: * GTK+ 2.2 or newer (2.2.4 recommended) * At least 16MB RAM (embedded systems probably won't require more than 8) * Any processor that supports any of these operating systems (which is effectively, any processor) * Optionally GNOME 2.2 (2.4 recommended) Click to expand... Click to collapse Anyone feel like helping out with a fun new project?
Note: I don't see anything in the 1.6 version NDK that would make Qt or GTK easier... in fact, it still looks like a nightmare.
[Q] Running a C++ binary
So this is probably a silly question. I have this rather complicated app that would be a heck of a lot of work to convert to Java. It runs in the command line and works fine in Linux. Trying to run it fails, but x86 bytecode probably isn't very ARM friendly. Is there a specific way I need to compile the application? Is it even possible to run it from a console emulator? Thanks.
Try Android NDK I am also new to Android Dev ( 15+ years Linux, 10+ years Java, etc.) I am not an expert but for your purposes you need the "Android NDK" in addition to the "Android SDK" that most developers utilize. "The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications. Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. " Basically the tools are needed to cross compile C++ source code for the target ARM environment. I am prevented from posting the download URL for some bizarre reason, but it is listed under "Native Development Tools" on the left side of the web page for the standard "Android SDK" download.
Yeah that's because you are new. It's a system to prevent spammers from posting URLs. When you have a couple of posts the restriction will disappear Anyway; found it, seems to be what I'm looking for. I'll check it out in the morning. Big thanks
Dmitry Moskalchukhas written a patch for the ndk to better support c++ see crytax dot net there are posts on google groups android-ndk talking about it
Thxs for the info. I was aware that the NDK did not include all of the libs that desktop Linux/UNIX developers expect. The suggested patched version adds the STL libs back in. Sent from my PC36100 using XDA App
There are A LOT of libraries missing I guess I'll just keep it a hosted app. Thanks for all the input
[Q] OpenGL ES source files
Hello everybody, I am trying to build the OpenGL SO lib from android sources (libGLESv2.so) and i would like a little bit more understanding of the internal mechanism of Android OpenGL ES and the flow. Please correct me where i am wrong: I know that in windows a developer includes gl.h and static link to OpenGL32(64).lib (which in turn dynamically link to OpenGL32.dll (probably there is a way to dynamic linke to OpenGL32.dll by the developer but that's not important). The developer is exposed to the declaration of OpenGL API's but the implementation which i assume to be HW dependent. The same scenario, Android: assuming developer import .opengl.GLES20 and calls the following method: GLES20.glTexEnvf(.... I would like to know what's going on behind the scenes in android (maybe Linux is better for an Android beginner). the implementation which reside in opengl/java/android/opengl/GLES20.java source calls the native C function glTexEnvf which unlike windows we have it's implementation which reside in opengl/libagl. Is it true? In any case what is the GLES2_dbg library in /libs/GLES20_dbg? i can see there some kind of debug implementation with python scripts... are they to compile OpenGL debug version? What are the .in files and gl2.cpp file in /libs/GLES20? Where are the HW calls? does each GPU vendor sends his libGLESv2 implementation for HW calls as i saw the libGLESv2_adreno200.so in my xperia arc? Please help me understand the flow. If you have a link which explain this structure even in Linux it will be great. Nir
Desktop apps ported to Windows RT
The purpose of this thread is to provide a list of desktop apps which have been recompiled to run on hacked Windows RT devices. A secondary purpose is to request or discuss such ports. Listing apps which run without recompilation (.NET 4.x) and providing libraries which are ported and/or known to work are also good uses of the thread. However, major apps, or those expected to lead to significant discussion, should probably get their own thread. Please help keep this one organized. Please post links to compiled apps for Windows RT desktop, and if possible also link to their source code. I will make minimal testing of the apps before listing them, but nothing extensive; apps may have known or unknown issues, and it's even possible that somebody will link malicious apps here. Use at your own risk. DO NOT request ports of closed-source applications! It's not possible (unless they're pure .NET 4.x, in which case they don't need to be ported) and you will look like a fool and waste your time. Additionally, at this time, code which requires GCC to build (i.e. can't build under MSVC) is impractical to port. Latest changes 06 Apr: Updated link for IceChat to a newer version (thanks @TheExileFox!) 03 Sep: Updated the link for Process Hacker (thanks again, @bfosterjr!) 10 Apr: Added pForth and Python's LibFFI. 22 Dec: Added TeXStudio. 20 Dec: Added Nethack and Greenshot. 12 Dec: Added MicroEMACS. Updated Subversion and Notepad++. 21 Aug: Added AvP Classic. 20 Aug: Added Paint.NET, highlighted the step needed to use ClassicStartMenu. 16 Aug: Added Subversion and AutoHotKey. 10 Aug: Added Fossil. 22 Jul: Added ffmpeg, Halite, and Lua. 8 Jul: Added QupZilla, SPGT client, and QuiteRSS. 26 Jun: Added Snes9x, FileZilla, and WinMerge. 25 Jun: Added OpenSSL, QT4, and Perl, updated Synergy. 10 Jun: Added Coolplayer (Update: now with FLAC plugin). 7 Jun: Added GlDirect library and ioQuake3. 5 Jun: Updated link for Quake to the D3D version. 12 May: Added MFPDemo (sorry I was late posting it). 2 May: Added WinDjVu. 28 Apr: Added an updated version of MFC. truncated...
Apps which have been recompiled: Bochs. x86 Emulator. Known issue: no network support. http://forum.xda-developers.com/attachment.php?attachmentid=1625048&d=1357575232 TightVNC. VNC server and client. http://forum.xda-developers.com/attachment.php?attachmentid=1624600&d=1357561475 PuTTY Suite. SSH/Rsh/telnet client and helpers. Printing fixed in this build. http://forum.xda-developers.com/attachment.php?attachmentid=1637160&d=1357948281 7-Zip. Utility for file archives and disk images. https://mega.co.nz/#!FhQV3SZA!MWayY1mV4b7Bvjs9nJNq_yiQxDEaJFQpnnA3ZNApq7g Notepad++. Powerful but simple text/code editor New update and Compare plugin. http://forum.xda-developers.com/showthread.php?t=2556112 SciTE. Code editor (http://www.scintilla.org/SciTE.html). http://fearthecowboy.com/stuff/wscite.zip (Thanks to XDA-Devs member FearTheCowboy) IP Messenger. Peer-to-peer chat/file transfer (http://ipmsg.org/index.html.en). Binaries at http://forum.xda-developers.com/attachment.php?attachmentid=1633711&d=1357842066, source at http://forum.xda-developers.com/attachment.php?attachmentid=1633715&d=1357842310 Unikey 3.6. Known issue: without RtfIO, the "Toolkit" and "Conversion on the fly" features won't work. Older 3.1 build posted below https://dl.dropbox.com/u/8557161/rt/unikeyNT3.62_arm.7z (Thanks minhtuan99bk) CrystalBoy. Nintendo Gameboy emulator. Known issue: uses GDI+ instead of DirectX, may reduce performance. Conflicting reports as to whether it works. http://sdrv.ms/11kcXXL Thanks to DXA-Developers member daveoggy. ClassicStartMenu. Provides a hierarchical Start menu on the desktop taskbar. Restart Explorer after you run it! http://forum.xda-developers.com/attachment.php?attachmentid=1640579&d=1358061318 (Thanks Netham45). Quake 2. First-person shooter game. http://forum.xda-developers.com/attachment.php?attachmentid=1640830&d=1358070370 OpenTTD. Open-source clone of Transport Tycoon Deluxe (transportation simulation game). Known issues and download link HERE: http://forum.xda-developers.com/showpost.php?p=36674868&postcount=151 DOSBox. DOS on x86 emulator. Updated again with better performance. http://forum.xda-developers.com/showpost.php?p=36620852&postcount=117 Node.JS.: JavaScript program/web server execution environment. Will be slower than usual due to lack of v8 JIT. More info: http://forum.xda-developers.com/showpost.php?p=36694633&postcount=1 FAR Manager. 2-panel terminal-based File/Archive manager (think Total Commander, etc.). Updated with plugins. http://forum.xda-developers.com/showpost.php?p=36733772&postcount=1 Miranda IM. Multi-protocol chat/IM client. http://forum.xda-developers.com/attachment.php?attachmentid=1649674&d=1358334467 Vim, GVim, etc. Code and text editor. Info and download links here: http://forum.xda-developers.com/showthread.php?p=36930991 SumatraPDF. Document reader (PDFs, possibly some other formats). Read and download here: http://forum.xda-developers.com/showthread.php?t=2098594 Audacity. Digital audio recording and editing. Info and downloads: http://forum.xda-developers.com/showthread.php?t=2103779 VirtuaWin. Virtual desktop utility. http://forum.xda-developers.com/showthread.php?t=2110131 Mini vMac. Emulator for very early Macintosh computers. http://forum.xda-developers.com/attachment.php?attachmentid=1662947&d=1358737954 Rainmeter. Desktop customization / skinning tool. Many but not all features work: http://forum.xda-developers.com/showpost.php?p=37018422&postcount=282 OpenSSL. Crypto tool, can generate keys and certificates. May have some issues with large ECC keys. http://forum.xda-developers.com/showthread.php?t=2113595 MiKteX. LaTeX compiler (typesetting tool). Script is interpreted instead of JITed but works fine. http://forum.xda-developers.com/showthread.php?t=2113634 Greenshot. Advanced screenshot tool. http://forum.xda-developers.com/showthread.php?t=2114273 Iperf. Network performance testing tool. http://forum.xda-developers.com/showthread.php?p=37346221#post37346221 MongoDB. NoSQL database. Mongo shell doesn't work correctly locally, but the server works and other clients should as well. http://forum.xda-developers.com/showthread.php?p=37475852 ScummVM. Game platform for many older games. Known issues: many disabled features and some crashes reported in this early build. http://forum.xda-developers.com/showpost.php?p=37583092&postcount=402 ResidualVM. Platform for many old-ish 3D games. Known issues: many disabled features, most engines don't work yet. More info and download: http://forum.xda-developers.com/showpost.php?p=37632363&postcount=411 Superputty. Enhanced version of PuTTY Suite with more features. http://sdrv.ms/151FWzT (Thanks to Erwan12) NZB-O-Matic. Newsgroup post downloader (NZB download tool). http://forum.xda-developers.com/showpost.php?p=37886354&postcount=438 WabbitEMU. Texas Instruments graphing calculator emulator and dev tools. http://forum.xda-developers.com/showpost.php?p=37928562&postcount=442 Regshot. Registry shapshot/comparison tool. http://forum.xda-developers.com/showpost.php?p=37933687&postcount=1 CorsixTH. Engine for the game Theme Hospital. Includes demo, easy to use full version if you have it: http://forum.xda-developers.com/showpost.php?p=38067653&postcount=466 FreeRA. Command & Conquer Red Alert (RTS game) engine. Requires game data files. http://forum.xda-developers.com/showpost.php?p=38072727&postcount=468 FreeSynd. Syndicate (game) engine. No cutscene sound, requires game files. https://www.dropbox.com/s/ca0n0atmfl74306/Freesynd.zip Pentagram. Ultima VIII (game) engine. Required game files. http://forum.xda-developers.com/showpost.php?p=38295828&postcount=518 Free Download Manager. Standalone file downloader and bittorrent client. Has some known issues but works: http://forum.xda-developers.com/showthread.php?t=2170002 PrBoom. DOOM game engine (can use the included shareware WAD file or other game files). http://forum.xda-developers.com/showthread.php?t=2175449 ChocolateDuke3D. Duke Nukem 3D game engine. Requires game files. Has a known sound bug with workaround. http://forum.xda-developers.com/showpost.php?p=38752618&postcount=561 GemRG. Infinity game engine clone (used for games like Baldur's Gate, Icewind Dale, and Planescape: Torment). Runs pretty well although some of the newer games may stutter a little. Requires the game files from a standard install. http://forum.xda-developers.com/showthread.php?t=2177954 Process Hacker. Advanced process inspection / control tool similar to Sysinternals Process Monitor. Updated to 2.33! http://forum.xda-developers.com/windows-8-rt/rt-development/app-processhacker-2-33-t2865384 FinalBurn Alpha. Arcade game emulator. Port is still considered "alpha" quality. http://forum.xda-developers.com/showthread.php?t=2187370 SharpDevelop. C# IDE. Debugging is not yet supported and some setup work is required: http://forum.xda-developers.com/showpost.php?p=39276938&postcount=615 MAME. Arcade machine emulator (requires ROMs). Not yet fully tested; performance issues reported with some games. http://forum.xda-developers.com/showthread.php?t=2237754 WinDjVu. DjVu document viewer. http://forum.xda-developers.com/showpost.php?p=40931011&postcount=687 MFPDemo. A desktop player for video files. http://forum.xda-developers.com/showpost.php?p=40997441&postcount=691 Quake (original version) running in Direct3D (runs faster than the one that was listed here before). Instructions and downloads: http://forum.xda-developers.com/showthread.php?t=2312019 ioQuake3 (Quake 3 Arena). Requires game files. Instructions and download: http://forum.xda-developers.com/showpost.php?p=42338198&postcount=1 Coolplayer. Skinnable music player, now with FLAC support. Extra themes are available for download from the site. http://forum.xda-developers.com/showthread.php?t=2318000 Synergy. Use one mouse and keyboard across PCs (including Linux & Mac). Now with 1.4.12 beta. http://forum.xda-developers.com/showthread.php?p=37609926 Snes9x. Super Nintendo console emulator. Some features are disabled but games appear to work fine. http://forum.xda-developers.com/showthread.php?t=2339228 FileZilla. Graphical file transfer program. No support for encrypted protocols in this build, only plain FTP. http://forum.xda-developers.com/showthread.php?t=2340616 WinMerge. Diff(erencing) and merging tool. All features should work but this version is a little old; a newer one may come later. http://forum.xda-developers.com/showthread.php?t=2340560 QuiteRSS. Stand-alone RSS feed reader with embedded browser. http://forum.xda-developers.com/showthread.php?t=2355277 Single Player Game Transmitter client. Streams 3D apps with good quality and responsiveness. http://forum.xda-developers.com/showthread.php?t=2355051 QupZilla. WebKit-based web browser. Uses interpreted JS. http://forum.xda-developers.com/showthread.php?t=2353048 Lua. Scripting language, most commonly used for games. http://forum.xda-developers.com/showthread.php?p=43808775 Halite. Nice BitTorrent client somewhat like uTorrent. Currently only includes English support. Magnet links may not work...? http://forum.xda-developers.com/showthread.php?t=2372058 ffmpeg. Video player. May be very slow with some codecs. http://forum.xda-developers.com/showthread.php?t=2368706 Fossil SCM. Distributed version control software (sort of like Git or Mercurial). http://forum.xda-developers.com/showthread.php?t=2400099 Subversion. New update 1.8.5 with OpenSSL 1.0.1e. Widely used version control software. http://forum.xda-developers.com/showthread.php?t=2494931 AutoHotKey. Keyboard macros and powerful automation of Windows functions. http://forum.xda-developers.com/showthread.php?t=2408417 Paint.NET. Image manipulation program. http://forum.xda-developers.com/showthread.php?t=2411497 Alien vs. Predator Classic. First-person games based on the movies. Requires game files. http://forum.xda-developers.com/showthread.php?t=2414431 MicroEMACS. Small, EMACS-like text/code editor. Thanks to @acrossland! Binary available at Download link. https://bitbucket.org/adamcrossland/microemacs-for-surfacert Nethack. The venerable and classic "roguelike" RPG. http://forum.xda-developers.com/showthread.php?t=2576998 TeXStudio. IDE for LaTeX documents. Requires a compiler such as MiKteX (linked above). http://forum.xda-developers.com/showthread.php?t=2493219 pForth. Interpreter for the Forth programming language. Docs and samples available as well as binary: http://forum.xda-developers.com/showthread.php?p=51795065 Python 2.7.3. Programming/scripting language and runtime. New: Experimental FFI should make much more code work. (Thanks @e13000!) Runtime: http://forum.xda-developers.com/showpost.php?p=50687352&postcount=921 LibFFI: https://drive.google.com/file/d/0ByNfJPIJQw6hRnlPMHM3b1FFUFU/edit?usp=sharing Apps which run un-modified Keepass Portable. Password storage wallet. http://downloads.sourceforge.net/keepass/KeePass-2.20.1.zip Mouse Without Borders. Use one mouse across PCs (like Synergy). Install instructions here: http://forum.xda-developers.com/showpost.php?p=36428923&postcount=258 Transmission.Net Remote. Remote control of a Transmission BitTorrent service. http://forum.xda-developers.com/showthread.php?t=2101891 ShareX. Screen capture/upload utility. https://mega.co.nz/#!VxYVDZAS!KyyL8gGvjrcZWjEIOp3j_WnZqDsSucB_b3YcS0f-TbE IceChat. IRC client. http://forum.xda-developers.com/attachment.php?attachmentid=3221171&stc=1&d=1426912901 IKVM. Java, implemented in .NET (can run many pure-Java apps). http://www.ikvm.net/ Fiddler 4. Advanced HTTP proxy. To install, unpack the .EXE as an archive using 7-Zip. To run correctly, copy the file Microsoft.JScript.dll from \Windows\Microsoft.NET\Framework\v4.0.30319\ on a Win8 machine (older Windows versions may also work) to the Fiddler "install" (unpacked) directory. http://www.fiddler2.com/fiddler2/version.asp Boxie. Multipurpose utility (image conversion, file management stuff, etc.). http://boxie.codeplex.com/ (Info: http://boxie.codeplex.com/documentation) DtPad. Text/code editor. You can use the installer; there will be a warning but it's reported to work after clickthrough. http://dtpad.codeplex.com/ BoxWorld. Sokoban game. Extract the binaries from the installer using 7-Zip. http://boxworld.codeplex.com/ AstroGrep. Regular expression file/text search tool (basically, Unix grep). http://sourceforge.net/projects/astrogrep/ Notepad Enhanced. Simple text editor with tabbed interface. http://forum.xda-developers.com/showpost.php?p=37370164&postcount=374 for info. QuickSharp. C# IDE. Info at the same link as Notepad Enhanced, and also here: http://forum.xda-developers.com/showpost.php?p=37385385&postcount=378 Remote TrackPad Server. Allows controlling a PC using a Windows Phone as a server. Use the.NET 4.5 server build: http://www.luecho.com/trackpad/ ImageGlass. Image viewing program. Runs fine but crashes on exit. https://github.com/d2phap/ImageGlass (Thanks igator) Be.HexEditor. Simple editor capable of opening any file, including binary, and editing in text or hexadecimal. Requires changing a config file. http://forum.xda-developers.com/showpost.php?p=39152904&postcount=611 WindowsAppBoss. Simplifies managing sideloaded or provisioned (i.e. not-from-the-store) Metro apps. http://windowsappboss.codeplex.com/ Perl 5.12.4. Popular scripting language, especially for working with strings. Official Microsoft-signed binary will run even without jailbreak: http://forum.xda-developers.com/showthread.php?t=2331691 Greenshot. Advanced screenshot tool. Plugins may not work. http://forum.xda-developers.com/showpost.php?p=48682150&postcount=905 Native-ported libraries (mostly for developers/porters) LZMA (compression): DLL SDL (Simple Directmedia Layer). Used for a lot of game software, among other things. http://forum.xda-developers.com/showpost.php?p=36620852&postcount=117 OpenSSL (cryptography toolkit). Used by a great many open source programs that do any crypto. May have some problems with elliptical curve crypto. http://forum.xda-developers.com/showthread.php?t=2113595 Zlib (compression). Used by many open-source libraries that need to handle compressed data. http://forum.xda-developers.com/showthread.php?t=2113684 libFLAC_static, libmad, libogg_static, libpng, libtheora_static, libvorbis_static, libvorbisfile_static (media codecs). Support popular audio and video compressed formats. https://www.dropbox.com/s/rhxn7pwygfh6pka/ARMlibs.zip Boost. Commonly used C++ library/framework. Please do not download unless you need it, as doing so will use considerable bandwidth from the host. http://forum.xda-developers.com/showpost.php?p=38313568&postcount=524 wxWidgets. Common C++ library/framework for cross-platform graphical apps. https://dl.dropbox.com/u/39887/wxMSW-2.8.12-libs.7z MFC (Microsoft Foundation Classes). C++ library/framework used by many older Windows programs. http://forum.xda-developers.com/showpost.php?p=40802296&postcount=59 GlDirect (OpenGL-DirectX wrapper). Adds support for OpenGL code by wrapping Direct3D 9. http://forum.xda-developers.com/showpost.php?p=42271138&postcount=4 QT 4.8.4 (C++ utility and graphics framework). Used by many cross-platform open-source programs. http://forum.xda-developers.com/showthread.php?t=2339014 Apps removed for known issues: MonoTorrent Client. BitTorrent client, both GUI and CLI. Currently experimental/alpha quality, many people have reported that they can't download anything. GUI, CLI, More info.
Please recompile the Unikey (app helps typing Vietnamese on x86) since rt have no vietnamese keyboard. This is the app that everyone in Viet Nam is waiting to make the rt perfect for daily use. Thank you so much. Here is its website: 'unikey.org'
http://ipmsg.org/index.html.en a open source lan chat tool.I was able to compile it but it cant send message.you can have a try on it.
Netham45 posted a link to someones compiled notepad++ V6.2 http://forum.xda-developers.com/showpost.php?p=36516405&postcount=337
Thanks all. I'm looking at compiling UniKey (although it will be an old version, as the development 4.x branch is not yet open sourced). I'll also look into ipmsg. Appreciate the links. EDIT: Ugh. The GPL for UniKey is a lie (ironic, since the author *****es about people violating the GPL with his code... yet doesn't comply with it himself). It relies on a library which is only distributed in binary form, RtfIO. I can probably build the 3.1 version (which is from 2006, and should be pre-RtfIO) since, aside from the occasional piece of truly awful code practices (lots of implicit types and improper use of variable scoping) that may have been permitted by older compilers but don't work in VS 2012, there's nothing difficult about building the app. I could even build 3.6 if the author would release an ARM version of RtfIO... I couldn't legally distribute it under the GPL at that point, but I could build it. Unless you want me to give 3.1 a shot, you're going to have to ask the author for either the source to RtfIO or an ARM-compiled .LIB file of it.
Can you give a go at a TransmissionBT console as well? http://www.transmissionbt.com/resources/
I've been looking into a bittorrent client already. Transmission, unfortunately, is one of those many open source apps which technically compile on Windows, but only within a GNU-like environment, and in particular it expects to use GCC. While it may be possible to use MinGW to cross-compile for Windows on ARM, that's not the native behavior and will take more investigation. EDIT: Hadouken, at hdkn.net, appears to be a pure .NET app. It's distributed as a .MSI which doesn't work on ARM< but it may be possible to build it for .NET 4.5 architecture-independent, in which case it should run on Windows RT. It's a BitTorrent client the runs as a Windows service rather than a normal desktop apps, and uses a web interface to control it. Should work fine, though...
GoodDayToDie said: I've been looking into a bittorrent client already. Transmission, unfortunately, is one of those many open source apps which technically compile on Windows, but only within a GNU-like environment, and in particular it expects to use GCC. While it may be possible to use MinGW to cross-compile for Windows on ARM, that's not the native behavior and will take more investigation. EDIT: Hadouken, at hdkn.net, appears to be a pure .NET app. It's distributed as a .MSI which doesn't work on ARM< but it may be possible to build it for .NET 4.5 architecture-independent, in which case it should run on Windows RT. It's a BitTorrent client the runs as a Windows service rather than a normal desktop apps, and uses a web interface to control it. Should work fine, though... Click to expand... Click to collapse http://sourceforge.net/projects/wintransmission/ seems to be a c# port of transmission. less dev than the QT version, but more suitable for us. I will be taking a look at the effort involved in getting a dev environment working (either monodev or sharpdevelop)
@windowsrtc: I got IPMsg working, it's fine send and receive. I had to remove some platform-specific debug code (I could have written the ARM portion, but was feeling lazy) but it shouldn't matter except that crash logs won't be generated. Binaries, including installer, are in the smaller ZIP file. Modified source code used to build them is in the _SRC archive.
Also, any pure .net 4.5 app will work on the RT too. I've gotten Mouse without Borders, a MS-made synergy alternative running great on the Surface. Check this post: http://forum.xda-developers.com/showpost.php?p=36428923&postcount=258
OK, got a build of Unikey 3.1 here. Better than nothing, right?
VLC - do you think Surface RT has all the OS components required for VLC? I would like mkv support on Surface RT and VLC would be a good step in that direction.
ok... as bad as this will sound... java... don't judge me!
@programabd: I think VLC uses some assembly in its decoders, which will make porting difficult. I know there are ARM build already, do it's possible, but there are lots of thing which build on Windows, and build for ARM, but don't build for WIndows on ARM. @apatcas: Already looked into it. Getting Java support would give a huge number of apps ready-to-go, and however distasteful I find the language or however bad the browser plugin security is, it would be good to have. Unfortunately, the only ARM-ready versions of Java currently available are for Linux, not Windows. It's possible to port, of course, but it'll be a lot of work.
programabd said: VLC - do you think Surface RT has all the OS components required for VLC? I would like mkv support on Surface RT and VLC would be a good step in that direction. Click to expand... Click to collapse Haven't they started making their own port through the kickstarter campaign, they're making a windows 8 metro style app first then stating on an Rt version, probably not see it this side of Christmas though Edit: here's the link: http://www.kickstarter.com/projects/1061646928/vlc-for-the-new-windows-8-user-experience-metro
martyj999 said: Haven't they started making their own port through the kickstarter campaign, they're making a windows 8 metro style app first then stating on an Rt version, probably not see it this side of Christmas though Edit: here's the link: http://www.kickstarter.com/projects/1061646928/vlc-for-the-new-windows-8-user-experience-metro Click to expand... Click to collapse Thanks - I wish they would just bypass the handcuffed Metro environment, and just go for a full port to desktop ARM, but that's pretty unlikely
GoodDayToDie said: Thanks all. I'm looking at compiling UniKey (although it will be an old version, as the development 4.x branch is not yet open sourced). I'll also look into ipmsg. Appreciate the links. EDIT: Ugh. The GPL for UniKey is a lie (ironic, since the author *****es about people violating the GPL with his code... yet doesn't comply with it himself). It relies on a library which is only distributed in binary form, RtfIO. I can probably build the 3.1 version (which is from 2006, and should be pre-RtfIO) since, aside from the occasional piece of truly awful code practices (lots of implicit types and improper use of variable scoping) that may have been permitted by older compilers but don't work in VS 2012, there's nothing difficult about building the app. I could even build 3.6 if the author would release an ARM version of RtfIO... I couldn't legally distribute it under the GPL at that point, but I could build it. Unless you want me to give 3.1 a shot, you're going to have to ask the author for either the source to RtfIO or an ARM-compiled .LIB file of it. Click to expand... Click to collapse he leaves no contact information so I think there is no way to ask him for anything. In that case, if only you could help us building the 3.6 version which could be better with the open source on his website, I think 3.1 is enough for use. We, vietnamese, really appreciate your effort. Thank you.
apatcas said: ok... as bad as this will sound... java... don't judge me! Click to expand... Click to collapse This would be amazing as hard as it might be to get a port. Minecraft, people
GoodDayToDie said: @windowsrtc: I got IPMsg working, it's fine send and receive. I had to remove some platform-specific debug code (I could have written the ARM portion, but was feeling lazy) but it shouldn't matter except that crash logs won't be generated. Binaries, including installer, are in the smaller ZIP file. Modified source code used to build them is in the _SRC archive. Click to expand... Click to collapse thank you finally I found I didnt use it in the right way.I must select a "user"before sending a message and it works.