QUOTE
I think the error above is probably due to me missing a cygwin package I should have but didn't know to get.
Yep, you need the patch package too (or whatever cygwin package contains patch).
QUOTE
Also, I found some errors in the install guide at openxdk.org...
1) Along with gcc, binutils, automake, and autoconf, you will need "make" for cygwin as well.
True, I'll try to update the docs sometime (the Input API stuff infomation is also out of date).
QUOTE
2) the first command for building the packaged source under cygwin should probably be:
cd /usr/local/openxdk
Even though you install OpenXDK to /usr/local/openxdk you would normally download and compile it elsewhere and then run make install to move the files to the correct directory. So I think the guide is correct in this instance.
QUOTE(friedgold @ Jul 30 2006, 06:23 PM)

Sorry, that should be add a -lhal after -lusb.
Anyway I've just checked out and built OpenXDK from CVS and can build Wolf3d with just that one change to the Wolf3d Makefile so I'm not sure what's happening for you. Did you rebuild OpenXDK completely after doing the CVS update (you need to run make distclean and rerun autogen.sh and configure). Might you have any other copies of the SDL libs or SDL header files in your path?
Thanks, everything is building fine now. I did suspect that it might be something weird going on with the linking. Also, according to my command history I didn't do a make distclean, only make clean, and that seems to have been the cause of the SDL linking problem.
Thanks again!
QUOTE(TMaul @ Jul 31 2006, 12:24 AM)

Thanks, everything is building fine now. I did suspect that it might be something weird going on with the linking. Also, according to my command history I didn't do a make distclean, only make clean, and that seems to have been the cause of the SDL linking problem.
Thanks again!
Amateur
I managed to get the CVS libraries compiled and I compiled my own sample code....one problem...
The same code that worked on 0.7 of openxdk now crashes my xbox when i go to execute it (red/green flashing).
My sample code is basically a mix of the DrawPixel and padTest code from the sample section of CVS.
You can get unpredictable results if you apply last CVS changes AFTER generating makefiles.
See post named "OpenXDK little help"
hello,
i'm currently trying openXDK, and i would like to synchronize to the VBL in order to avaid graphics tearing and to have constant speed.
is it possible in current openXDK ?
I'm currently using the test program below in order to discover how to create a VBL interrupt
Here you go! Working VBL interrupt for OpenXDK! (any volunteer to import this sample in cvs?)
XBOX is a bit special. Its kernel is a simplified version of nt kernel. OpenXDK uses the standard, existing, XBOX kernel. Linux for XBOX wipes it with the floor at installation time and recreate its own kernel, so you can probably create multiple threads with it.
With standard XBOX kernel, normally, theoretically, you are allowed to run only one main thread.
Just plug the interrupt above somewhere in openxdk and export the vbl_counter variable.
(it's possible it will be officially done later by a person that have rights to insert new code in cvs)
Then you can make your sync function :
void WaitForVBlank()
{
static unsigned long old=0;
while(vbl_counter==old) {};//or any other waiting function
old=vbl_counter;
}
But expert game developers are not doing such waiting...
They work on several screen buffers, and let interruption handler switch display to the next buffer to show.
It's often known as triple buffering technic (first buffer is shown, second one is being finished, last one will be drawn soon... and three pointers rotate to points on them)
And if you detect you are in advance, you can dynamically raise the detail level of the scene...
or lower it if you detect you didn't finish in time last one...
Top graphic speed is not achieved with parallelism made with several threads in the CPU. It's achieved with parallelism between one thread in CPU and massive DMA access in order to provide prepared pushbuffers towards the GPU (fastest games don't even go thru directX or very lightly)
http://www.bringyou.to/games/PS2 is a very interesting article (at the bottom of it you have the description of the port of a very fast game from PS2 towards XBOX and it gives very essential clues)
Ooops, sorry friedgold, I didn't recognize your nickname at first.
If you plan to introduce it officially as a clean cvs change, I would recommend to have an installation and uninstallation function added in hal/video.c
User should be able to register a callback (like in audio.c) that will be called by the vbl interrupt dpc.
About vbl_counter that is a nice way to provide programmer a quicky waitvblank function, you can either export it as global variable or let user register in a clean way his own counter (you pass &vbl_counter as parameter and vbl_counter is a global variable of programmer). In other words you allow the dpc to increment user's var instead of calling a callback...
But I think if we add in the list of samples, a sample that shows how to install and register programmers's callback, that should be enough.
In the sample, inside the callback we can put the vbl_counter++ instruction and vbl_counter will be a global variable of the sample. In the main loop of sample we call waitvblank which just tests counter.
Up to you to choose cleanest way to do it in openxdk, and put the remaining dirty stuff in sample.
But we need both.
And if we give up on vbl programmer's callback we will be screwed for the triple buffering technic.
http://home.tele2.fr...785/testVBL.zip has been updated