trunk/src/mame/drivers/arkanoid.c
r32655 | r32656 | |
807 | 807 | AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(arkanoid_videoram_w) AM_SHARE("videoram") |
808 | 808 | ADDRESS_MAP_END |
809 | 809 | |
| 810 | READ8_MEMBER(arkanoid_state::hexaa_f000_r) |
| 811 | { |
| 812 | // return hexaa_from_sub; |
| 813 | return rand(); |
| 814 | } |
| 815 | |
| 816 | WRITE8_MEMBER(arkanoid_state::hexaa_f000_w) |
| 817 | { |
| 818 | hexaa_from_main = data; |
| 819 | } |
| 820 | |
| 821 | static ADDRESS_MAP_START( hexaa_map, AS_PROGRAM, 8, arkanoid_state ) |
| 822 | AM_RANGE(0x0000, 0x7fff) AM_ROM |
| 823 | AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") |
| 824 | AM_RANGE(0xc000, 0xc7ff) AM_RAM |
| 825 | AM_RANGE(0xd001, 0xd001) AM_DEVREAD("aysnd", ay8910_device, data_r) |
| 826 | AM_RANGE(0xd000, 0xd001) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) |
| 827 | AM_RANGE(0xd008, 0xd008) AM_WRITE(hexa_d008_w) |
| 828 | AM_RANGE(0xd010, 0xd010) AM_WRITE(watchdog_reset_w) /* or IRQ acknowledge, or both */ |
| 829 | AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(arkanoid_videoram_w) AM_SHARE("videoram") |
| 830 | AM_RANGE(0xe800, 0xefff) AM_RAM |
| 831 | AM_RANGE(0xf000, 0xf000) AM_READWRITE(hexaa_f000_r, hexaa_f000_w) |
| 832 | ADDRESS_MAP_END |
| 833 | |
| 834 | static ADDRESS_MAP_START( hexaa_sub_map, AS_PROGRAM, 8, arkanoid_state ) |
| 835 | AM_RANGE(0x0000, 0x0fff) AM_ROM |
| 836 | ADDRESS_MAP_END |
| 837 | |
| 838 | |
| 839 | WRITE8_MEMBER(arkanoid_state::hexaa_sub_80_w) |
| 840 | { |
| 841 | hexaa_from_sub = data; |
| 842 | } |
| 843 | |
| 844 | READ8_MEMBER(arkanoid_state::hexaa_sub_90_r) |
| 845 | { |
| 846 | return hexaa_from_main; |
| 847 | // return rand(); |
| 848 | } |
| 849 | |
| 850 | static ADDRESS_MAP_START( hexaa_sub_iomap, AS_IO, 8, arkanoid_state ) |
| 851 | ADDRESS_MAP_GLOBAL_MASK(0x0f) |
| 852 | AM_RANGE(0x00, 0x0f) AM_RAM // ?? could be communication with the other chip (protection?) |
| 853 | AM_RANGE(0x80, 0x80) AM_WRITE(hexaa_sub_80_w) |
| 854 | AM_RANGE(0x90, 0x90) AM_READ(hexaa_sub_90_r) |
| 855 | ADDRESS_MAP_END |
| 856 | |
| 857 | |
| 858 | |
810 | 859 | static ADDRESS_MAP_START( brixian_map, AS_PROGRAM, 8, arkanoid_state ) |
811 | 860 | AM_RANGE(0x0000, 0xbfff) AM_ROM |
812 | 861 | AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("protram") |
r32655 | r32656 | |
1240 | 1289 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) |
1241 | 1290 | MACHINE_CONFIG_END |
1242 | 1291 | |
| 1292 | static MACHINE_CONFIG_DERIVED( hexaa, hexa ) |
| 1293 | MCFG_CPU_MODIFY("maincpu") |
| 1294 | MCFG_CPU_PROGRAM_MAP(hexaa_map) |
| 1295 | MCFG_CPU_VBLANK_INT_DRIVER("screen", arkanoid_state, irq0_line_hold) |
1243 | 1296 | |
| 1297 | MCFG_CPU_ADD("subcpu", Z80, XTAL_12MHz/2) // ? |
| 1298 | MCFG_CPU_PROGRAM_MAP(hexaa_sub_map) |
| 1299 | MCFG_CPU_IO_MAP(hexaa_sub_iomap) |
| 1300 | MACHINE_CONFIG_END |
| 1301 | |
| 1302 | |
1244 | 1303 | static MACHINE_CONFIG_DERIVED( bootleg, arkanoid ) |
1245 | 1304 | |
1246 | 1305 | /* basic machine hardware */ |
r32655 | r32656 | |
1749 | 1808 | ROM_LOAD( "hexa.002", 0x0200, 0x0100, CRC(ff15366c) SHA1(7feaf1c768bfe76432fb80991585e13d95960b34) ) |
1750 | 1809 | ROM_END |
1751 | 1810 | |
| 1811 | /* |
| 1812 | |
| 1813 | Hexa (alt.) |
| 1814 | |
| 1815 | main hardware consists of..... |
| 1816 | |
| 1817 | sub board with Z80 x2, 2 ROMs and a scratched 18 pin chip (probably a PIC) |
| 1818 | |
| 1819 | main board has.... |
| 1820 | 12MHz xtal |
| 1821 | ay3-8910 |
| 1822 | 8 position DSW x1 |
| 1823 | ROMs x4 |
| 1824 | 6116 SRAM x3 |
| 1825 | 82S123 PROMs x3 |
| 1826 | |
| 1827 | */ |
| 1828 | |
| 1829 | |
| 1830 | ROM_START( hexaa ) |
| 1831 | ROM_REGION( 0x18000, "maincpu", 0 ) /* 64k for code + 32k for banked ROM */ |
| 1832 | ROM_LOAD( "sub1.bin", 0x00000, 0x8000, CRC(82c091fa) SHA1(e509ab4d9372f93d81df70772a4632100081ffd7) ) |
| 1833 | ROM_LOAD( "main4.bin", 0x10000, 0x8000, CRC(3d5d006c) SHA1(ad4eadab82024b122182eacb5a322cfd6e476a70) ) |
| 1834 | |
| 1835 | ROM_REGION( 0x18000, "subcpu", 0 ) |
| 1836 | ROM_LOAD( "sub2.bin", 0x00000, 0x2000, CRC(c3bb9661) SHA1(e4bccb822d6eba77bb9cba75125cddb740775a2c)) // 1ST AND 2ND HALF IDENTICAL (contains just 0x55 bytes of code) |
| 1837 | |
| 1838 | |
| 1839 | ROM_REGION( 0x18000, "gfx1", 0 ) |
| 1840 | ROM_LOAD( "main1.bin", 0x00000, 0x8000, CRC(f6911dd6) SHA1(b12ea27ecddd60820a32d4346afab0cc9d06fa57) ) |
| 1841 | ROM_LOAD( "main2.bin", 0x08000, 0x8000, CRC(6e3d95d2) SHA1(6399b7b5d088ceda08fdea9cf650f6b405f038e7) ) |
| 1842 | ROM_LOAD( "main3.bin", 0x10000, 0x8000, CRC(ffe97a31) SHA1(f16b5d2b9ace09bcbbfe3dfb73db7fa377d1af7f) ) |
| 1843 | |
| 1844 | ROM_REGION( 0x0300, "proms", 0 ) |
| 1845 | ROM_LOAD( "hexa.001", 0x0000, 0x0100, CRC(88a055b4) SHA1(eee86a7930d0a251f3e5c2134532cd1dede2026c) ) |
| 1846 | ROM_LOAD( "hexa.003", 0x0100, 0x0100, CRC(3e9d4932) SHA1(9a336dba7134400312985b9902c77b4141105853) ) |
| 1847 | ROM_LOAD( "hexa.002", 0x0200, 0x0100, CRC(ff15366c) SHA1(7feaf1c768bfe76432fb80991585e13d95960b34) ) |
| 1848 | ROM_END |
| 1849 | |
1752 | 1850 | ROM_START( brixian ) |
1753 | 1851 | ROM_REGION( 0x18000, "maincpu", 0 ) |
1754 | 1852 | ROM_LOAD( "b1.bin", 0x00000, 0x8000, CRC(3d167d09) SHA1(1d5bd098b655b8d2f956cfcb718213915bee3e41) ) |
r32655 | r32656 | |
1927 | 2025 | GAME( 19??, tetrsark, 0, bootleg, tetrsark, arkanoid_state, tetrsark, ROT0, "D.R. Korea", "Tetris (D.R. Korea)", GAME_SUPPORTS_SAVE ) |
1928 | 2026 | |
1929 | 2027 | GAME( 199?, hexa, 0, hexa, hexa, arkanoid_state, hexa, ROT0, "D.R. Korea", "Hexa", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| 2028 | GAME( 199?, hexaa, hexa, hexaa, hexa, arkanoid_state, hexa, ROT0, "D.R. Korea", "Hexa (with 2xZ80, protected)", GAME_NOT_WORKING ) |
1930 | 2029 | |
1931 | 2030 | GAME( 1993, brixian, 0, brixian, brixian, arkanoid_state, brixian, ROT0, "Cheil Computer System", "Brixian", GAME_SUPPORTS_SAVE ) |