trunk/src/mame/drivers/tatsumi.c
| r32341 | r32342 | |
| 180 | 180 | COMBINE_DATA(&m_bigfight_a60000[offset]); |
| 181 | 181 | } |
| 182 | 182 | |
| 183 | | READ16_MEMBER(tatsumi_state::cyclwarr_input_r) |
| 184 | | { |
| 185 | | static const char *const port[] = { "SERVICE", "P1", "P2", "DSW3" }; |
| 186 | | return ioport(port[offset])->read(); |
| 187 | | } |
| 188 | | |
| 189 | | READ16_MEMBER(tatsumi_state::cyclwarr_input2_r) |
| 190 | | { |
| 191 | | static const char *const port2[] = { "DSW1", "DSW2", "P3", "P4" }; |
| 192 | | return ioport(port2[offset])->read(); |
| 193 | | } |
| 194 | | |
| 195 | 183 | WRITE16_MEMBER(tatsumi_state::cyclwarr_sound_w) |
| 196 | 184 | { |
| 197 | 185 | soundlatch_byte_w(space, 0, data >> 8); |
| r32341 | r32342 | |
| 297 | 285 | AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE(bigfight_a60000_w) |
| 298 | 286 | |
| 299 | 287 | AM_RANGE(0x0b8000, 0x0b8001) AM_WRITE(cyclwarr_sound_w) |
| 300 | | AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */ |
| 301 | | AM_RANGE(0x0ba000, 0x0ba007) AM_READ(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */ |
| 288 | AM_RANGE(0x0b9002, 0x0b9003) AM_READ_PORT("SERVICE") |
| 289 | AM_RANGE(0x0b9004, 0x0b9005) AM_READ_PORT("P1") |
| 290 | AM_RANGE(0x0b9006, 0x0b9007) AM_READ_PORT("P2") |
| 291 | AM_RANGE(0x0b9008, 0x0b9009) AM_READ_PORT("DSW3") |
| 292 | AM_RANGE(0x0ba000, 0x0ba001) AM_READ_PORT("DSW1") |
| 293 | AM_RANGE(0x0ba002, 0x0ba003) AM_READ_PORT("DSW2") |
| 294 | AM_RANGE(0x0ba004, 0x0ba005) AM_READ_PORT("P3") |
| 295 | AM_RANGE(0x0ba006, 0x0ba007) AM_READ_PORT("P4") |
| 302 | 296 | AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE(cyclwarr_control_r, cyclwarr_control_w) |
| 303 | 297 | AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_SHARE("spriteram") |
| 304 | 298 | AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_SHARE("sprite_ctlram") |
| r32341 | r32342 | |
| 317 | 311 | AM_RANGE(0x0a4000, 0x0a4001) AM_WRITE(bigfight_a40000_w) |
| 318 | 312 | AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE(bigfight_a60000_w) |
| 319 | 313 | |
| 320 | | AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */ |
| 321 | | AM_RANGE(0x0ba000, 0x0ba007) AM_READ(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */ |
| 314 | AM_RANGE(0x0b9002, 0x0b9003) AM_READ_PORT("SERVICE") |
| 315 | AM_RANGE(0x0b9004, 0x0b9005) AM_READ_PORT("P1") |
| 316 | AM_RANGE(0x0b9006, 0x0b9007) AM_READ_PORT("P2") |
| 317 | AM_RANGE(0x0b9008, 0x0b9009) AM_READ_PORT("DSW3") |
| 318 | AM_RANGE(0x0ba000, 0x0ba001) AM_READ_PORT("DSW1") |
| 319 | AM_RANGE(0x0ba002, 0x0ba003) AM_READ_PORT("DSW2") |
| 320 | AM_RANGE(0x0ba004, 0x0ba005) AM_READ_PORT("P3") |
| 321 | AM_RANGE(0x0ba006, 0x0ba007) AM_READ_PORT("P4") |
| 322 | 322 | AM_RANGE(0x0ba008, 0x0ba009) AM_READ(cyclwarr_control_r) |
| 323 | | |
| 324 | 323 | AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) |
| 325 | 324 | AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) |
| 326 | 325 | AM_RANGE(0x0d0000, 0x0d3fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| r32341 | r32342 | |
| 353 | 352 | AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE(bigfight_a60000_w) |
| 354 | 353 | |
| 355 | 354 | AM_RANGE(0x0b8000, 0x0b8001) AM_WRITE(cyclwarr_sound_w) |
| 356 | | AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */ |
| 357 | | AM_RANGE(0x0ba000, 0x0ba007) AM_READ(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */ |
| 355 | AM_RANGE(0x0b9002, 0x0b9003) AM_READ_PORT("SERVICE") |
| 356 | AM_RANGE(0x0b9004, 0x0b9005) AM_READ_PORT("P1") |
| 357 | AM_RANGE(0x0b9006, 0x0b9007) AM_READ_PORT("P2") |
| 358 | AM_RANGE(0x0b9008, 0x0b9009) AM_READ_PORT("DSW3") |
| 359 | AM_RANGE(0x0ba000, 0x0ba001) AM_READ_PORT("DSW1") |
| 360 | AM_RANGE(0x0ba002, 0x0ba003) AM_READ_PORT("DSW2") |
| 361 | AM_RANGE(0x0ba004, 0x0ba005) AM_READ_PORT("P3") |
| 362 | AM_RANGE(0x0ba006, 0x0ba007) AM_READ_PORT("P4") |
| 358 | 363 | AM_RANGE(0x0ba008, 0x0ba009) AM_READWRITE(cyclwarr_control_r, cyclwarr_control_w) |
| 359 | 364 | AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) AM_SHARE("spriteram") |
| 360 | 365 | AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) AM_SHARE("sprite_ctlram") |
| r32341 | r32342 | |
| 371 | 376 | AM_RANGE(0x0a4000, 0x0a4001) AM_WRITE(bigfight_a40000_w) |
| 372 | 377 | AM_RANGE(0x0a6000, 0x0a6001) AM_WRITE(bigfight_a60000_w) |
| 373 | 378 | |
| 374 | | AM_RANGE(0x0b9002, 0x0b9009) AM_READ(cyclwarr_input_r) /* Coins, P1 input, P2 input, dip 3 */ |
| 375 | | AM_RANGE(0x0ba000, 0x0ba007) AM_READ(cyclwarr_input2_r) /* Dip 1, Dip 2, P3 input, P4 input */ |
| 379 | AM_RANGE(0x0b9002, 0x0b9003) AM_READ_PORT("SERVICE") |
| 380 | AM_RANGE(0x0b9004, 0x0b9005) AM_READ_PORT("P1") |
| 381 | AM_RANGE(0x0b9006, 0x0b9007) AM_READ_PORT("P2") |
| 382 | AM_RANGE(0x0b9008, 0x0b9009) AM_READ_PORT("DSW3") |
| 383 | AM_RANGE(0x0ba000, 0x0ba001) AM_READ_PORT("DSW1") |
| 384 | AM_RANGE(0x0ba002, 0x0ba003) AM_READ_PORT("DSW2") |
| 385 | AM_RANGE(0x0ba004, 0x0ba005) AM_READ_PORT("P3") |
| 386 | AM_RANGE(0x0ba006, 0x0ba007) AM_READ_PORT("P4") |
| 376 | 387 | AM_RANGE(0x0ba008, 0x0ba009) AM_READ(cyclwarr_control_r) |
| 377 | | |
| 378 | 388 | AM_RANGE(0x0c0000, 0x0c3fff) AM_READWRITE(cyclwarr_sprite_r, cyclwarr_sprite_w) |
| 379 | 389 | AM_RANGE(0x0ca000, 0x0ca1ff) AM_WRITE(tatsumi_sprite_control_w) |
| 380 | 390 | AM_RANGE(0x0d0000, 0x0d3fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| r32341 | r32342 | |
| 791 | 801 | |
| 792 | 802 | /******************************************************************************/ |
| 793 | 803 | |
| 794 | | static const gfx_layout roundup5_charlayout = |
| 804 | static const gfx_layout spritelayout = |
| 795 | 805 | { |
| 796 | | 8,8, /* 16*16 sprites */ |
| 797 | | RGN_FRAC(1,1), /* 4096 sprites */ |
| 798 | | 4, /* 4 bits per pixel */ |
| 806 | 8,8, |
| 807 | RGN_FRAC(1,1), |
| 808 | 4, |
| 799 | 809 | { 0, 1, 2, 3 }, |
| 800 | 810 | { 8,12,0,4, 24,28, 16,20}, |
| 801 | 811 | { 0*32, 1*32, 2*32, 3*32, 4*32, 5*32, 6*32, 7*32}, |
| 802 | | 32*8 /* every sprite takes 32 consecutive bytes */ |
| 812 | 32*8 |
| 803 | 813 | }; |
| 804 | 814 | |
| 805 | | static const gfx_layout cyclwarr_charlayout = |
| 806 | | { |
| 807 | | 8,8, |
| 808 | | RGN_FRAC(1,3), |
| 809 | | 3, |
| 810 | | { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3)}, |
| 811 | | { 0, 1, 2, 3, 4, 5, 6, 7}, |
| 812 | | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8}, |
| 813 | | 8*8 |
| 814 | | }; |
| 815 | | |
| 816 | 815 | static const gfx_layout roundup5_vramlayout = |
| 817 | 816 | { |
| 818 | 817 | 8,8, |
| r32341 | r32342 | |
| 825 | 824 | }; |
| 826 | 825 | |
| 827 | 826 | static GFXDECODE_START( apache3 ) |
| 828 | | GFXDECODE_ENTRY( "gfx1", 0, roundup5_charlayout, 1024, 128) |
| 829 | | GFXDECODE_ENTRY( "gfx4", 0, cyclwarr_charlayout, 768, 16) |
| 827 | GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 1024, 128) |
| 828 | GFXDECODE_ENTRY( "gfx4", 0, gfx_8x8x3_planar, 768, 16) |
| 830 | 829 | GFXDECODE_END |
| 831 | 830 | |
| 832 | 831 | static GFXDECODE_START( roundup5 ) |
| 833 | | GFXDECODE_ENTRY( "gfx1", 0, roundup5_charlayout, 1024, 256) |
| 832 | GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 1024, 256) |
| 834 | 833 | GFXDECODE_ENTRY( NULL, 0, roundup5_vramlayout, 0, 16) |
| 835 | 834 | GFXDECODE_END |
| 836 | 835 | |
| 837 | 836 | static GFXDECODE_START( cyclwarr ) |
| 838 | | GFXDECODE_ENTRY( "gfx1", 0, roundup5_charlayout, 8192, 512) |
| 839 | | GFXDECODE_ENTRY( "gfx5", 0, cyclwarr_charlayout, 0, 512) |
| 837 | GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 8192, 512) |
| 838 | GFXDECODE_ENTRY( "gfx5", 0, gfx_8x8x3_planar, 0, 512) |
| 840 | 839 | GFXDECODE_END |
| 841 | 840 | |
| 842 | 841 | /******************************************************************************/ |
trunk/src/mame/drivers/zaccaria.c
| r32341 | r32342 | |
| 53 | 53 | switch (data & 0xf0) |
| 54 | 54 | { |
| 55 | 55 | case 0xe0: |
| 56 | | m_dsw = 0; |
| 56 | m_dsw_sel = 0; |
| 57 | 57 | break; |
| 58 | 58 | |
| 59 | 59 | case 0xd0: |
| 60 | | m_dsw = 1; |
| 60 | m_dsw_sel = 1; |
| 61 | 61 | break; |
| 62 | 62 | |
| 63 | 63 | case 0xb0: |
| 64 | | m_dsw = 2; |
| 64 | m_dsw_sel = 2; |
| 65 | 65 | break; |
| 66 | 66 | |
| 67 | 67 | default: |
| r32341 | r32342 | |
| 72 | 72 | |
| 73 | 73 | READ8_MEMBER(zaccaria_state::zaccaria_dsw_r) |
| 74 | 74 | { |
| 75 | | static const char *const dswnames[] = { "IN0", "DSW0", "DSW1" }; |
| 76 | | |
| 77 | | return ioport(dswnames[m_dsw])->read(); |
| 75 | return m_dsw_port[m_dsw_sel]->read(); |
| 78 | 76 | } |
| 79 | 77 | |
| 80 | 78 | |
| r32341 | r32342 | |
| 336 | 334 | } |
| 337 | 335 | |
| 338 | 336 | static INPUT_PORTS_START( monymony ) |
| 339 | | PORT_START("IN0") |
| 337 | PORT_START("DSW.0") |
| 340 | 338 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Lives ) ) PORT_DIPLOCATION("SW 5I:1,2") |
| 341 | 339 | PORT_DIPSETTING( 0x00, "2" ) |
| 342 | 340 | PORT_DIPSETTING( 0x01, "3" ) |
| r32341 | r32342 | |
| 361 | 359 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 362 | 360 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 363 | 361 | |
| 364 | | PORT_START("DSW0") |
| 362 | PORT_START("DSW.1") |
| 365 | 363 | PORT_DIPNAME( 0x03, 0x01, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW 4I:1,2") |
| 366 | 364 | PORT_DIPSETTING( 0x01, "200000" ) |
| 367 | 365 | PORT_DIPSETTING( 0x02, "300000" ) |
| r32341 | r32342 | |
| 384 | 382 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 385 | 383 | PORT_SERVICE( 0x80, IP_ACTIVE_HIGH ) PORT_DIPLOCATION("SW 4I:8") |
| 386 | 384 | |
| 387 | | PORT_START("DSW1") |
| 385 | PORT_START("DSW.2") |
| 388 | 386 | PORT_DIPNAME( 0x03, 0x02, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW 3I:1,2") |
| 389 | 387 | PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) ) |
| 390 | 388 | PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) ) |
| r32341 | r32342 | |
| 447 | 445 | static INPUT_PORTS_START( jackrabt ) |
| 448 | 446 | PORT_INCLUDE( monymony ) |
| 449 | 447 | |
| 450 | | PORT_MODIFY("IN0") |
| 448 | PORT_MODIFY("DSW.0") |
| 451 | 449 | PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW 5I:4") |
| 452 | 450 | PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) |
| 453 | 451 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 454 | 452 | |
| 455 | | PORT_MODIFY("DSW0") |
| 453 | PORT_MODIFY("DSW.1") |
| 456 | 454 | PORT_DIPNAME( 0x01, 0x00, DEF_STR( Unknown ) ) PORT_DIPLOCATION("SW 4I:1") |
| 457 | 455 | PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) |
| 458 | 456 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| r32341 | r32342 | |
| 477 | 475 | INPUT_PORTS_END |
| 478 | 476 | |
| 479 | 477 | |
| 480 | | |
| 481 | | static const gfx_layout charlayout = |
| 482 | | { |
| 483 | | 8,8, |
| 484 | | RGN_FRAC(1,3), |
| 485 | | 3, |
| 486 | | { RGN_FRAC(2,3), RGN_FRAC(1,3), RGN_FRAC(0,3) }, |
| 487 | | { 0, 1, 2, 3, 4, 5, 6, 7 }, |
| 488 | | { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, |
| 489 | | 8*8 |
| 490 | | }; |
| 491 | | |
| 492 | 478 | static const gfx_layout spritelayout = |
| 493 | 479 | { |
| 494 | 480 | 16,16, |
| r32341 | r32342 | |
| 503 | 489 | }; |
| 504 | 490 | |
| 505 | 491 | static GFXDECODE_START( zaccaria ) |
| 506 | | GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 32 ) |
| 492 | GFXDECODE_ENTRY( "gfx1", 0, gfx_8x8x3_planar, 0, 32 ) |
| 507 | 493 | GFXDECODE_ENTRY( "gfx1", 0, spritelayout, 32*8, 32 ) |
| 508 | 494 | GFXDECODE_END |
| 509 | 495 | |
trunk/src/mame/drivers/segaorun.c
| r32341 | r32342 | |
| 679 | 679 | // for Out Run |
| 680 | 680 | //------------------------------------------------- |
| 681 | 681 | |
| 682 | IOPORT_ARRAY_MEMBER( segaorun_state::digital_ports ) { "SERVICE", "UNKNOWN", "COINAGE", "DSW" }; |
| 683 | |
| 682 | 684 | READ16_MEMBER( segaorun_state::outrun_custom_io_r ) |
| 683 | 685 | { |
| 684 | 686 | offset &= 0x7f/2; |
| r32341 | r32342 | |
| 689 | 691 | |
| 690 | 692 | case 0x10/2: |
| 691 | 693 | { |
| 692 | | static const char *const sysports[] = { "SERVICE", "UNKNOWN", "COINAGE", "DSW" }; |
| 693 | | return ioport(sysports[offset & 3])->read(); |
| 694 | return m_digital_ports[offset & 3]->read(); |
| 694 | 695 | } |
| 695 | 696 | |
| 696 | 697 | case 0x30/2: |
| 697 | 698 | { |
| 698 | | static const char *const ports[] = { "ADC0", "ADC1", "ADC2", "ADC3", "ADC4", "ADC5", "ADC6", "ADC7" }; |
| 699 | | return ioport(ports[m_adc_select])->read_safe(0x0010); |
| 699 | return m_adc_ports[m_adc_select]->read_safe(0x0010); |
| 700 | 700 | } |
| 701 | 701 | |
| 702 | 702 | case 0x60/2: |
| r32341 | r32342 | |
| 777 | 777 | case 0x1004/2: |
| 778 | 778 | case 0x1006/2: |
| 779 | 779 | { |
| 780 | | static const char *const sysports[] = { "SERVICE", "UNKNOWN", "COINAGE", "DSW" }; |
| 781 | | return ioport(sysports[offset & 3])->read(); |
| 780 | return m_digital_ports[offset & 3]->read(); |
| 782 | 781 | } |
| 783 | 782 | |
| 784 | 783 | case 0x3020/2: |
| 785 | 784 | { |
| 786 | | static const char *const ports[] = { "ADC0", "ADC1", "ADC2", "ADC3" }; |
| 787 | | return ioport(ports[m_adc_select])->read_safe(0x0010); |
| 785 | return m_adc_ports[m_adc_select]->read_safe(0x0010); |
| 788 | 786 | } |
| 789 | 787 | |
| 790 | 788 | default: |
| r32341 | r32342 | |
| 981 | 979 | PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) |
| 982 | 980 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 983 | 981 | |
| 984 | | PORT_START("ADC0") // steering |
| 982 | PORT_START("ADC.0") // steering |
| 985 | 983 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) |
| 986 | 984 | |
| 987 | | PORT_START("ADC1") // gas pedal |
| 985 | PORT_START("ADC.1") // gas pedal |
| 988 | 986 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) |
| 989 | 987 | |
| 990 | | PORT_START("ADC2") // brake |
| 988 | PORT_START("ADC.2") // brake |
| 991 | 989 | PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) |
| 992 | 990 | |
| 993 | | PORT_START("ADC3") |
| 991 | PORT_START("ADC.3") |
| 994 | 992 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, segaorun_state, bankmotor_pos_r, NULL) |
| 995 | 993 | INPUT_PORTS_END |
| 996 | 994 | |
| r32341 | r32342 | |
| 1121 | 1119 | PORT_DIPUNUSED_DIPLOC( 0x40, IP_ACTIVE_LOW, "SWB:7" ) |
| 1122 | 1120 | PORT_DIPUNUSED_DIPLOC( 0x80, IP_ACTIVE_LOW, "SWB:8" ) |
| 1123 | 1121 | |
| 1124 | | PORT_MODIFY("ADC0") // steering |
| 1122 | PORT_MODIFY("ADC.0") // steering |
| 1125 | 1123 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE |
| 1126 | 1124 | |
| 1127 | | PORT_MODIFY("ADC3") |
| 1125 | PORT_MODIFY("ADC.3") |
| 1128 | 1126 | PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED ) |
| 1129 | 1127 | INPUT_PORTS_END |
| 1130 | 1128 | |
trunk/src/mame/drivers/segaybd.c
| r32341 | r32342 | |
| 108 | 108 | |
| 109 | 109 | WRITE16_MEMBER( segaybd_state::analog_w ) |
| 110 | 110 | { |
| 111 | | static const char *const ports[] = { "ADC0", "ADC1", "ADC2", "ADC3", "ADC4", "ADC5", "ADC6" }; |
| 112 | 111 | int selected = ((offset & 3) == 3) ? (3 + (m_misc_io_data[0x08/2] & 3)) : (offset & 3); |
| 113 | | m_analog_data[offset & 3] = ioport(ports[selected])->read_safe(0xff); |
| 112 | m_analog_data[offset & 3] = m_adc_ports[selected]->read_safe(0xff); |
| 114 | 113 | } |
| 115 | 114 | |
| 116 | 115 | |
| r32341 | r32342 | |
| 118 | 117 | // io_chip_r - handle reads from the I/O chip |
| 119 | 118 | //------------------------------------------------- |
| 120 | 119 | |
| 120 | IOPORT_ARRAY_MEMBER( segaybd_state::digital_ports ) |
| 121 | { "P1", "GENERAL", "PORTC", "PORTD", "PORTE", "DSW", "COINAGE", "PORTH" }; |
| 122 | |
| 121 | 123 | READ16_MEMBER( segaybd_state::io_chip_r ) |
| 122 | 124 | { |
| 123 | | static const char *const portnames[] = { "P1", "GENERAL", "PORTC", "PORTD", "PORTE", "DSW", "COINAGE", "PORTH" }; |
| 124 | 125 | offset &= 0x1f/2; |
| 125 | 126 | |
| 126 | 127 | switch (offset) |
| r32341 | r32342 | |
| 139 | 140 | return m_misc_io_data[offset]; |
| 140 | 141 | |
| 141 | 142 | // otherwise, return an input port |
| 142 | | return ioport(portnames[offset])->read(); |
| 143 | return m_digital_ports[offset]->read(); |
| 143 | 144 | |
| 144 | 145 | // 'SEGA' protection |
| 145 | 146 | case 0x10/2: |
| r32341 | r32342 | |
| 893 | 894 | PORT_DIPSETTING( 0x40, DEF_STR( Upright ) ) |
| 894 | 895 | PORT_DIPSETTING( 0x00, "City" ) |
| 895 | 896 | |
| 896 | | PORT_START("ADC0") // stick X |
| 897 | PORT_START("ADC.0") // stick X |
| 897 | 898 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) |
| 898 | 899 | |
| 899 | | PORT_START("ADC1") // stick Y |
| 900 | PORT_START("ADC.1") // stick Y |
| 900 | 901 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE |
| 901 | 902 | |
| 902 | | PORT_START("ADC2") // throttle |
| 903 | PORT_START("ADC.2") // throttle |
| 903 | 904 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_MINMAX(0x01,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(79) |
| 904 | 905 | INPUT_PORTS_END |
| 905 | 906 | |
| r32341 | r32342 | |
| 935 | 936 | PORT_DIPSETTING( 0x80, "3 to Start, 2 to Continue" ) |
| 936 | 937 | PORT_DIPSETTING( 0x00, "4 to Start, 3 to Continue" ) |
| 937 | 938 | |
| 938 | | PORT_START("ADC3") // stick Y |
| 939 | PORT_START("ADC.3") // stick Y |
| 939 | 940 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_MINMAX(0x40,0xc0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE |
| 940 | 941 | |
| 941 | | PORT_START("ADC4") // throttle |
| 942 | PORT_START("ADC.4") // throttle |
| 942 | 943 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(100) PORT_KEYDELTA(79) |
| 943 | 944 | |
| 944 | | PORT_START("ADC5") // stick X |
| 945 | PORT_START("ADC.5") // stick X |
| 945 | 946 | PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) |
| 946 | 947 | INPUT_PORTS_END |
| 947 | 948 | |
| r32341 | r32342 | |
| 1020 | 1021 | PORT_DIPSETTING( 0x80, DEF_STR( 1C_8C ) ) |
| 1021 | 1022 | PORT_DIPSETTING( 0x00, "Free Play (if Coin A too) or 1/1" ) |
| 1022 | 1023 | |
| 1023 | | PORT_START("ADC0") // moving pitch |
| 1024 | PORT_START("ADC.0") // moving pitch |
| 1024 | 1025 | PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(2) |
| 1025 | 1026 | |
| 1026 | | PORT_START("ADC2") // moving roll |
| 1027 | PORT_START("ADC.2") // moving roll |
| 1027 | 1028 | PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(3) |
| 1028 | 1029 | |
| 1029 | | PORT_START("ADC3") // stick Y |
| 1030 | PORT_START("ADC.3") // stick Y |
| 1030 | 1031 | PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE |
| 1031 | 1032 | |
| 1032 | | PORT_START("ADC5") // stick X |
| 1033 | PORT_START("ADC.5") // stick X |
| 1033 | 1034 | PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) |
| 1034 | 1035 | INPUT_PORTS_END |
| 1035 | 1036 | |
| r32341 | r32342 | |
| 1063 | 1064 | PORT_DIPSETTING( 0x40, DEF_STR( Hard ) ) |
| 1064 | 1065 | PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) |
| 1065 | 1066 | |
| 1066 | | PORT_START("ADC3") // brake |
| 1067 | PORT_START("ADC.3") // brake |
| 1067 | 1068 | PORT_BIT( 0xff, 0x00, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(40) |
| 1068 | 1069 | |
| 1069 | | PORT_START("ADC4") // gas pedal |
| 1070 | PORT_START("ADC.4") // gas pedal |
| 1070 | 1071 | PORT_BIT( 0xff, 0x00, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) |
| 1071 | 1072 | |
| 1072 | | PORT_START("ADC5") // steering |
| 1073 | PORT_START("ADC.5") // steering |
| 1073 | 1074 | PORT_BIT( 0xff, 0x80, IPT_PADDLE ) PORT_MINMAX(0x20,0xe0) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) |
| 1074 | 1075 | INPUT_PORTS_END |
| 1075 | 1076 | |
| r32341 | r32342 | |
| 1268 | 1269 | PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) |
| 1269 | 1270 | PORT_DIPSETTING( 0x00, DEF_STR( On ) ) |
| 1270 | 1271 | |
| 1271 | | PORT_START("ADC0") |
| 1272 | PORT_START("ADC.0") |
| 1272 | 1273 | PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) |
| 1273 | 1274 | |
| 1274 | | PORT_START("ADC1") |
| 1275 | PORT_START("ADC.1") |
| 1275 | 1276 | PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) |
| 1276 | 1277 | |
| 1277 | | PORT_START("ADC2") |
| 1278 | PORT_START("ADC.2") |
| 1278 | 1279 | PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) |
| 1279 | 1280 | |
| 1280 | | PORT_START("ADC3") |
| 1281 | PORT_START("ADC.3") |
| 1281 | 1282 | PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_PLAYER(2) |
| 1282 | 1283 | INPUT_PORTS_END |
| 1283 | 1284 | |
trunk/src/mame/includes/zaxxon.h
| r32341 | r32342 | |
| 10 | 10 | public: |
| 11 | 11 | zaxxon_state(const machine_config &mconfig, device_type type, const char *tag) |
| 12 | 12 | : driver_device(mconfig, type, tag), |
| 13 | | m_videoram(*this, "videoram"), |
| 14 | | m_spriteram(*this, "spriteram"), |
| 15 | | m_colorram(*this, "colorram"), |
| 16 | 13 | m_maincpu(*this, "maincpu"), |
| 17 | 14 | m_samples(*this, "samples"), |
| 18 | 15 | m_gfxdecode(*this, "gfxdecode"), |
| 19 | | m_palette(*this, "palette") { } |
| 16 | m_palette(*this, "palette"), |
| 17 | m_dials(*this, "DIAL"), |
| 18 | m_videoram(*this, "videoram"), |
| 19 | m_spriteram(*this, "spriteram"), |
| 20 | m_colorram(*this, "colorram") { } |
| 20 | 21 | |
| 22 | required_device<cpu_device> m_maincpu; |
| 23 | optional_device<samples_device> m_samples; |
| 24 | required_device<gfxdecode_device> m_gfxdecode; |
| 25 | required_device<palette_device> m_palette; |
| 26 | |
| 27 | optional_ioport_array<2> m_dials; |
| 28 | |
| 21 | 29 | required_shared_ptr<UINT8> m_videoram; |
| 22 | 30 | optional_shared_ptr<UINT8> m_spriteram; |
| 23 | 31 | optional_shared_ptr<UINT8> m_colorram; |
| r32341 | r32342 | |
| 89 | 97 | inline int find_minimum_x(UINT8 value, int flip); |
| 90 | 98 | void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16 flipxmask, UINT16 flipymask); |
| 91 | 99 | void zaxxonj_decode(const char *cputag); |
| 92 | | required_device<cpu_device> m_maincpu; |
| 93 | | optional_device<samples_device> m_samples; |
| 94 | | required_device<gfxdecode_device> m_gfxdecode; |
| 95 | | required_device<palette_device> m_palette; |
| 96 | 100 | }; |
| 97 | 101 | |
| 98 | 102 | |