trunk/src/mame/drivers/ksys573.c
| r19157 | r19158 | |
| 561 | 561 | DECLARE_WRITE32_MEMBER(atapi_reset_w); |
| 562 | 562 | DECLARE_WRITE32_MEMBER(security_w); |
| 563 | 563 | DECLARE_READ32_MEMBER(security_r); |
| 564 | | DECLARE_READ32_MEMBER(flash_r); |
| 565 | | DECLARE_WRITE32_MEMBER(flash_w); |
| 564 | DECLARE_READ16_MEMBER(flash_r); |
| 565 | DECLARE_WRITE16_MEMBER(flash_w); |
| 566 | 566 | DECLARE_READ32_MEMBER(ge765pwbba_r); |
| 567 | 567 | DECLARE_WRITE32_MEMBER(ge765pwbba_w); |
| 568 | 568 | DECLARE_READ32_MEMBER(gx700pwbf_io_r); |
| r19157 | r19158 | |
| 1242 | 1242 | return data; |
| 1243 | 1243 | } |
| 1244 | 1244 | |
| 1245 | | READ32_MEMBER(ksys573_state::flash_r) |
| 1245 | READ16_MEMBER(ksys573_state::flash_r) |
| 1246 | 1246 | { |
| 1247 | 1247 | UINT32 data = 0; |
| 1248 | 1248 | |
| 1249 | 1249 | if( m_flash_bank < 0 ) |
| 1250 | 1250 | { |
| 1251 | 1251 | mame_printf_debug( "%08x: flash_r( %08x, %08x ) no bank selected %08x\n", space.device().safe_pc(), offset, mem_mask, m_control ); |
| 1252 | | data = 0xffffffff; |
| 1252 | data = 0xffff; |
| 1253 | 1253 | } |
| 1254 | 1254 | else |
| 1255 | 1255 | { |
| 1256 | 1256 | fujitsu_29f016a_device **flash_base = &m_flash_device[m_flash_bank >> 8][m_flash_bank & 0xff]; |
| 1257 | | int adr = offset * 2; |
| 1258 | 1257 | |
| 1259 | 1258 | if( ACCESSING_BITS_0_7 ) |
| 1260 | 1259 | { |
| 1261 | | data |= ( flash_base[0]->read( adr + 0 ) & 0xff ) << 0; // 31m/31l/31j/31h |
| 1260 | data |= ( flash_base[0]->read( offset ) & 0xff ) << 0; // 31m/31l/31j/31h |
| 1262 | 1261 | } |
| 1263 | 1262 | if( ACCESSING_BITS_8_15 ) |
| 1264 | 1263 | { |
| 1265 | | data |= ( flash_base[1]->read( adr + 0 ) & 0xff ) << 8; // 27m/27l/27j/27h |
| 1264 | data |= ( flash_base[1]->read( offset ) & 0xff ) << 8; // 27m/27l/27j/27h |
| 1266 | 1265 | } |
| 1267 | | if( ACCESSING_BITS_16_23 ) |
| 1268 | | { |
| 1269 | | data |= ( flash_base[0]->read( adr + 1 ) & 0xff ) << 16; // 31m/31l/31j/31h |
| 1270 | | } |
| 1271 | | if( ACCESSING_BITS_24_31 ) |
| 1272 | | { |
| 1273 | | data |= ( flash_base[1]->read( adr + 1 ) & 0xff ) << 24; // 27m/27l/27j/27h |
| 1274 | | } |
| 1275 | 1266 | } |
| 1276 | 1267 | |
| 1277 | 1268 | verboselog( machine(), 2, "flash_r( %08x, %08x, %08x) bank = %08x\n", offset, mem_mask, data, m_flash_bank ); |
| r19157 | r19158 | |
| 1279 | 1270 | return data; |
| 1280 | 1271 | } |
| 1281 | 1272 | |
| 1282 | | WRITE32_MEMBER(ksys573_state::flash_w) |
| 1273 | WRITE16_MEMBER(ksys573_state::flash_w) |
| 1283 | 1274 | { |
| 1284 | | |
| 1285 | 1275 | verboselog( machine(), 2, "flash_w( %08x, %08x, %08x\n", offset, mem_mask, data ); |
| 1286 | 1276 | |
| 1287 | 1277 | if( m_flash_bank < 0 ) |
| r19157 | r19158 | |
| 1291 | 1281 | else |
| 1292 | 1282 | { |
| 1293 | 1283 | fujitsu_29f016a_device **flash_base = &m_flash_device[m_flash_bank >> 8][m_flash_bank & 0xff]; |
| 1294 | | int adr = offset * 2; |
| 1295 | 1284 | |
| 1296 | 1285 | if( ACCESSING_BITS_0_7 ) |
| 1297 | 1286 | { |
| 1298 | | flash_base[0]->write( adr + 0, ( data >> 0 ) & 0xff ); |
| 1287 | flash_base[0]->write( offset, ( data >> 0 ) & 0xff ); |
| 1299 | 1288 | } |
| 1300 | 1289 | if( ACCESSING_BITS_8_15 ) |
| 1301 | 1290 | { |
| 1302 | | flash_base[1]->write( adr + 0, ( data >> 8 ) & 0xff ); |
| 1291 | flash_base[1]->write( offset, ( data >> 8 ) & 0xff ); |
| 1303 | 1292 | } |
| 1304 | | if( ACCESSING_BITS_16_23 ) |
| 1305 | | { |
| 1306 | | flash_base[0]->write( adr + 1, ( data >> 16 ) & 0xff ); |
| 1307 | | } |
| 1308 | | if( ACCESSING_BITS_24_31 ) |
| 1309 | | { |
| 1310 | | flash_base[1]->write( adr + 1, ( data >> 24 ) & 0xff ); |
| 1311 | | } |
| 1312 | 1293 | } |
| 1313 | 1294 | } |
| 1314 | 1295 | |
| 1315 | 1296 | static ADDRESS_MAP_START( konami573_map, AS_PROGRAM, 32, ksys573_state ) |
| 1316 | 1297 | AM_RANGE(0x00000000, 0x003fffff) AM_RAM AM_SHARE("share1") /* ram */ |
| 1317 | | AM_RANGE(0x1f000000, 0x1f3fffff) AM_READWRITE(flash_r, flash_w ) |
| 1298 | AM_RANGE(0x1f000000, 0x1f3fffff) AM_READWRITE16( flash_r, flash_w, 0xffffffff ) |
| 1318 | 1299 | AM_RANGE(0x1f400000, 0x1f400003) AM_READ_PORT( "IN0" ) AM_WRITE_PORT( "OUT0" ) |
| 1319 | 1300 | AM_RANGE(0x1f400004, 0x1f400007) AM_READ(jamma_r ) |
| 1320 | 1301 | AM_RANGE(0x1f400008, 0x1f40000b) AM_READ_PORT( "IN2" ) |
| r19157 | r19158 | |
| 4850 | 4831 | ROM_LOAD( "710ja.22h", 0x000000, 0x002000, CRC(b784de91) SHA1(048157e9ad6df46656dbac6349b0c821254e1c37) ) |
| 4851 | 4832 | ROM_END |
| 4852 | 4833 | |
| 4834 | ROM_START( gchgchmp ) |
| 4835 | SYS573_BIOS_A |
| 4836 | |
| 4837 | ROM_REGION( 0x200000, "pccard1.0", 0 ) |
| 4838 | ROM_LOAD( "ge877ja.8h", 0x100000, 0x100000, CRC(06b95144) SHA1(870fc99ba6c6b0c314ddc270b8ba0f44412978bd) ) |
| 4839 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 4840 | |
| 4841 | ROM_REGION( 0x200000, "pccard1.1", 0 ) |
| 4842 | ROM_LOAD( "ge877ja.4d", 0x100000, 0x100000, CRC(2a3b639f) SHA1(c810a16a36c5e3f5a67a760d488d22108b8a35f7) ) |
| 4843 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 4844 | |
| 4845 | ROM_REGION( 0x200000, "pccard1.2", 0 ) |
| 4846 | ROM_LOAD( "ge877ja.7g", 0x100000, 0x100000, CRC(e2b273ac) SHA1(73eda00d9a32e252e66ad166d35c5bc8a1a1bf97) ) |
| 4847 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 4848 | |
| 4849 | ROM_REGION( 0x200000, "pccard1.3", 0 ) |
| 4850 | ROM_LOAD( "ge877ja.3c", 0x100000, 0x100000, CRC(247a6c18) SHA1(145a8bbf35f71ebf5c9232ad1a860ee4c10083c1) ) |
| 4851 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 4852 | |
| 4853 | ROM_REGION( 0x200000, "pccard1.4", 0 ) |
| 4854 | ROM_LOAD( "ge877ja.6f", 0x100000, 0x100000, CRC(174a4551) SHA1(32c24c99824719cd3057281ac1114e624c16df81) ) |
| 4855 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 4856 | |
| 4857 | ROM_REGION( 0x200000, "pccard1.5", 0 ) |
| 4858 | ROM_LOAD( "ge877ja.2b", 0x100000, 0x100000, CRC(45398c5f) SHA1(ec5f7e83dbd86807fb78e852e31c6f5db187204a) ) |
| 4859 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 4860 | |
| 4861 | ROM_REGION( 0x200000, "pccard1.6", 0 ) |
| 4862 | ROM_LOAD( "ge877ja.5e", 0x100000, 0x100000, CRC(351cbbd6) SHA1(eccb5dc03dc668b0690a6209d57b37fb5cdc200a) ) |
| 4863 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 4864 | |
| 4865 | ROM_REGION( 0x200000, "pccard1.7", 0 ) |
| 4866 | ROM_LOAD( "ge877ja.1a", 0x100000, 0x100000, CRC(7b28d962) SHA1(27a46e41dc53cb85f83ec4558bc1f88504d725eb) ) |
| 4867 | ROM_CONTINUE( 0x000000, 0x100000 ) |
| 4868 | |
| 4869 | ROM_REGION( 0x0000224, "install_eeprom", 0 ) /* security cart eeprom */ |
| 4870 | ROM_LOAD( "ge877jaa.u1", 0x000000, 0x000224, CRC(06d0e427) SHA1(cf61c421c0ea236b492d49a00b4608062bbe9063) ) |
| 4871 | ROM_END |
| 4872 | |
| 4853 | 4873 | ROM_START( gtrfrks ) |
| 4854 | 4874 | SYS573_BIOS_A |
| 4855 | 4875 | |
| r19157 | r19158 | |
| 5464 | 5484 | GAME( 1998, bassang2, fbait2bc, k573baitx, fbaitbc, ksys573_state, ge765pwbba, ROT0, "Konami", "Bass Angler 2 (GE865 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 5465 | 5485 | GAME( 1998, hyperbbc, sys573, konami573, hyperbbc, ksys573_state, konami573, ROT0, "Konami", "Hyper Bishi Bashi Champ (GQ876 VER. EAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 5466 | 5486 | GAME( 1998, hyperbbca,hyperbbc, konami573, hyperbbc, ksys573_state, konami573, ROT0, "Konami", "Hyper Bishi Bashi Champ (GQ876 VER. AAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 5487 | GAME( 1999, gchgchmp, sys573, pccard1x, konami573, ksys573_state, konami573, ROT0, "Konami", "Gachaga Champ (GE877 VER. JAA)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) |
| 5467 | 5488 | GAME( 1999, drmn, sys573, konami573x, drmn, ksys573_state, drmn, ROT0, "Konami", "DrumMania (GQ881 VER. JAD)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_NOT_WORKING ) |
| 5468 | 5489 | GAME( 1999, gtrfrks, sys573, konami573x, gtrfrks, ksys573_state, gtrfrks, ROT0, "Konami", "Guitar Freaks (GQ886 VER. EAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| 5469 | 5490 | GAME( 1999, gtrfrksu, gtrfrks, konami573x, gtrfrks, ksys573_state, gtrfrks, ROT0, "Konami", "Guitar Freaks (GQ886 VER. UAC)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |