trunk/src/mame/drivers/unico.c
| r25476 | r25477 | |
| 38 | 38 | |
| 39 | 39 | ***************************************************************************/ |
| 40 | 40 | |
| 41 | | /* |
| 42 | | Lines starting with an empty comment in the following MemoryReadAddress |
| 43 | | arrays are there for debug (e.g. the game does not read from those ranges |
| 44 | | AFAIK) |
| 45 | | */ |
| 46 | | |
| 47 | 41 | /*************************************************************************** |
| 48 | 42 | Burglar X |
| 49 | 43 | ***************************************************************************/ |
| r25476 | r25477 | |
| 65 | 59 | AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1") |
| 66 | 60 | AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2") |
| 67 | 61 | AM_RANGE(0x800030, 0x800031) AM_WRITENOP // ? 0 |
| 68 | | AM_RANGE(0x80010c, 0x800121) AM_READWRITE( unico_scroll_r, unico_scroll_w ) // Scroll |
| 62 | AM_RANGE(0x80010c, 0x800121) AM_READWRITE(unico_scroll_r, unico_scroll_w) // Scroll |
| 69 | 63 | AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound |
| 70 | 64 | AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ymsnd", ym3812_device, write_port_w, 0xff00) |
| 71 | 65 | AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ymsnd", ym3812_device, status_port_r, control_port_w, 0xff00) |
| 72 | 66 | AM_RANGE(0x80018e, 0x80018f) AM_WRITE(burglarx_sound_bank_w) // |
| 73 | 67 | AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP // IRQ Ack |
| 74 | | AM_RANGE(0x904000, 0x90ffff) AM_READWRITE( unico_vram_r, unico_vram_w ) // Layers 1, 2, 0 |
| 68 | AM_RANGE(0x904000, 0x90ffff) AM_READWRITE(unico_vram_r, unico_vram_w) // Layers 1, 2, 0 |
| 75 | 69 | AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0 |
| 76 | | AM_RANGE(0x930000, 0x9307ff) AM_READWRITE( unico_spriteram_r, unico_spriteram_w ) // Sprites |
| 70 | AM_RANGE(0x930000, 0x9307ff) AM_READWRITE(unico_spriteram_r, unico_spriteram_w) // Sprites |
| 77 | 71 | AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette_w) AM_SHARE("paletteram") // Palette |
| 78 | 72 | ADDRESS_MAP_END |
| 79 | 73 | |
| r25476 | r25477 | |
| 150 | 144 | AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1") |
| 151 | 145 | AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2") |
| 152 | 146 | AM_RANGE(0x80010c, 0x800121) AM_READWRITE( unico_scroll_r, unico_scroll_w ) // Scroll |
| 153 | | AM_RANGE(0x800170, 0x800171) AM_READ(unico_guny_0_msb_r ) // Light Guns |
| 154 | | AM_RANGE(0x800174, 0x800175) AM_READ(unico_gunx_0_msb_r ) // |
| 155 | | AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r ) // |
| 156 | | AM_RANGE(0x80017c, 0x80017d) AM_READ(unico_gunx_1_msb_r ) // |
| 147 | AM_RANGE(0x800170, 0x800171) AM_READ(unico_guny_0_msb_r) // Light Guns |
| 148 | AM_RANGE(0x800174, 0x800175) AM_READ(unico_gunx_0_msb_r) // |
| 149 | AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r) // |
| 150 | AM_RANGE(0x80017c, 0x80017d) AM_READ(unico_gunx_1_msb_r) // |
| 157 | 151 | AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff ) // Sound |
| 158 | 152 | AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ymsnd", ym3812_device, write_port_w, 0xff00) |
| 159 | 153 | AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ymsnd", ym3812_device, status_port_r, control_port_w, 0xff00) |
| 160 | | AM_RANGE(0x80018e, 0x80018f) AM_WRITE(zeropnt_sound_bank_w ) // |
| 154 | AM_RANGE(0x80018e, 0x80018f) AM_WRITE(zeropnt_sound_bank_w) // |
| 161 | 155 | AM_RANGE(0x8001e0, 0x8001e1) AM_WRITEONLY // ? IRQ Ack |
| 162 | 156 | AM_RANGE(0x904000, 0x90ffff) AM_READWRITE( unico_vram_r, unico_vram_w ) // Layers 1, 2, 0 |
| 163 | 157 | AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0 |
| r25476 | r25477 | |
| 217 | 211 | static ADDRESS_MAP_START( zeropnt2_map, AS_PROGRAM, 32, unico_state ) |
| 218 | 212 | AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM |
| 219 | 213 | AM_RANGE(0x800018, 0x80001b) AM_READ_PORT("SYSTEM") |
| 220 | | AM_RANGE(0x800024, 0x800027) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff0000 ) // Sound |
| 214 | AM_RANGE(0x800024, 0x800027) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff0000) // Sound |
| 221 | 215 | AM_RANGE(0x800028, 0x80002f) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff0000) // |
| 222 | | AM_RANGE(0x800030, 0x800033) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff0000 ) // |
| 223 | | AM_RANGE(0x800034, 0x800037) AM_WRITE(zeropnt2_sound_bank_w ) // |
| 224 | | AM_RANGE(0x800038, 0x80003b) AM_WRITE(zeropnt2_leds_w ) // ? |
| 225 | | AM_RANGE(0x80010c, 0x800123) AM_READWRITE16( unico_scroll_r, unico_scroll_w, 0xffffffff ) // Scroll |
| 226 | | AM_RANGE(0x800140, 0x800143) AM_READ(zeropnt2_guny_0_msb_r ) // Light Guns |
| 227 | | AM_RANGE(0x800144, 0x800147) AM_READ(zeropnt2_gunx_0_msb_r ) // |
| 228 | | AM_RANGE(0x800148, 0x80014b) AM_READ(zeropnt2_guny_1_msb_r ) // |
| 229 | | AM_RANGE(0x80014c, 0x80014f) AM_READ(zeropnt2_gunx_1_msb_r ) // |
| 216 | AM_RANGE(0x800030, 0x800033) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff0000) // |
| 217 | AM_RANGE(0x800034, 0x800037) AM_WRITE(zeropnt2_sound_bank_w) // |
| 218 | AM_RANGE(0x800038, 0x80003b) AM_WRITE(zeropnt2_leds_w) // ? |
| 219 | AM_RANGE(0x80010c, 0x800123) AM_READWRITE16(unico_scroll_r, unico_scroll_w, 0xffffffff) // Scroll |
| 220 | AM_RANGE(0x800140, 0x800143) AM_READ(zeropnt2_guny_0_msb_r) // Light Guns |
| 221 | AM_RANGE(0x800144, 0x800147) AM_READ(zeropnt2_gunx_0_msb_r) // |
| 222 | AM_RANGE(0x800148, 0x80014b) AM_READ(zeropnt2_guny_1_msb_r) // |
| 223 | AM_RANGE(0x80014c, 0x80014f) AM_READ(zeropnt2_gunx_1_msb_r) // |
| 230 | 224 | AM_RANGE(0x800150, 0x800153) AM_READ_PORT("DSW1") |
| 231 | 225 | AM_RANGE(0x800154, 0x800157) AM_READ_PORT("DSW2") |
| 232 | 226 | AM_RANGE(0x80015c, 0x80015f) AM_READ_PORT("BUTTONS") |
| 233 | 227 | AM_RANGE(0x8001e0, 0x8001e3) AM_WRITENOP // ? IRQ Ack |
| 234 | 228 | AM_RANGE(0x8001f0, 0x8001f3) AM_WRITE(zeropnt2_eeprom_w) // EEPROM |
| 235 | | AM_RANGE(0x904000, 0x90ffff) AM_READWRITE16( unico_vram_r, unico_vram_w, 0xffffffff ) // Layers 1, 2, 0 |
| 229 | AM_RANGE(0x904000, 0x90ffff) AM_READWRITE16(unico_vram_r, unico_vram_w, 0xffffffff) // Layers 1, 2, 0 |
| 236 | 230 | AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0 |
| 237 | | AM_RANGE(0x930000, 0x9307ff) AM_READWRITE16( unico_spriteram_r, unico_spriteram_w, 0xffffffff ) // Sprites |
| 231 | AM_RANGE(0x930000, 0x9307ff) AM_READWRITE16(unico_spriteram_r, unico_spriteram_w, 0xffffffff) // Sprites |
| 238 | 232 | AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette32_w) AM_SHARE("paletteram") // Palette |
| 239 | 233 | AM_RANGE(0xfe0000, 0xffffff) AM_RAM // RAM |
| 240 | 234 | ADDRESS_MAP_END |
| r25476 | r25477 | |
| 485 | 479 | PORT_DIPSETTING( 0x1c000000, "4" ) |
| 486 | 480 | PORT_DIPSETTING( 0x18000000, "5" ) |
| 487 | 481 | PORT_DIPSETTING( 0x14000000, "6" ) |
| 488 | | // PORT_DIPSETTING( 0x08000000, "4" ) |
| 489 | | // PORT_DIPSETTING( 0x04000000, "4" ) |
| 490 | | // PORT_DIPSETTING( 0x00000000, "4" ) |
| 482 | PORT_DIPSETTING( 0x08000000, "4 (duplicate)" ) |
| 483 | PORT_DIPSETTING( 0x04000000, "4 (duplicate)" ) |
| 484 | PORT_DIPSETTING( 0x00000000, "4 (duplicate)" ) |
| 491 | 485 | PORT_DIPNAME( 0x20000000, 0x20000000, DEF_STR( Unknown ) ) |
| 492 | 486 | PORT_DIPSETTING( 0x20000000, DEF_STR( Off ) ) |
| 493 | 487 | PORT_DIPSETTING( 0x00000000, DEF_STR( On ) ) |
| r25476 | r25477 | |
| 584 | 578 | MCFG_SCREEN_ADD("screen", RASTER) |
| 585 | 579 | MCFG_SCREEN_REFRESH_RATE(60) |
| 586 | 580 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 587 | | MCFG_SCREEN_SIZE(0x180, 0xe0) |
| 588 | | MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1) |
| 581 | MCFG_SCREEN_SIZE(384, 224) |
| 582 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 224-1) |
| 589 | 583 | MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico) |
| 590 | 584 | |
| 591 | 585 | MCFG_GFXDECODE(unico) |
| r25476 | r25477 | |
| 629 | 623 | MCFG_SCREEN_ADD("screen", RASTER) |
| 630 | 624 | MCFG_SCREEN_REFRESH_RATE(60) |
| 631 | 625 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 632 | | MCFG_SCREEN_SIZE(0x180, 0xe0) |
| 633 | | MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1) |
| 626 | MCFG_SCREEN_SIZE(384, 224) |
| 627 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 224-1) |
| 634 | 628 | MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico) |
| 635 | 629 | |
| 636 | 630 | MCFG_GFXDECODE(unico) |
| r25476 | r25477 | |
| 671 | 665 | MCFG_SCREEN_ADD("screen", RASTER) |
| 672 | 666 | MCFG_SCREEN_REFRESH_RATE(60) |
| 673 | 667 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
| 674 | | MCFG_SCREEN_SIZE(0x180, 0xe0) |
| 675 | | MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1) |
| 668 | MCFG_SCREEN_SIZE(384, 224) |
| 669 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 224-1) |
| 676 | 670 | MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico) |
| 677 | 671 | |
| 678 | 672 | MCFG_GFXDECODE(unico) |
| r25476 | r25477 | |
| 689 | 683 | |
| 690 | 684 | MCFG_OKIM6295_ADD("oki1", XTAL_32MHz/32, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified |
| 691 | 685 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.40) |
| 686 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.40) |
| 692 | 687 | |
| 693 | 688 | MCFG_OKIM6295_ADD("oki2", XTAL_14_31818MHz/4, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified |
| 689 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.20) |
| 694 | 690 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.20) |
| 695 | 691 | MACHINE_CONFIG_END |
| 696 | 692 | |