Porting a game from PC to ppc - Windows Mobile Development and Hacking General

Hi, I never did that, but I was playing to Anthelion 2 on my PPC and I thank that it could be great to port Homeworld 1 or Cataclysm to the PPC, and I would like to know how to do that, I think that I could "recompiler" it, but I don't know how, and I would like to know if a tutorial has been created somewhere on the net?...

I'm not sure if it would be even technically possible. Well, the newest pdas _might_ be powerful enough to run something like HW1 but i'm not sure if it's such a good idea. Did you try to run homeworld in 640x480 resolution? Most of the time you'll see ships as groups of two to eight pixels. Now imagine it all squished on a phone three-inch screen: try ordering your corvettes to smash that annoying bomber on a screen that small I think that a bit better idea would be porting really old games, that were designed to run in VGA or even lower resolutions (SubCulture, Command&Conquer, I-War, Dark Forces are some of the titles i'd pay for ).
Anyway, back to porting subject.
First of all you would need the source code of the program you want to port - in case of homewrld1 it's not a problem.
Secondly, you would have to make sure that all libraries (graphic, sound, input, etc) used by a game have windows mobile/windowsCE versions. Again, homeworld1 seems lucky since it has been ported to SDL - a multiplatform opensource graphic/sound/input library.
But that's where good news end. Porting a game is not just a matter of grabbing the PC version source and recompiling it. If it was as easy, we would have hundreds of PC games already ported You need considerable programming skills to actually create a port because usualy not all libraries used by a game a compatible with WindowsCE. An example - the opensource version of homeworld uses OpenGL for graphic rendering. The pocket version would have to use OpenGL's "little brother" - OpenGLES. As far as i know, they're not 100% identical, so to put it simply, you would have to make the game talk in OGLES language, instead of standard OGL. And doing changes in graphic rendering routines usually breaks something else, so you'd have to go and fix it.
I'm not trying to discourage you here but i'd suggest learning to program for WindowsCE (or at least for PC) _before_ attempting to port anything - doing it the other way around will be just a waste of time and a source of frustration.
There are some development resources that can help start the adventure with programming here on xda. You could also search for some general C/C++ tutorials targeting PC's. If you consider getting into programming, i suggest checking out SDL - Many games use it, and thanks to this library you can skip the OS-specific part of coding and get right to the fun stuff - a program that actually does/displays anything For an even easier start, you might want to check out QuickCG - a SDL wrapper simplifying the coding even further.

Oki, thanks for your answer, I've a friend who is learning to program in C++, so, I'll ask him if he can help me to do that, it would be great to have this game on a PPC (perhaps the Diamond, because it has D3D and OpenGL Drivers, or of the iPhone, but I guess that the programming language is not the same as the PPC...
[EDIT] STARCRAFT would be great to, and easier to port on PPC, because of his age and that he uses 2d Graphisms...

You should look into the stratagus engine.

antrak said:
You should look into the stratagus engine.
Click to expand...
Click to collapse
Nice Engine, but it's not Starcraft, but I can't find the Source Code on the net, they could give the source code with the game when you buy it

Psycho said:
Hey, it's Calvin, I found him
Click to expand...
Click to collapse
Stargus a starcraft's clone, I'm trying to download it, but I don't know if it works for PPC...

You might want to check this thread:
http://forum.xda-developers.com/showthread.php?t=497086&highlight=starcraft

Related

Starting a new project - Need help and feedback

Intro:
Hi, my name is bart and im a dj / producer
When im traveling i get alot of inspiration. So i would love to be able to make music on my pocket pc. I searched for software like drumsequencer/samplers for pocket pc. ?I found some very basic/not interesting freeware progs. And 1 over the top not realy functional wav sampler wich costs money btw. btw excuse me for my grammar as i am dutch i will likely make some major grammar faults.
So i decided i need to make one my own. and make it good and then release it to the public for free.
The Concept:
Maybe some of you know this program some dont (look it up on google then) but do you remember the program called Rebirth? it is a piece of software by "propellorhead" wich is actualy a digital clone of a oldskool 808 and 909 drumcomputer and 2 303 synths. It also includes 4 basic effects: Delay, Distortion, enveloped cutoff/resonance and a compressor.
Wich are basicaly mathematical formulas wich change the sound produced by one of these drumpcomputers/synths. One of those effects cqan be used for one sound source only.
ok so i basically want to get about thew same specs as that program. Only with less cpu intense graphics, just 1 drum and 1 synth and compatibilaty with atleast the mda vario aka qtek 9100 but i prefer compatibilaty with almost all pocketpc's.
here is a basic list:
1 drumsequencer (with maybe 4 samplekits?)
1 synth (soundgenerator using 4 different wave shapes)
1 cuttof/resonance filter
1 distortion filter
1 delay
1 internal mixer ( each channel will have a own volume knob i guess)
Read this before continueing
Ok so now is the question if you are interested in all this. If you want a program like this read on. If you are good in programming even better.
If you know a lot about music or music in combination with pc software you can definately help me out.
I know almost nothing about programming. Ok i know some oldskool basic, i can do some html and php, but thats it. Tho im not stupid and i learn quick. I also think that this project may be a good excuse to start learning to program. So basically i first need to determine some important facts before i start this project:
Wich programming language is required for this project
How much programming skill will this project need (basic, medium, expert)
What about the soundchips in ppc's and how to communicate with them
Use sound sampling based techniques or sound generating techniques
Are there people to support me, can they help write code, can they help answer questions
And the list go's on... if you think you can answer one of these questions dont hesitade and start to support this project
ok nuf said... lets get back to bussines:
Main functions
Ok so i guess i need some main functions wich would be the core of the program. There needs to be a timecode aka bpm (beats per minute)
This means a play button and a stop button. There needs to be a visiualisation of the drumcomp, synth and effects. I would also like to note that im not planning to use the function of a pattern playlist yet ( a playlist tells the sequencer to play different patterns from a database of patterns).
To keep things simple i want to keep this version just playing this 16 step pattern as a loop. Very important is that all sequencers (synth, drums, delay effect) go as fast as the timecode aka bpm.
The Drumcomputer aka Sequencer:
The idea is to make a 16 step sequencer. For those who dont know what that means plz look it up on google. i would like to implement the feature to use different samplekits from a list. i als am wondering wich format whould be best to use to compress these samples... wav, aif, 8 bit 16 bit 22khz ???!!??
The synth aka soundgenerator:
I want the following functions on this soundgenerator.
It is triggered by a sequencer
You can change pitch of each note
sound can be modified by cuttof resonance
you can choose 4 waveshapes: sinus, square, triangle, noize.
very similar to the 303 in rebirth do it doesnt have to have the same sound just the functions.
The effects:
Need to find the mathematical formulas for these effects and check how to convert them to this program.
Internal:
Ok first i want to tell what ISNT needed. I dont need save to be implemented yet as a wont be using playlist and mulitple patterns anyway.
All sound sources (drums, synth effects) have a own volume knob wich indicates the volume. I want to make a internal mixer wich mixes the drum, synth and effects together according to the volume set by these volume knobs.
ok im done typing for some time... i will do some adjustements to this post later on: and if it gets some serious i will make a good decent, main thread, with the name of the project in the title etc.
Thnx for reading all this and i hope to get some nice feedback... or questions.
greetz bart.
Hello Bart!
First of all, I'd like to say that you are off to a good start by making a detailed project outline.
Although I never done any programing involving audio manipulation I believe I can answer some of the questions you posted here:
1. There are 3 main stream languages to program pocket PCs:
.NET Visual Basic and C#, and native C++ (eVC++)
Unless you can fined .NET objects dedicated to functions you described it will probably be better to use C++ as it will make access to windows API easier.
Also for VB and C# you will need to by Visual Studio 2005, but eVC 4 can be downloaded for free from Microsoft.
2. I estimate this project will take medium to expert programming skill depending on how cooperative windows CE will be with your goals. Hopefully you wont have to access the audio chip directly. Alternatively there may be a .NET component that will make your life very easy try Google.
If you know the mathematics behind the effects you got half the job done and I am sure you will find people to help you with the coding.
So good luck, and remember - people like free software so this project can't be a bad idea!
Ok, with your answers in the back of my mind i did some googling
and i noticed that there is quite some sourcecodes and info for audio programming in c++
check this link for example: http://www.harmony-central.com/Computer/Programming/
Tho in my search i stumbled on another thing... what about java? maybe it wil be a lot easyer in java? and maybe also more compatible? i dunno just guessing here...
anywayz as for the c++ side: i noticed i can download many synths, effects examples/sourcecodes and they are all copyright free. it will be a task of exploring this sources and binding it all together or something similar. is there anyone out there with the c++ guru powers it requires that can guide me in this jungle of data?
edit: o btw does wm5 support DSP ? guess not but worth asking

I want to make an app :D

Hello.
Do you know a site or thread which has basic instructions about making a "hello world" app for PPC? Just to get me started.
What tools do you guys use? (doesn't matter if they are free or not)
How do you export/publish it as a .CAB?
Thanks.
PS. I searched and didn't find a thread like this and I don't want to use somebody else's thread.
Are you familiar with programming?
I use Visual Studio 2005 to create my apps. It has the ability to create a *.cab file as well
Visual Studio 2005 is not free.
You can find tons of info at the MSDN.
You can also use some library simplifying access to pocketPC by taking care of all necessary OS calls. Xflib looks good, especially if you want to code games, there are also some examples provided with lib download, and sources for most games hosted on their site are available. Might be a good place to start if you'd like to avoid learning winAPI and get right down to coding the actual app Another good thing is that it uses open source ceGCC compiler, so MS Visual C isn't needed. Also, you won't really need to make CABS to distribute programs coded this way, since they consist of one single exe file.
Go to www.xflib.net for downloads and install instructions.
And if you're a total beginner when it comes to programming, I'd try scripting out first. Have a look at mortscript (good because of it's multi-platform usage) or AutoIt (for windows desktop)
Thanks for the answears so far .
I'm not a programming noob, but not profesional. I've done some apps and games. I plan to start with easy things first as a coin toss app... it comes quite handy... or perhaps a handy stuff thing, inclusing the coin toss, unit converting (there are many), dices, chronometer, etc. All with stadistics and many options, like a random mode and a rigged mode ;D for dice and coin toss...
Then move on to something greater, who knows.
For something like that I suppose visual studio is best. I'll try both anyway. Any advise?
By the way is there an emulator like toolkit for J2me? Something a friend can download to run it without a programming software (or a phone).
Thanks again.
Edit: I believe I found an emulator, at least for XFlib (found there).
Device emulators
visual studio has its own device emulators you just have to download the proper SDK's like WM6 sdk or WM5 sdk to be more device specific, it's supports emulator debuging and device debuging but apps made with VS tend to slower and more memory hungry than apps implemented in C. But for me it's the easiest way to app development.
can you post the emulators link or better yet the whole thing itself here if its small enuff? im also working in xflib and would be much easier to use a standalone emulator rather than the one with vs2008. thanks

Programming CE, Book and resource recommendations

Hello,
After a decade of not doing C, I find that alot of things have changed when programming c++ native for CE. Even things like:
string somestring;
no longer function. Wow!.
strcpy has been replaced with StringCchCopy. Wow, MS has done a number here... and so on...
Anyhow I searched xda and found allot of good threads. But what if I'm looking at re-learning C++, with a focus on CE programming only? What books and other resources would you recommend, its almost like starting from scratch. I got vs2005 + emu + been reading allot of MSDN, did some basic apps. etc.
BTW: How the .... do you declare a variable length string???
and in VS2005 is running the debugger the only way to get the app to start automatically ???
Thanks
*bump*, anyone?
Couple of notes:
1) I strongly recommend avoiding VS, it is unbearably slow and balky.
2) strcpy and all the other functions are still supported by c runtime on CE (VS 2005 complains about them but you can ignore it). The problem is all windows API on CE use UNICODE so you have to declare strings as WCHAR (thats MS speak for unsigned short) and use wcscpy, and such.
3) The only book I know on CE specifically is this and I only read the two sample chapters online, so can't really recommend it. (Though the sample chapters were very useful). What you need is to get a good book on Win32 programming that will get you well on your way.
4) There is an MFC class CString which wraps up all string related functions very nicely. If you are not using MFC but clean C/C++ the only thing I can think of is malloc and free or the C++ versions new and delete.
Check out the links in my sig if you want to see code examples of small but functioning apps.
I disagree with levenum's comment on VS, but agree at the same time (weird I know). I wouldn't use VS for native development because it has A LOT of extra features that I think would be useless for native developers. Also, the lighter eVC++ has pretty much everything you need to write native apps.
I had this book called "Programming Windows CE 3.0" or something along those lines a few years ago. I got it for like $3 on Amazon. If you can find an updated version of that (or even the old version would be useful) then you should buy it. It will show you all you need to know to get started. You can learn the new api's from browsing msdn.
If you're only a little rusty with C/C++ I would suggest jumping right in to the Sdk samples and seeing how they do things.
Thanks, the reason why I wanted to use VS is so that maybe later I wouldn't mind going into MFC. So having one platform would be nice.
So far I have done some basic things, like drawing, etc, but I find I'm having a harder time making strings and including the api's to work. Almost all of the msdn examples fail to compile properly.
I have an old book MFC for Windows 95 by MS, is it even worth looking at ?
robp said:
I disagree with levenum's comment on VS, but agree at the same time (weird I know). I wouldn't use VS for native development because it has A LOT of extra features that I think would be useless for native developers. Also, the lighter eVC++ has pretty much everything you need to write native apps.
I had this book called "Programming Windows CE 3.0" or something along those lines a few years ago. I got it for like $3 on Amazon. If you can find an updated version of that (or even the old version would be useful) then you should buy it. It will show you all you need to know to get started. You can learn the new api's from browsing msdn.
If you're only a little rusty with C/C++ I would suggest jumping right in to the Sdk samples and seeing how they do things.
Click to expand...
Click to collapse
could you provide some links for msdn. also i know how to program in c but how do i compile a program for windows ce could you recommend a free one. thanks
The only way to code for Windows Mobile for free is to use embedded Visual C++. You'll have to google it to find a link.
Once you have that downloaded, check out:
http://msdn2.microsoft.com/en-us/library/bb158662.aspx
The new solution files most probably won't open in eVC++ but you can create new projects and add the source files yourself.
You'll want to look at the samples in the Win32 folder.
robp said:
The only way to code for Windows Mobile for free is to use embedded Visual C++.
Click to expand...
Click to collapse
That's not entirely true - there's still ceGCC (it works on linux or windows using cygwin) - however this one lacks resource (window, forms, etc) editor (but if you have resources already created it will compile/link properly). But it works great with apps where you want to handle all the graphics and user interaction by yourself (like games, or programs with 100% custom UI), for example using SDL, pocketHAL, etc.
Also, wxWidgets seems to have support for windowsCE, and might be made to work with ceGCC, but i haven't tested it yet.
Sorry, I actually meant to put "(I think)" after that sentence lol.
Actually I think you should be able to use any C++ compiler as long as you have the necessary libraries, and I think all the libs you need are in the sdk download. But the easiest route for beginners in native coding is probably eVC++
Well, now i can agree with you
That is, unless you want to create games - in that case ceGCC+XFlib might be a good way to go for someone with general programming knowledge, but not familiar with winCE-specific coding. Some games coded with it (and their sources) can be found on XFlib homepage: www.xflib.net.
thanks for the info
Ok, as I wouldn't mind at a later time going into MFC, and building dll's for mobile. How much "harder" would it be for me to learn VS2005 native for ce instead of using evc++ ?
Just trying to weight the cons and the pros. BTW where can I get eVC ?
Thank you.
Two more free options: PellesC and Lazarus + WinCE add-on
I don't think it would much harder. Once you get the hang of it you'll find that it makes life much easier. If you buy a boxed retail version it comes with a nice book that will take you from n00b to master in a few hours (not really but it's still a great reference).
I think the hardest part of upgrading to newer versions of VS is learning the new project file setup. Atleast that's what it looks like from watching other students at my school go from VS6.0 to VS2k5 and 2k8.
Also, I should note that I prefer VS2008 hands-down, but I don't disagree with other people who say eVC++ is faster. While I haven't done any real native development since eVC++ 4 was new, I still dabble a bit (especially since getting active on this forum) and VS2005 works great to me.
So, my advice would be to use the newest tools available to you, unless money is an issue. But don't be worried about upgrading. Your life will only get easier once you do.
robp said:
Also, I should note that I prefer VS2008 hands-down, but I don't disagree with other people who say eVC++ is faster. While I haven't done any real native development since eVC++ 4 was new, I still dabble a bit (especially since getting active on this forum) and VS2005 works great to me.
So, my advice would be to use the newest tools available to you, unless money is an issue. But don't be worried about upgrading. Your life will only get easier once you do.
Click to expand...
Click to collapse
Well I just got eVC and will give it a try too. But I am pretty much used to vs2005. I do not think I can't afford the vs2008 right now. How much difference is there between 2005 and 2008 when it comes to programming for WM?
I'm looking to create some commercial applications for WM. For the last 10 years I'v been doing .com apps, now I figured I would do some for the mobile platform. We have all the graphics/design/marketing guys for .com, so it should work out just fine for WM.
One thing we noticed when working with exec type people is their frustration, I see exactly how we can help them resolve their frustration with WM, Symb, and java type phones...
Thanks
marek101 said:
Well I just got eVC and will give it a try too. But I am pretty much used to vs2005. I do not think I can't afford the vs2008 right now. How much difference is there between 2005 and 2008 when it comes to programming for WM?
I'm looking to create some commercial applications for WM. For the last 10 years I'v been doing .com apps, now I figured I would do some for the mobile platform. We have all the graphics/design/marketing guys for .com, so it should work out just fine for WM.
One thing we noticed when working with exec type people is their frustration, I see exactly how we can help them resolve their frustration with WM, Symb, and java type phones...
Thanks
Click to expand...
Click to collapse
Honestly I wouldn't rush to upgrade. VS2008 is better, but doesn't add much to the WM development arena.
And if you already have VS2005 and are used to it, I would stick with that and forget about eVC++. You should give the compact framework a try. I promise you'll love it
compact framework, that's a part of the .NET isn't it?.
For the time being, for learning purposes, I think I will stick with the native for now. Once I get a grip, I will explore .net. The thing is I really don't like bulky apps for WM. Most of the apps I came across that required the .net framework were slow, any apps that use the .net with a today plug in seem to really slow down my phone.
BTW is HTC Home plug in written with the .net?
Thanks
marek, it seems to me that you are under the impression that you need VS 2005 to use MFC.
eVC fully supports MFC as well as creating DLLs and MFC DLLs.
It admit the reason I don't like VS is because I only write in native and don't like .NET languages a lot.
Since you want to create commercial apps you should note that any app created with WM 5 SKD will not be backwards compatible with WM 2003 which reduces your clients range.
You should compile with WM 2003 SDK which is forward compatible.
Our primary target audience would be WM6. We will make every effort to make WM5 compatible apps. Yes it does reduces significantly the client base, but also there are many positives...
We are still looking for more programmers for the simple concepts we have developed. I believe this will work out just fine. Having WM5 support is a "would be nice" but not required. WM5 has a bag of problems, 2003 I don't even want to touch it.
Thanks
I have to admit that I love VS because I love using .net
But VS is also a much more powerful editor in general than eVC is. It's still nice but the experience isn't as smooth as it is in newer versions, which is expected since the newer versions build on the previous ones.

IDE to run on WM...

I think here is the right place to ask
Do u know/is there any C/C++ IDE that can actually run on WM?
I do not mean writing apps for WM. I mean writing, compiling (and y not debugging) programms directly on the PDA.
And generally is there such an IDE for any other programming language?
thx in advance
there is some for c# .net
and pocketVI support some c not to compile to native code or a real IDe though
I don't even think the pocket pc is powerful enough (yet) to handle the task of compiling software (unless you get a real os on there like linux).
I dont know if this is what you are looking for, but you can try Basic4PPC
I've tried it and I love'd it!
Rudegar said:
there is some for c# .net
and pocketVI support some c not to compile to native code or a real IDe though
Click to expand...
Click to collapse
yes i've seen that! i guess u r talking about http://www.geocities.com/hrowson/wm5_software/index.htm
just wondering if there are similar IDEs for other langs, like C, C++
Steven855 said:
I don't even think the pocket pc is powerful enough (yet) to handle the task of compiling software (unless you get a real os on there like linux).
Click to expand...
Click to collapse
hm.. i do not think that compiling is such an intensive task.. Well if u have like 5000 lines on ur windows mobile sure will take long..
But generally testing smal progs etc would be fine i think
Compiling is not something that came out with along with the fast CPUs!
What is more, the HD has a pretty fast CPU (i think!). Still remember that my first desktop PC's CPU was around 500MHz (!)
fredamexis said:
I dont know if this is what you are looking for, but you can try Basic4PPC
I've tried it and I love'd it!
Click to expand...
Click to collapse
u can use it to write progs directly @ ur PDA? (withour PC)
thx i will check it anyway!
See this thread: http://forum.xda-developers.com/showthread.php?t=445396
The following will compile (I've tried them) on the phone:
PocketGCC (FREEWARE)
Pocket C# Combo (Everything you need to compile and write apps for WM-- FREEWARE)
However, they do have limitations.
I'm completely positive FPC can be made to run on ARM. I'd say the chances of getting Lazarus (*the* FPC IDE) to run on WM are 30% out-of-the-box, and 70% after a day of hacking
The real question is... WHYYYY!?!?!?!?!?! would you want to?
LiKBeAsT said:
hm.. i do not think that compiling is such an intensive task.. Well if u have like 5000 lines on ur windows mobile sure will take long..
But generally testing smal progs etc would be fine i think
Click to expand...
Click to collapse
Dude seriously, compiling is a very CPU intensive task. 5000 lines? That is exactly one nothing in code terms.
Compiling is not something that came out with along with the fast CPUs!
What is more, the HD has a pretty fast CPU (i think!). Still remember that my first desktop PC's CPU was around 500MHz (!)
Click to expand...
Click to collapse
Oh please. My first desktop PC's CPU was 4.77mhz (with a turbo switch to 8!) and I'm considered a newbie in that area. While 500mhz is not necessarily slow, HTC hasn't produced a fast device in over two years. The HD is a horribly slow device.
Just a guess, but I'd say that the HD should still be fine for compiling. No floating point operations and no graphics.
Limitations to compilation probably memory size and memory speed, more than anything else? This will be a particular problem for C++, especially if you're doing anything more than minimal templating.
And putting Linux on it won't suddenly make it much better at compiling things - very little of this will be reliant on the OS subsystem.
ajige said:
See this thread: http://forum.xda-developers.com/showthread.php?t=445396
The following will compile (I've tried them) on the phone:
PocketGCC (FREEWARE)
Pocket C# Combo (Everything you need to compile and write apps for WM-- FREEWARE)
However, they do have limitations.
Click to expand...
Click to collapse
yea checked that out but it also had many other stuff and i wasn't sure about what i was asking
Chainfire said:
I'm completely positive FPC can be made to run on ARM. I'd say the chances of getting Lazarus (*the* FPC IDE) to run on WM are 30% out-of-the-box, and 70% after a day of hacking
The real question is... WHYYYY!?!?!?!?!?! would you want to?
Click to expand...
Click to collapse
erm.. i guess for fun, testing small progs and keep in touch with the lang when away from PC
Chainfire said:
Dude seriously, compiling is a very CPU intensive task. 5000 lines? That is exactly one nothing in code terms.
Oh please. My first desktop PC's CPU was 4.77mhz (with a turbo switch to 8!) and I'm considered a newbie in that area. While 500mhz is not necessarily slow, HTC hasn't produced a fast device in over two years. The HD is a horribly slow device.
Click to expand...
Click to collapse
Well, obviously i ammuch more younger (going to 20!) So my first PC was turbo-machine
Anyway! i guess nobody is going to use PPC IDE for that big progs and of course yes. they will take hours to compile (i guess)
Fast is a bit subjective i think.. What do u mean horribly slow? in terms of CPU, response time etc?
Thx everyone for the input!
PPC is pretty fast. You feel it is slow just because it has too many bad designed apps slow it down (must have while(1000) {Sleep(1000)} inside! no joking, I did see it sometimes!) and it has lack of good graphic driver (or chipset) so your TF3D has to use software to simulate semi-transparent effects and support z-order by allocating large buffer and repeatedly copy them.
Try pocketdos (or bochs emulator), you can run a windows 3.1 on ppc.
Then you can use TC, or old version of VC++/VB/Delphi etc on windows 3.1/dos
Considering emulator running on a real machine usually ~100 times slower than virtual machine, and ARM processor is a RISC chipset usually faster than CISC, your PPC is much faster than a Pentium even some Pentium III computer.
You may not understand how RISC faster than CISC. a function call in x86 cpu usually like
PUSH param1
PUSH Param2
Call function1 ( which push IP and stack again)
and more PUSH inside the function1.
it involves a lot of memory operations. memory is out of CPU so it is low.
A function call in ARM cpu usually like
MOV R0, param1
MOV R1, param2
BL function1 (which set return address in a register)
It doesn't use memory at all. everything is done within processor.
Pentium and after that solve this bottle neck by adding cache. But your code may not in cache when switching context. RISC is naturally faster.
ARM in general can be fast. However in MSM7K devices it usually isn't. All floating point operations for example are done in software, not hardware - this is why a lot of stuff is slow (try for example a Samsung chipset based on ARM, they are much faster for a lot of things). Hardware floating point is an absolute must for any multimedia related thing, and can affect any multiplication or division (and similar) where your compiler does not know at design time whether it will be an integer operation or not.
Furthermore, TF3D is actually one of the few things on these devices that actually does use hardware graphics acceleration.
Even then, while I do agree that RISC in general can be faster than CISC , no compiler worth its salt will use a stack-based calling convention (at least for non-exported functions) unless explicitly specified to do so. Register based function calling exactly like you give for your ARM example is quite normal on x86 as well.
And yes, my old and rusty 500mhz Pentium laptop literally ran circles around any MSM7K.
As far as I known compiler or IDE almost doesn't need float pointer operations at all.
386SX or 486SX works well and fast with old version of VB and VC.
That was an example for why MSM7K was slow. Even if it isn't applicable to compiling, it's still a slow-ass chip
Meme IDE
you could try this...its not c# or c++ but very similar
Build with a drag and drop editor. Develop complex functions using the unique MemeScript. A language created to make elements simple and cohesive on any platform.
It is currently in beta release and at the moment you can develop for Android and WM. IOS will be included in the full release and Blackberry further down the line.
OH and its FREE
find out more or download and play with it at www.memeapps.com
joememe said:
you could try this...its not c# or c++ but very similar
Build with a drag and drop editor. Develop complex functions using the unique MemeScript. A language created to make elements simple and cohesive on any platform.
It is currently in beta release and at the moment you can develop for Android and WM. IOS will be included in the full release and Blackberry further down the line.
OH and its FREE
find out more or download and play with it at www.memeapps.com
http://www.memeapps.com/
Click to expand...
Click to collapse
it is worth to try after the running download. Thank's for the hint.

How challenging is making an app?

I am not to sure if this is the correct area for this. But I am wondering how hard it is to make a Android game? This isn't something I want to just jump into, but learn while I am doing it and take my time.
So how challenging is it to someone who has no experience?
Thank You
Do you have any programming experience at all?
If you know languages like C++ or Java you're pretty close already. Android is programmed in Java, and you need to be familiar with Java's memory management to understand what happens behind the scenes since memory is critical on a mobile device. Also you should get some experience with multithreaded programming, since most times you'll need threads to complete tasks without getting the UI stuck.
Android uses a component based architecture that might be a bit unfamiliar in the beginning, since there's no 'main' entrypoint and you have to split your app into 'activities' that talk to each other through 'intents'.
Games present additional challenges, since they often require you to take care of several things involved with graphics and audio, so maybe they're not the ideal first step into programming.
I started programming for my phone on my Touch HD (windows mobile 6.5, using c#). I'd done some java (not a lot, really, and I hated it), some c (a bit, liked it much more) and quite a few script languages.
I have to say, I got into c# with the compact .NET framework VERY easily. It was very straightforwards, nicely syntaxed ... it was just programming as I'd known it. I've made some office apps, one or two games (just for fun, although the apps were meant to be sold ... **** MS for going wp7 and incompatible!; they were solid pieces of software engineering, if I say so myself)
Two weeks ago I got my Desire HD and a few books on programming Android ( O'Reilly, Sam's) and went looking through developer.android.com .
And I have to say, I find it hard! The concepts and how they work together are a bit ... uhm ... distributed. Good software design, but hard on the programmer (and ****ing verbose to actually type in the porgamming! Sheesh!). It took me a while to grok how all these systems are fitting together: to be honest, I'm still trying to make it all jell. All these intents, services, activities, broadcast receivers ... very interesting, but just thinking of the best (or even correct!) way of setting up your porgram is kinda difficult.
But, that's just me, in two weeks time in my spare time. I am getting it now and it is interesting (and, actually, very well set up for what they want android to do/be). c# was just easier, friendlier and faster to get into.
Sorry if this sounds negative: learning a new language isn't EASY, but it is FUN And very informative. If you have a few hours to start off with and then an hour a day, go for it ... but keep in mind there are easier/more straightforwards programming languages/environments than android (or so I think).
I would like to know this too because I got my HTC Wildfire for a few months now and I just rooted my phone yesterday to get into the whole development and modding.
I would like to learn how to make a widget first and then move onto a app/game. My goal would be to know how to create a 2D based side scroller, I would like to recreate "Bio Menace" for the Android. (I have the sprites and maps, now I only need to learn to make it into a game). (Bio Menace was my all-time favorite game when I was a child and I sometimes still play it on dosbox, but I would like to take it with me on transits to work)
I have no experience in Programming at all, I only did graphical stuff (Photoshop, 3DS Max) I know a little html for basic websites, but this was also more in Dreamweaver with the layout to designer.
So I found these books on android, but before I begin to read any of them. Can somebody tell me which book is best to start on first or which book to skip? I also like a video tutorial, but has anybody seen it? Is it any good?
Ebooks
Apress: Beginning Android 2 http://apress.com/book/view/9781430226291
Apress: Pro Android Games http://apress.com/book/view/9781430226475
Apress: Pro Android 2 http://apress.com/book/view/9781430226598
CommonsWare LLC The Busy Coders Guide to Android Development http://commonsware.com/Android/
Sam's Sams Teach Yourself Android Application Development in 24 Hours http://www.amazon.com/Teach-Yourself-Android-Application-Development/dp/0321673352
O'Reilly Media: Building Android Apps with HTML CSS and JavaScript http://oreilly.com/catalog/0636920010067
O'Reilly Media: Hello Android 3rd Edition http://oreilly.com/catalog/9781934356562
Video tutorial
O'Reilly Media: Developing Android Applications with Java, Part 1 http://oreilly.com/catalog/0636920001690
Sorry to threadjack you, but it made no sense to me to start a new thread on the same topic. There really should be an own section for noobs or a good sticky with this kind of information for noobs.
lol Im in the process of learning java right now, basic java though.
Mathods
Interfaces
Static Methods
Im pretty interested in what I need to know for development on the andriod platform. By mid/late spring I should know quite a bit more. Taking an Advanced java course. Current I only know C#, C++, and Visual Basics.
Never worked on a GUI before =(.

Categories

Resources