summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/wildpkr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/wildpkr.cpp')
-rw-r--r--src/mame/drivers/wildpkr.cpp328
1 files changed, 328 insertions, 0 deletions
diff --git a/src/mame/drivers/wildpkr.cpp b/src/mame/drivers/wildpkr.cpp
new file mode 100644
index 00000000000..a325bde68b6
--- /dev/null
+++ b/src/mame/drivers/wildpkr.cpp
@@ -0,0 +1,328 @@
+// license:BSD-3-Clause
+// copyright-holders:Roberto Fresca
+/******************************************************************************
+
+ Wild Poker
+ TAB Austria.
+
+ Preliminary driver by Roberto Fresca.
+
+
+ Games running in this hardware:
+
+ * Wild Poker (ver. D 1.01), 199?, TAB Austria.
+
+
+ The HD63484 ACRTC support is incomplete,
+ due to the preliminary emulation state.
+
+*******************************************************************************
+
+ Hardware Notes:
+ ---------------
+
+ CPU:
+ - 1x MC68000P12 ; 68000 CPU @ 12 MHz, from Motorola.
+ - 1x D8751H ; 8751 MCU (3.6864 MHz?)
+
+ Sound device:
+ - 1x AY8930 ; Sound IC, from Yamaha.
+
+ Video:
+ - 1x HD63484CP8 @ 8MHz ; Advanced CRT Controller (ACRTC), from Hitachi Semiconductor.
+ - 1x HD63485CP64 ; Hitachi - Graphic Memory Interface Controller (GMIC).
+ - 2x HD63486CP32 ; Hitachi - Graphic Video Attribute Controller (GVAC).
+
+ Other:
+ - 1x MC68681 ; Motorola - Dual Asynchronous Receiver/Transmitter.
+ - 4x XTALs.... ; 3.6864 / 12.000 / 26.000 / 24.000 MHz.
+
+ .--------.
+ PCB Layout: --+--------+--
+ .---------------------------------------------------------------------------------------+ +-----------------------------------------------------.
+ | | DB9 | |
+ | .--------. .--------. | | .--------. |
+ | |::::::::| |::::::::| '--------' |74HCT32P| |
+ | '--------' '--------' '--------' |
+ | .--------. .---------. .----------. .--------. .----------. .----------. .--------. |
+ | |LT1084CN| |SN75116N | | MM57410N | |74HCT14P| |74HCT245P | |74HCT245P | |74HCT86P| .-------. |
+ | '--------' '---------' '----------' '--------' '----------' '----------' '--------' |XTAL 3 | |
+ | .--------. .-------. | | |
+ | .--------. .---------. .-..-. | | |DM74S04| '-------' |
+ | | PC617 | |74HCT14P | | || | .----------------. '--------' '-------' |
+ | '--------' '---------' '-''-' | inmos 8941-C | |
+ |.--. .---------. .---------. .-----------. .--------. .---------------. | IMS G176P-50 | .----------. .----------. |
+ ||..| |ULN2803A | |74HCT533P| |PC74HC245P | |74HCT125| | HYUNDAI | | | |HY53C464LS| |HY53C464LS| |
+ ||..| '---------' '---------' '-----------' '--------' | HY6264LP-10 | '----------------' '----------' '----------' |
+ ||..| .------------------------. | 9040D KOREA | .-------------. .-------------. .----------. .----------. |
+ ||..| .---------. .---------. | AY8930 /P | '---------------' | | | | |HY53C464LS| |HY53C464LS| |
+ ||..| |ULN2803A | |74HCT533P| | 9019CCA | | | | | '----------' '----------' |
+ ||..| '---------' '---------' | TAIWAN | .---------------. | IE1 U | | 9117 | .----------. .----------. |
+ ||..| '------------------------' | HYUNDAI | | HD63484CP8 | | HD63486CP32 | |HY53C464LS| |HY53C464LS| |
+ ||..| .---------. .---------. | HY6264LP-10 | | | | | '----------' '----------' |
+ ||..| |ULN2803A | |74HCT533P| .--------. .--------. | 9040D KOREA | | Japan| | Japan| .----------. .----------. |
+ ||..| '---------' '---------' .---.|8 1| |8 1| '---------------' | | | | |HY53C464LS| |HY53C464LS| |
+ |'--' | || DSW1 | | DSW2 | | | | | '----------' '----------' |
+ | .---------. .---------. '---''--------' '--------' '-------------' '-------------' |
+ |.--. |ULN2803A | |74HCT533P| |
+ ||..| '---------' '---------' .------------------------. .----------. .----------. |
+ ||..| |D8751H | |HY53C464LS| |HY53C464LS| |
+ ||..| |L0381103 | .-------------. .-------------. '----------' '----------' |
+ ||..| .--------. .---------. | VD1.00 | .------------------. | | | | .----------. .----------. |
+ ||..| |MDP1603 | |74HCT245P| '------------------------' |D27C020 | | | | | |HY53C464LS| |HY53C464LS| |
+ |'--' '--------' '---------' .-------. .-------. | | | 9109 | | 9117 | '----------' '----------' |
+ | |XTAL 1 | |XTAL 2 | | VD / 1.01 / 3 | | HD63485CP64 | | HD63486CP32 | .----------. .----------. |
+ |.--. .--------. .---------. | | | | '------------------' | | | | |HY53C464LS| |HY53C464LS| |
+ ||..| |MDP1603 | |74HCT245P| '-------' '-------' | Japan| | Japan| '----------' '----------' |
+ ||..| '--------' '---------' .------------------------. | | | | .----------. .----------. |
+ ||..| | MC68681P | | | | | |HY53C464LS| |HY53C464LS| |
+ ||..| .--------. .---------. | 2C98R | '-------------' '-------------' '----------' '----------' |
+ ||..| |MDP1603 | |74HCT245P| | QQPQ9051 | |
+ ||..| '--------' '---------' '------------------------' .------------------. .--------. .--------. |
+ ||..| .--------. .--------. |D27C020 | | | | | |
+ ||..| .--------. .---------. |8 1| |74HCT147| | | '--------' '--------' |
+ ||..| |MDP1603 | |74HCT245P| | DSW3 | '--------' | VD / 1.01 / 1 | .--------. .--------. |
+ ||..| '--------' '---------' '--------' '------------------' |74HCT138| |74HCT74P| |
+ |'--' .----------. .-------. '--------' '--------' .------.
+ | .---------------------------------------. | GAL16V8S | |74HCT74| | |
+ | .-------. | | '----------' '-------' .--------. .--------. | |
+ | | | | MC68000P12 | .--------. .------. |74HCT138| |74HCT21P| | |
+ | |Battery| | 2C91E | |74HCT04P| |XTAL 4| '--------' '--------' | |
+ | | | | QZUZ9102 | '--------' | | .--------. .--------. | |
+ | | | | | .--------. '------' |74HCT138| |74HCT161| | |
+ | '-------' '---------------------------------------' |74HCT14P| '--------' '--------' | |
+ | '--------' .-------. .--------. .--------. | |
+ | .--. .--. |74HCT08| |74HCT21 | |1 8| | |
+ | |TL| |TL| '-------' '--------' | DSW4 | | |
+ | '--' '--' ======================================== '--------' '------'
+ | | |::::::::::::::::::::::::::::::::::::| | |
+ | | |::::::::::::::::::::::::::::::::::::| | |
+ | ======================================== |
+ '------------------------------------------------------------------------------------------------------------------------------------------------------'
+
+ XTAL 1: 3.6864 MHz.
+ XTAL 2: 12.000 MHz.
+ XTAL 3: 26.000 MHz.
+ XTAL 4: 24.000 MHz.
+
+ TL: TL7705ACP
+
+
+ DSW1: DSW2: DSW3: DSW4:
+ .--------. .--------. .--------. .--------.
+ 1| oo oooo|8 1|oooooooo|8 1|oooooooo|8 1| o |8 ON
+ |--------| |--------| |--------| |--------|
+ |o o | | | | | |oo ooooo| OFF
+ '--------' '--------' '--------' '--------'
+
+
+*******************************************************************************
+
+ *** Game Notes ***
+
+ Nothing yet...
+
+
+*******************************************************************************
+
+ ---------------------------------
+ *** Memory Map (preliminary) ***
+ ---------------------------------
+
+ 00000 - 7FFFF ; ROM space.
+
+
+*******************************************************************************
+
+ DRIVER UPDATES:
+
+ [2012-06-11]
+
+ - Initial release.
+ - Pre-defined Xtals.
+ - Added ASCII PCB layout.
+ - Started a preliminary memory map.
+ - Added technical notes.
+
+
+ TODO:
+
+ - Improve memory map.
+ - ACRTC support.
+ - GFX decode.
+ - Sound support.
+ - A lot!.
+
+
+*******************************************************************************/
+
+
+#define MAIN_CLOCK XTAL_12MHz
+#define SEC_CLOCK XTAL_3.6864MHz
+#define AUX1_CLOCK XTAL_26MHz
+#define AUX2_CLOCK XTAL_24MHz
+
+#include "emu.h"
+#include "cpu/m68000/m68000.h"
+//#include "video/hd63484.h"
+#include "video/ramdac.h"
+
+
+class wildpkr_state : public driver_device
+{
+public:
+ wildpkr_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu") { }
+
+ DECLARE_DRIVER_INIT(wildpkr);
+ virtual void machine_start();
+ virtual void video_start();
+ DECLARE_PALETTE_INIT(wildpkr);
+ UINT32 screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ required_device<cpu_device> m_maincpu;
+};
+
+
+/*************************
+* Video Hardware *
+*************************/
+
+void wildpkr_state::video_start()
+{
+}
+
+UINT32 wildpkr_state::screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+{
+ return 0;
+}
+
+PALETTE_INIT_MEMBER(wildpkr_state, wildpkr)
+{
+}
+
+
+/*************************
+* ACRTC Access *
+*************************/
+
+
+/*************************
+* Misc Handlers *
+*************************/
+
+
+/*************************
+* Memory Map *
+*************************/
+
+static ADDRESS_MAP_START( wildpkr_map, AS_PROGRAM, 16, wildpkr_state )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x100000, 0x103fff) AM_RAM
+// AM_RANGE(0x800000, 0x800003) ACRTC?
+ AM_RANGE(0x800180, 0x800181) AM_READNOP // protection, puts m68k code snippets to RAM
+ AM_RANGE(0x800200, 0x800201) AM_DEVWRITE8("ramdac", ramdac_device, index_w, 0xff00)
+ AM_RANGE(0x800202, 0x800203) AM_DEVWRITE8("ramdac", ramdac_device, pal_w, 0xff00)
+ AM_RANGE(0x800204, 0x800205) AM_DEVWRITE8("ramdac", ramdac_device, mask_w, 0xff00)
+ADDRESS_MAP_END
+
+/* Unknown R/W:
+
+
+*/
+
+
+/*************************
+* Input Ports *
+*************************/
+
+static INPUT_PORTS_START( wildpkr )
+INPUT_PORTS_END
+
+
+/*************************
+* Machine Start *
+*************************/
+
+void wildpkr_state::machine_start()
+{
+/*
+ ACRTC memory:
+
+ 00000-3ffff = RAM
+ 40000-7ffff = ROM
+ 80000-bffff = unused
+ c0000-fffff = unused
+*/
+
+}
+
+
+static ADDRESS_MAP_START( ramdac_map, AS_0, 8, wildpkr_state )
+ AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w)
+ADDRESS_MAP_END
+
+
+
+/*************************
+* Machine Drivers *
+*************************/
+
+static MACHINE_CONFIG_START( wildpkr, wildpkr_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", M68000, MAIN_CLOCK)
+ MCFG_CPU_PROGRAM_MAP(wildpkr_map)
+ MCFG_CPU_VBLANK_INT_DRIVER("screen", wildpkr_state, irq1_line_hold) //guess
+
+
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
+ MCFG_SCREEN_SIZE(512, 512)
+ MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1)
+ MCFG_SCREEN_UPDATE_DRIVER(wildpkr_state, screen_update_wildpkr)
+ MCFG_SCREEN_PALETTE("palette")
+
+// MCFG_DEVICE_ADD("hd63484", HD63484, 0)
+ MCFG_RAMDAC_ADD("ramdac", ramdac_map, "palette")
+
+ MCFG_PALETTE_ADD("palette", 256)
+ MCFG_PALETTE_INIT_OWNER(wildpkr_state, wildpkr)
+
+MACHINE_CONFIG_END
+
+
+/*************************
+* Rom Load *
+*************************/
+
+ROM_START( wildpkr )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "vd_1.01_3.bin", 0x000000, 0x40000, CRC(d19d5609) SHA1(87eedb7daaa8ac33c0a73e4e849b9a0f76152261) )
+ ROM_LOAD16_BYTE( "vd_1.01_1.bin", 0x000001, 0x40000, CRC(f10644ab) SHA1(5872fe41b8c7fec5e83011abdf82a85f064b734f) )
+
+ ROM_REGION( 0x1000, "mcu", 0 )
+ ROM_LOAD( "d8751h", 0x0000, 0x1000, NO_DUMP )
+
+ ROM_REGION( 0x0200, "plds", 0 )
+ ROM_LOAD( "gal6v8s.bin", 0x0000, 0x0117, CRC(389c63a7) SHA1(4ebb26a001ed14a9e96dd268ed1c7f298f0c086b) )
+ROM_END
+
+
+/*************************
+* Driver Init *
+*************************/
+
+DRIVER_INIT_MEMBER(wildpkr_state,wildpkr)
+{
+ //HD63484_start(machine());
+}
+
+
+/*************************
+* Game Drivers *
+*************************/
+
+/* YEAR NAME PARENT MACHINE INPUT INIT ROT COMPANY FULLNAME FLAGS */
+GAME( 199?, wildpkr, 0, wildpkr, wildpkr, wildpkr_state, wildpkr, ROT0, "TAB Austria", "Wild Poker (ver. D 1.01)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING | MACHINE_UNEMULATED_PROTECTION )