Related
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
*** PLEASE READ CAREFULLY BEFORE INSTALLING OR FLASHING ANY SOFTWARE POSTED IN THIS THREAD ***
The software posted here is for TESTING purposes only, Team P3D or any of the posters of software, or links to software on this thread take absolutely no responsibility or liability for damage caused by the result of installing or flashing software or links to software found on this thread - correctly or otherwise, you do so on the sole understanding that you do so at your own risk.
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Project Name: Polaris 2D Driver Project
Driver Name: P3D 2D Driver (Working title)
Development and Testing Team: SEE Post #2
---------------------------------------------------------------------------------------------------------------------------------------------------------------
ANNOUNCEMENT:
The P3D team would like to extend an OPEN INVITATION to all developers and programmers from all forums of EVERY device to come forward and help us create the 2D driver which, as it is being developed from scratch will require much development work with many dll files created from scratch.
If you are interested in helping, please post your interest in this forum and we will add your name to the developers list. If you would like to help but own a different device to which the 3D driver is yet to be ported to, we would also like to hear from you and hopefully assist you with the knowledge we have gained in return for your efforts here. (actually we'll help you anyway but.. we do want your help! )
---------------------------------------------------------------------------------------------------------------------------------------------------------------
11/10 - BigKVak successfully dumped the G810 rom and work has started in analyzing its content
---------------------------------------------------------------------------------------------------------------------------------------------------------------
P3D 2D Driver Development Team:
Administration/Testing:
Support and Testing:
Bally3
NikMel
Neos2007
BigKvak
Imfloflo
Developers: (TBC)
Rogro82
NuShrike
Chainfire
Monkeyass
maqui01
It started with a few simple questions:
"Can the Polaris be hardware accelerated?"
"Why doesnt the CA Kaiser 3D driver work on the Polaris?"
That was a month ago..since then, thanks to the help and support of NikMel, NeoS2007, Rogro82 and NuShrike to name a few, we now have a working 3D driver which is currently in a version 1 state and with the release of the cab version through CA last night, we can now concentrate on improving speed and compatibility to make better use of the graphic chips capabilities.
My intention then was never to start a 2D driver or work on a 2D driver until I was satisfied no more could be done to improve it and a "final" release was in the cards, but through my own testing and various posts and conversations, I now find myself wondering whether the improvements with 3D is linked to the 2D driver?
From day 1, before we released the 3d driver and after, users have expressed faster speeds in 2d as well as 3d - though many have explained it to be a "placebo" effect, we naturally attributed this to the gpu sharing the workload with the cpu which makes sense in a common sense way - itje posted a humorous answer on his thread explaining this very thing as worth a read just to put a smile on your face, but on a serious note a question has to be asked - Does improvement on 3D really effect 2D and if that is the case, would a 2D driver help improve the 3D drivers perfornance?
So why start a 2D thread when the 3D driver still needs refining?
Well, apart from the question above, the overwhelming requests for 2D support on both Polaris and Kaiser forums (it should work on both in theory), we now have a dump of the long awaited Toshiba G810 rom to get us started- A BIG THANK YOU TO BIGKVAK - welcome to the team!
Originally Posted by BigKvak
I have dumped ROM from Toshiba, here the link http://rapidshare.com/files/152085600/dump.rar.html
Click to expand...
Click to collapse
It is inevitable then that work needs to start on this project. We also need to preserve the 3D thread for future 3D driver developments and defer 2D driver related posts from it, for these reasons, this new thread has been opened for all to start working with the P3D team in bringing 2D greatness to our devices.
Lets share our knowledge and have fun doing it like we did with the 3D driver!
PS: Although I have named the project Polaris 3D driver project, I would like to extend an invitation to users of all devices that could benefit from the 2D drivers creation, after all through CA Kaiser development, we have now ported the 3D driver to the Polaris AND the NIKE and hopefully to many more devices
Let our devices not make us divisive - whats is the point?
It is common knowledge that files from newer devices are used to help create the drivers we need for our devices - so why should we gloat and mock other less supported devices, should we not help them and share our knowledge and in the words of a good friend here "Pay it Forward?"
This is not the spirit of XDA Developers and it is certainly not the ethos of Team P3D - We have and pledge tol share all knowledge with users of all devices.
Besides, its so much more fun when we all work together!
It appears that HTC-CA were already in the process of
Reserved for p3d 4
Reserved for p3d 5
Reserved for p3d 6
Reserved for p3d 7
Reserved for p3d 8
Reserved for p3d 9
Reserved for p3d 10
I found this link on microsoft MSDN: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1214862&SiteID=1
It's a guy asking for a 2d driver library. Maybe we can look into that?
I have dumped ROM from Toshiba, here the link http://rapidshare.com/files/152085600/dump.rar.html
Click to expand...
Click to collapse
To move the discussion of 2d in here..
Windows Mobile 2D and 3D explained on MSDN
I believe this: http://msdn.microsoft.com/en-us/library/aa911096.aspx will be out first place to look. It's mostly there: 2D AND 3D info.
Here's what functions there are:
AlphaBlend API
Provides information about adding support for the AlphaBlend function to your OS design.
Direct3D Mobile
Provide information about adding 3-D graphics support to your OS design and creating applications that use the API.
DirectDraw
Provide information about adding 2-D graphics support to your OS design and creating applications that use the API.
Gradient Fill Support
Provides information about adding support for the GradientFill function to your OS design.
Imaging
Provide information about adding support for compressed still images to your OS design and reference information for the API.
Multiple Screens
Provide information about adding support for multiple displays to your OS design and creating applications to support them.
NeoS2007 said:
I believe this: http://msdn.microsoft.com/en-us/library/aa911096.aspx will be out first place to look. It's mostly there: 2D AND 3D info.
Click to expand...
Click to collapse
reading it now.. some of it we know.. let see what we can learn..
http://msdn.microsoft.com/en-us/library/aa925824.aspx
Here we go:
"Applications direct output to a specified device by creating a device context for the device. The device context is a GDI-managed structure containing information about the device. An application creates a device context by calling device context functions. GDI returns a device context handle used to identify the device.
Applications can direct output to a physical device, such as a display or printer, or to a logical device, such as a memory device.
A device context also contains attributes that determine how GDI functions interact with a device. These attributes eliminate the need to specify every piece of information Windows Embedded CE requires to display an object on a device. If you want to change an attribute, you can use attribute functions to change current device settings and operating modes. Operating modes include text and background colors and the mixing mode that specifies how colors in a pen or brush combine with colors already on a display surface."
GDI is the source of 2D on our devices. Maybe we need to look out for GDI tweaks in the registry?
BPP (Bits Per Pixel) explained
I also found this blog about the colors used on a mobile device. It's said that if you have a colordepth of 18 instead of the usual 8, 16, 32 bits, it's more cpu intensive. Isn't there a registry key for colordepth?
http://blogs.msdn.com/windowsmobile/archive/2005/09/07/462187.aspx
"The next thing to understand is how the bits turn into colors on the screen. Say you've got a typical PocketPC with a resolution of 240x320 and 65536 colors. That means you've got 320 rows of 240 pixels (dots), each of which has 16 bits of data representing its color. All of that information is stored in a chunk of memory known as the "Frame Buffer." The LCD hardware takes whatever is in the Frame Buffer and converts it directly to what's on the screen. Want to change what's on the screen? Change what's in the Frame Buffer and the screen will update.
Okay, so we need 16 bits for every pixel, and we've got 240 times 320 dots. 16 bits is two bytes, so that's a total of 153600 bytes, or 150K of RAM used to hold what's on the screen."
Maybe a good thing to mention: we're hoping that the Toshiba g810 Portege has the files we need to develop a 2D driver. We're currently trying to extract a dump we got. Anyone have experience in extracting Toshiba's .Bin files?
Direct Draw explained
On MSDN:
"The DirectDraw® API provides support for hardware-accelerated 2-D graphics. It offers fast access to display hardware while retaining compatibility with the Windows graphics device interface (GDI). DirectDraw is a specialized memory manager for both system and display device memory and uses hardware acceleration where available. With DirectDraw, you can allocate and manipulate both system and graphics memory, including transfers between the two.
DirectDraw for Windows Embedded CE is adapted from DirectDraw for Windows-based desktop operating systems. Some capabilities from the desktop version have been extended and others have been curtailed to better suit embedded devices.
DirectDraw supports the following effects:
Bit-block transfers (blits)
Page flipping and multiple back buffers
Overlays, which is placing one image surface over another on the video display
Alpha source over destination blending, which is blending two surfaces using the source alpha image component
Video YUV pixel formats and color conversion
Direct video access to the frame buffer
What if we compare our HKLM\system\DDRAW\ keys in the registry with other devices? I see the values in ALL keys there are empty.
Yes.. I've noticed that and played around with them.. no difference.
I've tried the LG KS520, Diamond and HD ddraw.dll files.. none work out of the box. Maybe the G810 one might make a difference?
We need to find out what calls are made and to what other dll files. If you remember the problem we had with the 3.13 ddi? it could be similar situation in that theirs a dependencies issue.
DirectMobile is a DirectX based Managed UI Framework for Windows Mobile. Aim of the framework is to provide an elegant UI for Windows Mobile devices which is simple to develop against.
Target Platform:
WM6.0+
.NET CF 3.5
Current Implementation:
All graphics rendered in Direct3D. Each DM Application gets access to the rendering device and has one host window. The host window renders one frame at a time. Each frame can hold other elements such as buttons, labels or lists.
Design Considerations:
Sharing of GPU by multiple applications [High Priority]: Ideally a DirectMobile Rendering service must be implemented and applications request rendering via named pipes. This will reduce GPU and CPU utilization.
Remove dependencies on System.Windows.Forms [Low Priority]: To reduce developer confusion, references to Windows Forms need to be removed. This can be implemented via native calls to AGL lib.
Tested Against:
Blackstone: WM 6.5 + Neo Driver Pack r3
Touch Cruise: WM 6.5
WM 6.5 Device Emulator
WM 6.1 Device Emulator
WM 6.0 Device Emulator
Sample Code:
public static void Main()
{
//Start DirectMobile Application
DMApplication.Run();
//Render a new Frame
DMApplication.Current.ShowFrame(new Controls.Frame{ BackgroundColor=Color.Black, ForeGroundColor=Color.White, Title="My First Frame"});
}
DirectMobile on Codeplex
put me down for pre-alpha, alpha, beta, rc tester.
Nice initiative. It is rumoured that MS will let go of Direct3D with the onset of WM7. Is OpenGLES not the way forward?
On a side note, I wouldn't mind beta testing, heh.
Thanks in advance.
Count me in for graphics and ideas (if needed).
nuke1 said:
Nice initiative. It is rumoured that MS will let go of Direct3D with the onset of WM7. Is OpenGLES not the way forward?
On a side note, I wouldn't mind beta testing, heh.
Thanks in advance.
Click to expand...
Click to collapse
I did a quick lookup and i dont see any references on OpenGLES been used with WM7. If you find something let us know but please lets not discuss this here
Am always willing to test for constructive purposes. Let me know if you need a tester for the HTC Fuze / Touch Pro
i am also willing for some alpha and beta testing!!!! using a diamond
twolf said:
Count me in for graphics and ideas (if needed).
Click to expand...
Click to collapse
me too, graphics and usability issues.
wondering if XDA Flame will support this in HW Accelerated mode.
Most of the drivers on Flame are reference BS, slapped from the MS emulator onto the device. Fingers crossed for this one.
Count me in to test it (VGA device, HTC Universal).
I'm in as a developer. I have a decent amount of c# experience.
will to beta test for usabilty and bugs - diamond user.
Count me in. Sprint touch pro
I'm also want to be a tester. Also, can help in development, if free time will be exists.
I'm not try use managed DirectX, only OpenGL small apps for PC.
HTC Blackstone.
I thought about writing something like this a while back - don't have a ton of cycles, but can contribute on the dev side and testing.
I can help with testing this time around. Maybe I can help with developing later on. I'm using an HTC Touch VOGU100
tester
just got a touch pro and can consider as intermediate user .....well i can help out as tester ... do giv me a pm ..... hopefully i can help out n also gain some exp ..... thanks
I will be happy to help with graphics and design. I have helped with the manila - framework.
BTW: my other account it call UknownDev
also I am have some nice TF3D Themes.
So.. I'll be more than happy to help.
nice!
I'm in for testing and graphics!
I own an ASUS P550 (greek WM6.1pro) and will probably switch to an Omnia variant soom.
This seems to me like a great idea!
I'm experienced with C# and would like to help in this project (the development part). I don't have much spare time because of my current job, but whenever I can find some, I'd love to help.
-- edit:
I've got a Codeplex Id: w0lf
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
Hi everyone. I am starting a new Open Source project using VB.net to allow the community to build Adventure Games ala SCUMM / SCI / AGI etc... Users will be able to create games similar to Zak McKracken, Monkey Island, Maniac Mansion, Day of the Tentacle, Space Quest, Kings Quest, Police Quest, Full Throttle, etc...
Some Key Engine features:
*Point and Click game play
*GUI's
*Inventories
*Control of Multiple game characters
*NPC's
*Cutscenes
*Sounds
*Pathfinding
*Hotspots and Masks
*Lighting effects
*Z-Buffering
*Saving/Loading game states.
*And more
Game editing will be done eventually through an editor. But the files will consist of editing:
*Directory structure to contain images and sound and scripts
*XML Scripts
*Engine- Game Player
The game engine is open source. Although with every release, the compilation code will be modified as to make sure noone can get into the game contents.
The project is in design stage currently. So its fresh. What I need is a few experienced VB.NET developers. Not necessarily in .NET CF or Mobile development. But just in VB.NET. In particular I need help writing pathfinding functions.
I am also in search for a mobile VB.NET programmer who can help with the development of reading XML files more efficiently than I know how to write and also for someone to help with game compilation functions and Z-buffering. If you are interested, post here and let me know your sourceforge account and what your applying for. The site is here:
https://sourceforge.net/projects/mobilemage/
cool~looking forward to it!!!
Thank you. In a few days I should have basic Room loading done. That will probably be the first release for it.