trunk/src/mame/drivers/turbo.c
r32799 | r32800 | |
811 | 811 | *************************************/ |
812 | 812 | |
813 | 813 | static GFXDECODE_START( turbo ) |
814 | | GFXDECODE_ENTRY( "gfx2", 0, gfx_8x8x2_planar, 0, 64 ) |
| 814 | GFXDECODE_ENTRY( "fgtiles", 0, gfx_8x8x2_planar, 0, 64 ) |
815 | 815 | GFXDECODE_END |
816 | 816 | |
817 | 817 | |
r32799 | r32800 | |
972 | 972 | ROM_LOAD( "epr-1514.cpu-ic89", 0x2000, 0x2000, CRC(25af63b0) SHA1(9af4b3da83a4cef79b7dd0e9061132c499872c1c) ) |
973 | 973 | ROM_LOAD( "epr-1515.cpu-ic103", 0x4000, 0x2000, CRC(059c1c36) SHA1(ba870e6f45ff15aa148b2c2f213c879144aaacf0) ) |
974 | 974 | |
975 | | ROM_REGION( 0x20000, "gfx1", 0 ) /* sprite data */ |
| 975 | ROM_REGION( 0x20000, "sprites", 0 ) /* sprite data */ |
976 | 976 | ROM_LOAD( "epr-1246.prom-ic84", 0x00000, 0x2000, CRC(555bfe9a) SHA1(1e56385475eeff044dcd9b44a154991d3efe995e) ) /* level 0 */ |
977 | 977 | ROM_RELOAD( 0x02000, 0x2000 ) |
978 | 978 | ROM_LOAD( "epr-1247.prom-ic86", 0x04000, 0x2000, CRC(c8c5e4d5) SHA1(da70297340ddea0cd7fe04f2d94ea65f8202d0e5) ) /* level 1 */ |
r32799 | r32800 | |
990 | 990 | ROM_LOAD( "epr-1257.prom-ic34", 0x1c000, 0x2000, CRC(4ca984ce) SHA1(99f294fb203f23929b44baa2dd1825c67dde08a1) ) /* level 7 */ |
991 | 991 | ROM_LOAD( "epr-1258.prom-ic49", 0x1e000, 0x2000, CRC(aee6e05e) SHA1(99b9b1ec996746ddf713ed38192f350f1f32a847) ) |
992 | 992 | |
993 | | ROM_REGION( 0x1000, "gfx2", 0 ) /* foreground data */ |
| 993 | ROM_REGION( 0x1000, "fgtiles", 0 ) /* foreground data */ |
994 | 994 | ROM_LOAD( "epr-1244.cpu-ic111", 0x0000, 0x0800, CRC(17f67424) SHA1(6126562510f1509f3487faaa3b9d7470ab600a2c) ) |
995 | 995 | ROM_LOAD( "epr-1245.cpu-ic122", 0x0800, 0x0800, CRC(2ba0b46b) SHA1(5d4d4f19ad7a911c7b37db190a420faf665546b4) ) |
996 | 996 | |
997 | | ROM_REGION( 0x4800, "gfx3", 0 ) /* road data */ |
| 997 | ROM_REGION( 0x4800, "road", 0 ) /* road data */ |
998 | 998 | ROM_LOAD( "epr-1125.cpu-ic1", 0x0000, 0x0800, CRC(65b5d44b) SHA1(bbdd5db013c9d876e9666f17c48569c7531bfc08) ) |
999 | 999 | ROM_LOAD( "epr-1126.cpu-ic2", 0x0800, 0x0800, CRC(685ace1b) SHA1(99c8d36ac910169b27676d18c894433c2ba44853) ) |
1000 | 1000 | ROM_LOAD( "epr-1127.cpu-ic13", 0x1000, 0x0800, CRC(9233c9ca) SHA1(cbf9a0f564d8ace1ccd701c1769dbc001d465851) ) |
r32799 | r32800 | |
1026 | 1026 | ROM_LOAD( "epr-1263.cpu-ic89", 0x2000, 0x2000, CRC(45e01608) SHA1(0a9812714c41904bef7a8777b4aae63b5a1dd633) ) |
1027 | 1027 | ROM_LOAD( "epr-1264.cpu-ic103", 0x4000, 0x2000, CRC(1802f6c7) SHA1(5c575821d849d955059868b3dd3167b4bef9a8c4) ) |
1028 | 1028 | |
1029 | | ROM_REGION( 0x20000, "gfx1", 0 ) /* sprite data */ |
| 1029 | ROM_REGION( 0x20000, "sprites", 0 ) /* sprite data */ |
1030 | 1030 | ROM_LOAD( "epr-1246.prom-ic84", 0x00000, 0x2000, CRC(555bfe9a) SHA1(1e56385475eeff044dcd9b44a154991d3efe995e) ) /* level 0 */ |
1031 | 1031 | ROM_RELOAD( 0x02000, 0x2000 ) |
1032 | 1032 | ROM_LOAD( "epr-1247.prom-ic86", 0x04000, 0x2000, CRC(c8c5e4d5) SHA1(da70297340ddea0cd7fe04f2d94ea65f8202d0e5) ) /* level 1 */ |
r32799 | r32800 | |
1044 | 1044 | ROM_LOAD( "epr-1257.prom-ic34", 0x1c000, 0x2000, CRC(4ca984ce) SHA1(99f294fb203f23929b44baa2dd1825c67dde08a1) ) /* level 7 */ |
1045 | 1045 | ROM_LOAD( "epr-1258.prom-ic49", 0x1e000, 0x2000, CRC(aee6e05e) SHA1(99b9b1ec996746ddf713ed38192f350f1f32a847) ) |
1046 | 1046 | |
1047 | | ROM_REGION( 0x1000, "gfx2", 0 ) /* foreground data */ |
| 1047 | ROM_REGION( 0x1000, "fgtiles", 0 ) /* foreground data */ |
1048 | 1048 | ROM_LOAD( "epr-1244.cpu-ic111", 0x0000, 0x0800, CRC(17f67424) SHA1(6126562510f1509f3487faaa3b9d7470ab600a2c) ) |
1049 | 1049 | ROM_LOAD( "epr-1245.cpu-ic122", 0x0800, 0x0800, CRC(2ba0b46b) SHA1(5d4d4f19ad7a911c7b37db190a420faf665546b4) ) |
1050 | 1050 | |
1051 | | ROM_REGION( 0x4800, "gfx3", 0 ) /* road data */ |
| 1051 | ROM_REGION( 0x4800, "road", 0 ) /* road data */ |
1052 | 1052 | ROM_LOAD( "epr-1125.cpu-ic1", 0x0000, 0x0800, CRC(65b5d44b) SHA1(bbdd5db013c9d876e9666f17c48569c7531bfc08) ) |
1053 | 1053 | ROM_LOAD( "epr-1126.cpu-ic2", 0x0800, 0x0800, CRC(685ace1b) SHA1(99c8d36ac910169b27676d18c894433c2ba44853) ) |
1054 | 1054 | ROM_LOAD( "epr-1127.cpu-ic13", 0x1000, 0x0800, CRC(9233c9ca) SHA1(cbf9a0f564d8ace1ccd701c1769dbc001d465851) ) |
r32799 | r32800 | |
1080 | 1080 | ROM_LOAD( "epr-1364.cpu-ic89", 0x2000, 0x2000, CRC(6a341693) SHA1(428927c4a14bf82225875012c255d25dcffaf2ab) ) |
1081 | 1081 | ROM_LOAD( "epr-1365.cpu-ic103", 0x4000, 0x2000, CRC(3b6b0dc8) SHA1(3ebfa3f9fabd444ee105591acb6984b6b3523725) ) |
1082 | 1082 | |
1083 | | ROM_REGION( 0x20000, "gfx1", 0 ) /* sprite data */ |
| 1083 | ROM_REGION( 0x20000, "sprites", 0 ) /* sprite data */ |
1084 | 1084 | ROM_LOAD( "epr-1246.prom-ic84", 0x00000, 0x2000, CRC(555bfe9a) SHA1(1e56385475eeff044dcd9b44a154991d3efe995e) ) /* level 0 */ |
1085 | 1085 | ROM_RELOAD( 0x02000, 0x2000 ) |
1086 | 1086 | ROM_LOAD( "epr-1247.prom-ic86", 0x04000, 0x2000, CRC(c8c5e4d5) SHA1(da70297340ddea0cd7fe04f2d94ea65f8202d0e5) ) /* level 1 */ |
r32799 | r32800 | |
1098 | 1098 | ROM_LOAD( "epr-1257.prom-ic34", 0x1c000, 0x2000, CRC(4ca984ce) SHA1(99f294fb203f23929b44baa2dd1825c67dde08a1) ) /* level 7 */ |
1099 | 1099 | ROM_LOAD( "epr-1258.prom-ic49", 0x1e000, 0x2000, CRC(aee6e05e) SHA1(99b9b1ec996746ddf713ed38192f350f1f32a847) ) |
1100 | 1100 | |
1101 | | ROM_REGION( 0x1000, "gfx2", 0 ) /* foreground data */ |
| 1101 | ROM_REGION( 0x1000, "fgtiles", 0 ) /* foreground data */ |
1102 | 1102 | ROM_LOAD( "epr-1244.cpu-ic111", 0x0000, 0x0800, CRC(17f67424) SHA1(6126562510f1509f3487faaa3b9d7470ab600a2c) ) |
1103 | 1103 | ROM_LOAD( "epr-1245.cpu-ic122", 0x0800, 0x0800, CRC(2ba0b46b) SHA1(5d4d4f19ad7a911c7b37db190a420faf665546b4) ) |
1104 | 1104 | |
1105 | | ROM_REGION( 0x4800, "gfx3", 0 ) /* road data */ |
| 1105 | ROM_REGION( 0x4800, "road", 0 ) /* road data */ |
1106 | 1106 | ROM_LOAD( "epr-1125.cpu-ic1", 0x0000, 0x0800, CRC(65b5d44b) SHA1(bbdd5db013c9d876e9666f17c48569c7531bfc08) ) |
1107 | 1107 | ROM_LOAD( "epr-1126.cpu-ic2", 0x0800, 0x0800, CRC(685ace1b) SHA1(99c8d36ac910169b27676d18c894433c2ba44853) ) |
1108 | 1108 | ROM_LOAD( "epr-1127.cpu-ic13", 0x1000, 0x0800, CRC(9233c9ca) SHA1(cbf9a0f564d8ace1ccd701c1769dbc001d465851) ) |
r32799 | r32800 | |
1134 | 1134 | ROM_LOAD( "epr-1615.cpu-ic87", 0x2000, 0x2000, CRC(6281eb2e) SHA1(591d7f184f51f33fb583c916eddacf4581d612d7) ) |
1135 | 1135 | ROM_LOAD( "epr-1616.cpu-ic86", 0x4000, 0x2000, CRC(cc7b0c9b) SHA1(0b44c9a2421a51bdc16a2b590f24fbbfb47ef86f) ) |
1136 | 1136 | |
1137 | | ROM_REGION( 0x40000, "gfx1", 0 ) /* sprite data */ |
| 1137 | ROM_REGION( 0x40000, "sprites", 0 ) /* sprite data */ |
1138 | 1138 | ROM_LOAD( "epr-1417.prom-ic29", 0x00000, 0x2000, CRC(2aaff4e0) SHA1(4b4e4f65d63fb9648108c5f01248ffcb3b4bc54f) ) /* level 0 */ |
1139 | 1139 | ROM_LOAD( "epr-1418.prom-ic30", 0x02000, 0x2000, CRC(41ff0f15) SHA1(c441c5368a3faf2544d617e1ceb5cb8eac23017d) ) |
1140 | 1140 | ROM_LOAD( "epr-1419.prom-ic55", 0x08000, 0x2000, CRC(37ac818c) SHA1(26b15f410c6a6dcde498e20cece973d5ba23b0de) ) /* level 1 */ |
r32799 | r32800 | |
1160 | 1160 | ROM_LOAD( "epr-1440.prom-ic40", 0x3c000, 0x2000, CRC(3a0e659c) SHA1(51e64b2417cf3b599aa9ecc84457462a5dca2a61) ) |
1161 | 1161 | ROM_LOAD( "epr-1439.prom-ic39", 0x3e000, 0x2000, CRC(3d051668) SHA1(aa4f6152235f07ad39019c46dfacf69d70a7fdcc) ) |
1162 | 1162 | |
1163 | | ROM_REGION( 0x01000, "gfx2", 0 ) /* foreground data */ |
| 1163 | ROM_REGION( 0x01000, "fgtiles", 0 ) /* foreground data */ |
1164 | 1164 | ROM_LOAD( "epr-1618.cpu-ic82", 0x0000, 0x0800, CRC(a25fea71) SHA1(283efee3951d081119d756114f9f49c2996de5f2) ) |
1165 | 1165 | ROM_LOAD( "epr-1617.cpu-ic83", 0x0800, 0x0800, CRC(f70c678e) SHA1(1fabf0011fa4fefd29daf18d4ed6b2cbec14e7b7) ) |
1166 | 1166 | |
r32799 | r32800 | |
1183 | 1183 | ROM_REGION( 0x2000, "subcpu", 0 ) |
1184 | 1184 | ROM_LOAD( "epr-5200.cpu-ic66", 0x0000, 0x1000, CRC(0d58b154) SHA1(9f3951eb7ea1fa9ff914738462e4b4f755d60802) ) |
1185 | 1185 | |
1186 | | ROM_REGION( 0x40000, "gfx1", 0 ) /* sprite data */ |
| 1186 | ROM_REGION( 0x40000, "sprites", 0 ) /* sprite data */ |
1187 | 1187 | ROM_LOAD( "epr-5216.prom-ic100", 0x00000, 0x2000, CRC(8155bd73) SHA1(b6814f03eafe16457655598685b4827456b86335) ) /* level 0 */ |
1188 | 1188 | ROM_LOAD( "epr-5213.prom-ic84", 0x08000, 0x2000, CRC(fd78dda4) SHA1(4328b5782cbe692765eac43a8eba40bdf2e41921) ) /* level 1 */ |
1189 | 1189 | ROM_LOAD( "epr-5262.prom-ic68", 0x10000, 0x4000, CRC(2a194270) SHA1(8d4e444bd8a4e2fa32099787849e6c02cffe49b0) ) /* level 2 */ |
r32799 | r32800 | |
1196 | 1196 | ROM_LOAD( "epr-5264.prom-ic91", 0x38000, 0x4000, CRC(221f4ced) SHA1(07498c9105c4c4589b19c2bc36abafb176de7bda) ) /* level 7 */ |
1197 | 1197 | ROM_LOAD( "epr-5238.prom-ic90", 0x3c000, 0x2000, CRC(7aff0886) SHA1(09ed9fa973257bb23b488e02ef9e02d867e4c366) ) |
1198 | 1198 | |
1199 | | ROM_REGION( 0x01000, "gfx2", 0 ) /* foreground data */ |
| 1199 | ROM_REGION( 0x01000, "fgtiles", 0 ) /* foreground data */ |
1200 | 1200 | ROM_LOAD( "epr-5201.cpu-ic102", 0x0000, 0x0800, CRC(7f21b0a4) SHA1(b6d784031ffecb36863ae1d81eeaaf8f76ab83df) ) |
1201 | 1201 | ROM_LOAD( "epr-5202.cpu-ic103", 0x0800, 0x0800, CRC(43f3e5a7) SHA1(2714943b6720311c5d226db3b6fe95d072677793) ) |
1202 | 1202 | |
1203 | | ROM_REGION( 0x2000, "gfx3", 0 ) /* background color data */ |
| 1203 | ROM_REGION( 0x2000, "bgcolor", 0 ) /* background color data */ |
1204 | 1204 | ROM_LOAD( "epr-5203.cpu-ic91", 0x0000, 0x2000, CRC(631f5b65) SHA1(ce8b23cf97f7e08a13f426964ef140a20a884335) ) |
1205 | 1205 | |
1206 | 1206 | ROM_REGION( 0x0b00, "proms", 0 ) /* various PROMs */ |
r32799 | r32800 | |
1221 | 1221 | ROM_REGION( 0x2000, "subcpu", 0 ) |
1222 | 1222 | ROM_LOAD( "epr-5200.cpu-ic66", 0x0000, 0x1000, CRC(0d58b154) SHA1(9f3951eb7ea1fa9ff914738462e4b4f755d60802) ) |
1223 | 1223 | |
1224 | | ROM_REGION( 0x40000, "gfx1", 0 ) /* sprite data */ |
| 1224 | ROM_REGION( 0x40000, "sprites", 0 ) /* sprite data */ |
1225 | 1225 | ROM_LOAD( "epr-5216.prom-ic100", 0x00000, 0x2000, CRC(8155bd73) SHA1(b6814f03eafe16457655598685b4827456b86335) ) /* level 0 */ |
1226 | 1226 | ROM_LOAD( "epr-5213.prom-ic84", 0x08000, 0x2000, CRC(fd78dda4) SHA1(4328b5782cbe692765eac43a8eba40bdf2e41921) ) /* level 1 */ |
1227 | 1227 | ROM_LOAD( "epr-5262.prom-ic68", 0x10000, 0x4000, CRC(2a194270) SHA1(8d4e444bd8a4e2fa32099787849e6c02cffe49b0) ) /* level 2 */ |
r32799 | r32800 | |
1234 | 1234 | ROM_LOAD( "epr-5264.prom-ic91", 0x38000, 0x4000, CRC(221f4ced) SHA1(07498c9105c4c4589b19c2bc36abafb176de7bda) ) /* level 7 */ |
1235 | 1235 | ROM_LOAD( "epr-5238.prom-ic90", 0x3c000, 0x2000, CRC(7aff0886) SHA1(09ed9fa973257bb23b488e02ef9e02d867e4c366) ) |
1236 | 1236 | |
1237 | | ROM_REGION( 0x01000, "gfx2", 0 ) /* foreground data */ |
| 1237 | ROM_REGION( 0x01000, "fgtiles", 0 ) /* foreground data */ |
1238 | 1238 | ROM_LOAD( "epr-5201.cpu-ic102", 0x0000, 0x0800, CRC(7f21b0a4) SHA1(b6d784031ffecb36863ae1d81eeaaf8f76ab83df) ) |
1239 | 1239 | ROM_LOAD( "epr-5202.cpu-ic103", 0x0800, 0x0800, CRC(43f3e5a7) SHA1(2714943b6720311c5d226db3b6fe95d072677793) ) |
1240 | 1240 | |
1241 | | ROM_REGION( 0x2000, "gfx3", 0 ) /* background color data */ |
| 1241 | ROM_REGION( 0x2000, "bgcolor", 0 ) /* background color data */ |
1242 | 1242 | ROM_LOAD( "epr-5203.cpu-ic91", 0x0000, 0x2000, CRC(631f5b65) SHA1(ce8b23cf97f7e08a13f426964ef140a20a884335) ) |
1243 | 1243 | |
1244 | 1244 | ROM_REGION( 0x0b00, "proms", 0 ) /* various PROMs */ |
r32799 | r32800 | |
1258 | 1258 | ROM_REGION( 0x2000, "subcpu", 0 ) |
1259 | 1259 | ROM_LOAD( "epr-5200.cpu-ic66", 0x0000, 0x1000, CRC(0d58b154) SHA1(9f3951eb7ea1fa9ff914738462e4b4f755d60802) ) |
1260 | 1260 | |
1261 | | ROM_REGION( 0x40000, "gfx1", 0 ) /* sprite data */ |
| 1261 | ROM_REGION( 0x40000, "sprites", 0 ) /* sprite data */ |
1262 | 1262 | ROM_LOAD( "epr-5216.prom-ic100", 0x00000, 0x2000, CRC(8155bd73) SHA1(b6814f03eafe16457655598685b4827456b86335) ) /* level 0 */ |
1263 | 1263 | ROM_LOAD( "epr-5213.prom-ic84", 0x08000, 0x2000, CRC(fd78dda4) SHA1(4328b5782cbe692765eac43a8eba40bdf2e41921) ) /* level 1 */ |
1264 | 1264 | ROM_LOAD( "epr-5210.prom-ic68", 0x10000, 0x4000, CRC(c25b7b9e) SHA1(4418ed056d3240279ce83a872d5887cce374c24e) ) /* level 2 */ |
r32799 | r32800 | |
1271 | 1271 | ROM_LOAD( "epr-5215.prom-ic91", 0x38000, 0x4000, CRC(f5dacc53) SHA1(fe536d16ccb249c26a046f60dc804f5d3be430dc) ) /* level 7 */ |
1272 | 1272 | ROM_LOAD( "epr-5238.prom-ic90", 0x3c000, 0x2000, CRC(7aff0886) SHA1(09ed9fa973257bb23b488e02ef9e02d867e4c366) ) |
1273 | 1273 | |
1274 | | ROM_REGION( 0x01000, "gfx2", 0 ) /* foreground data */ |
| 1274 | ROM_REGION( 0x01000, "fgtiles", 0 ) /* foreground data */ |
1275 | 1275 | ROM_LOAD( "epr-5201.cpu-ic102", 0x0000, 0x0800, CRC(7f21b0a4) SHA1(b6d784031ffecb36863ae1d81eeaaf8f76ab83df) ) |
1276 | 1276 | ROM_LOAD( "epr-5202.cpu-ic103", 0x0800, 0x0800, CRC(43f3e5a7) SHA1(2714943b6720311c5d226db3b6fe95d072677793) ) |
1277 | 1277 | |
1278 | | ROM_REGION( 0x2000, "gfx3", 0 ) /* background color data */ |
| 1278 | ROM_REGION( 0x2000, "bgcolor", 0 ) /* background color data */ |
1279 | 1279 | ROM_LOAD( "epr-5203.cpu-ic91", 0x0000, 0x2000, CRC(631f5b65) SHA1(ce8b23cf97f7e08a13f426964ef140a20a884335) ) |
1280 | 1280 | |
1281 | 1281 | ROM_REGION( 0x0b00, "proms", 0 ) /* various PROMs */ |
r32799 | r32800 | |
1429 | 1429 | ROM_REGION( 0x2000, "subcpu", 0 ) |
1430 | 1430 | ROM_LOAD( "epr-5200.cpu-ic66", 0x0000, 0x1000, CRC(0d58b154) SHA1(9f3951eb7ea1fa9ff914738462e4b4f755d60802) ) |
1431 | 1431 | |
1432 | | ROM_REGION( 0x40000, "gfx1", 0 ) /* sprite data */ |
| 1432 | ROM_REGION( 0x40000, "sprites", 0 ) /* sprite data */ |
1433 | 1433 | ROM_LOAD( "epr-5216.prom-ic100", 0x00000, 0x2000, CRC(8155bd73) SHA1(b6814f03eafe16457655598685b4827456b86335) ) /* level 0 */ |
1434 | 1434 | ROM_LOAD( "epr-5213.prom-ic84", 0x08000, 0x2000, CRC(fd78dda4) SHA1(4328b5782cbe692765eac43a8eba40bdf2e41921) ) /* level 1 */ |
1435 | 1435 | ROM_LOAD( "epr-5231.prom-ic68", 0x10000, 0x4000, CRC(f00385fc) SHA1(88f64159fdd9b0b8b6a26e7c52da74189f529eb4) ) /* level 2 */ |
r32799 | r32800 | |
1442 | 1442 | ROM_LOAD( "epr-5215.prom-ic91", 0x38000, 0x4000, CRC(f5dacc53) SHA1(fe536d16ccb249c26a046f60dc804f5d3be430dc) ) /* level 7 */ |
1443 | 1443 | ROM_LOAD( "epr-5214.prom-ic90", 0x3c000, 0x2000, CRC(68306dd6) SHA1(63644e38b36512d93464280d73344c97d9ec1f78) ) |
1444 | 1444 | |
1445 | | ROM_REGION( 0x01000, "gfx2", 0 ) /* foreground data */ |
| 1445 | ROM_REGION( 0x01000, "fgtiles", 0 ) /* foreground data */ |
1446 | 1446 | ROM_LOAD( "epr-5201.cpu-ic102", 0x0000, 0x0800, CRC(7f21b0a4) SHA1(b6d784031ffecb36863ae1d81eeaaf8f76ab83df) ) |
1447 | 1447 | ROM_LOAD( "epr-5202.cpu-ic103", 0x0800, 0x0800, CRC(43f3e5a7) SHA1(2714943b6720311c5d226db3b6fe95d072677793) ) |
1448 | 1448 | |
1449 | | ROM_REGION( 0x2000, "gfx3", 0 ) /* background color data */ |
| 1449 | ROM_REGION( 0x2000, "bgcolor", 0 ) /* background color data */ |
1450 | 1450 | ROM_LOAD( "epr-5203.cpu-ic91", 0x0000, 0x2000, CRC(631f5b65) SHA1(ce8b23cf97f7e08a13f426964ef140a20a884335) ) |
1451 | 1451 | |
1452 | 1452 | ROM_REGION( 0x0b00, "proms", 0 ) /* various PROMs */ |
trunk/src/mame/drivers/dwarfd.c
r32799 | r32800 | |
323 | 323 | required_device<cpu_device> m_maincpu; |
324 | 324 | required_device<palette_device> m_palette; |
325 | 325 | required_device<i8275_device> m_crtc; |
326 | | required_memory_region m_charmap; |
| 326 | required_region_ptr<UINT16> m_charmap; |
327 | 327 | required_ioport m_dsw2; |
328 | 328 | |
329 | 329 | DECLARE_READ8_MEMBER(dwarfd_ram_r); |
r32799 | r32800 | |
574 | 574 | int i; |
575 | 575 | int bank = ((gpa & 2) ? 0 : 4) + (gpa & 1) + ((m_dsw2->read() & 4) >> 1); |
576 | 576 | const rgb_t *palette = m_palette->palette()->entry_list_raw(); |
577 | | UINT16 pixels = m_charmap->u16((linecount & 7) + ((charcode + (bank * 128)) << 3)); |
| 577 | UINT16 pixels = m_charmap[(linecount & 7) + ((charcode + (bank * 128)) << 3)]; |
578 | 578 | if(!x) |
579 | 579 | m_back_color = false; |
580 | 580 | |
r32799 | r32800 | |
598 | 598 | int i; |
599 | 599 | int bank = gpa; |
600 | 600 | const rgb_t *palette = m_palette->palette()->entry_list_raw(); |
601 | | UINT16 pixels = m_charmap->u16((linecount & 7) + ((charcode + (bank * 128)) << 3)); |
| 601 | UINT16 pixels = m_charmap[(linecount & 7) + ((charcode + (bank * 128)) << 3)]; |
602 | 602 | if(!x) |
603 | 603 | m_back_color = false; |
604 | 604 | |
r32799 | r32800 | |
637 | 637 | 4,8, |
638 | 638 | RGN_FRAC(1,1), |
639 | 639 | 4, |
640 | | { 0,1,2,3}, |
641 | | {8,0,24,16 }, |
| 640 | { 0,1,2,3 }, |
| 641 | { 0, 8, 16, 24 }, |
642 | 642 | //{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, |
643 | 643 | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, |
644 | 644 | 8*32 |
r32799 | r32800 | |
650 | 650 | 8,8, |
651 | 651 | RGN_FRAC(1,1), |
652 | 652 | 4, |
653 | | { 0,1,2,3}, |
654 | | {8,12,0,4,24,28,16,20 }, |
| 653 | { 0,1,2,3 }, |
| 654 | { STEP8(0, 4) }, |
655 | 655 | // {12,8,4,0,28,24,20,16 }, |
656 | 656 | //{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, |
657 | | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, |
| 657 | { STEP8(0, 32) }, |
658 | 658 | 8*32 |
659 | 659 | }; |
660 | 660 | |
r32799 | r32800 | |
665 | 665 | RGN_FRAC(1,1), |
666 | 666 | 1, |
667 | 667 | { 0 }, |
668 | | {8,0,24,16 }, |
| 668 | { 0, 8, 16, 24 }, |
669 | 669 | //{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, |
670 | | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, |
| 670 | { STEP8(0, 32) }, |
671 | 671 | 8*32 |
672 | 672 | }; |
673 | 673 | |
r32799 | r32800 | |
677 | 677 | RGN_FRAC(1,1), |
678 | 678 | 1, |
679 | 679 | { 1 }, |
680 | | {8,0,24,16 }, |
| 680 | { 0, 8, 16, 24 }, |
681 | 681 | //{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, |
682 | | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, |
| 682 | { STEP8(0, 32) }, |
683 | 683 | 8*32 |
684 | 684 | }; |
685 | 685 | |
r32799 | r32800 | |
689 | 689 | RGN_FRAC(1,1), |
690 | 690 | 1, |
691 | 691 | { 2 }, |
692 | | {8,0,24,16 }, |
| 692 | { 0, 8, 16, 24 }, |
693 | 693 | //{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, |
694 | | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, |
| 694 | { STEP8(0, 32) }, |
695 | 695 | 8*32 |
696 | 696 | }; |
697 | 697 | |
r32799 | r32800 | |
701 | 701 | RGN_FRAC(1,1), |
702 | 702 | 1, |
703 | 703 | { 3 }, |
704 | | {8,0,24,16 }, |
| 704 | { 0, 8, 16, 24 }, |
705 | 705 | //{ 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16 }, |
706 | | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32 }, |
| 706 | { STEP8(0, 32) }, |
707 | 707 | 8*32 |
708 | 708 | }; |
709 | 709 | /* |
r32799 | r32800 | |
834 | 834 | ROM_LOAD( "9j_pd_50-3192_mbm2732.bin", 0x2000, 0x1000, CRC(9c66ee6e) SHA1(49c20fa276508b3c7b0134909295ae04ee46890f) ) |
835 | 835 | ROM_LOAD( "9h_pd_50-3375_2732.bin", 0x3000, 0x1000, CRC(daf5551d) SHA1(933e3453c9e74ca6695137c9f6b1abc1569ad019) ) |
836 | 836 | |
837 | | ROM_REGION( 0x4000, "gfx1", 0 ) |
| 837 | ROM_REGION16_LE( 0x4000, "gfx1", 0 ) |
838 | 838 | ROM_LOAD16_BYTE( "6a_pd_50_1991_2732.bin" ,0x0000, 0x1000, CRC(6da494bc) SHA1(0323eaa5f81e3b8561225ccdd4654c9a11f2167c) ) |
839 | 839 | ROM_LOAD16_BYTE( "6b_pd_50-1992_tms2732ajl.bin",0x2000, 0x1000, CRC(69208e1a) SHA1(8706f8f0d2dfeba5cebc71985ea46a67de13bc7d) ) |
840 | 840 | ROM_LOAD16_BYTE( "6c_pd_50-1993_tms2732ajl.bin",0x0001, 0x1000, CRC(cd8e5e54) SHA1(0961739d72d80e0ac00e6cbf9643bcebfe74830d) ) |
r32799 | r32800 | |
857 | 857 | ROM_LOAD( "9j_pd_50-3192_mbm2732.bin", 0x2000, 0x1000, CRC(9c66ee6e) SHA1(49c20fa276508b3c7b0134909295ae04ee46890f) ) |
858 | 858 | ROM_LOAD( "9h_pd_50-3375_2732.bin", 0x3000, 0x1000, CRC(daf5551d) SHA1(933e3453c9e74ca6695137c9f6b1abc1569ad019) ) |
859 | 859 | |
860 | | ROM_REGION( 0x4000, "gfx1", 0 ) |
| 860 | ROM_REGION16_LE( 0x4000, "gfx1", 0 ) |
861 | 861 | ROM_LOAD16_BYTE( "6a_pd_50_1991_2732.bin" ,0x0000, 0x1000, CRC(6da494bc) SHA1(0323eaa5f81e3b8561225ccdd4654c9a11f2167c) ) |
862 | 862 | ROM_LOAD16_BYTE( "50-1814-tms2732ajl.6b",0x2000, 0x1000, CRC(BAA78A2E) SHA1(F7B61BAE8919ED58C12D9F80F4133A722DF08AC4) ) |
863 | 863 | ROM_LOAD16_BYTE( "6c_pd_50-1993_tms2732ajl.bin",0x0001, 0x1000, CRC(cd8e5e54) SHA1(0961739d72d80e0ac00e6cbf9643bcebfe74830d) ) |
r32799 | r32800 | |
884 | 884 | ROM_LOAD( "9j_qh_60-2400_9193.bin", 0x2000, 0x1000, CRC(90efa26e) SHA1(aa29e2d90692cd97a9d18c93d8a2ea13ef1eab71) ) |
885 | 885 | ROM_LOAD( "9h_qh_80-2399_10193.bin", 0x3000, 0x1000, CRC(20be3f2f) SHA1(b6a67b664cc899e997742fb4350e3c8c1e23664a) ) |
886 | 886 | |
887 | | ROM_REGION( 0x4000, "gfx1", 0 ) |
| 887 | ROM_REGION16_LE( 0x4000, "gfx1", 0 ) |
888 | 888 | ROM_LOAD16_BYTE( "6a_qh_01-2395_14193.bin",0x1000, 0x0800, CRC(98b8e844) SHA1(c8a2ec3cb61d6cdc3e8fadba23a9850afd8db05b) ) |
889 | 889 | ROM_LOAD16_BYTE( "6b_qh_01-2396_13193.bin",0x0000, 0x0800, CRC(03a21561) SHA1(0f6d8d13d81712e3e1971fe41e48ce5dff888dfd) ) |
890 | 890 | ROM_LOAD16_BYTE( "6c_qh_01-2397_12193.bin",0x1001, 0x0800, CRC(b0306417) SHA1(d8322009f39c937b6dc8fe3f591734f06213a9a3) ) |
r32799 | r32800 | |
913 | 913 | ROM_LOAD( "9j_qh_10-2400_9193.bin", 0x2000, 0x1000, CRC(0b90860f) SHA1(6e5f79e1a7e1b477da8e0483f75e23129604564c) ) |
914 | 914 | ROM_LOAD( "9h_qh_50-2399_10193.bin", 0x3000, 0x1000, CRC(7d96c776) SHA1(e97080b0b0f524c3f313d5f7b7f3b093fb071bf9) ) |
915 | 915 | |
916 | | ROM_REGION( 0x4000, "gfx1", 0 ) |
| 916 | ROM_REGION16_LE( 0x4000, "gfx1", 0 ) |
917 | 917 | ROM_LOAD16_BYTE( "6a_qh_01-2395_14193.bin",0x1000, 0x0800, CRC(98b8e844) SHA1(c8a2ec3cb61d6cdc3e8fadba23a9850afd8db05b) ) |
918 | 918 | ROM_LOAD16_BYTE( "6b_qh_01-2396_13193.bin",0x0000, 0x0800, CRC(03a21561) SHA1(0f6d8d13d81712e3e1971fe41e48ce5dff888dfd) ) |
919 | 919 | ROM_LOAD16_BYTE( "6c_qh_01-2397_12193.bin",0x1001, 0x0800, CRC(b0306417) SHA1(d8322009f39c937b6dc8fe3f591734f06213a9a3) ) |
r32799 | r32800 | |
939 | 939 | ROM_REGION( 0x10000, "maincpu", 0 ) |
940 | 940 | ROM_LOAD( "a1.bin", 0x0000, 0x4000, CRC(9eace6a3) SHA1(285945034b73ff660a5a138d7be2fa431c0872e1) ) |
941 | 941 | |
942 | | ROM_REGION( 0x8000, "gfx_data", 0 ) |
| 942 | ROM_REGION16_LE( 0x8000, "gfx_data", 0 ) |
943 | 943 | ROM_LOAD16_BYTE( "a2.bin",0x0001, 0x4000, CRC(b8cf5e27) SHA1(a5b451ab94ea1f2dda18a2d8ef9b8e0e46621420) ) // - oversized dumps perhaps? |
944 | 944 | ROM_LOAD16_BYTE( "a3.bin",0x0000, 0x4000, CRC(8b5296b1) SHA1(9d27d85f2edb44b96acce3c3f3e611217dcef70d) ) // / |
945 | 945 | |
946 | | ROM_REGION( 0x4000, "gfx1", 0 ) |
| 946 | ROM_REGION16_LE( 0x4000, "gfx1", 0 ) |
947 | 947 | ROM_COPY("gfx_data", 0x0000, 0x1000, 0x0800 ) |
948 | 948 | ROM_COPY("gfx_data", 0x0800, 0x0000, 0x0800 ) |
949 | 949 | ROM_COPY("gfx_data", 0x1000, 0x1800, 0x0800 ) |
r32799 | r32800 | |
969 | 969 | ROM_REGION( 0x10000, "maincpu", 0 ) |
970 | 970 | ROM_LOAD( "qc.a10", 0x0000, 0x8000, CRC(4e0327de) SHA1(543d89f2e808e48041c6c10ad4686c7f7113ed88) ) |
971 | 971 | |
972 | | ROM_REGION( 0x8000, "gfx_data", 0 ) |
| 972 | ROM_REGION16_LE( 0x8000, "gfx_data", 0 ) |
973 | 973 | ROM_LOAD16_BYTE( "qc.h6", 0x0001, 0x4000, CRC(a091526e) SHA1(58507414ae0d02c6adee80987f66fb8894e169b0) ) |
974 | 974 | ROM_LOAD16_BYTE( "qc.k6", 0x0000, 0x4000, CRC(eb583b44) SHA1(c23ad0037472c5bcb30fb030e4d13a6e5fde4b30) ) |
975 | 975 | |
976 | | ROM_REGION( 0x4000, "gfx1", 0 ) |
| 976 | ROM_REGION16_LE( 0x4000, "gfx1", 0 ) |
977 | 977 | ROM_COPY("gfx_data", 0x6000, 0x1000, 0x800 ) |
978 | 978 | ROM_COPY("gfx_data", 0x6800, 0x0000, 0x800 ) |
979 | 979 | ROM_COPY("gfx_data", 0x7000, 0x1800, 0x800 ) |
r32799 | r32800 | |
990 | 990 | |
991 | 991 | DRIVER_INIT_MEMBER(dwarfd_state,dwarfd) |
992 | 992 | { |
993 | | int i; |
994 | | UINT8 *src, *dst; |
995 | | |
996 | 993 | /* expand gfx roms */ |
997 | | src = memregion("gfx1")->base(); |
998 | | dst = memregion("gfx2")->base(); |
| 994 | UINT8 *dst = memregion("gfx2")->base(); |
999 | 995 | |
1000 | | for (i = 0; i < 0x4000; i++) |
| 996 | for (int i = 0; i < 0x4000/2; i++) |
1001 | 997 | { |
1002 | | UINT8 dat; |
1003 | | dat = (src[i] & 0xf0) >> 0; |
1004 | | dst[i * 2] = dat; |
| 998 | dst[i * 4 + 0] = (m_charmap[i] & 0x000f) << 4; |
1005 | 999 | |
1006 | | dat = (src[i] & 0x0f)<<4; |
1007 | | dst[i * 2 + 1] = dat; |
| 1000 | dst[i * 4 + 1] = (m_charmap[i] & 0x00f0) >> 0; |
| 1001 | |
| 1002 | dst[i * 4 + 2] = (m_charmap[i] & 0x0f00) >> 4; |
| 1003 | |
| 1004 | dst[i * 4 + 3] = (m_charmap[i] & 0xf000) >> 8; |
1008 | 1005 | } |
1009 | 1006 | |
1010 | 1007 | /* use low bit as 'interpolation' bit */ |
1011 | | src = memregion("gfx2")->base(); |
1012 | | for (i = 0; i < 0x8000; i++) |
| 1008 | for (int i = 0; i < 0x8000; i++) |
1013 | 1009 | { |
1014 | | if (src[i] & 0x10) |
| 1010 | if (dst[i] & 0x10) |
1015 | 1011 | { |
1016 | | src[i] = (src[i] & 0xe0) >> 1; |
1017 | | // src[i] |= ((src[(i + 1) & 0x7fff] & 0xe0) >> 4); |
| 1012 | dst[i] = (dst[i] & 0xe0) >> 1; |
| 1013 | // dst[i] |= ((dst[(i + 1) & 0x7fff] & 0xe0) >> 4); |
1018 | 1014 | |
1019 | 1015 | } |
1020 | 1016 | else |
1021 | 1017 | { |
1022 | | src[i] = (src[i] & 0xe0) >> 1; |
1023 | | src[i] |= (src[i] >> 4); |
| 1018 | dst[i] = (dst[i] & 0xe0) >> 1; |
| 1019 | dst[i] |= (dst[i] >> 4); |
1024 | 1020 | |
1025 | 1021 | } |
1026 | | // src[i] = src[i] & 0xe0; |
| 1022 | // dst[i] = dst[i] & 0xe0; |
1027 | 1023 | } |
1028 | 1024 | |
1029 | 1025 | save_item(NAME(m_dw_ram)); |
trunk/src/mame/video/turbo.c
r32799 | r32800 | |
264 | 264 | |
265 | 265 | void turbo_state::turbo_prepare_sprites(UINT8 y, sprite_info *info) |
266 | 266 | { |
267 | | const UINT8 *pr1119 = memregion("proms")->base() + 0x200; |
| 267 | const UINT8 *pr1119 = &m_proms[0x200]; |
268 | 268 | int sprnum; |
269 | 269 | |
270 | 270 | /* initialize the line enable signals to 0 */ |
r32799 | r32800 | |
328 | 328 | } |
329 | 329 | |
330 | 330 | |
331 | | UINT32 turbo_state::turbo_get_sprite_bits(const UINT8 *sprite_gfxdata, UINT8 road, sprite_info *sprinfo) |
| 331 | UINT32 turbo_state::turbo_get_sprite_bits(UINT8 road, sprite_info *sprinfo) |
332 | 332 | { |
333 | 333 | UINT8 sprlive = sprinfo->lst; |
334 | 334 | UINT32 sprdata = 0; |
r32799 | r32800 | |
355 | 355 | /* bit 0 controls which half of the byte to use */ |
356 | 356 | /* bits 1-13 go to address lines */ |
357 | 357 | /* bit 14 selects which of the two ROMs to read from */ |
358 | | pixdata = sprite_gfxdata[(level << 14) | ((offs >> 1) & 0x3fff)] >> ((~offs & 1) * 4); |
| 358 | pixdata = m_spriteroms[(level << 14) | ((offs >> 1) & 0x3fff)] >> ((~offs & 1) * 4); |
359 | 359 | sprinfo->latched[level] = sprite_expand[pixdata & 0x0f] << level; |
360 | 360 | |
361 | 361 | /* if bit 3 is 0 and bit 2 is 1, the enable flip/flip is reset */ |
r32799 | r32800 | |
385 | 385 | UINT32 turbo_state::screen_update_turbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
386 | 386 | { |
387 | 387 | bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap(); |
388 | | const UINT8 *road_gfxdata = memregion("gfx3")->base(); |
389 | | const UINT8 *prom_base = memregion("proms")->base(); |
390 | | const UINT8 *pr1114 = prom_base + 0x000; |
391 | | const UINT8 *pr1115 = prom_base + 0x020; |
392 | | const UINT8 *pr1116 = prom_base + 0x040; |
393 | | const UINT8 *pr1117 = prom_base + 0x060; |
394 | | const UINT8 *pr1118 = prom_base + 0x100; |
395 | | const UINT8 *pr1121 = prom_base + 0x600; |
396 | | const UINT8 *pr1122 = prom_base + 0x800; |
397 | | const UINT8 *pr1123 = prom_base + 0xc00; |
| 388 | const UINT8 *pr1114 = &m_proms[0x000]; |
| 389 | const UINT8 *pr1115 = &m_proms[0x020]; |
| 390 | const UINT8 *pr1116 = &m_proms[0x040]; |
| 391 | const UINT8 *pr1117 = &m_proms[0x060]; |
| 392 | const UINT8 *pr1118 = &m_proms[0x100]; |
| 393 | const UINT8 *pr1121 = &m_proms[0x600]; |
| 394 | const UINT8 *pr1122 = &m_proms[0x800]; |
| 395 | const UINT8 *pr1123 = &m_proms[0xc00]; |
398 | 396 | int x, y; |
399 | 397 | |
400 | 398 | /* loop over rows */ |
r32799 | r32800 | |
451 | 449 | offs = va | /* A0- A7 = VA0-VA7 */ |
452 | 450 | ((sel & 0x0f) << 8); /* A8-A11 = SEL0-3 */ |
453 | 451 | |
454 | | areatmp = road_gfxdata[0x0000 | offs]; |
| 452 | areatmp = m_roadroms[0x0000 | offs]; |
455 | 453 | areatmp = ((areatmp + xx) >> 8) & 0x01; |
456 | 454 | area = areatmp << 0; |
457 | 455 | |
458 | | areatmp = road_gfxdata[0x1000 | offs]; |
| 456 | areatmp = m_roadroms[0x1000 | offs]; |
459 | 457 | areatmp = ((areatmp + xx) >> 8) & 0x01; |
460 | 458 | area |= areatmp << 1; |
461 | 459 | |
r32799 | r32800 | |
463 | 461 | offs = va | /* A0- A7 = VA0-VA7 */ |
464 | 462 | ((sel & 0xf0) << 4); /* A8-A11 = SEL4-7 */ |
465 | 463 | |
466 | | areatmp = road_gfxdata[0x2000 | offs]; |
| 464 | areatmp = m_roadroms[0x2000 | offs]; |
467 | 465 | areatmp = ((areatmp + xx) >> 8) & 0x01; |
468 | 466 | area |= areatmp << 2; |
469 | 467 | |
470 | | areatmp = road_gfxdata[0x3000 | offs]; |
| 468 | areatmp = m_roadroms[0x3000 | offs]; |
471 | 469 | areatmp = ((areatmp + xx) >> 8) & 0x01; |
472 | 470 | area |= areatmp << 3; |
473 | 471 | |
r32799 | r32800 | |
475 | 473 | offs = (xx >> 3) | /* A0- A4 = H3-H7 */ |
476 | 474 | ((m_turbo_opc & 0x3f) << 5); /* A5-A10 = OPC0-5 */ |
477 | 475 | |
478 | | areatmp = road_gfxdata[0x4000 | offs]; |
| 476 | areatmp = m_roadroms[0x4000 | offs]; |
479 | 477 | areatmp = (areatmp << (xx & 7)) & 0x80; |
480 | 478 | area |= areatmp >> 3; |
481 | 479 | |
r32799 | r32800 | |
510 | 508 | /* CDG0-7 = D8 -D15 */ |
511 | 509 | /* CDR0-7 = D16-D23 */ |
512 | 510 | /* PLB0-7 = D24-D31 */ |
513 | | sprbits = turbo_get_sprite_bits(m_gfx1->base(), road, &sprinfo); |
| 511 | sprbits = turbo_get_sprite_bits(road, &sprinfo); |
514 | 512 | |
515 | 513 | /* perform collision detection here via lookup in IC20/PR1116 (p. 144) */ |
516 | 514 | m_turbo_collision |= pr1116[((sprbits >> 24) & 7) | (slipar_acciar >> 1)]; |
r32799 | r32800 | |
621 | 619 | |
622 | 620 | void turbo_state::subroc3d_prepare_sprites(UINT8 y, sprite_info *info) |
623 | 621 | { |
624 | | const UINT8 *pr1449 = memregion("proms")->base() + 0x300; |
| 622 | const UINT8 *pr1449 = &m_proms[0x300]; |
625 | 623 | int sprnum; |
626 | 624 | |
627 | 625 | /* initialize the line enable signals to 0 */ |
r32799 | r32800 | |
679 | 677 | } |
680 | 678 | |
681 | 679 | |
682 | | UINT32 turbo_state::subroc3d_get_sprite_bits(const UINT8 *sprite_gfxdata, sprite_info *sprinfo, UINT8 *plb) |
| 680 | UINT32 turbo_state::subroc3d_get_sprite_bits(sprite_info *sprinfo, UINT8 *plb) |
683 | 681 | { |
684 | 682 | /* see logic on each sprite: |
685 | 683 | END = (CDA == 1 && (CDA ^ CDB) == 0 && (CDC ^ CDD) == 0) |
r32799 | r32800 | |
710 | 708 | /* bit 0 controls which half of the byte to use */ |
711 | 709 | /* bits 1-13 go to address lines */ |
712 | 710 | /* bit 14 selects which of the two ROMs to read from */ |
713 | | pixdata = sprite_gfxdata[(level << 15) | ((offs >> 1) & 0x7fff)] >> ((~offs & 1) * 4); |
| 711 | pixdata = m_spriteroms[(level << 15) | ((offs >> 1) & 0x7fff)] >> ((~offs & 1) * 4); |
714 | 712 | sprinfo->latched[level] = sprite_expand[pixdata & 0x0f] << level; |
715 | 713 | sprinfo->plb[level] = (plb_end[pixdata & 0x0f] & 1) << level; |
716 | 714 | |
r32799 | r32800 | |
738 | 736 | UINT32 turbo_state::screen_update_subroc3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
739 | 737 | { |
740 | 738 | bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap(); |
741 | | const UINT8 *prom_base = memregion("proms")->base(); |
742 | | const UINT8 *pr1419 = prom_base + 0x000; |
743 | | const UINT8 *pr1620 = prom_base + 0x200; |
744 | | const UINT8 *pr1450 = prom_base + 0x500; |
745 | | const UINT8 *pr1454 = prom_base + 0x920; |
| 739 | const UINT8 *pr1419 = &m_proms[0x000]; |
| 740 | const UINT8 *pr1620 = &m_proms[0x200]; |
| 741 | const UINT8 *pr1450 = &m_proms[0x500]; |
| 742 | const UINT8 *pr1454 = &m_proms[0x920]; |
746 | 743 | int x, y; |
747 | 744 | |
748 | 745 | /* loop over rows */ |
r32799 | r32800 | |
794 | 791 | /* CDB0-7 = D8 -D15 */ |
795 | 792 | /* CDC0-7 = D16-D23 */ |
796 | 793 | /* CDD0-7 = D24-D31 */ |
797 | | sprbits = subroc3d_get_sprite_bits(m_gfx1->base(), &sprinfo, &plb); |
| 794 | sprbits = subroc3d_get_sprite_bits(&sprinfo, &plb); |
798 | 795 | |
799 | 796 | /* MUX0-3 is selected by PLY0-3 and the sprite enable bits, and is the output */ |
800 | 797 | /* of IC21/PR1450 (p. 141), unless MPLB = 0, in which case the values are grounded (p. 141) */ |
r32799 | r32800 | |
838 | 835 | |
839 | 836 | void turbo_state::buckrog_prepare_sprites(UINT8 y, sprite_info *info) |
840 | 837 | { |
841 | | const UINT8 *pr5196 = memregion("proms")->base() + 0x100; |
| 838 | const UINT8 *pr5196 = &m_proms[0x100]; |
842 | 839 | int sprnum; |
843 | 840 | |
844 | 841 | /* initialize the line enable signals to 0 */ |
r32799 | r32800 | |
897 | 894 | } |
898 | 895 | |
899 | 896 | |
900 | | UINT32 turbo_state::buckrog_get_sprite_bits(const UINT8 *sprite_gfxdata, sprite_info *sprinfo, UINT8 *plb) |
| 897 | UINT32 turbo_state::buckrog_get_sprite_bits(sprite_info *sprinfo, UINT8 *plb) |
901 | 898 | { |
902 | 899 | /* see logic on each sprite: |
903 | 900 | END = (CDA == 1 && (CDA ^ CDB) == 0 && (CDC ^ CDD) == 0) |
r32799 | r32800 | |
928 | 925 | /* bit 0 controls which half of the byte to use */ |
929 | 926 | /* bits 1-13 go to address lines */ |
930 | 927 | /* bit 14 selects which of the two ROMs to read from */ |
931 | | pixdata = sprite_gfxdata[(level << 15) | ((offs >> 1) & 0x7fff)] >> ((~offs & 1) * 4); |
| 928 | pixdata = m_spriteroms[(level << 15) | ((offs >> 1) & 0x7fff)] >> ((~offs & 1) * 4); |
932 | 929 | sprinfo->latched[level] = sprite_expand[pixdata & 0x0f] << level; |
933 | 930 | sprinfo->plb[level] = (plb_end[pixdata & 0x0f] & 1) << level; |
934 | 931 | |
r32799 | r32800 | |
956 | 953 | UINT32 turbo_state::screen_update_buckrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
957 | 954 | { |
958 | 955 | bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap(); |
959 | | const UINT8 *bgcolor = memregion("gfx3")->base(); |
960 | | const UINT8 *prom_base = memregion("proms")->base(); |
961 | | const UINT8 *pr5194 = prom_base + 0x000; |
962 | | const UINT8 *pr5198 = prom_base + 0x500; |
963 | | const UINT8 *pr5199 = prom_base + 0x700; |
| 956 | const UINT8 *pr5194 = &m_proms[0x000]; |
| 957 | const UINT8 *pr5198 = &m_proms[0x500]; |
| 958 | const UINT8 *pr5199 = &m_proms[0x700]; |
964 | 959 | int x, y; |
965 | 960 | |
966 | 961 | /* loop over rows */ |
r32799 | r32800 | |
1009 | 1004 | /* CDB0-7 = D8 -D15 */ |
1010 | 1005 | /* CDC0-7 = D16-D23 */ |
1011 | 1006 | /* CDD0-7 = D24-D31 */ |
1012 | | sprbits = buckrog_get_sprite_bits(m_gfx1->base(), &sprinfo, &plb); |
| 1007 | sprbits = buckrog_get_sprite_bits(&sprinfo, &plb); |
1013 | 1008 | |
1014 | 1009 | /* the PLB bits go into an LS148 8-to-1 decoder and become MUX0-3 (PROM board SH 2/10) */ |
1015 | 1010 | if (plb == 0) |
r32799 | r32800 | |
1064 | 1059 | /* otherwise, CHNG = 3 */ |
1065 | 1060 | else |
1066 | 1061 | { |
1067 | | palbits = bgcolor[y | ((m_buckrog_mov & 0x1f) << 8)]; |
| 1062 | palbits = m_bgcolorrom[y | ((m_buckrog_mov & 0x1f) << 8)]; |
1068 | 1063 | palbits = (palbits & 0xc0) | ((palbits & 0x30) << 4) | ((palbits & 0x0f) << 2); |
1069 | 1064 | } |
1070 | 1065 | |
trunk/src/mess/drivers/vixen.c
r32799 | r32800 | |
295 | 295 | //------------------------------------------------- |
296 | 296 | |
297 | 297 | INPUT_PORTS_START( vixen ) |
298 | | PORT_START("Y0") |
| 298 | PORT_START("KEY.0") |
299 | 299 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
300 | 300 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
301 | 301 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
r32799 | r32800 | |
305 | 305 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
306 | 306 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
307 | 307 | |
308 | | PORT_START("Y1") |
| 308 | PORT_START("KEY.1") |
309 | 309 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
310 | 310 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
311 | 311 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
r32799 | r32800 | |
315 | 315 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
316 | 316 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
317 | 317 | |
318 | | PORT_START("Y2") |
| 318 | PORT_START("KEY.2") |
319 | 319 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
320 | 320 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
321 | 321 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
r32799 | r32800 | |
325 | 325 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
326 | 326 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
327 | 327 | |
328 | | PORT_START("Y3") |
| 328 | PORT_START("KEY.3") |
329 | 329 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
330 | 330 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
331 | 331 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
r32799 | r32800 | |
335 | 335 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
336 | 336 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
337 | 337 | |
338 | | PORT_START("Y4") |
| 338 | PORT_START("KEY.4") |
339 | 339 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
340 | 340 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
341 | 341 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
r32799 | r32800 | |
345 | 345 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
346 | 346 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
347 | 347 | |
348 | | PORT_START("Y5") |
| 348 | PORT_START("KEY.5") |
349 | 349 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
350 | 350 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
351 | 351 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
r32799 | r32800 | |
355 | 355 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
356 | 356 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
357 | 357 | |
358 | | PORT_START("Y6") |
| 358 | PORT_START("KEY.6") |
359 | 359 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
360 | 360 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
361 | 361 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
r32799 | r32800 | |
365 | 365 | PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
366 | 366 | PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
367 | 367 | |
368 | | PORT_START("Y7") |
| 368 | PORT_START("KEY.7") |
369 | 369 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
370 | 370 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
371 | 371 | PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_KEYBOARD ) |
r32799 | r32800 | |
420 | 420 | for (int chadr = 0; chadr < 128; chadr++) |
421 | 421 | { |
422 | 422 | UINT16 sync_addr = (txadr << 7) | chadr; |
423 | | UINT8 sync_data = m_sync_rom->base()[sync_addr]; |
| 423 | UINT8 sync_data = m_sync_rom[sync_addr]; |
424 | 424 | int blank = BIT(sync_data, 4); |
425 | 425 | /* |
426 | 426 | int clrchadr = BIT(sync_data, 7); |
r32799 | r32800 | |
450 | 450 | reverse = BIT(video_data, 7); |
451 | 451 | } |
452 | 452 | |
453 | | UINT8 char_data = m_char_rom->base()[char_addr]; |
| 453 | UINT8 char_data = m_char_rom[char_addr]; |
454 | 454 | |
455 | 455 | for (int x = 0; x < 8; x++) |
456 | 456 | { |
r32799 | r32800 | |
495 | 495 | { |
496 | 496 | UINT8 data = 0xff; |
497 | 497 | |
498 | | if (!BIT(m_col, 0)) data &= m_y0->read(); |
499 | | if (!BIT(m_col, 1)) data &= m_y1->read(); |
500 | | if (!BIT(m_col, 2)) data &= m_y2->read(); |
501 | | if (!BIT(m_col, 3)) data &= m_y3->read(); |
502 | | if (!BIT(m_col, 4)) data &= m_y4->read(); |
503 | | if (!BIT(m_col, 5)) data &= m_y5->read(); |
504 | | if (!BIT(m_col, 6)) data &= m_y6->read(); |
505 | | if (!BIT(m_col, 7)) data &= m_y7->read(); |
| 498 | for (int i = 0; i < 8; i++) |
| 499 | if (!BIT(m_col, i)) data &= m_key[i]->read(); |
506 | 500 | |
507 | 501 | return data; |
508 | 502 | } |
r32799 | r32800 | |
699 | 693 | UINT8 *ram = m_ram->pointer(); |
700 | 694 | |
701 | 695 | membank("bank1")->configure_entry(0, ram); |
702 | | membank("bank1")->configure_entry(1, m_rom->base()); |
| 696 | membank("bank1")->configure_entry(1, m_rom); |
703 | 697 | |
704 | 698 | membank("bank2")->configure_entry(0, ram); |
705 | 699 | membank("bank2")->configure_entry(1, m_video_ram); |
706 | 700 | |
707 | 701 | membank("bank3")->configure_entry(0, m_video_ram); |
708 | | membank("bank3")->configure_entry(1, m_rom->base()); |
| 702 | membank("bank3")->configure_entry(1, m_rom); |
709 | 703 | |
710 | 704 | membank("bank4")->configure_entry(0, m_video_ram); |
711 | 705 | |
r32799 | r32800 | |
860 | 854 | m_reset = 0; |
861 | 855 | } |
862 | 856 | |
863 | | direct.explicit_configure(0xf000, 0xffff, 0xfff, m_rom->base()); |
| 857 | direct.explicit_configure(0xf000, 0xffff, 0xfff, m_rom); |
864 | 858 | |
865 | 859 | return ~0; |
866 | 860 | } |