hi we (mobilewizardry) bit the bullet and dove into a real nasty task :) porting our deity3D engine to C [task in itself] from 68k asm, and, then getting a version that runs on 68k, arm and x86 (palmsim).
to give you an idea, this task has been two steps: - port 68k assembler to C - build an engine capable of multi-platform compilation *nasty stuff* - the process took a total of around a month to complete fulltime. original source files were 12202 lines, the final output being 25128 lines, with the original assembler #ifdef'd inlines the code. --- asm version (original) low = 13.8 fps high = 8.6 fps *1 c version (68k) low = 9.0 fps high = 5.3 fps *1 c version (x86) low = 36.3 fps high = 35.3 fps *2 c version (arm) low = 44.2 fps high = 39.3 fps *1 results recorded on SONY n610c (33Mhz) *2 results recorded using PalmSim on a 450Mhz PII on win98 --- weird results with x86, assembly being generated is not 100% perfectly optimized, but, heck - doesn't matter *g*. the asm version is a "newer" version of the deity demo we have on www.ardiri.com - more specifically color. deity3D also runs in native 320x320 hi-resolution in 8bpp. one important thing is that we have managed to have a single code base that compiles into all 68k, arm and x86 code resources. the main application is not "built differently" for each CPU architecture. prc-tools 2.0.92, cygwin and arm-elf-gcc (instructions sent before) no other special tools/utilities required. we did have to deal with some mess to get global data working, compiler switches, some extra custom macro's etc etc. surely not a fun process :( there are a heap of issues to deal with :( bottom line is that there are very few platform specific calls, and the code base is shared between all three CPU architecture destinations. some code had to be modified specifically to suit the multi-platform needs. there are still some minor glitches in the code (mainly from the 68k assembler to c conversion) which we still need to work on, but, it runs. quite well. the size comparisons: --- 68k code resource = 26k arm code resource = 40k x86 code resource = 47k --- it was a two man job, both myself and chip were working on this task, and, we believe it was a joint effort *phew* :) most of my work at the beginning setting up the compilers, architecture and getting the code resources to work correctly - while, chip focused on porting the 68k assembler to c. the armlet specific problems we resolved together, custom build procedures, and messing with binary files - the fun stuff. we feel this is a big accomplishment :) our understanding and experience with armlets is growing by the day, working around various issues (which, may eventually be solved) but, its work-in-progress. new day = new problems and new solutions. we know armlets are a daunting task; we'd be happy to provide some consulting hours to assist other developers in their armlet conversions, subject to our availability; especially when it is complex code :) contact us at: [EMAIL PROTECTED] and [EMAIL PROTECTED] cheers. --- Aaron Ardiri and Chip Kerchner Mobile Wizardry http://www.mobilewizardry.com/ -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
