trunk/src/mame/drivers/seattle.c
| r248525 | r248526 | |
| 2834 | 2834 | ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) ) |
| 2835 | 2835 | ROM_END |
| 2836 | 2836 | |
| 2837 | | |
| 2838 | 2837 | ROM_START( calspeeda ) |
| 2839 | 2838 | ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.2 (2/18/98) */ |
| 2840 | 2839 | ROM_LOAD( "caspd1_2.u32", 0x000000, 0x80000, CRC(0a235e4e) SHA1(b352f10fad786260b58bd344b5002b6ea7aaf76d) ) |
| 2841 | 2840 | |
| 2841 | DISK_REGION( "ide:0:hdd:image" ) /* Release version 1.0r8a (4/10/98) (Guts 4/10/98, Main 4/10/98) */ |
| 2842 | DISK_IMAGE( "cs_10r8a", 0, SHA1(ba4e7589740e0647938c81c5082bb71d8826bad4) ) |
| 2843 | |
| 2844 | ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */ |
| 2845 | ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) ) |
| 2846 | ROM_END |
| 2847 | |
| 2848 | ROM_START( calspeedb ) |
| 2849 | ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.2 (2/18/98) */ |
| 2850 | ROM_LOAD( "caspd1_2.u32", 0x000000, 0x80000, CRC(0a235e4e) SHA1(b352f10fad786260b58bd344b5002b6ea7aaf76d) ) |
| 2851 | |
| 2842 | 2852 | DISK_REGION( "ide:0:hdd:image" ) /* Release version 1.0r7a (3/4/98) (Guts 3/3/98, Main 1/19/98) */ |
| 2843 | 2853 | DISK_IMAGE( "calspeda", 0, SHA1(6b1c3a7530195ef7309b06a651b01c8b3ece92c6) ) |
| 2844 | 2854 | |
| r248525 | r248526 | |
| 2847 | 2857 | ROM_END |
| 2848 | 2858 | |
| 2849 | 2859 | |
| 2860 | |
| 2861 | |
| 2862 | |
| 2850 | 2863 | ROM_START( vaportrx ) |
| 2851 | 2864 | ROM_REGION32_LE( 0x80000, "user1", 0 ) |
| 2852 | 2865 | ROM_LOAD( "vtrxboot.bin", 0x000000, 0x80000, CRC(ee487a6c) SHA1(fb9efda85047cf615f24f7276a9af9fd542f3354) ) |
| r248525 | r248526 | |
| 2918 | 2931 | DISK_IMAGE( "blitz99", 0, SHA1(19877e26ffce81dd525031e9e2b4f83ff982e2d9) ) |
| 2919 | 2932 | ROM_END |
| 2920 | 2933 | |
| 2934 | ROM_START( blitz99a ) |
| 2935 | ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */ |
| 2936 | ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) ) |
| 2921 | 2937 | |
| 2938 | ROM_REGION32_LE( 0x80000, "user1", 0 ) /* Boot Code Version 1.0 */ |
| 2939 | ROM_LOAD( "bltz9910.u32", 0x000000, 0x80000, CRC(777119b2) SHA1(40d255181c2f3a787919c339e83593fd506779a5) ) |
| 2940 | |
| 2941 | DISK_REGION( "ide:0:hdd:image" ) /* Hard Drive Version 1.30 */ |
| 2942 | DISK_IMAGE( "blitz99a", 0, SHA1(43f834727ce01d7a63b482fc28cbf292477fc6f2) ) |
| 2943 | ROM_END |
| 2944 | |
| 2945 | |
| 2922 | 2946 | ROM_START( blitz2k ) |
| 2923 | 2947 | ROM_REGION16_LE( 0x10000, "dcs", 0 ) /* ADSP-2115 data Version 1.02 */ |
| 2924 | 2948 | ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) ) |
| r248525 | r248526 | |
| 3141 | 3165 | GAME( 1997, macea, mace, mace, mace, seattle_state, mace, ROT0, "Atari Games", "Mace: The Dark Age (HDD 1.0a)", GAME_SUPPORTS_SAVE ) |
| 3142 | 3166 | GAME( 1996, sfrush, 0, sfrush, sfrush, seattle_state, sfrush, ROT0, "Atari Games", "San Francisco Rush", GAME_SUPPORTS_SAVE ) |
| 3143 | 3167 | GAME( 1996, sfrushrk, 0, sfrushrk, sfrushrk, seattle_state, sfrushrk, ROT0, "Atari Games", "San Francisco Rush: The Rock", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE ) |
| 3144 | | GAME( 1998, calspeed, 0, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 2.1a, 4/17/98)", GAME_SUPPORTS_SAVE ) |
| 3145 | | GAME( 1998, calspeeda,calspeed, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 1.0r7a 3/4/98)", GAME_SUPPORTS_SAVE ) |
| 3168 | GAME( 1998, calspeed, 0, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 2.1a Apr 17 1998, GUTS 1.25 Apr 17 1998 / MAIN Apr 17 1998)", GAME_SUPPORTS_SAVE ) |
| 3169 | GAME( 1998, calspeeda,calspeed, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 1.0r8 Mar 10 1998, GUTS Mar 10 1998 / MAIN Mar 10 1998)", GAME_SUPPORTS_SAVE ) |
| 3170 | GAME( 1998, calspeedb,calspeed, calspeed, calspeed, seattle_state, calspeed, ROT0, "Atari Games", "California Speed (Version 1.0r7a Mar 4 1998, GUTS Mar 3 1998 / MAIN Jan 19 1998)", GAME_SUPPORTS_SAVE ) |
| 3171 | |
| 3172 | |
| 3173 | |
| 3146 | 3174 | GAME( 1998, vaportrx, 0, vaportrx, vaportrx, seattle_state, vaportrx, ROT0, "Atari Games", "Vapor TRX", GAME_SUPPORTS_SAVE ) |
| 3147 | 3175 | GAME( 1998, vaportrxp,vaportrx, vaportrx, vaportrx, seattle_state, vaportrx, ROT0, "Atari Games", "Vapor TRX (prototype)", GAME_SUPPORTS_SAVE ) |
| 3148 | 3176 | |
| r248525 | r248526 | |
| 3150 | 3178 | GAME( 1997, biofreak, 0, biofreak, biofreak, seattle_state, biofreak, ROT0, "Midway Games", "BioFreaks (prototype)", GAME_SUPPORTS_SAVE ) |
| 3151 | 3179 | GAME( 1997, blitz, 0, blitz, blitz, seattle_state, blitz, ROT0, "Midway Games", "NFL Blitz (boot ROM 1.2)", GAME_SUPPORTS_SAVE ) |
| 3152 | 3180 | GAME( 1997, blitz11, blitz, blitz, blitz, seattle_state, blitz, ROT0, "Midway Games", "NFL Blitz (boot ROM 1.1)", GAME_SUPPORTS_SAVE ) |
| 3153 | | GAME( 1998, blitz99, 0, blitz99, blitz99, seattle_state, blitz99, ROT0, "Midway Games", "NFL Blitz '99", GAME_SUPPORTS_SAVE ) |
| 3154 | | GAME( 1999, blitz2k, 0, blitz2k, blitz99, seattle_state, blitz2k, ROT0, "Midway Games", "NFL Blitz 2000 Gold Edition", GAME_SUPPORTS_SAVE ) |
| 3181 | GAME( 1998, blitz99, 0, blitz99, blitz99, seattle_state, blitz99, ROT0, "Midway Games", "NFL Blitz '99 (ver 1.30, Sep 22 1998)", GAME_SUPPORTS_SAVE ) |
| 3182 | GAME( 1998, blitz99a, blitz99, blitz99, blitz99, seattle_state, blitz99, ROT0, "Midway Games", "NFL Blitz '99 (ver 1.2, Aug 28 1998)", GAME_SUPPORTS_SAVE ) |
| 3183 | GAME( 1999, blitz2k, 0, blitz2k, blitz99, seattle_state, blitz2k, ROT0, "Midway Games", "NFL Blitz 2000 Gold Edition (ver 1.2, Sep 22 1999)", GAME_SUPPORTS_SAVE ) |
| 3155 | 3184 | GAME( 1998, carnevil, 0, carnevil, carnevil, seattle_state, carnevil, ROT0, "Midway Games", "CarnEvil (v1.0.3)", GAME_SUPPORTS_SAVE ) |
| 3156 | 3185 | GAME( 1998, carnevil1,carnevil, carnevil, carnevil, seattle_state, carnevil, ROT0, "Midway Games", "CarnEvil (v1.0.1)", GAME_SUPPORTS_SAVE ) |
| 3157 | 3186 | GAME( 1998, hyprdriv, 0, hyprdriv, hyprdriv, seattle_state, hyprdriv, ROT0, "Midway Games", "Hyperdrive", GAME_SUPPORTS_SAVE ) |
trunk/src/mess/drivers/hh_hmcs40.c
| r248525 | r248526 | |
| 50 | 50 | @45 HD38820A 1982, Coleco Donkey Kong |
| 51 | 51 | @49 HD38820A 1983, Bandai Zackman |
| 52 | 52 | @61 HD38820A 1983, Coleco Ms. Pac-Man |
| 53 | | *63 HD38820A 1983, Bandai Pengo |
| 54 | | *65 HD38820A 1983, Bandai Burger Time |
| 53 | @63 HD38820A 1983, Bandai Pengo |
| 54 | @65 HD38820A 1983, Bandai Burger Time (PT-389) |
| 55 | 55 | @69 HD38820A 1983, Gakken Dig Dug |
| 56 | 56 | @70 HD38820A 1983, Parker Brothers Q*Bert |
| 57 | 57 | @85 HD38820A 1984, Bandai Machine Man (PT-438) |
| r248525 | r248526 | |
| 95 | 95 | hh_hmcs40_state(const machine_config &mconfig, device_type type, const char *tag) |
| 96 | 96 | : driver_device(mconfig, type, tag), |
| 97 | 97 | m_maincpu(*this, "maincpu"), |
| 98 | m_audiocpu(*this, "audiocpu"), |
| 98 | 99 | m_inp_matrix(*this, "IN"), |
| 99 | 100 | m_speaker(*this, "speaker"), |
| 100 | 101 | m_display_wait(33), |
| r248525 | r248526 | |
| 104 | 105 | |
| 105 | 106 | // devices |
| 106 | 107 | required_device<cpu_device> m_maincpu; |
| 108 | optional_device<cpu_device> m_audiocpu; |
| 107 | 109 | optional_ioport_array<7> m_inp_matrix; // max 7 |
| 108 | 110 | optional_device<speaker_sound_device> m_speaker; |
| 109 | 111 | |
| r248525 | r248526 | |
| 974 | 976 | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
| 975 | 977 | |
| 976 | 978 | // update display |
| 977 | | |
| 978 | | // hmm plate desc. wrong? |
| 979 | | // x, 7, 8, 9, 6, 5, 4, 3, 0, 3, 1, 2,16,10,17,11,12,13,14,15 |
| 980 | | // 19,18,17,16,15,14,13,12,11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 |
| 981 | | // , , , , , , , , , , , , , , , , , , , |
| 982 | | |
| 983 | 979 | UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,6,7,8,9,10,5,4,3,2,1,0); |
| 984 | | UINT32 plate = m_plate;//BITSWAP24(m_plate,23,22,21,20, |
| 980 | UINT32 plate = BITSWAP24(m_plate,23,22,21,20,5,7,0,1,2,3,4,6,19,16,17,18,15,14,13,12,10,8,9,11) | 0x800; |
| 985 | 981 | display_matrix(20, 11, plate, grid); |
| 986 | 982 | } |
| 987 | 983 | |
| r248525 | r248526 | |
| 1007 | 1003 | |
| 1008 | 1004 | void bzaxxon_state::update_int1() |
| 1009 | 1005 | { |
| 1010 | | // INT0 on multiplexed inputs |
| 1006 | // INT1 on multiplexed inputs |
| 1011 | 1007 | set_interrupt(1, read_inputs(4)); |
| 1012 | 1008 | } |
| 1013 | 1009 | |
| r248525 | r248526 | |
| 1187 | 1183 | |
| 1188 | 1184 | /*************************************************************************** |
| 1189 | 1185 | |
| 1186 | Bandai Pengo (manufactured in Japan, licensed from Sega) |
| 1187 | * PCB label FL Pengo(in katakana) |
| 1188 | * Hitachi QFP HD38820A63 MCU |
| 1189 | * cyan/red/blue VFD display Futaba DM-68ZK 3D DM-63 |
| 1190 | |
| 1191 | NOTE!: MESS external artwork is recommended |
| 1192 | |
| 1193 | ***************************************************************************/ |
| 1194 | |
| 1195 | class bpengo_state : public hh_hmcs40_state |
| 1196 | { |
| 1197 | public: |
| 1198 | bpengo_state(const machine_config &mconfig, device_type type, const char *tag) |
| 1199 | : hh_hmcs40_state(mconfig, type, tag) |
| 1200 | { } |
| 1201 | |
| 1202 | void prepare_display(); |
| 1203 | DECLARE_WRITE8_MEMBER(plate_w); |
| 1204 | DECLARE_WRITE16_MEMBER(grid_w); |
| 1205 | |
| 1206 | void update_int0(); |
| 1207 | DECLARE_INPUT_CHANGED_MEMBER(input_changed); |
| 1208 | }; |
| 1209 | |
| 1210 | // handlers |
| 1211 | |
| 1212 | void bpengo_state::prepare_display() |
| 1213 | { |
| 1214 | UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7); |
| 1215 | UINT32 plate = BITSWAP32(m_plate,31,30,29,28,23,22,21,16,17,18,19,20,27,26,25,24,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0); |
| 1216 | display_matrix(25, 8, plate, grid); |
| 1217 | } |
| 1218 | |
| 1219 | WRITE8_MEMBER(bpengo_state::plate_w) |
| 1220 | { |
| 1221 | // R0x-R6x: vfd matrix plate |
| 1222 | int shift = offset * 4; |
| 1223 | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
| 1224 | prepare_display(); |
| 1225 | } |
| 1226 | |
| 1227 | WRITE16_MEMBER(bpengo_state::grid_w) |
| 1228 | { |
| 1229 | // D10: speaker out |
| 1230 | m_speaker->level_w(data >> 10 & 1); |
| 1231 | |
| 1232 | // D12-D15: input mux |
| 1233 | UINT8 inp_mux = data >> 12 & 0xf; |
| 1234 | if (inp_mux != m_inp_mux) |
| 1235 | { |
| 1236 | m_inp_mux = inp_mux; |
| 1237 | update_int0(); |
| 1238 | } |
| 1239 | |
| 1240 | // D0-D7: vfd matrix grid |
| 1241 | m_grid = data & 0xff; |
| 1242 | prepare_display(); |
| 1243 | } |
| 1244 | |
| 1245 | void bpengo_state::update_int0() |
| 1246 | { |
| 1247 | // INT0 on multiplexed inputs |
| 1248 | set_interrupt(0, read_inputs(4)); |
| 1249 | } |
| 1250 | |
| 1251 | |
| 1252 | // config |
| 1253 | |
| 1254 | static INPUT_PORTS_START( bpengo ) |
| 1255 | PORT_START("IN.0") // D12 INT0 |
| 1256 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL) |
| 1257 | |
| 1258 | PORT_START("IN.1") // D13 INT0 |
| 1259 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL) |
| 1260 | |
| 1261 | PORT_START("IN.2") // D14 INT0 |
| 1262 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL) |
| 1263 | |
| 1264 | PORT_START("IN.3") // D15 INT0 |
| 1265 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL) |
| 1266 | |
| 1267 | PORT_START("IN.4") // INT1 |
| 1268 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)1) |
| 1269 | |
| 1270 | PORT_START("IN.5") // port D |
| 1271 | PORT_CONFNAME( 0x0800, 0x0000, "Factory Test" ) |
| 1272 | PORT_CONFSETTING( 0x0000, DEF_STR( Off ) ) |
| 1273 | PORT_CONFSETTING( 0x0800, DEF_STR( On ) ) |
| 1274 | PORT_BIT( 0xf7ff, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 1275 | INPUT_PORTS_END |
| 1276 | |
| 1277 | INPUT_CHANGED_MEMBER(bpengo_state::input_changed) |
| 1278 | { |
| 1279 | update_int0(); |
| 1280 | } |
| 1281 | |
| 1282 | |
| 1283 | static MACHINE_CONFIG_START( bpengo, bpengo_state ) |
| 1284 | |
| 1285 | /* basic machine hardware */ |
| 1286 | MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation |
| 1287 | MCFG_HMCS40_WRITE_R_CB(0, WRITE8(bpengo_state, plate_w)) |
| 1288 | MCFG_HMCS40_WRITE_R_CB(1, WRITE8(bpengo_state, plate_w)) |
| 1289 | MCFG_HMCS40_WRITE_R_CB(2, WRITE8(bpengo_state, plate_w)) |
| 1290 | MCFG_HMCS40_WRITE_R_CB(3, WRITE8(bpengo_state, plate_w)) |
| 1291 | MCFG_HMCS40_WRITE_R_CB(4, WRITE8(bpengo_state, plate_w)) |
| 1292 | MCFG_HMCS40_WRITE_R_CB(5, WRITE8(bpengo_state, plate_w)) |
| 1293 | MCFG_HMCS40_WRITE_R_CB(6, WRITE8(bpengo_state, plate_w)) |
| 1294 | MCFG_HMCS40_WRITE_D_CB(WRITE16(bpengo_state, grid_w)) |
| 1295 | MCFG_HMCS40_READ_D_CB(IOPORT("IN.5")) |
| 1296 | |
| 1297 | MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1)) |
| 1298 | MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test) |
| 1299 | |
| 1300 | /* no video! */ |
| 1301 | |
| 1302 | /* sound hardware */ |
| 1303 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 1304 | MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) |
| 1305 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 1306 | MACHINE_CONFIG_END |
| 1307 | |
| 1308 | |
| 1309 | |
| 1310 | |
| 1311 | |
| 1312 | /*************************************************************************** |
| 1313 | |
| 1314 | Bandai Burger Time (manufactured in Japan, licensed from Data East) |
| 1315 | * PCB label Kaken Corp. PT-389 Burger Time |
| 1316 | * Hitachi QFP HD38820A65 MCU |
| 1317 | * cyan/red/green VFD display NEC FIP6AM25T no. 21-21 |
| 1318 | |
| 1319 | NOTE!: MESS external artwork is recommended |
| 1320 | |
| 1321 | ***************************************************************************/ |
| 1322 | |
| 1323 | class bbtime_state : public hh_hmcs40_state |
| 1324 | { |
| 1325 | public: |
| 1326 | bbtime_state(const machine_config &mconfig, device_type type, const char *tag) |
| 1327 | : hh_hmcs40_state(mconfig, type, tag) |
| 1328 | { } |
| 1329 | |
| 1330 | void prepare_display(); |
| 1331 | DECLARE_WRITE8_MEMBER(plate_w); |
| 1332 | DECLARE_WRITE16_MEMBER(grid_w); |
| 1333 | |
| 1334 | void update_int0(); |
| 1335 | DECLARE_INPUT_CHANGED_MEMBER(input_changed); |
| 1336 | }; |
| 1337 | |
| 1338 | // handlers |
| 1339 | |
| 1340 | void bbtime_state::prepare_display() |
| 1341 | { |
| 1342 | UINT8 grid = BITSWAP8(m_grid,7,6,0,1,2,3,4,5); |
| 1343 | UINT32 plate = BITSWAP32(m_plate,31,30,29,28,25,24,26,27,22,23,15,14,12,11,10,8,7,6,4,1,5,9,13,3,2,16,17,18,19,20,0,21) | 0x1; |
| 1344 | display_matrix(28, 6, plate, grid); |
| 1345 | } |
| 1346 | |
| 1347 | WRITE8_MEMBER(bbtime_state::plate_w) |
| 1348 | { |
| 1349 | // R0x-R6x: vfd matrix plate |
| 1350 | int shift = offset * 4; |
| 1351 | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
| 1352 | prepare_display(); |
| 1353 | } |
| 1354 | |
| 1355 | WRITE16_MEMBER(bbtime_state::grid_w) |
| 1356 | { |
| 1357 | // D3: speaker out |
| 1358 | m_speaker->level_w(data >> 3 & 1); |
| 1359 | |
| 1360 | // D10-D14: input mux |
| 1361 | UINT8 inp_mux = data >> 10 & 0x1f; |
| 1362 | if (inp_mux != m_inp_mux) |
| 1363 | { |
| 1364 | m_inp_mux = inp_mux; |
| 1365 | update_int0(); |
| 1366 | } |
| 1367 | |
| 1368 | // D4-D9: vfd matrix grid |
| 1369 | m_grid = data >> 4 & 0x3f; |
| 1370 | prepare_display(); |
| 1371 | } |
| 1372 | |
| 1373 | void bbtime_state::update_int0() |
| 1374 | { |
| 1375 | // INT0 on multiplexed inputs |
| 1376 | set_interrupt(0, read_inputs(5)); |
| 1377 | } |
| 1378 | |
| 1379 | |
| 1380 | // config |
| 1381 | |
| 1382 | static INPUT_PORTS_START( bbtime ) |
| 1383 | PORT_START("IN.0") // D10 INT0 |
| 1384 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL) |
| 1385 | |
| 1386 | PORT_START("IN.1") // D11 INT0 |
| 1387 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL) |
| 1388 | |
| 1389 | PORT_START("IN.2") // D12 INT0 |
| 1390 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL) |
| 1391 | |
| 1392 | PORT_START("IN.3") // D13 INT0 |
| 1393 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL) |
| 1394 | |
| 1395 | PORT_START("IN.4") // D14 INT0 |
| 1396 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL) |
| 1397 | |
| 1398 | PORT_START("IN.5") // INT1 |
| 1399 | PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)1) |
| 1400 | INPUT_PORTS_END |
| 1401 | |
| 1402 | INPUT_CHANGED_MEMBER(bbtime_state::input_changed) |
| 1403 | { |
| 1404 | update_int0(); |
| 1405 | } |
| 1406 | |
| 1407 | |
| 1408 | static MACHINE_CONFIG_START( bbtime, bbtime_state ) |
| 1409 | |
| 1410 | /* basic machine hardware */ |
| 1411 | MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation |
| 1412 | MCFG_HMCS40_WRITE_R_CB(0, WRITE8(bbtime_state, plate_w)) |
| 1413 | MCFG_HMCS40_WRITE_R_CB(1, WRITE8(bbtime_state, plate_w)) |
| 1414 | MCFG_HMCS40_WRITE_R_CB(2, WRITE8(bbtime_state, plate_w)) |
| 1415 | MCFG_HMCS40_WRITE_R_CB(3, WRITE8(bbtime_state, plate_w)) |
| 1416 | MCFG_HMCS40_WRITE_R_CB(4, WRITE8(bbtime_state, plate_w)) |
| 1417 | MCFG_HMCS40_WRITE_R_CB(5, WRITE8(bbtime_state, plate_w)) |
| 1418 | MCFG_HMCS40_WRITE_R_CB(6, WRITE8(bbtime_state, plate_w)) |
| 1419 | MCFG_HMCS40_WRITE_D_CB(WRITE16(bbtime_state, grid_w)) |
| 1420 | |
| 1421 | MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1)) |
| 1422 | MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test) |
| 1423 | |
| 1424 | /* no video! */ |
| 1425 | |
| 1426 | /* sound hardware */ |
| 1427 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| 1428 | MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0) |
| 1429 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) |
| 1430 | MACHINE_CONFIG_END |
| 1431 | |
| 1432 | |
| 1433 | |
| 1434 | |
| 1435 | |
| 1436 | /*************************************************************************** |
| 1437 | |
| 1190 | 1438 | Bandai Dokodemo Dorayaki Doraemon (FL LSI Game Push Up) (manufactured in Japan) |
| 1191 | 1439 | * PCB label Kaken Corp PT-412 FL-Doreamon(in katakana) |
| 1192 | 1440 | * Hitachi HD38800B43 MCU |
| r248525 | r248526 | |
| 1622 | 1870 | |
| 1623 | 1871 | void cdkong_state::prepare_display() |
| 1624 | 1872 | { |
| 1625 | | UINT32 plate = BITSWAP32(m_plate,31,30,29,24,0,16,8,1,23,17,9,2,18,10,25,27,26,3,15,27,11,11,14,22,6,13,21,5,19,12,20,4); |
| 1873 | UINT32 plate = BITSWAP32(m_plate,31,30,29,24,0,16,8,1,23,17,9,2,18,10,25,27,26,3,15,27,11,11,14,22,6,13,21,5,19,12,20,4) | 0x800800; |
| 1626 | 1874 | display_matrix(29, 11, plate, m_grid); |
| 1627 | 1875 | } |
| 1628 | 1876 | |
| r248525 | r248526 | |
| 1991 | 2239 | |
| 1992 | 2240 | // update display |
| 1993 | 2241 | UINT16 grid = BITSWAP16(m_grid,15,14,13,11,10,9,8,7,6,5,4,3,2,1,0,1); |
| 1994 | | UINT64 plate = BIT(m_plate,15)<<32 | BITSWAP32(m_plate,14,13,12,4,5,6,7,24,23,25,22,21,20,13,24,3,19,14,12,11,24,2,10,8,7,25,0,9,1,18,17,16); |
| 2242 | UINT64 plate = BIT(m_plate,15)<<32 | BITSWAP32(m_plate,14,13,12,4,5,6,7,24,23,25,22,21,20,13,24,3,19,14,12,11,24,2,10,8,7,25,0,9,1,18,17,16) | 0x1004080; |
| 1995 | 2243 | display_matrix(33, 12, plate, grid); |
| 1996 | 2244 | } |
| 1997 | 2245 | |
| r248525 | r248526 | |
| 2703 | 2951 | |
| 2704 | 2952 | // update display |
| 2705 | 2953 | UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,0,1,2,3,4,5,6,7,8,9,10); |
| 2706 | | UINT32 plate = BITSWAP32(m_plate,31,30,29,28,27,26,25,6,7,8,12,13,14,15,16,17,18,17,16,12,11,10,9,8,7,6,5,4,3,2,1,0); |
| 2954 | UINT32 plate = BITSWAP32(m_plate,31,30,29,28,27,26,25,6,7,8,12,13,14,15,16,17,18,17,16,12,11,10,9,8,7,6,5,4,3,2,1,0) | 0x8000; |
| 2707 | 2955 | display_matrix(32, 11, plate, grid); |
| 2708 | 2956 | } |
| 2709 | 2957 | |
| r248525 | r248526 | |
| 3105 | 3353 | m_plate = (m_plate & ~(0xf << shift)) | (data << shift); |
| 3106 | 3354 | |
| 3107 | 3355 | // update display |
| 3108 | | UINT32 plate = BITSWAP32(m_plate,31,30,24,25,26,27,28,15,14,29,13,12,11,10,9,8,7,6,5,4,3,2,1,0,16,17,18,19,20,21,22,23); |
| 3356 | UINT32 plate = BITSWAP32(m_plate,31,30,24,25,26,27,28,15,14,29,13,12,11,10,9,8,7,6,5,4,3,2,1,0,16,17,18,19,20,21,22,23) | 0x400000; |
| 3109 | 3357 | display_matrix(30, 8, plate, m_grid); |
| 3110 | 3358 | } |
| 3111 | 3359 | |
| r248525 | r248526 | |
| 3553 | 3801 | ROM_END |
| 3554 | 3802 | |
| 3555 | 3803 | |
| 3804 | ROM_START( bpengo ) |
| 3805 | ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 ) |
| 3806 | ROM_LOAD( "hd38820a63", 0x0000, 0x1000, CRC(ebd6bc64) SHA1(0a322c47b9553a2739a85908ce64b9650cf93d49) ) |
| 3807 | ROM_CONTINUE( 0x1e80, 0x0100 ) |
| 3808 | ROM_END |
| 3809 | |
| 3810 | |
| 3811 | ROM_START( bbtime ) |
| 3812 | ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 ) |
| 3813 | ROM_LOAD( "hd38820a65", 0x0000, 0x1000, CRC(33611faf) SHA1(29b6a30ed543688d31ec2aa18f7938fa4eef30b0) ) |
| 3814 | ROM_CONTINUE( 0x1e80, 0x0100 ) |
| 3815 | ROM_END |
| 3816 | |
| 3817 | |
| 3556 | 3818 | ROM_START( bdoramon ) |
| 3557 | 3819 | ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 ) |
| 3558 | 3820 | ROM_LOAD( "hd38800b43", 0x0000, 0x1000, CRC(9387ca42) SHA1(8937e208934b34bd9f49700aa50287dfc8bda76c) ) |
| r248525 | r248526 | |
| 3715 | 3977 | CONS( 1982, msthawk, 0, 0, msthawk, msthawk, driver_device, 0, "Bandai (Mattel license)", "Star Hawk (Mattel)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) |
| 3716 | 3978 | CONS( 1982, bzaxxon, 0, 0, bzaxxon, bzaxxon, driver_device, 0, "Bandai", "Zaxxon (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) |
| 3717 | 3979 | CONS( 1983, zackman, 0, 0, zackman, zackman, driver_device, 0, "Bandai", "Zackman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) |
| 3980 | CONS( 1983, bpengo, 0, 0, bpengo, bpengo, driver_device, 0, "Bandai", "Pengo (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) |
| 3981 | CONS( 1983, bbtime, 0, 0, bbtime, bbtime, driver_device, 0, "Bandai", "Burger Time (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) |
| 3718 | 3982 | CONS( 1983, bdoramon, 0, 0, bdoramon, bdoramon, driver_device, 0, "Bandai", "Dokodemo Dorayaki Doraemon", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) |
| 3719 | 3983 | CONS( 1983, bultrman, 0, 0, bultrman, bultrman, driver_device, 0, "Bandai", "Ultra Man (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING ) |
| 3720 | 3984 | CONS( 1984, machiman, 0, 0, machiman, machiman, driver_device, 0, "Bandai", "Machine Man", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK ) |