def dump(self, instance):
         index = '__i' + self.type.id
-        print '    for (int %s; %s < %s; ++%s) {' % (index, index, self.length, index)
+        print '    for (int %s = 0; %s < %s; ++%s) {' % (index, index, self.length, index)
         print '        Log::BeginElement("%s");' % (self.type,)
         self.type.dump('(%s)[%s]' % (instance, index))
         print '        Log::EndElement();'
 
 ])
 
 D3DMATRIX = Struct("D3DMATRIX", [
-    (Float, "m[4][4]"),
+    (Array(Array(Float, "4"), "4"), "m"),
 ])
 
 D3DVIEWPORT8 = Struct("D3DVIEWPORT8", [
 
 ])
 
 D3DMATRIX = Struct("D3DMATRIX", [
-    (Float, "m[4][4]"),
+    (Array(Array(Float, "4"), "4"), "m"),
 ])
 
 D3DVIEWPORT9 = Struct("D3DVIEWPORT9", [