~ubuntu-branches/debian/wheezy/mame/wheezy

« back to all changes in this revision

Viewing changes to src/mame/drivers/goldnpkr.c

  • Committer: Bazaar Package Importer
  • Author(s): Jordi Mallach, Emmanuel Kasper, Félix Arreola Rodríguez, Jordi Mallach
  • Date: 2011-05-11 21:06:50 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20110511210650-jizvh8a6x117y9hr
Tags: 0.142-1
[ Emmanuel Kasper ]
* New upstream release
* Set NOWERROR=1 to allow compiling with gcc-4.6
* Remove fix_powerpc_build.patch, as upstream has taken it in this release
* Add gnome-video-arcade front end as a suggested package

[ Félix Arreola Rodríguez ]
* Add kfreebsd-build.patch to quilt series, to fix build on kfreebsd

[ Jordi Mallach ]
* Remove unneeded and bogus addition of --with-quilt to the dh invocation.
* Add Cesare Falco (long time Ubuntu maintainer) to Uploaders, and wrap
  them into multiple lines.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
    * Jack Potten's Poker (NGold, set 1).       198?, Unknown.
22
22
    * Jack Potten's Poker (NGold, set 2).       198?, Unknown.
23
23
    * Jack Potten's Poker (NGold, set 3).       198?, Unknown.
24
 
    * Witch Card (Video Klein).                 1991, Video Klein.
 
24
    * Witch Card (Video Klein CPU box).         1991, Video Klein.
25
25
    * Witch Card (Spanish, witch game, set 1).  1991, Unknown.
26
26
    * Witch Card (Spanish, witch game, set 2).  1991, Unknown.
27
27
    * Witch Card (English, no witch game).      1991, Unknown.
28
 
    * Witch Card (German, set 1).               1994, Proma.
29
 
    * Witch Card (German, set 2).               1994, Unknown.
 
28
    * Witch Card (German, WC3050, set 1 ).      1994, Proma.
30
29
    * Witch Card (English, witch game, lamps).  1985, PlayMan.
31
30
    * Witch Card (Falcon, enhanced sound).      199?, Falcon.
32
 
    * Witch Card (German, set 3, alt gfx).      1994, TV Game Elektronik.
 
31
    * Witch Card (German, WC3050, set 2 ).      1994, Proma.
33
32
    * Witch Game (Video Klein).                 1991, Video Klein.
 
33
    * Jolli Witch (Export, 6T/12T ver 1.57D).   1994, Video Klein?.
 
34
    * Wild Witch (Export, 6T/12T ver 1.74A).    1994, Video Klein.
34
35
    * Buena Suerte (Spanish, set 1).            1990, Unknown.
35
36
    * Buena Suerte (Spanish, set 2).            1991, Unknown.
36
37
    * Buena Suerte (Spanish, set 3).            1991, Unknown.
62
63
    * Royale (set 1).                           198?, Unknown.
63
64
    * Royale (set 2).                           198?, Unknown.
64
65
    * Maverik.                                  198?, Unknown.
65
 
    * Brasil'89.                                1989, Unknown.
 
66
    * Brasil 86.                                1986, Unknown.
 
67
    * Brasil 87.                                1987, Unknown.
 
68
    * Brasil 89 (set 1).                        1989, Unknown.
 
69
    * Brasil 89 (set 2).                        1989, Unknown.
 
70
    * Brasil 93.                                1993, Unknown.
66
71
    * Poker 91.                                 1991, Unknown.
67
72
    * Genie.                                    198?, Video Fun Games Ltd.
68
73
    * Silver Game.                              1983, Unknown.
247
252
    and DEAL + CANCEL.
248
253
 
249
254
 
 
255
    * Wild Witch / Jolli Witch
 
256
 
 
257
    These sets have a switch to change the game. Wild Witch comes with a complete
 
258
    Witch Game as switchable alternative, and Jolli Witch has Witch Card in the same
 
259
    package. Both are based in the 6T/12T program made by Video Klein, However, Jolli
 
260
    Witch seems to be a bootleg CPU box on an original Bonanza mainboard.
 
261
 
 
262
    The first time the game boots, will show a black & red screen with some options
 
263
    due to the lack or corrupt NVRAM. You must choose HOLD1 to create a new default
 
264
    NVRAM. In case you have corrupt NVRAM (not first boot), you can choose HOLD5 to
 
265
    attempt recover the old settings.
 
266
 
250
267
 
251
268
*******************************************************************************
252
269
 
640
657
    - Added Karateco Super Double (french)
641
658
    - Extended ROM space for goldnpkr game to include the 0x2000..0x3fff range
642
659
 
 
660
 
 
661
    [2011-01-20]
 
662
 
 
663
    - Lots of changes to get working the Video Klein games.
 
664
    - Renamed witchcde to witchjol --> Jolly Witch (Export, 6T/12T ver 1.57D).
 
665
    - Added Wild Witch (Export, 6T/12T ver 1.74A).
 
666
    - New video hardware and machine driver for Video Klein's extended tiles games.
 
667
    - Added Dallas DS1210 + battery backed RAM support to the Video Klein CPU boxed games.
 
668
    - Improved inputs for Jolli Witch and Wild Witch. Added the game selector switch.
 
669
    - Cleaned up some witch card sets.
 
670
    - Added technical and game notes.
 
671
 
 
672
 
643
673
    TODO:
644
674
 
645
675
    - Missing PIA connections.
646
 
    - Identify and hook the unknown device mapped at $2108-$210b in Witch Card (Video Klein).
647
676
    - Code analysis, Inputs & lamps for Royale.
648
677
    - Final cleanup and split the driver.
649
678
    - Check if calomega.c can be merged with this driver because hardware is compatible
670
699
#include "goldnpkr.lh"
671
700
 
672
701
 
 
702
class goldnpkr_state : public driver_device
 
703
{
 
704
public:
 
705
        goldnpkr_state(running_machine &machine, const driver_device_config_base &config)
 
706
                : driver_device(machine, config) { }
 
707
 
 
708
        UINT8 *m_videoram;
 
709
        UINT8 *m_colorram;
 
710
        tilemap_t *m_bg_tilemap;
 
711
        int m_mux_data;
 
712
        UINT8 m_pia0_PA_data;
 
713
};
 
714
 
 
715
 
673
716
/*********************************************
674
717
*               Video Hardware               *
675
718
*********************************************/
676
719
 
677
 
static UINT8 *videoram;
678
 
static UINT8 *colorram;
679
 
static tilemap_t *bg_tilemap;
680
720
 
681
721
static WRITE8_HANDLER( goldnpkr_videoram_w )
682
722
{
683
 
        videoram[offset] = data;
684
 
        tilemap_mark_tile_dirty(bg_tilemap, offset);
 
723
        goldnpkr_state *state = space->machine().driver_data<goldnpkr_state>();
 
724
        state->m_videoram[offset] = data;
 
725
        tilemap_mark_tile_dirty(state->m_bg_tilemap, offset);
685
726
}
686
727
 
687
728
static WRITE8_HANDLER( goldnpkr_colorram_w )
688
729
{
689
 
        colorram[offset] = data;
690
 
        tilemap_mark_tile_dirty(bg_tilemap, offset);
 
730
        goldnpkr_state *state = space->machine().driver_data<goldnpkr_state>();
 
731
        state->m_colorram[offset] = data;
 
732
        tilemap_mark_tile_dirty(state->m_bg_tilemap, offset);
691
733
}
692
734
 
693
735
static TILE_GET_INFO( get_bg_tile_info )
694
736
{
 
737
        goldnpkr_state *state = machine.driver_data<goldnpkr_state>();
695
738
/*  - bits -
696
739
    7654 3210
697
740
    --xx xx--   tiles color.
700
743
    xx-- ----   unused.
701
744
*/
702
745
 
703
 
        int attr = colorram[tile_index];
704
 
        int code = ((attr & 1) << 8) | videoram[tile_index];
 
746
        int attr = state->m_colorram[tile_index];
 
747
        int code = ((attr & 1) << 8) | state->m_videoram[tile_index];
705
748
        int bank = (attr & 0x02) >> 1;  /* bit 1 switch the gfx banks */
706
749
        int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */
707
750
 
708
751
        SET_TILE_INFO(bank, code, color, 0);
709
752
}
710
753
 
 
754
static TILE_GET_INFO( xtnd_get_bg_tile_info )
 
755
{
 
756
        goldnpkr_state *state = machine.driver_data<goldnpkr_state>();
 
757
/* 3 graphics banks system for VK extended cards
 
758
 
 
759
    - bits -
 
760
    7654 3210
 
761
    --xx xx--   tiles color.
 
762
    x--- --x-   tiles bank.
 
763
    -x-- ---x   unused.
 
764
*/
 
765
 
 
766
        int attr = state->m_colorram[tile_index];
 
767
        int code = ((attr & 1) << 8) | state->m_videoram[tile_index];
 
768
        int bank = ((attr & 0x02) >> 1) + ((attr & 0x80) >> 7); /* bit 1 & 7 switch the gfx banks */
 
769
        int color = (attr & 0x3c) >> 2; /* bits 2-3-4-5 for color */
 
770
 
 
771
        SET_TILE_INFO(bank, code, color, 0);
 
772
}
 
773
 
711
774
static VIDEO_START( goldnpkr )
712
775
{
713
 
        bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
714
 
}
715
 
 
716
 
static VIDEO_UPDATE( goldnpkr )
717
 
{
718
 
        tilemap_draw(bitmap, cliprect, bg_tilemap, 0, 0);
 
776
        goldnpkr_state *state = machine.driver_data<goldnpkr_state>();
 
777
        state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
 
778
}
 
779
 
 
780
static VIDEO_START( wcrdxtnd )
 
781
{
 
782
        goldnpkr_state *state = machine.driver_data<goldnpkr_state>();
 
783
        state->m_bg_tilemap = tilemap_create(machine, xtnd_get_bg_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
 
784
}
 
785
 
 
786
static SCREEN_UPDATE( goldnpkr )
 
787
{
 
788
        goldnpkr_state *state = screen->machine().driver_data<goldnpkr_state>();
 
789
        tilemap_draw(bitmap, cliprect, state->m_bg_tilemap, 0, 0);
719
790
        return 0;
720
791
}
721
792
 
734
805
        /* 0000IBGR */
735
806
        if (color_prom == 0) return;
736
807
 
737
 
        for (i = 0;i < machine->total_colors();i++)
 
808
        for (i = 0;i < machine.total_colors();i++)
738
809
        {
739
810
                int bit0, bit1, bit2, r, g, b, inten, intenmin, intenmax;
740
811
 
785
856
 
786
857
        if (color_prom == 0) return;
787
858
 
788
 
        for (i = 0;i < machine->total_colors();i++)
789
 
        {
790
 
                int bit0, bit1, bit2, bit3, r, g, b, bk;
791
 
 
792
 
                /* blue killer (from schematics) */
793
 
        bit3 = (color_prom[i] >> 3) & 0x01;
794
 
        bk = bit3;
795
 
 
796
 
                /* red component */
797
 
                bit0 = (color_prom[i] >> 0) & 0x01;
798
 
                r = (bit0 * 0xff);
799
 
 
800
 
                /* green component */
801
 
                bit1 = (color_prom[i] >> 1) & 0x01;
802
 
                g = (bit1 * 0xff);
803
 
 
804
 
                /* blue component */
805
 
                bit2 = (color_prom[i] >> 2) & 0x01;
806
 
                b = bk * (bit2 * 0xff);
 
859
        for (i = 0;i < machine.total_colors();i++)
 
860
        {
 
861
                int bit0, bit1, bit2, bit3, r, g, b, bk;
 
862
 
 
863
                /* blue killer (from schematics) */
 
864
        bit3 = (color_prom[i] >> 3) & 0x01;
 
865
        bk = bit3;
 
866
 
 
867
                /* red component */
 
868
                bit0 = (color_prom[i] >> 0) & 0x01;
 
869
                r = (bit0 * 0xff);
 
870
 
 
871
                /* green component */
 
872
                bit1 = (color_prom[i] >> 1) & 0x01;
 
873
                g = (bit1 * 0xff);
 
874
 
 
875
                /* blue component */
 
876
                bit2 = (color_prom[i] >> 2) & 0x01;
 
877
                b = bk * (bit2 * 0xff);
 
878
 
 
879
                palette_set_color(machine, i, MAKE_RGB(r, g, b));
 
880
        }
 
881
}
 
882
 
 
883
static PALETTE_INIT( wcrdxtnd )
 
884
{
 
885
/*
 
886
    Using the original intensity line, the PCB has a bridge
 
887
    that allow (as default) turn the background dark blue.
 
888
 
 
889
    7654 3210
 
890
    ---- ---x   red component.
 
891
    ---- --x-   green component.
 
892
    ---- -x--   blue component.
 
893
    ---- x---   intensity / blue killer.
 
894
    xxxx ----   unused.
 
895
*/
 
896
        int i;
 
897
 
 
898
        /* 0000KBGR */
 
899
 
 
900
        if (color_prom == 0) return;
 
901
 
 
902
        for (i = 0;i < machine.total_colors();i++)
 
903
        {
 
904
                int bit0, bit1, bit2, bit3, r, g, b, bk;
 
905
 
 
906
                /* blue killer (from schematics) */
 
907
        bit3 = (color_prom[i] >> 3) & 0x01;
 
908
        bk = bit3;
 
909
 
 
910
                /* red component */
 
911
                bit0 = (color_prom[i] >> 0) & 0x01;
 
912
                r = (bit0 * 0xff);
 
913
 
 
914
                /* green component */
 
915
                bit1 = (color_prom[i] >> 1) & 0x01;
 
916
                g = (bit1 * 0xff);
 
917
 
 
918
                /* blue component */
 
919
                bit2 = (color_prom[i] >> 2) & 0x01;
 
920
                b = bk * (bit2 * 0xff);
 
921
                //if ((b == 0) & (bk = 1))   --> needs better implementation
 
922
                //  b = 0x3f;
807
923
 
808
924
                palette_set_color(machine, i, MAKE_RGB(r, g, b));
809
925
        }
814
930
*               R/W Handlers               *
815
931
*******************************************/
816
932
 
817
 
static int mux_data = 0;
818
 
static UINT8 pia0_PA_data;
819
 
 
820
933
/* Inputs (buttons) are multiplexed.
821
934
   There are 4 sets of 5 bits each and are connected to PIA0, portA.
822
935
   The selector bits are located in PIA1, portB (bits 4-7).
823
936
*/
824
937
static READ8_DEVICE_HANDLER( goldnpkr_mux_port_r )
825
938
{
826
 
        switch( mux_data & 0xf0 )               /* bits 4-7 */
 
939
        goldnpkr_state *state = device->machine().driver_data<goldnpkr_state>();
 
940
        switch( state->m_mux_data & 0xf0 )              /* bits 4-7 */
827
941
        {
828
 
                case 0x10: return input_port_read(device->machine, "IN0-0");
829
 
                case 0x20: return input_port_read(device->machine, "IN0-1");
830
 
                case 0x40: return input_port_read(device->machine, "IN0-2");
831
 
                case 0x80: return input_port_read(device->machine, "IN0-3");
 
942
                case 0x10: return input_port_read(device->machine(), "IN0-0");
 
943
                case 0x20: return input_port_read(device->machine(), "IN0-1");
 
944
                case 0x40: return input_port_read(device->machine(), "IN0-2");
 
945
                case 0x80: return input_port_read(device->machine(), "IN0-3");
832
946
        }
833
947
        return 0xff;
834
948
}
835
949
 
836
950
static READ8_DEVICE_HANDLER( pottnpkr_mux_port_r )
837
951
{
 
952
        goldnpkr_state *state = device->machine().driver_data<goldnpkr_state>();
838
953
        UINT8 pa_0_4 = 0xff, pa_7;      /* Temporary place holder for bits 0 to 4 & 7 */
839
954
 
840
 
        switch( mux_data & 0xf0 )               /* bits 4-7 */
 
955
        switch( state->m_mux_data & 0xf0 )              /* bits 4-7 */
841
956
        {
842
 
                case 0x10: return input_port_read(device->machine, "IN0-0");
843
 
                case 0x20: return input_port_read(device->machine, "IN0-1");
844
 
                case 0x40: return input_port_read(device->machine, "IN0-2");
845
 
                case 0x80: return input_port_read(device->machine, "IN0-3");
 
957
                case 0x10: return input_port_read(device->machine(), "IN0-0");
 
958
                case 0x20: return input_port_read(device->machine(), "IN0-1");
 
959
                case 0x40: return input_port_read(device->machine(), "IN0-2");
 
960
                case 0x80: return input_port_read(device->machine(), "IN0-3");
846
961
        }
847
962
 
848
 
        pa_7 = (pia0_PA_data >> 7) & 1; /* To do: bit PA5 to pin CB1 */
 
963
        pa_7 = (state->m_pia0_PA_data >> 7) & 1;        /* To do: bit PA5 to pin CB1 */
849
964
//  popmessage ("mux_port_r: %x ",((pa_0_4 & 0x3f) | (pa_7 << 6) | (pa_7 << 7))) ; /* Equates PA6 to PA7 */
850
965
 
851
966
        return ( (pa_0_4 & 0x3f) | (pa_7 << 6) | (pa_7 << 7) ) ;
853
968
 
854
969
static WRITE8_DEVICE_HANDLER( mux_w )
855
970
{
856
 
        mux_data = data ^ 0xff; /* inverted */
 
971
        goldnpkr_state *state = device->machine().driver_data<goldnpkr_state>();
 
972
        state->m_mux_data = data ^ 0xff;        /* inverted */
857
973
}
858
974
 
859
975
static WRITE8_DEVICE_HANDLER( mux_port_w )
860
976
{
861
 
        pia0_PA_data = data;
 
977
        goldnpkr_state *state = device->machine().driver_data<goldnpkr_state>();
 
978
        state->m_pia0_PA_data = data;
862
979
}
863
980
 
864
981
 
870
987
{
871
988
        if (wcfalcon_flag == 0)
872
989
        {
873
 
                ay8910_data_address_w(device->machine->device("ay8910"), 0, data);
 
990
                ay8910_data_address_w(device->machine().device("ay8910"), 0, data);
874
991
//      logerror("sound address: %02x %02x\n", data, wcfalcon_flag);
875
992
        }
876
993
        else
877
994
        {
878
 
                ay8910_data_address_w(device->machine->device("ay8910"), 1, data);
 
995
                ay8910_data_address_w(device->machine().device("ay8910"), 1, data);
879
996
//      logerror("sound data: %02x %02x\n", data, wcfalcon_flag);
880
997
        }
881
998
 
926
1043
        output_set_lamp_value(4, 1 - ((data >> 4) & 1));        /* Lamp 4 */
927
1044
 
928
1045
//  popmessage("written : %02X", data);
929
 
        coin_counter_w(device->machine, 0, data & 0x40);        /* counter1 */
930
 
        coin_counter_w(device->machine, 1, data & 0x80);        /* counter2 */
931
 
        coin_counter_w(device->machine, 2, data & 0x20);        /* counter3 */
 
1046
        coin_counter_w(device->machine(), 0, data & 0x40);      /* counter1 */
 
1047
        coin_counter_w(device->machine(), 1, data & 0x80);      /* counter2 */
 
1048
        coin_counter_w(device->machine(), 2, data & 0x20);      /* counter3 */
932
1049
 
933
1050
/*  Counters:
934
1051
 
958
1075
*           Memory Map Information           *
959
1076
*********************************************/
960
1077
 
961
 
static ADDRESS_MAP_START( goldnpkr_map, ADDRESS_SPACE_PROGRAM, 8 )
 
1078
static ADDRESS_MAP_START( goldnpkr_map, AS_PROGRAM, 8 )
962
1079
        ADDRESS_MAP_GLOBAL_MASK(0x7fff)
963
1080
        AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")       /* battery backed RAM */
964
1081
        AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w)
965
1082
        AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
966
1083
        AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w)
967
1084
        AM_RANGE(0x0848, 0x084b) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w)
968
 
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE(&videoram)
969
 
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE(&colorram)
 
1085
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE_MEMBER(goldnpkr_state, m_videoram)
 
1086
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE_MEMBER(goldnpkr_state, m_colorram)
970
1087
        AM_RANGE(0x2000, 0x7fff) AM_ROM /* superdbl uses 0x2000..0x3fff address space */
971
1088
ADDRESS_MAP_END
972
1089
 
973
 
static ADDRESS_MAP_START( pottnpkr_map, ADDRESS_SPACE_PROGRAM, 8 )
 
1090
static ADDRESS_MAP_START( pottnpkr_map, AS_PROGRAM, 8 )
974
1091
        ADDRESS_MAP_GLOBAL_MASK(0x3fff)
975
1092
        AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")       /* battery backed RAM */
976
1093
        AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w)
977
1094
        AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
978
1095
        AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w)
979
1096
        AM_RANGE(0x0848, 0x084b) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w)
980
 
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE(&videoram)
981
 
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE(&colorram)
 
1097
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE_MEMBER(goldnpkr_state, m_videoram)
 
1098
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE_MEMBER(goldnpkr_state, m_colorram)
982
1099
        AM_RANGE(0x2000, 0x3fff) AM_ROM
983
1100
ADDRESS_MAP_END
984
1101
 
985
 
static ADDRESS_MAP_START( witchcrd_map, ADDRESS_SPACE_PROGRAM, 8 )
 
1102
static ADDRESS_MAP_START( witchcrd_map, AS_PROGRAM, 8 )
986
1103
        ADDRESS_MAP_GLOBAL_MASK(0x7fff)
987
1104
        AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")       /* battery backed RAM */
988
1105
        AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w)
989
1106
        AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
990
1107
        AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w)
991
1108
        AM_RANGE(0x0848, 0x084b) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w)
992
 
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE(&videoram)
993
 
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE(&colorram)
 
1109
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE_MEMBER(goldnpkr_state, m_videoram)
 
1110
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE_MEMBER(goldnpkr_state, m_colorram)
994
1111
        AM_RANGE(0x2000, 0x2000) AM_READ_PORT("SW2")
995
1112
//  AM_RANGE(0x2108, 0x210b) AM_NOP /* unknown 40-pin device */
996
1113
        AM_RANGE(0x4000, 0x7fff) AM_ROM
1008
1125
 
1009
1126
*/
1010
1127
 
1011
 
static ADDRESS_MAP_START( witchcrd_falcon_map, ADDRESS_SPACE_PROGRAM, 8 )
 
1128
static ADDRESS_MAP_START( witchcrd_falcon_map, AS_PROGRAM, 8 )
1012
1129
        ADDRESS_MAP_GLOBAL_MASK(0x7fff)
1013
1130
        AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")       /* battery backed RAM */
1014
1131
        AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w)
1015
1132
        AM_RANGE(0x0848, 0x084b) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w)
1016
 
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE(&videoram)
1017
 
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE(&colorram)
 
1133
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE_MEMBER(goldnpkr_state, m_videoram)
 
1134
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE_MEMBER(goldnpkr_state, m_colorram)
1018
1135
        AM_RANGE(0x2000, 0x2000) AM_READ_PORT("SW2")
1019
1136
        AM_RANGE(0x2100, 0x2100) AM_DEVWRITE("crtc", mc6845_address_w)
1020
1137
        AM_RANGE(0x2101, 0x2101) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
1021
1138
        AM_RANGE(0x4000, 0x7fff) AM_ROM
1022
1139
ADDRESS_MAP_END
1023
1140
 
1024
 
static ADDRESS_MAP_START( wildcard_map, ADDRESS_SPACE_PROGRAM, 8 )
 
1141
static ADDRESS_MAP_START( wildcard_map, AS_PROGRAM, 8 )
1025
1142
//  ADDRESS_MAP_GLOBAL_MASK(0x7fff)
1026
1143
        AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")       /* battery backed RAM */
1027
1144
        AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w)
1028
1145
        AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
1029
1146
        AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w)
1030
1147
        AM_RANGE(0x0848, 0x084b) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w)
1031
 
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE(&videoram)
1032
 
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE(&colorram)
 
1148
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE_MEMBER(goldnpkr_state, m_videoram)
 
1149
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE_MEMBER(goldnpkr_state, m_colorram)
1033
1150
        AM_RANGE(0x2000, 0x2000) AM_READ_PORT("SW2")
1034
1151
        AM_RANGE(0x2200, 0x27ff) AM_ROM /* for VK set */
1035
1152
        AM_RANGE(0x2800, 0x2fff) AM_RAM /* for VK set */
1037
1154
ADDRESS_MAP_END
1038
1155
 
1039
1156
/*
 
1157
  Video Klein extended hardware
 
1158
 
 
1159
  Extended graphics plus DS1210 + RAM
 
1160
 
 
1161
*/
 
1162
 
 
1163
static ADDRESS_MAP_START( wcrdxtnd_map, AS_PROGRAM, 8 )
 
1164
        AM_RANGE(0x0000, 0x07ff) AM_RAM //AM_SHARE("nvram") /* battery backed RAM */
 
1165
        AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w)
 
1166
        AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
 
1167
        AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w)
 
1168
        AM_RANGE(0x0848, 0x084b) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w)
 
1169
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE_MEMBER(goldnpkr_state, m_videoram)
 
1170
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE_MEMBER(goldnpkr_state, m_colorram)
 
1171
        AM_RANGE(0x2000, 0x2000) AM_READ_PORT("SW2")
 
1172
        AM_RANGE(0x2200, 0x27ff) AM_ROM /* for VK hardware */
 
1173
        AM_RANGE(0x2800, 0x2fff) AM_RAM AM_SHARE("nvram")       /* Dallas ds1210 + battery backed RAM */
 
1174
        AM_RANGE(0x3000, 0xffff) AM_ROM /* for VK hardware. bootleg starts from 4000 */
 
1175
ADDRESS_MAP_END
 
1176
 
 
1177
/*
1040
1178
 
1041
1179
  VK = BP 703f
1042
1180
 
1043
1181
*/
1044
1182
 
1045
 
static ADDRESS_MAP_START( wildcrdb_map, ADDRESS_SPACE_PROGRAM, 8 )
 
1183
static ADDRESS_MAP_START( wildcrdb_map, AS_PROGRAM, 8 )
1046
1184
        ADDRESS_MAP_GLOBAL_MASK(0x7fff)
1047
1185
        AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")       /* battery backed RAM */
1048
1186
        AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w)
1049
1187
        AM_RANGE(0x0848, 0x084b) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w)
1050
 
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE(&videoram)
1051
 
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE(&colorram)
 
1188
        AM_RANGE(0x1000, 0x13ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE_MEMBER(goldnpkr_state, m_videoram)
 
1189
        AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE_MEMBER(goldnpkr_state, m_colorram)
1052
1190
        AM_RANGE(0x2000, 0x2000) AM_READ_PORT("SW2")
1053
1191
        AM_RANGE(0x2100, 0x2100) AM_DEVWRITE("crtc", mc6845_address_w)
1054
1192
        AM_RANGE(0x2101, 0x2101) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
1056
1194
        AM_RANGE(0x3000, 0xffff) AM_ROM
1057
1195
ADDRESS_MAP_END
1058
1196
 
1059
 
static ADDRESS_MAP_START( wildcrdb_mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
 
1197
static ADDRESS_MAP_START( wildcrdb_mcu_map, AS_PROGRAM, 8 )
1060
1198
//  ADDRESS_MAP_GLOBAL_MASK(0x3fff)
1061
1199
        AM_RANGE(0x0000, 0x0fff) AM_ROM
1062
1200
        AM_RANGE(0x1000, 0x2fff) AM_RAM
1063
1201
ADDRESS_MAP_END
1064
1202
 
1065
 
static ADDRESS_MAP_START( wildcrdb_mcu_io_map, ADDRESS_SPACE_IO, 8 )
 
1203
static ADDRESS_MAP_START( wildcrdb_mcu_io_map, AS_IO, 8 )
1066
1204
        ADDRESS_MAP_GLOBAL_MASK(0xff)
1067
1205
ADDRESS_MAP_END
1068
1206
 
1075
1213
 
1076
1214
*/
1077
1215
 
1078
 
static ADDRESS_MAP_START( genie_map, ADDRESS_SPACE_PROGRAM, 8 )
 
1216
static ADDRESS_MAP_START( genie_map, AS_PROGRAM, 8 )
1079
1217
        ADDRESS_MAP_GLOBAL_MASK(0x3fff)
1080
1218
        AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")       /* battery backed RAM */
1081
1219
        AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("crtc", mc6845_address_w)
1082
1220
        AM_RANGE(0x0801, 0x0801) AM_DEVREADWRITE("crtc", mc6845_register_r, mc6845_register_w)
1083
1221
        AM_RANGE(0x0844, 0x0847) AM_DEVREADWRITE("pia0", pia6821_r, pia6821_w)
1084
1222
        AM_RANGE(0x0848, 0x084b) AM_DEVREADWRITE("pia1", pia6821_r, pia6821_w)
1085
 
        AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE(&videoram)
1086
 
        AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE(&colorram)
 
1223
        AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(goldnpkr_videoram_w) AM_BASE_MEMBER(goldnpkr_state, m_videoram)
 
1224
        AM_RANGE(0x1800, 0x1fff) AM_RAM_WRITE(goldnpkr_colorram_w) AM_BASE_MEMBER(goldnpkr_state, m_colorram)
1087
1225
        AM_RANGE(0x2000, 0x3fff) AM_ROM
1088
1226
ADDRESS_MAP_END
1089
1227
 
1790
1928
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1791
1929
INPUT_PORTS_END
1792
1930
 
1793
 
static INPUT_PORTS_START( witchcde )
 
1931
static INPUT_PORTS_START( witchjol )
1794
1932
        /* Multiplexed - 4x5bits */
1795
1933
        PORT_INCLUDE( witchcrd )
1796
1934
 
1822
1960
        PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED )
1823
1961
        PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNUSED )
1824
1962
        PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNUSED )
1825
 
        PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
 
1963
        PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1826
1964
        PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1827
1965
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1828
 
        PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) )
 
1966
        PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1829
1967
        PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1830
1968
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1831
1969
        PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1861
1999
    --------------------------------------------
1862
2000
*/
1863
2001
        PORT_MODIFY("SW2")
1864
 
        PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )
1865
 
        PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
1866
 
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1867
 
        PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )
1868
 
        PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
1869
 
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1870
 
        PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) )
1871
 
        PORT_DIPSETTING(    0x04, DEF_STR( Off ) )
1872
 
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1873
 
        PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) )
1874
 
        PORT_DIPSETTING(    0x08, DEF_STR( Off ) )
1875
 
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1876
 
        PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )
1877
 
        PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
1878
 
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1879
 
        PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )
1880
 
        PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
1881
 
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1882
 
        PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )
1883
 
        PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
1884
 
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1885
 
        PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )
1886
 
        PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
1887
 
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
 
2002
        PORT_DIPNAME( 0x03, 0x00, "Max Bet" )                   PORT_DIPLOCATION("SW2:1,2")
 
2003
        PORT_DIPSETTING(    0x03, "10" )        /* OFF-OFF */
 
2004
        PORT_DIPSETTING(    0x02, "20" )        /* ON-OFF */
 
2005
        PORT_DIPSETTING(    0x01, "50" )        /* OFF-ON */
 
2006
        PORT_DIPSETTING(    0x00, "100" )       /* ON-ON */
 
2007
        PORT_DIPNAME( 0x04, 0x04, "Game Type" )                 PORT_DIPLOCATION("SW2:3")
 
2008
        PORT_DIPSETTING(    0x04, "Jolli Witch" )
 
2009
        PORT_DIPSETTING(    0x00, "Witch Card" )
 
2010
        PORT_DIPNAME( 0x08, 0x08, "Taster?" )                   PORT_DIPLOCATION("SW2:4")
 
2011
        PORT_DIPSETTING(    0x00, "6 Taster" )
 
2012
        PORT_DIPSETTING(    0x08, "12 Taster" )
 
2013
        PORT_DIPNAME( 0x10, 0x00, "Minimal Hand" )              PORT_DIPLOCATION("SW2:5")
 
2014
        PORT_DIPSETTING(    0x10, "2 Paar" )
 
2015
        PORT_DIPSETTING(    0x00, "1 Paar" )
 
2016
        PORT_DIPNAME( 0x60, 0x20, "Uncommented 1" )             PORT_DIPLOCATION("SW2:6,7")
 
2017
        PORT_DIPSETTING(    0x60, "1 DM - 1 PKT" )
 
2018
        PORT_DIPSETTING(    0x20, "1 DM - 10 PKT" )
 
2019
        PORT_DIPNAME( 0x80, 0x00, "Royal Flush" )               PORT_DIPLOCATION("SW2:8")
 
2020
        PORT_DIPSETTING(    0x80, DEF_STR( No ) )
 
2021
        PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
1888
2022
INPUT_PORTS_END
1889
2023
 
1890
2024
static INPUT_PORTS_START( witchcdf )
1959
2093
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
1960
2094
INPUT_PORTS_END
1961
2095
 
 
2096
static INPUT_PORTS_START( wldwitch )
 
2097
        /* Multiplexed - 4x5bits */
 
2098
        PORT_START("IN0-0")
 
2099
        PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_GAMBLE_BET )
 
2100
        PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_GAMBLE_BOOK ) PORT_NAME("Meters")
 
2101
        PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2102
        PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_DEAL ) PORT_NAME("Deal / Draw")
 
2103
        PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_CANCEL )
 
2104
        PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2105
        PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2106
        PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2107
 
 
2108
        PORT_START("IN0-1")
 
2109
        PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON13 ) PORT_IMPULSE(3) PORT_NAME("Manual Collect") PORT_CODE(KEYCODE_Q)
 
2110
        PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON14 ) PORT_NAME("Payout") PORT_CODE(KEYCODE_W)
 
2111
        PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2112
        PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_HIGH ) PORT_NAME("Big")
 
2113
        PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_GAMBLE_LOW ) PORT_NAME("Small")
 
2114
        PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2115
        PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2116
        PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2117
 
 
2118
        PORT_START("IN0-2")
 
2119
        PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POKER_HOLD1 )        PORT_NAME("Hold 1 / Take")
 
2120
        PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_POKER_HOLD2 )
 
2121
        PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_POKER_HOLD3 )
 
2122
        PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_POKER_HOLD4 )
 
2123
        PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_POKER_HOLD5 )        PORT_NAME("Hold 5 / Double-Up")
 
2124
        PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2125
        PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2126
        PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2127
 
 
2128
        PORT_START("IN0-3")
 
2129
        PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN )    // service F2?
 
2130
        PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2131
        PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_COIN2 )   PORT_NAME("Note In")
 
2132
        PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_COIN1 )   PORT_IMPULSE(3) PORT_NAME("Coin In")
 
2133
        PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_COIN3 )   PORT_NAME("Weight (Coupon In)")
 
2134
        PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2135
        PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2136
        PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
 
2137
 
 
2138
        PORT_START("SW1")
 
2139
/*       _______________________
 
2140
        | 40% | 50% | 60% | 70% |
 
2141
 _______________________________
 
2142
| PIN 3 | off | off | on  | on  |
 
2143
 _______________________________
 
2144
| PIN 4 | off | on  | off | on  |
 
2145
 _______________________________
 
2146
 
 
2147
 _______________________________
 
2148
| PIN 1 | on = Wirteb.          |
 
2149
 _______________________________
 
2150
| PIN 2 | off = Tab. 500        |
 
2151
|       |  on = Tab. 1100       |
 
2152
 _______________________________
 
2153
| PIN 5,6,7,8 = off             |
 
2154
 _______________________________
 
2155
 
 
2156
*/
 
2157
        PORT_DIPNAME( 0x01, 0x01, DEF_STR( Unknown ) )  PORT_DIPLOCATION("SW1:1")       /* OFF by default */
 
2158
        PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
 
2159
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
 
2160
        PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) )  PORT_DIPLOCATION("SW1:2")       /* OFF by default */
 
2161
        PORT_DIPSETTING(    0x02, DEF_STR( Off ) )
 
2162
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
 
2163
        PORT_DIPNAME( 0x0c, 0x04, "Percentage" )                PORT_DIPLOCATION("SW1:3,4")
 
2164
        PORT_DIPSETTING(    0x0c, "40%" )
 
2165
        PORT_DIPSETTING(    0x04, "50%" )
 
2166
        PORT_DIPSETTING(    0x08, "60%" )
 
2167
        PORT_DIPSETTING(    0x00, "70%" )
 
2168
        PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) )  PORT_DIPLOCATION("SW1:5")       /* OFF by default */
 
2169
        PORT_DIPSETTING(    0x10, DEF_STR( Off ) )
 
2170
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
 
2171
        PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) )  PORT_DIPLOCATION("SW1:6")       /* OFF by default */
 
2172
        PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
 
2173
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
 
2174
        PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) )  PORT_DIPLOCATION("SW1:7")       /* OFF by default */
 
2175
        PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
 
2176
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
 
2177
        PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) )  PORT_DIPLOCATION("SW1:8")       /* OFF by default */
 
2178
        PORT_DIPSETTING(    0x80, DEF_STR( Off ) )
 
2179
        PORT_DIPSETTING(    0x00, DEF_STR( On ) )
 
2180
 
 
2181
        PORT_START("SW2")
 
2182
/*  DIP Switches (as shown in the epoxy block)
 
2183
 
 
2184
    Schalter      1   2   3   4   5   6   7   8
 
2185
    --------------------------------------------
 
2186
    Bet >  10    OFF OFF
 
2187
    Bet >  20    ON  OFF
 
2188
    Bet >  50    OFF ON
 
2189
    Bet > 100    ON  ON
 
2190
    --------------------------------------------
 
2191
    Wild Witch           OFF
 
2192
    Witch Game           ON
 
2193
    --------------------------------------------
 
2194
    12 Taster                OFF
 
2195
     6 Taster                ON
 
2196
    --------------------------------------------
 
2197
    2 Paar                       OFF
 
2198
    Hohes Paar                   ON
 
2199
    --------------------------------------------
 
2200
    64er                             OFF
 
2201
    128er                            ON
 
2202
    --------------------------------------------
 
2203
    10 Credit                            OFF
 
2204
    1 Credit                             ON
 
2205
    --------------------------------------------
 
2206
    R.Flush NO                               OFF
 
2207
    R.Flush YES                              ON
 
2208
    --------------------------------------------
 
2209
*/
 
2210
        PORT_DIPNAME( 0x03, 0x01, "Max Bet" )                   PORT_DIPLOCATION("SW2:1,2")
 
2211
        PORT_DIPSETTING(    0x03, "10" )        /* OFF-OFF */
 
2212
        PORT_DIPSETTING(    0x02, "20" )        /* ON-OFF */
 
2213
        PORT_DIPSETTING(    0x01, "50" )        /* OFF-ON */
 
2214
        PORT_DIPSETTING(    0x00, "100" )       /* ON-ON */
 
2215
        PORT_DIPNAME( 0x04, 0x04, "Game Type" )                 PORT_DIPLOCATION("SW2:3")
 
2216
        PORT_DIPSETTING(    0x04, "Wild Witch" )
 
2217
        PORT_DIPSETTING(    0x00, "Witch Game" )
 
2218
        PORT_DIPNAME( 0x08, 0x08, "Taster?" )                   PORT_DIPLOCATION("SW2:4")
 
2219
        PORT_DIPSETTING(    0x00, "6 Taster" )
 
2220
        PORT_DIPSETTING(    0x08, "12 Taster" )
 
2221
        PORT_DIPNAME( 0x10, 0x00, "Minimal Hand" )              PORT_DIPLOCATION("SW2:5")
 
2222
        PORT_DIPSETTING(    0x10, "2 Paar" )
 
2223
        PORT_DIPSETTING(    0x00, "1 Paar" )
 
2224
        PORT_DIPNAME( 0x20, 0x20, "Uncommented 1" )             PORT_DIPLOCATION("SW2:6")
 
2225
        PORT_DIPSETTING(    0x20, "64er" )
 
2226
        PORT_DIPSETTING(    0x00, "128er" )
 
2227
        PORT_DIPNAME( 0x40, 0x40, "Uncommented 2" )             PORT_DIPLOCATION("SW2:7")
 
2228
        PORT_DIPSETTING(    0x40, "1 Credit" )
 
2229
        PORT_DIPSETTING(    0x00, "10 Credits" )
 
2230
        PORT_DIPNAME( 0x80, 0x00, "Royal Flush" )               PORT_DIPLOCATION("SW2:8")
 
2231
        PORT_DIPSETTING(    0x80, DEF_STR( No ) )
 
2232
        PORT_DIPSETTING(    0x00, DEF_STR( Yes ) )
 
2233
INPUT_PORTS_END
 
2234
 
1962
2235
static INPUT_PORTS_START( sloco93 )
1963
2236
        /* Multiplexed - 4x5bits */
1964
2237
        PORT_INCLUDE( witchcda )
2360
2633
        GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 16 )
2361
2634
GFXDECODE_END
2362
2635
 
 
2636
static GFXDECODE_START( wcrdxtnd )
 
2637
        GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 16 )
 
2638
        GFXDECODE_ENTRY( "gfx2", 0, tilelayout, 0, 16 )
 
2639
        GFXDECODE_ENTRY( "gfx3", 0, tilelayout, 0, 16 )
 
2640
GFXDECODE_END
 
2641
 
2363
2642
 
2364
2643
/*******************************************
2365
2644
*              PIA Interfaces              *
2626
2905
*              Machine Drivers               *
2627
2906
*********************************************/
2628
2907
 
2629
 
static MACHINE_CONFIG_START( goldnpkr_base, driver_device )
 
2908
static MACHINE_CONFIG_START( goldnpkr_base, goldnpkr_state )
2630
2909
 
2631
2910
        /* basic machine hardware */
2632
2911
        MCFG_CPU_ADD("maincpu", M6502, CPU_CLOCK)
2645
2924
        MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16)
2646
2925
        MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8)                  /* From MC6845 init, registers 00 & 04 (programmed with value-1). */
2647
2926
        MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1)    /* From MC6845 init, registers 01 & 06. */
 
2927
        MCFG_SCREEN_UPDATE(goldnpkr)
2648
2928
 
2649
2929
        MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf) /* 68B45 or 6845s @ CPU clock */
2650
2930
 
2652
2932
        MCFG_PALETTE_INIT(goldnpkr)
2653
2933
        MCFG_PALETTE_LENGTH(256)
2654
2934
        MCFG_VIDEO_START(goldnpkr)
2655
 
        MCFG_VIDEO_UPDATE(goldnpkr)
2656
2935
MACHINE_CONFIG_END
2657
2936
 
2658
2937
 
2742
3021
MACHINE_CONFIG_END
2743
3022
 
2744
3023
 
 
3024
static MACHINE_CONFIG_DERIVED( wcrdxtnd, goldnpkr_base )
 
3025
 
 
3026
        /* basic machine hardware */
 
3027
        MCFG_CPU_MODIFY("maincpu")
 
3028
        MCFG_CPU_PROGRAM_MAP(wcrdxtnd_map)
 
3029
 
 
3030
        MCFG_PIA6821_MODIFY("pia0", pottnpkr_pia0_intf)
 
3031
 
 
3032
        /* video hardware */
 
3033
        MCFG_GFXDECODE(wcrdxtnd)
 
3034
        MCFG_PALETTE_INIT(wcrdxtnd)
 
3035
        MCFG_VIDEO_START(wcrdxtnd)
 
3036
 
 
3037
        /* sound hardware */
 
3038
        MCFG_SPEAKER_STANDARD_MONO("mono")
 
3039
        MCFG_SOUND_ADD("discrete", DISCRETE, 0)
 
3040
        MCFG_SOUND_CONFIG_DISCRETE(goldnpkr)
 
3041
        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
 
3042
MACHINE_CONFIG_END
 
3043
 
 
3044
 
2745
3045
static MACHINE_CONFIG_DERIVED( wildcrdb, goldnpkr_base )
2746
3046
 
2747
3047
        /* basic machine hardware */
3182
3482
        ROM_LOAD( "82s129.9c",          0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
3183
3483
ROM_END
3184
3484
 
3185
 
/*  Witch Card (german, set 1)
3186
 
 
3187
 
    TV GAME ELEKTRONIK 1994
3188
 
           PROVA
3189
 
    CASINOVERSION WC3050
3190
 
*/
 
3485
/***************************************
 
3486
 
 
3487
  Witch Card (german, WC3050, set 1 )
 
3488
 
 
3489
  TV GAME ELEKTRONIK 1994
 
3490
         PROMA
 
3491
   CASINOVERSION WC3050
 
3492
 
 
3493
***************************************/
 
3494
 
3191
3495
        ROM_START( witchcdd )
3192
3496
        ROM_REGION( 0x10000, "maincpu", 0 )
3193
3497
        ROM_LOAD( "12a.bin",    0x0000, 0x8000, CRC(a5c1186a) SHA1(b6c662bf489fbcccc3063ce55c957e630ba96ccb) )
3205
3509
        ROM_LOAD( "tbp24s10n.7d",       0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) )
3206
3510
ROM_END
3207
3511
 
3208
 
/*  Witch Card (german, set 2)
3209
 
    Epoxy CPU box.
3210
 
 
3211
 
    Code jumps into a zero-filled zone.
3212
 
    Addressing seems to be scrambled in some way
3213
 
    maybe through a PLD.
3214
 
*/
3215
 
ROM_START( witchcde )
3216
 
        ROM_REGION( 0x10000, "maincpu", 0 )     /* inside epoxy block with the CPU */
3217
 
        ROM_LOAD( "27c256.bin", 0x0000, 0x8000, CRC(14f05e3b) SHA1(83578f6a82b0974dd0325903926b2fd0d8e5c236) )
3218
 
 
3219
 
        ROM_REGION( 0x6000, "gfx1", 0 )
3220
 
        ROM_FILL(                                       0x0000, 0x4000, 0 ) /* filling the R-G bitplanes */
3221
 
        ROM_LOAD( "iii.5a",     0x4000, 0x2000, CRC(5ea338da) SHA1(5e55e17689541ffb9c23e45f689dda98a79bf789) )    /* text layer */
3222
 
 
3223
 
        ROM_REGION( 0x6000, "gfx2", 0 )
3224
 
        ROM_LOAD( "i.2a",       0x0000, 0x2000, CRC(d467f6e2) SHA1(6aaf4cdfb76f5efeeee45635fea120711483648e) )    /* cards deck gfx, bitplane1 */
3225
 
        ROM_LOAD( "ii.4a",      0x2000, 0x2000, CRC(044dfac0) SHA1(721f8f57e05ddcbdb838d12fd3e81a45346ee6db) )    /* cards deck gfx, bitplane2 */
3226
 
        ROM_COPY( "gfx1",       0x5000, 0x4000, 0x1000 )    /* cards deck gfx, bitplane3. found in the 2nd quarter of the text layer rom */
3227
 
 
3228
 
        ROM_REGION( 0x0100, "proms", 0 )
3229
 
        ROM_LOAD( "82s129.7d",  0x0000, 0x0100, BAD_DUMP CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) )
3230
 
ROM_END
3231
 
 
3232
3512
/*  Witch Card (english, witch game, lights)
3233
3513
    PCB by PM. Hybrid hardware.
3234
3514
 
3291
3571
 
3292
3572
/***************************************
3293
3573
 
3294
 
  Witch Card (german, set 3, alt gfx)
 
3574
  Witch Card (german, WC3050, set 2 )
3295
3575
 
3296
3576
  TV GAME ELEKTRONIK 1994
3297
3577
         PROMA
3958
4238
        ROM_LOAD( "82s129.9c",          0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
3959
4239
ROM_END
3960
4240
 
 
4241
/*****************************
 
4242
 
 
4243
  Brasil XX sets...
 
4244
 
 
4245
 ****************************/
 
4246
ROM_START( brasil86 )
 
4247
        ROM_REGION( 0x10000, "maincpu", 0 )     /* brasil86.128: Brasil 86, BS clone. */
 
4248
        ROM_LOAD( "brasil86.128",       0x4000, 0x4000, CRC(0e88b434) SHA1(80f921c277f4253c29ee80e9cfb046ade1f66300) )
 
4249
 
 
4250
        ROM_REGION( 0x3000, "gfx1", 0 )
 
4251
        ROM_FILL(                       0x0000, 0x2000, 0 ) /* filling the R-G bitplanes */
 
4252
        ROM_LOAD( "4s.bin",     0x2000, 0x1000, CRC(0ac197eb) SHA1(fdf2b134c662f3c4d4a19d93a82d130ba643ace8) )    /* text layer */
 
4253
 
 
4254
        ROM_REGION( 0x3000, "gfx2", 0 )
 
4255
        ROM_LOAD( "7.bin",      0x0000, 0x1000, CRC(28ecfaea) SHA1(19d73ed0fdb5a873447b46e250ad6e71abe257cd) )    /* cards deck gfx, bitplane1 */
 
4256
        ROM_LOAD( "6.bin",      0x1000, 0x1000, CRC(eeec8862) SHA1(ae03aba1bd43c3ffd140f76770fc1c8cf89ea115) )    /* cards deck gfx, bitplane2 */
 
4257
        ROM_LOAD( "5.bin",      0x2000, 0x1000, CRC(2712f297) SHA1(d3cc1469d07c3febbbe4a645cd6bdb57e09cf504) )    /* cards deck gfx, bitplane3 */
 
4258
 
 
4259
        ROM_REGION( 0x0100, "proms", 0 )
 
4260
        ROM_LOAD( "82s129.9c",          0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
 
4261
ROM_END
 
4262
 
 
4263
ROM_START( brasil87 )
 
4264
        ROM_REGION( 0x10000, "maincpu", 0 )     /* brasil87.128: Brasil 87, BS clone. */
 
4265
        ROM_LOAD( "brasil87.128",       0x4000, 0x4000, CRC(6cfdaea9) SHA1(0704e61c1c573e99e130c22787b529ac5544c631) )
 
4266
 
 
4267
        ROM_REGION( 0x3000, "gfx1", 0 )
 
4268
        ROM_FILL(                       0x0000, 0x2000, 0 ) /* filling the R-G bitplanes */
 
4269
        ROM_LOAD( "4s.bin",     0x2000, 0x1000, CRC(0ac197eb) SHA1(fdf2b134c662f3c4d4a19d93a82d130ba643ace8) )    /* text layer */
 
4270
 
 
4271
        ROM_REGION( 0x3000, "gfx2", 0 )
 
4272
        ROM_LOAD( "7.bin",      0x0000, 0x1000, CRC(28ecfaea) SHA1(19d73ed0fdb5a873447b46e250ad6e71abe257cd) )    /* cards deck gfx, bitplane1 */
 
4273
        ROM_LOAD( "6.bin",      0x1000, 0x1000, CRC(eeec8862) SHA1(ae03aba1bd43c3ffd140f76770fc1c8cf89ea115) )    /* cards deck gfx, bitplane2 */
 
4274
        ROM_LOAD( "5.bin",      0x2000, 0x1000, CRC(2712f297) SHA1(d3cc1469d07c3febbbe4a645cd6bdb57e09cf504) )    /* cards deck gfx, bitplane3 */
 
4275
 
 
4276
        ROM_REGION( 0x0100, "proms", 0 )
 
4277
        ROM_LOAD( "82s129.9c",          0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
 
4278
ROM_END
 
4279
 
3961
4280
ROM_START( brasil89 )
3962
4281
        ROM_REGION( 0x10000, "maincpu", 0 )     /* brasil89.128: Brasil 89, BS clone. */
3963
4282
        ROM_LOAD( "brasil89.128",       0x4000, 0x4000, CRC(9030e0db) SHA1(d073ed0ddd3e5df6a3387e10e05ca34bc491eb35) )
3975
4294
        ROM_LOAD( "82s129.9c",          0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
3976
4295
ROM_END
3977
4296
 
 
4297
ROM_START( brasil89a )
 
4298
        ROM_REGION( 0x10000, "maincpu", 0 )     /* brasil89a.128: Brasil 89a, BS clone. */
 
4299
        ROM_LOAD( "brasil89a.128",      0x4000, 0x4000, CRC(41a93a99) SHA1(70eeaddbdd9d3a587d1330b81d21d881ab0a8c91) )
 
4300
 
 
4301
        ROM_REGION( 0x3000, "gfx1", 0 )
 
4302
        ROM_FILL(                       0x0000, 0x2000, 0 ) /* filling the R-G bitplanes */
 
4303
        ROM_LOAD( "4s.bin",     0x2000, 0x1000, CRC(0ac197eb) SHA1(fdf2b134c662f3c4d4a19d93a82d130ba643ace8) )    /* text layer */
 
4304
 
 
4305
        ROM_REGION( 0x3000, "gfx2", 0 )
 
4306
        ROM_LOAD( "7.bin",      0x0000, 0x1000, CRC(28ecfaea) SHA1(19d73ed0fdb5a873447b46e250ad6e71abe257cd) )    /* cards deck gfx, bitplane1 */
 
4307
        ROM_LOAD( "6.bin",      0x1000, 0x1000, CRC(eeec8862) SHA1(ae03aba1bd43c3ffd140f76770fc1c8cf89ea115) )    /* cards deck gfx, bitplane2 */
 
4308
        ROM_LOAD( "5.bin",      0x2000, 0x1000, CRC(2712f297) SHA1(d3cc1469d07c3febbbe4a645cd6bdb57e09cf504) )    /* cards deck gfx, bitplane3 */
 
4309
 
 
4310
        ROM_REGION( 0x0100, "proms", 0 )
 
4311
        ROM_LOAD( "82s129.9c",          0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
 
4312
ROM_END
 
4313
 
 
4314
ROM_START( brasil93 )
 
4315
        ROM_REGION( 0x10000, "maincpu", 0 )     /* brasil93.128: Brasil 93, BS clone. No lights */
 
4316
        ROM_LOAD( "brasil93.128",       0x4000, 0x4000, CRC(cc25909f) SHA1(635184022bcb8936c396cb9fcfa6367fcae906fb) )
 
4317
 
 
4318
        ROM_REGION( 0x3000, "gfx1", 0 )
 
4319
        ROM_FILL(                       0x0000, 0x2000, 0 ) /* filling the R-G bitplanes */
 
4320
        ROM_LOAD( "4s.bin",     0x2000, 0x1000, CRC(0ac197eb) SHA1(fdf2b134c662f3c4d4a19d93a82d130ba643ace8) )    /* text layer */
 
4321
 
 
4322
        ROM_REGION( 0x3000, "gfx2", 0 )
 
4323
        ROM_LOAD( "7.bin",      0x0000, 0x1000, CRC(28ecfaea) SHA1(19d73ed0fdb5a873447b46e250ad6e71abe257cd) )    /* cards deck gfx, bitplane1 */
 
4324
        ROM_LOAD( "6.bin",      0x1000, 0x1000, CRC(eeec8862) SHA1(ae03aba1bd43c3ffd140f76770fc1c8cf89ea115) )    /* cards deck gfx, bitplane2 */
 
4325
        ROM_LOAD( "5.bin",      0x2000, 0x1000, CRC(2712f297) SHA1(d3cc1469d07c3febbbe4a645cd6bdb57e09cf504) )    /* cards deck gfx, bitplane3 */
 
4326
 
 
4327
        ROM_REGION( 0x0100, "proms", 0 )
 
4328
        ROM_LOAD( "82s129.9c",          0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
 
4329
ROM_END
 
4330
 
3978
4331
ROM_START( poker91 )
3979
4332
        ROM_REGION( 0x10000, "maincpu", 0 )     /* bs_pok91.bin: Poker 91. Based on witchcrd */
3980
4333
        ROM_LOAD( "bs_pok91.bin",       0x0000, 0x8000, CRC(90c88b45) SHA1(9b5842075ece5f96a6869d7a8c874dee2b2abde2) )
4141
4494
ROM_END
4142
4495
 
4143
4496
 
 
4497
/*  Jolli Witch (german)
 
4498
    Epoxy CPU box.
 
4499
 
 
4500
    Using the whole addressing
 
4501
*/
 
4502
ROM_START( witchjol )
 
4503
        ROM_REGION( 0x10000, "maincpu", 0 )     /* inside epoxy block with the CPU */
 
4504
        ROM_LOAD( "27c256.bin", 0x8000, 0x8000, CRC(14f05e3b) SHA1(83578f6a82b0974dd0325903926b2fd0d8e5c236) )
 
4505
 
 
4506
        ROM_REGION( 0x6000, "temp", 0 )
 
4507
        ROM_LOAD( "iii.5a",     0x0000, 0x2000, CRC(5ea338da) SHA1(5e55e17689541ffb9c23e45f689dda98a79bf789) )
 
4508
        ROM_LOAD( "ii.4a",      0x2000, 0x2000, CRC(044dfac0) SHA1(721f8f57e05ddcbdb838d12fd3e81a45346ee6db) )
 
4509
        ROM_LOAD( "i.2a",       0x4000, 0x2000, CRC(d467f6e2) SHA1(6aaf4cdfb76f5efeeee45635fea120711483648e) )
 
4510
 
 
4511
        ROM_REGION( 0x1800, "gfx1", 0 )
 
4512
        ROM_FILL(                       0x0000, 0x1000, 0 )                     /* filling bitplanes */
 
4513
        ROM_COPY( "temp",       0x0000, 0x1000, 0x0800 )        /* 0000-07ff of 03.a3 - char rom, bitplane 3*/
 
4514
 
 
4515
        ROM_REGION( 0x1800, "gfx2", 0 )
 
4516
        ROM_COPY( "temp",       0x4000, 0x0000, 0x0800 )        /* 0800-0fff of 03.a3 - regular cards gfx, bitplane 3 */
 
4517
        ROM_COPY( "temp",       0x2000, 0x0800, 0x0800 )        /* 0000-07ff of 02.a2 - regular cards gfx, bitplane 2 */
 
4518
        ROM_COPY( "temp",       0x0800, 0x1000, 0x0800 )        /* 0000-07ff of 01.a1 - regular cards gfx, bitplane 1 */
 
4519
 
 
4520
        ROM_REGION( 0x1800, "gfx3", 0 )
 
4521
        ROM_COPY( "temp",       0x05000, 0x0000, 0x0800 )       /* 1800-1fff of 03.a3 - extended cards gfx, bitplane 3 */
 
4522
        ROM_COPY( "temp",       0x03000, 0x0800, 0x0800 )       /* 1000-17ff of 02.a2 - extended cards gfx, bitplane 2 */
 
4523
        ROM_COPY( "temp",       0x01800, 0x1000, 0x0800 )       /* 1000-17ff of 01.a1 - extended cards gfx, bitplane 1 */
 
4524
 
 
4525
        ROM_REGION( 0x0100, "proms", 0 )
 
4526
//  ROM_LOAD( "24s10.bin",  0x0000, 0x0100, BAD_DUMP CRC(d5018fc0) SHA1(05c67d84da0a4053bcd3b9d144643d83892470ef) )
 
4527
        ROM_LOAD( "24s10.clr",  0x0000, 0x0100, BAD_DUMP CRC(560aafa5) SHA1(a85a72f7616146eae0d00b2fedf7b053a4794d10) )
 
4528
ROM_END
 
4529
 
 
4530
/******************************************
 
4531
 
 
4532
  Wild Witch (Video Klein)
 
4533
 
 
4534
  Another evil hardware from Video Klein
 
4535
  with CPU box. Marked "1.63"
 
4536
 
 
4537
  The program ask you to install a new block
 
4538
  or retain the former buggy one.
 
4539
 
 
4540
 
 
4541
******************************************/
 
4542
 
 
4543
ROM_START( wldwitch )
 
4544
        ROM_REGION( 0x10000, "maincpu", 0 )     /* Video Klein */
 
4545
        ROM_LOAD( "hn58c256p.box",      0x8000, 0x8000, CRC(1de736a7) SHA1(e714a97999555fe0107390c8c9c2c3c1e822809a) )
 
4546
 
 
4547
        ROM_REGION( 0x18000, "temp", 0 )
 
4548
        ROM_LOAD( "03.a3",      0x00000, 0x8000, CRC(ae474414) SHA1(6dee760cee18e125791c17b562ca8aabe1f4593e) )
 
4549
        ROM_LOAD( "02.a2",      0x08000, 0x8000, CRC(f6450111) SHA1(8b44c90c62d5026ccfba88b31e1113e01c6bcf85) )
 
4550
        ROM_LOAD( "01.a1",      0x10000, 0x8000, CRC(6d644987) SHA1(26243abe051f3266e2d1743ec599d4e8bbb692e4) )
 
4551
 
 
4552
        ROM_REGION( 0x1800, "gfx1", 0 )
 
4553
        ROM_FILL(                       0x0000, 0x1000, 0 )                     /* filling bitplanes */
 
4554
        ROM_COPY( "temp",       0x0000, 0x1000, 0x0800 )        /* 0000-07ff of 03.a3 - char rom, bitplane 3*/
 
4555
 
 
4556
        ROM_REGION( 0x1800, "gfx2", 0 )
 
4557
        ROM_COPY( "temp",       0x10000, 0x0000, 0x0800 )       /* 0000-07ff of 01.a1 - regular cards gfx, bitplane 1 */
 
4558
        ROM_COPY( "temp",       0x08000, 0x0800, 0x0800 )       /* 0000-07ff of 02.a2 - regular cards gfx, bitplane 2 */
 
4559
        ROM_COPY( "temp",       0x00800, 0x1000, 0x0800 )       /* 0800-0fff of 03.a3 - regular cards gfx, bitplane 3 */
 
4560
 
 
4561
        ROM_REGION( 0x1800, "gfx3", 0 )
 
4562
        ROM_COPY( "temp",       0x11000, 0x0000, 0x0800 )       /* 1000-17ff of 01.a1 - extended cards gfx, bitplane 1 */
 
4563
        ROM_COPY( "temp",       0x09000, 0x0800, 0x0800 )       /* 1000-17ff of 02.a2 - extended cards gfx, bitplane 2 */
 
4564
        ROM_COPY( "temp",       0x01800, 0x1000, 0x0800 )       /* 1800-1fff of 03.a3 - extended cards gfx, bitplane 3 */
 
4565
 
 
4566
        ROM_REGION( 0x0100, "proms", 0 )
 
4567
//  ROM_LOAD( "24s10.bin",  0x0000, 0x0100, BAD_DUMP CRC(d5018fc0) SHA1(05c67d84da0a4053bcd3b9d144643d83892470ef) )
 
4568
        ROM_LOAD( "24s10.clr",  0x0000, 0x0100, BAD_DUMP CRC(560aafa5) SHA1(a85a72f7616146eae0d00b2fedf7b053a4794d10) )
 
4569
 
 
4570
        ROM_REGION( 0x0400, "proms2", 0 )
 
4571
        ROM_LOAD( "82s137.box", 0x0000, 0x0400, CRC(4ae3ecf5) SHA1(e1e540ae13e7ce5ac6391f325160ec997ea6cc2f) )
 
4572
ROM_END
 
4573
 
 
4574
 
4144
4575
/*********************************************
4145
4576
*                Driver Init                 *
4146
4577
*********************************************/
4186
4617
{
4187
4618
    /* $60bb, NOPing the ORA #$F0 (after read the PIA1 port B */
4188
4619
 
4189
 
//  UINT8 *ROM = machine->region("maincpu")->base();
 
4620
//  UINT8 *ROM = machine.region("maincpu")->base();
4190
4621
 
4191
4622
//  ROM[0x60bb] = 0xea;
4192
4623
//  ROM[0x60bc] = 0xea;
4216
4647
 
4217
4648
    /* Attempt to decrypt the MCU program (we're sooo close!) */
4218
4649
 
4219
 
        UINT8 *ROM = machine->region("mcu")->base();
4220
 
        int size = machine->region("mcu")->bytes();
 
4650
        UINT8 *ROM = machine.region("mcu")->base();
 
4651
        int size = machine.region("mcu")->bytes();
4221
4652
        int start = 0x0000;
4222
4653
        int i;
4223
4654
 
4229
4660
}
4230
4661
 
4231
4662
 
 
4663
static DRIVER_INIT( vkdlsa )
 
4664
{
 
4665
    /* $e097-e098, NOPing the BNE-->KILL
 
4666
       after compare with Dallas TK data
 
4667
    */
 
4668
 
 
4669
        UINT8 *ROM = machine.region("maincpu")->base();
 
4670
 
 
4671
        ROM[0xe097] = 0xea;
 
4672
        ROM[0xe098] = 0xea;
 
4673
}
 
4674
 
 
4675
static DRIVER_INIT( vkdlsb )
 
4676
{
 
4677
    /* $e87b-e87c, NOPing the BNE-->KILL
 
4678
       after compare with Dallas TK data
 
4679
    */
 
4680
 
 
4681
        UINT8 *ROM = machine.region("maincpu")->base();
 
4682
 
 
4683
        ROM[0xe87b] = 0xea;
 
4684
        ROM[0xe87c] = 0xea;
 
4685
}
 
4686
 
 
4687
static DRIVER_INIT( vkdlsc )
 
4688
{
 
4689
    /* $453a-453b, NOPing the BNE-->KILL
 
4690
       after compare with Dallas TK data
 
4691
    */
 
4692
 
 
4693
        UINT8 *ROM = machine.region("maincpu")->base();
 
4694
 
 
4695
        ROM[0x453a] = 0xea;
 
4696
        ROM[0x453b] = 0xea;
 
4697
}
 
4698
 
4232
4699
/***********************************************
4233
4700
 
4234
4701
  ICP1 Daughterboard encryption
4330
4797
GAMEL( 198?, ngolda,   pottnpkr, pottnpkr, ngold,    0,        ROT0,   "<unknown>",                "Jack Potten's Poker (NGold, set 2)",      0,                layout_goldnpkr )
4331
4798
GAMEL( 198?, ngoldb,   pottnpkr, pottnpkr, ngold,    0,        ROT0,   "<unknown>",                "Jack Potten's Poker (NGold, set 3)",      GAME_IMPERFECT_GRAPHICS, layout_goldnpkr )
4332
4799
 
4333
 
GAME(  1991, witchcrd, 0,        witchcrd, witchcrd, 0,        ROT0,   "Video Klein",              "Witch Card (Video Klein)",                GAME_NOT_WORKING )
 
4800
GAMEL( 1991, witchcrd, 0,        witchcrd, witchcrd, vkdlsc,   ROT0,   "Video Klein?",             "Witch Card (Video Klein CPU box)",        0,                layout_goldnpkr )
4334
4801
GAME(  1991, witchcda, witchcrd, witchcrd, witchcda, 0,        ROT0,   "<unknown>",                "Witch Card (Spanish, witch game, set 1)", 0 )
4335
4802
GAME(  1991, witchcdb, witchcrd, witchcrd, witchcda, 0,        ROT0,   "<unknown>",                "Witch Card (Spanish, witch game, set 2)", 0 )
4336
4803
GAME(  1991, witchcdc, witchcrd, witchcrd, witchcdc, 0,        ROT0,   "<unknown>",                "Witch Card (English, no witch game)",     0 )
4337
 
GAMEL( 1994, witchcdd, witchcrd, witchcrd, witchcdd, 0,        ROT0,   "bootleg? (Proma)",         "Witch Card (German, set 1)",              0,                layout_goldnpkr )
4338
 
GAME(  1994, witchcde, witchcrd, witchcrd, witchcde, 0,        ROT0,   "bootleg?",                 "Witch Card (German, set 2)",              GAME_NOT_WORKING )
 
4804
GAMEL( 1994, witchcdd, witchcrd, witchcrd, witchcdd, 0,        ROT0,   "Proma",                    "Witch Card (German, WC3050, set 1 )",     0,                layout_goldnpkr )
4339
4805
GAMEL( 1985, witchcdf, witchcrd, witchcrd, witchcdf, 0,        ROT0,   "PlayMan",                  "Witch Card (English, witch game, lamps)", 0,                layout_goldnpkr )
4340
4806
GAMEL( 199?, witchcdg, witchcrd, wcfalcon, witchcrd, 0,        ROT0,   "Falcon",                   "Witch Card (Falcon, enhanced sound)",     0,                layout_goldnpkr )
4341
 
GAMEL( 1994, witchcdh, witchcrd, witchcrd, witchcdd, 0,        ROT0,   "TV Game Elektronik",       "Witch Card (German, set 3, alt gfx)",     0,                layout_goldnpkr )
 
4807
GAMEL( 1994, witchcdh, witchcrd, witchcrd, witchcdd, 0,        ROT0,   "Proma",                    "Witch Card (German, WC3050, set 2 )",     0,                layout_goldnpkr )
4342
4808
GAMEL( 1991, witchgme, witchcrd, witchcrd, witchcrd, 0,        ROT0,   "Video Klein",              "Witch Game (Video Klein)",                0,                layout_goldnpkr )
 
4809
GAMEL( 1994, witchjol, witchcrd, wcrdxtnd, witchjol, vkdlsa,   ROT0,   "Video Klein?",             "Jolli Witch (Export, 6T/12T ver 1.57D)",  GAME_IMPERFECT_COLORS, layout_goldnpkr )
 
4810
GAMEL( 1994, wldwitch, witchcrd, wcrdxtnd, wldwitch, vkdlsb,   ROT0,   "Video Klein",              "Wild Witch (Export, 6T/12T ver 1.74A)",   GAME_IMPERFECT_COLORS, layout_goldnpkr )
4343
4811
 
4344
4812
GAMEL( 1990, bsuerte,  0,        witchcrd, bsuerte,  0,        ROT0,   "<unknown>",                "Buena Suerte (Spanish, set 1)",           0,                layout_goldnpkr )
4345
4813
GAMEL( 1991, bsuertea, bsuerte,  witchcrd, bsuerte,  0,        ROT0,   "<unknown>",                "Buena Suerte (Spanish, set 2)",           0,                layout_goldnpkr )
4377
4845
GAME(  1993, sloco93,  0,        witchcrd, sloco93,  0,        ROT0,   "<unknown>",                "Super Loco 93 (Spanish, set 1)",          0 )
4378
4846
GAME(  1993, sloco93a, sloco93,  witchcrd, sloco93,  0,        ROT0,   "<unknown>",                "Super Loco 93 (Spanish, set 2)",          0 )
4379
4847
GAME(  198?, maverik,  0,        witchcrd, bsuerte,  0,        ROT0,   "<unknown>",                "Maverik",                                 0 )
4380
 
GAMEL( 1989, brasil89, 0,        witchcrd, bsuerte,  0,        ROT0,   "<unknown>",                "Brasil 89",                               0,                layout_goldnpkr )
 
4848
GAMEL( 1986, brasil86, 0,        witchcrd, bsuerte,  0,        ROT0,   "<unknown>",                "Brasil 86",                               0,                layout_goldnpkr )
 
4849
GAMEL( 1987, brasil87, 0,        witchcrd, bsuerte,  0,        ROT0,   "<unknown>",                "Brasil 87",                               0,                layout_goldnpkr )
 
4850
GAMEL( 1989, brasil89, 0,        witchcrd, bsuerte,  0,        ROT0,   "<unknown>",                "Brasil 89 (set 1)",                       0,                layout_goldnpkr )
 
4851
GAMEL( 1989, brasil89a,brasil89, witchcrd, bsuerte,  0,        ROT0,   "<unknown>",                "Brasil 89 (set 2)",                       0,                layout_goldnpkr )
 
4852
GAME(  1993, brasil93, 0,        witchcrd, bsuerte,  0,        ROT0,   "<unknown>",                "Brasil 93",                               0 )                               // no lamps
4381
4853
GAME(  1991, poker91,  0,        witchcrd, poker91,  0,        ROT0,   "<unknown>",                "Poker 91",                                0 )
4382
4854
GAME(  198?, genie,    0,        genie,    genie,    0,        ROT0,   "Video Fun Games Ltd.",     "Genie",                                   0 )
4383
4855
 
4385
4857
GAME(  198?, pokerdub, 0,        pottnpkr, goldnpkr, 0,        ROT0,   "<unknown>",                "unknown French poker game",               GAME_NOT_WORKING )        // lacks of 2nd program ROM.
4386
4858
GAME(  198?, pokerduc, 0,        goldnpkr, goldnpkr, icp1db,   ROT0,   "<unknown>",                "unknown encrypted poker game",            GAME_NOT_WORKING )        // encrypted.
4387
4859
 
 
4860