Previous 199869 Revisions Next

r40032 Tuesday 28th July, 2015 at 22:59:58 UTC by David Haywood
Merge pull request #270 from mixxmaster/MXgal

galaxia.c: add technical manual and schematics links to notes, corrected speed (nw)
[hash]c128_cart.xml ibm5170_cdrom.xml msx1_cart.xml
[nl_examples]congo_bongo.c congo_bongo.csv*
[scripts/src]bus.lua netlist.lua tools.lua
[src/emu]emupal.c emupal.h
[src/emu/bus/c64]c128_partner.c* c128_partner.h* exp.c
[src/emu/bus/cbmiec]c1526.c* c1526.h* cbmiec.c
[src/emu/bus/ieee488]ieee488.c
[src/emu/bus/msx_cart]ascii.c ascii.h cartridge.c
[src/emu/bus/ti99_peb]ti_rs232.c
[src/emu/netlist]nl_setup.c
[src/emu/netlist/devices]net_lib.h
[src/emu/netlist/macro]nlm_other.c* nlm_other.h*
[src/lib/formats]flopimg.c
[src/mame]arcade.lst mess.lst
[src/mame/audio]nl_kidniki.c
[src/mame/drivers]4enraya.c aerofgt.c atarisy1.c chihiro.c deadang.c dorachan.c enigma2.c kangaroo.c m62.c midyunit.c mmagic.c namcond1.c namcos1.c nbmj8891.c nyny.c phoenix.c photon2.c r2dtank.c route16.c seattle.c shadfrce.c silvmil.c smsmcorp.c spiders.c taito_f3.c tank8.c tourvis.c unkhorse.c vegas.c
[src/mame/includes]4enraya.h kangaroo.h namcond1.h namcos1.h phoenix.h route16.h shadfrce.h spiders.h tank8.h
[src/mame/machine]jvs13551.c jvs13551.h namcond1.c namcos1.c
[src/mame/video]4enraya.c kangaroo.c route16.c shadfrce.c tank8.c
[src/mess/drivers]amstrad.c elecbowl.c hh_cop400.c hh_hmcs40.c hh_melps4.c hh_pic16.c hh_tms1k.c hh_ucom4.c mbdtower.c oric.c sdk80.c wildfire.c
[src/tools]nltool.c nlwav.c*

trunk/hash/c128_cart.xml
r248543r248544
156156      </part>
157157   </software>
158158
159   <software name="partn128">
160      <description>PARTNER 128</description>
161      <year>1985</year>
162      <publisher>Timeworks</publisher>
163      <sharedfeat name="compatibility" value="NTSC,PAL"/>
164
165      <part name="cart" interface="c64_cart">
166         <feature name="slot" value="partner128" />
167         <feature name="game" value="1" />
168         <feature name="exrom" value="1" />
169
170         <dataarea name="romh" size="0x4000">
171            <rom name="partner 128" size="0x4000" crc="686a6881" sha1="53d4bcf7aff40f1642bc143626b63beb3c8478dc" offset="0" />
172         </dataarea>
173      </part>
174
175      <part name="flop1" interface="floppy_5_25">
176         <feature name="part_id" value="Partner Diagnostic Test &amp; Program Demonstration Disk"/>
177         <dataarea name="flop" size="333744">
178            <rom name="partner 128.g64" size="287512" crc="9b2ac8d5" sha1="8143cafa623bb53b92a37d7ee2cc7d77080d80ea" offset="0" />
179         </dataarea>
180      </part>
181   </software>
159182</softwarelist>
trunk/hash/ibm5170_cdrom.xml
r248543r248544
9595      </part>
9696   </software>
9797
98  <!-- Untouched image from original CD created with an ASUS DRW-1814BLT (EAC drive sample read offset reported as +6)
99       If you subtract 0x18 (4 * 6) bytes from a .wav extracted from this CHD the audio matches a rip done with EAC (verified) -->
100   <software name="kingsq6e">
101      <description>King's Quest VI (Windows 3.1 enhanced)</description>
102      <year>1993</year>
103      <publisher>Sierra</publisher>
104
105      <part name="cdrom" interface="cdrom">
106         <diskarea name="cdrom">
107            <disk name="kings_quest_6_enhanced" sha1="0d237ee8c2d15be3b47f3676eddce41a00bca094" />
108         </diskarea>
109      </part>
110   </software>
111
112   <!-- Untouched image from original CD created with an ASUS DRW-1814BLT (EAC drive sample read offset reported as +6)
113       If you subtract 0x18 (4 * 6) bytes from a .wav extracted from this CHD the audio matches a rip done with EAC (verified) -->
114   <software name="krondor">
115      <description>Betrayal at Krondor (1994 release, CDDA)</description>
116      <year>1994</year>
117      <publisher>Dynamix</publisher>
118
119      <part name="cdrom" interface="cdrom">
120         <diskarea name="cdrom">
121            <disk name="betrayal_at_krondor" sha1="f0d0907edccfc4f6ab4f181b0d2e9a3b18f81e73" />
122         </diskarea>
123      </part>
124   </software>
125 
126   <software name="krondora" cloneof="krondor">
127      <description>Betrayal at Krondor (1998 release, no CDDA)</description>
128      <year>1998</year>
129      <publisher>Dynamix</publisher>
130
131      <part name="cdrom" interface="cdrom">
132         <diskarea name="cdrom">
133            <disk name="betrayal_at_krondor_1998" sha1="d58acdb5bc10c2ad9a4b6dd51438102785c44216" />
134         </diskarea>
135      </part>
136   </software>
137
138  <!-- various Windows CDROMs
139       so far the listed discs should all be full english language retail discs, this can be expanded later -->
140     
141   <software name="win95">
142      <description>Windows 95 (en 4.00.950)</description>
143      <year>1995</year>
144      <publisher>Microsoft</publisher>
145
146      <part name="cdrom" interface="cdrom">
147         <diskarea name="cdrom">
148            <disk name="win95_4.00.950_en" sha1="ef1b482b5f6e746b673def87724d9e7ff833ac43" />
149         </diskarea>
150      </part>
151   </software>
152
153   <software name="win95a">
154      <description>Windows 95 OSR1 (en 4.00.950.osr1)</description> <!-- aka Windows 95A -->
155      <year>1995</year>
156      <publisher>Microsoft</publisher>
157
158      <part name="cdrom" interface="cdrom">
159         <diskarea name="cdrom">
160            <disk name="win95_4.00.950_osr1_en" sha1="bc43d85ea8d0ee65b6102ac7cd425c57398c09ce" />
161         </diskarea>
162      </part>
163   </software>
164 
165   <software name="win95b">
166      <description>Windows 95 OSR2 (en 4.00.1111.osr2)</description> <!-- aka Windows 95B -->
167      <year>1995</year>
168      <publisher>Microsoft</publisher>
169
170      <part name="cdrom" interface="cdrom">
171         <diskarea name="cdrom">
172            <disk name="win95_4.00.1111_osr2_en" sha1="e15bd9a4e2c930bd4913996a2d9d11d1567635f5" />
173         </diskarea>
174      </part>
175  </software>
176 
177    <software name="win95c">
178      <description>Windows 95 OSR2.5 (en 4.03.1216.osr2.5)</description> <!-- aka Windows 95C -->
179      <year>1995</year>
180      <publisher>Microsoft</publisher>
181
182      <part name="cdrom" interface="cdrom">
183         <diskarea name="cdrom">
184            <disk name="win95_4.03.1216_osr2_5_en" sha1="b000931531cedcbb3f9a00d13d315406cf7c2d52" />
185         </diskarea>
186      </part>
187  </software>
188 
189    <software name="win98">
190      <description>Windows 98 (en 4.10.1998) (Retail Full)</description> <!-- aka Windows 98 First Edition -->
191      <year>1998</year>
192      <publisher>Microsoft</publisher>
193
194      <part name="cdrom" interface="cdrom">
195         <diskarea name="cdrom">
196            <disk name="windows 98 (en 4.10.1998 retail full)" sha1="1e725b0a7ea471e2b91500d09f242d05330b4f50" />
197         </diskarea>
198      </part>
199   </software>
200
201    <software name="win98se">
202      <description>Windows 98 Second Edition (en 4.10.2222) (Retail Full)</description>
203      <year>1998</year>
204      <publisher>Microsoft</publisher>
205
206      <part name="cdrom" interface="cdrom">
207         <diskarea name="cdrom">
208            <disk name="windows 98 se (en 4.10.2222 retail full)" sha1="3d9b3e69d03aef2ed5e54c3c73702d1e9b53255c" />
209         </diskarea>
210      </part>
211   </software>
212
213    <software name="winme">
214      <description>Windows ME (en 4.90.3000) (Retail Full)</description> <!-- aka Millennium Edition -->
215      <year>1999</year>
216      <publisher>Microsoft</publisher>
217
218      <part name="cdrom" interface="cdrom">
219         <diskarea name="cdrom">
220            <disk name="windows me (en 4.90.3000 retail full)" sha1="3bb9b89f2b5918b7dbe393d250a8f1a530a175ef" />
221         </diskarea>
222      </part>
223   </software>
224
225    <software name="win2kps4">
226      <description>Windows 2000 Professional (with Service Pack 4) (en 5.00.2195.6717)</description>
227      <year>1999</year>
228      <publisher>Microsoft</publisher>
229
230      <part name="cdrom" interface="cdrom">
231         <diskarea name="cdrom">
232            <disk name="en_win2000_pro_sp4" sha1="9344cce041f092f0194944bdc690af7df7185cf6" />
233         </diskarea>
234      </part>
235   </software>
236
98237</softwarelist>
trunk/hash/msx1_cart.xml
r248543r248544
666666      </part>
667667   </software>
668668
669   <!-- Does not seem to work at the moment -->
670   <software name="msxwritj" supported="no">
669   <!-- Code seems to work but it does not display text -->
670   <software name="msxwritj" supported="partial">
671671      <description>Japanese MSX-Write (Jpn)</description>
672672      <year>1986</year>
673673      <publisher>ASCII</publisher>
674674      <info name="alt_title" value="日本語MSX-Write" />
675675      <part name="cart" interface="msx_cart">
676676         <feature name="pcb" value="MSX WRITE 900178B" />
677         <feature name="slot" value="ascii8" />
677         <feature name="slot" value="msxwrite" />
678678         <feature name="mapper" value="M60002-0125SP" />
679679         <dataarea name="rom" size="524288">
680680            <rom name="225 aa 8716 zoo" size="524288" crc="ef02e4f3" sha1="4180544158a57c99162269e33e4f2c77c9fce84e" offset="0" />
trunk/nl_examples/congo_bongo.c
r248543r248544
3434// .END
3535
3636   SOLVER(Solver, 24000)
37   PARAM(Solver.ACCURACY, 1e-7)
37   PARAM(Solver.ACCURACY, 1e-9)
3838   PARAM(Solver.NR_LOOPS, 90)
3939   PARAM(Solver.SOR_FACTOR, 0.001)
4040   PARAM(Solver.GS_LOOPS, 1)
r248543r248544
5050   //CLOCK(I_CONGA_H0, 2)
5151   TTL_INPUT(I_CONGA_L0, 0)
5252   //CLOCK(I_CONGA_L0, 2)
53   //TTL_INPUT(I_GORILLA0, 0)
54   CLOCK(I_GORILLA0, 2)
53   TTL_INPUT(I_GORILLA0, 0)
54   //CLOCK(I_GORILLA0, 2)
5555   TTL_INPUT(I_RIM0, 0)
5656   //CLOCK(I_RIM0, 2)
5757
trunk/nl_examples/congo_bongo.csv
r0r248544
10.000,I_GORILLA0.IN,0
20.500,I_GORILLA0.IN,1
30.510,I_GORILLA0.IN,0
41.000,I_BASS_DRUM0.IN,1
51.010,I_BASS_DRUM0.IN,0
61.500,I_CONGA_H0.IN,1
71.510,I_CONGA_H0.IN,0
82.000,I_CONGA_L0.IN,1
92.100,I_CONGA_L0.IN,0
102.500,I_RIM0.IN,1
112.610,I_RIM0.IN,0
123.000,I_RIM0.IN,1
133.110,I_RIM0.IN,0
144.000,I_GORILLA0.IN,1
154.010,I_GORILLA0.IN,0
trunk/scripts/src/bus.lua
r248543r248544
240240      MAME_DIR .. "src/emu/bus/c64/exp.h",
241241      MAME_DIR .. "src/emu/bus/c64/c128_comal80.c",
242242      MAME_DIR .. "src/emu/bus/c64/c128_comal80.h",
243      MAME_DIR .. "src/emu/bus/c64/c128_partner.c",
244      MAME_DIR .. "src/emu/bus/c64/c128_partner.h",
243245      MAME_DIR .. "src/emu/bus/c64/comal80.c",
244246      MAME_DIR .. "src/emu/bus/c64/comal80.h",
245247      MAME_DIR .. "src/emu/bus/c64/cpm.c",
r248543r248544
435437      MAME_DIR .. "src/emu/bus/cbmiec/vic1515.h",
436438      MAME_DIR .. "src/emu/bus/cbmiec/vic1520.c",
437439      MAME_DIR .. "src/emu/bus/cbmiec/vic1520.h",
440      MAME_DIR .. "src/emu/bus/cbmiec/c1526.c",
441      MAME_DIR .. "src/emu/bus/cbmiec/c1526.h",
438442   }
439443end
440444
trunk/scripts/src/netlist.lua
r248543r248544
158158    MAME_DIR .. "src/emu/netlist/macro/nlm_cd4xxx.h",
159159    MAME_DIR .. "src/emu/netlist/macro/nlm_opamp.c",
160160    MAME_DIR .. "src/emu/netlist/macro/nlm_opamp.h",
161    MAME_DIR .. "src/emu/netlist/macro/nlm_other.c",
162    MAME_DIR .. "src/emu/netlist/macro/nlm_other.h",
161163}
trunk/scripts/src/tools.lua
r248543r248544
619619}
620620
621621--------------------------------------------------
622-- nlwav
623--------------------------------------------------
624
625project("nlwav")
626uuid ("7c5396d1-2a1a-4c93-bed6-6b8fa182054a")
627kind "ConsoleApp"
628
629options {
630  "ForceCPP",
631}
632
633flags {
634  "Symbols", -- always include minimum symbols for executables 
635}
636
637if _OPTIONS["SEPARATE_BIN"]~="1" then
638  targetdir(MAME_DIR)
639end
640
641links {
642  "utils",
643  "ocore_" .. _OPTIONS["osd"],
644  "netlist",
645}
646
647includedirs {
648  MAME_DIR .. "src/osd",
649  MAME_DIR .. "src/lib/util",
650  MAME_DIR .. "src/emu/netlist",
651}
652
653files {
654  MAME_DIR .. "src/tools/nlwav.c",
655}
656
657--------------------------------------------------
622658-- castool
623659--------------------------------------------------
624660
trunk/src/emu/bus/c64/c128_partner.c
r0r248544
1// license:BSD-3-Clause
2// copyright-holders:Curt Coder
3/**********************************************************************
4
5    Timeworks PARTNER 128 cartridge emulation
6
7**********************************************************************/
8
9/*
10
11    PCB Layout
12    ----------
13
14   |---------------|
15   |LS74  SW     CN|
16   |LS09      LS273|
17   |LS139   RAM    |
18   |LS133          |
19   |     LS240     |
20   |LS33    ROM    |
21   |LS09           |
22    |||||||||||||||
23
24    ROM     - Toshiba TMM24128AP 16Kx8 EPROM (blank label)
25    RAM     - Sony CXK5864PN-15L 8Kx8 SRAM
26    SW      - push button switch
27    CN      - lead out to joystick port dongle
28
29*/
30
31#include "c128_partner.h"
32
33
34
35//**************************************************************************
36//  DEVICE DEFINITIONS
37//**************************************************************************
38
39const device_type C128_PARTNER = &device_creator<partner128_t>;
40
41
42//-------------------------------------------------
43//  INPUT_PORTS( c128_partner )
44//-------------------------------------------------
45
46WRITE_LINE_MEMBER( partner128_t::nmi_w )
47{
48}
49
50static INPUT_PORTS_START( c128_partner )
51   PORT_START("NMI")
52   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Menu") PORT_CODE(KEYCODE_F11) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, partner128_t, nmi_w)
53INPUT_PORTS_END
54
55
56//-------------------------------------------------
57//  input_ports - device-specific input ports
58//-------------------------------------------------
59
60ioport_constructor partner128_t::device_input_ports() const
61{
62   return INPUT_PORTS_NAME( c128_partner );
63}
64
65
66
67//**************************************************************************
68//  LIVE DEVICE
69//**************************************************************************
70
71//-------------------------------------------------
72//  partner128_t - constructor
73//-------------------------------------------------
74
75partner128_t::partner128_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
76   device_t(mconfig, C128_PARTNER, "PARTNER 128", tag, owner, clock, "c128_partner", __FILE__),
77   device_c64_expansion_card_interface(mconfig, *this),
78   device_vcs_control_port_interface(mconfig, *this),
79   m_ram(*this, "ram")
80{
81}
82
83
84//-------------------------------------------------
85//  device_start - device-specific startup
86//-------------------------------------------------
87
88void partner128_t::device_start()
89{
90   // allocate memory
91   m_ram.allocate(0x2000);
92}
93
94
95//-------------------------------------------------
96//  device_reset - device-specific reset
97//-------------------------------------------------
98
99void partner128_t::device_reset()
100{
101}
102
103
104//-------------------------------------------------
105//  c64_cd_r - cartridge data read
106//-------------------------------------------------
107
108UINT8 partner128_t::c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2)
109{
110   return data;
111}
112
113
114//-------------------------------------------------
115//  c64_cd_w - cartridge data write
116//-------------------------------------------------
117
118void partner128_t::c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2)
119{
120}
121
122
123//-------------------------------------------------
124//  c64_game_r - GAME read
125//-------------------------------------------------
126
127int partner128_t::c64_game_r(offs_t offset, int sphi2, int ba, int rw)
128{
129   return 1;
130}
trunk/src/emu/bus/c64/c128_partner.h
r0r248544
1// license:BSD-3-Clause
2// copyright-holders:Curt Coder
3/**********************************************************************
4
5    Timeworks PARTNER 128 cartridge emulation
6
7**********************************************************************/
8
9#pragma once
10
11#ifndef __C128_PARTNER__
12#define __C128_PARTNER__
13
14#include "emu.h"
15#include "bus/c64/exp.h"
16#include "bus/vcs_ctrl/ctrl.h"
17
18
19
20//**************************************************************************
21//  TYPE DEFINITIONS
22//**************************************************************************
23
24// ======================> partner128_t
25
26class partner128_t : public device_t,
27                public device_c64_expansion_card_interface,
28                public device_vcs_control_port_interface
29{
30public:
31   // construction/destruction
32   partner128_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
33
34   // optional information overrides
35   virtual ioport_constructor device_input_ports() const;
36
37   DECLARE_WRITE_LINE_MEMBER( nmi_w );
38
39protected:
40   // device-level overrides
41   virtual void device_start();
42   virtual void device_reset();
43
44   // device_c64_expansion_card_interface overrides
45   virtual UINT8 c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2);
46   virtual void c64_cd_w(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2);
47   virtual int c64_game_r(offs_t offset, int sphi2, int ba, int rw);
48
49   // device_vcs_control_port_interface overrides
50
51private:
52   optional_shared_ptr<UINT8> m_ram;
53};
54
55
56// device type definition
57extern const device_type C128_PARTNER;
58
59
60#endif
trunk/src/emu/bus/c64/exp.c
r248543r248544
308308// slot devices
309309#include "16kb.h"
310310#include "c128_comal80.h"
311#include "c128_partner.h"
311312#include "comal80.h"
312313#include "cpm.h"
313314#include "currah_speech.h"
r248543r248544
420421   SLOT_INTERFACE_INTERNAL("ocean", C64_OCEAN)
421422   SLOT_INTERFACE_INTERNAL("pagefox", C64_PAGEFOX)
422423   SLOT_INTERFACE_INTERNAL("partner", C64_PARTNER)
424   SLOT_INTERFACE_INTERNAL("partner128", C128_PARTNER)
423425   SLOT_INTERFACE_INTERNAL("prophet64", C64_PROPHET64)
424426   SLOT_INTERFACE_INTERNAL("ps64", C64_PS64)
425427   SLOT_INTERFACE_INTERNAL("rex", C64_REX)
trunk/src/emu/bus/cbmiec/c1526.c
r0r248544
1// license:BSD-3-Clause
2// copyright-holders:Curt Coder
3/**********************************************************************
4
5    Commodore 1526/MPS-802/4023 Printer emulation
6
7**********************************************************************/
8
9#include "c1526.h"
10
11
12
13//**************************************************************************
14//  MACROS / CONSTANTS
15//**************************************************************************
16
17#define M6504_TAG "u7d"
18
19
20
21//**************************************************************************
22//  DEVICE DEFINITIONS
23//**************************************************************************
24
25const device_type C1526 = &device_creator<c1526_t>;
26const device_type MPS802 = &device_creator<c1526_t>;
27const device_type C4023 = &device_creator<c4023_t>;
28
29
30//-------------------------------------------------
31//  ROM( c1526 )
32//-------------------------------------------------
33
34ROM_START( c1526 )
35   ROM_REGION( 0x2000, M6504_TAG, 0 )
36   ROM_SYSTEM_BIOS( 0, "r05", "Revision 5" )
37   ROMX_LOAD( "325341-05.u8d", 0x0000, 0x2000, CRC(3ef63c59) SHA1(a71be83a476d2777d33dddb0103c036a047975ba), ROM_BIOS(1) )
38   ROM_SYSTEM_BIOS( 1, "r07c", "Revision 7c" )
39   ROMX_LOAD( "325341-08.u8d", 0x0000, 0x2000, CRC(38f85b4a) SHA1(25880091979b21fdaf713b53ef2f1cb8063a3505), ROM_BIOS(2) )
40   ROM_SYSTEM_BIOS( 2, "r07b", "Revision 7b (Swe/Fin)" )
41   ROMX_LOAD( "cbm 1526 vers. 1.0 skand.gen.u8d", 0x0000, 0x2000, CRC(21051f69) SHA1(7e622fc39985ebe9333d2b546b3c85fd6ab17a53), ROM_BIOS(3) )
42   ROM_SYSTEM_BIOS( 3, "grafik", "MPS802 GrafikROM II v60.12" )
43   ROMX_LOAD( "mps802 grafikrom ii v60.12.u8d", 0x0000, 0x2000, CRC(9f5e6b18) SHA1(8b7f620a8f85e250b142d72b812a67fd0e292d68), ROM_BIOS(4) )
44ROM_END
45
46
47//-------------------------------------------------
48//  rom_region - device-specific ROM region
49//-------------------------------------------------
50
51const rom_entry *c1526_t::device_rom_region() const
52{
53   return ROM_NAME( c1526 );
54}
55
56
57//-------------------------------------------------
58//  ROM( c4023 )
59//-------------------------------------------------
60
61ROM_START( c4023 )
62   ROM_REGION( 0x2000, M6504_TAG, 0 )
63   ROM_LOAD( "325360-03.u8d", 0x0000, 0x2000, CRC(c6bb0977) SHA1(7a8c43d2e205f58d83709c04bc7795602a892ddd) )
64ROM_END
65
66
67//-------------------------------------------------
68//  rom_region - device-specific ROM region
69//-------------------------------------------------
70
71const rom_entry *c4023_t::device_rom_region() const
72{
73   return ROM_NAME( c4023 );
74}
75
76
77//-------------------------------------------------
78//  ADDRESS_MAP( c1526_mem )
79//-------------------------------------------------
80
81static ADDRESS_MAP_START( c1526_mem, AS_PROGRAM, 8, c1526_base_t )
82   AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION(M6504_TAG, 0)
83ADDRESS_MAP_END
84
85
86//-------------------------------------------------
87//  MACHINE_DRIVER( c1526 )
88//-------------------------------------------------
89
90static MACHINE_CONFIG_FRAGMENT( c1526 )
91   MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_4MHz/4)
92   MCFG_CPU_PROGRAM_MAP(c1526_mem)
93MACHINE_CONFIG_END
94
95
96//-------------------------------------------------
97//  machine_config_additions - device-specific
98//  machine configurations
99//-------------------------------------------------
100
101machine_config_constructor c1526_t::device_mconfig_additions() const
102{
103   return MACHINE_CONFIG_NAME( c1526 );
104}
105
106
107//-------------------------------------------------
108//  MACHINE_DRIVER( c4023 )
109//-------------------------------------------------
110
111static MACHINE_CONFIG_FRAGMENT( c4023 )
112   MCFG_CPU_ADD(M6504_TAG, M6504, XTAL_4MHz/4)
113   MCFG_CPU_PROGRAM_MAP(c1526_mem)
114MACHINE_CONFIG_END
115
116
117//-------------------------------------------------
118//  machine_config_additions - device-specific
119//  machine configurations
120//-------------------------------------------------
121
122machine_config_constructor c4023_t::device_mconfig_additions() const
123{
124   return MACHINE_CONFIG_NAME( c4023 );
125}
126
127
128//-------------------------------------------------
129//  INPUT_PORTS( c1526 )
130//-------------------------------------------------
131
132static INPUT_PORTS_START( c1526 )
133INPUT_PORTS_END
134
135
136//-------------------------------------------------
137//  input_ports - device-specific input ports
138//-------------------------------------------------
139
140ioport_constructor c1526_t::device_input_ports() const
141{
142   return INPUT_PORTS_NAME( c1526 );
143}
144
145
146//-------------------------------------------------
147//  INPUT_PORTS( c4023 )
148//-------------------------------------------------
149
150static INPUT_PORTS_START( c4023 )
151INPUT_PORTS_END
152
153
154//-------------------------------------------------
155//  input_ports - device-specific input ports
156//-------------------------------------------------
157
158ioport_constructor c4023_t::device_input_ports() const
159{
160   return INPUT_PORTS_NAME( c4023 );
161}
162
163
164
165//**************************************************************************
166//  LIVE DEVICE
167//**************************************************************************
168
169//-------------------------------------------------
170//  c1526_base_t - constructor
171//-------------------------------------------------
172
173c1526_base_t:: c1526_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source) :
174   device_t(mconfig, type, name, tag, owner, clock, shortname, source)
175{
176}
177
178
179//-------------------------------------------------
180//  c1526_t - constructor
181//-------------------------------------------------
182
183c1526_t::c1526_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
184   c1526_base_t(mconfig, C1526, "1526", tag, owner, clock, "c1526", __FILE__),
185   device_cbm_iec_interface(mconfig, *this)
186{
187}
188
189
190//-------------------------------------------------
191//  c4023_t - constructor
192//-------------------------------------------------
193
194c4023_t::c4023_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
195   c1526_base_t(mconfig, C4023, "4023", tag, owner, clock, "c4023", __FILE__),
196   device_ieee488_interface(mconfig, *this)
197{
198}
199
200
201//-------------------------------------------------
202//  device_start - device-specific startup
203//-------------------------------------------------
204
205void c1526_base_t::device_start()
206{
207}
208
209
210//-------------------------------------------------
211//  device_reset - device-specific reset
212//-------------------------------------------------
213
214void c1526_base_t::device_reset()
215{
216}
217
218
219//-------------------------------------------------
220//  cbm_iec_atn -
221//-------------------------------------------------
222
223void c1526_t::cbm_iec_atn(int state)
224{
225}
226
227
228//-------------------------------------------------
229//  cbm_iec_data -
230//-------------------------------------------------
231
232void c1526_t::cbm_iec_data(int state)
233{
234}
235
236
237//-------------------------------------------------
238//  cbm_iec_reset -
239//-------------------------------------------------
240
241void c1526_t::cbm_iec_reset(int state)
242{
243   if (!state)
244   {
245      device_reset();
246   }
247}
248
249
250//-------------------------------------------------
251//  ieee488_atn_w -
252//-------------------------------------------------
253
254void c4023_t::ieee488_atn(int state)
255{
256}
257
258
259//-------------------------------------------------
260//  ieee488_ifc_w -
261//-------------------------------------------------
262
263void c4023_t::ieee488_ifc(int state)
264{
265   if (!state)
266   {
267      device_reset();
268   }
269}
trunk/src/emu/bus/cbmiec/c1526.h
r0r248544
1// license:BSD-3-Clause
2// copyright-holders:Curt Coder
3/**********************************************************************
4
5    Commodore 1526/MPS-802/4023 Printer emulation
6
7**********************************************************************/
8
9#pragma once
10
11#ifndef __C1526__
12#define __C1526__
13
14#include "emu.h"
15#include "cbmiec.h"
16#include "bus/ieee488/ieee488.h"
17#include "cpu/m6502/m6504.h"
18
19
20
21//**************************************************************************
22//  TYPE DEFINITIONS
23//**************************************************************************
24
25// ======================> c1526_base_t
26
27class c1526_base_t :  public device_t
28{
29public:
30   // construction/destruction
31   c1526_base_t(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
32
33protected:
34   // device-level overrides
35   virtual void device_start();
36   virtual void device_reset();
37};
38
39
40// ======================> c1526_t
41
42class c1526_t :  public c1526_base_t,
43             public device_cbm_iec_interface
44{
45public:
46   // construction/destruction
47   c1526_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
48
49   // optional information overrides
50   virtual machine_config_constructor device_mconfig_additions() const;
51   virtual ioport_constructor device_input_ports() const;
52   virtual const rom_entry *device_rom_region() const;
53
54protected:
55   // device_cbm_iec_interface overrides
56   void cbm_iec_atn(int state);
57   void cbm_iec_data(int state);
58   void cbm_iec_reset(int state);
59};
60
61
62// ======================> c4023_t
63
64class c4023_t :  public c1526_base_t,
65             public device_ieee488_interface
66{
67public:
68   // construction/destruction
69   c4023_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
70
71   // optional information overrides
72   virtual machine_config_constructor device_mconfig_additions() const;
73   virtual ioport_constructor device_input_ports() const;
74   virtual const rom_entry *device_rom_region() const;
75
76protected:
77   // device_ieee488_interface overrides
78   virtual void ieee488_atn(int state);
79   virtual void ieee488_ifc(int state);
80};
81
82
83// device type definition
84extern const device_type C1526;
85extern const device_type MPS802;
86extern const device_type C4023;
87
88
89
90#endif
trunk/src/emu/bus/cbmiec/cbmiec.c
r248543r248544
494494#include "serialbox.h"
495495#include "vic1515.h"
496496#include "vic1520.h"
497#include "c1526.h"
497498
498499SLOT_INTERFACE_START( cbm_iec_devices )
499500   SLOT_INTERFACE("c1540", C1540)
r248543r248544
520521   SLOT_INTERFACE("nl10", C64_NL10_INTERFACE)
521522   SLOT_INTERFACE("vic1515", VIC1515)
522523   SLOT_INTERFACE("vic1520", VIC1520)
524   SLOT_INTERFACE("c1526", C1526)
525   SLOT_INTERFACE("mps802", MPS802)
523526SLOT_INTERFACE_END
trunk/src/emu/bus/ieee488/ieee488.c
r248543r248544
368368//-------------------------------------------------
369369
370370// slot devices
371#include "bus/cbmiec/c1526.h"
371372#include "c2031.h"
372373#include "c2040.h"
373374#include "c8050.h"
r248543r248544
391392   SLOT_INTERFACE("softbox", SOFTBOX)
392393   SLOT_INTERFACE("hardbox", HARDBOX)
393394   SLOT_INTERFACE("shark", SHARK)
395   SLOT_INTERFACE("c4023", C4023)
394396SLOT_INTERFACE_END
trunk/src/emu/bus/msx_cart/ascii.c
r248543r248544
88const device_type MSX_CART_ASCII16 = &device_creator<msx_cart_ascii16>;
99const device_type MSX_CART_ASCII8_SRAM = &device_creator<msx_cart_ascii8_sram>;
1010const device_type MSX_CART_ASCII16_SRAM = &device_creator<msx_cart_ascii16_sram>;
11const device_type MSX_CART_MSXWRITE = &device_creator<msx_cart_msxwrite>;
1112
1213
1314msx_cart_ascii8::msx_cart_ascii8(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
r248543r248544
441442      }
442443   }
443444}
445
446
447
448msx_cart_msxwrite::msx_cart_msxwrite(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
449   : device_t(mconfig, MSX_CART_MSXWRITE, "MSX Cartridge - MSXWRITE", tag, owner, clock, "msx_cart_msxwrite", __FILE__)
450   , msx_cart_interface(mconfig, *this)
451   , m_bank_mask(0)
452{
453   for (int i = 0; i < 2; i++)
454   {
455      m_selected_bank[i] = 0;
456      m_bank_base[i] = NULL;
457   }
458}
459
460
461void msx_cart_msxwrite::device_start()
462{
463   save_item(NAME(m_selected_bank));
464
465   machine().save().register_postload(save_prepost_delegate(FUNC(msx_cart_msxwrite::restore_banks), this));
466}
467
468
469void msx_cart_msxwrite::restore_banks()
470{
471   for (int i = 0; i < 2; i++)
472   {
473      m_bank_base[i] = get_rom_base() + (m_selected_bank[i] & m_bank_mask) * 0x4000;
474   }
475}
476
477
478void msx_cart_msxwrite::device_reset()
479{
480   for (int i = 0; i < 2; i++)
481   {
482      m_selected_bank[i] = 0;
483   }
484}
485
486
487void msx_cart_msxwrite::initialize_cartridge()
488{
489   UINT32 size = get_rom_size();
490
491   if ( size > 256 * 0x4000 )
492   {
493      fatalerror("msxwrite: ROM is too big\n");
494   }
495
496   UINT16 banks = size / 0x4000;
497
498   if (size != banks * 0x4000 || (~(banks - 1) % banks))
499   {
500      fatalerror("msxwrite: Invalid ROM size\n");
501   }
502
503   m_bank_mask = banks - 1;
504
505   restore_banks();
506}
507
508
509READ8_MEMBER(msx_cart_msxwrite::read_cart)
510{
511   if ( offset >= 0x4000 && offset < 0xC000 )
512   {
513      return m_bank_base[offset >> 15][offset & 0x3fff];
514   }
515   return 0xff;
516}
517
518
519WRITE8_MEMBER(msx_cart_msxwrite::write_cart)
520{
521   // The rom writes to 6fff and 7fff for banking, unknown whether
522   // other locations also trigger banking.
523   switch (offset)
524   {
525      case 0x6fff:
526         m_selected_bank[0] = data;
527         m_bank_base[0] = get_rom_base() + (m_selected_bank[0] & m_bank_mask) * 0x4000;
528         break;
529
530      case 0x7fff:
531         m_selected_bank[1] = data;
532         m_bank_base[1] = get_rom_base() + (m_selected_bank[1] & m_bank_mask) * 0x4000;
533         break;
534   }
535}
536
trunk/src/emu/bus/msx_cart/ascii.h
r248543r248544
1010extern const device_type MSX_CART_ASCII16;
1111extern const device_type MSX_CART_ASCII8_SRAM;
1212extern const device_type MSX_CART_ASCII16_SRAM;
13extern const device_type MSX_CART_MSXWRITE;
1314
1415
1516class msx_cart_ascii8 : public device_t
r248543r248544
114115};
115116
116117
118class msx_cart_msxwrite : public device_t
119                  , public msx_cart_interface
120{
121public:
122   msx_cart_msxwrite(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
123
124   // device-level overrides
125   virtual void device_start();
126   virtual void device_reset();
127
128   virtual void initialize_cartridge();
129
130   virtual DECLARE_READ8_MEMBER(read_cart);
131   virtual DECLARE_WRITE8_MEMBER(write_cart);
132
133   void restore_banks();
134
135private:
136   UINT8 m_bank_mask;
137   UINT8 m_selected_bank[2];
138   UINT8 *m_bank_base[2];
139};
140
117141#endif
trunk/src/emu/bus/msx_cart/cartridge.c
r248543r248544
4545   SLOT_INTERFACE_INTERNAL("korean_80in1", MSX_CART_KOREAN_80IN1)
4646   SLOT_INTERFACE_INTERNAL("korean_90in1", MSX_CART_KOREAN_90IN1)
4747   SLOT_INTERFACE_INTERNAL("korean_126in1", MSX_CART_KOREAN_126IN1)
48   SLOT_INTERFACE_INTERNAL("msxwrite", MSX_CART_MSXWRITE)
4849   SLOT_INTERFACE_INTERNAL("sound_snatcher", MSX_CART_SOUND_SNATCHER)
4950   SLOT_INTERFACE_INTERNAL("sound_sdsnatch", MSX_CART_SOUND_SDSNATCHER)
5051   SLOT_INTERFACE_INTERNAL("msxaud_hxmu900", MSX_CART_MSX_AUDIO_HXMU900)
trunk/src/emu/bus/ti99_peb/ti_rs232.c
r248543r248544
230230{
231231   ti_rs232_pio_device* card = static_cast<ti_rs232_pio_device*>(owner());
232232
233   /* tell whether the image is readable */
233   // tell whether the image is readable
234234   card->m_pio_readable = !has_been_created();
235   /* tell whether the image is writable */
235   // tell whether the image is writable
236236   card->m_pio_writable = !is_readonly();
237237
238238   if (card->m_pio_write && card->m_pio_writable)
239      card->m_pio_handshakein = false;    /* receiver ready */
239      card->m_pio_handshakein = false;    // receiver ready
240240   else
241241      card->m_pio_handshakein = true;
242242
r248543r248544
10251025   // Prepare the receive buffers
10261026   m_recvbuf[0] = global_alloc_array(UINT8, 512);
10271027   m_recvbuf[1] = global_alloc_array(UINT8, 512);
1028   m_pio_write = true; // required for call_load of pio_attached_device
1029   m_pio_writable = false;
1030   m_pio_handshakein = false;
10281031}
10291032
10301033void ti_rs232_pio_device::device_stop()
r248543r248544
10381041   m_pio_direction_in = false;
10391042   m_pio_handshakeout = false;
10401043   m_pio_spareout = false;
1041   m_pio_writable = false;
10421044   m_flag0 = false;
10431045
10441046   set_bit(0, CTS, 0);
10451047   set_bit(1, CTS, 0);
10461048
10471049   m_led = false;
1048   m_pio_write = true;
10491050   m_recv_mode[0] = RECV_MODE_NORMAL;
10501051   m_recv_mode[1] = RECV_MODE_NORMAL;
10511052
trunk/src/emu/emupal.c
r248543r248544
816816
817817
818818/*-------------------------------------------------
819    3bit_rgb - 8-color rgb
820-------------------------------------------------*/
821
822void palette_device::palette_init_3bit_rgb(palette_device &palette)
823{
824   for (int i = 0; i < 8; i++)
825      palette.set_pen_color(i, rgb_t(pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2)));
826}
827
828
829/*-------------------------------------------------
830    3bit_bgr - 8-color rgb
831-------------------------------------------------*/
832
833void palette_device::palette_init_3bit_bgr(palette_device &palette)
834{
835   for (int i = 0; i < 8; i++)
836      palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)));
837}
838
839
840/*-------------------------------------------------
819841    RRRR_GGGG_BBBB - standard 4-4-4 palette,
820842    assuming the commonly used resistor values:
821843
trunk/src/emu/emupal.h
r248543r248544
232232   MCFG_PALETTE_ADD(_tag, 2) \
233233   palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_monochrome_yellow), downcast<palette_device *>(device)));
234234
235#define MCFG_PALETTE_ADD_3BIT_RGB(_tag) \
236   MCFG_PALETTE_ADD(_tag, 8) \
237   palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_rgb), downcast<palette_device *>(device)));
238
239#define MCFG_PALETTE_ADD_3BIT_BGR(_tag) \
240   MCFG_PALETTE_ADD(_tag, 8) \
241   palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_3bit_bgr), downcast<palette_device *>(device)));
242
235243#define MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB(_tag) \
236244   MCFG_PALETTE_ADD(_tag, 32768) \
237245   palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_RRRRRGGGGGBBBBB), downcast<palette_device *>(device)));
r248543r248544
396404   void palette_init_monochrome_green(palette_device &palette);
397405   void palette_init_monochrome_green_highlight(palette_device &palette);
398406   void palette_init_monochrome_yellow(palette_device &palette);
407   void palette_init_3bit_rgb(palette_device &palette);
408   void palette_init_3bit_bgr(palette_device &palette);
399409   void palette_init_RRRRGGGGBBBB_proms(palette_device &palette);
400410   void palette_init_RRRRRGGGGGBBBBB(palette_device &palette);
401411   void palette_init_BBBBBGGGGGRRRRR(palette_device &palette);
trunk/src/emu/netlist/devices/net_lib.h
r248543r248544
5959#include "../macro/nlm_cd4xxx.h"
6060#include "../macro/nlm_ttl74xx.h"
6161#include "../macro/nlm_opamp.h"
62#include "../macro/nlm_other.h"
6263
6364#include "../analog/nld_bjt.h"
6465#include "../analog/nld_fourterm.h"
trunk/src/emu/netlist/macro/nlm_other.c
r0r248544
1
2#include "nlm_other.h"
3
4#include "devices/nld_truthtable.h"
5#include "devices/nld_system.h"
6
7/*
8 *   MC14584B: Hex Schmitt Trigger
9 *             ON Semiconductor
10 *
11 *          +--------------+
12 *       A1 |1     ++    14| VCC
13 *       Y1 |2           13| A6
14 *       A2 |3           12| Y6
15 *       Y2 |4  MC14584B 11| A5
16 *       A3 |5           10| Y5
17 *       Y3 |6            9| A4
18 *      GND |7            8| Y4
19 *          +--------------+
20 *
21 */
22
23NETLIST_START(MC14584B_DIP)
24   MC14584B_GATE(s1)
25   MC14584B_GATE(s2)
26   MC14584B_GATE(s3)
27   MC14584B_GATE(s4)
28   MC14584B_GATE(s5)
29   MC14584B_GATE(s6)
30
31   DUMMY_INPUT(GND)
32   DUMMY_INPUT(VCC)
33
34   DIPPINS(   /*       +--------------+      */
35      s1.A,  /*    A1 |1     ++    14| VCC  */ VCC.I,
36      s1.Q,  /*    Y1 |2           13| A6   */ s6.A,
37      s2.A,  /*    A2 |3           12| Y6   */ s6.Q,
38      s2.Q,  /*    Y2 |4    7416   11| A5   */ s5.A,
39      s3.A,  /*    A3 |5           10| Y5   */ s5.Q,
40      s3.Q,  /*    Y3 |6            9| A4   */ s4.A,
41      GND.I, /*   GND |7            8| Y4   */ s4.Q
42            /*       +--------------+      */
43   )
44NETLIST_END()
45
46NETLIST_START(otheric_lib)
47   TRUTHTABLE_START(MC14584B_GATE, 1, 1, 0, "")
48      TT_HEAD(" A | Q ")
49      TT_LINE(" 0 | 1 |100")
50      TT_LINE(" 1 | 0 |100")
51      TT_FAMILY("FAMILY(IVL=2.1 IVH=2.7 OVL=0.05 OVH=4.95 ORL=10.0 ORH=10.0)")
52   TRUTHTABLE_END()
53
54   LOCAL_LIB_ENTRY(MC14584B_DIP)
55NETLIST_END()
trunk/src/emu/netlist/macro/nlm_other.h
r0r248544
1#ifndef NLM_OTHER_H_
2#define NLM_OTHER_H_
3
4#include "../nl_setup.h"
5
6#ifndef __PLIB_PREPROCESSOR__
7
8/* ----------------------------------------------------------------------------
9 *  Netlist Macros
10 * ---------------------------------------------------------------------------*/
11
12#define MC14584B_GATE(_name)                                                   \
13      NET_REGISTER_DEV(MC14584B_GATE, _name)
14
15#define MC14584B_DIP(_name)                                                    \
16      NET_REGISTER_DEV(MC14584B_DIP, _name)
17
18
19/* ----------------------------------------------------------------------------
20 *  External declarations
21 * ---------------------------------------------------------------------------*/
22
23NETLIST_EXTERNAL(otheric_lib)
24
25#endif
26
27#endif
trunk/src/emu/netlist/nl_setup.c
r248543r248544
3030   LOCAL_SOURCE(TTL74XX_lib)
3131   LOCAL_SOURCE(CD4XXX_lib)
3232   LOCAL_SOURCE(OPAMP_lib)
33   LOCAL_SOURCE(otheric_lib)
3334
3435   INCLUDE(diode_models);
3536   INCLUDE(bjt_models);
r248543r248544
3738   INCLUDE(TTL74XX_lib);
3839   INCLUDE(CD4XXX_lib);
3940   INCLUDE(OPAMP_lib);
41   INCLUDE(otheric_lib);
4042
4143NETLIST_END()
4244
trunk/src/lib/formats/flopimg.c
r248543r248544
12741274      if(bit_r(buffer, crc->start + i))
12751275         res = res ^ (0x8000 >> ((i >> 1) & 15));
12761276   mfm_w(buffer, 16,   0, 1000, crc->write);
1277   mfm_w(buffer, 16, res, 1000, crc->write+16);
1277   mfm_w(buffer, 16, res, 1000, crc->write+32);
12781278}
12791279
12801280void floppy_image_format_t::fixup_crc_cbm(std::vector<UINT32> &buffer, const gen_crc_info *crc)
trunk/src/mame/arcade.lst
r248543r248544
593593club90sa        // (c) 1990
594594lovehous        // (c) 1990
595595hanaoji         // (c) 1991
596hanaojia        // (c) 1991
596597pstadium        // (c) 1990
597598triplew1        // (c) 1989
598599triplew2        // (c) 1990
r248543r248544
682683vautour         // bootleg (Jeutel)
683684falconz         // bootleg
684685vautourz        // bootleg
686vautourza      // bootleg (Jeutal)
685687griffon         // bootleg (Videotron)
686688nextfase        // bootleg
687689phoenixs        // bootleg (Sonic)
690phoenixass      // bootleg (Assa)
688691avefenix        // bootleg (Video Game)
689692avefenixrf      // bootleg (Recreativos Franco)
693avefenixl      // bootleg (Laguna)
690694pleiads         // (c) 1981 Tehkan
691695pleiadsb2       // bootleg
692696pleiadbl        // bootleg
r248543r248544
24922496dariusgu        // 1994.11 D87 (c) 1994 Taito America Corporation (US)
24932497dariusgx        // 1994.?? D87 (c) 1994 Taito Corporation
24942498bublbob2        // 1994.?? D90 (c) 1994 Taito Corporation Japan (World)
2499bublbob2o       // 1994.?? D90 (c) 1994 Taito Corporation Japan (World)
24952500bublbob2p       // prototype
24962501bubsymphe       // 1994.?? D90 (c) 1994 Taito Corporation Japan (Europe)
24972502bubsymphu       // 1994.10 D90 (c) 1994 Taito America Corporation (US)
r248543r248544
57305735            // 2004.12 Sega Network Taisen Mahjong MJ 2 (Rev D)
57315736ghostsqu        // 2004.12.09 Ghost Squad (Rev A)
57325737            // 2005.02 Sega Network Taisen Mahjong MJ 2 (Rev E)
5733mj2f            // 2005.02 Sega Network Taisen Mahjong MJ 2 (Rev F)
5734mj2             // 2005.02.02 Sega Network Taisen Mahjong MJ 2 (Rev G)
5738mj2             // 2005.02 Sega Network Taisen Mahjong MJ 2 (Rev F)
5739mj2g            // 2005.02.02 Sega Network Taisen Mahjong MJ 2 (Rev G)
57355740            // 2005.03 Sangokushi Taisen
57365741gundamos        // 2005.03 Gundam Battle Operating Simulator
57375742            // 2005.04 Quest of D Ver.1.20
r248543r248544
71337138roadblstc       // 136048           (c) 1986, 1987
71347139roadblstcg      // 136048           (c) 1986, 1987
71357140roadblstc1      // 136048           (c) 1986, 1987
7141roadblstgu      // 136048         (c) 1986, 1987
71367142
71377143// Atari System 2 games
71387144// Paperboy
r248543r248544
81798185mkyawdim        // bootleg
81808186mkyawdim2       // bootleg
81818187mkyawdim3       // bootleg
8188mkyawdim4       // bootleg
81828189term2           // (c) 1992 Midway
81838190term2la3        // (c) 1992 Midway
81848191term2la2        // (c) 1992 Midway
r248543r248544
82658272sfrushrk        // (c) 1996 Atari Games
82668273calspeed        // (c) 1996 Atari Games
82678274calspeeda       // (c) 1996 Atari Games
8275calspeedb       // (c) 1996 Atari Games
82688276vaportrx        // (c) 1998 Atari Games
82698277vaportrxp       // (c) 1998 Atari Games
82708278carnevil        // (c) 1998 Midway Games (v1.0.3)
r248543r248544
82738281blitz           // (c) 1997 Midway Games
82748282blitz11         // (c) 1997 Midway Games
82758283blitz99         // (c) 1998 Midway Games
8284blitz99a      // (c) 1998 Midway Games
82768285blitz2k         // (c) 1999 Midway Games
82778286hyprdriv        // (c) 1998 Midway Games
82788287
r248543r248544
82878296warfa           // (c) 1999 Atari Games
82888297nbashowt        // (c) 1998 Midway Games
82898298nbanfl          // (c) 1999 Midway Games
8299nbagold      // (c) 2000 Midway Games
82908300gauntdl         // (c) 1999 Midway Games
82918301gauntdl24       // (c) 1999 Midway Games
82928302cartfury        // (c) 2000 Midway Games
r248543r248544
84768486panicrg         // Seibu / TV-Tuning (Germany)
84778487deadang         // (c) 1988 Seibu Kaihatsu
84788488leadang         // (c) 1988 Seibu Kaihatsu
8479ghunter         // (c) 1988 Seibu Kaihatsu + Segasa/Sonic license
8489ghunter         // (c) 1988 Seibu Kaihatsu
8490ghunters        // (c) 1988 Seibu Kaihatsu + Segasa/Sonic license
84808491dynduke         // (c) 1989 Seibu Kaihatsu
84818492dyndukea        // (c) 1989 Seibu Kaihatsu
84828493dyndukej        // (c) 1989 Seibu Kaihatsu
r248543r248544
87898800pspikesu        // (c) 1991 Video System Co. (US)
87908801svolly91        // (c) 1991 Video System Co. (Japan)
87918802pspikesb        // bootleg
8803pspikesba      // bootleg
87928804spikes91        // bootleg
87938805spikes91b       // bootleg
87948806pspikesc        // bootleg
r248543r248544
1060510617bestri          // (c) F2 System
1060610618silvmil         // (c) 1995 Para
1060710619puzzlove        // (c) 1994 Para
10620puzzlovek       // (c) 1994 Para
1060810621funybubl        // (c) 1999 In Chang Electronic Co
1060910622funybublc       // (c) 1999 Comad Industries
1061010623dcheese         // (c) 1993 HAR
trunk/src/mame/audio/nl_kidniki.c
r248543r248544
1515
1616#ifndef __PLIB_PREPROCESSOR__
1717
18#define MC14584B_GATE(_name)                                                \
19      NET_REGISTER_DEV(MC14584B_GATE, _name)
20
21#define MC14584B_DIP(_name)                                                   \
22      NET_REGISTER_DEV(MC14584B_DIP, _name)
23
2418#define LM324_DIP(_name)                                                   \
2519      NET_REGISTER_DEV(LM324_DIP, _name)
2620
r248543r248544
119113
120114   LM324_DIP(XU1)
121115   LM358_DIP(XU2)
122   //SUBMODEL(LM324_DIP,XU1)
123   //SUBMODEL(LM358_DIP,XU2)
124116
125117   MC14584B_DIP(XU3)
126118
r248543r248544
219211   NET_C(XU3.6, R105.1, R106.2)
220212   #if USE_FIXED_STV
221213   //FIXME: We should have a NET_C_REMOVE
222   NET_C(/*XU3.7,*/ C69.2, C73.2, C72.2, C77.2, C67.2, C68.2, R65.2, R38.2, XU1.11, R54.2, Q4.E, R63.2, C47.2, R72.2, R67.2, R71.2, R68.2, C48.2, R46.2, C28.1, C32.1, R43.2, XU2.4, C56.1, C52.1,/* R77.2, C58.1, */ R48.2, R93.2, R94.2, R119.2, R104.2, R53.2, R34.2, R81.2, R92.2, R89.2, C33.1, R37.2, R36.1, R91.1, I_V0.Q, RV1.3)
214   NET_C(XU3.7, C69.2, C73.2, C72.2, C77.2, C67.2, C68.2, R65.2, R38.2, XU1.11, R54.2, Q4.E, R63.2, C47.2, R72.2, R67.2, R71.2, R68.2, C48.2, R46.2, C28.1, C32.1, R43.2, XU2.4, C56.1, C52.1,/* R77.2, C58.1, */ R48.2, R93.2, R94.2, R119.2, R104.2, R53.2, R34.2, R81.2, R92.2, R89.2, C33.1, R37.2, R36.1, R91.1, I_V0.Q, RV1.3)
223215   #else
224   NET_C(/*XU3.7,*/ C69.2, C73.2, C72.2, C77.2, C67.2, C68.2, R65.2, R38.2, XU1.11, R54.2, Q4.E, R63.2, C47.2, R72.2, R67.2, R71.2, R68.2, C48.2, R46.2, C28.1, C32.1, R43.2, XU2.4, C56.1, C52.1, R77.2, C58.1, R48.2, R93.2, R94.2, R119.2, R104.2, R53.2, R34.2, R81.2, R92.2, R89.2, C33.1, R37.2, R36.1, R91.1, I_V0.Q, RV1.3)
216   NET_C(XU3.7, C69.2, C73.2, C72.2, C77.2, C67.2, C68.2, R65.2, R38.2, XU1.11, R54.2, Q4.E, R63.2, C47.2, R72.2, R67.2, R71.2, R68.2, C48.2, R46.2, C28.1, C32.1, R43.2, XU2.4, C56.1, C52.1, R77.2, C58.1, R48.2, R93.2, R94.2, R119.2, R104.2, R53.2, R34.2, R81.2, R92.2, R89.2, C33.1, R37.2, R36.1, R91.1, I_V0.Q, RV1.3)
225217   #endif
226218   NET_C(XU3.8, R108.1, R107.2)
227219   NET_C(XU3.9, R108.2, C77.1)
r248543r248544
230222   NET_C(XU3.12, R98.1, R97.2)
231223   NET_C(XU3.13, R98.2, C68.1)
232224   #if USE_FIXED_STV
233   NET_C(/*XU3.14,*/ XU1.4, R66.1, R70.1, Q6.C, Q5.C, XU2.8, /* R78.1, */ R86.1, R83.1, Q3.C, I_V5.Q)
225   NET_C(XU3.14, XU1.4, R66.1, R70.1, Q6.C, Q5.C, XU2.8, /* R78.1, */ R86.1, R83.1, Q3.C, I_V5.Q)
234226   #else
235   NET_C(/*XU3.14,*/ XU1.4, R66.1, R70.1, Q6.C, Q5.C, XU2.8, R78.1, R86.1, R83.1, Q3.C, I_V5.Q)
227   NET_C(XU3.14, XU1.4, R66.1, R70.1, Q6.C, Q5.C, XU2.8, R78.1, R86.1, R83.1, Q3.C, I_V5.Q)
236228   #endif
237229   NET_C(R96.1, R102.1, R106.1, R107.1, R101.1, R97.1, R65.1, C63.2)
238230   NET_C(C63.1, R65_1.2)
r248543r248544
445437   ALIAS( 8, op1.VCC)
446438NETLIST_END()
447439
448NETLIST_START(MC14584B_DIP)
449   MC14584B_GATE(s1)
450   MC14584B_GATE(s2)
451   MC14584B_GATE(s3)
452   MC14584B_GATE(s4)
453   MC14584B_GATE(s5)
454   MC14584B_GATE(s6)
455
456   ALIAS( 1, s1.A)
457   ALIAS( 2, s1.Q)
458   ALIAS( 3, s2.A)
459   ALIAS( 4, s2.Q)
460   ALIAS( 5, s3.A)
461   ALIAS( 6, s3.Q)
462
463   ALIAS( 8, s4.Q)
464   ALIAS( 9, s4.A)
465   ALIAS(10, s5.Q)
466   ALIAS(11, s5.A)
467   ALIAS(12, s6.Q)
468   ALIAS(13, s6.A)
469NETLIST_END()
470
471440NETLIST_START(kidniki_lib)
472   TRUTHTABLE_START(MC14584B_GATE, 1, 1, 0, "")
473      TT_HEAD(" A | Q ")
474      TT_LINE(" 0 | 1 |100")
475      TT_LINE(" 1 | 0 |100")
476      TT_FAMILY("MC14584B FAMILY(IVL=2.1 IVH=2.7 OVL=0.05 OVH=4.95 ORL=10.0 ORH=10.0)")
477   TRUTHTABLE_END()
478441
479442   LOCAL_LIB_ENTRY(LM324_DIP)
480443   LOCAL_LIB_ENTRY(LM358_DIP)
481   LOCAL_LIB_ENTRY(MC14584B_DIP)
482444
483445NETLIST_END()
484446
trunk/src/mame/drivers/4enraya.c
r248543r248544
442442
443443   MCFG_GFXDECODE_ADD("gfxdecode", "palette", 4enraya)
444444
445   MCFG_PALETTE_ADD("palette", 8)
446   MCFG_PALETTE_INIT_OWNER(_4enraya_state, _4enraya)
445   MCFG_PALETTE_ADD_3BIT_RGB("palette")
447446
448447   /* sound hardware */
449448   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/aerofgt.c
r248543r248544
20152015   ROM_COPY( "user1", 0x060000, 0x0e0000, 0x020000)
20162016ROM_END
20172017
2018ROM_START( pspikesba )
2019   ROM_REGION( 0x40000, "maincpu", 0 ) /* 68000 code */
2020   ROM_LOAD16_BYTE( "2.ic63",    0x00000, 0x20000, CRC(dd87d28a) SHA1(09ab75bcd62db1a49af123648812852780ac9d60) ) // sldh
2021   ROM_LOAD16_BYTE( "3.ic62",    0x00001, 0x20000, CRC(ec505317) SHA1(1e2b9e52654b08169827dbd877de2e724140e50c) ) // sldh
2022
2023   ROM_REGION( 0x080000, "gfx1", ROMREGION_INVERT )
2024   ROM_LOAD( "4.ic122",   0x00000, 0x20000, CRC(ea1c05a7) SHA1(adfdfeac80df287ffa6f469dc38ea94698817cf4) )
2025   ROM_LOAD( "5.ic120",   0x20000, 0x20000, CRC(bfdc60f4) SHA1(2b1893fac2651ac82f5a05b8f891b20c928ced7e) )
2026   ROM_LOAD( "6.ic118",   0x40000, 0x20000, CRC(96a5c235) SHA1(dad4ef9069d3130f719a402737909bb48225b73c) )
2027   ROM_LOAD( "7.ic116",   0x60000, 0x20000, CRC(a7e00b36) SHA1(2b5e85ec02e8893d7d730aad4d690883b1d236cc) )
2028
2029   ROM_REGION( 0x100000, "gfx2", ROMREGION_INVERT )
2030   ROM_LOAD( "8.ic121",   0x00000, 0x40000, CRC(fc096cfc) SHA1(75af810c97361b6f08767949b90c394a7a03f60b) )
2031   ROM_LOAD( "9.ic119",   0x40000, 0x40000, CRC(a45ec985) SHA1(16357f5df7841e11889ac6fced1e2a9288585a29) )
2032   ROM_LOAD( "10.ic117",  0x80000, 0x40000, CRC(3976b372) SHA1(72feec5a6fe7995f39d4b431dbbf25435359b04d) )
2033   ROM_LOAD( "11.ic115",  0xc0000, 0x40000, CRC(f9249937) SHA1(5993e5ab7295ca2fa5c8f4c05ce23731741f4e97) )
2034
2035   ROM_REGION( 0x080000, "user1", 0 ) /* Samples */
2036   ROM_LOAD( "1.ic21",    0x000000, 0x80000, CRC(1b78ed0b) SHA1(886bfd78709c295839dd51c7f5a13f5c452c0ab3) )
2037
2038   /* $00000-$20000 stays the same in all sound banks, */
2039   /* the second half of the bank is what gets switched */
2040   ROM_REGION( 0x100000, "oki", 0 ) /* Samples */
2041   ROM_COPY( "user1", 0x000000, 0x000000, 0x020000)
2042   ROM_COPY( "user1", 0x000000, 0x020000, 0x020000)
2043   ROM_COPY( "user1", 0x000000, 0x040000, 0x020000)
2044   ROM_COPY( "user1", 0x020000, 0x060000, 0x020000)
2045   ROM_COPY( "user1", 0x000000, 0x080000, 0x020000)
2046   ROM_COPY( "user1", 0x040000, 0x0a0000, 0x020000)
2047   ROM_COPY( "user1", 0x000000, 0x0c0000, 0x020000)
2048   ROM_COPY( "user1", 0x060000, 0x0e0000, 0x020000)
2049ROM_END
2050
2051
20182052/*
20192053
202020541991 Spikes (Italian bootleg)
r248543r248544
26922726GAME( 1990, spinlbrku,spinlbrk, spinlbrk, spinlbrku, driver_device,0, ROT0,   "V-System Co.",     "Spinal Breakers (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
26932727GAME( 1990, spinlbrkj,spinlbrk, spinlbrk, spinlbrk, driver_device, 0, ROT0,   "V-System Co.",     "Spinal Breakers (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
26942728
2695GAME( 1991, pspikes,  0,        pspikes,  pspikes, driver_device,  0, ROT0,   "Video System Co.", "Power Spikes (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2696GAME( 1991, pspikesk, pspikes,  pspikes,  pspikes, driver_device,  0, ROT0,   "Video System Co.", "Power Spikes (Korea)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2697GAME( 1991, pspikesu, pspikes,  pspikes,  pspikes, driver_device,  0, ROT0,   "Video System Co.", "Power Spikes (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2698GAME( 1991, svolly91, pspikes,  pspikes,  pspikes, driver_device,  0, ROT0,   "Video System Co.", "Super Volley '91 (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2699GAME( 1991, pspikesb, pspikes,  pspikesb, pspikesb, driver_device, 0, ROT0,   "bootleg",          "Power Spikes (bootleg)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2700GAME( 1991, spikes91, pspikes,  spikes91, pspikes, driver_device,  0, ROT0,   "bootleg",          "1991 Spikes (Italian bootleg, set 1)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL )
2701GAME( 1991, spikes91b,pspikes,  spikes91, pspikes, driver_device,  0, ROT0,   "bootleg",          "1991 Spikes (Italian bootleg, set 2)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL )
2702GAME( 1991, pspikesc, pspikes,  pspikesc, pspikesc, driver_device, 0, ROT0,   "bootleg",          "Power Spikes (China)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
2703GAME( 1997, wbbc97,   0,        wbbc97,   wbbc97, driver_device,   0, ROT0,   "Comad",            "Beach Festival World Championship 1997", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) // based on power spikes codebase
2729GAME( 1991, pspikes,  0,        pspikes,  pspikes, driver_device,  0, ROT0,   "Video System Co.",   "Power Spikes (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2730GAME( 1991, pspikesk, pspikes,  pspikes,  pspikes, driver_device,  0, ROT0,   "Video System Co.",   "Power Spikes (Korea)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2731GAME( 1991, pspikesu, pspikes,  pspikes,  pspikes, driver_device,  0, ROT0,   "Video System Co.",   "Power Spikes (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2732GAME( 1991, svolly91, pspikes,  pspikes,  pspikes, driver_device,  0, ROT0,   "Video System Co.",   "Super Volley '91 (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2733GAME( 1991, pspikesb, pspikes,  pspikesb, pspikesb, driver_device, 0, ROT0,   "bootleg",            "Power Spikes (bootleg)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2734GAME( 1991, pspikesba,pspikes,  pspikesb, pspikesb, driver_device, 0, ROT0,   "bootleg (Playmark?)","Power Spikes (Italian bootleg)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
2735GAME( 1991, spikes91, pspikes,  spikes91, pspikes, driver_device,  0, ROT0,   "bootleg",            "1991 Spikes (Italian bootleg, set 1)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL )
2736GAME( 1991, spikes91b,pspikes,  spikes91, pspikes, driver_device,  0, ROT0,   "bootleg",            "1991 Spikes (Italian bootleg, set 2)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND | GAME_NO_COCKTAIL )
2737GAME( 1991, pspikesc, pspikes,  pspikesc, pspikesc, driver_device, 0, ROT0,   "bootleg",            "Power Spikes (China)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL | GAME_IMPERFECT_SOUND )
2738GAME( 1997, wbbc97,   0,        wbbc97,   wbbc97, driver_device,   0, ROT0,   "Comad",              "Beach Festival World Championship 1997", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) // based on power spikes codebase
27042739
27052740GAME( 1991, karatblz, 0,        karatblz, karatblz, driver_device, 0, ROT0,   "Video System Co.", "Karate Blazers (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
27062741GAME( 1991, karatblzu,karatblz, karatblz, karatblz, driver_device, 0, ROT0,   "Video System Co.", "Karate Blazers (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
trunk/src/mame/drivers/atarisy1.c
r248543r248544
814814#define MOTHERBOARD_ALPHA                                                                                              \
815815   ROM_LOAD_BIOS(0, "136032.104.f5", 0x00000, 0x02000, CRC(7a29dc07) SHA1(72ba464da01bd6d3a91b8d9997d5ac14b6f47aad) ) \
816816   ROM_LOAD_BIOS(1, "136032.104.f5", 0x00000, 0x02000, CRC(7a29dc07) SHA1(72ba464da01bd6d3a91b8d9997d5ac14b6f47aad) ) \
817   ROM_LOAD_BIOS(2, "136032.107.b2", 0x00000, 0x02000, CRC(315e4bea) SHA1(a00ea23fbdbf075f8f3f184275be83387e8ac82b) )
817   ROM_LOAD_BIOS(2, "136032.107.b2", 0x00000, 0x02000, CRC(315e4bea) SHA1(a00ea23fbdbf075f8f3f184275be83387e8ac82b) ) /* is this bad? it just seems to be missing upper nibbles and hence some of the planes? */
818818
819819#define MOTHERBOARD_PROMS                                                                                              \
820820   ROM_LOAD_BIOS(0, "136032.101.e3",     0x00000, 0x00100, CRC(7e84972a) SHA1(84d422b53547271e3a07342704a05ef481db3f99) ) \
r248543r248544
17521752   MOTHERBOARD_PROMS
17531753ROM_END
17541754
1755/*
1756Road Blasters (German upright Rev xx)(Atari 1987)
1757Dumped from the original Atari
1758(System 1 motherboard Rev. C)
1759(System 1 daughterboard). "Road Blasters Cartridge 3 PCB Assy: A043972-01 Rev.A"
1760*/
17551761
1762// different IC positions and different GFX rom configuration.
1763ROM_START( roadblstgu )
1764   ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
1765   // expects bios roms 114/115, does not work properly with others (corrupt insert coin text)
1766   ROM_LOAD16_BYTE( "136032-114.j7", 0x00000, 0x04000, CRC(195c54ad) SHA1(d7cda3cd3db4c6f77074ca05e96ae11b62e048b7) )
1767   ROM_LOAD16_BYTE( "136032-115.j8", 0x00001, 0x04000, CRC(7275b4dc) SHA1(0896ab37ea832a1335046353612c1b4c86d8d040) )
1768
1769   ROM_LOAD16_BYTE( "136048-1257.c11", 0x010000, 0x008000, CRC(604a5cc0) SHA1(a057a2e47ac7b7c727e9c1bfce28ba955ce75442) )
1770   ROM_LOAD16_BYTE( "136048-1258.a11", 0x010001, 0x008000, CRC(3d10929d) SHA1(aa4d568e5d5b62fb8ea11094bad78bb8f713404e) )
1771   ROM_LOAD16_BYTE( "136048-1259.c13", 0x020000, 0x008000, CRC(b9c807ac) SHA1(ca955790c98037045aa49425392581f21d33caa9) )
1772   ROM_LOAD16_BYTE( "136048-1260.a13", 0x020001, 0x008000, CRC(eaeb1196) SHA1(82bf14244b342c97adde893f19a050baab30ab1e) )
1773
1774   ROM_LOAD16_BYTE( "136048-1163.c12",  0x050000, 0x008000, CRC(054273b2) SHA1(4c820c00d3b67825c361edc9615c89c2a9a1c6d3) )//
1775   ROM_LOAD16_BYTE( "136048-1164.a12",  0x050001, 0x008000, CRC(49181bec) SHA1(79e042e4f079a9806ef12c5c8dfdc2e6e4f90011) )//
1776   ROM_LOAD16_BYTE( "136048-1165.c14",  0x060000, 0x008000, CRC(f63dc29a) SHA1(e54637b9d0b271aa9b58e89a442ac03ec812e1eb) )//
1777   ROM_LOAD16_BYTE( "136048-1166.a14",  0x060001, 0x008000, CRC(b1fc5955) SHA1(b860213a9b5ae7547c258812045e71795129598f) )//
1778   ROM_LOAD16_BYTE( "136048-1167.c16",  0x070000, 0x008000, CRC(c6d30d6f) SHA1(acb552976b2dcfa585097ea246ca88034549c8ab) )//
1779   ROM_LOAD16_BYTE( "136048-1168.a16",  0x070001, 0x008000, CRC(16951020) SHA1(5e5a6ad4ae87723060232c7ecb837f5fc2a9be68) )//
1780   ROM_LOAD16_BYTE( "136048-2147.c17",  0x080000, 0x004000, CRC(5c1adf67) SHA1(53838a2f5059797991aa337a7bec32f7e694610a) )//
1781   ROM_LOAD16_BYTE( "136048-2148.a17",  0x080001, 0x004000, CRC(d9ac8966) SHA1(7d056c1eb8184b4261c5713b0d5799b2fd8bde2a) )//
1782
1783   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for 6502 code */
1784   ROM_LOAD( "136048-1149.e14",   0x4000, 0x4000, CRC(2e54f95e) SHA1(5056ddec3c88384ada1d2ee9b1532b9ba9f34e08) )
1785   ROM_LOAD( "136048-1169.e15",   0x8000, 0x4000, CRC(ee318052) SHA1(f66ff39499697b7439dc62567e727fec769c1505) )//
1786   ROM_LOAD( "136048-1170.e17",   0xc000, 0x4000, CRC(75dfec33) SHA1(3092348b98419bb23181d21406733d5d21cd3d82) )//
1787
1788   ROM_REGION( 0x2000, "alpha", 0 )
1789   ROM_LOAD( "136032.107.b2", 0x00000, 0x02000, CRC(7a29dc07) SHA1(72ba464da01bd6d3a91b8d9997d5ac14b6f47aad) )
1790
1791   ROM_REGION( 0x380000, "tiles", ROMREGION_INVERT | ROMREGION_ERASEFF )
1792   ROM_LOAD( "136048-1101.b4",  0x000000, 0x008000, CRC(fe342d27) SHA1(72deac16ab9b6b811f49d70d700d6bc3a904f9d5) )  /* bank 1, plane 0 *///
1793   ROM_LOAD( "136048-1102.b9",  0x010000, 0x008000, CRC(17c7e780) SHA1(675a2fe5ac55c97d54153eacabf863a525e4b71f) )  /* bank 1, plane 1 *///
1794   ROM_LOAD( "136048-1103.f4",  0x020000, 0x008000, CRC(39688e01) SHA1(1b273e26b48a2f69b0895c29c9b3e762c686661d) )  /* bank 1, plane 2 *///
1795   ROM_LOAD( "136048-1104.f9",  0x030000, 0x008000, CRC(c8f9bd8e) SHA1(452194efafd5f9562434dafcb14b72f400fc4a49) )  /* bank 1, plane 3 *///
1796   ROM_LOAD( "136048-1105.h4",  0x040000, 0x008000, CRC(c69e439e) SHA1(c933637820c04bdbc56990423adfb9067e09fad7) )  /* bank 1, plane 4 *///
1797   ROM_LOAD( "136048-1106.h9",  0x050000, 0x008000, CRC(4ee55796) SHA1(045635cd4f80a5f2c378cb4c55996e09c21b5859) )  /* bank 1, plane 5 *///
1798
1799   ROM_LOAD( "136048-1119.b3",  0x080000, 0x008000, CRC(2533be39) SHA1(4dc5c85fe5388ed62806742c8bb27957b9ffb321) )  /* bank 2/3, plane 0 */
1800   ROM_LOAD( "136048-1120.b8",  0x090000, 0x008000, CRC(3de4f4db) SHA1(a3c19ef52f31b924b7eaa7bd864fe942d2e581f9) )  /* bank 2/3, plane 1 */
1801   ROM_LOAD( "136048-1121.f3",  0x0a0000, 0x008000, CRC(4a1b6b9f) SHA1(c0c6de17573b314954c02fdd57cf57c9cd59c783) )  /* bank 2/3, plane 2 */
1802   ROM_LOAD( "136048-1122.f8",  0x0b0000, 0x008000, CRC(680bdb7d) SHA1(6a66560a8ef983055b250d59022e3d9a2ea25861) )  /* bank 2/3, plane 3 */
1803
1804   ROM_LOAD( "136048-1123.b2",  0x100000, 0x008000, CRC(a405d8bf) SHA1(c5bb7c54caf04e8f6a6534de7fd1127d9777dded) )  /* bank 2/3, plane 0 */
1805   ROM_LOAD( "136048-1124.b7",  0x110000, 0x008000, CRC(b9070c2e) SHA1(4b912cc35d0f4d445a6e619fc52e8c131bbb7899) )  /* bank 2/3, plane 1 */
1806   ROM_LOAD( "136048-1125.f2",  0x120000, 0x008000, CRC(5dfac572) SHA1(46eee972944766b7ba3a88937da3b3ac785c5741) )  /* bank 2/3, plane 2 */
1807   ROM_LOAD( "136048-1126.f7",  0x130000, 0x008000, CRC(a0416c6d) SHA1(bdaa2d828035206f0662c0c920b654cf4d314ca6) )  /* bank 2/3, plane 3 */
1808
1809   ROM_LOAD( "136048-1127.b1",  0x180000, 0x008000, CRC(0138b391) SHA1(3d22c93c5ffb1a998f85a27eb9f58061f2ffe19d) )  /* bank 4/5, plane 0 */
1810   ROM_LOAD( "136048-1128.b6",  0x190000, 0x008000, CRC(5136fb4b) SHA1(0b2a8d96e573907e11d4fe7288069e9735c1d072) )  /* bank 4/5, plane 1 */
1811   ROM_LOAD( "136048-1129.f1",  0x1a0000, 0x008000, CRC(7d75bb12) SHA1(bbaf4c991bb21b32dc1c6fdc23673e27c33f4edf) )  /* bank 4/5, plane 2 */
1812   ROM_LOAD( "136048-1130.f6",  0x1b0000, 0x008000, CRC(81bb54d9) SHA1(134a6280183595b5b5989d8cc593b8fbd6a74577) )  /* bank 4/5, plane 3 */
1813
1814   ROM_LOAD( "136048-1131.d4",  0x200000, 0x008000, CRC(72233889) SHA1(e5596c9f450a00947bd0ab4b7b7b2623d4ce8d89) )  /* bank 4/5, plane 0 */
1815   ROM_LOAD( "136048-1132.d9",  0x210000, 0x008000, CRC(6a82b8a7) SHA1(8b9f65617601cb39d37110074e99ab27fd5fa274) )  /* bank 4/5, plane 1 */
1816   ROM_LOAD( "136048-1133.d2",  0x220000, 0x008000, CRC(845dd347) SHA1(47ab870a808898c819d48454099b44ccf507c341) )  /* bank 4/5, plane 2 */
1817   ROM_LOAD( "136048-1134.d7",  0x230000, 0x008000, CRC(54e4c9e6) SHA1(cfd989b6237c95bac1717025a895eb4b1df28365) )  /* bank 4/5, plane 3 */
1818
1819   ROM_LOAD( "136048-1115.d3",  0x300000, 0x008000, CRC(a47bc79d) SHA1(367f21c355c0af55629d2c5746cd5cb06272abc0) )  /* bank 7/6, plane 0 *///
1820   ROM_CONTINUE(                0x280000, 0x008000 )
1821   ROM_LOAD( "136048-1116.d8",  0x310000, 0x008000, CRC(b8a5c215) SHA1(2594f2a865fb73c8a7829e50ff19a6494a35c088) )  /* bank 7/6, plane 0 *///
1822   ROM_CONTINUE(                0x290000, 0x008000 )
1823   ROM_LOAD( "136048-1117.d1",  0x320000, 0x008000, CRC(2d1c1f64) SHA1(66141b9a7ae8d6dd3f1315d60cf0e99cd802d2e5) )  /* bank 7/6, plane 0 *///
1824   ROM_CONTINUE(                0x2a0000, 0x008000 )
1825   ROM_LOAD( "136048-1118.d6",  0x330000, 0x008000, CRC(be879b8e) SHA1(dc1d1f7bdb511e922b650fac88307a08ab37ac4c) )  /* bank 7/6, plane 0 *///
1826   ROM_CONTINUE(                0x2b0000, 0x008000 )
1827
1828   ROM_REGION( 0x400, "proms", 0 ) /* graphics mapping PROMs */
1829   ROM_LOAD( "136048-1174.a7", 0x000000, 0x000200, CRC(db4a4d53) SHA1(c5468f3585ec9bc23c9ee990b3ae3738b0309823) )//
1830   ROM_LOAD( "136048-1173.a5", 0x000200, 0x000200, CRC(c80574af) SHA1(9a3dc83f70e79915ce0db3e6e69b5dcfee3acb6f) )//
1831
1832   ROM_REGION( 0x201, "motherbrd_proms", 0) /* Motherboard PROM's (Only used by TTL version.) */
1833   MOTHERBOARD_PROMS
1834ROM_END
1835
17561836ROM_START( roadblst3 )
17571837   ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
17581838   MOTHERBOARD_BIOS
r248543r248544
21602240   MOTHERBOARD_PROMS
21612241ROM_END
21622242
2243/*
2244Road Blasters (German Cockpit Rev xx)(Atari 1987)
2245Dumped from an original Atari (Dedicated System 1) cocktail board. "Road Blasters Cart. 5 PCB Assy: A044203-01 Rev.A"
21632246
2247Note: The text on the board says "cocktail" but I suppose this is the cockpit version.
2248      136048-1150.d7 is a sound rom.
2249*/
2250
21642251ROM_START( roadblstcg )
21652252   ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
2166   MOTHERBOARD_BIOS
2253   ROM_LOAD16_BYTE( "136032-117-l9",  0x000001, 0x004000, CRC(9af9fe29) SHA1(1d5077662e4111ece9f8a5124394dad8b1abdc13) ) // alt bios roms? (to put in bios structure, or are they specific to this set?)
2254   ROM_LOAD16_BYTE( "136032-116.m9",  0x000000, 0x004000, CRC(195c54ad) SHA1(d7cda3cd3db4c6f77074ca05e96ae11b62e048b7) ) //
2255
21672256   ROM_LOAD16_BYTE( "136048-1235.7p",  0x010000, 0x008000, CRC(58b2998f) SHA1(7e9f4ca2b15cf60c61e0615f214f9fcc518cb194) )
21682257   ROM_LOAD16_BYTE( "136048-1236.8p",  0x010001, 0x008000, CRC(02e23a40) SHA1(6525351669e95dab869c7adc7d992d12d9313aee) )
21692258   ROM_LOAD16_BYTE( "136048-1237.7r",  0x020000, 0x008000, CRC(5e0a7c5d) SHA1(fb3688fbadc05f96980c67f5446ccb250d20b1a3) )
r248543r248544
21772266   ROM_LOAD16_BYTE( "136048-2147.7k",  0x080000, 0x004000, CRC(5c1adf67) SHA1(53838a2f5059797991aa337a7bec32f7e694610a) )
21782267   ROM_LOAD16_BYTE( "136048-2148.8k",  0x080001, 0x004000, CRC(d9ac8966) SHA1(7d056c1eb8184b4261c5713b0d5799b2fd8bde2a) )
21792268
2269
21802270   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for 6502 code */
2181   ROM_LOAD( "136048-1149.14e",   0x4000, 0x4000, CRC(2e54f95e) SHA1(5056ddec3c88384ada1d2ee9b1532b9ba9f34e08) )
2182   ROM_LOAD( "136048-1169.1516e", 0x8000, 0x4000, CRC(ee318052) SHA1(f66ff39499697b7439dc62567e727fec769c1505) )
2183   ROM_LOAD( "136048-1170.17e",   0xc000, 0x4000, CRC(75dfec33) SHA1(3092348b98419bb23181d21406733d5d21cd3d82) )
2271   ROM_LOAD( "136048-1149.c8",   0x4000, 0x4000, CRC(2e54f95e) SHA1(5056ddec3c88384ada1d2ee9b1532b9ba9f34e08) ) //
2272   ROM_LOAD( "136048-1150.d7",   0x8000, 0x8000, CRC(e89e7fc8) SHA1(d944bc27de2f2f675680c62d999cacf84a08fd4b) )
21842273
2185   ROM_REGION( 0x2000, "alpha", 0 )
2186   MOTHERBOARD_ALPHA
2274   ROM_REGION( 0x4000, "alpha", 0 )
2275   ROM_LOAD( "136032-120.p1",   0x00000, 0x04000, CRC(90a1950d) SHA1(fba32c255850312175d1e3c03d677ffb57e09e07) ) //
21872276
21882277   ROM_REGION( 0x380000, "tiles", ROMREGION_INVERT | ROMREGION_ERASEFF )
21892278   ROM_LOAD( "136048-1101.2s",  0x000000, 0x008000, CRC(fe342d27) SHA1(72deac16ab9b6b811f49d70d700d6bc3a904f9d5) )  /* bank 1, plane 0 */
r248543r248544
22212310   ROM_CONTINUE(                0x2b0000, 0x008000 )
22222311
22232312   ROM_REGION( 0x400, "proms", 0 ) /* graphics mapping PROMs */
2313   // these 2 proms were present on this board, an earlier revision to the other games, however they don't give correct
2314   // gfx, so we load the regular ones over, might need different GFX rom loading? investigate further.
2315   // (the failure to use these roms properly might be the reason we have the IMPERFECT_GRAPHICS flag on this
2316   // set in the first place)
2317   ROM_LOAD( "135048-1172.d1", 0x000000, 0x000200, CRC(b79d1903) SHA1(8319fab8b39f708457eb1efe47789b26adc61249) )
2318   ROM_LOAD( "135048-1171.d2",  0x000200, 0x000200, CRC(29248a95) SHA1(c9467d495676d323121c92c6757e73b2ed3fb3d7) )
2319   
22242320   ROM_LOAD( "136048-1174.12d", 0x000000, 0x000200, CRC(db4a4d53) SHA1(c5468f3585ec9bc23c9ee990b3ae3738b0309823) )
22252321   ROM_LOAD( "136048-1173.2d",  0x000200, 0x000200, CRC(c80574af) SHA1(9a3dc83f70e79915ce0db3e6e69b5dcfee3acb6f) )
22262322
r248543r248544
22982394
22992395
23002396
2397
2398
2399
23012400/*************************************
23022401 *
23032402 *  Driver initialization
r248543r248544
23962495GAME( 1987, roadblstc,  roadblst, atarisy1, roadblst, atarisy1_state, roadb110, ROT0, "Atari Games", "Road Blasters (cockpit, rev 2)", 0 )
23972496GAME( 1987, roadblstcg, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (cockpit, German, rev 1)", GAME_IMPERFECT_GRAPHICS )
23982497GAME( 1987, roadblstc1, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (cockpit, rev 1)", GAME_IMPERFECT_GRAPHICS )
2498GAME( 1987, roadblstgu, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (upright, German, rev ?)", 0 )
trunk/src/mame/drivers/chihiro.c
r248543r248544
27782778   ROM_LOAD( "317-0374-jpn.pic", 0x000000, 0x004000, CRC(004f77a1) SHA1(bc5c6950293f3bff60bf7913d20a2046aa19ea69) )
27792779ROM_END
27802780
2781ROM_START( mj2f )
2781ROM_START( mj2 )
27822782   CHIHIRO_BIOS
27832783
27842784   DISK_REGION( "gdrom" )
r248543r248544
28042804track02.raw 750 2101    3179904
28052805track03.bin 45150   549299  1185760800
28062806*/
2807ROM_START( mj2 )
2807ROM_START( mj2g )
28082808   CHIHIRO_BIOS
28092809
28102810   DISK_REGION( "gdrom" )
2811   DISK_IMAGE_READONLY( "gdx-0006g", 0, SHA1(e306837d5c093fdf1e9ff02239a8563535b1c181) )
2811   // this is not CHDv4, but a really bad dump, only ~1/3 of disk content is dumped
2812   DISK_IMAGE_READONLY( "gdx-0006g", 0, BAD_DUMP SHA1(e306837d5c093fdf1e9ff02239a8563535b1c181) )
28122813
28132814   ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
28142815   ROM_LOAD( "317-0374-jpn.pic", 0x000000, 0x004000, CRC(004f77a1) SHA1(bc5c6950293f3bff60bf7913d20a2046aa19ea69) )
r248543r248544
29993000/* 0006C */ GAME( 2004, mj2c,     mj2,      chihirogd,    chihiro, driver_device, 0, ROT0, "Sega",                     "Sega Network Taisen Mahjong MJ 2 (Rev C) (GDX-0006C)", GAME_NO_SOUND|GAME_NOT_WORKING )
30003001// 0006D    GAME( 2004, mj2d,     mj2,      chihirogd,    chihiro, driver_device, 0, ROT0, "Sega",                     "Sega Network Taisen Mahjong MJ 2 (Rev D) (GDX-0006D)", GAME_NO_SOUND|GAME_NOT_WORKING )
30013002// 0006E    GAME( 2004, mj2e,     mj2,      chihirogd,    chihiro, driver_device, 0, ROT0, "Sega",                     "Sega Network Taisen Mahjong MJ 2 (Rev E) (GDX-0006E)", GAME_NO_SOUND|GAME_NOT_WORKING )
3002/* 0006F */ GAME( 2004, mj2f,     mj2,      chihirogd,    chihiro, driver_device, 0, ROT0, "Sega",                     "Sega Network Taisen Mahjong MJ 2 (Rev F) (GDX-0006F)", GAME_NO_SOUND|GAME_NOT_WORKING )
3003/* 0006G */ GAME( 2004, mj2,      chihiro,  chihirogd,    chihiro, driver_device, 0, ROT0, "Sega",                     "Sega Network Taisen Mahjong MJ 2 (Rev G) (GDX-0006G)", GAME_NO_SOUND|GAME_NOT_WORKING )
3003/* 0006F */ GAME( 2004, mj2,      chihiro,  chihirogd,    chihiro, driver_device, 0, ROT0, "Sega",                     "Sega Network Taisen Mahjong MJ 2 (Rev F) (GDX-0006F)", GAME_NO_SOUND|GAME_NOT_WORKING )
3004/* 0006G */ GAME( 2004, mj2g,     mj2,      chihirogd,    chihiro, driver_device, 0, ROT0, "Sega",                     "Sega Network Taisen Mahjong MJ 2 (Rev G) (GDX-0006G)", GAME_NO_SOUND|GAME_NOT_WORKING )
30043005/* 0007  */ GAME( 2004, ollie,    chihiro,  chihirogd,    chihiro, driver_device, 0, ROT0, "Sega / Amusement Vision",  "Ollie King (GDX-0007)", GAME_NO_SOUND|GAME_NOT_WORKING )
30053006// 0008     GAME( 2004, wangmdjo, wangmidj, chihirogd,    chihiro, driver_device, 0, ROT0, "Namco",                    "Wangan Midnight Maximum Tune (Japan) (GDX-0008)", GAME_NO_SOUND|GAME_NOT_WORKING )
30063007// 0008A    GAME( 2004, wangmdja, wangmidj, chihirogd,    chihiro, driver_device, 0, ROT0, "Namco",                    "Wangan Midnight Maximum Tune (Japan) (Rev A) (GDX-0008A)", GAME_NO_SOUND|GAME_NOT_WORKING )
trunk/src/mame/drivers/deadang.c
r248543r248544
2020
2121Clocks
2222------
23Top board
23Top board - SEI-8712A
2424Two crystals on top board 12MHz and 16MHz
2525V30(x2) - both 8MHz [16/2]
2626
27Bottom board
27Bottom board - SEI-8712B
2828One crystal on bottom board 14.31818MHz
2929Z80 - 3.579545MHz [14.31818/4]
3030OKI M5205(x2) - 375kHz [12/32]
r248543r248544
3333VSync 60Hz
3434HSync 15.37kHz
3535
36Gang Hunter as an additional daughter card attached to the top board call SEI-8712 GUN
37
36382008-08
3739Dip locations and factory settings verified with US manual
3840
r248543r248544
164166   PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW2:4")
165167   PORT_DIPSETTING(    0x0800, DEF_STR( Trackball ) )
166168   PORT_DIPSETTING(    0x0000, DEF_STR( Joystick ) )
167
169   
168170   PORT_START("TRACKX")
169171   PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(1)
170172
r248543r248544
277279   ROM_LOAD16_BYTE("3.21f",   0x0e0001, 0x10000, CRC(e784b1fa) SHA1(3f41d31e0b36b9a2fab5e9998bb4146dfa0a97eb) )
278280
279281   ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
280   ROM_LOAD16_BYTE("5.6bh",   0x0e0000, 0x10000, CRC(9c69eb35) SHA1(d5a9714f279b71c419b4bae0f142c4cb1cc8d30e) )
281   ROM_LOAD16_BYTE("6.9b",    0x0e0001, 0x10000, CRC(34a44ce5) SHA1(621c69d8778d4c96ac3be06b033a5931a6a23da2) )
282   ROM_LOAD16_BYTE("5.6b",   0x0e0000, 0x10000, CRC(9c69eb35) SHA1(d5a9714f279b71c419b4bae0f142c4cb1cc8d30e) )
283   ROM_LOAD16_BYTE("6.9b",   0x0e0001, 0x10000, CRC(34a44ce5) SHA1(621c69d8778d4c96ac3be06b033a5931a6a23da2) )
282284
283285   ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound Z80 */
284286   ROM_LOAD( "13.b1", 0x000000, 0x02000, CRC(13b956fb) SHA1(f7c21ad5e988ac59073659a427b1fa66ff49b0c1) ) /* Encrypted */
r248543r248544
365367
366368ROM_START( ghunter )
367369   ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
370   ROM_LOAD16_BYTE("2.19h",   0x0c0000, 0x10000, CRC(5a511500) SHA1(69185a9efee0c3ee4d65643651eb9c613bc5f759) )
371   ROM_LOAD16_BYTE("4.22h",   0x0c0001, 0x10000, CRC(df5704f4) SHA1(a40848f1222253921982320155e6f7a01d2bb17f) ) // sldh
372   ROM_LOAD16_BYTE("1.19f",   0x0e0000, 0x10000, CRC(30deb018) SHA1(099ab1f227d7e28f3e56a61d015813905a2dbc29) )
373   ROM_LOAD16_BYTE("3.22f",   0x0e0001, 0x10000, CRC(95f587c5) SHA1(b1431dd56200a5f849314b34daed5d3570633a77) ) // sldh
374
375   ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
376   ROM_LOAD16_BYTE("5.6b",   0x0e0000, 0x10000, CRC(c40bb5e5) SHA1(2a618f7db6fe6cd8d1a0e7eed91a831b721fec62) ) // sldh
377   ROM_LOAD16_BYTE("6.10b",  0x0e0001, 0x10000, CRC(373f86a7) SHA1(6f7d219a3bc34d74fdadd812319a5387d217dffb) ) // sldh
378
379   ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound Z80 */
380   ROM_LOAD( "13.b1", 0x000000, 0x02000, CRC(13b956fb) SHA1(f7c21ad5e988ac59073659a427b1fa66ff49b0c1) ) /* Encrypted */
381   ROM_LOAD( "14.c1", 0x010000, 0x10000, CRC(98837d57) SHA1(291769a11478291a65c959d119d19960b100d135) ) /* Banked */
382
383   ROM_REGION( 0x08000, "gfx1", 0 ) /* Chars */
384   ROM_LOAD( "7.22k", 0x000000, 0x4000, CRC(490701e7) SHA1(2f5cbc0407d7fe41b9e7683c7531656fda7bf9f7) )
385   ROM_LOAD( "8.22l", 0x004000, 0x4000, CRC(18024c5e) SHA1(b02bcaa1ba6e7c188f3d2a6b20b52b2dcb8215e0) )
386
387   ROM_REGION( 0x80000, "gfx2", 0 ) /* Sprites */
388   ROM_LOAD( "l12", 0x000000, 0x80000, CRC(c94d5cd2) SHA1(25ded13faaed90886c9fe40f85969dab2f511e31) )
389
390   ROM_REGION( 0x100000, "gfx3", 0 ) /* pf1 layer */
391   ROM_LOAD( "16n", 0x000000, 0x80000, CRC(fd70e1a5) SHA1(c3d1233f4dfe08f686ec99a556889f9ed6a21da3) ) // bank 0 (0x1000 tiles)
392   ROM_LOAD( "16r", 0x080000, 0x80000, CRC(92f5e382) SHA1(2097b9e9bf3cd37c8613847e7aed677b5aeab7f9) ) // bank 1 (0x1000 tiles)
393
394   ROM_REGION( 0x40000, "gfx4", 0 ) // pf2 layer
395   ROM_LOAD( "11m", 0x000000, 0x40000, CRC(a366659a) SHA1(e2fcd82b0b2d4e3adcdf50c710984907d26acd04) ) // fixed (0x800 tiles)
396
397   ROM_REGION( 0x40000, "gfx5", 0 ) // pf3 layer
398   ROM_LOAD( "11k", 0x000000, 0x40000, CRC(9cf5bcc7) SHA1(cf96592e601fc373b1bf322d9b576668799130a5) ) // fixed (0x800 tiles)
399
400   ROM_REGION16_BE( 0x10000, "gfx6", 0 )   /* background map data */
401   ROM_LOAD16_BYTE( "10.6l",  0x00000, 0x8000, CRC(ca99176b) SHA1(283e3769a1ff579c78a008b65cb8267e5770ba1f) )
402   ROM_LOAD16_BYTE( "9.6m",   0x00001, 0x8000, CRC(51d868ca) SHA1(3e9a4e6bc4bc68773c4ba18c5f4110e6c595d0c9) )
403
404   ROM_REGION16_BE( 0x10000, "gfx7", 0 )   /* background map data */
405   ROM_LOAD16_BYTE( "12.6j",  0x00000, 0x8000, CRC(2674d23f) SHA1(0533d80a23d917e20a703aeb833dcaccfa3a1967) )
406   ROM_LOAD16_BYTE( "11.6k",  0x00001, 0x8000, CRC(3dd4d81d) SHA1(94f0a13a8d3812f6879819ca186abf3a8665f7cb) )
407
408   ROM_REGION( 0x10000, "adpcm1", 0 )
409   ROM_LOAD( "15.b11", 0x000000, 0x10000, CRC(fabd74f2) SHA1(ac70e952a8b38287613b384cdc7ca00a7f155a13) )
410
411   ROM_REGION( 0x10000, "adpcm2", 0 )
412   ROM_LOAD( "16.11a", 0x000000, 0x10000, CRC(a8d46fc9) SHA1(3ba51bdec4057413396a152b35015f9d95253e3f) )
413ROM_END
414
415ROM_START( ghunters )
416   ROM_REGION( 0x100000, "maincpu", 0 ) /* v30 main cpu */
368417   ROM_LOAD16_BYTE("ggh-2.h18",   0x0c0000, 0x10000, CRC(7ccc6fee) SHA1(bccc283d82f080157f0521457b04fdd1d63caafe) )
369418   ROM_LOAD16_BYTE("ggh-4.h22",   0x0c0001, 0x10000, CRC(d1f23ad7) SHA1(2668729af797ccab52ac2bf519d43ab2fa9e54ce) )
370419   ROM_LOAD16_BYTE("ggh-1.f18",   0x0e0000, 0x10000, CRC(0d6ff111) SHA1(209d26170446b43d1d463737b447e30aaca614a7) )
r248543r248544
429478
430479/* Game Drivers */
431480
432GAME( 1988, deadang, 0,       deadang, deadang, deadang_state, deadang, ROT0, "Seibu Kaihatsu", "Dead Angle", GAME_SUPPORTS_SAVE )
433GAME( 1988, leadang, deadang, deadang, deadang, deadang_state, deadang, ROT0, "Seibu Kaihatsu", "Lead Angle (Japan)", GAME_SUPPORTS_SAVE )
434GAME( 1988, ghunter, deadang, deadang, ghunter, deadang_state, ghunter, ROT0, "Seibu Kaihatsu (Segasa/Sonic license)", "Gang Hunter (Spain)", GAME_SUPPORTS_SAVE )
481GAME( 1988, deadang,  0,       deadang, deadang, deadang_state, deadang, ROT0, "Seibu Kaihatsu",                        "Dead Angle",          GAME_SUPPORTS_SAVE )
482GAME( 1988, leadang,  deadang, deadang, deadang, deadang_state, deadang, ROT0, "Seibu Kaihatsu",                        "Lead Angle (Japan)",  GAME_SUPPORTS_SAVE )
483GAME( 1988, ghunter,  deadang, deadang, ghunter, deadang_state, ghunter, ROT0, "Seibu Kaihatsu",                        "Gang Hunter / Dead Angle",         GAME_SUPPORTS_SAVE ) // Title is 'Gang Hunter' or 'Dead Angle' depending on control method dipswitch
484GAME( 1988, ghunters, deadang, deadang, ghunter, deadang_state, ghunter, ROT0, "Seibu Kaihatsu (Segasa/Sonic license)", "Gang Hunter / Dead Angle (Spain)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/dorachan.c
r248543r248544
1414#include "cpu/z80/z80.h"
1515
1616
17#define NUM_PENS    (8)
18
19
2017class dorachan_state : public driver_device
2118{
2219public:
r248543r248544
2421      : driver_device(mconfig, type, tag),
2522      m_videoram(*this, "videoram"),
2623      m_maincpu(*this, "maincpu"),
27      m_screen(*this, "screen") { }
24      m_screen(*this, "screen"),
25      m_palette(*this, "palette"),
26      m_colors(*this, "colors") { }
2827
2928   /* memory pointers */
3029   required_shared_ptr<UINT8> m_videoram;
r248543r248544
4140   UINT32 screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4241   required_device<cpu_device> m_maincpu;
4342   required_device<screen_device> m_screen;
43   required_device<palette_device> m_palette;
44   required_region_ptr<UINT8> m_colors;
4445};
4546
4647
r248543r248544
7677 *
7778 *************************************/
7879
79static void get_pens(pen_t *pens)
80{
81   offs_t i;
82
83   for (i = 0; i < NUM_PENS; i++)
84   {
85      pens[i] = rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
86   }
87}
88
89
9080UINT32 dorachan_state::screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
9181{
92   pen_t pens[NUM_PENS];
93   offs_t offs;
94   const UINT8 *color_map_base;
95
96   get_pens(pens);
97
98   color_map_base = memregion("proms")->base();
99
100   for (offs = 0; offs < m_videoram.bytes(); offs++)
82   for (offs_t offs = 0; offs < m_videoram.bytes(); offs++)
10183   {
102      int i;
10384      UINT8 fore_color;
10485
10586      UINT8 x = offs >> 8 << 3;
10687      UINT8 y = offs & 0xff;
10788
108      /* the need for +1 is extremely unusual, but definetely correct */
89      /* the need for +1 is extremely unusual, but definitely correct */
10990      offs_t color_address = ((((offs << 2) & 0x03e0) | (offs >> 8)) + 1) & 0x03ff;
11091
11192      UINT8 data = m_videoram[offs];
11293
11394      if (m_flip_screen)
114         fore_color = (color_map_base[color_address] >> 3) & 0x07;
95         fore_color = (m_colors[color_address] >> 3) & 0x07;
11596      else
116         fore_color = (color_map_base[color_address] >> 0) & 0x07;
97         fore_color = (m_colors[color_address] >> 0) & 0x07;
11798
118      for (i = 0; i < 8; i++)
99      for (int i = 0; i < 8; i++)
119100      {
120101         UINT8 color = (data & 0x01) ? fore_color : 0;
121         bitmap.pix32(y, x) = pens[color];
102         bitmap.pix32(y, x) = m_palette->pen_color(color);
122103
123104         data = data >> 1;
124105         x = x + 1;
r248543r248544
238219}
239220
240221static MACHINE_CONFIG_START( dorachan, dorachan_state )
241
242222   /* basic machine hardware */
243223   MCFG_CPU_ADD("maincpu", Z80, 2000000)
244224   MCFG_CPU_PROGRAM_MAP(dorachan_map)
245225   MCFG_CPU_IO_MAP(dorachan_io_map)
246226   MCFG_CPU_PERIODIC_INT_DRIVER(dorachan_state, irq0_line_hold, 2*60)
247227
248
249228   /* video hardware */
250229   MCFG_SCREEN_ADD("screen", RASTER)
251230   MCFG_SCREEN_SIZE(32*8, 32*8)
r248543r248544
253232   MCFG_SCREEN_REFRESH_RATE(60)
254233   MCFG_SCREEN_UPDATE_DRIVER(dorachan_state, screen_update_dorachan)
255234
235   MCFG_PALETTE_ADD_3BIT_BGR("palette")
256236MACHINE_CONFIG_END
257237
258238
r248543r248544
279259   ROM_LOAD( "d12.rom",    0x7000, 0x0400, CRC(275e5dc1) SHA1(ac07db4b428daa49a52c679de95ddedbea0076b9) )
280260   ROM_LOAD( "d13.rom",    0x7400, 0x0400, CRC(24ccfcf9) SHA1(85e5052ee657f518b0509eb64e494bc3a74e651e) )
281261
282   ROM_REGION( 0x0400, "proms", 0 )  /* color map */
262   ROM_REGION( 0x0400, "colors", 0 )
283263   ROM_LOAD( "d14.rom",    0x0000, 0x0400, CRC(c0d3ee84) SHA1(f2207c685ce8d5144a373c28f11d2cebf9518b65) )
284264ROM_END
285265
trunk/src/mame/drivers/enigma2.c
r248543r248544
5555#define INT_TRIGGER_COUNT_2 (0x18f)
5656
5757
58#define NUM_PENS    (8)
59
60
6158class enigma2_state : public driver_device
6259{
6360public:
r248543r248544
6663      m_videoram(*this, "videoram"),
6764      m_maincpu(*this, "maincpu"),
6865      m_audiocpu(*this, "audiocpu"),
69      m_screen(*this, "screen"){ }
66      m_screen(*this, "screen"),
67      m_palette(*this, "palette"),
68      m_colors(*this, "colors"),
69      m_stars(*this, "stars"){ }
7070
7171   /* memory pointers */
7272   required_shared_ptr<UINT8> m_videoram;
r248543r248544
8585   required_device<cpu_device> m_maincpu;
8686   required_device<cpu_device> m_audiocpu;
8787   required_device<screen_device> m_screen;
88   optional_device<palette_device> m_palette;
89   optional_region_ptr<UINT8> m_colors;
90   optional_region_ptr<UINT8> m_stars;
91
8892   DECLARE_READ8_MEMBER(dip_switch_r);
8993   DECLARE_WRITE8_MEMBER(sound_data_w);
9094   DECLARE_WRITE8_MEMBER(enigma2_flip_screen_w);
r248543r248544
103107   inline int vysnc_chain_counter_to_vpos( UINT16 counter );
104108   void create_interrupt_timers(  );
105109   void start_interrupt_timers(  );
106   void get_pens(pen_t *pens);
107110};
108111
109112
r248543r248544
202205 *
203206 *************************************/
204207
205void enigma2_state::get_pens(pen_t *pens)
206{
207   offs_t i;
208
209   for (i = 0; i < NUM_PENS; i++)
210   {
211      /* this color gun arrengement is supported by the flyer screenshot */
212      pens[i] = rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
213   }
214}
215
216
217208UINT32 enigma2_state::screen_update_enigma2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
218209{
219   pen_t pens[NUM_PENS];
220
221210   const rectangle &visarea = screen.visible_area();
222   UINT8 *prom = memregion("proms")->base();
223   UINT8 *color_map_base = m_flip_screen ? &prom[0x0400] : &prom[0x0000];
224   UINT8 *star_map_base = (m_blink_count & 0x08) ? &prom[0x0c00] : &prom[0x0800];
225211
226212   UINT8 x = 0;
227213   UINT16 bitmap_y = visarea.min_y;
r248543r248544
230216   UINT8 fore_color = 0;
231217   UINT8 star_color = 0;
232218
233   get_pens(pens);
234
235219   while (1)
236220   {
237221      UINT8 bit;
r248543r248544
241225      if ((x & 0x07) == 0x00)
242226      {
243227         offs_t color_map_address = (y >> 3 << 5) | (x >> 3);
228
244229         /* the schematics shows it like this, but it doesn't work as this would
245230            produce no stars, due to the contents of the PROM -- maybe there is
246231            a star disabled bit somewhere that's connected here instead of flip_screen() */
247232         /* star_map_address = (y >> 4 << 6) | (engima2_flip_screen_get() << 5) | (x >> 3); */
248233         offs_t star_map_address = (y >> 4 << 6) | 0x20 | (x >> 3);
234         if (m_blink_count & 0x08)
235            star_map_address |= 0x400;
249236
250237         offs_t videoram_address = (y << 5) | (x >> 3);
251238
252239         /* when the screen is flipped, all the video address bits are inverted,
253240            and the adder at 16A is activated */
254         if (m_flip_screen)  videoram_address = (~videoram_address + 0x0400) & 0x1fff;
241         if (m_flip_screen)
242         {
243            color_map_address |= 0x400;
244            videoram_address = (~videoram_address + 0x0400) & 0x1fff;
245         }
255246
256247         video_data = m_videoram[videoram_address];
257248
258         fore_color = color_map_base[color_map_address] & 0x07;
259         star_color = star_map_base[star_map_address] & 0x07;
249         fore_color = m_colors[color_map_address] & 0x07;
250         star_color = m_stars[star_map_address] & 0x07;
260251      }
261252
262253      /* plot the current pixel */
r248543r248544
277268         /* stars only appear at certain positions */
278269         color = ((x & y & 0x0f) == 0x0f) ? star_color : 0;
279270
280      bitmap.pix32(bitmap_y, x) = pens[color];
271      bitmap.pix32(bitmap_y, x) = m_palette->pen_color(color);
281272
282273      /* next pixel */
283274      x = x + 1;
r248543r248544
612603   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
613604   MCFG_SCREEN_UPDATE_DRIVER(enigma2_state, screen_update_enigma2)
614605
606   MCFG_PALETTE_ADD_3BIT_BGR("palette")
607
615608   /* audio hardware */
616609   MCFG_SPEAKER_STANDARD_MONO("mono")
617610
r248543r248544
662655   ROM_REGION( 0x10000, "audiocpu", 0 )
663656   ROM_LOAD( "enigma2.s",    0x0000, 0x1000, CRC(68fd8c54) SHA1(69996d5dfd996f0aacb26e397bef314204a2a88a) )
664657
665   ROM_REGION( 0x1000, "proms", 0 )    /* color map/star map */
658   ROM_REGION( 0x0800, "colors", 0 )
666659   ROM_LOAD( "7.11f",        0x0000, 0x0800, CRC(409b5aad) SHA1(1b774a70f725637458ed68df9ed42476291b0e43) )
667   ROM_LOAD( "8.13f",        0x0800, 0x0800, CRC(e9cb116d) SHA1(41da4f46c5614ec3345c233467ebad022c6b0bf5) )
660
661   ROM_REGION( 0x0800, "stars", 0 )
662   ROM_LOAD( "8.13f",        0x0000, 0x0800, CRC(e9cb116d) SHA1(41da4f46c5614ec3345c233467ebad022c6b0bf5) )
668663ROM_END
669664
670665
trunk/src/mame/drivers/kangaroo.c
r248543r248544
443443   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 320*2, 0*2, 256*2, 260, 8, 248)
444444   MCFG_SCREEN_UPDATE_DRIVER(kangaroo_state, screen_update_kangaroo)
445445
446   MCFG_PALETTE_ADD_3BIT_BGR("palette")
447
446448   /* sound hardware */
447449   MCFG_SPEAKER_STANDARD_MONO("mono")
448450   MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/8)
trunk/src/mame/drivers/m62.c
r248543r248544
21762176   membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000);
21772177}
21782178
2179GAME( 1984, kungfum,  0,        kungfum,  kungfum,  driver_device, 0,        ROT0,   "Irem", "Kung-Fu Master (World)", GAME_SUPPORTS_SAVE )
2180GAME( 1984, kungfumd, kungfum,  kungfum,  kungfum,  driver_device, 0,        ROT0,   "Irem (Data East USA license)", "Kung-Fu Master (US)", GAME_SUPPORTS_SAVE )
2181GAME( 1984, spartanx, kungfum,  kungfum,  kungfum,  driver_device, 0,        ROT0,   "Irem", "Spartan X (Japan)", GAME_SUPPORTS_SAVE )
2182GAME( 1984, kungfub,  kungfum,  kungfum,  kungfum,  driver_device, 0,        ROT0,   "bootleg", "Kung-Fu Master (bootleg set 1)", GAME_SUPPORTS_SAVE )
2183GAME( 1984, kungfub2, kungfum,  kungfum,  kungfum,  driver_device, 0,        ROT0,   "bootleg", "Kung-Fu Master (bootleg set 2)", GAME_SUPPORTS_SAVE )
2184GAME( 1984, battroad, 0,        battroad, battroad, m62_state,     battroad, ROT90,  "Irem", "The Battle-Road", GAME_SUPPORTS_SAVE )
2185GAME( 1984, ldrun,    0,        ldrun,    ldrun,    driver_device, 0,        ROT0,   "Irem (licensed from Broderbund)", "Lode Runner (set 1)", GAME_SUPPORTS_SAVE )
2186GAME( 1984, ldruna,   ldrun,    ldrun,    ldrun,    driver_device, 0,        ROT0,   "Irem (licensed from Broderbund, Digital Controls Inc. license)", "Lode Runner (set 2)", GAME_SUPPORTS_SAVE )
2187GAME( 1984, ldrun2,   0,        ldrun2,   ldrun2,   m62_state,     ldrun2,   ROT0,   "Irem (licensed from Broderbund)", "Lode Runner II - The Bungeling Strikes Back", GAME_SUPPORTS_SAVE ) /* Japanese version is called Bangeringu Teikoku No Gyakushuu */
2188GAME( 1985, ldrun3,   0,        ldrun3,   ldrun3,   driver_device, 0,        ROT0,   "Irem (licensed from Broderbund)", "Lode Runner III - The Golden Labyrinth", GAME_SUPPORTS_SAVE )
2189GAME( 1985, ldrun3j,  ldrun3,   ldrun3,   ldrun3,   driver_device, 0,        ROT0,   "Irem (licensed from Broderbund)", "Lode Runner III - Majin No Fukkatsu (Japan)", GAME_SUPPORTS_SAVE )
2190GAME( 1986, ldrun4,   0,        ldrun4,   ldrun4,   m62_state,     ldrun4,   ROT0,   "Irem (licensed from Broderbund)", "Lode Runner IV - Teikoku Karano Dasshutsu (Japan)", GAME_SUPPORTS_SAVE )
2191GAME( 1985, lotlot,   0,        lotlot,   lotlot,   driver_device, 0,        ROT0,   "Irem (licensed from Tokuma Shoten)", "Lot Lot", GAME_SUPPORTS_SAVE )
2192GAME( 1986, kidniki,  0,        kidniki,  kidniki,  m62_state,     kidniki,  ROT0,   "Irem", "Kid Niki - Radical Ninja (World)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2193GAME( 1986, kidnikiu, kidniki,  kidniki,  kidniki,  m62_state,     kidniki,  ROT0,   "Irem (Data East USA license)", "Kid Niki - Radical Ninja (US)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2194GAME( 1986, yanchamr, kidniki,  kidniki,  kidniki,  m62_state,     kidniki,  ROT0,   "Irem", "Kaiketsu Yanchamaru (Japan)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2195GAME( 1987, lithero,  kidniki,  kidniki,  kidniki,  m62_state,     kidniki,  ROT0,   "bootleg", "Little Hero", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2196GAME( 1985, spelunkr, 0,        spelunkr, spelunkr, m62_state,     spelunkr, ROT0,   "Irem (licensed from Broderbund)", "Spelunker", GAME_SUPPORTS_SAVE )
2197GAME( 1985, spelunkrj,spelunkr, spelunkr, spelunkr, m62_state,     spelunkr, ROT0,   "Irem (licensed from Broderbund)", "Spelunker (Japan)", GAME_SUPPORTS_SAVE )
2198GAME( 1986, spelunk2, 0,        spelunk2, spelunk2, m62_state,     spelunk2, ROT0,   "Irem (licensed from Broderbund)", "Spelunker II", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2199GAME( 1986, youjyudn, 0,        youjyudn, youjyudn, m62_state,     youjyudn, ROT270, "Irem", "Youjyuden (Japan)", GAME_SUPPORTS_SAVE )
2200GAME( 1985, horizon,  0,        horizon,  horizon,  driver_device, 0,        ROT0,   "Irem", "Horizon (Irem)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2179GAME( 1984, kungfum,  0,        kungfum,  kungfum,  driver_device, 0,        ROT0,   "Irem", "Kung-Fu Master (World)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2180GAME( 1984, kungfumd, kungfum,  kungfum,  kungfum,  driver_device, 0,        ROT0,   "Irem (Data East USA license)", "Kung-Fu Master (US)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2181GAME( 1984, spartanx, kungfum,  kungfum,  kungfum,  driver_device, 0,        ROT0,   "Irem", "Spartan X (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2182GAME( 1984, kungfub,  kungfum,  kungfum,  kungfum,  driver_device, 0,        ROT0,   "bootleg", "Kung-Fu Master (bootleg set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2183GAME( 1984, kungfub2, kungfum,  kungfum,  kungfum,  driver_device, 0,        ROT0,   "bootleg", "Kung-Fu Master (bootleg set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2184GAME( 1984, battroad, 0,        battroad, battroad, m62_state,     battroad, ROT90,  "Irem", "The Battle-Road", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2185GAME( 1984, ldrun,    0,        ldrun,    ldrun,    driver_device, 0,        ROT0,   "Irem (licensed from Broderbund)", "Lode Runner (set 1)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2186GAME( 1984, ldruna,   ldrun,    ldrun,    ldrun,    driver_device, 0,        ROT0,   "Irem (licensed from Broderbund, Digital Controls Inc. license)", "Lode Runner (set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2187GAME( 1984, ldrun2,   0,        ldrun2,   ldrun2,   m62_state,     ldrun2,   ROT0,   "Irem (licensed from Broderbund)", "Lode Runner II - The Bungeling Strikes Back", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND ) /* Japanese version is called Bangeringu Teikoku No Gyakushuu */
2188GAME( 1985, ldrun3,   0,        ldrun3,   ldrun3,   driver_device, 0,        ROT0,   "Irem (licensed from Broderbund)", "Lode Runner III - The Golden Labyrinth", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2189GAME( 1985, ldrun3j,  ldrun3,   ldrun3,   ldrun3,   driver_device, 0,        ROT0,   "Irem (licensed from Broderbund)", "Lode Runner III - Majin No Fukkatsu (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2190GAME( 1986, ldrun4,   0,        ldrun4,   ldrun4,   m62_state,     ldrun4,   ROT0,   "Irem (licensed from Broderbund)", "Lode Runner IV - Teikoku Karano Dasshutsu (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2191GAME( 1985, lotlot,   0,        lotlot,   lotlot,   driver_device, 0,        ROT0,   "Irem (licensed from Tokuma Shoten)", "Lot Lot", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2192GAME( 1986, kidniki,  0,        kidniki,  kidniki,  m62_state,     kidniki,  ROT0,   "Irem", "Kid Niki - Radical Ninja (World)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2193GAME( 1986, kidnikiu, kidniki,  kidniki,  kidniki,  m62_state,     kidniki,  ROT0,   "Irem (Data East USA license)", "Kid Niki - Radical Ninja (US)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2194GAME( 1986, yanchamr, kidniki,  kidniki,  kidniki,  m62_state,     kidniki,  ROT0,   "Irem", "Kaiketsu Yanchamaru (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2195GAME( 1987, lithero,  kidniki,  kidniki,  kidniki,  m62_state,     kidniki,  ROT0,   "bootleg", "Little Hero", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2196GAME( 1985, spelunkr, 0,        spelunkr, spelunkr, m62_state,     spelunkr, ROT0,   "Irem (licensed from Broderbund)", "Spelunker", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2197GAME( 1985, spelunkrj,spelunkr, spelunkr, spelunkr, m62_state,     spelunkr, ROT0,   "Irem (licensed from Broderbund)", "Spelunker (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2198GAME( 1986, spelunk2, 0,        spelunk2, spelunk2, m62_state,     spelunk2, ROT0,   "Irem (licensed from Broderbund)", "Spelunker II", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2199GAME( 1986, youjyudn, 0,        youjyudn, youjyudn, m62_state,     youjyudn, ROT270, "Irem", "Youjyuden (Japan)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
2200GAME( 1985, horizon,  0,        horizon,  horizon,  driver_device, 0,        ROT0,   "Irem", "Horizon (Irem)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND )
trunk/src/mame/drivers/midyunit.c
r248543r248544
12191219
12201220   /* basic machine hardware */
12211221
1222   MCFG_CPU_ADD("audiocpu", Z80, 5000000)
1222   MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz / 2)
12231223   MCFG_CPU_PROGRAM_MAP(yawdim_sound_map)
12241224
12251225   /* video hardware */
r248543r248544
12281228   MCFG_VIDEO_START_OVERRIDE(midyunit_state,mkyawdim)
12291229
12301230   /* sound hardware */
1231   MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
1231   MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, OKIM6295_PIN7_HIGH)
12321232   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
12331233MACHINE_CONFIG_END
12341234
r248543r248544
25612561
25622562ROM_START( mkyawdim2 )
25632563   ROM_REGION( 0x10000, "audiocpu", 0 )    /* sound CPU */
2564      // Differs from other yawdim set - sound doesn't want to work
2565   ROM_LOAD ( "yawdim.u167", 0x00000, 0x10000, CRC(16da7efb) SHA1(ac1db81a55aca36136b94977a91a1fc778b7b164) )
2564   // Differs from other mkyawdim set
2565   ROM_LOAD ( "yawdim.u167", 0x00000, 0x08000, CRC(16da7efb) SHA1(ac1db81a55aca36136b94977a91a1fc778b7b164) )
2566   ROM_CONTINUE(             0x00000, 0x08000 )
25662567
25672568   ROM_REGION( 0x100000, "oki", 0 )    /* ADPCM */
2568      // Half size as mkyawdim set
2569   ROM_LOAD( "yawdim.u159",  0x00000, 0x20000, CRC(95b120af) SHA1(41b6fb384e5048926b87959a2c58d96b95698aba) )
2570   ROM_CONTINUE(       0x40000, 0x20000 )
2569   // Half size as mkyawdim set
2570   ROM_LOAD( "yawdim.u159", 0x00000, 0x20000, CRC(95b120af) SHA1(41b6fb384e5048926b87959a2c58d96b95698aba) )
2571   ROM_CONTINUE(            0x40000, 0x20000 )
2572   ROM_RELOAD(              0x80000, 0x20000 )
2573   ROM_CONTINUE(            0xc0000, 0x20000 )
25712574   ROM_LOAD( "mw-15.u160",  0x20000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) )
2572   ROM_CONTINUE(       0x60000, 0x20000 )
2573   ROM_CONTINUE(       0xa0000, 0x20000 )
2574   ROM_CONTINUE(       0xe0000, 0x20000 )
2575   ROM_CONTINUE(            0x60000, 0x20000 )
2576   ROM_CONTINUE(            0xa0000, 0x20000 )
2577   ROM_CONTINUE(            0xe0000, 0x20000 )
25752578
25762579   ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */
25772580   ROM_LOAD16_BYTE( "4.u25",  0x00000, 0x80000, CRC(b12b3bf2) SHA1(deb7755e8407d9de25124b3fdbc4c834a25d8252) )
r248543r248544
25952598
25962599   ROM_REGION( 0x100000, "oki", 0 )    /* ADPCM */
25972600   ROM_LOAD( "13.bin",  0x00000, 0x20000, CRC(921c613d) SHA1(be62b87f195b6347112ab13cc14514d4c88a8b86) ) // Half size as mkyawdim2 set and a quarter of mkyawdim
2601   ROM_RELOAD(          0x40000, 0x20000 )
2602   ROM_RELOAD(          0x80000, 0x20000 )
2603   ROM_RELOAD(          0xc0000, 0x20000 )
25982604   ROM_LOAD( "14.bin",  0x20000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) )
2599   ROM_CONTINUE(       0x60000, 0x20000 )
2600   ROM_CONTINUE(       0xa0000, 0x20000 )
2601   ROM_CONTINUE(       0xe0000, 0x20000 )
2605   ROM_CONTINUE(        0x60000, 0x20000 )
2606   ROM_CONTINUE(        0xa0000, 0x20000 )
2607   ROM_CONTINUE(        0xe0000, 0x20000 )
26022608
26032609   ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */
26042610   ROM_LOAD16_BYTE( "p1.bin",  0x00000, 0x80000, CRC(2337a0f9) SHA1(d25743e5bb7b4a60f181783d17f217aa0a64536a) ) // differs from other Yawdim sets
r248543r248544
26062612
26072613   ROM_REGION( 0x800000, "gfx1", 0 )
26082614   ROM_LOAD ( "12.bin",  0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) )
2609   ROM_LOAD ( "8.bin",  0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) )
2615   ROM_LOAD ( "8.bin",  0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) )
26102616   ROM_LOAD ( "10.bin",  0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) )
2611   ROM_LOAD ( "3.bin",  0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) )
2617   ROM_LOAD ( "3.bin",  0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) )
26122618
26132619   ROM_LOAD (  "6.bin",  0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) )
26142620   ROM_LOAD (  "1.bin",  0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) )
2615   ROM_LOAD (  "11.bin", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) )
2621   ROM_LOAD (  "11.bin", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) )
26162622   ROM_LOAD (  "2.bin",  0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) )
26172623
2618   ROM_LOAD ( "4.bin",  0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) )
2619   ROM_LOAD ( "7.bin",  0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) )
2620   ROM_LOAD ( "9.bin",  0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) )
2621   ROM_LOAD ( "5.bin",  0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) )
2624   ROM_LOAD ( "4.bin",   0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) )
2625   ROM_LOAD ( "7.bin",   0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) )
2626   ROM_LOAD ( "9.bin",   0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) )
2627   ROM_LOAD ( "5.bin",   0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) )
26222628ROM_END
26232629
26242630
2631/*************************************************************************
2632
2633Mortal Kombat bootleg
2634
2635PCB Layout
2636----------
2637
2638Kombat rev. 2 1c
2639|-----------------------------------------------------|
2640|TDA2003 LM358 15  TMS34010                         19|
2641|              16          48MHz                    20|
2642| 14           8MHz                                   |
2643| 6116                                              21|
2644| Z80         M6295                                 22|
2645|J                                                    |
2646|A                           41464      4464 4464   23|
2647|M                  6264     41464      4464 4464   24|
2648|M                  17       41464      4464 4464     |
2649|A                  18       41464      4464 4464   25|
2650| DSW2(4)                               4464 4464   26|
2651|             6264                      4464 4464     |
2652|     DSW1(8)                                       27|
2653|             6264               TPC1020            28|
2654|                                                   29|
2655|                                                   30|
2656|-----------------------------------------------------|
2657Notes:
2658      Z80 @ 4MHz [8/2]
2659      TMS34010 @ 48MHz
2660      M6295 @ 1MHz[8/8]. Pin 7 HIGH
2661      41464/4464 - 64kx4-bit DRAM
2662      6264 - 8kx8-bit SRAM
2663      6116 - 2kx8-bit SRAM
2664      EPROMS: 14 is 27C512, 15 is 27C010, all others are 27C040
2665              14 - Z80 program
2666              15-16 - Oki samples
2667              17-18 - Main program
2668              19-30 - Graphics
2669
2670*************************************************************************/
2671
2672// same as mkyawdim3, but with its own main program roms
2673ROM_START( mkyawdim4 )                                                                                             
2674   ROM_REGION( 0x10000, "audiocpu", 0 )    /* sound CPU */
2675   ROM_LOAD( "14.bin", 0x00000, 0x10000, CRC(b58d229e) SHA1(3ed14ef650dfa7f9d460611b19e9233a022cbea6) )
2676
2677   ROM_REGION( 0x100000, "oki", 0 )    /* ADPCM */
2678   ROM_LOAD( "15.bin", 0x00000, 0x20000, CRC(921c613d) SHA1(be62b87f195b6347112ab13cc14514d4c88a8b86) )
2679   ROM_RELOAD(         0x40000, 0x20000 )
2680   ROM_RELOAD(         0x80000, 0x20000 )
2681   ROM_RELOAD(         0xc0000, 0x20000 )
2682   ROM_LOAD( "16.bin", 0x20000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) )
2683   ROM_CONTINUE(       0x60000, 0x20000 )
2684   ROM_CONTINUE(       0xa0000, 0x20000 )
2685   ROM_CONTINUE(       0xe0000, 0x20000 )
2686
2687   ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */
2688   ROM_LOAD16_BYTE( "17.bin", 0x00000, 0x80000, CRC(671b533d) SHA1(20859ceb0635126047216f85a6e35072e14766ad) )
2689   ROM_LOAD16_BYTE( "18.bin", 0x00001, 0x80000, CRC(4e857747) SHA1(b94c7d5e4356ac6890e6bfaf75c76d94408e5bc5) )
2690//   ROM_LOAD16_BYTE( "17.bin", 0x00000, 0x80000, CRC(b12b3bf2) SHA1(deb7755e8407d9de25124b3fdbc4c834a25d8252) ) // other PCB: mkyawdim3 with mkyawdim main program
2691//   ROM_LOAD16_BYTE( "18.bin", 0x00001, 0x80000, CRC(7a37dc5c) SHA1(c4fc6933d8b990c5c56c65282b1f72b90b5d5435) )
2692
2693   ROM_REGION( 0x800000, "gfx1", 0 )
2694   ROM_LOAD( "22.bin", 0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) )
2695   ROM_LOAD( "21.bin", 0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) )
2696   ROM_LOAD( "20.bin", 0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) )
2697   ROM_LOAD( "19.bin", 0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) )
2698
2699   ROM_LOAD( "26.bin", 0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) )
2700   ROM_LOAD( "25.bin", 0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) )
2701   ROM_LOAD( "24.bin", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) )
2702   ROM_LOAD( "23.bin", 0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) )
2703
2704   ROM_LOAD( "30.bin", 0x400000, 0x80000, CRC(45acaf21) SHA1(5edd36c55f4e5d3c74fb85171728ec0a58284b12) )
2705   ROM_LOAD( "29.bin", 0x480000, 0x80000, CRC(2a6c10a0) SHA1(cc90923c44f2961b945a0fd0f85ecc2ba04af2cb) )
2706   ROM_LOAD( "28.bin", 0x500000, 0x80000, CRC(23308979) SHA1(0b36788624a1cf0d3f4c895be5ba967b8dfcf85e) )
2707   ROM_LOAD( "27.bin", 0x580000, 0x80000, CRC(cafc47bb) SHA1(8610af6e52f7089ff4acd850c53ab8b4119e4445) )
2708ROM_END                                                                                                             
2709
2710
2711
26252712ROM_START( term2 )
26262713   ROM_REGION( 0x50000, "adpcm:cpu", 0 )   /* sound CPU */
26272714   ROM_LOAD (  "t2_snd.3", 0x10000, 0x20000, CRC(73c3f5c4) SHA1(978dd974590e77294dbe9a647aebd3d24af6397f) )
r248543r248544
28742961GAME( 1992, mknifty,  mk,       yunit_adpcm_6bit_fast,   mkla4, midyunit_state,    mkyturbo, ROT0, "hack",     "Mortal Kombat (Nifty Kombo, hack)", GAME_SUPPORTS_SAVE )
28752962GAME( 1992, mknifty666, mk,     yunit_adpcm_6bit_fast,   mkla4, midyunit_state,    mkyturbo, ROT0, "hack",     "Mortal Kombat (Nifty Kombo 666, hack)", GAME_SUPPORTS_SAVE )
28762963GAME( 1992, mkyawdim, mk,       mkyawdim,                mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 1)", GAME_SUPPORTS_SAVE )
2877GAME( 1992, mkyawdim2,mk,       mkyawdim,                mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 2)", GAME_SUPPORTS_SAVE | GAME_NO_SOUND )
2878GAME( 1992, mkyawdim3, mk,       mkyawdim,                mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 3)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND) //some sound effects aren't reproduced
2964GAME( 1992, mkyawdim2,mk,       mkyawdim,                mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 2)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND) // are some sound effects missing/wrong?
2965GAME( 1992, mkyawdim3,mk,       mkyawdim,                mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 3)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND) // are some sound effects missing/wrong?
2966GAME( 1992, mkyawdim4,mk,       mkyawdim,                mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 4)", GAME_SUPPORTS_SAVE | GAME_IMPERFECT_SOUND) // are some sound effects missing/wrong?
28792967
28802968GAME( 1992, totcarn,  0,        yunit_adpcm_6bit_fast,   totcarn, midyunit_state,  totcarn,  ROT0, "Midway",   "Total Carnage (rev LA1 03/10/92)", GAME_SUPPORTS_SAVE )
28812969GAME( 1992, totcarnp, totcarn,  yunit_adpcm_6bit_fast,   totcarn, midyunit_state,  totcarn,  ROT0, "Midway",   "Total Carnage (prototype, rev 1.0 01/25/92)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/mmagic.c
r248543r248544
6969      : driver_device(mconfig, type, tag),
7070      m_maincpu(*this, "maincpu"),
7171      m_screen(*this, "screen"),
72      m_palette(*this, "palette"),
7273      m_vram(*this, "vram"),
7374      m_tiles(*this, "tiles"),
7475      m_colors(*this, "colors"),
7576      m_ball_x(0x00),
7677      m_ball_y(0x00),
77      m_color(0)
78      m_color(0x00)
7879   {}
7980
8081   DECLARE_READ8_MEMBER(vblank_r);
r248543r248544
9192private:
9293   required_device<cpu_device> m_maincpu;
9394   required_device<screen_device> m_screen;
95   required_device<palette_device> m_palette;
9496   required_shared_ptr<UINT8> m_vram;
9597   required_region_ptr<UINT8> m_tiles;
9698   required_region_ptr<UINT8> m_colors;
9799
98   static const rgb_t m_palette[];
99
100100   UINT8 m_ball_x;
101101   UINT8 m_ball_y;
102
103   int m_color;
102   UINT8 m_color;
104103};
105104
106105
r248543r248544
157156   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED)
158157   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
159158   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
160   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Debug?")   // debug? checked once at startup
159   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Debug?") // checked once at startup
161160
162161   PORT_START("paddle")
163   PORT_BIT(0xff, 0x80, IPT_PADDLE) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_CENTERDELTA(0)
162   PORT_BIT(0xff, 0x80, IPT_PADDLE) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_CENTERDELTA(0)
164163INPUT_PORTS_END
165164
166165
r248543r248544
216215         {
217216            UINT8 gfx = m_tiles[(code << 4) + tx];
218217
219            bitmap.pix32(y * 12 + tx, x * 8 + 0) = BIT(gfx, 4) ? rgb_t::black : m_palette[color];
220            bitmap.pix32(y * 12 + tx, x * 8 + 1) = BIT(gfx, 5) ? rgb_t::black : m_palette[color];
221            bitmap.pix32(y * 12 + tx, x * 8 + 2) = BIT(gfx, 6) ? rgb_t::black : m_palette[color];
222            bitmap.pix32(y * 12 + tx, x * 8 + 3) = BIT(gfx, 7) ? rgb_t::black : m_palette[color];
218            bitmap.pix32(y * 12 + tx, x * 8 + 0) = BIT(gfx, 4) ? rgb_t::black : m_palette->pen_color(color);
219            bitmap.pix32(y * 12 + tx, x * 8 + 1) = BIT(gfx, 5) ? rgb_t::black : m_palette->pen_color(color);
220            bitmap.pix32(y * 12 + tx, x * 8 + 2) = BIT(gfx, 6) ? rgb_t::black : m_palette->pen_color(color);
221            bitmap.pix32(y * 12 + tx, x * 8 + 3) = BIT(gfx, 7) ? rgb_t::black : m_palette->pen_color(color);
223222
224            bitmap.pix32(y * 12 + tx, x * 8 + 4) = BIT(gfx, 0) ? rgb_t::black : m_palette[color];
225            bitmap.pix32(y * 12 + tx, x * 8 + 5) = BIT(gfx, 1) ? rgb_t::black : m_palette[color];
226            bitmap.pix32(y * 12 + tx, x * 8 + 6) = BIT(gfx, 2) ? rgb_t::black : m_palette[color];
227            bitmap.pix32(y * 12 + tx, x * 8 + 7) = BIT(gfx, 3) ? rgb_t::black : m_palette[color];
223            bitmap.pix32(y * 12 + tx, x * 8 + 4) = BIT(gfx, 0) ? rgb_t::black : m_palette->pen_color(color);
224            bitmap.pix32(y * 12 + tx, x * 8 + 5) = BIT(gfx, 1) ? rgb_t::black : m_palette->pen_color(color);
225            bitmap.pix32(y * 12 + tx, x * 8 + 6) = BIT(gfx, 2) ? rgb_t::black : m_palette->pen_color(color);
226            bitmap.pix32(y * 12 + tx, x * 8 + 7) = BIT(gfx, 3) ? rgb_t::black : m_palette->pen_color(color);
228227         }
229228      }
230229   }
r248543r248544
242241
243242
244243//**************************************************************************
245//  PALETTE
246//**************************************************************************
247
248const rgb_t mmagic_state::m_palette[] =
249{
250   rgb_t(0x00, 0x00, 0x00),
251   rgb_t(0xff, 0x00, 0x00),
252   rgb_t(0x00, 0xff, 0x00),
253   rgb_t(0xff, 0xff, 0x00),
254   rgb_t(0x00, 0x00, 0xff),
255   rgb_t(0xff, 0x00, 0xff),
256   rgb_t(0x00, 0xff, 0xff),
257   rgb_t(0xff, 0xff, 0xff)
258};
259
260
261//**************************************************************************
262244//  AUDIO EMULATION
263245//**************************************************************************
264246
r248543r248544
297279   MCFG_SCREEN_RAW_PARAMS(XTAL_6_144MHz, 384, 0, 256, 264, 0, 192)
298280   MCFG_SCREEN_UPDATE_DRIVER(mmagic_state, screen_update)
299281
282   MCFG_PALETTE_ADD_3BIT_RGB("palette")
283
300284   // sound hardware
301285   // TODO: SN76477 + discrete sound
302286MACHINE_CONFIG_END
trunk/src/mame/drivers/namcond1.c
r248543r248544
7070
7171#include "emu.h"
7272#include "cpu/m68000/m68000.h"
73#include "video/ygv608.h"
7473#include "cpu/h8/h83002.h"
7574#include "includes/namcond1.h"
7675#include "sound/c352.h"
r248543r248544
8079
8180static ADDRESS_MAP_START( namcond1_map, AS_PROGRAM, 16, namcond1_state )
8281   AM_RANGE(0x000000, 0x0fffff) AM_ROM
83   AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(namcond1_shared_ram_r,namcond1_shared_ram_w) AM_SHARE("shared_ram")
82   AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("shared_ram")
8483   AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE("ygv608", ygv608_device, read, write)
8584   AM_RANGE(0xa00000, 0xa00fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xff00)
8685#ifdef MAME_DEBUG
8786   AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD("ygv608", ygv608_device, debug_trigger_r)
8887#endif
89   AM_RANGE(0xc3ff00, 0xc3ffff) AM_READWRITE(namcond1_cuskey_r,namcond1_cuskey_w)
88   AM_RANGE(0xc3ff00, 0xc3ffff) AM_READWRITE(cuskey_r,cuskey_w)
9089ADDRESS_MAP_END
9190
9291/*************************************************************/
r248543r248544
223222   GFXDECODE_ENTRY( "gfx1", 0x00000000, pts_16x16_8bits_layout,  0, 256 )
224223GFXDECODE_END
225224
226WRITE16_MEMBER(namcond1_state::sharedram_sub_w)
227{
228   COMBINE_DATA(&m_shared_ram[offset]);
229}
230
231READ16_MEMBER(namcond1_state::sharedram_sub_r)
232{
233   return m_shared_ram[offset];
234}
235
236
237225READ16_MEMBER(namcond1_state::mcu_p7_read)
238226{
239227   return 0xff;
r248543r248544
252240/* H8/3002 MCU stuff */
253241static ADDRESS_MAP_START( nd1h8rwmap, AS_PROGRAM, 16, namcond1_state )
254242   AM_RANGE(0x000000, 0x07ffff) AM_ROM
255   AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(sharedram_sub_r, sharedram_sub_w )
243   AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("shared_ram")
256244   AM_RANGE(0xa00000, 0xa07fff) AM_DEVREADWRITE("c352", c352_device, read, write)
257245   AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("DSW")
258246   AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P1_P2")
r248543r248544
409397   ROM_LOAD( "ncs1voic.7c",     0x000000, 0x200000, CRC(ed05fd88) SHA1(ad88632c89a9946708fc6b4c9247e1bae9b2944b) )
410398ROM_END
411399
412GAME( 1995, ncv1,      0, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
413GAME( 1995, ncv1j,  ncv1, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.00)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
414GAME( 1995, ncv1j2, ncv1, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.03)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
415GAME( 1996, ncv2,      0, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.2", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION )
416GAME( 1996, ncv2j,  ncv2, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.2 (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION )
400GAME( 1995, ncv1,      0, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
401GAME( 1995, ncv1j,  ncv1, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.00)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
402GAME( 1995, ncv1j2, ncv1, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.1 (Japan, v1.03)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_SUPPORTS_SAVE )
403GAME( 1996, ncv2,      0, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.2", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
404GAME( 1996, ncv2j,  ncv2, namcond1, namcond1, driver_device, 0, ROT90, "Namco", "Namco Classic Collection Vol.2 (Japan)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_UNEMULATED_PROTECTION | GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/namcos1.c
r248543r248544
353353
354354READ8_MEMBER(namcos1_state::dsw_r)
355355{
356   int ret = ioport("DIPSW")->read();
356   int ret = m_io_dipsw->read();
357357   if (!(offset & 2)) ret >>= 4;
358358   return 0xf0 | ret;
359359}
r248543r248544
871871      //  Allow "CPU #0&1 Kick Watchdog in IRQ" = _____oo_
872872      //                                          12345678
873873   #endif
874   PORT_DIPNAME( 0x20, 0x20, "Stage Select (ver. SH3 only)" )
874INPUT_PORTS_END
875
876
877static INPUT_PORTS_START( splatter3 )
878   PORT_INCLUDE( splatter )
879
880   PORT_MODIFY( "DIPSW" )
881   PORT_DIPNAME( 0x20, 0x20, "Stage Select" ) PORT_DIPLOCATION("SW:3")
875882   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
876883   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
877884INPUT_PORTS_END
r248543r248544
28362843GAME( 1988, mmaze,     0,        ns1,     mmaze,    namcos1_state, alice,    ROT180, "Namco", "Marchen Maze (Japan)", GAME_SUPPORTS_SAVE )
28372844GAME( 1988, bakutotu,  0,        ns1,     bakutotu, namcos1_state, bakutotu, ROT180, "Namco", "Bakutotsu Kijuutei", GAME_SUPPORTS_SAVE )
28382845GAME( 1988, wldcourt,  0,        ns1,     wldcourt, namcos1_state, wldcourt, ROT180, "Namco", "World Court (Japan)", GAME_SUPPORTS_SAVE )
2839GAME( 1988, splatter,  0,        ns1,     splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, new version (SH3))", GAME_SUPPORTS_SAVE )
2846GAME( 1988, splatter,  0,        ns1,     splatter3,namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, new version (SH3))", GAME_SUPPORTS_SAVE )
28402847GAME( 1988, splatter2, splatter, ns1,     splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, old version (SH2))", GAME_SUPPORTS_SAVE )
28412848GAME( 1988, splatterj, splatter, ns1,     splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (Japan, SH1)", GAME_SUPPORTS_SAVE )
28422849GAME( 1988, faceoff,   0,        ns1,     faceoff,  namcos1_state, faceoff,  ROT180, "Namco", "Face Off (Japan)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/nbmj8891.c
r248543r248544
36413641   ROM_LOAD( "hnoj_11.bin", 0x100000, 0x20000, CRC(bfe38671) SHA1(6c81864caab61ea60dfe446b390221bdcfb0895e) )
36423642ROM_END
36433643
3644ROM_START( hanaojia )
3645   ROM_REGION( 0x10000, "maincpu", 0 ) /* program */
3646   ROM_LOAD( "02.f3.bin", 0x00000, 0x10000, CRC(2f493c0b) SHA1(0c2b2ece744556f8b2d25fde9017680a77afcf6b) )
3647
3648   ROM_REGION( 0x10000, "voice", 0 ) /* voice */
3649   ROM_LOAD( "hnoj_01.bin", 0x00000, 0x10000, CRC(3f7fcb94) SHA1(7bb0bc3a8c34b1b707b39ba52be40900cca0f015) )
3650
3651   ROM_REGION( 0x200000, "gfx1", 0 ) /* gfx */
3652   ROM_LOAD( "hnoj_03.bin", 0x000000, 0x20000, CRC(fbbe1dce) SHA1(f742bb8e06a1e71e7c586d0a821f96238bdbc6ac) )
3653   ROM_LOAD( "hnoj_04.bin", 0x020000, 0x20000, CRC(2074b04f) SHA1(e759e49474bcb1caeea5a60708844ec53aed64c6) )
3654   ROM_LOAD( "hnoj_05.bin", 0x040000, 0x20000, CRC(84d20ba6) SHA1(0f270d43cdb390492f349b3680978e2e36a6a5d4) )
3655   ROM_LOAD( "hnoj_06.bin", 0x060000, 0x20000, CRC(f85fedd8) SHA1(224a5b05c28b1f84df0bd32b32cb2aa416156460) )
3656   ROM_LOAD( "hnoj_07.bin", 0x080000, 0x20000, CRC(c72cdde1) SHA1(877cd52461ecc9cd44d5b328c36ac8878056059d) )
3657   ROM_LOAD( "hnoj_08.bin", 0x0a0000, 0x20000, CRC(12e70429) SHA1(4728a5a0f636f793099c5a3a7bc998931921623f) )
3658   ROM_LOAD( "hnoj_09.bin", 0x0c0000, 0x20000, CRC(4ec74a59) SHA1(92803e99aa6fb5c8f2227db3b7cc875266249ed1) )
3659   ROM_LOAD( "hnoj_10.bin", 0x0e0000, 0x20000, CRC(e9212fc5) SHA1(c09f4a93f01630696acb0e80b1c6adb711377319) )
3660   ROM_LOAD( "hnoj_11.bin", 0x100000, 0x20000, CRC(bfe38671) SHA1(6c81864caab61ea60dfe446b390221bdcfb0895e) )
3661ROM_END
3662
36443663ROM_START( mjcamerb )
36453664   ROM_REGION( 0x10000, "maincpu", 0 ) /* program */
36463665   ROM_LOAD( "2.3h",        0x00000, 0x10000, CRC(3a0f110b) SHA1(8923136ed25ed91c90f93c3f75f5532ff8f9d420) )
r248543r248544
38573876GAME( 1990, club90s,   0,        club90s,  club90s,  driver_device,         0, ROT0,   "Nichibutsu", "Mahjong CLUB 90's (set 1) (Japan 900919)", GAME_SUPPORTS_SAVE )
38583877GAME( 1990, club90sa,  club90s,  club90s,  club90s,  driver_device,         0, ROT0,   "Nichibutsu", "Mahjong CLUB 90's (set 2) (Japan 900919)", GAME_SUPPORTS_SAVE )
38593878GAME( 1990, lovehous,  club90s,  lovehous, lovehous, driver_device,         0, ROT0,   "Nichibutsu", "Mahjong Love House [BET] (Japan 901024)", GAME_SUPPORTS_SAVE )
3860GAME( 1991, hanaoji,   0,        hanaoji,  hanaoji,  driver_device,         0, ROT0,   "Nichibutsu", "Hana to Ojisan [BET] (Japan 911209)", GAME_SUPPORTS_SAVE )
3879GAME( 1991, hanaoji,   0,        hanaoji,  hanaoji,  driver_device,         0, ROT0,   "Nichibutsu", "Hana to Ojisan [BET] (ver 1.01, 1991/12/09)", GAME_SUPPORTS_SAVE )
3880GAME( 1991, hanaojia,  hanaoji,  hanaoji,  hanaoji,  driver_device,         0, ROT0,   "Nichibutsu", "Hana to Ojisan [BET] (ver 1.00, 1991/08/23)", GAME_SUPPORTS_SAVE )
38613881GAME( 1988, taiwanmb,  0,        taiwanmb, taiwanmb, driver_device,         0, ROT0,   "Miki Syouji", "Taiwan Mahjong [BET] (Japan 881208)", GAME_SUPPORTS_SAVE )
38623882GAME( 1989, pairsnb,   0,        pairsnb, pairsnb,  nbmj8891_state,  pairsnb,  ROT0,   "Nichibutsu", "Pairs (Nichibutsu) (Japan 890822)", GAME_SUPPORTS_SAVE )
38633883GAME( 1989, pairsten,  pairsnb,  pairsten, pairsnb, nbmj8891_state,  pairsten, ROT0,   "System Ten", "Pairs (System Ten) (Japan 890826)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/nyny.c
r248543r248544
8484#define AUDIO_CPU_2_CLOCK           AUDIO_2_MASTER_CLOCK
8585
8686
87#define NUM_PENS       8
88
8987class nyny_state : public driver_device
9088{
9189public:
r248543r248544
10098      m_audiocpu2(*this, "audio2"),
10199      m_ic48_1(*this, "ic48_1"),
102100      m_mc6845(*this, "crtc"),
101      m_palette(*this, "palette"),
103102      m_pia1(*this, "pia1"),
104103      m_pia2(*this, "pia2") { }
105104
r248543r248544
121120   required_device<cpu_device> m_audiocpu2;
122121   required_device<ttl74123_device> m_ic48_1;
123122   required_device<mc6845_device> m_mc6845;
123   required_device<palette_device> m_palette;
124124   required_device<pia6821_device> m_pia1;
125125   required_device<pia6821_device> m_pia2;
126126
127   pen_t m_pens[NUM_PENS];
128127   DECLARE_WRITE8_MEMBER(audio_1_command_w);
129128   DECLARE_WRITE8_MEMBER(audio_1_answer_w);
130129   DECLARE_WRITE8_MEMBER(audio_2_command_w);
r248543r248544
143142   DECLARE_WRITE8_MEMBER(ic48_1_74123_output_changed);
144143   inline void shift_star_generator(  );
145144
146   MC6845_BEGIN_UPDATE(crtc_begin_update);
147145   MC6845_UPDATE_ROW(crtc_update_row);
148146   MC6845_END_UPDATE(crtc_end_update);
149147};
r248543r248544
248246}
249247
250248
251MC6845_BEGIN_UPDATE( nyny_state::crtc_begin_update )
252{
253   /* create the pens */
254   for (offs_t i = 0; i < NUM_PENS; i++)
255   {
256      m_pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
257   }
258}
259
260
261249MC6845_UPDATE_ROW( nyny_state::crtc_update_row )
262250{
263251   UINT8 x = 0;
r248543r248544
307295         else
308296            color = bit2 ? color2 : 0;
309297
310         bitmap.pix32(y, x) = m_pens[color];
298         bitmap.pix32(y, x) = m_palette->pen_color(color);
311299
312300         x += 1;
313301      }
r248543r248544
333321      for (int x = cliprect.min_x; x <= cliprect.max_x; x++)
334322      {
335323         /* check if the star status */
336         if (m_star_enable && (bitmap.pix32(y, x) == m_pens[0]) &&
324         if (m_star_enable && (bitmap.pix32(y, x) == m_palette->pen_color(0)) &&
337325            ((m_star_shift_reg & 0x80ff) == 0x00ff) &&
338326            (((y & 0x01) ^ m_flipscreen) ^ (((x & 0x08) >> 3) ^ m_flipscreen)))
339327         {
r248543r248544
341329                        ((m_star_shift_reg & 0x0400) >>  9) |    /* G */
342330                        ((m_star_shift_reg & 0x1000) >> 10);     /* B */
343331
344            bitmap.pix32(y, x) = m_pens[color];
332            bitmap.pix32(y, x) = m_palette->pen_color(color);
345333         }
346334
347335         if (delay_counter == 0)
r248543r248544
609597   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 256, 0, 256, 256, 0, 256)   /* temporary, CRTC will configure screen */
610598   MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
611599
600   MCFG_PALETTE_ADD_3BIT_RGB("palette")
601
612602   MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK)
613603   MCFG_MC6845_SHOW_BORDER_AREA(false)
614604   MCFG_MC6845_CHAR_WIDTH(8)
615   MCFG_MC6845_BEGIN_UPDATE_CB(nyny_state, crtc_begin_update)
616605   MCFG_MC6845_UPDATE_ROW_CB(nyny_state, crtc_update_row)
617606   MCFG_MC6845_END_UPDATE_CB(nyny_state, crtc_end_update)
618607   MCFG_MC6845_OUT_DE_CB(WRITELINE(nyny_state, display_enable_changed))
trunk/src/mame/drivers/phoenix.c
r248543r248544
876876   ROM_LOAD( "mmi6301.ic41",   0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )  /* palette high bits */
877877ROM_END
878878
879ROM_START( vautourza )
880   ROM_REGION( 0x10000, "maincpu", 0 )
881   ROM_LOAD( "1.e1",  0x0000, 0x0800, CRC(cd2807ee) SHA1(79b9769f212d25b9ccb5124e2aa632c964c14a0b) )
882   ROM_LOAD( "2.f1",  0x0800, 0x0800, CRC(3699b11a) SHA1(7122685cbfcd75898eaa68f8c5bf87c11df59a3b) )
883   ROM_LOAD( "3.h1",  0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) )
884   ROM_LOAD( "4.j1",  0x1800, 0x0800, CRC(106262eb) SHA1(1e52ca66ea3542d86f2604f5aadc854ffe22fd89) )
885   ROM_LOAD( "5.k1",  0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) )
886   ROM_LOAD( "6.h1",  0x2800, 0x0800, CRC(1fcac707) SHA1(ea10a1c94d8cf49391a4d393ccef56ae3b9458b1) )
887   ROM_LOAD( "7.m1",  0x3000, 0x0800, CRC(805ec2e8) SHA1(7e56fc9990eb99512078e2b1e2874fb33b0aa05c) )
888   ROM_LOAD( "8.n1",  0x3800, 0x0800, CRC(1edebb45) SHA1(2fdf061ee600e27a6ed512ea61a8d78307a7fb8a) )
889
890   ROM_REGION( 0x1000, "bgtiles", 0 )
891   ROM_LOAD( "10.h2",     0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
892   ROM_LOAD( "9.j2",      0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
893
894   ROM_REGION( 0x1000, "fgtiles", 0 )
895   ROM_LOAD( "12.h4",  0x0000, 0x0800, CRC(8eff75c9) SHA1(d38a0e0c02ba680984dd8748a3c45ac55f81f127) )
896   ROM_LOAD( "11.j4",  0x0800, 0x0800, CRC(369e7476) SHA1(599d2fc3b298060d746e95c20a089ad37f685d5b) )
897
898   ROM_REGION( 0x0200, "proms", 0 )
899   ROM_LOAD( "82s135.m9",   0x0100, 0x0100, CRC(c68a49bc) SHA1(1a015b89ac0622e73bcebd76cf5132830fe0bfc1) )  /* expanded in init (upper nibbles are the ic40 data, lower nibbles ic41 data) */
900ROM_END
901
879902ROM_START( falconz )
880903   ROM_REGION( 0x10000, "maincpu", 0 )
881904   ROM_LOAD( "f45.bin",      0x0000, 0x0800, CRC(9158b43b) SHA1(222cbcfb3f95d09bb90148813541c2613d8b7e1c) )
r248543r248544
9981021   ROM_LOAD( "mmi6301.ic41",   0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )  /* palette high bits */
9991022ROM_END
10001023
1024
1025ROM_START( avefenixl )
1026   ROM_REGION( 0x10000, "maincpu", 0 )
1027   ROM_LOAD( "01_ic45.a1",   0x0000, 0x0800, CRC(2c53998c) SHA1(6adaea6c88ebbbbf11d78bbbb35c4ed2f4e7e531) )
1028   ROM_LOAD( "02_ic46.a2",   0x0800, 0x0800, CRC(fea2435c) SHA1(f02bf68074dbfcfa259b98d16a8d942ddd71409a) )
1029   ROM_LOAD( "03_ic47.a3",   0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) )
1030   ROM_LOAD( "04_ic48.a4",   0x1800, 0x0800, CRC(90a02a45) SHA1(ec3033100d5ed21948bba9fca8754fb6d725d83d) )
1031   ROM_LOAD( "05_ic49.a5",   0x2000, 0x0800, CRC(74b1cf66) SHA1(38f9915b239c30f45567e165e9320558f1197ff9) )
1032   ROM_LOAD( "06_ic50.a6",   0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) )
1033   ROM_LOAD( "07_ic51.a7",   0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) )
1034   ROM_LOAD( "08_ic52.a8",   0x3800, 0x0800, CRC(f15c439d) SHA1(6b80276b4ddc9989adb2981f018d5c9c55b06430) )
1035
1036   ROM_REGION( 0x1000, "bgtiles", 0 )
1037   ROM_LOAD( "11_ic23.d3",      0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
1038   ROM_LOAD( "12_ic24.d4",      0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
1039
1040   ROM_REGION( 0x1000, "fgtiles", 0 )
1041   ROM_LOAD( "09_ic39.b3",   0x0000, 0x0800, CRC(bb0525ed) SHA1(86db1c7584fb3846bfd47535e1585eeb7fbbb1fe) )
1042   ROM_LOAD( "10_ic40.b4",   0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) )
1043
1044   ROM_REGION( 0x0200, "proms", 0 )
1045   ROM_LOAD( "mmi6301.ic40",   0x0000, 0x0100, CRC(79350b25) SHA1(57411be4c1d89677f7919ae295446da90612c8a8) )  /* palette low bits */
1046   ROM_LOAD( "mmi6301.ic41",   0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )  /* palette high bits */
1047ROM_END
1048
10011049ROM_START( griffon )
10021050   ROM_REGION( 0x10000, "maincpu", 0 )
10031051   ROM_LOAD( "griffon0.a5",  0x0000, 0x0800, CRC(c0f73929) SHA1(3cecf8341a5674165d2cae9b22ea5db26a9597de) )
r248543r248544
10731121   ROM_LOAD( "mmi6301.ic41",   0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )  /* palette high bits */
10741122ROM_END
10751123
1124ROM_START( phoenixass )
1125   ROM_REGION( 0x10000, "maincpu", 0 )
1126   ROM_LOAD( "ic45.bin",   0x0000, 0x0800, CRC(5b8c55a8) SHA1(839c1ca9766f730ec3accd48db70f6429a9c3362) )
1127   ROM_LOAD( "ic46.bin",   0x0800, 0x0800, CRC(dbc942fa) SHA1(9fe224e6ced407289dfa571468259a021d942b7d) )
1128   ROM_LOAD( "ic47.bin",   0x1000, 0x0800, CRC(cbbb8839) SHA1(b7f449374cac111081559e39646f973e7e99fd64) )
1129   ROM_LOAD( "ic48.bin",   0x1800, 0x0800, CRC(1e2e2fc7) SHA1(b181411d1f7c11ee27e4410d20bd509b21dd7242) )
1130   ROM_LOAD( "ic49.bin",   0x2000, 0x0800, CRC(1a1ce0d0) SHA1(c2825eef5d461e16ca2172daff94b3751be2f4dc) )
1131   ROM_LOAD( "ic50.bin",   0x2800, 0x0800, CRC(ac5e9ec1) SHA1(0402e5241d99759d804291998efd43f37ce99917) )
1132   ROM_LOAD( "ic51.bin",   0x3000, 0x0800, CRC(2eab35b4) SHA1(849bf8273317cc869bdd67e50c68399ee8ece81d) )
1133   ROM_LOAD( "ic52.bin",   0x3800, 0x0800, CRC(15a02d87) SHA1(df69d99747dd8b42187e4a4258edfae8e89663d0) )
10761134
1135   ROM_REGION( 0x1000, "bgtiles", 0 )
1136   ROM_LOAD( "ic23.bin",      0x0000, 0x0800, CRC(3c7e623f) SHA1(e7ff5fc371664af44785c079e92eeb2d8530187b) )
1137   ROM_LOAD( "ic24.bin",      0x0800, 0x0800, CRC(59916d3b) SHA1(71aec70a8e096ed1f0c2297b3ae7dca1b8ecc38d) )
1138
1139   ROM_REGION( 0x1000, "fgtiles", 0 )
1140   ROM_LOAD( "ic39.bin",   0x0000, 0x0800, CRC(bb0525ed) SHA1(86db1c7584fb3846bfd47535e1585eeb7fbbb1fe) )
1141   ROM_LOAD( "ic40.bin",   0x0800, 0x0800, CRC(4178aa4f) SHA1(5350f8f62cc7c223c38008bc83140b7a19147d81) )
1142
1143   ROM_REGION( 0x0200, "proms", 0 )
1144   ROM_LOAD( "prom.41",   0x0000, 0x0100, CRC(7c9f2e00) SHA1(372293748b0d4254d2884bafe4f9f33fbf0c03a6) )           /* palette low bits */ // slightly different to other sets (note IC positions reversed)
1145   ROM_LOAD( "prom.40",   0x0100, 0x0100, BAD_DUMP CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )  /* palette high bits */ // was missing from PCB, marked as bad dump because it might also differ
1146ROM_END
1147
1148
10771149ROM_START( pleiads )
10781150   ROM_REGION( 0x10000, "maincpu", 0 )
10791151   ROM_LOAD( "ic47.r1",      0x0000, 0x0800, CRC(960212c8) SHA1(52a3232e99920805ce9e195b8a6338ae7044dd18) )
r248543r248544
12741346   m_maincpu->space(AS_PROGRAM).install_read_port(0x5000, 0x5000, "DSW1");
12751347}
12761348
1349DRIVER_INIT_MEMBER(phoenix_state,vautourza)
1350{
1351   UINT8 *rgn          =   memregion("proms")->base();
12771352
1353   // expand the 8-bit PROM into the same layout as the 4-bit PROMs used by most versions of the game
1354   for (int i = 0; i < 0x100; i++)
1355   {
1356      rgn[i] = (rgn[i + 0x100] & 0xf0) >> 4;
1357      rgn[i + 0x100] &= 0x0f;
1358   }
1359}
12781360
1279GAME( 1980, phoenix,  0,        phoenix,  phoenix, driver_device,  0,        ROT90, "Amstar", "Phoenix (Amstar)", GAME_SUPPORTS_SAVE )
1280GAME( 1980, phoenixa, phoenix,  phoenix,  phoenixa, driver_device, 0,        ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 1)", GAME_SUPPORTS_SAVE )
1281GAME( 1980, phoenixb, phoenix,  phoenix,  phoenixa, driver_device, 0,        ROT90, "Amstar (Centuri license)", "Phoenix (Centuri, set 2)", GAME_SUPPORTS_SAVE )
1282GAME( 1980, phoenixt, phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "Amstar (Taito license)", "Phoenix (Taito)", GAME_SUPPORTS_SAVE )
1283GAME( 1980, phoenixj, phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "Amstar (Taito Japan license)", "Phoenix (Taito Japan)", GAME_SUPPORTS_SAVE )
1284GAME( 1980, phoenix3, phoenix,  phoenix,  phoenix3, driver_device, 0,        ROT90, "bootleg (T.P.N.)", "Phoenix (T.P.N. bootleg)", GAME_SUPPORTS_SAVE )
1285GAME( 1980, phoenixdal,phoenix, phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg (D&L)", "Phoenix (D&L bootleg)", GAME_SUPPORTS_SAVE )
1286GAME( 1981, phoenixc, phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 1)", GAME_SUPPORTS_SAVE )
1287GAME( 1981, phoenixc2,phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 2)", GAME_SUPPORTS_SAVE )
1288GAME( 1981, phoenixc3,phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 3)", GAME_SUPPORTS_SAVE )
1289GAME( 1981, phoenixc4,phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg? (Irecsa / G.G.I Corp)", "Phoenix (Irecsa / G.G.I Corp, set 4)", GAME_SUPPORTS_SAVE )
1290GAME( 1981, condor,   phoenix,  condor,   condor, phoenix_state,   condor,   ROT90, "bootleg", "Condor (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
1361/*** Phoenix (& clones) ***/
1362GAME( 1980, phoenix,  0,        phoenix,  phoenix, driver_device,  0,        ROT90, "Amstar",                            "Phoenix (Amstar)", GAME_SUPPORTS_SAVE )
1363GAME( 1980, phoenixa, phoenix,  phoenix,  phoenixa, driver_device, 0,        ROT90, "Amstar (Centuri license)",          "Phoenix (Centuri, set 1)", GAME_SUPPORTS_SAVE )
1364GAME( 1980, phoenixb, phoenix,  phoenix,  phoenixa, driver_device, 0,        ROT90, "Amstar (Centuri license)",          "Phoenix (Centuri, set 2)", GAME_SUPPORTS_SAVE )
1365GAME( 1980, phoenixt, phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "Amstar (Taito license)",            "Phoenix (Taito)", GAME_SUPPORTS_SAVE )
1366GAME( 1980, phoenixj, phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "Amstar (Taito Japan license)",      "Phoenix (Taito Japan)", GAME_SUPPORTS_SAVE )
1367GAME( 1980, phoenix3, phoenix,  phoenix,  phoenix3, driver_device, 0,        ROT90, "bootleg (T.P.N.)",                  "Phoenix (T.P.N. bootleg)", GAME_SUPPORTS_SAVE )
1368GAME( 1980, phoenixdal,phoenix, phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg (D&L)",                     "Phoenix (D&L bootleg)", GAME_SUPPORTS_SAVE )
1369GAME( 1981, phoenixc, phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg? (Irecsa / G.G.I Corp)",    "Phoenix (Irecsa / G.G.I Corp, set 1)", GAME_SUPPORTS_SAVE )
1370GAME( 1981, phoenixc2,phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg? (Irecsa / G.G.I Corp)",    "Phoenix (Irecsa / G.G.I Corp, set 2)", GAME_SUPPORTS_SAVE )
1371GAME( 1981, phoenixc3,phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg? (Irecsa / G.G.I Corp)",    "Phoenix (Irecsa / G.G.I Corp, set 3)", GAME_SUPPORTS_SAVE )
1372GAME( 1981, phoenixc4,phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg? (Irecsa / G.G.I Corp)",    "Phoenix (Irecsa / G.G.I Corp, set 4)", GAME_SUPPORTS_SAVE )
1373GAME( 1981, condor,   phoenix,  condor,   condor, phoenix_state,   condor,   ROT90, "bootleg",                           "Condor (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
12911374// the following 2 were common bootlegs in england & france respectively
1292GAME( 1980, falcon,   phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg", "Falcon (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE )
1293GAME( 1980, vautour,  phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg (Jeutel)", "Vautour (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE )
1294GAME( 1980, falconz,  phoenix,  condor,   falconz, driver_device,  0,        ROT90, "bootleg", "Falcon (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE )
1295GAME( 1980, vautourz, phoenix,  condor,   condor, phoenix_state,   condor,   ROT90, "bootleg", "Vautour (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE )
1375GAME( 1980, falcon,   phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg",                           "Falcon (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE )
1376GAME( 1980, vautour,  phoenix,  phoenix,  phoenixt, driver_device, 0,        ROT90, "bootleg (Jeutel)",                  "Vautour (bootleg of Phoenix) (8085A CPU)", GAME_SUPPORTS_SAVE )
1377GAME( 1980, falconz,  phoenix,  condor,   falconz, driver_device,  0,        ROT90, "bootleg",                           "Falcon (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE )
1378GAME( 1980, vautourz, phoenix,  condor,   condor, phoenix_state,   condor,   ROT90, "bootleg",                           "Vautour (bootleg of Phoenix) (Z80 CPU)", GAME_SUPPORTS_SAVE )
1379GAME( 1980, vautourza,phoenix,  condor ,  phoenixt,phoenix_state,  vautourza,ROT90, "bootleg (Jeutel)",                  "Vautour (bootleg of Phoenix) (Z80 CPU, single PROM)", GAME_SUPPORTS_SAVE )
1380
12961381// fenix is an italian bootleg based on vautourz
1297GAME( 1980, fenix,    phoenix,  condor,   condor, phoenix_state,   condor,   ROT90, "bootleg", "Fenix (bootleg of Phoenix)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
1298GAME( 1980, griffon,  phoenix,  condor,   condor, phoenix_state,   condor,   ROT90, "bootleg (Videotron)", "Griffon (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
1382GAME( 1980, fenix,    phoenix,  condor,   condor, phoenix_state,   condor,   ROT90, "bootleg",                           "Fenix (bootleg of Phoenix)", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
1383GAME( 1980, griffon,  phoenix,  condor,   condor, phoenix_state,   condor,   ROT90, "bootleg (Videotron)",               "Griffon (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
12991384// nextfase is a spanish bootleg
1300GAME( 1981, nextfase, phoenix,  phoenix,  nextfase, driver_device, 0,        ROT90, "bootleg (Petaco S.A.)", "Next Fase (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
1385GAME( 1981, nextfase, phoenix,  phoenix,  nextfase, driver_device, 0,        ROT90, "bootleg (Petaco S.A.)",             "Next Fase (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
13011386// as is this
1302GAME( 1981, phoenixs, phoenix,  phoenix,  phoenix, driver_device,  0,        ROT90, "bootleg (Sonic)", "Phoenix (Spanish bootleg)", GAME_SUPPORTS_SAVE )
1303GAME( 1980, avefenix, phoenix,  phoenix,  phoenix, driver_device,  0,        ROT90, "bootleg (Video Game)", "Ave Fenix (Electrogame, Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) // Electrogame (Barcelona) made the dedicated cabinet and is likely the real manufacturer, ingame shows 'Video Game'
1387GAME( 1981, phoenixs, phoenix,  phoenix,  phoenix, driver_device,  0,        ROT90, "bootleg (Sonic)",                   "Phoenix (Sonic, Spanish bootleg)", GAME_SUPPORTS_SAVE )
1388GAME( 1981, phoenixass,phoenix, phoenix,  phoenix, driver_device,  0,        ROT90, "bootleg (Assa)",                    "Phoenix (Assa, Spanish bootleg)", GAME_SUPPORTS_SAVE )
1389GAME( 1980, avefenix, phoenix,  phoenix,  phoenix, driver_device,  0,        ROT90, "bootleg (Video Game)",              "Ave Fenix (Electrogame, Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE ) // Electrogame (Barcelona) made the dedicated cabinet and is likely the real manufacturer, ingame shows 'Video Game'
13041390GAME( 1980, avefenixrf,phoenix, phoenix,  phoenix, driver_device,  0,        ROT90, "bootleg (Recreativos Franco S.A.)", "Ave Fenix (Recreativos Franco, Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
1391GAME( 1980, avefenixl,phoenix,  phoenix,  phoenix, driver_device,  0,        ROT90, "bootleg (Laguna)",                  "Ave Fenix (Laguna, Spanish bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
13051392
1306GAME( 1981, pleiads,  0,        pleiads,  pleiads, driver_device,  0,        ROT90, "Tehkan", "Pleiads (Tehkan)", GAME_IMPERFECT_COLORS )
1307GAME( 1981, pleiadsb2,pleiads,  pleiads,  pleiads, driver_device,  0,        ROT90, "bootleg (ESG)", "Pleiads (bootleg set 2)", GAME_SUPPORTS_SAVE )
1308GAME( 1981, pleiadbl, pleiads,  pleiads,  pleiadbl, driver_device, 0,        ROT90, "bootleg", "Pleiads (bootleg set 1)", GAME_IMPERFECT_COLORS )
1309GAME( 1981, pleiadce, pleiads,  pleiads,  pleiadce, driver_device, 0,        ROT90, "Tehkan (Centuri license)", "Pleiads (Centuri)", GAME_IMPERFECT_COLORS )
1310GAME( 1981, pleiadsi, pleiads,  pleiads,  pleiadce, driver_device, 0,        ROT90, "bootleg? (Irecsa)", "Pleiads (Irecsa)", GAME_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs
1311GAME( 1981, pleiadss, pleiads,  phoenix,  pleiadce, driver_device, 0,        ROT90, "bootleg", "Pleiads (Spanish bootleg)", GAME_SUPPORTS_SAVE ) // colours match PCB (but are ugly)
1312GAME( 1981, capitol,  pleiads,  phoenix,  capitol, driver_device,  0,        ROT90, "bootleg? (Universal Video Spiel)", "Capitol", GAME_IMPERFECT_COLORS )
1393/*** Pleiads (& clones) ***/
1394GAME( 1981, pleiads,  0,        pleiads,  pleiads, driver_device,  0,        ROT90, "Tehkan",                            "Pleiads (Tehkan)", GAME_IMPERFECT_COLORS )
1395GAME( 1981, pleiadsb2,pleiads,  pleiads,  pleiads, driver_device,  0,        ROT90, "bootleg (ESG)",                     "Pleiads (bootleg set 2)", GAME_SUPPORTS_SAVE )
1396GAME( 1981, pleiadbl, pleiads,  pleiads,  pleiadbl, driver_device, 0,        ROT90, "bootleg",                           "Pleiads (bootleg set 1)", GAME_IMPERFECT_COLORS )
1397GAME( 1981, pleiadce, pleiads,  pleiads,  pleiadce, driver_device, 0,        ROT90, "Tehkan (Centuri license)",          "Pleiads (Centuri)", GAME_IMPERFECT_COLORS )
1398GAME( 1981, pleiadsi, pleiads,  pleiads,  pleiadce, driver_device, 0,        ROT90, "bootleg? (Irecsa)",                 "Pleiads (Irecsa)", GAME_IMPERFECT_COLORS ) // possibly licensed, but some of the roms match the bootlegs
1399GAME( 1981, pleiadss, pleiads,  phoenix,  pleiadce, driver_device, 0,        ROT90, "bootleg",                           "Pleiads (Spanish bootleg)", GAME_SUPPORTS_SAVE ) // colours match PCB (but are ugly)
1400GAME( 1981, capitol,  pleiads,  phoenix,  capitol, driver_device,  0,        ROT90, "bootleg? (Universal Video Spiel)",  "Capitol", GAME_IMPERFECT_COLORS )
13131401
1314GAME( 1982, survival, 0,        survival, survival, driver_device, 0,        ROT90, "Rock-Ola", "Survival", GAME_IMPERFECT_COLORS )
1402/*** Others ***/
1403GAME( 1982, survival, 0,        survival, survival, driver_device, 0,        ROT90, "Rock-Ola",                          "Survival", GAME_IMPERFECT_COLORS )
trunk/src/mame/drivers/photon2.c
r248543r248544
2121   photon2_state(const machine_config &mconfig, device_type type, const char *tag)
2222      : driver_device(mconfig, type, tag),
2323      m_maincpu(*this,"maincpu"),
24      m_spectrum_video_ram(*this, "spectrum_vram"),
25      m_speaker(*this, "speaker"){ }
24      m_speaker(*this, "speaker"),
25      m_spectrum_video_ram(*this, "spectrum_vram") { }
2626
2727   required_device<cpu_device> m_maincpu;
28   required_device<speaker_sound_device> m_speaker;
29
2830   required_shared_ptr<UINT8> m_spectrum_video_ram;
31
2932   int m_spectrum_frame_number;
3033   int m_spectrum_flash_invert;
3134   UINT8 m_spectrum_port_fe;
3235   UINT8 m_nmi_enable;
3336
34   DECLARE_WRITE8_MEMBER(photon2_membank_w);
35   DECLARE_READ8_MEMBER(photon2_fe_r);
36   DECLARE_WRITE8_MEMBER(photon2_fe_w);
37   DECLARE_WRITE8_MEMBER(photon2_misc_w);
38   virtual void machine_reset();
37   DECLARE_WRITE8_MEMBER(membank_w);
38   DECLARE_READ8_MEMBER(fe_r);
39   DECLARE_WRITE8_MEMBER(fe_w);
40   DECLARE_WRITE8_MEMBER(misc_w);
41
42   virtual void machine_start();
3943   virtual void video_start();
4044   DECLARE_PALETTE_INIT(photon2);
45
4146   UINT32 screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4247   void screen_eof_spectrum(screen_device &screen, bool state);
48
4349   TIMER_DEVICE_CALLBACK_MEMBER(spec_interrupt_hack);
44   required_device<speaker_sound_device> m_speaker;
4550};
4651
4752
r248543r248544
100105{
101106   m_spectrum_frame_number = 0;
102107   m_spectrum_flash_invert = 0;
108   
109   save_item(NAME(m_spectrum_frame_number));
110   save_item(NAME(m_spectrum_flash_invert));
111   save_item(NAME(m_spectrum_port_fe));
103112}
104113
105114#if 0
r248543r248544
187196 *
188197 *************************************/
189198
190WRITE8_MEMBER(photon2_state::photon2_membank_w)
199WRITE8_MEMBER(photon2_state::membank_w)
191200{
192201   int bank = 0;
193202   if (data == 0)
r248543r248544
207216      logerror( "Unknown banking write: %02X\n", data);
208217   }
209218
210   membank("bank1")->set_base(memregion("maincpu")->base() + 0x4000*bank );
219   membank("mainbank")->set_entry(bank);
211220}
212221
213READ8_MEMBER(photon2_state::photon2_fe_r)
222READ8_MEMBER(photon2_state::fe_r)
214223{
215224   return 0xff;
216225}
217226
218WRITE8_MEMBER(photon2_state::photon2_fe_w)
227WRITE8_MEMBER(photon2_state::fe_w)
219228{
220229   m_spectrum_port_fe = data;
221230   m_speaker->level_w(BIT(data,4));
222231}
223232
224WRITE8_MEMBER(photon2_state::photon2_misc_w)
233WRITE8_MEMBER(photon2_state::misc_w)
225234{
226235   m_nmi_enable = !BIT(data,5);
227236}
r248543r248544
233242 *************************************/
234243
235244static ADDRESS_MAP_START (spectrum_mem, AS_PROGRAM, 8, photon2_state )
236   AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
245   AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("mainbank")
237246   AM_RANGE(0x4000, 0x5aff) AM_RAM AM_SHARE("spectrum_vram")
238247   AM_RANGE(0x5b00, 0xffff) AM_RAM
239248ADDRESS_MAP_END
r248543r248544
241250static ADDRESS_MAP_START (spectrum_io, AS_IO, 8, photon2_state )
242251   ADDRESS_MAP_GLOBAL_MASK(0xff)
243252   AM_RANGE(0x1f, 0x1f) AM_READ_PORT("JOY")
244   AM_RANGE(0x5b, 0x5b) AM_READ_PORT("COIN") AM_WRITE(photon2_misc_w)
245   AM_RANGE(0x7a, 0x7a) AM_WRITE(photon2_membank_w)
253   AM_RANGE(0x5b, 0x5b) AM_READ_PORT("COIN") AM_WRITE(misc_w)
254   AM_RANGE(0x7a, 0x7a) AM_WRITE(membank_w)
246255   AM_RANGE(0x7b, 0x7b) AM_WRITENOP // unknown write
247   AM_RANGE(0x7e, 0x7e) AM_WRITE(photon2_membank_w)
248   AM_RANGE(0xfe, 0xfe) AM_READWRITE(photon2_fe_r, photon2_fe_w)
256   AM_RANGE(0x7e, 0x7e) AM_WRITE(membank_w)
257   AM_RANGE(0xfe, 0xfe) AM_READWRITE(fe_r, fe_w)
249258ADDRESS_MAP_END
250259
251260/*************************************
r248543r248544
316325   }
317326}
318327
319void photon2_state::machine_reset()
328void photon2_state::machine_start()
320329{
321   membank("bank1")->set_base(memregion("maincpu")->base());
330   membank("mainbank")->configure_entries(0, 4, memregion("maincpu")->base(), 0x4000);
331   membank("mainbank")->set_entry(0);
332   
333   save_item(NAME(m_nmi_enable));
322334}
323335
324336static MACHINE_CONFIG_START( photon2, photon2_state )
r248543r248544
383395   ROM_LOAD( "brod13.bin", 0xa000, 0x2000, CRC(1177cd17) SHA1(58c5c09a7b857ce6311339c4d0f4d8c1a7e232a3) )
384396ROM_END
385397
386GAME( 19??,  kok,   0,      photon2, photon2, driver_device, 0, ROT0, "bootleg", "Povar / Sobrat' Buran / Agroprom (Arcade multi-game bootleg of ZX Spectrum 'Cookie', 'Jetpac' & 'Pssst')", 0 ) // originals (c)1983 ACG / Ultimate
387GAME( 19??,  black, 0,      photon2, black, driver_device,   0, ROT0, "bootleg", "Czernyj Korabl (Arcade bootleg of ZX Spectrum 'Blackbeard')", 0 ) // original (c)1988 Toposoft
388GAME( 19??,  brod,  0,      photon2, black, driver_device,   0, ROT0, "bootleg", "Brodjaga (Arcade bootleg of ZX Spectrum 'Inspector Gadget and the Circus of Fear')", 0 ) // original (c)1987 BEAM software
398GAME( 19??,  kok,   0,      photon2, photon2, driver_device, 0, ROT0, "bootleg", "Povar / Sobrat' Buran / Agroprom (Arcade multi-game bootleg of ZX Spectrum 'Cookie', 'Jetpac' & 'Pssst')", GAME_SUPPORTS_SAVE ) // originals (c)1983 ACG / Ultimate
399GAME( 19??,  black, 0,      photon2, black, driver_device,   0, ROT0, "bootleg", "Czernyj Korabl (Arcade bootleg of ZX Spectrum 'Blackbeard')", GAME_SUPPORTS_SAVE ) // original (c)1988 Toposoft
400GAME( 19??,  brod,  0,      photon2, black, driver_device,   0, ROT0, "bootleg", "Brodjaga (Arcade bootleg of ZX Spectrum 'Inspector Gadget and the Circus of Fear')", GAME_SUPPORTS_SAVE ) // original (c)1987 BEAM software
trunk/src/mame/drivers/r2dtank.c
r248543r248544
4343#include "machine/nvram.h"
4444
4545
46#define NUM_PENS    (8)
47
4846#define LOG_AUDIO_COMM  (0)
4947
5048#define MAIN_CPU_MASTER_CLOCK   (11200000)
r248543r248544
5957      m_videoram(*this, "videoram"),
6058      m_colorram(*this, "colorram"),
6159      m_maincpu(*this, "maincpu"),
60      m_palette(*this, "palette"),
6261      m_audiocpu(*this, "audiocpu") { }
6362
6463   required_shared_ptr<UINT8> m_videoram;
r248543r248544
6665   UINT8 m_flipscreen;
6766   UINT32 m_ttl74123_output;
6867   UINT8 m_AY8910_selected;
69   pen_t m_pens[NUM_PENS];
68
7069   DECLARE_READ8_MEMBER(audio_command_r);
7170   DECLARE_WRITE8_MEMBER(audio_command_w);
7271   DECLARE_READ8_MEMBER(audio_answer_r);
r248543r248544
8180   DECLARE_WRITE8_MEMBER(pia_comp_w);
8281   virtual void machine_start();
8382   DECLARE_WRITE8_MEMBER(ttl74123_output_changed);
84   MC6845_BEGIN_UPDATE(crtc_begin_update);
83
8584   MC6845_UPDATE_ROW(crtc_update_row);
85
8686   required_device<cpu_device> m_maincpu;
87   required_device<palette_device> m_palette;
8788   required_device<cpu_device> m_audiocpu;
8889};
8990
r248543r248544
257258}
258259
259260
260MC6845_BEGIN_UPDATE( r2dtank_state::crtc_begin_update )
261{
262   /* create the pens */
263   for (offs_t i = 0; i < NUM_PENS; i++)
264   {
265      m_pens[i] = rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
266   }
267}
268
269
270261MC6845_UPDATE_ROW( r2dtank_state::crtc_update_row )
271262{
272263   UINT8 x = 0;
r248543r248544
302293         }
303294
304295         color = bit ? fore_color : 0;
305         bitmap.pix32(y, x) = m_pens[color];
296         bitmap.pix32(y, x) = m_palette->pen_color(color);
306297
307298         x = x + 1;
308299      }
r248543r248544
457448   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 256, 0, 256, 256, 0, 256)   /* temporary, CRTC will configure screen */
458449   MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
459450
451   MCFG_PALETTE_ADD_3BIT_BGR("palette")
452
460453   MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK)
461454   MCFG_MC6845_SHOW_BORDER_AREA(false)
462455   MCFG_MC6845_CHAR_WIDTH(8)
463   MCFG_MC6845_BEGIN_UPDATE_CB(r2dtank_state, crtc_begin_update)
464456   MCFG_MC6845_UPDATE_ROW_CB(r2dtank_state, crtc_update_row)
465457   MCFG_MC6845_OUT_DE_CB(WRITELINE(r2dtank_state, display_enable_changed))
466458
trunk/src/mame/drivers/route16.c
r248543r248544
572572   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   /* frames per second, vblank duration */
573573   MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_route16)
574574
575   MCFG_PALETTE_ADD_3BIT_RGB("palette")
576
575577   /* sound hardware */
576578   MCFG_SPEAKER_STANDARD_MONO("mono")
577579   MCFG_SOUND_ADD("ay8910", AY8910, 10000000/8)
r248543r248544
599601
600602   /* video hardware */
601603   MCFG_SCREEN_MODIFY("screen")
602   MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_stratvox)
604   MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng)
603605
604606   /* sound hardware */
605607   MCFG_SOUND_MODIFY("ay8910")
r248543r248544
654656   /* video hardware */
655657   MCFG_SCREEN_MODIFY("screen")
656658   MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng)
659
660   MCFG_DEVICE_REMOVE("palette")
661   MCFG_PALETTE_ADD_3BIT_BGR("palette")
657662MACHINE_CONFIG_END
658663
659664
trunk/src/mame/drivers/seattle.c
r248543r248544
28342834   ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
28352835ROM_END
28362836
2837
28382837ROM_START( calspeeda )
28392838   ROM_REGION32_LE( 0x80000, "user1", 0 )  /* Boot Code Version 1.2 (2/18/98) */
28402839   ROM_LOAD( "caspd1_2.u32", 0x000000, 0x80000, CRC(0a235e4e) SHA1(b352f10fad786260b58bd344b5002b6ea7aaf76d) )
28412840
2841   DISK_REGION( "ide:0:hdd:image" )    /* Release version 1.0r8a (4/10/98) (Guts 4/10/98, Main 4/10/98) */
2842   DISK_IMAGE( "cs_10r8a", 0, SHA1(ba4e7589740e0647938c81c5082bb71d8826bad4) )
2843
2844   ROM_REGION16_LE( 0x10000, "dcs", 0 )    /* ADSP-2115 data Version 1.02 */
2845   ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
2846ROM_END
2847
2848ROM_START( calspeedb )
2849   ROM_REGION32_LE( 0x80000, "user1", 0 )  /* Boot Code Version 1.2 (2/18/98) */
2850   ROM_LOAD( "caspd1_2.u32", 0x000000, 0x80000, CRC(0a235e4e) SHA1(b352f10fad786260b58bd344b5002b6ea7aaf76d) )
2851
28422852   DISK_REGION( "ide:0:hdd:image" )    /* Release version 1.0r7a (3/4/98) (Guts 3/3/98, Main 1/19/98) */
28432853   DISK_IMAGE( "calspeda", 0, SHA1(6b1c3a7530195ef7309b06a651b01c8b3ece92c6) )
28442854
r248543r248544
28472857ROM_END
28482858
28492859
2860
2861
2862
28502863ROM_START( vaportrx )
28512864   ROM_REGION32_LE( 0x80000, "user1", 0 )
28522865   ROM_LOAD( "vtrxboot.bin", 0x000000, 0x80000, CRC(ee487a6c) SHA1(fb9efda85047cf615f24f7276a9af9fd542f3354) )
r248543r248544
29182931   DISK_IMAGE( "blitz99", 0, SHA1(19877e26ffce81dd525031e9e2b4f83ff982e2d9) )
29192932ROM_END
29202933
2934ROM_START( blitz99a )
2935   ROM_REGION16_LE( 0x10000, "dcs", 0 )    /* ADSP-2115 data Version 1.02 */
2936   ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
29212937
2938   ROM_REGION32_LE( 0x80000, "user1", 0 )  /* Boot Code Version 1.0 */
2939   ROM_LOAD( "bltz9910.u32", 0x000000, 0x80000, CRC(777119b2) SHA1(40d255181c2f3a787919c339e83593fd506779a5) )
2940
2941   DISK_REGION( "ide:0:hdd:image" )    /* Hard Drive Version 1.30 */
2942   DISK_IMAGE( "blitz99a", 0, SHA1(43f834727ce01d7a63b482fc28cbf292477fc6f2) )
2943ROM_END
2944
2945
29222946ROM_START( blitz2k )
29232947   ROM_REGION16_LE( 0x10000, "dcs", 0 )    /* ADSP-2115 data Version 1.02 */
29242948   ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
r248543r248544
31413165GAME( 1997, macea,    mace,     mace,              mace, seattle_state,     mace,     ROT0, "Atari Games",  "Mace: The Dark Age (HDD 1.0a)", GAME_SUPPORTS_SAVE )
31423166GAME( 1996, sfrush,   0,        sfrush,            sfrush, seattle_state,   sfrush,   ROT0, "Atari Games",  "San Francisco Rush", GAME_SUPPORTS_SAVE )
31433167GAME( 1996, sfrushrk, 0,        sfrushrk,          sfrushrk, seattle_state, sfrushrk, ROT0, "Atari Games",  "San Francisco Rush: The Rock", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
3144GAME( 1998, calspeed, 0,        calspeed,          calspeed, seattle_state, calspeed, ROT0, "Atari Games",  "California Speed (Version 2.1a, 4/17/98)", GAME_SUPPORTS_SAVE )
3145GAME( 1998, calspeeda,calspeed, calspeed,          calspeed, seattle_state, calspeed, ROT0, "Atari Games",  "California Speed (Version 1.0r7a 3/4/98)", GAME_SUPPORTS_SAVE )
3168GAME( 1998, calspeed, 0,        calspeed,          calspeed, seattle_state, calspeed, ROT0, "Atari Games",  "California Speed (Version 2.1a Apr 17 1998, GUTS 1.25 Apr 17 1998 / MAIN Apr 17 1998)", GAME_SUPPORTS_SAVE )
3169GAME( 1998, calspeeda,calspeed, calspeed,          calspeed, seattle_state, calspeed, ROT0, "Atari Games",  "California Speed (Version 1.0r8 Mar 10 1998, GUTS Mar 10 1998 / MAIN Mar 10 1998)", GAME_SUPPORTS_SAVE )
3170GAME( 1998, calspeedb,calspeed, calspeed,          calspeed, seattle_state, calspeed, ROT0, "Atari Games",  "California Speed (Version 1.0r7a Mar 4 1998, GUTS Mar 3 1998 / MAIN Jan 19 1998)", GAME_SUPPORTS_SAVE )
3171
3172
3173
31463174GAME( 1998, vaportrx, 0,        vaportrx,          vaportrx, seattle_state, vaportrx, ROT0, "Atari Games",  "Vapor TRX", GAME_SUPPORTS_SAVE )
31473175GAME( 1998, vaportrxp,vaportrx, vaportrx,          vaportrx, seattle_state, vaportrx, ROT0, "Atari Games",  "Vapor TRX (prototype)", GAME_SUPPORTS_SAVE )
31483176
r248543r248544
31503178GAME( 1997, biofreak, 0,        biofreak,          biofreak, seattle_state, biofreak, ROT0, "Midway Games", "BioFreaks (prototype)", GAME_SUPPORTS_SAVE )
31513179GAME( 1997, blitz,    0,        blitz,             blitz, seattle_state,    blitz,    ROT0, "Midway Games", "NFL Blitz (boot ROM 1.2)", GAME_SUPPORTS_SAVE )
31523180GAME( 1997, blitz11,  blitz,    blitz,             blitz, seattle_state,    blitz,    ROT0, "Midway Games", "NFL Blitz (boot ROM 1.1)", GAME_SUPPORTS_SAVE )
3153GAME( 1998, blitz99,  0,        blitz99,           blitz99, seattle_state,  blitz99,  ROT0, "Midway Games", "NFL Blitz '99", GAME_SUPPORTS_SAVE )
3154GAME( 1999, blitz2k,  0,        blitz2k,           blitz99, seattle_state,  blitz2k,  ROT0, "Midway Games", "NFL Blitz 2000 Gold Edition", GAME_SUPPORTS_SAVE )
3181GAME( 1998, blitz99,  0,        blitz99,           blitz99, seattle_state,  blitz99,  ROT0, "Midway Games", "NFL Blitz '99 (ver 1.30, Sep 22 1998)", GAME_SUPPORTS_SAVE )
3182GAME( 1998, blitz99a, blitz99,  blitz99,           blitz99, seattle_state,  blitz99,  ROT0, "Midway Games", "NFL Blitz '99 (ver 1.2, Aug 28 1998)", GAME_SUPPORTS_SAVE )
3183GAME( 1999, blitz2k,  0,        blitz2k,           blitz99, seattle_state,  blitz2k,  ROT0, "Midway Games", "NFL Blitz 2000 Gold Edition (ver 1.2, Sep 22 1999)", GAME_SUPPORTS_SAVE )
31553184GAME( 1998, carnevil, 0,        carnevil,          carnevil, seattle_state, carnevil, ROT0, "Midway Games", "CarnEvil (v1.0.3)", GAME_SUPPORTS_SAVE )
31563185GAME( 1998, carnevil1,carnevil, carnevil,          carnevil, seattle_state, carnevil, ROT0, "Midway Games", "CarnEvil (v1.0.1)", GAME_SUPPORTS_SAVE )
31573186GAME( 1998, hyprdriv, 0,        hyprdriv,          hyprdriv, seattle_state, hyprdriv, ROT0, "Midway Games", "Hyperdrive", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/shadfrce.c
r248543r248544
146146#include "includes/shadfrce.h"
147147
148148
149#define MASTER_CLOCK        XTAL_28MHz
150#define CPU_CLOCK           MASTER_CLOCK / 2
151#define PIXEL_CLOCK     MASTER_CLOCK / 4
152
153149WRITE16_MEMBER(shadfrce_state::flip_screen)
154150{
155151   flip_screen_set(data & 0x01);
r248543r248544
242238   switch (offset)
243239   {
244240      case 0 :
245         data = (ioport("P1")->read() & 0xff) | ((ioport("DSW2")->read() & 0xc0) << 6) | ((ioport("SYSTEM")->read() & 0x0f) << 8);
241         data = (m_io_p1->read() & 0xff) | ((m_io_dsw2->read() & 0xc0) << 6) | ((m_io_system->read() & 0x0f) << 8);
246242         break;
247243      case 1 :
248         data = (ioport("P2")->read() & 0xff) | ((ioport("DSW2")->read() & 0x3f) << 8);
244         data = (m_io_p2->read() & 0xff) | ((m_io_dsw2->read() & 0x3f) << 8);
249245         break;
250246      case 2 :
251         data = (ioport("EXTRA")->read() & 0xff) | ((ioport("DSW1")->read() & 0x3f) << 8);
247         data = (m_io_extra->read() & 0xff) | ((m_io_dsw1->read() & 0x3f) << 8);
252248         break;
253249      case 3 :
254         data = (ioport("OTHER")->read() & 0xff) | ((ioport("DSW1")->read() & 0xc0) << 2) | ((ioport("MISC")->read() & 0x38) << 8) | (m_vblank << 8);
250         data = (m_io_other->read() & 0xff) | ((m_io_dsw1->read() & 0xc0) << 2) | ((m_io_misc->read() & 0x38) << 8) | (m_vblank << 8);
255251         break;
256252   }
257253
r248543r248544
450446   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )            /* must be ACTIVE_LOW or 'shadfrcj' jumps to the end (code at 0x04902e) */
451447   PORT_BIT( 0xeb, IP_ACTIVE_LOW, IPT_UNUSED )
452448
453   PORT_START("DSW1")  /* Fake IN6 (DIP1) */
449   PORT_START("DSW1")  /*DSW1, not mapped directly  */
454450   PORT_DIPNAME( 0x01, 0x01, "Unused DIP 1-1" )
455451   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
456452   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r248543r248544
473469   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
474470   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
475471
476   PORT_START("DSW2")  /* Fake IN7 (DIP2) */
472   PORT_START("DSW2")  /* DSW2, not mapped directly */
477473   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
478474   PORT_DIPSETTING(    0x01, DEF_STR( Easy ) )
479475   PORT_DIPSETTING(    0x03, DEF_STR( Normal ) )
r248543r248544
508504   { 0, 2, 4, 6 },
509505   { 1, 0, 8*8+1, 8*8+0, 16*8+1, 16*8+0, 24*8+1, 24*8+0 },
510506   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
511   32*8
507   4*8*8
512508};
513509
514510static const gfx_layout sp16x16x5_layout =
r248543r248544
516512   16,16,
517513   RGN_FRAC(1,5),
518514   5,
519   { 0x800000*8, 0x600000*8, 0x400000*8, 0x200000*8, 0x000000*8 },
520   { 0,1,2,3,4,5,6,7,16*8+0,16*8+1,16*8+2,16*8+3,16*8+4,16*8+5,16*8+6,16*8+7 },
521   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8, 8*8,9*8,10*8,11*8,12*8,13*8,14*8,15*8 },
515   { RGN_FRAC(4,5), RGN_FRAC(3,5), RGN_FRAC(2,5), RGN_FRAC(1,5), RGN_FRAC(0,5) },
516   { STEP8(0,1), STEP8(16*8,1) },
517   { STEP16(0,8) },
522518   16*16
523519};
524520
r248543r248544
527523   16,16,
528524   RGN_FRAC(1,3),
529525   6,
530   { 0x000000*8+8, 0x000000*8+0, 0x100000*8+8, 0x100000*8+0, 0x200000*8+8, 0x200000*8+0 },
531   { 0, 1, 2, 3, 4, 5, 6, 7,16*16+0,16*16+1,16*16+2,16*16+3,16*16+4,16*16+5,16*16+6,16*16+7 },
532   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16, 8*16,9*16,10*16,11*16,12*16,13*16,14*16,15*16 },
533   64*8
526   { RGN_FRAC(0,3)+8, RGN_FRAC(0,3), RGN_FRAC(1,3)+8, RGN_FRAC(1,3), RGN_FRAC(2,3)+8, RGN_FRAC(2,3) },
527   { STEP8(0,1), STEP8(16*16,1) },
528   { STEP16(0,16) },
529   2*16*16
534530};
535531
536532static GFXDECODE_START( shadfrce )
537   GFXDECODE_ENTRY( "gfx1", 0, fg8x8x4_layout,   0x0000, 256 )
538   GFXDECODE_ENTRY( "gfx2", 0, sp16x16x5_layout, 0x1000, 128 )
539   GFXDECODE_ENTRY( "gfx3", 0, bg16x16x6_layout, 0x2000, 128 )
533   GFXDECODE_ENTRY( "chars",   0, fg8x8x4_layout,   0x0000, 256 )
534   GFXDECODE_ENTRY( "sprites", 0, sp16x16x5_layout, 0x1000, 128 )
535   GFXDECODE_ENTRY( "tiles",   0, bg16x16x6_layout, 0x2000, 128 )
540536GFXDECODE_END
541537
542538/* Machine Driver Bits */
543539
544540static MACHINE_CONFIG_START( shadfrce, shadfrce_state )
545541
546   MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK)          /* verified on pcb */
542   MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz / 2)          /* verified on pcb */
547543   MCFG_CPU_PROGRAM_MAP(shadfrce_map)
548544   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", shadfrce_state, scanline, "screen", 0, 1)
549545
r248543r248544
551547   MCFG_CPU_PROGRAM_MAP(shadfrce_sound_map)
552548
553549   MCFG_SCREEN_ADD("screen", RASTER)
554   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 432, 0, 320, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
550   MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz / 4, 448, 0, 320, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
555551   MCFG_SCREEN_UPDATE_DRIVER(shadfrce_state, screen_update)
556552   MCFG_SCREEN_VBLANK_DRIVER(shadfrce_state, screen_eof)
557553   MCFG_SCREEN_PALETTE("palette")
r248543r248544
585581   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
586582   ROM_LOAD( "32j10-0.42",  0x00000, 0x10000, CRC(65daf475) SHA1(7144332b2d17af8645e22e1926b33113db0d20e2) )
587583
588   ROM_REGION( 0x020000, "gfx1", 0 ) /* Chars */
584   ROM_REGION( 0x020000, "chars", 0 ) /* Chars */
589585   ROM_LOAD( "32a11-0.55",  0x00000, 0x20000, CRC(cfaf5e77) SHA1(eab76e085f695c74cc868aaf95f04ff2acf66ee9) )
590586
591   ROM_REGION( 0xa00000, "gfx2", 0 ) /* Sprite Tiles */
587   ROM_REGION( 0xa00000, "sprites", 0 ) /* Sprite Tiles */
592588   ROM_LOAD( "32j4-0.12",  0x000000, 0x200000, CRC(1ebea5b6) SHA1(35bd49dda9ad75326d45ffb10c87d83fc4f1b7a8) )
593589   ROM_LOAD( "32j5-0.13",  0x200000, 0x200000, CRC(600026b5) SHA1(5641246300d7e20dcff1eae004647faaee6cd1c6) )
594590   ROM_LOAD( "32j6-0.24",  0x400000, 0x200000, CRC(6cde8ebe) SHA1(750933798235951fe24b2e667c33f692612c0aa0) )
595591   ROM_LOAD( "32j7-0.25",  0x600000, 0x200000, CRC(bcb37922) SHA1(f3eee73c8b9f4873a7f1cc42e334e7502eaee3c8) )
596592   ROM_LOAD( "32j8-0.32",  0x800000, 0x200000, CRC(201bebf6) SHA1(c89d2895ea5b19daea1f88542419f4e10f437c73) )
597593
598   ROM_REGION( 0x300000, "gfx3", 0 ) /* BG Tiles */
594   ROM_REGION( 0x300000, "tiles", 0 ) /* BG Tiles */
599595   ROM_LOAD( "32j1-0.4",  0x000000, 0x100000, CRC(f1cca740) SHA1(339079b95ca137e66b4f032ad67a0adf58cca100) )
600596   ROM_LOAD( "32j2-0.5",  0x100000, 0x100000, CRC(5fac3e01) SHA1(20c30f4c76e303285ae37e596afe86aa4812c3b9) )
601597   ROM_LOAD( "32j3-0.6",  0x200000, 0x100000, CRC(d297925e) SHA1(5bc4d37bf0dc54114884c816b94a64ef1ccfeda5) )
r248543r248544
614610   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
615611   ROM_LOAD( "32j10-0.42",  0x00000, 0x10000, CRC(65daf475) SHA1(7144332b2d17af8645e22e1926b33113db0d20e2) )
616612
617   ROM_REGION( 0x020000, "gfx1", 0 ) /* Chars */
613   ROM_REGION( 0x020000, "chars", 0 ) /* Chars */
618614   ROM_LOAD( "32j11-0.55",  0x00000, 0x20000, CRC(7252d993) SHA1(43f7de381841039aa290486aafb98e2cf3b8579b) )
619615
620   ROM_REGION( 0xa00000, "gfx2", 0 ) /* Sprite Tiles */
616   ROM_REGION( 0xa00000, "sprites", 0 ) /* Sprite Tiles */
621617   ROM_LOAD( "32j4-0.12",  0x000000, 0x200000, CRC(1ebea5b6) SHA1(35bd49dda9ad75326d45ffb10c87d83fc4f1b7a8) )
622618   ROM_LOAD( "32j5-0.13",  0x200000, 0x200000, CRC(600026b5) SHA1(5641246300d7e20dcff1eae004647faaee6cd1c6) )
623619   ROM_LOAD( "32j6-0.24",  0x400000, 0x200000, CRC(6cde8ebe) SHA1(750933798235951fe24b2e667c33f692612c0aa0) )
624620   ROM_LOAD( "32j7-0.25",  0x600000, 0x200000, CRC(bcb37922) SHA1(f3eee73c8b9f4873a7f1cc42e334e7502eaee3c8) )
625621   ROM_LOAD( "32j8-0.32",  0x800000, 0x200000, CRC(201bebf6) SHA1(c89d2895ea5b19daea1f88542419f4e10f437c73) )
626622
627   ROM_REGION( 0x300000, "gfx3", 0 ) /* BG Tiles */
623   ROM_REGION( 0x300000, "tiles", 0 ) /* BG Tiles */
628624   ROM_LOAD( "32j1-0.4",  0x000000, 0x100000, CRC(f1cca740) SHA1(339079b95ca137e66b4f032ad67a0adf58cca100) )
629625   ROM_LOAD( "32j2-0.5",  0x100000, 0x100000, CRC(5fac3e01) SHA1(20c30f4c76e303285ae37e596afe86aa4812c3b9) )
630626   ROM_LOAD( "32j3-0.6",  0x200000, 0x100000, CRC(d297925e) SHA1(5bc4d37bf0dc54114884c816b94a64ef1ccfeda5) )
r248543r248544
643639   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
644640   ROM_LOAD( "32j10-0.42",  0x00000, 0x10000, CRC(65daf475) SHA1(7144332b2d17af8645e22e1926b33113db0d20e2) )
645641
646   ROM_REGION( 0x020000, "gfx1", 0 ) /* Chars */
642   ROM_REGION( 0x020000, "chars", 0 ) /* Chars */
647643   ROM_LOAD( "32j11-0.55",  0x00000, 0x20000, CRC(7252d993) SHA1(43f7de381841039aa290486aafb98e2cf3b8579b) )
648644
649   ROM_REGION( 0xa00000, "gfx2", 0 ) /* Sprite Tiles */
645   ROM_REGION( 0xa00000, "sprites", 0 ) /* Sprite Tiles */
650646   ROM_LOAD( "32j4-0.12",  0x000000, 0x200000, CRC(1ebea5b6) SHA1(35bd49dda9ad75326d45ffb10c87d83fc4f1b7a8) )
651647   ROM_LOAD( "32j5-0.13",  0x200000, 0x200000, CRC(600026b5) SHA1(5641246300d7e20dcff1eae004647faaee6cd1c6) )
652648   ROM_LOAD( "32j6-0.24",  0x400000, 0x200000, CRC(6cde8ebe) SHA1(750933798235951fe24b2e667c33f692612c0aa0) )
653649   ROM_LOAD( "32j7-0.25",  0x600000, 0x200000, CRC(bcb37922) SHA1(f3eee73c8b9f4873a7f1cc42e334e7502eaee3c8) )
654650   ROM_LOAD( "32j8-0.32",  0x800000, 0x200000, CRC(201bebf6) SHA1(c89d2895ea5b19daea1f88542419f4e10f437c73) )
655651
656   ROM_REGION( 0x300000, "gfx3", 0 ) /* BG Tiles */
652   ROM_REGION( 0x300000, "tiles", 0 ) /* BG Tiles */
657653   ROM_LOAD( "32j1-0.4",  0x000000, 0x100000, CRC(f1cca740) SHA1(339079b95ca137e66b4f032ad67a0adf58cca100) )
658654   ROM_LOAD( "32j2-0.5",  0x100000, 0x100000, CRC(5fac3e01) SHA1(20c30f4c76e303285ae37e596afe86aa4812c3b9) )
659655   ROM_LOAD( "32j3-0.6",  0x200000, 0x100000, CRC(d297925e) SHA1(5bc4d37bf0dc54114884c816b94a64ef1ccfeda5) )
trunk/src/mame/drivers/silvmil.c
r248543r248544
99  also very close to gotcha.c, which was also a Para
1010  board.
1111
12  todo: refresh rate & audio balance
12  todo: refresh rate
1313        verify dipswitches - difficulty & unknown dips
14        verify clocks for Z80 & OKI6295
1514
16OSC on the PCB are 12MHz, 14.31818MHz & 4.096MHz
15OSC on Silver Millennium are 12MHz, 14.31818MHz & 4.096MHz
16The above has been verified on two boards.
1717
18OSC on World Puzzlove are 12MHz, 14.31818MHz & 4MHz
19OSC on Korean Puzzlove are 12MHz, 15MHz & 4MHz
20Only one example of each of these is known to exist so far.
21
22Very likely to be 'whatever crystals we had on hand which were close enough for the batch' situations.
23
1824*/
1925
2026#include "emu.h"
r248543r248544
167173}
168174
169175
170
171
172176static ADDRESS_MAP_START( silvmil_map, AS_PROGRAM, 16, silvmil_state )
173177   AM_RANGE(0x000000, 0x0fffff) AM_ROM
174178
r248543r248544
321325   PORT_SERVICE_DIPLOC(  0x8000, IP_ACTIVE_LOW, "SW2:8" ) /* Verified */
322326INPUT_PORTS_END
323327
328static INPUT_PORTS_START( puzzlovek )
329   PORT_INCLUDE(puzzlove)
324330
331   PORT_MODIFY("DSW")
332   /* Korean rev has demo sound */
333   PORT_DIPNAME( 0x0001, 0x0000, DEF_STR( Demo_Sounds ) )   PORT_DIPLOCATION("SW1:1")
334   PORT_DIPSETTING( 0x0001, DEF_STR ( Off ) )
335   PORT_DIPSETTING( 0x0000, DEF_STR ( On ) )
325336
337   /* Korean rev has slightly different difficulty settings */
338   PORT_DIPNAME( 0x0300, 0x0100, DEF_STR( Difficulty ) )   PORT_DIPLOCATION("SW2:1,2")
339   PORT_DIPSETTING(      0x0300, DEF_STR( Easy ) )       /* Initial start time 35 secs */
340   PORT_DIPSETTING(      0x0200, DEF_STR( Very_Easy ) )  /* Initial start time 40 secs - Other in game effects?? */
341   PORT_DIPSETTING(      0x0100, DEF_STR( Hard ) )       /* Initial start time 30 secs - Other in game effects?? */
342   PORT_DIPSETTING(      0x0000, DEF_STR( Very_Hard ) )  /* Initial start time 30 secs - Other in game effects?? */
343INPUT_PORTS_END
344
345
346
326347static const gfx_layout tlayout =
327348{
328349   16,16,
r248543r248544
368389   AM_RANGE(0xc00f, 0xc00f) AM_WRITENOP // ??
369390ADDRESS_MAP_END
370391
371/* CLOCKS UNKNOWN! */
372392
373393static MACHINE_CONFIG_START( silvmil, silvmil_state )
374394
375395   /* basic machine hardware */
376   MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz)
396   MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* Verified */
377397   MCFG_CPU_PROGRAM_MAP(silvmil_map)
378398   MCFG_CPU_VBLANK_INT_DRIVER("screen", silvmil_state,  irq6_line_hold)
379399
380   MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) // 4.096MHz or 3.579545MHz - Need to verify
400   MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) /* Verified */
381401   MCFG_CPU_PROGRAM_MAP(silvmil_sound_map)
382402
383403
r248543r248544
402422   MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
403423   MCFG_DECO_SPRITE_PALETTE("palette")
404424
405   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
425   MCFG_SPEAKER_STANDARD_MONO("mono")
406426
407   MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4)
427   MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4) /* Verified */
408428   MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
409   MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
410   MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
429   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
411430
412   MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) // Need to verify
413   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.2)
414   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.2)
431   MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) /* Verified */
432   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
415433MACHINE_CONFIG_END
416434
417435static MACHINE_CONFIG_DERIVED( puzzlove, silvmil )
436   MCFG_DEVICE_REMOVE("audiocpu")
437   MCFG_CPU_ADD("audiocpu", Z80, XTAL_4MHz) /* Verified */
438   MCFG_CPU_PROGRAM_MAP(silvmil_sound_map)
439
418440   MCFG_DEVICE_MODIFY("spritegen")
419441   MCFG_DECO_SPRITE_BOOTLEG_TYPE(1)
442
443   MCFG_DEVICE_REMOVE("oki")
444   MCFG_OKIM6295_ADD("oki", XTAL_4MHz/4, OKIM6295_PIN7_HIGH) /* Verified */
445   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
420446MACHINE_CONFIG_END
421447
448static MACHINE_CONFIG_DERIVED( puzzlovek, puzzlove )
449        MCFG_DEVICE_REMOVE("ymsnd")
450        MCFG_YM2151_ADD("ymsnd", XTAL_15MHz/4) /* Verified */
451        MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
452        MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
453MACHINE_CONFIG_END
454
455
422456ROM_START( silvmil )
423457   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */
424458   ROM_LOAD16_BYTE( "d-13_u3.bin", 0x00000, 0x40000, CRC(46106c59) SHA1(ab965c1ea9ce89a67875530d76ac2bde7fd13e13) )
r248543r248544
499533   ROM_LOAD16_BYTE( "8.u56", 0x100001, 0x80000, CRC(037dcd3d) SHA1(fcdf604710518982e0b4acc81a56fa703d0c9407) )
500534ROM_END
501535
536ROM_START( puzzlovek )
537   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */
538   ROM_LOAD16_BYTE( "3.u3", 0x00000, 0x40000, CRC(28f403f0) SHA1(5f9fc18f705fe81f0dceaf2d62b6caffb0b0462e) ) // sldh
539   ROM_LOAD16_BYTE( "4.u2", 0x00001, 0x40000, CRC(809371b9) SHA1(6b2dc899a4e2cf4fca777f0ec4a08e636099e0d2) ) // sldh
540
541   ROM_REGION( 0x20000, "audiocpu", 0 ) /* z80  */
542   ROM_LOAD( "1.uz02", 0x00000, 0x20000, CRC(3077e7f3) SHA1(e2bf634a2166e1851486a801e74a7ec0d4599c28) )
543
544   ROM_REGION( 0x40000, "oki", 0 ) /* samples */
545   ROM_LOAD( "2.uz11", 0x00000, 0x40000, CRC(4c06ec68) SHA1(3cfca1c98e73c65a45b65d43e012c5529572c057) )
546
547   ROM_REGION( 0x100000, "gfx1", 0 )
548   ROM_LOAD16_BYTE( "10.u41",  0x000000, 0x20000, CRC(3f952c54) SHA1(1f18579ce98305d20ec0f4e216f8170a62b9c68b) ) // sldh
549   ROM_CONTINUE ( 0x080000,0x20000 )
550   ROM_CONTINUE ( 0x040000,0x20000 )
551   ROM_CONTINUE ( 0x0c0000,0x20000 )
552   ROM_LOAD16_BYTE( "9.u42",   0x000001, 0x20000, CRC(4f71ee93) SHA1(db0d00fa0f6c9b7bc638dcb50f041fb32827c7c4) ) // sldh
553   ROM_CONTINUE ( 0x080001,0x20000 )
554   ROM_CONTINUE ( 0x040001,0x20000 )
555   ROM_CONTINUE ( 0x0c0001,0x20000 )
556
557   ROM_REGION( 0x200000, "gfx2", 0 ) /* sprites */
558   ROM_LOAD16_BYTE( "5.u53", 0x000000, 0x80000, CRC(c5732995) SHA1(e7faecb19f4bdb103b782e38463d32b357ea63bc) ) // sldh
559   ROM_LOAD16_BYTE( "6.u54", 0x000001, 0x80000, CRC(a3b98fd1) SHA1(2b2b7c9df19882a0565e38504b73f56ea27d71ab) ) // sldh
560   ROM_LOAD16_BYTE( "7.u55", 0x100000, 0x80000, CRC(a4c73b48) SHA1(9f26af7b961c96cfd1c45f85f1d6dc4f364e3541) ) // sldh
561   ROM_LOAD16_BYTE( "8.u56", 0x100001, 0x80000, CRC(95b5f049) SHA1(1104dac1fbf6a894b7d8294b3f44a0edbf363157) ) // sldh
562ROM_END
563
502564void silvmil_state::tumblepb_gfx1_rearrange()
503565{
504566   UINT8 *rom = memregion("gfx1")->base();
r248543r248544
525587   tumblepb_gfx1_rearrange();
526588}
527589
528GAME( 1995, silvmil,  0, silvmil, silvmil, silvmil_state, silvmil, ROT270, "Para", "Silver Millennium", GAME_SUPPORTS_SAVE )
529GAME( 1994, puzzlove, 0, puzzlove,puzzlove,silvmil_state, silvmil, ROT0,   "Para", "PuzzLove", GAME_SUPPORTS_SAVE )
590GAME( 1995, silvmil,   0,        silvmil,   silvmil,   silvmil_state, silvmil, ROT270, "Para", "Silver Millennium", GAME_SUPPORTS_SAVE )
591GAME( 1994, puzzlove,   0,        puzzlove,  puzzlove,  silvmil_state, silvmil, ROT0,   "Para", "PuzzLove", GAME_SUPPORTS_SAVE )
592GAME( 1994, puzzlovek,   puzzlove, puzzlovek, puzzlovek, silvmil_state, silvmil, ROT0,   "Para", "PuzzLove (Korea)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/smsmcorp.c
r248543r248544
247247   virtual void machine_start();
248248   virtual void machine_reset();
249249   virtual void video_start();
250   DECLARE_PALETTE_INIT(smsmfg);
251250   DECLARE_MACHINE_START(sureshot);
252251   UINT32 screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
253252   required_device<cpu_device> m_maincpu;
r248543r248544
472471   return 0;
473472}
474473
475PALETTE_INIT_MEMBER(smsmfg_state, smsmfg)
476{
477   int i;
478
479   for (i = 0; i < 8; i++ )
480   {
481      palette.set_pen_color(i, rgb_t(pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i)));
482   }
483}
484
485474/*************************************
486475 *
487476 *  Memory maps
r248543r248544
572561   MCFG_SCREEN_UPDATE_DRIVER(smsmfg_state, screen_update_sms)
573562   MCFG_SCREEN_PALETTE("palette")
574563
575   MCFG_PALETTE_ADD("palette", 8)
576   MCFG_PALETTE_INIT_OWNER(smsmfg_state, smsmfg)
564   MCFG_PALETTE_ADD_3BIT_BGR("palette")
577565
578566   /* sound hardware */
579567   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/spiders.c
r248543r248544
323323}
324324
325325
326MC6845_BEGIN_UPDATE( spiders_state::crtc_begin_update )
327{
328   /* create the pens */
329   for (offs_t i = 0; i < NUM_PENS; i++)
330   {
331      m_pens[i] = rgb_t(pal1bit(i >> 0), pal1bit(i >> 1), pal1bit(i >> 2));
332   }
333}
334
335
336326MC6845_UPDATE_ROW( spiders_state::crtc_update_row )
337327{
338328   UINT8 x = 0;
r248543r248544
378368            data3 = data3 >> 1;
379369         }
380370
381         bitmap.pix32(y, x) = m_pens[color];
371         bitmap.pix32(y, x) = m_palette->pen_color(color);
382372
383373         x = x + 1;
384374      }
r248543r248544
578568   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 256, 0, 256, 256, 0, 256)   /* temporary, CRTC will configure screen */
579569   MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
580570
571   MCFG_PALETTE_ADD_3BIT_RGB("palette")
572
581573   MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK)
582574   MCFG_MC6845_SHOW_BORDER_AREA(false)
583575   MCFG_MC6845_CHAR_WIDTH(8)
584   MCFG_MC6845_BEGIN_UPDATE_CB(spiders_state, crtc_begin_update)
585576   MCFG_MC6845_UPDATE_ROW_CB(spiders_state, crtc_update_row)
586577   MCFG_MC6845_OUT_DE_CB(WRITELINE(spiders_state, display_enable_changed))
587578
trunk/src/mame/drivers/taito_f3.c
r248543r248544
19351935   ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) )    // CD CE CF D0
19361936ROM_END
19371937
1938
19381939ROM_START( bublbob2 )
19391940   ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */
1941   ROM_LOAD32_BYTE("d90-21.ic20", 0x000000, 0x40000, CRC(2a2b771a) SHA1(7f9bd768cf34069ca139261ebd8304325598fec6) )
1942   ROM_LOAD32_BYTE("d90-20.ic19", 0x000001, 0x40000, CRC(f01f63b6) SHA1(cbdc8c6248a2c0c1bc77fdc28738f67ce9a6aec3) )
1943   ROM_LOAD32_BYTE("d90-19.ic18", 0x000002, 0x40000, CRC(86eef19a) SHA1(9a389fefa280662843cafb68b5ae411e9348d34d) )
1944   ROM_LOAD32_BYTE("d90-18.ic17", 0x000003, 0x40000, CRC(f5b8cdce) SHA1(cf6ce6638eebd7d2e1defdd48110cc3002109c5c) )
1945
1946   ROM_REGION(0x400000, "gfx1" , 0) /* Sprites */
1947   ROM_LOAD16_BYTE("d90-03", 0x000000, 0x100000, CRC(6fa894a1) SHA1(7c33e6d41e8928029b92d66557a3712b51c49c67) )
1948   ROM_LOAD16_BYTE("d90-02", 0x000001, 0x100000, CRC(5ab04ca2) SHA1(6d87e7ca3167ff81a041cfedbbed84d51da997de) )
1949   ROM_LOAD       ("d90-01", 0x300000, 0x100000, CRC(8aedb9e5) SHA1(fb49330f7985a829c9544ecfd0bc672494f29cf6) )
1950   ROM_FILL       (          0x200000, 0x100000, 0 )
1951
1952   ROM_REGION(0x400000, "gfx2" , 0) /* Tiles */
1953   ROM_LOAD16_BYTE("d90-08", 0x000000, 0x100000, CRC(25a4fb2c) SHA1(c8bf6fe2291c05386b32cd26bfcb379da756d7b5) )
1954   ROM_LOAD16_BYTE("d90-07", 0x000001, 0x100000, CRC(b436b42d) SHA1(559827120273733147b260e0723054d926dbea5e) )
1955   ROM_LOAD       ("d90-06", 0x300000, 0x100000, CRC(166a72b8) SHA1(7f70b8c960794322e1dc88e6600a2d13d948d873) )
1956   ROM_FILL       (          0x200000, 0x100000, 0 )
1957
1958   ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
1959   ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
1960   ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
1961
1962   ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
1963   ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) )    // C8 C9 CA CB
1964   ROM_LOAD16_BYTE("d90-05", 0x400000, 0x200000, CRC(c192331f) SHA1(ebab05b3681c70b373bc06c1826be1cc397d3af7) )    // CC CD -std-
1965
1966   ROM_REGION( 0x1200, "plds", 0 )
1967   ROM_LOAD("d77-14_palce16v8q-15.ic21.bin", 0x000, 0x117, CRC(2c798a1c) SHA1(e8ac31c3cd53eb61fedfd710c31356e8fa968cbc) )
1968   ROM_LOAD("d77-12_palce16v8q-15.ic48.bin", 0x000, 0x117, CRC(b1cc6195) SHA1(629ef8416a2cb51fcbc48e5c306dd04c96902726) )
1969   ROM_LOAD("d77-11_palce16v8q-15.ic37.bin", 0x000, 0x117, CRC(a733f0de) SHA1(6eec26043cedb3cae4efe93faa84a07327be468b) )
1970ROM_END
1971
1972
1973ROM_START( bublbob2o )
1974   ROM_REGION(0x200000, "maincpu", 0) /* 68020 code */
19401975   ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) )
19411976   ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) )
19421977   ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) )
r248543r248544
19551990   ROM_FILL       (          0x200000, 0x100000, 0 )
19561991
19571992   ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
1958   ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
1959   ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
1993   ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
1994   ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
19601995
19611996   ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
19621997   ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) )    // C8 C9 CA CB
r248543r248544
20302065   ROM_FILL       (          0x200000, 0x100000, 0 )
20312066
20322067   ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
2033   ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
2034   ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
2068   ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
2069   ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
20352070
20362071   ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
20372072   ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) )    // C8 C9 CA CB
r248543r248544
20582093   ROM_FILL       (          0x200000, 0x100000, 0 )
20592094
20602095   ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
2061   ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
2062   ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
2096   ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
2097   ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
20632098
20642099   ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
20652100   ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) )    // C8 C9 CA CB
r248543r248544
21472182   ROM_FILL       (          0x200000, 0x100000, 0 )
21482183
21492184   ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
2150   ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
2151   ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
2185   ROM_LOAD16_BYTE("d90-13.ic32", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
2186   ROM_LOAD16_BYTE("d90-14.ic33", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
21522187
21532188   ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
21542189   ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) )    // C8 C9 CA CB
r248543r248544
41234158GAME( 1994, dariusgj, dariusg,  f3,      f3, taito_f3_state, dariusg,  ROT0,   "Taito Corporation",         "Darius Gaiden - Silver Hawk (Ver 2.5J 1994/09/19)", 0 )
41244159GAME( 1994, dariusgu, dariusg,  f3,      f3, taito_f3_state, dariusg,  ROT0,   "Taito America Corporation", "Darius Gaiden - Silver Hawk (Ver 2.5A 1994/09/19)", 0 )
41254160GAME( 1994, dariusgx, dariusg,  f3,      f3, taito_f3_state, dariusg,  ROT0,   "Taito Corporation",         "Darius Gaiden - Silver Hawk Extra Version (Ver 2.7J 1995/03/06) (Official Hack)", 0 )
4126GAME( 1994, bublbob2, 0,        f3_224a, f3, taito_f3_state, bubsymph, ROT0,   "Taito Corporation Japan",   "Bubble Bobble II (Ver 2.5O 1994/10/05)", 0 )
4161GAME( 1994, bublbob2, 0,        f3_224a, f3, taito_f3_state, bubsymph, ROT0,   "Taito Corporation Japan",   "Bubble Bobble II (Ver 2.6O 1994/12/16)", 0 )
4162GAME( 1994, bublbob2o,bublbob2, f3_224a, f3, taito_f3_state, bubsymph, ROT0,   "Taito Corporation Japan",   "Bubble Bobble II (Ver 2.5O 1994/10/05)", 0 )
41274163GAME( 1994, bublbob2p,bublbob2, f3_224a, f3, taito_f3_state, bubsymph, ROT0,   "Taito Corporation Japan",   "Bubble Bobble II (Ver 0.0J 1993/12/13, prototype)", 0 )
41284164GAME( 1994, bubsymphe,bublbob2, f3_224a, f3, taito_f3_state, bubsymph, ROT0,   "Taito Corporation Japan",   "Bubble Symphony (Ver 2.5O 1994/10/05)", 0 )
41294165GAME( 1994, bubsymphu,bublbob2, f3_224a, f3, taito_f3_state, bubsymph, ROT0,   "Taito America Corporation", "Bubble Symphony (Ver 2.5A 1994/10/05)", 0 )
trunk/src/mame/drivers/tank8.c
r248543r248544
1313
1414
1515
16void tank8_state::tank8_set_collision(int index)
16void tank8_state::set_collision(int index)
1717{
1818   m_maincpu->set_input_line(0, ASSERT_LINE);
1919
r248543r248544
2727}
2828
2929
30READ8_MEMBER(tank8_state::tank8_collision_r)
30READ8_MEMBER(tank8_state::collision_r)
3131{
3232   return m_collision_index;
3333}
3434
35WRITE8_MEMBER(tank8_state::tank8_lockout_w)
35WRITE8_MEMBER(tank8_state::lockout_w)
3636{
3737   coin_lockout_w(machine(), offset, ~data & 1);
3838}
3939
4040
41WRITE8_MEMBER(tank8_state::tank8_int_reset_w)
41WRITE8_MEMBER(tank8_state::int_reset_w)
4242{
4343   m_collision_index &= ~0x3f;
4444
4545   m_maincpu->set_input_line(0, CLEAR_LINE);
4646}
4747
48WRITE8_MEMBER(tank8_state::tank8_crash_w)
48WRITE8_MEMBER(tank8_state::crash_w)
4949{
5050   m_discrete->write(space, TANK8_CRASH_EN, data);
5151}
5252
53WRITE8_MEMBER(tank8_state::tank8_explosion_w)
53WRITE8_MEMBER(tank8_state::explosion_w)
5454{
5555   m_discrete->write(space, TANK8_EXPLOSION_EN, data);
5656}
5757
58WRITE8_MEMBER(tank8_state::tank8_bugle_w)
58WRITE8_MEMBER(tank8_state::bugle_w)
5959{
6060   m_discrete->write(space, TANK8_BUGLE_EN, data);
6161}
6262
63WRITE8_MEMBER(tank8_state::tank8_bug_w)
63WRITE8_MEMBER(tank8_state::bug_w)
6464{
6565   /* D0 and D1 determine the on/off time off the square wave */
6666   switch(data & 3) {
r248543r248544
8484
8585}
8686
87WRITE8_MEMBER(tank8_state::tank8_attract_w)
87WRITE8_MEMBER(tank8_state::attract_w)
8888{
8989   m_discrete->write(space, TANK8_ATTRACT_EN, data);
9090}
9191
92WRITE8_MEMBER(tank8_state::tank8_motor_w)
92WRITE8_MEMBER(tank8_state::motor_w)
9393{
9494   m_discrete->write(space, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data);
9595}
r248543r248544
9999   AM_RANGE(0x0400, 0x17ff) AM_ROM
100100   AM_RANGE(0xf800, 0xffff) AM_ROM
101101
102   AM_RANGE(0x1c00, 0x1c00) AM_READ(tank8_collision_r)
102   AM_RANGE(0x1c00, 0x1c00) AM_READ(collision_r)
103103
104104   AM_RANGE(0x1c01, 0x1c01) AM_READ_PORT("P1")
105105   AM_RANGE(0x1c02, 0x1c02) AM_READ_PORT("P2")
r248543r248544
114114   AM_RANGE(0x1c0b, 0x1c0b) AM_READ_PORT("RC")
115115   AM_RANGE(0x1c0f, 0x1c0f) AM_READ_PORT("VBLANK")
116116
117   AM_RANGE(0x1800, 0x1bff) AM_WRITE(tank8_video_ram_w) AM_SHARE("video_ram")
117   AM_RANGE(0x1800, 0x1bff) AM_WRITE(video_ram_w) AM_SHARE("video_ram")
118118   AM_RANGE(0x1c00, 0x1c0f) AM_WRITEONLY AM_SHARE("pos_h_ram")
119119   AM_RANGE(0x1c10, 0x1c1f) AM_WRITEONLY AM_SHARE("pos_v_ram")
120120   AM_RANGE(0x1c20, 0x1c2f) AM_WRITEONLY AM_SHARE("pos_d_ram")
121121
122   AM_RANGE(0x1c30, 0x1c37) AM_WRITE(tank8_lockout_w)
123   AM_RANGE(0x1d00, 0x1d00) AM_WRITE(tank8_int_reset_w)
124   AM_RANGE(0x1d01, 0x1d01) AM_WRITE(tank8_crash_w)
125   AM_RANGE(0x1d02, 0x1d02) AM_WRITE(tank8_explosion_w)
126   AM_RANGE(0x1d03, 0x1d03) AM_WRITE(tank8_bugle_w)
127   AM_RANGE(0x1d04, 0x1d04) AM_WRITE(tank8_bug_w)
122   AM_RANGE(0x1c30, 0x1c37) AM_WRITE(lockout_w)
123   AM_RANGE(0x1d00, 0x1d00) AM_WRITE(int_reset_w)
124   AM_RANGE(0x1d01, 0x1d01) AM_WRITE(crash_w)
125   AM_RANGE(0x1d02, 0x1d02) AM_WRITE(explosion_w)
126   AM_RANGE(0x1d03, 0x1d03) AM_WRITE(bugle_w)
127   AM_RANGE(0x1d04, 0x1d04) AM_WRITE(bug_w)
128128   AM_RANGE(0x1d05, 0x1d05) AM_WRITEONLY AM_SHARE("team")
129   AM_RANGE(0x1d06, 0x1d06) AM_WRITE(tank8_attract_w)
130   AM_RANGE(0x1e00, 0x1e07) AM_WRITE(tank8_motor_w)
129   AM_RANGE(0x1d06, 0x1d06) AM_WRITE(attract_w)
130   AM_RANGE(0x1e00, 0x1e07) AM_WRITE(motor_w)
131131
132132ADDRESS_MAP_END
133133
r248543r248544
339339   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(30 * 1000000 / 15681))
340340   MCFG_SCREEN_SIZE(512, 524)
341341   MCFG_SCREEN_VISIBLE_AREA(16, 495, 0, 463)
342   MCFG_SCREEN_UPDATE_DRIVER(tank8_state, screen_update_tank8)
343   MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof_tank8)
342   MCFG_SCREEN_UPDATE_DRIVER(tank8_state, screen_update)
343   MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof)
344344   MCFG_SCREEN_PALETTE("palette")
345345
346346   MCFG_GFXDECODE_ADD("gfxdecode", "palette", tank8)
r248543r248544
480480}
481481
482482
483GAME( 1976, tank8,    0,        tank8,    tank8, driver_device,    0,         ROT0, "Atari (Kee Games)", "Tank 8 (set 1)", 0)
484GAME( 1976, tank8a,   tank8,    tank8,    tank8, tank8_state,    decode,   ROT0, "Atari (Kee Games)", "Tank 8 (set 2)",  GAME_NOT_WORKING )
485GAME( 1976, tank8b,   tank8,    tank8,    tank8, tank8_state,    decode,   ROT0, "Atari (Kee Games)", "Tank 8 (set 3)",  GAME_NOT_WORKING )
486GAME( 1976, tank8c,   tank8,    tank8,    tank8, driver_device,    0,        ROT0, "Atari (Kee Games)", "Tank 8 (set 4)",  GAME_NOT_WORKING )
487GAME( 1976, tank8d,   tank8,    tank8,    tank8, driver_device,    0,        ROT0, "Atari (Kee Games)", "Tank 8 (set 5)",  GAME_NOT_WORKING )
483GAME( 1976, tank8,    0,        tank8,    tank8, driver_device,    0,         ROT0, "Atari (Kee Games)", "Tank 8 (set 1)", GAME_SUPPORTS_SAVE)
484GAME( 1976, tank8a,   tank8,    tank8,    tank8, tank8_state,    decode,   ROT0, "Atari (Kee Games)", "Tank 8 (set 2)",  GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
485GAME( 1976, tank8b,   tank8,    tank8,    tank8, tank8_state,    decode,   ROT0, "Atari (Kee Games)", "Tank 8 (set 3)",  GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
486GAME( 1976, tank8c,   tank8,    tank8,    tank8, driver_device,    0,        ROT0, "Atari (Kee Games)", "Tank 8 (set 4)",  GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
487GAME( 1976, tank8d,   tank8,    tank8,    tank8, driver_device,    0,        ROT0, "Atari (Kee Games)", "Tank 8 (set 5)",  GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/tourvis.c
r248543r248544
1616
1717    Known games:
1818
19    1943
1920    Aero Blaster (label shows "Vol. 33") [dumped]
2021    After Burner
22    Ankoku Densetu
2123    Ballistix
22    Bomberman
24    Bomberman (label shows "Vol. 34")
2325    Columns [dumped]
2426    Cyber Core
2527    Daisempuu
2628    Dead Moon
29    Die Hard
2730    Dodge Ball
2831    Doraemon Meikyuu Daisakusen
32    Doramon II
2933    Down Load
3034    Dragon Spirit
3135    Dungeon Explorer [dumped]
r248543r248544
3943    Kiki Kaikai
4044    Legend Of Hero Tomna
4145    Legendary Axe [dumped]
46    Liquid Kids
4247    Mr. Heli
4348    Out Run
4449    Pac-Land
45    Parasol Stars
4650    PC Denjin Punkic Cyborg
4751    PC Genjin
4852    PC Genjin 2 [dumped]
r248543r248544
5660    Saigo no Nindou
5761    Salamander
5862    Shinobi
63    Side Arms
64    Skweek
5965    Son Son II
6066    Special Criminal Investigation [dumped]
6167    Super Star Soldier (label shows "Vol. 30") [dumped]
r248543r248544
6470    Terra Cresta II
6571    Thunder Blade [dumped]
6672    Toy Shop Boys
73    Tricky
6774    USA Pro Basketball [dumped]
75    Veigues
6876    Vigilante
6977    Volfied [dumped]
7078    W-Ring
trunk/src/mame/drivers/unkhorse.c
r248543r248544
4848   DECLARE_WRITE_LINE_MEMBER(timer_out);
4949
5050   virtual void machine_start();
51   DECLARE_PALETTE_INIT(horse);
5251
5352   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5453
r248543r248544
6766
6867***************************************************************************/
6968
70PALETTE_INIT_MEMBER(horse_state, horse)
71{
72   // palette is simply 3bpp
73   for (int i = 0; i < 8; i++)
74      palette.set_pen_color(i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
75}
76
7769UINT32 horse_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7870{
7971   for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
r248543r248544
223215   MCFG_SCREEN_UPDATE_DRIVER(horse_state, screen_update)
224216   MCFG_SCREEN_PALETTE("palette")
225217
226   MCFG_PALETTE_ADD("palette", 8)
227   MCFG_PALETTE_INIT_OWNER(horse_state, horse)
218   MCFG_PALETTE_ADD_3BIT_BGR("palette")
228219
229220   /* sound hardware */
230221   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/vegas.c
r248543r248544
24462446 *
24472447 *************************************/
24482448
2449
2450
2451
24492452ROM_START( gauntleg )
2450   ROM_REGION32_LE( 0x80000, "user1", 0 )  /* EPROM 1.5 11/17/1998 */
2451   ROM_LOAD( "legend15.bin", 0x000000, 0x80000, CRC(a8372d70) SHA1(d8cd4fd4d7007ee38bb58b5a818d0f83043d5a48) )
2453   ROM_REGION32_LE( 0x80000, "user1", 0 )
2454   ROM_LOAD( "legend15.bin", 0x000000, 0x80000, CRC(a8372d70) SHA1(d8cd4fd4d7007ee38bb58b5a818d0f83043d5a48) ) // EPROM Boot code. Version: Nov 17 1998 19:18:28 / 1.5 Nov 17 1998 19:21:49
24522455
24532456   DISK_REGION( "ide:0:hdd:image" )    /* Guts 1.5 1/14/1999 Game 1/14/1999 */
24542457   DISK_IMAGE( "gauntleg", 0, SHA1(66eb70e2fba574a7abe54be8bd45310654b24b08) )
r248543r248544
24592462
24602463
24612464ROM_START( gauntleg12 )
2462   ROM_REGION32_LE( 0x80000, "user1", 0 )  /* EPROM 1.3 9/25/1998 */
2463   ROM_LOAD( "legend12.bin", 0x000000, 0x80000, CRC(34674c5f) SHA1(92ec1779f3ab32944cbd953b6e1889503a57794b) )
2465   ROM_REGION32_LE( 0x80000, "user1", 0 )
2466   ROM_LOAD( "legend13.bin", 0x000000, 0x80000, CRC(34674c5f) SHA1(92ec1779f3ab32944cbd953b6e1889503a57794b) ) //  EPROM Boot code. Version: Sep 25 1998 18:34:43 / 1.3 Sep 25 1998 18:33:45
2467   ROM_LOAD( "legend14.bin", 0x000000, 0x80000, CRC(66869402) SHA1(bf470e0b9198b80f8baf8b9432a7e1df8c7d18ca) ) //  EPROM Boot code. Version: Oct 30 1998 17:48:21 / 1.4 Oct 30 1998 17:44:29
24642468
24652469   DISK_REGION( "ide:0:hdd:image" )    /* Guts 1.4 10/22/1998 Main 10/23/1998 */
24662470   DISK_IMAGE( "gauntl12", 0, SHA1(c8208e3ce3b02a271dc6b089efa98dd996b66ce0) )
r248543r248544
25292533
25302534ROM_START( nbashowt )
25312535   ROM_REGION32_LE( 0x80000, "user1", 0 )
2532   ROM_LOAD( "nbau27.100", 0x000000, 0x80000, CRC(ff5d620d) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) )
2536   ROM_LOAD( "showtime_mar15_1999.u27", 0x000000, 0x80000, CRC(ff5d620d) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) ) // 16:09:14 Mar 15 1999 BIOS FOR SHOWTIME USING BANSHEE / 16:09:01 Mar 15 1999. POST FOR SHOWTIME USING BANSHEE
25332537
25342538   DISK_REGION( "ide:0:hdd:image" )
2539   // various strings from this image
2540   // SHOWTIME REV 2.0
2541   // BUILD DATE: Apr 25 1999 (diag.exe?)
2542   // BUILD DATE: Apr 21 1999 (game?)
25352543   DISK_IMAGE( "nbashowt", 0, SHA1(f7c56bc3dcbebc434de58034986179ae01127f87) )
25362544
25372545   ROM_REGION16_LE( 0x10000, "dcs", 0 )    /* Vegas SIO boot ROM */
r248543r248544
25412549
25422550ROM_START( nbanfl )
25432551   ROM_REGION32_LE( 0x80000, "user1", 0 )
2544   ROM_LOAD( "u27nflnba.bin", 0x000000, 0x80000, CRC(6a9bd382) SHA1(18b942df6af86ea944c24166dbe88148334eaff9) )
2545//  ROM_LOAD( "bootnflnba.bin", 0x000000, 0x80000, CRC(3def7053) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) )
2552   ROM_LOAD( "blitz00_sep22_1999.u27", 0x000000, 0x80000, CRC(6a9bd382) SHA1(18b942df6af86ea944c24166dbe88148334eaff9) ) // 16:00:32 Sep 22 1999 BIOS FOR BLITZ00 USING BANSHEE / 16:00:26 Sep 22 1999 POST FOR BLITZ00 USING BANSHEE
2553//  ROM_LOAD( "bootnflnba.bin", 0x000000, 0x80000, CRC(3def7053) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) ) // 1 byte different to above (0x51b95 is 0x1b instead of 0x18)
2554   ROM_LOAD( "blitz00_nov30_1999.u27", 0x000000, 0x80000, CRC(4242bf14) SHA1(c1fcec67d7463df5f41afc89f22c3b4484279534) ) // 15:10:49 Nov 30 1999 BIOS FOR BLITZ00 USING BANSHEE / 15:10:43 Nov 30 1999 POST FOR BLITZ00 USING BANSHEE
25462555
25472556   DISK_REGION( "ide:0:hdd:image" )
2557   // various strings from this image
2558   //NBA SHOWTIME 2.1
2559   //BUILD DATE: Sep 22 1999 (diag.exe?)
2560   //BUILD DATE: Sep 21 1999 (game?)
25482561   DISK_IMAGE( "nbanfl", 0, SHA1(f60c627f85f1bf58f2ea674063736a1e516e7e9e) )
25492562
25502563   ROM_REGION16_LE( 0x10000, "dcs", 0 )    /* Vegas SIO boot ROM */
25512564   ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) )
25522565ROM_END
25532566
2567// I'm not sure if NBA Showtime: NBA on NBC Gold was a standalone release, or the version with NBA Showtime: NBA on NBC Gold is actually 'Sports Station'
2568// it's possible the boot rom and CHD are mismatched here
2569ROM_START( nbagold )
2570   ROM_REGION32_LE( 0x80000, "user1", 0 )
2571   ROM_LOAD( "nbagold_jan10_2000.u27", 0x000000, 0x80000, CRC(6768e802) SHA1(d994e3efe14f57e261841134ddd1489fa67d418b) ) // 11:29:11 Jan 10 2000. BIOS FOR NBAGOLD USING BANSHEE / 11:23:58 Jan 10 2000. POST FOR NBAGOLD USING BANSHEE
25542572
2573   DISK_REGION( "ide:0:hdd:image" )
2574   // various strings from this image
2575   //NBA SHOWTIME GOLD 3.00
2576   //BUILD DATE Feb 18 2000 (diag.exe)
2577   //BUILD DATE:Feb 17 2000 (game?)
2578   //BUILD DATE:Feb 10 2000 (something else?)
2579   DISK_IMAGE( "nbanfl3", 0,  SHA1(19a51346ce5ae4e06e8dff3eb4bed59ec1ee855f))
2580   // these both contain the same strings / build dates, same thing with different user data / drive sizes?
2581//   DISK_IMAGE( "nbanfl27", 0, SHA1(da371d27e2fbceec493e2203055e0c1399eaf3b9) )
2582//   DISK_IMAGE( "sportstn", 0, SHA1(9442feefaeb5ae4a090422e937615f8a2d8e8f31) )
2583   
2584
2585   ROM_REGION16_LE( 0x10000, "dcs", 0 )    /* Vegas SIO boot ROM */
2586   ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) )
2587
2588   // also a PIC?
2589ROM_END
2590
2591
25552592ROM_START( cartfury )
25562593   ROM_REGION32_LE( 0x80000, "user1", 0 )
2557   ROM_LOAD( "bootu27", 0x000000, 0x80000, CRC(c44550a2) SHA1(ad30f1c3382ff2f5902a4cbacbb1f0c4e37f42f9) )
2594   ROM_LOAD( "cart_mar8_2000.u27", 0x000000, 0x80000, CRC(c44550a2) SHA1(ad30f1c3382ff2f5902a4cbacbb1f0c4e37f42f9) ) // 10:40:17 Mar  8 2000 BIOS FOR CART USING VOODOO3 / 10:39:55 Mar  8 2000 POST FOR CART USING VOODOO3
25582595
25592596   DISK_REGION( "ide:0:hdd:image" )
25602597   DISK_IMAGE( "cartfury", 0, SHA1(4c5bc2803297ea9a191bbd8b002d0e46b4ae1563) )
r248543r248544
26912728GAME( 1999, roadburn, 0,        roadburn, roadburn, vegas_state, roadburn, ROT0, "Atari Games",  "Road Burners", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
26922729
26932730/* Durango + DSIO? + Voodoo banshee */
2694GAME( 1998, nbashowt, 0,        nbashowt, nbashowt, vegas_state, nbashowt, ROT0, "Midway Games", "NBA Showtime: NBA on NBC", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
2695GAME( 1999, nbanfl,   0,        nbanfl, nbashowt, vegas_state, nbanfl,   ROT0, "Midway Games", "NBA Showtime / NFL Blitz 2000", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
2731GAME( 1998, nbashowt, 0,        nbashowt, nbashowt, vegas_state, nbashowt, ROT0, "Midway Games", "NBA Showtime: NBA on NBC (ver 2.0)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
2732GAME( 1999, nbanfl,   0,        nbanfl, nbashowt, vegas_state, nbanfl,   ROT0, "Midway Games", "NBA Showtime / NFL Blitz 2000 (ver 2.1)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
2733GAME( 2000, nbagold , 0,        nbanfl, nbashowt, vegas_state, nbanfl,   ROT0, "Midway Games", "NBA Showtime Gold / NFL Blitz 2000 (ver 3.0) (Sports Station?)", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
26962734
2735
26972736/* Durango + Denver SIO + Voodoo 3 */
26982737GAME( 1998, sf2049,   0,        sf2049,   sf2049, vegas_state,   sf2049,   ROT0, "Atari Games",  "San Francisco Rush 2049", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
26992738GAME( 1998, sf2049se, sf2049,   sf2049se,   sf2049se, vegas_state, sf2049se, ROT0, "Atari Games",  "San Francisco Rush 2049: Special Edition", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
trunk/src/mame/includes/4enraya.h
r248543r248544
4444   DECLARE_WRITE8_MEMBER(sound_control_w);
4545   DECLARE_DRIVER_INIT(unkpacg);
4646   TILE_GET_INFO_MEMBER(get_tile_info);
47   DECLARE_PALETTE_INIT(_4enraya);
4847   UINT32 screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4948
5049   virtual void machine_start();
trunk/src/mame/includes/kangaroo.h
r248543r248544
1414   kangaroo_state(const machine_config &mconfig, device_type type, const char *tag)
1515      : driver_device(mconfig, type, tag),
1616      m_video_control(*this, "video_control"),
17      m_maincpu(*this, "maincpu") { }
17      m_maincpu(*this, "maincpu"),
18      m_palette(*this, "palette") { }
1819
1920   /* memory pointers */
2021   required_shared_ptr<UINT8> m_video_control;
r248543r248544
3738   void videoram_write( UINT16 offset, UINT8 data, UINT8 mask );
3839   void blitter_execute(  );
3940   required_device<cpu_device> m_maincpu;
41   required_device<palette_device> m_palette;
4042};
trunk/src/mame/includes/namcond1.h
r248543r248544
1515public:
1616   namcond1_state(const machine_config &mconfig, device_type type, const char *tag)
1717      : driver_device(mconfig, type, tag),
18      m_shared_ram(*this, "shared_ram"),
1918      m_maincpu(*this, "maincpu"),
2019      m_mcu(*this, "mcu"),
21      m_ygv608(*this, "ygv608") { }
20      m_ygv608(*this, "ygv608"),
21      m_shared_ram(*this, "shared_ram") { }
2222
23   required_device<cpu_device> m_maincpu;
24   required_device<cpu_device> m_mcu;
25   required_device<ygv608_device> m_ygv608;
26
27   required_shared_ptr<UINT16> m_shared_ram;
28
2329   UINT8 m_h8_irq5_enabled;
24   required_shared_ptr<UINT16> m_shared_ram;
2530   int m_p8;
26   DECLARE_WRITE16_MEMBER(sharedram_sub_w);
27   DECLARE_READ16_MEMBER(sharedram_sub_r);
31
2832   DECLARE_READ16_MEMBER(mcu_p7_read);
2933   DECLARE_READ16_MEMBER(mcu_pa_read);
3034   DECLARE_WRITE16_MEMBER(mcu_pa_write);
31   DECLARE_READ16_MEMBER(namcond1_shared_ram_r);
32   DECLARE_READ16_MEMBER(namcond1_cuskey_r);
33   DECLARE_WRITE16_MEMBER(namcond1_shared_ram_w);
34   DECLARE_WRITE16_MEMBER(namcond1_cuskey_w);
35   DECLARE_READ16_MEMBER(cuskey_r);
36   DECLARE_WRITE16_MEMBER(cuskey_w);
37
3538   virtual void machine_start();
3639   virtual void machine_reset();
40
3741   INTERRUPT_GEN_MEMBER(mcu_interrupt);
38   required_device<cpu_device> m_maincpu;
39   required_device<cpu_device> m_mcu;
40   required_device<ygv608_device> m_ygv608;
4142};
trunk/src/mame/includes/namcos1.h
r248543r248544
2323      m_spriteram(*this, "spriteram"),
2424      m_playfield_control(*this, "pfcontrol"),
2525      m_triram(*this, "triram"),
26      m_rom(*this, "user1") { }
26      m_rom(*this, "user1"),
27      m_soundbank(*this, "soundbank"),
28      m_mcubank(*this, "mcubank"),
29      m_io_dipsw(*this, "DIPSW") { }
2730
2831   required_device<cpu_device> m_maincpu;
2932   required_device<cpu_device> m_subcpu;
r248543r248544
3942   required_shared_ptr<UINT8> m_spriteram;
4043   required_shared_ptr<UINT8> m_playfield_control;
4144   required_shared_ptr<UINT8> m_triram;
42
4345   required_region_ptr<UINT8> m_rom;
4446
47   required_memory_bank m_soundbank;
48   required_memory_bank m_mcubank;
49
50   required_ioport m_io_dipsw;
51
4552   int m_dac0_value;
4653   int m_dac1_value;
4754   int m_dac0_gain;
trunk/src/mame/includes/phoenix.h
r248543r248544
3535   DECLARE_CUSTOM_INPUT_MEMBER(player_input_r);
3636   DECLARE_CUSTOM_INPUT_MEMBER(pleiads_protection_r);
3737   DECLARE_DRIVER_INIT(condor);
38   DECLARE_DRIVER_INIT(vautourza);
3839   TILE_GET_INFO_MEMBER(get_fg_tile_info);
3940   TILE_GET_INFO_MEMBER(get_bg_tile_info);
4041   DECLARE_MACHINE_RESET(phoenix);
trunk/src/mame/includes/route16.h
r248543r248544
1010      m_sn(*this, "snsnd"),
1111      m_sharedram(*this, "sharedram"),
1212      m_videoram1(*this, "videoram1"),
13      m_videoram2(*this, "videoram2"){ }
13      m_videoram2(*this, "videoram2"),
14      m_palette(*this, "palette") {}
1415
1516   optional_device<sn76477_device> m_sn;
1617
1718   required_shared_ptr<UINT8> m_sharedram;
1819   required_shared_ptr<UINT8> m_videoram1;
1920   required_shared_ptr<UINT8> m_videoram2;
21   required_device<palette_device> m_palette;
2022
2123   UINT8 m_ttmahjng_port_select;
2224   int m_speakres_vrx;
r248543r248544
4143   virtual void video_start();
4244
4345   UINT32 screen_update_route16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
44   UINT32 screen_update_stratvox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4546   UINT32 screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
46   pen_t route16_make_pen(UINT8 color);
47   pen_t ttmajng_make_pen(UINT8 color);
48   int video_update_stratvox_ttmahjng(bitmap_rgb32 &bitmap,const rectangle &cliprect,pen_t (route16_state::*make_pen)(UINT8));
4947};
trunk/src/mame/includes/shadfrce.h
r248543r248544
1313      m_gfxdecode(*this, "gfxdecode"),
1414      m_screen(*this, "screen"),
1515      m_palette(*this, "palette"),
16      m_io_p1(*this, "P1"),
17      m_io_p2(*this, "P2"),
18      m_io_dsw1(*this, "DSW1"),
19      m_io_dsw2(*this, "DSW2"),
20      m_io_other(*this, "OTHER"),
21      m_io_extra(*this, "EXTRA"),
22      m_io_misc(*this, "MISC"),
23      m_io_system(*this, "SYSTEM"),
1624      m_fgvideoram(*this, "fgvideoram"),
1725      m_bg0videoram(*this, "bg0videoram"),
1826      m_bg1videoram(*this, "bg1videoram"),
r248543r248544
2533   required_device<screen_device> m_screen;
2634   required_device<palette_device> m_palette;
2735
36   required_ioport m_io_p1;
37   required_ioport m_io_p2;
38   required_ioport m_io_dsw1;
39   required_ioport m_io_dsw2;
40   required_ioport m_io_other;
41   required_ioport m_io_extra;
42   required_ioport m_io_misc;
43   required_ioport m_io_system;
44
2845   required_shared_ptr<UINT16> m_fgvideoram;
2946   required_shared_ptr<UINT16> m_bg0videoram;
3047   required_shared_ptr<UINT16> m_bg1videoram;
r248543r248544
6683
6784   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6885   void screen_eof(screen_device &screen, bool state);
69   void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
86   void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offset );
7087};
trunk/src/mame/includes/spiders.h
r248543r248544
88#include "sound/discrete.h"
99#include "video/mc6845.h"
1010
11#define NUM_PENS    (8)
12
1311class spiders_state : public driver_device
1412{
1513public:
r248543r248544
1816      m_ram(*this, "ram"),
1917      m_discrete(*this, "discrete"),
2018      m_maincpu(*this, "maincpu"),
19      m_palette(*this, "palette"),
2120      m_audiocpu(*this, "audiocpu") { }
2221
2322   required_shared_ptr<UINT8> m_ram;
r248543r248544
2726   UINT8 m_gfx_rom_ctrl_mode;
2827   UINT8 m_gfx_rom_ctrl_latch;
2928   UINT8 m_gfx_rom_ctrl_data;
30   pen_t m_pens[NUM_PENS];
29
3130   DECLARE_WRITE_LINE_MEMBER(main_cpu_irq);
3231   DECLARE_WRITE_LINE_MEMBER(main_cpu_firq);
3332   DECLARE_WRITE_LINE_MEMBER(audio_cpu_irq);
r248543r248544
4241   DECLARE_WRITE8_MEMBER(spiders_audio_a_w);
4342   DECLARE_WRITE8_MEMBER(spiders_audio_b_w);
4443   DECLARE_WRITE8_MEMBER(spiders_audio_ctrl_w);
45   MC6845_BEGIN_UPDATE(crtc_begin_update);
44
4645   MC6845_UPDATE_ROW(crtc_update_row);
46
4747   required_device<cpu_device> m_maincpu;
48   required_device<palette_device> m_palette;
4849   required_device<cpu_device> m_audiocpu;
4950};
5051
trunk/src/mame/includes/tank8.h
r248543r248544
3535
3636   tank8_state(const machine_config &mconfig, device_type type, const char *tag)
3737      : driver_device(mconfig, type, tag),
38      m_maincpu(*this, "maincpu"),
39      m_discrete(*this, "discrete"),
40      m_gfxdecode(*this, "gfxdecode"),
41      m_screen(*this, "screen"),
42      m_palette(*this, "palette"),
3843      m_video_ram(*this, "video_ram"),
3944      m_pos_h_ram(*this, "pos_h_ram"),
4045      m_pos_v_ram(*this, "pos_v_ram"),
4146      m_pos_d_ram(*this, "pos_d_ram"),
42      m_team(*this, "team"),
43      m_maincpu(*this, "maincpu"),
44      m_discrete(*this, "discrete"),
45      m_gfxdecode(*this, "gfxdecode"),
46      m_screen(*this, "screen"),
47      m_palette(*this, "palette") { }
47      m_team(*this, "team") { }
4848
49   int m_collision_index;
49   required_device<cpu_device> m_maincpu;
50   required_device<discrete_device> m_discrete;
51   required_device<gfxdecode_device> m_gfxdecode;
52   required_device<screen_device> m_screen;
53   required_device<palette_device> m_palette;
54
5055   required_shared_ptr<UINT8> m_video_ram;
5156   required_shared_ptr<UINT8> m_pos_h_ram;
5257   required_shared_ptr<UINT8> m_pos_v_ram;
5358   required_shared_ptr<UINT8> m_pos_d_ram;
5459   required_shared_ptr<UINT8> m_team;
60
61   int m_collision_index;
5562   tilemap_t *m_tilemap;
5663   bitmap_ind16 m_helper1;
5764   bitmap_ind16 m_helper2;
5865   bitmap_ind16 m_helper3;
59   DECLARE_READ8_MEMBER(tank8_collision_r);
60   DECLARE_WRITE8_MEMBER(tank8_lockout_w);
61   DECLARE_WRITE8_MEMBER(tank8_int_reset_w);
62   DECLARE_WRITE8_MEMBER(tank8_video_ram_w);
63   DECLARE_WRITE8_MEMBER(tank8_crash_w);
64   DECLARE_WRITE8_MEMBER(tank8_explosion_w);
65   DECLARE_WRITE8_MEMBER(tank8_bugle_w);
66   DECLARE_WRITE8_MEMBER(tank8_bug_w);
67   DECLARE_WRITE8_MEMBER(tank8_attract_w);
68   DECLARE_WRITE8_MEMBER(tank8_motor_w);
66   emu_timer *m_collision_timer;
67
68   DECLARE_READ8_MEMBER(collision_r);
69   DECLARE_WRITE8_MEMBER(lockout_w);
70   DECLARE_WRITE8_MEMBER(int_reset_w);
71   DECLARE_WRITE8_MEMBER(video_ram_w);
72   DECLARE_WRITE8_MEMBER(crash_w);
73   DECLARE_WRITE8_MEMBER(explosion_w);
74   DECLARE_WRITE8_MEMBER(bugle_w);
75   DECLARE_WRITE8_MEMBER(bug_w);
76   DECLARE_WRITE8_MEMBER(attract_w);
77   DECLARE_WRITE8_MEMBER(motor_w);
78
79   TILE_GET_INFO_MEMBER(get_tile_info);
80
6981   DECLARE_DRIVER_INIT(decode);
70   TILE_GET_INFO_MEMBER(tank8_get_tile_info);
7182   virtual void machine_reset();
7283   virtual void video_start();
7384   DECLARE_PALETTE_INIT(tank8);
74   UINT32 screen_update_tank8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
75   void screen_eof_tank8(screen_device &screen, bool state);
85
86   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
87   void screen_eof(screen_device &screen, bool state);
7688   void set_pens();
7789   inline int get_x_pos(int n);
7890   inline int get_y_pos(int n);
7991   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
8092   void draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect);
81   void tank8_set_collision(int index);
82   required_device<cpu_device> m_maincpu;
83   required_device<discrete_device> m_discrete;
84   required_device<gfxdecode_device> m_gfxdecode;
85   required_device<screen_device> m_screen;
86   required_device<palette_device> m_palette;
93   void set_collision(int index);
8794
8895protected:
8996   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
trunk/src/mame/machine/jvs13551.c
r248543r248544
2222   PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_COIN2) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF, sega_837_13551, jvs13551_coin_2_w)
2323INPUT_PORTS_END
2424
25ROM_START( jvs13551 )
26   // TMP90PH44N firmwares
27   ROM_REGION( 0x8000, "jvs13551", ROMREGION_ERASE )
28   // Sega 838-13683-93
29   ROM_LOAD( "sp5001.bin",   0x0000, 0x8000, CRC(2f17e21a) SHA1(ac227ef3ca52ef17321bd60e435dba147645d8b8))
30   // Sega 838-13683-93 Rev.B
31   ROM_LOAD( "sp5001-b.bin", 0x0000, 0x8000, CRC(121693cd) SHA1(c9834aca671aff5e283ac708788c2a0f4a5bdecc))
32   // Sega 838-13683-02
33   ROM_LOAD( "sp5002-a.bin", 0x0000, 0x8000, CRC(a088df8c) SHA1(8237e9b18b8367d3f5b99b8f29c528a55c2e0fbf))
34   // Sega 837-13551-92 0007 Type1
35   ROM_LOAD( "315-6215.bin", 0x0000, 0x8000, CRC(d7c97e40) SHA1(b1ae8db332f869c4fdbbae15967baeca0bc7f57d))
36ROM_END
37
38const rom_entry *sega_837_13551::device_rom_region() const
39{
40   return ROM_NAME(jvs13551);
41}
42
2543void sega_837_13551::static_set_port_tag(device_t &device, int port, const char *tag)
2644{
2745   sega_837_13551 &ctrl = downcast<sega_837_13551 &>(device);
r248543r248544
3351   return INPUT_PORTS_NAME(sega_837_13551_coins);
3452}
3553
36sega_837_13551::sega_837_13551(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : jvs_device(mconfig, SEGA_837_13551, "Sega 837-13551 I/O Board", tag, owner, clock, "sega_837_13551", __FILE__)
54sega_837_13551::sega_837_13551(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : jvs_device(mconfig, SEGA_837_13551, "Sega 837-13551 I/O Board", tag, owner, clock, "jvs13551", __FILE__)
3755{
3856   memset(port_tag, 0, sizeof(port_tag));
3957}
trunk/src/mame/machine/jvs13551.h
r248543r248544
2929   sega_837_13551(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
3030   static void static_set_port_tag(device_t &device, int port, const char *tag);
3131
32   virtual const rom_entry *device_rom_region() const;
33
3234   DECLARE_WRITE_LINE_MEMBER(jvs13551_coin_1_w);
3335   DECLARE_WRITE_LINE_MEMBER(jvs13551_coin_2_w);
3436   void inc_coin(int coin);
trunk/src/mame/machine/namcond1.c
r248543r248544
1313
1414#include "emu.h"
1515#include "cpu/m6809/m6809.h"
16#include "video/ygv608.h"
1716#include "includes/namcond1.h"
1817
1918/* Perform basic machine initialisation */
r248543r248544
2221void namcond1_state::machine_start()
2322{
2423   save_item(NAME(m_h8_irq5_enabled));
24   // save_item(NAME(m_p8)); //isn't read anywhere for the time being
2525}
2626
2727void namcond1_state::machine_reset()
r248543r248544
5151   m_mcu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
5252}
5353
54// instance of the shared ram pointer
55
56READ16_MEMBER(namcond1_state::namcond1_shared_ram_r)
57{
58   return m_shared_ram[offset];
59}
60
6154// $c3ff00-$c3ffff
62READ16_MEMBER(namcond1_state::namcond1_cuskey_r)
55READ16_MEMBER(namcond1_state::cuskey_r)
6356{
6457   switch( offset )
6558   {
r248543r248544
7770   }
7871}
7972
80WRITE16_MEMBER(namcond1_state::namcond1_shared_ram_w)
73WRITE16_MEMBER(namcond1_state::cuskey_w)
8174{
8275   switch( offset )
8376   {
84      default :
85         COMBINE_DATA( m_shared_ram + offset );
86         break;
87   }
88}
89
90WRITE16_MEMBER(namcond1_state::namcond1_cuskey_w)
91{
92   switch( offset )
93   {
9477      case (0x0a>>1):
9578         // this is a kludge until we emulate the h8
9679      if ((m_h8_irq5_enabled == 0) && (data != 0x0000))
trunk/src/mame/machine/namcos1.c
r248543r248544
477477
478478WRITE8_MEMBER(namcos1_state::sound_bankswitch_w)
479479{
480   membank("soundbank")->set_entry((data & 0x70) >> 4);
480   m_soundbank->set_entry((data & 0x70) >> 4);
481481}
482482
483483
r248543r248544
510510
511511void namcos1_state::machine_start()
512512{
513   membank("soundbank")->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
514   membank("mcubank")->configure_entries(0, 24, memregion("voice")->base(), 0x8000);
513   m_soundbank->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
514   m_mcubank->configure_entries(0, 24, memregion("voice")->base(), 0x8000);
515515
516516   save_item(NAME(m_dac0_value));
517517   save_item(NAME(m_dac1_value));
r248543r248544
568568   /* bit 0-1 : address line A15-A16 */
569569   bank += (data & 3);
570570
571   membank("mcubank")->set_entry(bank);
571   m_mcubank->set_entry(bank);
572572}
573573
574574
trunk/src/mame/mess.lst
r248543r248544
21532153bfriskyt    // Bandai
21542154packmon     // Bandai
21552155msthawk     // Bandai/Mattel
2156bzaxxon     // Bandai
21562157zackman     // Bandai
2158bpengo      // Bandai
2159bbtime      // Bandai
21572160bdoramon    // Bandai
2161bultrman    // Bandai
21582162machiman    // Bandai
21592163alnattck    // Coleco
21602164cdkong      // Coleco
r248543r248544
21782182
21792183// hh_melps4
21802184cfrogger    // Coleco
2185gjungler    // Gakken
21812186
21822187// hh_pic16
21832188maniac      // Ideal
trunk/src/mame/video/4enraya.c
r248543r248544
1818   m_bg_tilemap->mark_tile_dirty(offset & 0x3ff);
1919}
2020
21PALETTE_INIT_MEMBER(_4enraya_state, _4enraya)
22{
23   /* RGB format */
24   for (int i = 0; i < 8; i++)
25      m_palette->set_pen_color(i, rgb_t(pal1bit(i >> 0),pal1bit(i >> 1),pal1bit(i >> 2)));
26}
27
2821TILE_GET_INFO_MEMBER(_4enraya_state::get_tile_info)
2922{
3023   int code = m_videoram[tile_index * 2] + (m_videoram[tile_index * 2 + 1] << 8);
trunk/src/mame/video/kangaroo.c
r248543r248544
141141   UINT8 enab = (m_video_control[9] & 0x04);
142142   UINT8 pria = (~m_video_control[9] & 0x02);
143143   UINT8 prib = (~m_video_control[9] & 0x01);
144   rgb_t pens[8];
145144   int x, y;
146145
147   /* build up the pens arrays */
148   for (x = 0; x < 8; x++)
149      pens[x] = rgb_t(pal1bit(x >> 2), pal1bit(x >> 1), pal1bit(x >> 0));
150
151146   /* iterate over pixels */
152147   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
153148   {
r248543r248544
171166            finalpens |= pixb;
172167
173168         /* store the first of two pixels, which is always full brightness */
174         dest[x + 0] = pens[finalpens & 7];
169         dest[x + 0] = m_palette->pen_color(finalpens & 7);
175170
176171         /* KOS1 alternates at 5MHz, offset from the pixel clock by 1/2 clock */
177172         /* when 0, it enables the color mask for pixels with Z = 0 */
r248543r248544
188183         }
189184
190185         /* store the second of two pixels, which is affected by KOS1 and the A/B masks */
191         dest[x + 1] = pens[finalpens & 7];
186         dest[x + 1] = m_palette->pen_color(finalpens & 7);
192187      }
193188   }
194189
trunk/src/mame/video/route16.c
r248543r248544
4747 *
4848 *************************************/
4949
50pen_t route16_state::route16_make_pen(UINT8 color)
51{
52   return rgb_t(pal1bit((color >> 0) & 0x01),
53               pal1bit((color >> 1) & 0x01),
54               pal1bit((color >> 2) & 0x01));
55
56}
57
58
59pen_t route16_state::ttmajng_make_pen(UINT8 color)
60{
61   return rgb_t(pal1bit((color >> 2) & 0x01),
62               pal1bit((color >> 1) & 0x01),
63               pal1bit((color >> 0) & 0x01));
64
65}
66
67
6850/*
6951 *  Game observation shows that Route 16 can blank each
7052 *  bitmap by setting bit 1 of the palette register.
r248543r248544
10688                              ((data2 >> 0) & 0x01)];
10789
10890         /* the final color is the OR of the two colors (verified) */
109         UINT8 final_color = color1 | color2;
91         UINT8 final_color = (color1 | color2) & 0x07;
11092
111         pen_t pen = route16_make_pen(final_color);
112
11393         if (m_flipscreen)
114            bitmap.pix32(255 - y, 255 - x) = pen;
94            bitmap.pix32(255 - y, 255 - x) = m_palette->pen_color(final_color);
11595         else
116            bitmap.pix32(y, x) = pen;
96            bitmap.pix32(y, x) = m_palette->pen_color(final_color);
11797
11898         x = x + 1;
11999         data1 = data1 >> 1;
r248543r248544
129109 *  The Stratovox video connections have been verified from the schematics
130110 */
131111
132int route16_state::video_update_stratvox_ttmahjng(bitmap_rgb32 &bitmap,
133                                 const rectangle &cliprect,
134                                 pen_t (route16_state::*make_pen)(UINT8))
112UINT32 route16_state::screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
135113{
136114   offs_t offs;
137115
r248543r248544
161139                              ((data2 >> 0) & 0x01)];
162140
163141         /* the final color is the OR of the two colors */
164         UINT8 final_color = color1 | color2;
142         UINT8 final_color = (color1 | color2) & 0x07;
165143
166         pen_t pen = (this->*make_pen)(final_color);
167
168144         if (m_flipscreen)
169            bitmap.pix32(255 - y, 255 - x) = pen;
145            bitmap.pix32(255 - y, 255 - x) = m_palette->pen_color(final_color);
170146         else
171            bitmap.pix32(y, x) = pen;
147            bitmap.pix32(y, x) = m_palette->pen_color(final_color);
172148
173149         x = x + 1;
174150         data1 = data1 >> 1;
r248543r248544
178154
179155   return 0;
180156}
181
182
183UINT32 route16_state::screen_update_stratvox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
184{
185   return video_update_stratvox_ttmahjng(bitmap, cliprect, &route16_state::route16_make_pen);
186}
187
188
189UINT32 route16_state::screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
190{
191   return video_update_stratvox_ttmahjng(bitmap, cliprect, &route16_state::ttmajng_make_pen);
192}
trunk/src/mame/video/shadfrce.c
r248543r248544
101101
102102
103103
104void shadfrce_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
104void shadfrce_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offset )
105105{
106
107
106108   /* | ---- ---- hhhf Fe-Y | ---- ---- yyyy yyyy | ---- ---- TTTT TTTT | ---- ---- tttt tttt |
107109      | ---- ---- -pCc cccX | ---- ---- xxxx xxxx | ---- ---- ---- ---- | ---- ---- ---- ---- | */
108110
r248543r248544
121123   UINT16 *finish = m_spvideoram_old;
122124   UINT16 *source = finish + 0x2000/2 - 8;
123125   int hcount;
124   while( source>=finish )
126   while (source >= finish)
125127   {
126      int ypos = 0x100 - (((source[0] & 0x0003) << 8) | (source[1] & 0x00ff));
127      int xpos = (((source[4] & 0x0001) << 8) | (source[5] & 0x00ff)) + 1;
128      int tile = ((source[2] & 0x00ff) << 8) | (source[3] & 0x00ff);
129      int height = (source[0] & 0x00e0) >> 5;
128
130129      int enable = ((source[0] & 0x0004));
131      int flipx = ((source[0] & 0x0010) >> 4);
132      int flipy = ((source[0] & 0x0008) >> 3);
133      int pal = ((source[4] & 0x003e));
134      int pri_mask = (source[4] & 0x0040) ? 0x02 : 0x00;
135130
136      if (pal & 0x20) pal ^= 0x60;    /* skip hole */
131      if (enable)
132      {
133         int ypos = 0x100 - (((source[0] & 0x0003) << 8) | (source[1] & 0x00ff));
134         int height = ((source[0] & 0x00e0) >> 5) ;
135         height += 1;
137136
138      height++;
139      if (enable) {
140         for (hcount=0;hcount<height;hcount++) {
141            gfx->prio_transpen(bitmap,cliprect,tile+hcount,pal,flipx,flipy,xpos,ypos-hcount*16-16,screen.priority(),pri_mask,0);
142            gfx->prio_transpen(bitmap,cliprect,tile+hcount,pal,flipx,flipy,xpos-0x200,ypos-hcount*16-16,screen.priority(),pri_mask,0);
143            gfx->prio_transpen(bitmap,cliprect,tile+hcount,pal,flipx,flipy,xpos,ypos-hcount*16-16+0x200,screen.priority(),pri_mask,0);
144            gfx->prio_transpen(bitmap,cliprect,tile+hcount,pal,flipx,flipy,xpos-0x200,ypos-hcount*16-16+0x200,screen.priority(),pri_mask,0);
137         int bottom = ypos + y_offset;
138         int top = bottom - height * 16;
139
140         if (top > cliprect.max_y || bottom <= cliprect.min_y)
141         {
142            source -= 8;
143            continue;
145144         }
145
146         int xpos = (((source[4] & 0x0001) << 8) | (source[5] & 0x00ff)) + 1;
147         int tile = ((source[2] & 0x00ff) << 8) | (source[3] & 0x00ff);
148         int flipx = ((source[0] & 0x0010) >> 4);
149         int flipy = ((source[0] & 0x0008) >> 3);
150         int pal = ((source[4] & 0x003e));
151         int pri_mask = (source[4] & 0x0040) ? 0x02 : 0x00;
152
153         if (pal & 0x20) pal ^= 0x60;    /* skip hole */
154
155
156         for (hcount = 0; hcount < height; hcount++) {
157            gfx->prio_transpen(bitmap, cliprect, tile + hcount, pal, flipx, flipy, xpos, bottom-16, screen.priority(), pri_mask, 0);
158            gfx->prio_transpen(bitmap, cliprect, tile + hcount, pal, flipx, flipy, xpos - 0x200, bottom-16, screen.priority(), pri_mask, 0); // x wraparound
159            bottom -= 16;
160         }
146161      }
162
147163      source-=8;
148164   }
149165}
r248543r248544
156172   {
157173      m_bg1tilemap->draw(screen, bitmap, cliprect, 0,0);
158174      m_bg0tilemap->draw(screen, bitmap, cliprect, 0,1);
159      draw_sprites(screen,bitmap,cliprect);
175      draw_sprites(screen,bitmap,cliprect, 0);
176      draw_sprites(screen,bitmap,cliprect, 0x200); // y-wrap
160177      m_fgtilemap->draw(screen, bitmap, cliprect, 0,0);
161178   }
162179   else
trunk/src/mame/video/tank8.c
r248543r248544
6060}
6161
6262
63WRITE8_MEMBER(tank8_state::tank8_video_ram_w)
63WRITE8_MEMBER(tank8_state::video_ram_w)
6464{
6565   m_video_ram[offset] = data;
6666   m_tilemap->mark_tile_dirty(offset);
r248543r248544
6868
6969
7070
71TILE_GET_INFO_MEMBER(tank8_state::tank8_get_tile_info)
71TILE_GET_INFO_MEMBER(tank8_state::get_tile_info)
7272{
7373   UINT8 code = m_video_ram[tile_index];
7474
r248543r248544
100100
101101void tank8_state::video_start()
102102{
103   m_collision_timer = timer_alloc(TIMER_COLLISION);
104
103105   m_screen->register_screen_bitmap(m_helper1);
104106   m_screen->register_screen_bitmap(m_helper2);
105107   m_screen->register_screen_bitmap(m_helper3);
106108
107   m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tank8_state::tank8_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
109   m_tilemap = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tank8_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
108110
109111   /* VBLANK starts on scanline #256 and ends on scanline #24 */
110112
111113   m_tilemap->set_scrolly(0, 2 * 24);
114   
115   save_item(NAME(m_collision_index));
112116}
113117
114118
r248543r248544
170174   switch (id)
171175   {
172176   case TIMER_COLLISION:
173      tank8_set_collision(param);
177      set_collision(param);
174178      break;
175179   default:
176180      assert_always(FALSE, "Unknown id in tank8_state::device_timer");
r248543r248544
178182}
179183
180184
181UINT32 tank8_state::screen_update_tank8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
185UINT32 tank8_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
182186{
183187   set_pens();
184188   m_tilemap->draw(screen, bitmap, cliprect, 0, 0);
r248543r248544
189193}
190194
191195
192void tank8_state::screen_eof_tank8(screen_device &screen, bool state)
196void tank8_state::screen_eof(screen_device &screen, bool state)
193197{
194198   // on falling edge
195199   if (!state)
r248543r248544
273277                  index |= 0x80; /* collision on right side */
274278            }
275279
276            timer_set(screen.time_until_pos(y, x), TIMER_COLLISION, index);
280            m_collision_timer->adjust(screen.time_until_pos(y, x), index);
277281
278282            _state = 1;
279283         }
trunk/src/mess/drivers/amstrad.c
r248543r248544
784784SLOT_INTERFACE_END
785785
786786static SLOT_INTERFACE_START( aleste_floppies )
787   SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
787   SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
788788SLOT_INTERFACE_END
789789
790790static MACHINE_CONFIG_FRAGMENT( cpcplus_cartslot )
r248543r248544
11251125   MCFG_DEVICE_REMOVE("upd765")
11261126   MCFG_I8272A_ADD("upd765", true)
11271127
1128   MCFG_FLOPPY_DRIVE_ADD("upd765:0", aleste_floppies, "525hd", floppy_image_device::default_floppy_formats)
1129   MCFG_FLOPPY_DRIVE_ADD("upd765:1", aleste_floppies, "525hd", floppy_image_device::default_floppy_formats)
1128   MCFG_FLOPPY_DRIVE_ADD("upd765:0", aleste_floppies, "35hd", floppy_image_device::default_floppy_formats)
1129   MCFG_FLOPPY_DRIVE_ADD("upd765:1", aleste_floppies, "35hd", floppy_image_device::default_floppy_formats)
11301130
11311131   MCFG_DEVICE_REMOVE("flop_list")
11321132   MCFG_SOFTWARE_LIST_ADD("flop_list", "aleste")
trunk/src/mess/drivers/elecbowl.c
r248543r248544
1414  * edge connector to sensors(switches trigger when ball rolls over)
1515    and other inputs
1616
17  lamp translation table: SN74259.u5(mux 1) goes to MESS output lamp5x,
18  SN74259.u6(mux 2) goes to MESS output lamp6x. u1-u3 are SN75492 ICs,
17  lamp translation table: SN74259.u5(mux 1) goes to MAME output lamp5x,
18  SN74259.u6(mux 2) goes to MAME output lamp6x. u1-u3 are SN75492 ICs,
1919  where other: u1 A2 is N/C, u3 A1 is from O2 and goes to digits seg C.
2020
2121    u5 Q0 -> u1 A4 -> L2 (pin #2)       u6 Q0 -> u3 A4 -> L1 (pin #1)
trunk/src/mess/drivers/hh_cop400.c
r248543r248544
284284  The first version was on TMS1100 (see hh_tms1k.c), this is the reprogrammed
285285  second release with a gray case instead of black.
286286
287  NOTE!: MESS external artwork is recommended
287  NOTE!: MAME external artwork is recommended
288288
289289***************************************************************************/
290290
trunk/src/mess/drivers/hh_hmcs40.c
r248543r248544
2020 @25      HD38800A  1981, Coleco Alien Attack
2121 @27      HD38800A  1981, Bandai Packri Monster
2222 *31      HD38800A  1981, Entex Select-a-Game cartridge: Space Invader 2 (have dump)
23 *37      HD38800A  1981, Entex Select-a-Game cartridge: Baseball 4 (have dump)
24 *38      HD38800A  1981, Entex Select-a-Game cartridge: Pinball (have dump)
2325 *41      HD38800A  1982, Gakken Puck Monster
2426 *51      HD38800A  1981, Actronics(Hanzawa) Twinvader (larger white version)
2527 @70      HD38800A  1982, Coleco Galaxian
r248543r248544
2830 @88      HD38800A  1984, Tomy Tron (THN-02)
2931
3032 @01      HD38800B  1982, Gakken Crazy Kong
31 *19      HD38800B  1982, Bandai Zaxxon
33 @19      HD38800B  1982, Bandai Zaxxon
3234 @23      HD38800B  1982, Tomy Kingman (THF-01II)
3335 *24      HD38800B  1982, Actronics(Hanzawa) Wanted G-Man
3436 *29      HD38800B  1984, Tomy Portable 6000 Bombman
3537 *35      HD38800B  1983, Bandai Gundam vs Gelgoog Zaku
3638 @43      HD38800B  1983, Bandai Dokodemo Dorayaki Doraemon (PT-412)
39 @52      HD38800B  1983, Bandai Ultra Man (PT-424)
3740
3841 @09      HD38820A  1980, Mattel World Championship Baseball
3942 @13      HD38820A  1981, Entex Galaxian 2
r248543r248544
4750 @45      HD38820A  1982, Coleco Donkey Kong
4851 @49      HD38820A  1983, Bandai Zackman
4952 @61      HD38820A  1983, Coleco Ms. Pac-Man
50 *63      HD38820A  1983, Bandai Pengo
51 *65      HD38820A  1983, Bandai Burger Time
53 @63      HD38820A  1983, Bandai Pengo
54 @65      HD38820A  1983, Bandai Burger Time (PT-389)
5255 @69      HD38820A  1983, Gakken Dig Dug
5356 @70      HD38820A  1983, Parker Brothers Q*Bert
5457 @85      HD38820A  1984, Bandai Machine Man (PT-438)
r248543r248544
9295   hh_hmcs40_state(const machine_config &mconfig, device_type type, const char *tag)
9396      : driver_device(mconfig, type, tag),
9497      m_maincpu(*this, "maincpu"),
98      m_audiocpu(*this, "audiocpu"),
9599      m_inp_matrix(*this, "IN"),
96100      m_speaker(*this, "speaker"),
97101      m_display_wait(33),
r248543r248544
101105
102106   // devices
103107   required_device<cpu_device> m_maincpu;
108   optional_device<cpu_device> m_audiocpu;
104109   optional_ioport_array<7> m_inp_matrix; // max 7
105110   optional_device<speaker_sound_device> m_speaker;
106111
r248543r248544
938943
939944/***************************************************************************
940945
946  Bandai Zaxxon (manufactured in Japan, licensed from Sega)
947  * PCB label FL Zaxxon
948  * Hitachi HD38800B19 MCU
949  * cyan/red/blue VFD display NEC FIP11BM24T no. 4-8, half of it reflected
950    with a one-way mirror to give the illusion of a 3D display
951
952  NOTE!: MESS external artwork is recommended
953
954***************************************************************************/
955
956class bzaxxon_state : public hh_hmcs40_state
957{
958public:
959   bzaxxon_state(const machine_config &mconfig, device_type type, const char *tag)
960      : hh_hmcs40_state(mconfig, type, tag)
961   { }
962
963   DECLARE_WRITE8_MEMBER(plate_w);
964   DECLARE_WRITE16_MEMBER(grid_w);
965
966   void update_int1();
967   DECLARE_INPUT_CHANGED_MEMBER(input_changed);
968};
969
970// handlers
971
972WRITE8_MEMBER(bzaxxon_state::plate_w)
973{
974   // R0x-R3x(,D0-D2): vfd matrix plate
975   int shift = offset * 4;
976   m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
977
978   // update display
979   UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,6,7,8,9,10,5,4,3,2,1,0);
980   UINT32 plate = BITSWAP24(m_plate,23,22,21,20,5,7,0,1,2,3,4,6,19,16,17,18,15,14,13,12,10,8,9,11) | 0x800;
981   display_matrix(20, 11, plate, grid);
982}
983
984WRITE16_MEMBER(bzaxxon_state::grid_w)
985{
986   // D4: speaker out
987   m_speaker->level_w(data >> 4 & 1);
988
989   // D7-D10: input mux
990   UINT8 inp_mux = data >> 7 & 0xf;
991   if (inp_mux != m_inp_mux)
992   {
993      m_inp_mux = inp_mux;
994      update_int1();
995   }
996
997   // D5-D15: vfd matrix grid
998   m_grid = data >> 5 & 0x7ff;
999
1000   // D0-D2: plate 7-9 (update display there)
1001   plate_w(space, 4, data & 7);
1002}
1003
1004void bzaxxon_state::update_int1()
1005{
1006   // INT1 on multiplexed inputs
1007   set_interrupt(1, read_inputs(4));
1008}
1009
1010
1011// config
1012
1013static INPUT_PORTS_START( bzaxxon )
1014   PORT_START("IN.0") // D7 INT1
1015   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bzaxxon_state, input_changed, NULL)
1016
1017   PORT_START("IN.1") // D8 INT1
1018   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, bzaxxon_state, input_changed, NULL)
1019
1020   PORT_START("IN.2") // D9 INT1
1021   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bzaxxon_state, input_changed, NULL)
1022
1023   PORT_START("IN.3") // D10 INT1
1024   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, bzaxxon_state, input_changed, NULL)
1025
1026   PORT_START("IN.4") // INT0
1027   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)0)
1028
1029   PORT_START("IN.5") // port D
1030   PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SELECT )
1031   PORT_BIT( 0xfff7, IP_ACTIVE_HIGH, IPT_UNUSED )
1032INPUT_PORTS_END
1033
1034INPUT_CHANGED_MEMBER(bzaxxon_state::input_changed)
1035{
1036   update_int1();
1037}
1038
1039
1040static MACHINE_CONFIG_START( bzaxxon, bzaxxon_state )
1041
1042   /* basic machine hardware */
1043   MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation
1044   MCFG_HMCS40_WRITE_R_CB(0, WRITE8(bzaxxon_state, plate_w))
1045   MCFG_HMCS40_WRITE_R_CB(1, WRITE8(bzaxxon_state, plate_w))
1046   MCFG_HMCS40_WRITE_R_CB(2, WRITE8(bzaxxon_state, plate_w))
1047   MCFG_HMCS40_WRITE_R_CB(3, WRITE8(bzaxxon_state, plate_w))
1048   MCFG_HMCS40_WRITE_D_CB(WRITE16(bzaxxon_state, grid_w))
1049   MCFG_HMCS40_READ_D_CB(IOPORT("IN.5"))
1050
1051   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
1052   MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
1053
1054   /* no video! */
1055
1056   /* sound hardware */
1057   MCFG_SPEAKER_STANDARD_MONO("mono")
1058   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
1059   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
1060MACHINE_CONFIG_END
1061
1062
1063
1064
1065
1066/***************************************************************************
1067
9411068  Bandai Zackman "The Pit, FL Exploration of Space" (manufactured in Japan)
9421069  * Hitachi QFP HD38820A49 MCU
9431070  * cyan/red/yellow VFD display Futaba DM-53Z 3E, with color overlay
r248543r248544
10561183
10571184/***************************************************************************
10581185
1186  Bandai Pengo (manufactured in Japan, licensed from Sega)
1187  * PCB label FL Pengo(in katakana)
1188  * Hitachi QFP HD38820A63 MCU
1189  * cyan/red/blue VFD display Futaba DM-68ZK 3D DM-63
1190
1191  NOTE!: MESS external artwork is recommended
1192
1193***************************************************************************/
1194
1195class bpengo_state : public hh_hmcs40_state
1196{
1197public:
1198   bpengo_state(const machine_config &mconfig, device_type type, const char *tag)
1199      : hh_hmcs40_state(mconfig, type, tag)
1200   { }
1201
1202   void prepare_display();
1203   DECLARE_WRITE8_MEMBER(plate_w);
1204   DECLARE_WRITE16_MEMBER(grid_w);
1205
1206   void update_int0();
1207   DECLARE_INPUT_CHANGED_MEMBER(input_changed);
1208};
1209
1210// handlers
1211
1212void bpengo_state::prepare_display()
1213{
1214   UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
1215   UINT32 plate = BITSWAP32(m_plate,31,30,29,28,23,22,21,16,17,18,19,20,27,26,25,24,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0);
1216   display_matrix(25, 8, plate, grid);
1217}
1218
1219WRITE8_MEMBER(bpengo_state::plate_w)
1220{
1221   // R0x-R6x: vfd matrix plate
1222   int shift = offset * 4;
1223   m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
1224   prepare_display();
1225}
1226
1227WRITE16_MEMBER(bpengo_state::grid_w)
1228{
1229   // D10: speaker out
1230   m_speaker->level_w(data >> 10 & 1);
1231
1232   // D12-D15: input mux
1233   UINT8 inp_mux = data >> 12 & 0xf;
1234   if (inp_mux != m_inp_mux)
1235   {
1236      m_inp_mux = inp_mux;
1237      update_int0();
1238   }
1239
1240   // D0-D7: vfd matrix grid
1241   m_grid = data & 0xff;
1242   prepare_display();
1243}
1244
1245void bpengo_state::update_int0()
1246{
1247   // INT0 on multiplexed inputs
1248   set_interrupt(0, read_inputs(4));
1249}
1250
1251
1252// config
1253
1254static INPUT_PORTS_START( bpengo )
1255   PORT_START("IN.0") // D12 INT0
1256   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL)
1257
1258   PORT_START("IN.1") // D13 INT0
1259   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL)
1260
1261   PORT_START("IN.2") // D14 INT0
1262   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL)
1263
1264   PORT_START("IN.3") // D15 INT0
1265   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bpengo_state, input_changed, NULL)
1266
1267   PORT_START("IN.4") // INT1
1268   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)1)
1269
1270   PORT_START("IN.5") // port D
1271   PORT_CONFNAME( 0x0800, 0x0000, "Factory Test" )
1272   PORT_CONFSETTING(      0x0000, DEF_STR( Off ) )
1273   PORT_CONFSETTING(      0x0800, DEF_STR( On ) )
1274   PORT_BIT( 0xf7ff, IP_ACTIVE_HIGH, IPT_UNUSED )
1275INPUT_PORTS_END
1276
1277INPUT_CHANGED_MEMBER(bpengo_state::input_changed)
1278{
1279   update_int0();
1280}
1281
1282
1283static MACHINE_CONFIG_START( bpengo, bpengo_state )
1284
1285   /* basic machine hardware */
1286   MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation
1287   MCFG_HMCS40_WRITE_R_CB(0, WRITE8(bpengo_state, plate_w))
1288   MCFG_HMCS40_WRITE_R_CB(1, WRITE8(bpengo_state, plate_w))
1289   MCFG_HMCS40_WRITE_R_CB(2, WRITE8(bpengo_state, plate_w))
1290   MCFG_HMCS40_WRITE_R_CB(3, WRITE8(bpengo_state, plate_w))
1291   MCFG_HMCS40_WRITE_R_CB(4, WRITE8(bpengo_state, plate_w))
1292   MCFG_HMCS40_WRITE_R_CB(5, WRITE8(bpengo_state, plate_w))
1293   MCFG_HMCS40_WRITE_R_CB(6, WRITE8(bpengo_state, plate_w))
1294   MCFG_HMCS40_WRITE_D_CB(WRITE16(bpengo_state, grid_w))
1295   MCFG_HMCS40_READ_D_CB(IOPORT("IN.5"))
1296
1297   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
1298   MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
1299
1300   /* no video! */
1301
1302   /* sound hardware */
1303   MCFG_SPEAKER_STANDARD_MONO("mono")
1304   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
1305   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
1306MACHINE_CONFIG_END
1307
1308
1309
1310
1311
1312/***************************************************************************
1313
1314  Bandai Burger Time (manufactured in Japan, licensed from Data East)
1315  * PCB label Kaken Corp. PT-389 Burger Time
1316  * Hitachi QFP HD38820A65 MCU
1317  * cyan/red/green VFD display NEC FIP6AM25T no. 21-21
1318
1319  NOTE!: MESS external artwork is recommended
1320
1321***************************************************************************/
1322
1323class bbtime_state : public hh_hmcs40_state
1324{
1325public:
1326   bbtime_state(const machine_config &mconfig, device_type type, const char *tag)
1327      : hh_hmcs40_state(mconfig, type, tag)
1328   { }
1329
1330   void prepare_display();
1331   DECLARE_WRITE8_MEMBER(plate_w);
1332   DECLARE_WRITE16_MEMBER(grid_w);
1333
1334   void update_int0();
1335   DECLARE_INPUT_CHANGED_MEMBER(input_changed);
1336};
1337
1338// handlers
1339
1340void bbtime_state::prepare_display()
1341{
1342   UINT8 grid = BITSWAP8(m_grid,7,6,0,1,2,3,4,5);
1343   UINT32 plate = BITSWAP32(m_plate,31,30,29,28,25,24,26,27,22,23,15,14,12,11,10,8,7,6,4,1,5,9,13,3,2,16,17,18,19,20,0,21) | 0x1;
1344   display_matrix(28, 6, plate, grid);
1345}
1346
1347WRITE8_MEMBER(bbtime_state::plate_w)
1348{
1349   // R0x-R6x: vfd matrix plate
1350   int shift = offset * 4;
1351   m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
1352   prepare_display();
1353}
1354
1355WRITE16_MEMBER(bbtime_state::grid_w)
1356{
1357   // D3: speaker out
1358   m_speaker->level_w(data >> 3 & 1);
1359
1360   // D10-D14: input mux
1361   UINT8 inp_mux = data >> 10 & 0x1f;
1362   if (inp_mux != m_inp_mux)
1363   {
1364      m_inp_mux = inp_mux;
1365      update_int0();
1366   }
1367
1368   // D4-D9: vfd matrix grid
1369   m_grid = data >> 4 & 0x3f;
1370   prepare_display();
1371}
1372
1373void bbtime_state::update_int0()
1374{
1375   // INT0 on multiplexed inputs
1376   set_interrupt(0, read_inputs(5));
1377}
1378
1379
1380// config
1381
1382static INPUT_PORTS_START( bbtime )
1383   PORT_START("IN.0") // D10 INT0
1384   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL)
1385
1386   PORT_START("IN.1") // D11 INT0
1387   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL)
1388
1389   PORT_START("IN.2") // D12 INT0
1390   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL)
1391
1392   PORT_START("IN.3") // D13 INT0
1393   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL)
1394
1395   PORT_START("IN.4") // D14 INT0
1396   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, bbtime_state, input_changed, NULL)
1397
1398   PORT_START("IN.5") // INT1
1399   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)1)
1400INPUT_PORTS_END
1401
1402INPUT_CHANGED_MEMBER(bbtime_state::input_changed)
1403{
1404   update_int0();
1405}
1406
1407
1408static MACHINE_CONFIG_START( bbtime, bbtime_state )
1409
1410   /* basic machine hardware */
1411   MCFG_CPU_ADD("maincpu", HD38820, 400000) // approximation
1412   MCFG_HMCS40_WRITE_R_CB(0, WRITE8(bbtime_state, plate_w))
1413   MCFG_HMCS40_WRITE_R_CB(1, WRITE8(bbtime_state, plate_w))
1414   MCFG_HMCS40_WRITE_R_CB(2, WRITE8(bbtime_state, plate_w))
1415   MCFG_HMCS40_WRITE_R_CB(3, WRITE8(bbtime_state, plate_w))
1416   MCFG_HMCS40_WRITE_R_CB(4, WRITE8(bbtime_state, plate_w))
1417   MCFG_HMCS40_WRITE_R_CB(5, WRITE8(bbtime_state, plate_w))
1418   MCFG_HMCS40_WRITE_R_CB(6, WRITE8(bbtime_state, plate_w))
1419   MCFG_HMCS40_WRITE_D_CB(WRITE16(bbtime_state, grid_w))
1420
1421   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
1422   MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
1423
1424   /* no video! */
1425
1426   /* sound hardware */
1427   MCFG_SPEAKER_STANDARD_MONO("mono")
1428   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
1429   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
1430MACHINE_CONFIG_END
1431
1432
1433
1434
1435
1436/***************************************************************************
1437
10591438  Bandai Dokodemo Dorayaki Doraemon (FL LSI Game Push Up) (manufactured in Japan)
10601439  * PCB label Kaken Corp PT-412 FL-Doreamon(in katakana)
10611440  * Hitachi HD38800B43 MCU
r248543r248544
11541533
11551534/***************************************************************************
11561535
1536  Bandai Ultra Man (FL LSI Game Push Up) (manufactured in Japan)
1537  * PCB label Kaken Corp. PT-424 FL Ultra Man
1538  * Hitachi HD38800B52 MCU
1539  * cyan/red/blue VFD display NEC FIP8BM25T no. 21-8 2
1540
1541  NOTE!: MESS external artwork is recommended
1542
1543***************************************************************************/
1544
1545class bultrman_state : public hh_hmcs40_state
1546{
1547public:
1548   bultrman_state(const machine_config &mconfig, device_type type, const char *tag)
1549      : hh_hmcs40_state(mconfig, type, tag)
1550   { }
1551
1552   DECLARE_WRITE8_MEMBER(plate_w);
1553   DECLARE_WRITE16_MEMBER(grid_w);
1554};
1555
1556// handlers
1557
1558WRITE8_MEMBER(bultrman_state::plate_w)
1559{
1560   // R0x-R3x(,D0-D2): vfd matrix plate
1561   int shift = offset * 4;
1562   m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
1563
1564   // update display
1565   UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
1566   UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,16,15,14,13,12,11,2,10,9,8,7,6,5,4,3,0,1);
1567   display_matrix(18, 8, plate, grid);
1568}
1569
1570WRITE16_MEMBER(bultrman_state::grid_w)
1571{
1572   // D7: speaker out
1573   m_speaker->level_w(data >> 7 & 1);
1574
1575   // D8-D15: vfd matrix grid
1576   m_grid = data >> 8 & 0xff;
1577
1578   // D0-D2: plate 15-17 (update display there)
1579   plate_w(space, 4, data & 7);
1580}
1581
1582
1583// config
1584
1585static INPUT_PORTS_START( bultrman )
1586   PORT_START("IN.0") // INT0
1587   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_hmcs40_state, single_interrupt_line, (void *)0)
1588
1589   PORT_START("IN.1") // port D
1590   PORT_CONFNAME( 0x10, 0x00, "Factory Test" )
1591   PORT_CONFSETTING(    0x00, DEF_STR( Off ) )
1592   PORT_CONFSETTING(    0x10, DEF_STR( On ) )
1593   PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
1594   PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
1595   PORT_BIT( 0xff8f, IP_ACTIVE_HIGH, IPT_UNUSED )
1596INPUT_PORTS_END
1597
1598static MACHINE_CONFIG_START( bultrman, bultrman_state )
1599
1600   /* basic machine hardware */
1601   MCFG_CPU_ADD("maincpu", HD38800, 400000) // approximation
1602   MCFG_HMCS40_WRITE_R_CB(0, WRITE8(bultrman_state, plate_w))
1603   MCFG_HMCS40_WRITE_R_CB(1, WRITE8(bultrman_state, plate_w))
1604   MCFG_HMCS40_WRITE_R_CB(2, WRITE8(bultrman_state, plate_w))
1605   MCFG_HMCS40_WRITE_R_CB(3, WRITE8(bultrman_state, plate_w))
1606   MCFG_HMCS40_WRITE_D_CB(WRITE16(bultrman_state, grid_w))
1607   MCFG_HMCS40_READ_D_CB(IOPORT("IN.1"))
1608
1609   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_hmcs40_state, display_decay_tick, attotime::from_msec(1))
1610   MCFG_DEFAULT_LAYOUT(layout_hh_hmcs40_test)
1611
1612   /* no video! */
1613
1614   /* sound hardware */
1615   MCFG_SPEAKER_STANDARD_MONO("mono")
1616   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
1617   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
1618MACHINE_CONFIG_END
1619
1620
1621
1622
1623
1624/***************************************************************************
1625
11571626  Bandai Machine Man (FL Flat Type) (manufactured in Japan)
11581627  * PCB label Kaken PT-438
11591628  * Hitachi QFP HD38820A85 MCU
r248543r248544
13561825
13571826/***************************************************************************
13581827
1359  Coleco Donkey Kong (manufactured in Taiwan)
1828  Coleco Donkey Kong (manufactured in Taiwan, licensed from Nintendo)
13601829  * PCB label Coleco Rev C 75790 DK
13611830  * Hitachi QFP HD38820A45 MCU
13621831  * cyan/red VFD display Futaba DM-47ZK 2K, with color overlay
r248543r248544
14011870
14021871void cdkong_state::prepare_display()
14031872{
1404   UINT32 plate = BITSWAP32(m_plate,31,30,29,24,0,16,8,1,23,17,9,2,18,10,25,27,26,3,15,27,11,11,14,22,6,13,21,5,19,12,20,4);
1873   UINT32 plate = BITSWAP32(m_plate,31,30,29,24,0,16,8,1,23,17,9,2,18,10,25,27,26,3,15,27,11,11,14,22,6,13,21,5,19,12,20,4) | 0x800800;
14051874   display_matrix(29, 11, plate, m_grid);
14061875}
14071876
r248543r248544
16112080
16122081/***************************************************************************
16132082
1614  Coleco Pac-Man (manufactured in Taiwan)
2083  Coleco Pac-Man (manufactured in Taiwan, licensed from Midway)
16152084  * PCB label Coleco 75690
16162085  * Hitachi QFP HD38820A28/29 MCU
16172086  * cyan/red VFD display Futaba DM-34Z 2A, with color overlay
r248543r248544
17322201
17332202/***************************************************************************
17342203
1735  Coleco Ms. Pac-Man (manufactured in Taiwan)
2204  Coleco Ms. Pac-Man (manufactured in Taiwan, licensed from Midway)
17362205  * PCB label Coleco 911171
17372206  * Hitachi QFP HD38820A61 MCU
17382207  * cyan/red VFD display Futaba DM-60Z 3I, with color overlay
r248543r248544
17702239
17712240   // update display
17722241   UINT16 grid = BITSWAP16(m_grid,15,14,13,11,10,9,8,7,6,5,4,3,2,1,0,1);
1773   UINT64 plate = BIT(m_plate,15)<<32 | BITSWAP32(m_plate,14,13,12,4,5,6,7,24,23,25,22,21,20,13,24,3,19,14,12,11,24,2,10,8,7,25,0,9,1,18,17,16);
2242   UINT64 plate = BIT(m_plate,15)<<32 | BITSWAP32(m_plate,14,13,12,4,5,6,7,24,23,25,22,21,20,13,24,3,19,14,12,11,24,2,10,8,7,25,0,9,1,18,17,16) | 0x1004080;
17742243   display_matrix(33, 12, plate, grid);
17752244}
17762245
r248543r248544
24822951
24832952   // update display
24842953   UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,0,1,2,3,4,5,6,7,8,9,10);
2485   UINT32 plate = BITSWAP32(m_plate,31,30,29,28,27,26,25,6,7,8,12,13,14,15,16,17,18,17,16,12,11,10,9,8,7,6,5,4,3,2,1,0);
2954   UINT32 plate = BITSWAP32(m_plate,31,30,29,28,27,26,25,6,7,8,12,13,14,15,16,17,18,17,16,12,11,10,9,8,7,6,5,4,3,2,1,0) | 0x8000;
24862955   display_matrix(32, 11, plate, grid);
24872956}
24882957
r248543r248544
28843353   m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
28853354
28863355   // update display
2887   UINT32 plate = BITSWAP32(m_plate,31,30,24,25,26,27,28,15,14,29,13,12,11,10,9,8,7,6,5,4,3,2,1,0,16,17,18,19,20,21,22,23);
3356   UINT32 plate = BITSWAP32(m_plate,31,30,24,25,26,27,28,15,14,29,13,12,11,10,9,8,7,6,5,4,3,2,1,0,16,17,18,19,20,21,22,23) | 0x400000;
28883357   display_matrix(30, 8, plate, m_grid);
28893358}
28903359
r248543r248544
33183787ROM_END
33193788
33203789
3790ROM_START( bzaxxon )
3791   ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
3792   ROM_LOAD( "hd38800b19", 0x0000, 0x1000, CRC(4fecb80d) SHA1(7adf079480ffd3825ad5ae1eaa4d892eecbcc42d) )
3793   ROM_CONTINUE(           0x1e80, 0x0100 )
3794ROM_END
3795
3796
33213797ROM_START( zackman )
33223798   ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
33233799   ROM_LOAD( "hd38820a49", 0x0000, 0x1000, CRC(b97f5ef6) SHA1(7fe20e8107361caf9ea657e504be1f8b10b8b03f) )
r248543r248544
33253801ROM_END
33263802
33273803
3804ROM_START( bpengo )
3805   ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
3806   ROM_LOAD( "hd38820a63", 0x0000, 0x1000, CRC(ebd6bc64) SHA1(0a322c47b9553a2739a85908ce64b9650cf93d49) )
3807   ROM_CONTINUE(           0x1e80, 0x0100 )
3808ROM_END
3809
3810
3811ROM_START( bbtime )
3812   ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
3813   ROM_LOAD( "hd38820a65", 0x0000, 0x1000, CRC(33611faf) SHA1(29b6a30ed543688d31ec2aa18f7938fa4eef30b0) )
3814   ROM_CONTINUE(           0x1e80, 0x0100 )
3815ROM_END
3816
3817
33283818ROM_START( bdoramon )
33293819   ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
33303820   ROM_LOAD( "hd38800b43", 0x0000, 0x1000, CRC(9387ca42) SHA1(8937e208934b34bd9f49700aa50287dfc8bda76c) )
r248543r248544
33323822ROM_END
33333823
33343824
3825ROM_START( bultrman )
3826   ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
3827   ROM_LOAD( "hd38800b52", 0x0000, 0x1000, CRC(88d372dc) SHA1(f2ac3b89be8afe6fb65914ccebe1a56316b9472a) )
3828   ROM_CONTINUE(           0x1e80, 0x0100 )
3829ROM_END
3830
3831
33353832ROM_START( machiman )
33363833   ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
33373834   ROM_LOAD( "hd38820a85", 0x0000, 0x1000, CRC(894b4954) SHA1(cab49638a326b031aa548301beb16f818759ef62) )
r248543r248544
34783975CONS( 1982, bfriskyt,  0,        0, bfriskyt, bfriskyt, driver_device, 0, "Bandai", "Frisky Tom (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
34793976CONS( 1981, packmon,   0,        0, packmon,  packmon,  driver_device, 0, "Bandai", "Packri Monster", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
34803977CONS( 1982, msthawk,   0,        0, msthawk,  msthawk,  driver_device, 0, "Bandai (Mattel license)", "Star Hawk (Mattel)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
3978CONS( 1982, bzaxxon,   0,        0, bzaxxon,  bzaxxon,  driver_device, 0, "Bandai", "Zaxxon (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
34813979CONS( 1983, zackman,   0,        0, zackman,  zackman,  driver_device, 0, "Bandai", "Zackman", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
3980CONS( 1983, bpengo,    0,        0, bpengo,   bpengo,   driver_device, 0, "Bandai", "Pengo (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
3981CONS( 1983, bbtime,    0,        0, bbtime,   bbtime,   driver_device, 0, "Bandai", "Burger Time (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
34823982CONS( 1983, bdoramon,  0,        0, bdoramon, bdoramon, driver_device, 0, "Bandai", "Dokodemo Dorayaki Doraemon", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
3983CONS( 1983, bultrman,  0,        0, bultrman, bultrman, driver_device, 0, "Bandai", "Ultra Man (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
34833984CONS( 1984, machiman,  0,        0, machiman, machiman, driver_device, 0, "Bandai", "Machine Man", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
34843985
34853986CONS( 1981, alnattck,  0,        0, alnattck, alnattck, driver_device, 0, "Coleco", "Alien Attack", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
trunk/src/mess/drivers/hh_melps4.c
r248543r248544
3636   UINT16 m_inp_mux;                   // multiplexed inputs mask
3737
3838   UINT8 read_inputs(int columns);
39   DECLARE_INPUT_CHANGED_MEMBER(reset_button);
3940
4041   // display common
4142   int m_display_wait;                 // led/lamp off-delay in microseconds (default 33ms)
r248543r248544
188189}
189190
190191
192// generic input handlers
193
191194UINT8 hh_melps4_state::read_inputs(int columns)
192195{
193196   UINT8 ret = 0;
r248543r248544
200203   return ret;
201204}
202205
206INPUT_CHANGED_MEMBER(hh_melps4_state::reset_button)
207{
208   // for when reset button is directly tied to MCU reset pin
209   m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
210}
203211
204212
213
205214/***************************************************************************
206215
207216  Minidrivers (subclass, I/O, Inputs, Machine Config)
r248543r248544
210219
211220/***************************************************************************
212221
213  Coleco Frogger (manufactured in Japan)
222  Coleco Frogger (manufactured in Japan, licensed from Sega)
214223  * PCB label Coleco Frogger Code No. 01-81543, KS-003282 Japan
215224  * Mitsubishi M58846-701P MCU
216225  * cyan/red/green VFD display Itron CP5090GLR R1B, with partial color overlay
217226
218  NOTE!: MESS external artwork is recommended
227  NOTE!: MAME external artwork is recommended
219228
220229***************************************************************************/
221230
r248543r248544
231240   DECLARE_WRITE16_MEMBER(grid_w);
232241   DECLARE_WRITE_LINE_MEMBER(speaker_w);
233242   DECLARE_READ16_MEMBER(input_r);
234
235   DECLARE_INPUT_CHANGED_MEMBER(reset_button);
236243};
237244
238245// handlers
r248543r248544
246253
247254WRITE8_MEMBER(cfrogger_state::plate_w)
248255{
256   // F0,F1: input mux
257   if (offset == MELPS4_PORTF)
258      m_inp_mux = data & 3;
259
249260   // Sx,Fx,Gx: vfd matrix plate
250261   int mask = (offset == MELPS4_PORTS) ? 0xff : 0xf; // port S is 8-bit
251262   int shift = (offset == MELPS4_PORTS) ? 0 : (offset + 1) * 4;
252263   m_plate = (m_plate & ~(mask << shift)) | (data << shift);
253264   prepare_display();
254
255   // F0,F1: input mux
256   m_inp_mux = m_plate >> 8 & 3;
257265}
258266
259267WRITE16_MEMBER(cfrogger_state::grid_w)
r248543r248544
281289// config
282290
283291static INPUT_PORTS_START( cfrogger )
284   PORT_START("IN.0") // F0 port K
292   PORT_START("IN.0") // F0 port K0,K1
285293   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
286294   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
287295
288   PORT_START("IN.1") // F1 port K
296   PORT_START("IN.1") // F1 port K0,K1
289297   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
290298   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
291299
r248543r248544
295303   PORT_CONFSETTING(    0x08, "2" )
296304
297305   PORT_START("IN.3") // fake
298   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, cfrogger_state, reset_button, NULL)
306   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, NULL)
299307INPUT_PORTS_END
300308
301INPUT_CHANGED_MEMBER(cfrogger_state::reset_button)
302{
303   // reset button is directly tied to MCU reset pin
304   m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
305}
306
307
308309static MACHINE_CONFIG_START( cfrogger, cfrogger_state )
309310
310311   /* basic machine hardware */
r248543r248544
333334
334335/***************************************************************************
335336
337  Gakken Jungler (manufactured in Japan, licensed from Konami)
338  * PCB label Konami Gakken GR503
339  * Mitsubishi M58846-702P MCU
340  * cyan/red/green VFD display Itron CP5143GLR SGA, with light-yellow color overlay
341
342  NOTE!: MAME external artwork is recommended
343
344***************************************************************************/
345
346class gjungler_state : public hh_melps4_state
347{
348public:
349   gjungler_state(const machine_config &mconfig, device_type type, const char *tag)
350      : hh_melps4_state(mconfig, type, tag)
351   { }
352
353   void prepare_display();
354   DECLARE_WRITE8_MEMBER(plate_w);
355   DECLARE_WRITE16_MEMBER(grid_w);
356   DECLARE_WRITE_LINE_MEMBER(speaker_w);
357   DECLARE_READ16_MEMBER(input_r);
358};
359
360// handlers
361
362void gjungler_state::prepare_display()
363{
364   UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0,1);
365   UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,8,9,10,11,17,16,15,14,13,12,0,7,1,6,2,5,3,4) | 0x2000;
366   display_matrix(18, 12, plate, grid);
367}
368
369WRITE8_MEMBER(gjungler_state::plate_w)
370{
371   // G0,G1: input mux
372   if (offset == MELPS4_PORTG)
373      m_inp_mux = data & 3;
374
375   // Sx,Fx,Gx,U: vfd matrix plate
376   int mask = (offset == MELPS4_PORTS) ? 0xff : 0xf; // port S is 8-bit
377   int shift = (offset == MELPS4_PORTS) ? 0 : (offset + 1) * 4;
378   m_plate = (m_plate & ~(mask << shift)) | (data << shift);
379   prepare_display();
380}
381
382WRITE16_MEMBER(gjungler_state::grid_w)
383{
384   // D0-D11: vfd matrix grid
385   m_grid = data;
386   prepare_display();
387}
388
389WRITE_LINE_MEMBER(gjungler_state::speaker_w)
390{
391   // T: speaker out
392   m_speaker->level_w(state);
393}
394
395READ16_MEMBER(gjungler_state::input_r)
396{
397   // K0,K1: multiplexed inputs
398   // K2,K3: fixed inputs
399   return (m_inp_matrix[2]->read() & 0xc) | (read_inputs(2) & 3);
400}
401
402
403// config
404
405static INPUT_PORTS_START( gjungler )
406   PORT_START("IN.0") // G0 port K0,K1
407   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
408   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
409
410   PORT_START("IN.1") // G1 port K0,K1
411   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
412   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
413
414   PORT_START("IN.2") // K2,K3
415   PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 )
416   PORT_CONFNAME( 0x08, 0x00, "Game Mode" )
417   PORT_CONFSETTING(    0x00, "A" )
418   PORT_CONFSETTING(    0x08, "B" )
419
420   PORT_START("IN.3") // fake
421   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, NULL)
422INPUT_PORTS_END
423
424static MACHINE_CONFIG_START( gjungler, gjungler_state )
425
426   /* basic machine hardware */
427   MCFG_CPU_ADD("maincpu", M58846, XTAL_600kHz)
428   MCFG_MELPS4_READ_K_CB(READ16(gjungler_state, input_r))
429   MCFG_MELPS4_WRITE_S_CB(WRITE8(gjungler_state, plate_w))
430   MCFG_MELPS4_WRITE_F_CB(WRITE8(gjungler_state, plate_w))
431   MCFG_MELPS4_WRITE_G_CB(WRITE8(gjungler_state, plate_w))
432   MCFG_MELPS4_WRITE_U_CB(WRITE8(gjungler_state, plate_w))
433   MCFG_MELPS4_WRITE_D_CB(WRITE16(gjungler_state, grid_w))
434   MCFG_MELPS4_WRITE_T_CB(WRITELINE(gjungler_state, speaker_w))
435
436   MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_melps4_state, display_decay_tick, attotime::from_msec(1))
437   MCFG_DEFAULT_LAYOUT(layout_hh_melps4_test)
438
439   /* no video! */
440
441   /* sound hardware */
442   MCFG_SPEAKER_STANDARD_MONO("mono")
443   MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
444   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
445MACHINE_CONFIG_END
446
447
448
449
450
451/***************************************************************************
452
336453  Game driver(s)
337454
338455***************************************************************************/
r248543r248544
343460ROM_END
344461
345462
463ROM_START( gjungler )
464   ROM_REGION( 0x1000, "maincpu", 0 )
465   ROM_LOAD( "m58846-702p", 0x0000, 0x1000, CRC(94ab7060) SHA1(3389bc115d1df8d01a30611fa9e95a900d32b29b) )
466ROM_END
346467
468
469
347470/*    YEAR  NAME      PARENT COMPAT MACHINE  INPUT     INIT              COMPANY, FULLNAME, FLAGS */
348471CONS( 1981, cfrogger, 0,        0, cfrogger, cfrogger, driver_device, 0, "Coleco", "Frogger (Coleco)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
472
473CONS( 1982, gjungler, 0,        0, gjungler, gjungler, driver_device, 0, "Gakken / Konami", "Jungler (Gakken)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK | GAME_NOT_WORKING )
trunk/src/mess/drivers/hh_pic16.c
r248543r248544
1515 *192     1650    19??, (a phone dialer, have dump)
1616 *255     1655    19??, (a talking clock, have dump)
1717
18  (* denotes not yet emulated by MESS, @ denotes it's in this driver)
18  (* denotes not yet emulated by MAME, @ denotes it's in this driver)
1919
2020
2121  TODO:
trunk/src/mess/drivers/hh_tms1k.c
r248543r248544
7878 *M95041   ?        1983, Tsukuda Game Pachinko (? note: 40-pin, VFD-capable)
7979 @CD7282SL TMS1100  1981, Tandy/RadioShack Tandy-12 (serial is similar to TI Speak & Spell series?)
8080
81  (* denotes not yet emulated by MESS, @ denotes it's in this driver)
81  (* denotes not yet emulated by MAME, @ denotes it's in this driver)
8282
8383
8484  TODO:
r248543r248544
911911  This is a head to head electronic tabletop LED-display sports console.
912912  One cartridge(Football) was included with the console, the other three were
913913  sold in a pack. Gameplay has emphasis on strategy, read the official manual
914  on how to play. Remember that you can rotate the view in MESS: rotate left
914  on how to play. Remember that you can rotate the view in MAME: rotate left
915915  for Home(P1) orientation, rotate right for Visitor(P2) orientation.
916916
917917  Cartridge socket:
r248543r248544
10761076  are denoted by words ("left", "center", "short", etc), and an alternate one
10771077  with little guys drawn next to the LEDs.
10781078
1079  lamp translation table: led LDzz from game PCB = MESS lampyx:
1079  lamp translation table: led LDzz from game PCB = MAME lampyx:
10801080
10811081    LD0  = -        LD10 = lamp12   LD20 = lamp42   LD30 = lamp60
10821082    LD1  = lamp23   LD11 = lamp4    LD21 = lamp41   LD31 = lamp61
r248543r248544
12091209  The sequel to Entex Baseball, this version keeps up with score and innings.
12101210  As its predecessor, the pitcher controls are on a separate joypad.
12111211
1212  lamp translation table: led zz from game PCB = MESS lampyx:
1212  lamp translation table: led zz from game PCB = MAME lampyx:
12131213
12141214    00 = -        10 = lamp94   20 = lamp74   30 = lamp50
12151215    01 = lamp53   11 = lamp93   21 = lamp75   31 = lamp51
r248543r248544
13351335  This is another improvement over Entex Baseball, where gameplay is a bit more
13361336  varied. Like the others, the pitcher controls are on a separate joypad.
13371337
1338  lamp translation table: led zz from game PCB = MESS lampyx:
1338  lamp translation table: led zz from game PCB = MAME lampyx:
13391339  note: unlabeled panel leds are listed here as Sz, Bz, Oz, Iz, z left-to-right
13401340
13411341    00 = -        10 = lamp75   20 = lamp72
r248543r248544
15171517  TMS1100, the second more widespread release runs on a COP400. There are
15181518  also differences with the overlay mask.
15191519
1520  NOTE!: MESS external artwork is recommended
1520  NOTE!: MAME external artwork is recommended
15211521
15221522***************************************************************************/
15231523
r248543r248544
17481748  * TMS1100 6010 MP1218 (die also labeled MP1218)
17491749  * 4 7seg LEDs, and other LEDs behind bezel, 1bit sound
17501750
1751  lamp translation table: led zz from game PCB = MESS lampyx:
1751  lamp translation table: led zz from game PCB = MAME lampyx:
17521752
17531753    11 = lamp90   21 = lamp91   31 = lamp92   41 = lamp93   51 = lamp95
17541754    12 = lamp80   22 = lamp81   32 = lamp82   42 = lamp83   52 = lamp85
r248543r248544
18731873  * TMS1100 MP1221 (die labeled MP1221)
18741874  * 4 7seg LEDs(rightmost one unused), and other LEDs behind bezel, 1bit sound
18751875
1876  lamp translation table: led zz from game PCB = MESS lampyx:
1876  lamp translation table: led zz from game PCB = MAME lampyx:
18771877
18781878    0 = -          10 = lamp44     20 = lamp53     30 = lamp95     40 = lamp92
18791879    1 = lamp30     11 = lamp45     21 = lamp54     31 = lamp85     41 = lamp93
r248543r248544
18861886    8 = lamp42     18 = lamp73     28 = lamp84     38 = lamp82
18871887    9 = lamp43     19 = -          29 = lamp94     39 = lamp83
18881888
1889  NOTE!: MESS external artwork is recommended
1889  NOTE!: MAME external artwork is recommended
18901890
18911891***************************************************************************/
18921892
r248543r248544
36843684// config
36853685
36863686/* physical button layout and labels is like this:
3687  (note: remember that you can rotate the display in MESS)
3687  (note: remember that you can rotate the display in MAME)
36883688
36893689    [SELECT  [BALL UP] [BALL OVER]
36903690     SCORE]
r248543r248544
40194019  - Japan: Block Attack
40204020  - UK: Break-In
40214021
4022  lamp translation table: led zz from game PCB = MESS lampyx:
4022  lamp translation table: led zz from game PCB = MAME lampyx:
40234023
40244024    00 = -         10 = lamp50    20 = lamp42
40254025    01 = lamp70    11 = lamp51    21 = lamp33
r248543r248544
46194619
46204620CONS( 1979, tbreakup,  0,        0, tbreakup,  tbreakup,  driver_device, 0, "Tomy", "Break Up (Tomy)", GAME_SUPPORTS_SAVE )
46214621
4622// ***: As far as MESS is concerned, the game is emulated fine. But for it to be playable, it requires interaction
4622// ***: As far as MAME is concerned, the game is emulated fine. But for it to be playable, it requires interaction
46234623// with other, unemulatable, things eg. game board/pieces, playing cards, pen & paper, etc.
trunk/src/mess/drivers/hh_ucom4.c
r248543r248544
5050 *128     uPD650C  1981, Roland TR-606
5151  133     uPD650C  1982, Roland TB-303 -> tb303.c
5252
53  (* denotes not yet emulated by MESS, @ denotes it's in this driver)
53  (* denotes not yet emulated by MAME, @ denotes it's in this driver)
5454
5555***************************************************************************/
5656
r248543r248544
229229  - Japan: "Missile Guerilla Warfare Maneuvers", published by Tomy
230230  - World: UFO Master-Blaster Station
231231
232  NOTE!: MESS external artwork is recommended
232  NOTE!: MAME external artwork is recommended
233233
234234***************************************************************************/
235235
r248543r248544
341341  Then choose a formation(A,B,C) and either pass the ball, and/or start
342342  running. For more information, refer to the official manual.
343343
344  NOTE!: MESS external artwork is recommended
344  NOTE!: MAME external artwork is recommended
345345
346346***************************************************************************/
347347
r248543r248544
481481  player 1 presses one of the directional keys. In 2-player mode, player 2
482482  controls the goalkeeper, defensive players are still controlled by the CPU.
483483
484  NOTE!: MESS external artwork is recommended
484  NOTE!: MAME external artwork is recommended
485485
486486***************************************************************************/
487487
r248543r248544
603603  * NEC uCOM-44 MCU, labeled EMIX D552C 049
604604  * cyan VFD display Emix-108
605605
606  NOTE!: MESS external artwork is recommended
606  NOTE!: MAME external artwork is recommended
607607
608608***************************************************************************/
609609
r248543r248544
712712  This is basically a revamp of their earlier Boxing game (ET-06), case and
713713  buttons are exactly the same.
714714
715  NOTE!: MESS external artwork is recommended
715  NOTE!: MAME external artwork is recommended
716716
717717***************************************************************************/
718718
r248543r248544
865865  - Japan: FL Crazy Climbing
866866  - USA: Crazy Climber
867867
868  NOTE!: MESS external artwork is recommended
868  NOTE!: MAME external artwork is recommended
869869
870870***************************************************************************/
871871
r248543r248544
967967  - USA: Invader From Space
968968  - UK: Invader From Space, published by Grandstand
969969
970  NOTE!: MESS external artwork is recommended
970  NOTE!: MAME external artwork is recommended
971971
972972***************************************************************************/
973973
r248543r248544
11791179  - Japan: Astro Wars
11801180  - UK: Astro Wars, published by Grandstand
11811181
1182  NOTE!: MESS external artwork is recommended
1182  NOTE!: MAME external artwork is recommended
11831183
11841184***************************************************************************/
11851185
r248543r248544
12811281  - USA: Astro Command, published by Tandy
12821282  - UK: Scramble, published by Grandstand
12831283
1284  NOTE!: MESS external artwork is recommended
1284  NOTE!: MAME external artwork is recommended
12851285
12861286***************************************************************************/
12871287
r248543r248544
13901390  - USA: Dracula, red case
13911391  - Other: Dracula, yellow case, published by Hales
13921392
1393  NOTE!: MESS external artwork is recommended
1393  NOTE!: MAME external artwork is recommended
13941394
13951395***************************************************************************/
13961396
r248543r248544
15891589  - USA: Cosmic Combat
15901590  - Japan: Space Attack
15911591
1592  NOTE!: MESS external artwork is recommended
1592  NOTE!: MAME external artwork is recommended
15931593
15941594***************************************************************************/
15951595
r248543r248544
16881688  Press the Serve button to start, then hit the ball by pressing one of the
16891689  positional buttons when the ball flies over it.
16901690
1691  NOTE!: MESS external artwork is recommended
1691  NOTE!: MAME external artwork is recommended
16921692
16931693***************************************************************************/
16941694
r248543r248544
18501850  The game will start automatically after turning it on. This Pac Man refuses
18511851  to eat dots with his butt, you can only eat them going right-to-left.
18521852
1853  NOTE!: MESS external artwork is recommended
1853  NOTE!: MAME external artwork is recommended
18541854
18551855***************************************************************************/
18561856
r248543r248544
18711871void tmpacman_state::prepare_display()
18721872{
18731873   UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
1874   UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,16,17,18,11,10,9,8,0,2,3,1,4,5,6,7,12,13,14,15);
1874   UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,16,17,18,11,10,9,8,0,2,3,1,4,5,6,7,12,13,14,15) | 0x100;
18751875   display_matrix(19, 8, plate, grid);
18761876}
18771877
r248543r248544
19541954  - UK: Astro Blaster, published by Hales (Epoch Astro Command was named Scramble)
19551955  - Germany: Rambler
19561956
1957  NOTE!: MESS external artwork is recommended
1957  NOTE!: MAME external artwork is recommended
19581958
19591959***************************************************************************/
19601960
r248543r248544
19741974
19751975void tmscramb_state::prepare_display()
19761976{
1977   UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,3,15,2,14,1,13,16,0,12,8,4,9,5,10,6,11,7);
1977   UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,18,17,3,15,2,14,1,13,16,0,12,8,4,9,5,10,6,11,7) | 0x400;
19781978   display_matrix(17, 10, plate, m_grid);
19791979}
19801980
r248543r248544
20552055  - USA: Caveman, published by Tandy
20562056  - UK: Cave Man - Jr. Caveman vs Dinosaur, published by Grandstand
20572057
2058  NOTE!: MESS external artwork is recommended
2058  NOTE!: MAME external artwork is recommended
20592059
20602060***************************************************************************/
20612061
r248543r248544
20762076void tcaveman_state::prepare_display()
20772077{
20782078   UINT8 grid = BITSWAP8(m_grid,0,1,2,3,4,5,6,7);
2079   UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,10,11,5,6,7,8,0,9,2,18,17,16,3,15,14,13,12,4,1);
2079   UINT32 plate = BITSWAP24(m_plate,23,22,21,20,19,10,11,5,6,7,8,0,9,2,18,17,16,3,15,14,13,12,4,1) | 0x40;
20802080   display_matrix(19, 8, plate, grid);
20812081}
20822082
r248543r248544
21542154
21552155  To start the game, simply press [UP]. Hold a joystick direction to move around.
21562156
2157  NOTE!: MESS external artwork is recommended
2157  NOTE!: MAME external artwork is recommended
21582158
21592159***************************************************************************/
21602160
trunk/src/mess/drivers/mbdtower.c
r248543r248544
1313  This is a board game, it obviously requires game pieces and the board.
1414  The emulated part is the centerpiece, a black tower with a rotating card
1515  panel and LED digits for displaying health, amount of gold, etc. As far
16  as MESS is concerned, the game works fine.
16  as MAME is concerned, the game works fine.
1717
1818  To start up the game, first press [MOVE], the machine now does a self-test.
1919  Then select level and number of players and the game will start. Read the
trunk/src/mess/drivers/oric.c
r248543r248544
4949   oric_state(const machine_config &mconfig, device_type type, const char *tag)
5050      : driver_device(mconfig, type, tag),
5151         m_maincpu(*this, "maincpu"),
52         m_palette(*this, "palette"),
5253         m_psg(*this, "ay8912"),
5354         m_centronics(*this, "centronics"),
5455         m_cent_data_out(*this, "cent_data_out"),
r248543r248544
8182
8283protected:
8384   required_device<cpu_device> m_maincpu;
85   required_device<palette_device> m_palette;
8486   required_device<ay8910_device> m_psg;
8587   required_device<centronics_device> m_centronics;
8688   required_device<output_latch_device> m_cent_data_out;
r248543r248544
200202
201203UINT32 oric_state::screen_update_oric(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
202204{
203   static const UINT32 colors[8] = {
204      0x000000,
205      0xff0000,
206      0x00ff00,
207      0xffff00,
208      0x0000ff,
209      0xff00ff,
210      0x00ffff,
211      0xffffff
212   };
213
214205   bool blink_state = m_blink_counter & 0x20;
215206   m_blink_counter = (m_blink_counter + 1) & 0x3f;
216207
r248543r248544
219210   for(int y=0; y<224; y++) {
220211      // Line attributes and current colors
221212      UINT8 lattr = 0;
222      UINT32 fgcol = colors[7];
223      UINT32 bgcol = colors[0];
213      UINT32 fgcol = m_palette->pen_color(7);
214      UINT32 bgcol = m_palette->pen_color(0);
224215
225216      UINT32 *p = &bitmap.pix32(y);
226217
r248543r248544
251242         if(!(ch & 0x60)) {
252243            pat = 0x00;
253244            switch(ch & 0x18) {
254            case 0x00: fgcol = colors[ch & 7]; break;
245            case 0x00: fgcol = m_palette->pen_color(ch & 7); break;
255246            case 0x08: lattr = ch & 7; break;
256            case 0x10: bgcol = colors[ch & 7]; break;
247            case 0x10: bgcol = m_palette->pen_color(ch & 7); break;
257248            case 0x18: pattr = ch & 7; break;
258249            }
259250         }
r248543r248544
784775   MCFG_SCREEN_UPDATE_DRIVER(oric_state, screen_update_oric)
785776   MCFG_SCREEN_VBLANK_DRIVER(oric_state, vblank_w)
786777
778   MCFG_PALETTE_ADD_3BIT_RGB("palette")
779
787780   /* sound hardware */
788781   MCFG_SPEAKER_STANDARD_MONO("mono")
789782   MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
trunk/src/mess/drivers/sdk80.c
r248543r248544
202202ROM_END
203203
204204/*    YEAR  NAME    PARENT  COMPAT  MACHINE    INPUT   CLASS           INIT   COMPANY   FULLNAME  FLAGS */
205COMP( 1975, sdk80,  0,       0,     sdk80,     sdk80,  driver_device,  0,     "Intel",  "SDK-80", GAME_NO_SOUND_HW | GAME_NOT_WORKING )
205COMP( 1975, sdk80,  0,       0,     sdk80,     sdk80,  driver_device,  0,     "Intel",  "SDK-80", GAME_NO_SOUND_HW )
trunk/src/mess/drivers/wildfire.c
r248543r248544
99  to create the illusion of a moving ball, and even the flippers are leds.
1010  A drawing of a pinball table is added as overlay.
1111
12  NOTE!: MESS external artwork is recommended
12  NOTE!: MAME external artwork is recommended
1313
1414
1515  TODO:
r248543r248544
9090   return (index < 3);
9191}
9292
93// lamp translation table: Lzz from patent US4334679 FIG.4 = MESS lampxxy,
93// lamp translation table: Lzz from patent US4334679 FIG.4 = MAME lampxxy,
9494// where xx is led column and y is led row, eg. lamp103 is output A10 D3
9595// (note: 2 mistakes in the patent: the L19 between L12 and L14 should be L13, and L84 should of course be L48)
9696/*
trunk/src/tools/nltool.c
r248543r248544
104104      opt_file("f", "file",        "-",     "file to process (default is stdin)", this),
105105      opt_type("y", "type",        "spice", "spice:eagle", "type of file to be converted: spice,eagle", this),
106106      opt_cmd ("c", "cmd",         "run",   "run|convert|listdevices", this),
107      opt_inp( "i", "input",       "",      "input file to process (default is none)", this),
107108      opt_verb("v", "verbose",              "be verbose - this produces lots of output", this),
108109      opt_quiet("q", "quiet",               "be quiet - no warnings", this),
109110      opt_help("h", "help",                 "display help", this)
r248543r248544
115116   poption_str    opt_file;
116117   poption_str_limit opt_type;
117118   poption_str    opt_cmd;
119   poption_str    opt_inp;
118120   poption_bool   opt_verb;
119121   poption_bool   opt_quiet;
120122   poption_bool   opt_help;
r248543r248544
263265   fprintf(stderr, "%s\n", opts.help().cstr());
264266}
265267
268struct input_t
269{
270   netlist::netlist_time m_time;
271   netlist::param_t *m_param;
272   double m_value;
273
274   input_t()
275   {
276
277   }
278   input_t(netlist::netlist_t *netlist, const pstring &line)
279   {
280      char buf[400];
281      double t;
282      int e = sscanf(line.cstr(), "%lf,%[^,],%lf", &t, buf, &m_value);
283      if ( e!= 3)
284         throw netlist::fatalerror_e("error %d scanning line %s\n", e, line.cstr());
285      m_time = netlist::netlist_time::from_double(t);
286      m_param = netlist->setup().find_param(buf, true);
287   }
288
289   void setparam()
290   {
291      switch (m_param->param_type())
292      {
293         case netlist::param_t::MODEL:
294         case netlist::param_t::STRING:
295            throw netlist::fatalerror_e("param %s is not numeric\n", m_param->name().cstr());
296         case netlist::param_t::DOUBLE:
297            static_cast<netlist::param_double_t*>(m_param)->setTo(m_value);
298            break;
299         case netlist::param_t::INTEGER:
300            static_cast<netlist::param_int_t*>(m_param)->setTo((int)m_value);
301            break;
302         case netlist::param_t::LOGIC:
303            static_cast<netlist::param_logic_t*>(m_param)->setTo((int) m_value);
304            break;
305      }
306   }
307};
308
309plist_t<input_t> *read_input(netlist::netlist_t *netlist, pstring fname)
310{
311   plist_t<input_t> *ret = palloc(plist_t<input_t>());
312   if (fname != "")
313   {
314      pstring_list_t lines(filetobuf(fname) , "\n");
315      for (unsigned i=0; i<lines.size(); i++)
316      {
317         pstring l = lines[i].trim();
318         if (l != "")
319         {
320            input_t inp(netlist, l);
321            ret->add(inp);
322         }
323      }
324   }
325   return ret;
326}
327
266328static void run(tool_options_t &opts)
267329{
268330   netlist_tool_t nt;
r248543r248544
271333   nt.m_opts = &opts;
272334   nt.init();
273335   nt.read_netlist(filetobuf(opts.opt_file()), opts.opt_name());
336
337   plist_t<input_t> *inps = read_input(&nt, opts.opt_inp());
338
274339   double ttr = opts.opt_ttr();
275340
276341   printf("startup time ==> %5.3f\n", (double) (osd_ticks() - t) / (double) osd_ticks_per_second() );
277342   printf("runnning ...\n");
278343   t = osd_ticks();
279344
280   nt.process_queue(netlist::netlist_time::from_double(ttr));
345   unsigned pos = 0;
346   netlist::netlist_time nlt = netlist::netlist_time::zero;
347
348   while (pos < inps->size() && (*inps)[pos].m_time < netlist::netlist_time::from_double(ttr))
349   {
350      nt.process_queue((*inps)[pos].m_time - nlt);
351      (*inps)[pos].setparam();
352      nlt = (*inps)[pos].m_time;
353      pos++;
354   }
355   nt.process_queue(netlist::netlist_time::from_double(ttr) - nlt);
281356   nt.stop();
357   pfree(inps);
282358
283359   double emutime = (double) (osd_ticks() - t) / (double) osd_ticks_per_second();
284360   printf("%f seconds emulation took %f real time ==> %5.2f%%\n", ttr, emutime, ttr/emutime*100.0);
trunk/src/tools/nlwav.c
r0r248544
1#include <cstdio>
2#include <cstring>
3#include "plib/poptions.h"
4#include "plib/pstring.h"
5#include "plib/plists.h"
6#include "nl_setup.h"
7
8class nlwav_options_t : public poptions
9{
10public:
11   nlwav_options_t() :
12      poptions(),
13#if 0
14      opt_ttr ("t", "time_to_run", 1.0,     "time to run the emulation (seconds)", this),
15      opt_name("n", "name",        "",      "netlist in file to run; default is first one", this),
16      opt_logs("l", "logs",        "",      "colon separated list of terminals to log", this),
17      opt_file("f", "file",        "-",     "file to process (default is stdin)", this),
18      opt_type("y", "type",        "spice", "spice:eagle", "type of file to be converted: spice,eagle", this),
19      opt_cmd ("c", "cmd",         "run",   "run|convert|listdevices", this),
20      opt_inp( "i", "input",       "",      "input file to process (default is none)", this),
21#endif
22      opt_inp( "i", "input",       "",      "input file", this),
23      opt_out( "o", "output",      "",      "output file", this),
24      opt_amp( "a", "amp",    10000.0,      "amplification after mean correction", this),
25      opt_verb("v", "verbose",              "be verbose - this produces lots of output", this),
26      opt_quiet("q", "quiet",               "be quiet - no warnings", this),
27      opt_help("h", "help",                 "display help", this)
28   {}
29#if 0
30   poption_double opt_ttr;
31   poption_str    opt_name;
32   poption_str    opt_logs;
33   poption_str    opt_file;
34   poption_str_limit opt_type;
35   poption_str    opt_cmd;
36#endif
37   poption_str    opt_inp;
38   poption_str    opt_out;
39   poption_double opt_amp;
40   poption_bool   opt_verb;
41   poption_bool   opt_quiet;
42   poption_bool   opt_help;
43};
44
45/* http://de.wikipedia.org/wiki/RIFF_WAVE */
46class wav_t
47{
48public:
49   wav_t(const pstring &fn, unsigned sr)
50   {
51      m_f = std::fopen(fn.cstr(),"w");
52      if (m_f==NULL)
53         throw netlist::fatalerror_e("Error opening output file: %s", fn.cstr());
54      initialize(sr);
55      std::fwrite(&m_fh, sizeof(m_fh), 1, m_f);
56      std::fwrite(&m_fmt, sizeof(m_fmt), 1, m_f);
57      std::fwrite(&m_data, sizeof(m_data), 1, m_f);
58   }
59   ~wav_t()
60   {
61      close();
62   }
63
64   unsigned channels() { return m_fmt.channels; }
65   unsigned sample_rate() { return m_fmt.sample_rate; }
66
67   void write_sample(int sample)
68   {
69      m_data.len += m_fmt.block_align;
70      short ps = sample; /* 16 bit sample, FIXME: powerpc? */
71      std::fwrite(&ps, sizeof(ps), 1, m_f);
72   }
73
74   void close()
75   {
76      if (m_f != NULL)
77      {
78         std::fseek(m_f, 0, SEEK_SET);
79         std::fwrite(&m_fh, sizeof(m_fh), 1, m_f);
80         std::fwrite(&m_fmt, sizeof(m_fmt), 1, m_f);
81
82         //data.len = fmt.block_align * n;
83         std::fwrite(&m_data, sizeof(m_data), 1, m_f);
84
85
86         std::fclose(m_f);
87         m_f = NULL;
88      }
89   }
90private:
91   struct riff_chunk_t
92   {
93      char      group_id[4];
94      unsigned   filelen;
95      char      rifftype[4];
96   };
97
98   struct riff_format_t
99   {
100      char      signature[4];
101      unsigned   fmt_length;
102      short      format_tag;
103      short      channels;
104      unsigned   sample_rate;
105      unsigned   bytes_per_second;
106      short       block_align;
107      short      bits_sample;
108   };
109
110   struct riff_data_t
111   {
112      char      signature[4];
113      unsigned   len;
114      // data follows
115   };
116
117   void initialize(unsigned sr)
118   {
119      std::strncpy(m_fh.group_id, "RIFF", 4);
120      m_fh.filelen = 0; // Fixme
121      std::strncpy(m_fh.rifftype, "WAVE", 4);
122
123      std::strncpy(m_fmt.signature, "fmt ", 4);
124      m_fmt.fmt_length = 16;
125      m_fmt.format_tag = 0x0001; //PCM
126      m_fmt.channels = 1;
127      m_fmt.sample_rate = sr;
128      m_fmt.bits_sample = 16;
129      m_fmt.block_align = m_fmt.channels * ((m_fmt.bits_sample + 7) / 8);
130      m_fmt.bytes_per_second = m_fmt.sample_rate * m_fmt.block_align;
131
132      std::strncpy(m_data.signature, "data", 4);
133      m_data.len = m_fmt.bytes_per_second * 2 * 0;
134
135   }
136
137   riff_chunk_t m_fh;
138   riff_format_t m_fmt;
139   riff_data_t m_data;
140
141   FILE *m_f;
142
143};
144
145void convert(nlwav_options_t &opts)
146{
147   
148   wav_t wo(opts.opt_out(), 48000);
149   
150   FILE *FIN = std::fopen(opts.opt_inp(),"r");
151   if (FIN==NULL)
152      throw netlist::fatalerror_e("Error opening input file: %s", opts.opt_inp().cstr());
153   
154   double dt = 1.0 / (double) wo.sample_rate();
155   double ct = dt;
156   //double mean = 2.4;
157   double amp = opts.opt_amp();
158   double mean = 0.0;
159   double means = 0.0;
160   double cursam = 0.0;
161   double outsam = 0.0;
162   double lt = 0.0;
163   double maxsam = -1e9;
164   double minsam = 1e9;
165   int n = 0;
166   //short sample = 0;
167
168   
169   while(!std::feof(FIN))
170   {
171#if 1
172      float t = 0.0; float v = 0.0;
173      fscanf(FIN, "%f %f", &t, &v);
174      while (t >= ct)
175      {
176         outsam += (ct - lt) * cursam;
177         outsam = outsam / dt;
178         if (t>0.0)
179         {
180            means += outsam;
181            maxsam = std::max(maxsam, outsam);
182            minsam = std::min(minsam, outsam);
183            n++;
184            //mean = means / (double) n;
185            mean += 5.0 / (double) wo.sample_rate() * (outsam - mean);
186         }
187         outsam = (outsam - mean) * amp;
188         outsam = std::max(-32000.0, outsam);
189         outsam = std::min(32000.0, outsam);
190         wo.write_sample((int) outsam);
191         outsam = 0.0;
192         lt = ct;
193         ct += dt;
194      }
195      outsam += (t-lt)*cursam;
196      lt = t;
197      cursam = v;
198#else
199      float t = 0.0; float v = 0.0;
200      fscanf(FIN, "%f %f", &t, &v);
201      while (ct <= t)
202      {
203         wo.write_sample(sample);
204         n++;
205         ct += dt;
206      }
207      means += v;
208      mean = means / (double) n;
209      v = v - mean;
210      v = v * amp;
211      if (v>32000.0)
212         v = 32000.0;
213      else if (v<-32000.0)
214         v = -32000.0;
215      sample = v;   
216      //printf("%f %f\n", t, v);
217#endif
218   }
219   printf("Mean (low freq filter): %f\n", mean);
220   printf("Mean (static):          %f\n", means / (double) n);
221   printf("Amp + %f\n", 32000.0 / (maxsam- mean));
222   printf("Amp - %f\n", -32000.0 / (minsam- mean));
223   wo.close();
224   fclose(FIN);
225
226}
227
228void usage(nlwav_options_t &opts)
229{
230   fprintf(stderr,
231      "Usage:\n"
232      "  nltool -help\n"
233      "  nltool [options]\n"
234      "\n"
235      "Where:\n"
236   );
237   fprintf(stderr, "%s\n", opts.help().cstr());
238}
239
240
241int main(int argc, char *argv[])
242{
243#if (!PSTANDALONE)
244   track_memory(true);
245   {
246#endif
247   nlwav_options_t opts;
248   int ret;
249
250   if ((ret = opts.parse(argc, argv)) != argc)
251   {
252      fprintf(stderr, "Error parsing %s\n", argv[ret]);
253      usage(opts);
254      return 1;
255   }
256
257   if (opts.opt_help())
258   {
259      usage(opts);
260      return 1;
261   }
262
263   convert(opts);
264#if (!PSTANDALONE)
265   }
266   dump_unfreed_mem();
267#endif
268
269   return 0;
270}
271
272/*
273Der Daten-Abschnitt enthält die Abtastwerte:
274Offset   Länge   Inhalt   Beschreibung
27536 (0x24)   4   'data'   Header-Signatur
27640 (0x28)   4   <length>   Länge des Datenblocks, max. <Dateigröße> − 44
277
2780 (0x00)   char   4   'RIFF'
2794 (0x04)   unsigned   4   <Dateigröße> − 8
2808 (0x08)   char   4   'WAVE'
281
282Der fmt-Abschnitt (24 Byte) beschreibt das Format der einzelnen Abtastwerte:
283Offset   Länge   Inhalt   Beschreibung
28412 (0x0C)   4   'fmt '   Header-Signatur (folgendes Leerzeichen beachten)
28516 (0x10)   4   <fmt length>   Länge des restlichen fmt-Headers (16 Bytes)
28620 (0x14)   2   <format tag>   Datenformat der Abtastwerte (siehe separate Tabelle weiter unten)
28722 (0x16)   2   <channels>   Anzahl der Kanäle: 1 = mono, 2 = stereo; mittlerweile sind auch mehr als 2 Kanäle (z. B. für Raumklang) möglich.[2]
28824 (0x18)   4   <sample rate>   Samples pro Sekunde je Kanal (z. B. 44100)
28928 (0x1C)   4   <bytes/second>   Abtastrate · Frame-Größe
29032 (0x20)   2   <block align>   Frame-Größe = <Anzahl der Kanäle> · ((<Bits/Sample (eines Kanals)> + 7) / 8)   (Division ohne Rest)
29134 (0x22)   2   <bits/sample>   Anzahl der Datenbits pro Samplewert je Kanal (z. B. 12)
292*/


Previous 199869 Revisions Next


© 1997-2024 The MAME Team