~ubuntu-branches/ubuntu/karmic/xmame/karmic

« back to all changes in this revision

Viewing changes to src/drivers/bagman.c

  • Committer: Bazaar Package Importer
  • Author(s): Bruno Barrera C.
  • Date: 2007-02-16 10:06:54 UTC
  • mfrom: (2.1.5 edgy)
  • Revision ID: james.westby@ubuntu.com-20070216100654-iztas2cl47k5j039
Tags: 0.106-2
* Added Italian debconf templates translation. (closes: #382672)
* Added German debconf templates translation. (closes: #396610)
* Added Japanese debconf templates translation. (closes: #400011)
* Added Portuguese debconf templates translation. (closes: #409960)

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
memory mapped ports:
20
20
 
21
21
read:
22
 
a000      PAL16r6 output. (RD4 line)
23
 
a800      ? (read only in one place, not used) (RD5 line)
24
 
b000      DSW (RD6 line)
25
 
b800      watchdog reset (RD7 line)
 
22
a000      PAL16r6 output. (RD4 line)
 
23
a800      ? (read only in one place, not used) (RD5 line)
 
24
b000      DSW (RD6 line)
 
25
b800      watchdog reset (RD7 line)
26
26
 
27
27
write:
28
 
a000      interrupt enable
29
 
a001      horizontal flip
30
 
a002      vertical flip
31
 
a003      video enable?? (seems to be unused in the schems)
32
 
a004      coin counter
33
 
a007      ? /SCS line in the schems connected to AY8910 pin A4 or AA (schems are unreadable)
 
28
a000      interrupt enable
 
29
a001      horizontal flip
 
30
a002      vertical flip
 
31
a003      video enable?? (seems to be unused in the schems)
 
32
a004      coin counter
 
33
a007      ? /SCS line in the schems connected to AY8910 pin A4 or AA (schems are unreadable)
34
34
 
35
35
a800-a805 these lines control the state machine driving TMS5110 (only bit 0 matters)
36
 
                  a800,a801,a802 - speech roms BIT select (000 bit 7, 001 bit 4, 010 bit 2)
37
 
                  a803 - 0 keeps the state machine in reset state; 1 starts speech
38
 
                  a804 - connected to speech rom 11 (QS) chip enable
39
 
                  a805 - connected to speech rom 12 (QT) chip enable
40
 
b000      ?
41
 
b800      ?
 
36
          a800,a801,a802 - speech roms BIT select (000 bit 7, 001 bit 4, 010 bit 2)
 
37
          a803 - 0 keeps the state machine in reset state; 1 starts speech
 
38
          a804 - connected to speech rom 11 (QS) chip enable
 
39
          a805 - connected to speech rom 12 (QT) chip enable
 
40
b000      ?
 
41
b800      ?
42
42
 
43
43
 
44
44
PAL16r6 This chip is custom logic used for guards controlling.
45
 
                Inputs are connected to buffered address(!!!) lines AB0,AB1,AB2,AB3,AB4,AB5,AB6
46
 
                We simulate this writing a800 to a805 there (which is wrong but works)
 
45
        Inputs are connected to buffered address(!!!) lines AB0,AB1,AB2,AB3,AB4,AB5,AB6
 
46
        We simulate this writing a800 to a805 there (which is wrong but works)
47
47
 
48
48
 
49
49
I/O ports:
51
51
I/O 8  ;AY-3-8910 Control Reg.
52
52
I/O 9  ;AY-3-8910 Data Write Reg.
53
53
I/O C  ;AY-3-8910 Data Read Reg.
54
 
                Port A of the 8910 is connected to IN0
55
 
                Port B of the 8910 is connected to IN1
 
54
        Port A of the 8910 is connected to IN0
 
55
        Port B of the 8910 is connected to IN1
56
56
 
57
57
***************************************************************************/
58
58
 
59
59
#include "driver.h"
60
 
#include "vidhrdw/generic.h"
 
60
#include "sound/ay8910.h"
 
61
#include "sound/5110intf.h"
61
62
#include "sound/tms5110.h"
62
63
 
63
64
 
64
65
extern READ8_HANDLER( bagman_pal16r6_r );
65
 
extern MACHINE_INIT( bagman );
 
66
extern MACHINE_RESET( bagman );
66
67
extern WRITE8_HANDLER( bagman_pal16r6_w );
67
68
 
68
69
 
253
254
ADDRESS_MAP_END
254
255
 
255
256
static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
 
257
        ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
256
258
        AM_RANGE(0x0c, 0x0c) AM_READ(AY8910_read_port_0_r)
257
259
ADDRESS_MAP_END
258
260
 
259
261
static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
 
262
        ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
260
263
        AM_RANGE(0x08, 0x08) AM_WRITE(AY8910_control_port_0_w)
261
264
        AM_RANGE(0x09, 0x09) AM_WRITE(AY8910_write_port_0_w)
262
265
        /*AM_RANGE(0x56, 0x56) AM_WRITE(MWA8_NOP) */
458
461
 
459
462
 
460
463
 
461
 
static struct GfxLayout charlayout =
 
464
static const gfx_layout charlayout =
462
465
{
463
466
        8,8,    /* 8*8 characters */
464
467
        512,    /* 512 characters */
468
471
        { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
469
472
        8*8 /* every char takes 8 consecutive bytes */
470
473
};
471
 
static struct GfxLayout spritelayout =
 
474
static const gfx_layout spritelayout =
472
475
{
473
476
        16,16,  /* 16*16 sprites */
474
477
        128,    /* 128 sprites */
483
486
 
484
487
 
485
488
 
486
 
static struct GfxDecodeInfo gfxdecodeinfo[] =
 
489
static const gfx_decode gfxdecodeinfo[] =
487
490
{
488
491
        { REGION_GFX1, 0, &charlayout,          0, 16 },        /* char set #1 */
489
492
        { REGION_GFX1, 0, &spritelayout,        0, 16 },        /* sprites */
491
494
        { -1 } /* end of array */
492
495
};
493
496
 
494
 
static struct GfxDecodeInfo pickin_gfxdecodeinfo[] =
 
497
static const gfx_decode pickin_gfxdecodeinfo[] =
495
498
{
496
499
        { REGION_GFX1, 0, &charlayout,          0, 16 },        /* char set #1 */
497
500
        { REGION_GFX1, 0, &spritelayout,        0, 16 },        /* sprites */
503
506
 
504
507
static struct AY8910interface ay8910_interface =
505
508
{
506
 
        1,      /* 1 chip */
507
 
        1500000,        /* 1.5 MHz??? */
508
 
        { 10 },
509
 
        { input_port_0_r },
510
 
        { input_port_1_r },
511
 
        { 0 },
512
 
        { 0 }
 
509
        input_port_0_r,
 
510
        input_port_1_r,
513
511
};
514
512
 
515
513
static struct TMS5110interface tms5110_interface =
516
514
{
517
 
        640000, /*640 kHz clock*/
518
 
        100,    /*100 % mixing level */
519
515
        0,              /*irq callback function*/
520
516
        bagman_speech_rom_read_bit      /*M0 callback function. Called whenever chip requests a single bit of data*/
521
517
};
531
527
        MDRV_FRAMES_PER_SECOND(60)
532
528
        MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
533
529
 
534
 
        MDRV_MACHINE_INIT(bagman)
 
530
        MDRV_MACHINE_RESET(bagman)
535
531
 
536
532
        /* video hardware */
537
533
        MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
545
541
        MDRV_VIDEO_UPDATE(bagman)
546
542
 
547
543
        /* sound hardware */
548
 
        MDRV_SOUND_ADD(AY8910, ay8910_interface)
549
 
        MDRV_SOUND_ADD(TMS5110, tms5110_interface)
 
544
        MDRV_SPEAKER_STANDARD_MONO("mono")
 
545
 
 
546
        MDRV_SOUND_ADD(AY8910, 1500000)
 
547
        MDRV_SOUND_CONFIG(ay8910_interface)
 
548
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
 
549
 
 
550
        MDRV_SOUND_ADD(TMS5110, 640000)
 
551
        MDRV_SOUND_CONFIG(tms5110_interface)
 
552
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
550
553
MACHINE_DRIVER_END
551
554
 
552
555
static MACHINE_DRIVER_START( pickin )
560
563
        MDRV_FRAMES_PER_SECOND(60)
561
564
        MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
562
565
 
563
 
        MDRV_MACHINE_INIT(bagman)
 
566
        MDRV_MACHINE_RESET(bagman)
564
567
 
565
568
        /* video hardware */
566
569
        MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
574
577
        MDRV_VIDEO_UPDATE(bagman)
575
578
 
576
579
        /* sound hardware */
577
 
        MDRV_SOUND_ADD(AY8910, ay8910_interface)
 
580
        MDRV_SPEAKER_STANDARD_MONO("mono")
 
581
 
 
582
        MDRV_SOUND_ADD(AY8910, 1500000)
 
583
        MDRV_SOUND_CONFIG(ay8910_interface)
 
584
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
578
585
MACHINE_DRIVER_END
579
586
 
580
587
/*
606
613
        MDRV_FRAMES_PER_SECOND(60)
607
614
        MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
608
615
 
609
 
        MDRV_MACHINE_INIT(bagman)
 
616
        MDRV_MACHINE_RESET(bagman)
610
617
 
611
618
        /* video hardware */
612
619
        MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER)
620
627
        MDRV_VIDEO_UPDATE(bagman)
621
628
 
622
629
        /* sound hardware */
623
 
        MDRV_SOUND_ADD(AY8910, ay8910_interface)
 
630
        MDRV_SPEAKER_STANDARD_MONO("mono")
 
631
 
 
632
        MDRV_SOUND_ADD(AY8910, 1500000)
 
633
        MDRV_SOUND_CONFIG(ay8910_interface)
 
634
        MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
624
635
MACHINE_DRIVER_END
625
636
 
626
637
/***************************************************************************
888
899
        *bagman_video_enable = 1;
889
900
}
890
901
 
891
 
GAME(1982, bagman,       0,       bagman,  bagman,  0,        ROT270, "Valadon Automation", "Bagman" )
892
 
GAME(1982, bagnard,  bagman,  bagman,  bagman,  0,        ROT270, "Valadon Automation", "Le Bagnard (set 1)" )
893
 
GAME(1982, bagnarda, bagman,  bagman,  bagman,  bagnarda, ROT270, "Valadon Automation", "Le Bagnard (set 2)" )
894
 
GAME(1982, bagmans,  bagman,  bagman,  bagmans, 0,        ROT270, "Valadon Automation (Stern license)", "Bagman (Stern set 1)" )
895
 
GAME(1982, bagmans2, bagman,  bagman,  bagman,  0,        ROT270, "Valadon Automation (Stern license)", "Bagman (Stern set 2)" )
896
 
GAME(1984, sbagman,  0,           bagman,  sbagman, 0,        ROT270, "Valadon Automation", "Super Bagman" )
897
 
GAME(1984, sbagmans, sbagman, bagman,  sbagman, 0,        ROT270, "Valadon Automation (Stern license)", "Super Bagman (Stern)" )
898
 
GAME(1983, pickin,       0,       pickin,  pickin,  0,        ROT270, "Valadon Automation", "Pickin'" )
899
 
GAME(1984, botanic,  0,       botanic, pickin,  0,        ROT270, "Valadon Automation (Itisa license)", "Botanic" )
 
902
GAME( 1982, bagman,      0,       bagman,  bagman,  0,        ROT270, "Valadon Automation", "Bagman", 0 )
 
903
GAME( 1982, bagnard,  bagman,  bagman,  bagman,  0,        ROT270, "Valadon Automation", "Le Bagnard (set 1)", 0 )
 
904
GAME( 1982, bagnarda, bagman,  bagman,  bagman,  bagnarda, ROT270, "Valadon Automation", "Le Bagnard (set 2)", 0 )
 
905
GAME( 1982, bagmans,  bagman,  bagman,  bagmans, 0,        ROT270, "Valadon Automation (Stern license)", "Bagman (Stern set 1)", 0 )
 
906
GAME( 1982, bagmans2, bagman,  bagman,  bagman,  0,        ROT270, "Valadon Automation (Stern license)", "Bagman (Stern set 2)", 0 )
 
907
GAME( 1984, sbagman,  0,          bagman,  sbagman, 0,        ROT270, "Valadon Automation", "Super Bagman", 0 )
 
908
GAME( 1984, sbagmans, sbagman, bagman,  sbagman, 0,        ROT270, "Valadon Automation (Stern license)", "Super Bagman (Stern)", 0 )
 
909
GAME( 1983, pickin,      0,       pickin,  pickin,  0,        ROT270, "Valadon Automation", "Pickin'", 0 )
 
910
GAME( 1984, botanic,  0,       botanic, pickin,  0,        ROT270, "Valadon Automation (Itisa license)", "Botanic", 0 )
900
911