trunk/src/mame/drivers/coolridr.c
| r21247 | r21248 | |
| 1076 | 1076 | break; |
| 1077 | 1077 | } |
| 1078 | 1078 | |
| 1079 | #if 0 |
| 1080 | // logging only |
| 1081 | if (!m_indirect_tile_enable) |
| 1082 | { |
| 1083 | //if (m_hCellCount==0xf) |
| 1084 | { |
| 1085 | for (int v = 0; v < m_vCellCount; v++) |
| 1086 | { |
| 1087 | for (int h = 0; h < m_hCellCount; h++) |
| 1088 | { |
| 1089 | int lookupnum = h + (v*m_hCellCount); |
| 1090 | UINT32 spriteNumber = get_20bit_data( m_b3romoffset, lookupnum); |
| 1091 | |
| 1092 | printf("%05x ",spriteNumber); |
| 1093 | //if ((h == m_hCellCount-1) && (v == m_vCellCount-1)) |
| 1094 | // printf("\n"); |
| 1079 | 1095 | |
| 1096 | if ((h == m_hCellCount-1)) |
| 1097 | printf("\n"); |
| 1098 | |
| 1099 | } |
| 1100 | } |
| 1101 | } |
| 1102 | } |
| 1103 | #endif |
| 1104 | |
| 1080 | 1105 | // Splat some sprites |
| 1081 | 1106 | for (int v = 0; v < m_vCellCount; v++) |
| 1082 | 1107 | { |
| 1083 | 1108 | const int pixelOffsetY = ((m_vPosition) + (v* 16 * m_vZoom)) / 0x40; |
| 1109 | |
| 1084 | 1110 | if (pixelOffsetY>383) |
| 1085 | 1111 | { |
| 1086 | 1112 | v = m_vCellCount; |
| 1087 | 1113 | continue; |
| 1088 | 1114 | } |
| 1115 | |
| 1089 | 1116 | |
| 1090 | 1117 | for (int h = 0; h < m_hCellCount; h++) |
| 1091 | 1118 | { |
| 1092 | 1119 | const int pixelOffsetX = ((m_hPosition) + (h* 16 * m_hZoom)) / 0x40; |
| 1120 | |
| 1093 | 1121 | if (pixelOffsetX>495) |
| 1094 | 1122 | { |
| 1095 | 1123 | h = m_hCellCount; |
| 1096 | 1124 | continue; |
| 1097 | 1125 | } |
| 1126 | |
| 1098 | 1127 | |
| 1099 | 1128 | // It's unknown if it's row-major or column-major |
| 1100 | 1129 | // TODO: Study the CRT test and "Cool Riders" logo for clues. |
| r21247 | r21248 | |
| 1105 | 1134 | if (m_indirect_tile_enable) |
| 1106 | 1135 | { |
| 1107 | 1136 | const UINT32 memOffset = data; |
| 1108 | | spriteNumber = space.read_byte(memOffset + h + (v*h)); |
| 1137 | spriteNumber = space.read_byte(memOffset + h + (v*m_hCellCount)); |
| 1109 | 1138 | |
| 1110 | 1139 | // DEBUG: For demo purposes, skip &spaces and NULL characters |
| 1111 | 1140 | if (spriteNumber == 0x20 || spriteNumber == 0x00) |
| r21247 | r21248 | |
| 1117 | 1146 | } |
| 1118 | 1147 | else |
| 1119 | 1148 | { |
| 1120 | | int lookupnum = h + (v*h); |
| 1149 | int lookupnum = h + (v*m_hCellCount); |
| 1121 | 1150 | |
| 1122 | 1151 | // these should be 'cell numbers' (tile numbers) which look up RLE data? |
| 1123 | | spriteNumber = get_20bit_data( m_b3romoffset, lookupnum); |
| 1124 | | /* |
| 1152 | spriteNumber = get_20bit_data( m_b3romoffset, lookupnum); |
| 1125 | 1153 | |
| 1126 | | printf("%05x ",spriteNumber); |
| 1127 | | //if ((h == m_hCellCount-1) && (v == m_vCellCount-1)) |
| 1128 | | // printf("\n"); |
| 1129 | | |
| 1130 | | if ((h == m_hCellCount-1)) |
| 1131 | | printf("\n"); |
| 1132 | | |
| 1133 | | */ |
| 1134 | | |
| 1135 | 1154 | //if (spriteNumber == 0x00) |
| 1136 | 1155 | // continue; |
| 1137 | 1156 | |