Well, I didn’t get a whole lot of time with work and all but I’m pretty pleased with the progress I’ve made so far on this library. I think this short demo shows some potential for this library. So just to be clear, the entry is the library not the demo.
My work is picking up again this week so I know I won’t have anytime to do any more so I’m submitting a bit early.
Hope everyone likes it π
Attachments:
Just played though the demo. Your wireframes look so awesome in 3D. If I ever get some free time I would love to build a level editor for it.
This is really cool. Good job.
Optimization tips:
– LD instructions are faster if you do many of them in a row. Change g3d_copyVector3d and g3d_cameraTranslate to take advantage of this. (You will need to use more registers, but hopefully they will be taken from those that the calling convention does not require to be preserved.)
– Instead of ADDI, use ADD with an immediate source where possible (ADD imm5, reg instead of ADDI imm16, reg, reg). This is 2 bytes shorter and might be faster when the cache isn’t being used.
Very interesting! It’ll be cool to see how this progresses and see how it gets used. Good job!
Greg this isn’t a good effort….THIS IS NOTHING SHORT OF AWESOME =D!!!Remember I am not a programmer I’m only an Artist w/ that being said if you are taking criticisim, my only only thing is I would like to see the animation on the craft more smooth less like 2 frames flip and more like smoothly banking. That is my only criticisim in this AWESOME PROJECT….STARFOX IS ON THE HORIZON!:thumbup
bigmak wrote:
I must say the bar has been set pretty high with the first entry π
Couldn’t agree more Eric. Well done Greg, great work. Thanks for star fox on the VB.
Nice work! Just went through the demo… definitely looks like there’s some promise, hopefully someone (maybe you) is able to but the library to good use! π
DogP
Great stuff, I watched the demo and I hope that library will help the homebrew community to develop some great new games.
So Thunderstruck just pointed out to me something I forgot to mention to anybody attempting to use the Library. By default the C code versions of the functions are compiled. You will see that this works but is slow compared to my demo. Inside the functions are #ifndef __ASM_CODE statements so I toggled the compiling of the assembly version by using a defined variable. To define the variable you just need to add -D__ASM_CODE to your gcc command inside your makefile. This will define __ASM_CODE and cause the ifndef statements to compile the assembly versions of the functions instead. I did this for two reasons. 1 to prove that the assembly versions of the functions were indeed faster and 2 I find it easier to write a new function in C and then convert it to assembly after I’m sure the function works.
Also, and this one is a little embarassing, I used a global camera variable for most of the functions. I mistakenly left the define of that variable inside my GameFunctions.h instead of putting it inside the G3d.h. So if you’re going to start a new project from scratch just add
camera cam;
to G3d.h somewhere and you should be good to go.
Thanks for trying it out and catching that Thunderstruck π
I’m posting my makefile as well along with the ObjFileParser I wrote in java to import 3d Wavefront OBJ files.
The syntax to use the ObjFileParser is (from a command prompt)
java -jar ObjFileParser 50 3 filename.obj > output.h
The 50 is a scaling factor and can be anything > 0.
The 3 is the fixed point scale factor and should be 3 if your using my library as is.
This writes to standard out so > output.h will put the output into a file.
- This reply was modified 10 years, 8 months ago by Greg Stevens.
- This reply was modified 10 years, 8 months ago by Greg Stevens.
Attachments:
This is very cool! I’m guessing I can learn alot about ASM from it as well. Great work, Greg!