Ok, so... As usual, every new libnds release I get some problems converting it to pascal. This time a sprite related struct is changed and, when I saw the c source, my face looked like this one: :shock:
Ladies and Gentlemen, the scary "monster":
Code:
typedef union {
	struct {
		struct {
			u16 posY: 8;
			union {
				struct {
					u8: 1;
					bool isHidden: 1;
					u8: 6;
				};
				struct {
					bool isRotoscale: 1;
					bool rsDouble: 1;
					tObjMode objMode: 2;
					bool isMosaic: 1;
					tObjColMode colMode: 1;
					tObjShape objShape: 2;
				};
			};
		};
 
		union {
			struct {
				u16 posX: 9;
				u8: 7;
			};
			struct {
				u8: 8;
				union {
					struct {
						u8: 4;
						bool hFlip: 1;
						bool vFlip: 1;
						u8: 2;
					};
					struct {
						u8: 1;
						u8 rsMatrixIdx: 5; 
						tObjSize objSize: 2;
					};
				};
			};
		};
 
		struct {
			u16 tileIdx: 10;
			tObjPriority objPriority: 2;
			u8 objPal: 4;
		};

		u16 attribute3;
	};
 
	struct {
		uint16 attribute[3];
		uint16 filler;
	};
 
} SpriteEntry, * pSpriteEntry;
The main thing that drives me nuts is the fact that neither structs nor unions have a name, as some bit fields too. I could try to break this big nested struct in something smaller (and more readable), but I don't know how this change will be internally "digested" by the library.