2004-03-03, 19:05
hi all, i'm starting this topic thread for developers in the hopes it will grow into a good collection of tips, tricks, articles/tutorials, code snipplets related to xbox programming. so if you have got something related to aiding xbox/xbmc programming please put it in this thread, hopefully it will help existing and future xbmc developers.
note! please do not ask any questions or request support here!, this thread is only for posting link, tips and tricks, etc.
tip ex: *pbl (pheonix bios loader) can be used to setup a debug xbox for development, read more on pbl here (link) and here (link),
(pbl is used to load debug-bios into ram instead of instead of flashing to modchips, so can debug when mod or tsop bios is only 256kb and/or can't be flashed).
happy coding / frodo
how-to compile xbmc source code from cvs (build source to xbox executable) can be found here (link).
how-to compile mplayer.dll from cvs (build source into xbmc loadable dll) can be found here (link).
xbmc visualisation plugin interface specs and development information here (link).
xbmc screensaver interface (based on xbmc vis interface) specs and development information here (link).
xbmc python interpreter specs and development information (not the scrips) can be found here (link).
xbox programming for xbmc; what will you need to know/learn:
good knowledge of the c++ language as well as experince of the visual c++ 6.0 or .net ide by microsoft. directx 8.0/8.1 api programmers will quickly pick up the workings of the xbox sdk (xbox software development kit, a.k.a. xdk) as programming for xbox is very similar to programming for a pc when dealing with directx 8, (and uses the directx sdk 8.1 which also needs to be installed on your pc with the xdk and vs.net). the xbmc gui source code is in c++ for the directx api. xbmc is developed under microsoft visual studio .net 7.1 and requires a copy of the latest xbox sdk/xdk to be compiled. also know that xbmc's audio/video playback core is based on mplayer (which in turn uses ffmpeg avcodec library to decode most a/v codecs, both mplayer and ffmpeg are coded in the c programming language). some assembly code is also used within xbmc to gain direct access to the 'metal' that is the xbox-console (gpu, apu, cpu, etc.) and various modchips hardware. note! xbox does not support opengl (open graphics library), nor does it support vb (visual basic), nor c#, nor java, ...so forget about those and learn c++ and directx as those are the only languages supported by the xdk!
things to think about and know before/when developing xbmc for the xbox:
- the xbox only has a 733mhz pentium-iii cpu @ 133mhz fsb (supports mmx and see).
- the xbox only has 64mb of shared ram (memory is shared between cpu and gpu).
*(the limit memory of the xbox play a big part and hindarence of the xbmc development).
- xbox gpu is a nvidia nv2a @ 233mhz (so somewhere between gforce 2 and gforce 3)
- the apu is a nvidia mpc (designed for xbox so a.k.a. mpcx) only support 48khz-out.
*(the apu is integrated to the apu and it can encode to ac3 on-the-fly in hardware).
- the xbox-chipset could be described in layman terms as something similar to "nforce",
*it's designed by nvidia and makes up a southbridge (the mpcx-1) and the gpu (nv2a).
- the xbox does not have a operating-system per-say, instead it only has a basic bios,
*everything else must go into the xbmc executable and it's (xdk and own-made) libraries.
- only a single process-thread (program/executable) can run at any one time on the xbox.
- xbox sdk (a.k.a. xdk) software development kit (libraries) is required to compile xbmc.
*what is also required to compile (and code in) xbmc is microsoft visual studio .net 7.1
- xbmc's source code is c++, assembly, and directx, (the xbox does not support opengl),
*(some of the xbmc libraries are also in c but they are loaded by our own wrapper/loader).
- the xbox "os/bios" is win32 based but does not most of the resources or capabilities
*of a windows operating-system, (ex. directshow, nor dll is nativly supported on xbox).
- xbmc's core is based on mplayer (which uses ffmpeg to decode most a/v formats).
note! please do not ask any questions or request support here!, this thread is only for posting link, tips and tricks, etc.
tip ex: *pbl (pheonix bios loader) can be used to setup a debug xbox for development, read more on pbl here (link) and here (link),
(pbl is used to load debug-bios into ram instead of instead of flashing to modchips, so can debug when mod or tsop bios is only 256kb and/or can't be flashed).
happy coding / frodo
how-to compile xbmc source code from cvs (build source to xbox executable) can be found here (link).
how-to compile mplayer.dll from cvs (build source into xbmc loadable dll) can be found here (link).
xbmc visualisation plugin interface specs and development information here (link).
xbmc screensaver interface (based on xbmc vis interface) specs and development information here (link).
xbmc python interpreter specs and development information (not the scrips) can be found here (link).
xbox programming for xbmc; what will you need to know/learn:
good knowledge of the c++ language as well as experince of the visual c++ 6.0 or .net ide by microsoft. directx 8.0/8.1 api programmers will quickly pick up the workings of the xbox sdk (xbox software development kit, a.k.a. xdk) as programming for xbox is very similar to programming for a pc when dealing with directx 8, (and uses the directx sdk 8.1 which also needs to be installed on your pc with the xdk and vs.net). the xbmc gui source code is in c++ for the directx api. xbmc is developed under microsoft visual studio .net 7.1 and requires a copy of the latest xbox sdk/xdk to be compiled. also know that xbmc's audio/video playback core is based on mplayer (which in turn uses ffmpeg avcodec library to decode most a/v codecs, both mplayer and ffmpeg are coded in the c programming language). some assembly code is also used within xbmc to gain direct access to the 'metal' that is the xbox-console (gpu, apu, cpu, etc.) and various modchips hardware. note! xbox does not support opengl (open graphics library), nor does it support vb (visual basic), nor c#, nor java, ...so forget about those and learn c++ and directx as those are the only languages supported by the xdk!
things to think about and know before/when developing xbmc for the xbox:
- the xbox only has a 733mhz pentium-iii cpu @ 133mhz fsb (supports mmx and see).
- the xbox only has 64mb of shared ram (memory is shared between cpu and gpu).
*(the limit memory of the xbox play a big part and hindarence of the xbmc development).
- xbox gpu is a nvidia nv2a @ 233mhz (so somewhere between gforce 2 and gforce 3)
- the apu is a nvidia mpc (designed for xbox so a.k.a. mpcx) only support 48khz-out.
*(the apu is integrated to the apu and it can encode to ac3 on-the-fly in hardware).
- the xbox-chipset could be described in layman terms as something similar to "nforce",
*it's designed by nvidia and makes up a southbridge (the mpcx-1) and the gpu (nv2a).
- the xbox does not have a operating-system per-say, instead it only has a basic bios,
*everything else must go into the xbmc executable and it's (xdk and own-made) libraries.
- only a single process-thread (program/executable) can run at any one time on the xbox.
- xbox sdk (a.k.a. xdk) software development kit (libraries) is required to compile xbmc.
*what is also required to compile (and code in) xbmc is microsoft visual studio .net 7.1
- xbmc's source code is c++, assembly, and directx, (the xbox does not support opengl),
*(some of the xbmc libraries are also in c but they are loaded by our own wrapper/loader).
- the xbox "os/bios" is win32 based but does not most of the resources or capabilities
*of a windows operating-system, (ex. directshow, nor dll is nativly supported on xbox).
- xbmc's core is based on mplayer (which uses ffmpeg to decode most a/v formats).