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); |