Previous 199869 Revisions Next

r24685 Friday 2nd August, 2013 at 22:45:19 UTC by David Haywood
more level data parsing (nw)
[src/mame/machine]pgmprot_igs027a_type1.c

trunk/src/mame/machine/pgmprot_igs027a_type1.c
r24684r24685
777777
778778
779779               
780           
781         
780   
782781
783782         */
784783
r24684r24685
19171916      int full_entry = 0;
19181917      int prev_tablloc = 0;
19191918      int x  =  0;
1919      int numbercolumns = 0;
1920      int depth;
1921
19201922      for (x=val1; x<val2;x++)
19211923      {
19221924   
r24684r24685
19381940
19391941            if (stage==0)
19401942            {
1941               printf("%02x <- Unknown\n", rawvalue);
19421943               stage = 1;
1944
1945               // this seems to be the first thing returned back when reading the level structure always seems to be 0x8 or 0x7, makes sense, levels would be too difficult otherwise ;-) (actually puzzli2 seems to have one specifying 5 unless it's a decrypt table error?!)
1946               depth = (rawvalue & 0xf0);
1947               numbercolumns = (rawvalue & 0x0f);
1948               numbercolumns++;
1949
1950               printf("%02x <- Sizes (level depth %01x) (number of columns %01x)", rawvalue, depth>>4, numbercolumns);
1951
1952
1953               if ((depth != 0x80) && (depth != 0x70) && (depth != 0x50))
1954                  fatalerror("depth isn't 0x5, 0x7 or 0x8");
1955
1956
1957
1958               // it seems to use this to specify the number of columns, ie how many data structures follow, so that the ARM knows when to send back the 'finished' flag.
1959               // it also gets returned at the end with said flag
1960               if ((numbercolumns != 0x6) && (numbercolumns != 0x7) && (numbercolumns != 0x8))
1961                  fatalerror("number of columns specified isn't 6,7, or 8");
1962
1963               printf("\n");
1964
19431965            }
19441966            else if (stage==1)
19451967            {
r24684r24685
20282050            }
20292051            else if (stage==3)
20302052            {
2031               printf("%02x <- fish\n", rawvalue);
2053               // some of these might be due to bad decrypt values in the table
2054               if (rawvalue==0x00)      printf("%02x <- fish type 0\n", rawvalue);
2055               else if (rawvalue==0x01) printf("%02x <- fish type 1\n", rawvalue);
2056               else if (rawvalue==0x02) printf("%02x <- fish type 2\n", rawvalue);
2057               else if (rawvalue==0x03) printf("%02x <- fish type 3\n", rawvalue);
2058               else if (rawvalue==0x04) printf("%02x <- fish type 4\n", rawvalue);
2059               else if (rawvalue==0x05) printf("%02x <- fish type 5\n", rawvalue);
2060               else if (rawvalue==0x06) printf("%02x <- fish type 6\n", rawvalue);
2061               else if (rawvalue==0x07) printf("%02x <- fish type 7\n", rawvalue);
2062   
2063               else if (rawvalue==0x08) printf("%02x <- ?? 08\n", rawvalue);
2064
2065               else if (rawvalue==0x0b) printf("%02x <- ?? 0b\n", rawvalue);
2066               else if (rawvalue==0x0c) printf("%02x <- ?? 0c\n", rawvalue);
2067               else if (rawvalue==0x0d) printf("%02x <- ?? 0d\n", rawvalue);
2068               else if (rawvalue==0x0e) printf("%02x <- ?? 0e\n", rawvalue);
2069               else if (rawvalue==0x0f) printf("%02x <- ?? 0f\n", rawvalue);
2070               else if (rawvalue==0x10) printf("%02x <- ?? 10\n", rawvalue);
2071               else if (rawvalue==0x11) printf("%02x <- ?? 11\n", rawvalue);
2072               else if (rawvalue==0x12) printf("%02x <- ?? 12\n", rawvalue);
2073               else if (rawvalue==0x13) printf("%02x <- ?? 13\n", rawvalue);
2074               else if (rawvalue==0x14) printf("%02x <- ?? 14\n", rawvalue);
2075               else if (rawvalue==0x15) printf("%02x <- ?? 15\n", rawvalue);
2076               else if (rawvalue==0x16) printf("%02x <- ?? 16\n", rawvalue);
2077               else if (rawvalue==0x17) printf("%02x <- ?? 17\n", rawvalue);
2078               else if (rawvalue==0x18) printf("%02x <- ?? 18\n", rawvalue);
2079               else if (rawvalue==0x19) printf("%02x <- ?? 19\n", rawvalue);
2080
2081               else if (rawvalue==0x1e) printf("%02x <- ?? 1e\n", rawvalue);
2082
2083               else if (rawvalue==0x21) printf("%02x <- ?? 21\n", rawvalue); // puzzli2
2084               else if (rawvalue==0x22) printf("%02x <- ?? 22\n", rawvalue);
2085               else if (rawvalue==0x23) printf("%02x <- ?? 23\n", rawvalue);
2086               else if (rawvalue==0x24) printf("%02x <- ?? 24\n", rawvalue);
2087               else if (rawvalue==0x25) printf("%02x <- ?? 25\n", rawvalue);
2088               else if (rawvalue==0x26) printf("%02x <- ?? 26\n", rawvalue);
2089               else if (rawvalue==0x27) printf("%02x <- ?? 27\n", rawvalue);
2090               else if (rawvalue==0x28) printf("%02x <- ?? 28\n", rawvalue);
2091               else if (rawvalue==0x29) printf("%02x <- ?? 29\n", rawvalue);
2092               else if (rawvalue==0x2a) printf("%02x <- ?? 2a\n", rawvalue);
2093
2094               else if (rawvalue==0x32) printf("%02x <- ?? 32\n", rawvalue); // puzzli2
2095               else if (rawvalue==0x33) printf("%02x <- ?? 33\n", rawvalue); // puzzli2
2096               else if (rawvalue==0x35) printf("%02x <- ?? 35\n", rawvalue);
2097               else if (rawvalue==0x38) printf("%02x <- ?? 38\n", rawvalue); // puzzli2
2098
2099               else if (rawvalue==0x41) printf("%02x <- ?? 41\n", rawvalue); // puzzli2
2100               else if (rawvalue==0x43) printf("%02x <- ?? 43\n", rawvalue); // puzzli2
2101
2102               else if (rawvalue==0xd0) printf("%02x <- ?? d0\n", rawvalue);
2103
2104               else if (rawvalue==0xe0) printf("%02x <- ?? e0\n", rawvalue);
2105               else if (rawvalue==0xe1) printf("%02x <- ?? e1\n", rawvalue);
2106               else if (rawvalue==0xe2) printf("%02x <- ?? e2\n", rawvalue);
2107               else if (rawvalue==0xe3) printf("%02x <- ?? e3\n", rawvalue);
2108               else if (rawvalue==0xe4) printf("%02x <- ?? e3\n", rawvalue);
2109
2110
2111               else                     printf("%02x <- unknown object\n", rawvalue);
2112
20322113               entries_left--;
20332114               if (entries_left == 0)
20342115               {
r24684r24685
20522133      if ((currentcolumn!=0x6) && (currentcolumn!=0x7) && (currentcolumn!=0x8))  // 5 is suspicious
20532134         fatalerror("invalid number of columns?\n");
20542135
2136      if (numbercolumns != currentcolumn)
2137         fatalerror("mismatch in number of columns vs specified amount\n");
2138
20552139      printf("\n");
20562140
20572141   }

Previous 199869 Revisions Next


© 1997-2024 The MAME Team