trunk/src/mame/drivers/arkanoid.cpp
| r250265 | r250266 | |
| 811 | 811 | |
| 812 | 812 | READ8_MEMBER(arkanoid_state::hexaa_f000_r) |
| 813 | 813 | { |
| 814 | | // return hexaa_from_sub; |
| 814 | // return m_hexaa_from_sub; |
| 815 | 815 | return rand(); |
| 816 | 816 | } |
| 817 | 817 | |
| 818 | 818 | WRITE8_MEMBER(arkanoid_state::hexaa_f000_w) |
| 819 | 819 | { |
| 820 | | hexaa_from_main = data; |
| 820 | m_hexaa_from_main = data; |
| 821 | 821 | } |
| 822 | 822 | |
| 823 | 823 | static ADDRESS_MAP_START( hexaa_map, AS_PROGRAM, 8, arkanoid_state ) |
| r250265 | r250266 | |
| 840 | 840 | |
| 841 | 841 | WRITE8_MEMBER(arkanoid_state::hexaa_sub_80_w) |
| 842 | 842 | { |
| 843 | | hexaa_from_sub = data; |
| 843 | m_hexaa_from_sub = data; |
| 844 | 844 | } |
| 845 | 845 | |
| 846 | 846 | READ8_MEMBER(arkanoid_state::hexaa_sub_90_r) |
| 847 | 847 | { |
| 848 | | return hexaa_from_main; |
| 848 | return m_hexaa_from_main; |
| 849 | 849 | // return rand(); |
| 850 | 850 | } |
| 851 | 851 | |
| r250265 | r250266 | |
| 1183 | 1183 | |
| 1184 | 1184 | /* Machine Drivers */ |
| 1185 | 1185 | |
| 1186 | | MACHINE_START_MEMBER(arkanoid_state,arkanoid) |
| 1186 | void arkanoid_state::machine_start() |
| 1187 | 1187 | { |
| 1188 | 1188 | save_item(NAME(m_bootleg_cmd)); |
| 1189 | 1189 | |
| r250265 | r250266 | |
| 1204 | 1204 | save_item(NAME(m_palettebank)); |
| 1205 | 1205 | } |
| 1206 | 1206 | |
| 1207 | | MACHINE_RESET_MEMBER(arkanoid_state,arkanoid) |
| 1207 | void arkanoid_state::machine_reset() |
| 1208 | 1208 | { |
| 1209 | 1209 | m_port_a_in = 0; |
| 1210 | 1210 | m_port_a_out = 0; |
| r250265 | r250266 | |
| 1245 | 1245 | |
| 1246 | 1246 | MCFG_QUANTUM_TIME(attotime::from_hz(6000)) // 100 CPU slices per second to synchronize between the MCU and the main CPU |
| 1247 | 1247 | |
| 1248 | | MCFG_MACHINE_START_OVERRIDE(arkanoid_state,arkanoid) |
| 1249 | | MCFG_MACHINE_RESET_OVERRIDE(arkanoid_state,arkanoid) |
| 1250 | | |
| 1251 | 1248 | /* video hardware */ |
| 1252 | 1249 | MCFG_SCREEN_ADD("screen", RASTER) |
| 1253 | 1250 | // MCFG_SCREEN_REFRESH_RATE(60) |
| r250265 | r250266 | |
| 1260 | 1257 | |
| 1261 | 1258 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", arkanoid) |
| 1262 | 1259 | MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512) |
| 1263 | | MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid) |
| 1264 | 1260 | |
| 1265 | 1261 | /* sound hardware */ |
| 1266 | 1262 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| r250265 | r250266 | |
| 1279 | 1275 | MCFG_CPU_PROGRAM_MAP(hexa_map) |
| 1280 | 1276 | MCFG_CPU_VBLANK_INT_DRIVER("screen", arkanoid_state, irq0_line_hold) |
| 1281 | 1277 | |
| 1282 | | MCFG_MACHINE_START_OVERRIDE(arkanoid_state,arkanoid) |
| 1283 | | MCFG_MACHINE_RESET_OVERRIDE(arkanoid_state,arkanoid) |
| 1284 | | |
| 1285 | 1278 | /* video hardware */ |
| 1286 | 1279 | MCFG_SCREEN_ADD("screen", RASTER) |
| 1287 | 1280 | // MCFG_SCREEN_REFRESH_RATE(60) |
| r250265 | r250266 | |
| 1294 | 1287 | |
| 1295 | 1288 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", hexa) |
| 1296 | 1289 | MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 256) |
| 1297 | | MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid) |
| 1298 | 1290 | |
| 1299 | 1291 | /* sound hardware */ |
| 1300 | 1292 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| r250265 | r250266 | |
| 1335 | 1327 | /* there is a 68705 but it's only role appears to be to copy data to RAM at startup */ |
| 1336 | 1328 | /* the RAM is also battery backed, making the 68705 almost reundant as long as the battery doesn't die(!) */ |
| 1337 | 1329 | |
| 1338 | | MCFG_MACHINE_START_OVERRIDE(arkanoid_state,arkanoid) |
| 1339 | | MCFG_MACHINE_RESET_OVERRIDE(arkanoid_state,arkanoid) |
| 1340 | | |
| 1341 | 1330 | /* video hardware */ |
| 1342 | 1331 | MCFG_SCREEN_ADD("screen", RASTER) |
| 1343 | 1332 | // MCFG_SCREEN_REFRESH_RATE(60) |
| r250265 | r250266 | |
| 1350 | 1339 | |
| 1351 | 1340 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", arkanoid) |
| 1352 | 1341 | MCFG_PALETTE_ADD_RRRRGGGGBBBB_PROMS("palette", 512) |
| 1353 | | MCFG_VIDEO_START_OVERRIDE(arkanoid_state,arkanoid) |
| 1354 | 1342 | |
| 1355 | 1343 | /* sound hardware */ |
| 1356 | 1344 | MCFG_SPEAKER_STANDARD_MONO("mono") |
| r250265 | r250266 | |
| 2037 | 2025 | membank("bank1")->configure_entries(0, 2, &RAM[0x10000], 0x4000); |
| 2038 | 2026 | } |
| 2039 | 2027 | |
| 2028 | DRIVER_INIT_MEMBER(arkanoid_state,hexaa) |
| 2029 | { |
| 2030 | DRIVER_INIT_CALL(hexa); |
| 2031 | |
| 2032 | m_hexaa_from_main = 0; |
| 2033 | m_hexaa_from_sub = 0; |
| 2034 | |
| 2035 | save_item(NAME(m_hexaa_from_main)); |
| 2036 | save_item(NAME(m_hexaa_from_sub)); |
| 2037 | } |
| 2038 | |
| 2040 | 2039 | DRIVER_INIT_MEMBER(arkanoid_state,brixian) |
| 2041 | 2040 | { |
| 2042 | 2041 | UINT8 *RAM = memregion("protdata")->base(); |
| r250265 | r250266 | |
| 2076 | 2075 | GAME( 19??, tetrsark, 0, bootleg, tetrsark, arkanoid_state, tetrsark, ROT0, "D.R. Korea", "Tetris (D.R. Korea)", MACHINE_SUPPORTS_SAVE ) |
| 2077 | 2076 | |
| 2078 | 2077 | GAME( 199?, hexa, 0, hexa, hexa, arkanoid_state, hexa, ROT0, "D.R. Korea", "Hexa", MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) |
| 2079 | | GAME( 199?, hexaa, hexa, hexaa, hexa, arkanoid_state, hexa, ROT0, "D.R. Korea", "Hexa (with 2xZ80, protected)", MACHINE_NOT_WORKING ) |
| 2078 | GAME( 199?, hexaa, hexa, hexaa, hexa, arkanoid_state, hexaa, ROT0, "D.R. Korea", "Hexa (with 2xZ80, protected)", MACHINE_NOT_WORKING ) |
| 2080 | 2079 | |
| 2081 | 2080 | GAME( 1993, brixian, 0, brixian, brixian, arkanoid_state, brixian, ROT0, "Cheil Computer System", "Brixian", MACHINE_SUPPORTS_SAVE ) |
trunk/src/mame/includes/arkanoid.h
| r250265 | r250266 | |
| 20 | 20 | m_videoram(*this,"videoram"), |
| 21 | 21 | m_spriteram(*this,"spriteram"), |
| 22 | 22 | m_protram(*this,"protram"), |
| 23 | m_maincpu(*this, "maincpu"), |
| 23 | 24 | m_mcu(*this, "mcu"), |
| 24 | | m_maincpu(*this, "maincpu"), |
| 25 | 25 | m_gfxdecode(*this, "gfxdecode"), |
| 26 | 26 | m_palette(*this, "palette") { } |
| 27 | 27 | |
| r250265 | r250266 | |
| 52 | 52 | UINT8 m_bootleg_cmd; |
| 53 | 53 | |
| 54 | 54 | /* hexaa */ |
| 55 | | UINT8 hexaa_from_main; |
| 56 | | UINT8 hexaa_from_sub; |
| 55 | UINT8 m_hexaa_from_main; |
| 56 | UINT8 m_hexaa_from_sub; |
| 57 | 57 | |
| 58 | 58 | /* devices */ |
| 59 | required_device<cpu_device> m_maincpu; |
| 59 | 60 | optional_device<cpu_device> m_mcu; |
| 61 | required_device<gfxdecode_device> m_gfxdecode; |
| 62 | required_device<palette_device> m_palette; |
| 63 | |
| 60 | 64 | DECLARE_READ8_MEMBER(arkanoid_Z80_mcu_r); |
| 61 | 65 | DECLARE_WRITE8_MEMBER(arkanoid_Z80_mcu_w); |
| 62 | 66 | DECLARE_READ8_MEMBER(arkanoid_68705_port_a_r); |
| r250265 | r250266 | |
| 84 | 88 | DECLARE_DRIVER_INIT(block2); |
| 85 | 89 | DECLARE_DRIVER_INIT(arkblock); |
| 86 | 90 | DECLARE_DRIVER_INIT(hexa); |
| 91 | DECLARE_DRIVER_INIT(hexaa); |
| 87 | 92 | DECLARE_DRIVER_INIT(paddle2); |
| 88 | 93 | DECLARE_DRIVER_INIT(tetrsark); |
| 89 | 94 | DECLARE_DRIVER_INIT(arkgcbl); |
| r250265 | r250266 | |
| 92 | 97 | DECLARE_DRIVER_INIT(arkangc); |
| 93 | 98 | DECLARE_DRIVER_INIT(brixian); |
| 94 | 99 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
| 95 | | DECLARE_MACHINE_START(arkanoid); |
| 96 | | DECLARE_MACHINE_RESET(arkanoid); |
| 97 | | DECLARE_VIDEO_START(arkanoid); |
| 100 | virtual void machine_start(); |
| 101 | virtual void machine_reset(); |
| 102 | virtual void video_start(); |
| 98 | 103 | UINT32 screen_update_arkanoid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 99 | 104 | UINT32 screen_update_hexa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 100 | 105 | TIMER_CALLBACK_MEMBER(test); |
| 101 | 106 | void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ); |
| 102 | 107 | void arkanoid_bootleg_init( ); |
| 103 | | required_device<cpu_device> m_maincpu; |
| 104 | | required_device<gfxdecode_device> m_gfxdecode; |
| 105 | | required_device<palette_device> m_palette; |
| 106 | 108 | }; |