trunk/src/mame/drivers/segahang.c
| r249105 | r249106 | |
| 459 | 459 | AM_RANGE(0x07c000, 0x07ffff) AM_RAM AM_SHARE("subram") |
| 460 | 460 | ADDRESS_MAP_END |
| 461 | 461 | |
| 462 | static ADDRESS_MAP_START( fd1094_decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segahang_state ) |
| 463 | AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes") |
| 464 | ADDRESS_MAP_END |
| 462 | 465 | |
| 463 | | |
| 464 | 466 | //************************************************************************** |
| 465 | 467 | // SOUND CPU ADDRESS MAPS |
| 466 | 468 | //************************************************************************** |
| r249105 | r249106 | |
| 938 | 940 | static MACHINE_CONFIG_DERIVED( shangonro, shangupb ) |
| 939 | 941 | MCFG_CPU_REPLACE("subcpu", FD1094, 10000000) |
| 940 | 942 | MCFG_CPU_PROGRAM_MAP(sub_map) |
| 943 | MCFG_CPU_DECRYPTED_OPCODES_MAP(fd1094_decrypted_opcodes_map) |
| 941 | 944 | MACHINE_CONFIG_END |
| 942 | 945 | |
| 943 | 946 | |
trunk/src/mame/drivers/segaorun.c
| r249105 | r249106 | |
| 897 | 897 | AM_RANGE(0x500000, 0x507fff) AM_RAM AM_SHARE("workram") |
| 898 | 898 | ADDRESS_MAP_END |
| 899 | 899 | |
| 900 | static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segaorun_state ) |
| 901 | AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes") |
| 902 | ADDRESS_MAP_END |
| 900 | 903 | |
| 901 | | |
| 902 | 904 | //************************************************************************** |
| 903 | 905 | // SECOND CPU MEMORY MAP |
| 904 | 906 | //************************************************************************** |
| r249105 | r249106 | |
| 1229 | 1231 | // basic machine hardware |
| 1230 | 1232 | MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK/4) |
| 1231 | 1233 | MCFG_CPU_PROGRAM_MAP(outrun_map) |
| 1234 | MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map) |
| 1232 | 1235 | MACHINE_CONFIG_END |
| 1233 | 1236 | |
| 1234 | 1237 | static MACHINE_CONFIG_DERIVED( outrun_fd1089a, outrun ) |
trunk/src/mame/drivers/segas16a.c
| r249105 | r249106 | |
| 961 | 961 | AM_RANGE(0xc70000, 0xc73fff) AM_MIRROR(0x38c000) AM_RAM AM_SHARE("nvram") |
| 962 | 962 | ADDRESS_MAP_END |
| 963 | 963 | |
| 964 | static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas16a_state ) |
| 965 | AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes") |
| 966 | ADDRESS_MAP_END |
| 964 | 967 | |
| 965 | | |
| 966 | 968 | //************************************************************************** |
| 967 | 969 | // SOUND CPU ADDRESS MAPS |
| 968 | 970 | //************************************************************************** |
| r249105 | r249106 | |
| 1946 | 1948 | static MACHINE_CONFIG_DERIVED( system16a_fd1094, system16a ) |
| 1947 | 1949 | MCFG_CPU_REPLACE("maincpu", FD1094, 10000000) |
| 1948 | 1950 | MCFG_CPU_PROGRAM_MAP(system16a_map) |
| 1951 | MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map) |
| 1949 | 1952 | MCFG_CPU_VBLANK_INT_DRIVER("screen", segas16a_state, irq4_line_hold) |
| 1950 | 1953 | MACHINE_CONFIG_END |
| 1951 | 1954 | |
trunk/src/mame/drivers/segas16b.c
| r249105 | r249106 | |
| 1714 | 1714 | AM_RANGE(0x500000, 0x503fff) AM_RAM AM_SHARE("workram") |
| 1715 | 1715 | ADDRESS_MAP_END |
| 1716 | 1716 | |
| 1717 | static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas16b_state ) |
| 1718 | AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes") |
| 1719 | ADDRESS_MAP_END |
| 1717 | 1720 | |
| 1718 | 1721 | static ADDRESS_MAP_START( system16c_map, AS_PROGRAM, 16, segas16b_state ) |
| 1719 | 1722 | ADDRESS_MAP_UNMAP_HIGH |
| r249105 | r249106 | |
| 3346 | 3349 | static MACHINE_CONFIG_DERIVED( system16b_fd1094, system16b ) |
| 3347 | 3350 | MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK_10MHz) |
| 3348 | 3351 | MCFG_CPU_PROGRAM_MAP(system16b_map) |
| 3352 | MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map) |
| 3349 | 3353 | MCFG_CPU_VBLANK_INT_DRIVER("screen", segas16b_state, irq4_line_hold) |
| 3350 | 3354 | MACHINE_CONFIG_END |
| 3351 | 3355 | |
trunk/src/mame/drivers/segas18.c
| r249105 | r249106 | |
| 522 | 522 | AM_RANGE(0x500000, 0x503fff) AM_RAM AM_SHARE("workram") |
| 523 | 523 | ADDRESS_MAP_END |
| 524 | 524 | |
| 525 | static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas18_state ) |
| 526 | AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes") |
| 527 | ADDRESS_MAP_END |
| 525 | 528 | |
| 526 | | |
| 527 | 529 | /************************************* |
| 528 | 530 | * |
| 529 | 531 | * Sound CPU memory handlers |
| r249105 | r249106 | |
| 1262 | 1264 | // basic machine hardware |
| 1263 | 1265 | MCFG_CPU_REPLACE("maincpu", FD1094, 10000000) |
| 1264 | 1266 | MCFG_CPU_PROGRAM_MAP(system18_map) |
| 1267 | MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map) |
| 1265 | 1268 | MCFG_CPU_VBLANK_INT_DRIVER("screen", segas18_state, irq4_line_hold) |
| 1266 | 1269 | MACHINE_CONFIG_END |
| 1267 | 1270 | |
trunk/src/mame/drivers/segas24.c
| r249105 | r249106 | |
| 1245 | 1245 | AM_RANGE(0xf80000, 0xfbffff) AM_MIRROR(0x040000) AM_RAM AM_SHARE("share1") |
| 1246 | 1246 | ADDRESS_MAP_END |
| 1247 | 1247 | |
| 1248 | static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segas24_state ) |
| 1249 | AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes") |
| 1250 | ADDRESS_MAP_END |
| 1248 | 1251 | |
| 1249 | | |
| 1250 | 1252 | /************************************* |
| 1251 | 1253 | * |
| 1252 | 1254 | * Generic driver initialization |
| r249105 | r249106 | |
| 1963 | 1965 | static MACHINE_CONFIG_DERIVED( system24_floppy_fd1094, system24_floppy ) |
| 1964 | 1966 | MCFG_CPU_REPLACE("subcpu", FD1094, MASTER_CLOCK/2) |
| 1965 | 1967 | MCFG_CPU_PROGRAM_MAP(system24_cpu2_map) |
| 1968 | MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map) |
| 1966 | 1969 | MACHINE_CONFIG_END |
| 1967 | 1970 | |
| 1968 | 1971 | |
trunk/src/mame/drivers/segaxbd.c
| r249105 | r249106 | |
| 901 | 901 | AM_RANGE(0x3fc000, 0x3fffff) AM_RAM AM_SHARE("backup2") |
| 902 | 902 | ADDRESS_MAP_END |
| 903 | 903 | |
| 904 | static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, segaxbd_state ) |
| 905 | AM_RANGE(0x00000, 0xfffff) AM_ROMBANK("fd1094_decrypted_opcodes") |
| 906 | ADDRESS_MAP_END |
| 904 | 907 | |
| 905 | 908 | |
| 906 | 909 | //************************************************************************** |
| r249105 | r249106 | |
| 1574 | 1577 | static MACHINE_CONFIG_DERIVED( xboard_fd1094, xboard ) |
| 1575 | 1578 | MCFG_CPU_REPLACE("maincpu", FD1094, MASTER_CLOCK/4) |
| 1576 | 1579 | MCFG_CPU_PROGRAM_MAP(main_map) |
| 1580 | MCFG_CPU_DECRYPTED_OPCODES_MAP(decrypted_opcodes_map) |
| 1577 | 1581 | MACHINE_CONFIG_END |
| 1578 | 1582 | |
| 1579 | 1583 | |
trunk/src/mame/machine/fd1094.c
| r249105 | r249106 | |
| 472 | 472 | 0xde3a,0xde7a,0xdeba,0xdefa, 0xdffa |
| 473 | 473 | }; |
| 474 | 474 | |
| 475 | | static ADDRESS_MAP_START( decrypted_opcodes_map, AS_DECRYPTED_OPCODES, 16, fd1094_device ) |
| 476 | | AM_RANGE(0x00000, 0xfffff) AM_ROMBANK(":fd1094_decrypted_opcodes") |
| 477 | | ADDRESS_MAP_END |
| 478 | 475 | |
| 479 | 476 | |
| 477 | |
| 480 | 478 | //************************************************************************** |
| 481 | 479 | // DECRYPTION CACHE HELPER |
| 482 | 480 | //************************************************************************** |
| r249105 | r249106 | |
| 556 | 554 | |
| 557 | 555 | fd1094_device::fd1094_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 558 | 556 | : m68000_device(mconfig, tag, owner, clock, "fd1094", __FILE__), |
| 559 | | m_decrypted_opcodes_bank(*this, ":fd1094_decrypted_opcodes"), |
| 557 | m_decrypted_opcodes_bank(*this, "^fd1094_decrypted_opcodes"), |
| 560 | 558 | m_state(0x00), |
| 561 | 559 | m_irqmode(false), |
| 562 | 560 | m_cache(*this), |
| r249105 | r249106 | |
| 568 | 566 | m_name.assign("FD1094"); |
| 569 | 567 | |
| 570 | 568 | // add the decrypted opcodes map |
| 571 | | m_address_map[AS_DECRYPTED_OPCODES] = ADDRESS_MAP_NAME(decrypted_opcodes_map); |
| 569 | // m_address_map[AS_DECRYPTED_OPCODES] = ADDRESS_MAP_NAME(decrypted_opcodes_map); |
| 572 | 570 | |
| 573 | 571 | // create the initial masked opcode table |
| 574 | 572 | memset(m_masked_opcodes_lookup, 0, sizeof(m_masked_opcodes_lookup)); |
| r249105 | r249106 | |
| 588 | 586 | } |
| 589 | 587 | |
| 590 | 588 | |
| 589 | |
| 590 | |
| 591 | 591 | //------------------------------------------------- |
| 592 | 592 | // change_state - set the current state of the |
| 593 | 593 | // chip |
trunk/src/mame/video/segaic16.c
| r249105 | r249106 | |
| 377 | 377 | : device_t(mconfig, SEGAIC16VID, "Sega 16-bit Video", tag, owner, clock, "segaic16_video", __FILE__), |
| 378 | 378 | device_video_interface(mconfig, *this), |
| 379 | 379 | m_display_enable(0), |
| 380 | | m_tileram(*this, ":tileram"), |
| 381 | | m_textram(*this, ":textram"), |
| 382 | | m_rotateram(*this, ":rotateram"), |
| 380 | m_tileram(*this, "^tileram"), |
| 381 | m_textram(*this, "^textram"), |
| 382 | m_rotateram(*this, "^rotateram"), |
| 383 | 383 | m_gfxdecode(*this) |
| 384 | 384 | { |
| 385 | 385 | memset(m_rotate, 0, sizeof(m_rotate)); |
| r249105 | r249106 | |
| 399 | 399 | |
| 400 | 400 | void segaic16_video_device::device_start() |
| 401 | 401 | { |
| 402 | if(!m_gfxdecode->started()) |
| 403 | throw device_missing_dependencies(); |
| 404 | |
| 402 | 405 | save_item(NAME(m_display_enable)); |
| 403 | 406 | } |
| 404 | 407 | |
trunk/src/mame/video/segaic16_road.c
| r249105 | r249106 | |
| 73 | 73 | |
| 74 | 74 | |
| 75 | 75 | |
| 76 | | static void segaic16_road_hangon_decode(running_machine &machine, struct road_info *info) |
| 76 | void segaic16_road_device::segaic16_road_hangon_decode(running_machine &machine, struct road_info *info) |
| 77 | 77 | { |
| 78 | 78 | int x, y; |
| 79 | | const UINT8 *gfx = machine.root_device().memregion("gfx3")->base(); |
| 80 | | int len = machine.root_device().memregion("gfx3")->bytes(); |
| 79 | const UINT8 *gfx = memregion("^gfx3")->base(); |
| 80 | int len = memregion("^gfx3")->bytes(); |
| 81 | 81 | |
| 82 | 82 | /* allocate memory for the unpacked road data */ |
| 83 | 83 | info->gfx = auto_alloc_array(machine, UINT8, 256 * 512); |
| r249105 | r249106 | |
| 334 | 334 | * |
| 335 | 335 | *******************************************************************************************/ |
| 336 | 336 | |
| 337 | | static void segaic16_road_outrun_decode(running_machine &machine, struct road_info *info) |
| 337 | void segaic16_road_device::segaic16_road_outrun_decode(running_machine &machine, struct road_info *info) |
| 338 | 338 | { |
| 339 | 339 | int x, y; |
| 340 | | const UINT8 *gfx = machine.root_device().memregion("gfx3")->base(); |
| 341 | | int len = machine.root_device().memregion("gfx3")->bytes(); |
| 340 | const UINT8 *gfx = memregion("^gfx3")->base(); |
| 341 | int len = memregion("^gfx3")->bytes(); |
| 342 | 342 | |
| 343 | 343 | /* allocate memory for the unpacked road data */ |
| 344 | 344 | info->gfx = auto_alloc_array(machine, UINT8, (256 * 2 + 1) * 512); |
trunk/src/mame/video/segaic16_road.h
| r249105 | r249106 | |
| 45 | 45 | ~segaic16_road_device() {} |
| 46 | 46 | |
| 47 | 47 | UINT16 *segaic16_roadram_0; |
| 48 | void segaic16_road_hangon_decode(running_machine &machine, struct road_info *info); |
| 49 | void segaic16_road_outrun_decode(running_machine &machine, struct road_info *info); |
| 48 | 50 | |
| 49 | 51 | struct road_info segaic16_road[SEGAIC16_MAX_ROADS]; |
| 50 | 52 | void segaic16_road_init(running_machine &machine, int which, int type, int colorbase1, int colorbase2, int colorbase3, int xoffs); |