Previous 199869 Revisions Next

r40027 Sunday 26th July, 2015 at 06:06:12 UTC by kazblox
Merge pull request #2 from mamedev/master

update from original
[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 qix.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
r248538r248539
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>
182159</softwarelist>
trunk/hash/ibm5170_cdrom.xml
r248538r248539
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
23798</softwarelist>
trunk/hash/msx1_cart.xml
r248538r248539
666666      </part>
667667   </software>
668668
669   <!-- Code seems to work but it does not display text -->
670   <software name="msxwritj" supported="partial">
669   <!-- Does not seem to work at the moment -->
670   <software name="msxwritj" supported="no">
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="msxwrite" />
677         <feature name="slot" value="ascii8" />
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
r248538r248539
3434// .END
3535
3636   SOLVER(Solver, 24000)
37   PARAM(Solver.ACCURACY, 1e-9)
37   PARAM(Solver.ACCURACY, 1e-7)
3838   PARAM(Solver.NR_LOOPS, 90)
3939   PARAM(Solver.SOR_FACTOR, 0.001)
4040   PARAM(Solver.GS_LOOPS, 1)
r248538r248539
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
r248538r248539
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
r248538r248539
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",
245243      MAME_DIR .. "src/emu/bus/c64/comal80.c",
246244      MAME_DIR .. "src/emu/bus/c64/comal80.h",
247245      MAME_DIR .. "src/emu/bus/c64/cpm.c",
r248538r248539
437435      MAME_DIR .. "src/emu/bus/cbmiec/vic1515.h",
438436      MAME_DIR .. "src/emu/bus/cbmiec/vic1520.c",
439437      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",
442438   }
443439end
444440
trunk/scripts/src/netlist.lua
r248538r248539
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",
163161}
trunk/scripts/src/tools.lua
r248538r248539
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--------------------------------------------------
658622-- castool
659623--------------------------------------------------
660624
trunk/src/emu/bus/c64/c128_partner.c
r248538r248539
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
r248538r248539
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
r248538r248539
308308// slot devices
309309#include "16kb.h"
310310#include "c128_comal80.h"
311#include "c128_partner.h"
312311#include "comal80.h"
313312#include "cpm.h"
314313#include "currah_speech.h"
r248538r248539
421420   SLOT_INTERFACE_INTERNAL("ocean", C64_OCEAN)
422421   SLOT_INTERFACE_INTERNAL("pagefox", C64_PAGEFOX)
423422   SLOT_INTERFACE_INTERNAL("partner", C64_PARTNER)
424   SLOT_INTERFACE_INTERNAL("partner128", C128_PARTNER)
425423   SLOT_INTERFACE_INTERNAL("prophet64", C64_PROPHET64)
426424   SLOT_INTERFACE_INTERNAL("ps64", C64_PS64)
427425   SLOT_INTERFACE_INTERNAL("rex", C64_REX)
trunk/src/emu/bus/cbmiec/c1526.c
r248538r248539
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
r248538r248539
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
r248538r248539
494494#include "serialbox.h"
495495#include "vic1515.h"
496496#include "vic1520.h"
497#include "c1526.h"
498497
499498SLOT_INTERFACE_START( cbm_iec_devices )
500499   SLOT_INTERFACE("c1540", C1540)
r248538r248539
521520   SLOT_INTERFACE("nl10", C64_NL10_INTERFACE)
522521   SLOT_INTERFACE("vic1515", VIC1515)
523522   SLOT_INTERFACE("vic1520", VIC1520)
524   SLOT_INTERFACE("c1526", C1526)
525   SLOT_INTERFACE("mps802", MPS802)
526523SLOT_INTERFACE_END
trunk/src/emu/bus/ieee488/ieee488.c
r248538r248539
368368//-------------------------------------------------
369369
370370// slot devices
371#include "bus/cbmiec/c1526.h"
372371#include "c2031.h"
373372#include "c2040.h"
374373#include "c8050.h"
r248538r248539
392391   SLOT_INTERFACE("softbox", SOFTBOX)
393392   SLOT_INTERFACE("hardbox", HARDBOX)
394393   SLOT_INTERFACE("shark", SHARK)
395   SLOT_INTERFACE("c4023", C4023)
396394SLOT_INTERFACE_END
trunk/src/emu/bus/msx_cart/ascii.c
r248538r248539
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>;
1211
1312
1413msx_cart_ascii8::msx_cart_ascii8(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
r248538r248539
442441      }
443442   }
444443}
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
r248538r248539
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;
1413
1514
1615class msx_cart_ascii8 : public device_t
r248538r248539
115114};
116115
117116
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
141117#endif
trunk/src/emu/bus/msx_cart/cartridge.c
r248538r248539
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)
4948   SLOT_INTERFACE_INTERNAL("sound_snatcher", MSX_CART_SOUND_SNATCHER)
5049   SLOT_INTERFACE_INTERNAL("sound_sdsnatch", MSX_CART_SOUND_SDSNATCHER)
5150   SLOT_INTERFACE_INTERNAL("msxaud_hxmu900", MSX_CART_MSX_AUDIO_HXMU900)
trunk/src/emu/bus/ti99_peb/ti_rs232.c
r248538r248539
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
r248538r248539
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;
10311028}
10321029
10331030void ti_rs232_pio_device::device_stop()
r248538r248539
10411038   m_pio_direction_in = false;
10421039   m_pio_handshakeout = false;
10431040   m_pio_spareout = false;
1041   m_pio_writable = false;
10441042   m_flag0 = false;
10451043
10461044   set_bit(0, CTS, 0);
10471045   set_bit(1, CTS, 0);
10481046
10491047   m_led = false;
1048   m_pio_write = true;
10501049   m_recv_mode[0] = RECV_MODE_NORMAL;
10511050   m_recv_mode[1] = RECV_MODE_NORMAL;
10521051
trunk/src/emu/emupal.c
r248538r248539
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/*-------------------------------------------------
841819    RRRR_GGGG_BBBB - standard 4-4-4 palette,
842820    assuming the commonly used resistor values:
843821
trunk/src/emu/emupal.h
r248538r248539
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
243235#define MCFG_PALETTE_ADD_RRRRRGGGGGBBBBB(_tag) \
244236   MCFG_PALETTE_ADD(_tag, 32768) \
245237   palette_device::static_set_init(*device, palette_init_delegate(FUNC(palette_device::palette_init_RRRRRGGGGGBBBBB), downcast<palette_device *>(device)));
r248538r248539
404396   void palette_init_monochrome_green(palette_device &palette);
405397   void palette_init_monochrome_green_highlight(palette_device &palette);
406398   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);
409399   void palette_init_RRRRGGGGBBBB_proms(palette_device &palette);
410400   void palette_init_RRRRRGGGGGBBBBB(palette_device &palette);
411401   void palette_init_BBBBBGGGGGRRRRR(palette_device &palette);
trunk/src/emu/netlist/devices/net_lib.h
r248538r248539
5959#include "../macro/nlm_cd4xxx.h"
6060#include "../macro/nlm_ttl74xx.h"
6161#include "../macro/nlm_opamp.h"
62#include "../macro/nlm_other.h"
6362
6463#include "../analog/nld_bjt.h"
6564#include "../analog/nld_fourterm.h"
trunk/src/emu/netlist/macro/nlm_other.c
r248538r248539
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
r248538r248539
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
r248538r248539
3030   LOCAL_SOURCE(TTL74XX_lib)
3131   LOCAL_SOURCE(CD4XXX_lib)
3232   LOCAL_SOURCE(OPAMP_lib)
33   LOCAL_SOURCE(otheric_lib)
3433
3534   INCLUDE(diode_models);
3635   INCLUDE(bjt_models);
r248538r248539
3837   INCLUDE(TTL74XX_lib);
3938   INCLUDE(CD4XXX_lib);
4039   INCLUDE(OPAMP_lib);
41   INCLUDE(otheric_lib);
4240
4341NETLIST_END()
4442
trunk/src/lib/formats/flopimg.c
r248538r248539
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+32);
1277   mfm_w(buffer, 16, res, 1000, crc->write+16);
12781278}
12791279
12801280void floppy_image_format_t::fixup_crc_cbm(std::vector<UINT32> &buffer, const gen_crc_info *crc)
trunk/src/mame/arcade.lst
r248538r248539
593593club90sa        // (c) 1990
594594lovehous        // (c) 1990
595595hanaoji         // (c) 1991
596hanaojia        // (c) 1991
597596pstadium        // (c) 1990
598597triplew1        // (c) 1989
599598triplew2        // (c) 1990
r248538r248539
683682vautour         // bootleg (Jeutel)
684683falconz         // bootleg
685684vautourz        // bootleg
686vautourza      // bootleg (Jeutal)
687685griffon         // bootleg (Videotron)
688686nextfase        // bootleg
689687phoenixs        // bootleg (Sonic)
690phoenixass      // bootleg (Assa)
691688avefenix        // bootleg (Video Game)
692689avefenixrf      // bootleg (Recreativos Franco)
693avefenixl      // bootleg (Laguna)
694690pleiads         // (c) 1981 Tehkan
695691pleiadsb2       // bootleg
696692pleiadbl        // bootleg
r248538r248539
24962492dariusgu        // 1994.11 D87 (c) 1994 Taito America Corporation (US)
24972493dariusgx        // 1994.?? D87 (c) 1994 Taito Corporation
24982494bublbob2        // 1994.?? D90 (c) 1994 Taito Corporation Japan (World)
2499bublbob2o       // 1994.?? D90 (c) 1994 Taito Corporation Japan (World)
25002495bublbob2p       // prototype
25012496bubsymphe       // 1994.?? D90 (c) 1994 Taito Corporation Japan (Europe)
25022497bubsymphu       // 1994.10 D90 (c) 1994 Taito America Corporation (US)
r248538r248539
57355730            // 2004.12 Sega Network Taisen Mahjong MJ 2 (Rev D)
57365731ghostsqu        // 2004.12.09 Ghost Squad (Rev A)
57375732            // 2005.02 Sega Network Taisen Mahjong MJ 2 (Rev E)
5738mj2             // 2005.02 Sega Network Taisen Mahjong MJ 2 (Rev F)
5739mj2g            // 2005.02.02 Sega Network Taisen Mahjong MJ 2 (Rev G)
5733mj2f            // 2005.02 Sega Network Taisen Mahjong MJ 2 (Rev F)
5734mj2             // 2005.02.02 Sega Network Taisen Mahjong MJ 2 (Rev G)
57405735            // 2005.03 Sangokushi Taisen
57415736gundamos        // 2005.03 Gundam Battle Operating Simulator
57425737            // 2005.04 Quest of D Ver.1.20
r248538r248539
71387133roadblstc       // 136048           (c) 1986, 1987
71397134roadblstcg      // 136048           (c) 1986, 1987
71407135roadblstc1      // 136048           (c) 1986, 1987
7141roadblstgu      // 136048         (c) 1986, 1987
71427136
71437137// Atari System 2 games
71447138// Paperboy
r248538r248539
81858179mkyawdim        // bootleg
81868180mkyawdim2       // bootleg
81878181mkyawdim3       // bootleg
8188mkyawdim4       // bootleg
81898182term2           // (c) 1992 Midway
81908183term2la3        // (c) 1992 Midway
81918184term2la2        // (c) 1992 Midway
r248538r248539
82728265sfrushrk        // (c) 1996 Atari Games
82738266calspeed        // (c) 1996 Atari Games
82748267calspeeda       // (c) 1996 Atari Games
8275calspeedb       // (c) 1996 Atari Games
82768268vaportrx        // (c) 1998 Atari Games
82778269vaportrxp       // (c) 1998 Atari Games
82788270carnevil        // (c) 1998 Midway Games (v1.0.3)
r248538r248539
82818273blitz           // (c) 1997 Midway Games
82828274blitz11         // (c) 1997 Midway Games
82838275blitz99         // (c) 1998 Midway Games
8284blitz99a      // (c) 1998 Midway Games
82858276blitz2k         // (c) 1999 Midway Games
82868277hyprdriv        // (c) 1998 Midway Games
82878278
r248538r248539
82968287warfa           // (c) 1999 Atari Games
82978288nbashowt        // (c) 1998 Midway Games
82988289nbanfl          // (c) 1999 Midway Games
8299nbagold      // (c) 2000 Midway Games
83008290gauntdl         // (c) 1999 Midway Games
83018291gauntdl24       // (c) 1999 Midway Games
83028292cartfury        // (c) 2000 Midway Games
r248538r248539
84868476panicrg         // Seibu / TV-Tuning (Germany)
84878477deadang         // (c) 1988 Seibu Kaihatsu
84888478leadang         // (c) 1988 Seibu Kaihatsu
8489ghunter         // (c) 1988 Seibu Kaihatsu
8490ghunters        // (c) 1988 Seibu Kaihatsu + Segasa/Sonic license
8479ghunter         // (c) 1988 Seibu Kaihatsu + Segasa/Sonic license
84918480dynduke         // (c) 1989 Seibu Kaihatsu
84928481dyndukea        // (c) 1989 Seibu Kaihatsu
84938482dyndukej        // (c) 1989 Seibu Kaihatsu
r248538r248539
88008789pspikesu        // (c) 1991 Video System Co. (US)
88018790svolly91        // (c) 1991 Video System Co. (Japan)
88028791pspikesb        // bootleg
8803pspikesba      // bootleg
88048792spikes91        // bootleg
88058793spikes91b       // bootleg
88068794pspikesc        // bootleg
r248538r248539
1061710605bestri          // (c) F2 System
1061810606silvmil         // (c) 1995 Para
1061910607puzzlove        // (c) 1994 Para
10620puzzlovek       // (c) 1994 Para
1062110608funybubl        // (c) 1999 In Chang Electronic Co
1062210609funybublc       // (c) 1999 Comad Industries
1062310610dcheese         // (c) 1993 HAR
trunk/src/mame/audio/nl_kidniki.c
r248538r248539
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
1824#define LM324_DIP(_name)                                                   \
1925      NET_REGISTER_DEV(LM324_DIP, _name)
2026
r248538r248539
113119
114120   LM324_DIP(XU1)
115121   LM358_DIP(XU2)
122   //SUBMODEL(LM324_DIP,XU1)
123   //SUBMODEL(LM358_DIP,XU2)
116124
117125   MC14584B_DIP(XU3)
118126
r248538r248539
211219   NET_C(XU3.6, R105.1, R106.2)
212220   #if USE_FIXED_STV
213221   //FIXME: We should have a NET_C_REMOVE
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)
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)
215223   #else
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)
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)
217225   #endif
218226   NET_C(XU3.8, R108.1, R107.2)
219227   NET_C(XU3.9, R108.2, C77.1)
r248538r248539
222230   NET_C(XU3.12, R98.1, R97.2)
223231   NET_C(XU3.13, R98.2, C68.1)
224232   #if USE_FIXED_STV
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)
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)
226234   #else
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)
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)
228236   #endif
229237   NET_C(R96.1, R102.1, R106.1, R107.1, R101.1, R97.1, R65.1, C63.2)
230238   NET_C(C63.1, R65_1.2)
r248538r248539
437445   ALIAS( 8, op1.VCC)
438446NETLIST_END()
439447
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
440471NETLIST_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()
441478
442479   LOCAL_LIB_ENTRY(LM324_DIP)
443480   LOCAL_LIB_ENTRY(LM358_DIP)
481   LOCAL_LIB_ENTRY(MC14584B_DIP)
444482
445483NETLIST_END()
446484
trunk/src/mame/drivers/4enraya.c
r248538r248539
442442
443443   MCFG_GFXDECODE_ADD("gfxdecode", "palette", 4enraya)
444444
445   MCFG_PALETTE_ADD_3BIT_RGB("palette")
445   MCFG_PALETTE_ADD("palette", 8)
446   MCFG_PALETTE_INIT_OWNER(_4enraya_state, _4enraya)
446447
447448   /* sound hardware */
448449   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/aerofgt.c
r248538r248539
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
20522018/*
20532019
205420201991 Spikes (Italian bootleg)
r248538r248539
27262692GAME( 1990, spinlbrku,spinlbrk, spinlbrk, spinlbrku, driver_device,0, ROT0,   "V-System Co.",     "Spinal Breakers (US)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
27272693GAME( 1990, spinlbrkj,spinlbrk, spinlbrk, spinlbrk, driver_device, 0, ROT0,   "V-System Co.",     "Spinal Breakers (Japan)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
27282694
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
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
27392704
27402705GAME( 1991, karatblz, 0,        karatblz, karatblz, driver_device, 0, ROT0,   "Video System Co.", "Karate Blazers (World)", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL )
27412706GAME( 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
r248538r248539
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) ) /* is this bad? it just seems to be missing upper nibbles and hence some of the planes? */
817   ROM_LOAD_BIOS(2, "136032.107.b2", 0x00000, 0x02000, CRC(315e4bea) SHA1(a00ea23fbdbf075f8f3f184275be83387e8ac82b) )
818818
819819#define MOTHERBOARD_PROMS                                                                                              \
820820   ROM_LOAD_BIOS(0, "136032.101.e3",     0x00000, 0x00100, CRC(7e84972a) SHA1(84d422b53547271e3a07342704a05ef481db3f99) ) \
r248538r248539
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*/
17611755
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
18361756ROM_START( roadblst3 )
18371757   ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
18381758   MOTHERBOARD_BIOS
r248538r248539
22402160   MOTHERBOARD_PROMS
22412161ROM_END
22422162
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"
22462163
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
22512164ROM_START( roadblstcg )
22522165   ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
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
2166   MOTHERBOARD_BIOS
22562167   ROM_LOAD16_BYTE( "136048-1235.7p",  0x010000, 0x008000, CRC(58b2998f) SHA1(7e9f4ca2b15cf60c61e0615f214f9fcc518cb194) )
22572168   ROM_LOAD16_BYTE( "136048-1236.8p",  0x010001, 0x008000, CRC(02e23a40) SHA1(6525351669e95dab869c7adc7d992d12d9313aee) )
22582169   ROM_LOAD16_BYTE( "136048-1237.7r",  0x020000, 0x008000, CRC(5e0a7c5d) SHA1(fb3688fbadc05f96980c67f5446ccb250d20b1a3) )
r248538r248539
22662177   ROM_LOAD16_BYTE( "136048-2147.7k",  0x080000, 0x004000, CRC(5c1adf67) SHA1(53838a2f5059797991aa337a7bec32f7e694610a) )
22672178   ROM_LOAD16_BYTE( "136048-2148.8k",  0x080001, 0x004000, CRC(d9ac8966) SHA1(7d056c1eb8184b4261c5713b0d5799b2fd8bde2a) )
22682179
2269
22702180   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for 6502 code */
2271   ROM_LOAD( "136048-1149.c8",   0x4000, 0x4000, CRC(2e54f95e) SHA1(5056ddec3c88384ada1d2ee9b1532b9ba9f34e08) ) //
2272   ROM_LOAD( "136048-1150.d7",   0x8000, 0x8000, CRC(e89e7fc8) SHA1(d944bc27de2f2f675680c62d999cacf84a08fd4b) )
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) )
22732184
2274   ROM_REGION( 0x4000, "alpha", 0 )
2275   ROM_LOAD( "136032-120.p1",   0x00000, 0x04000, CRC(90a1950d) SHA1(fba32c255850312175d1e3c03d677ffb57e09e07) ) //
2185   ROM_REGION( 0x2000, "alpha", 0 )
2186   MOTHERBOARD_ALPHA
22762187
22772188   ROM_REGION( 0x380000, "tiles", ROMREGION_INVERT | ROMREGION_ERASEFF )
22782189   ROM_LOAD( "136048-1101.2s",  0x000000, 0x008000, CRC(fe342d27) SHA1(72deac16ab9b6b811f49d70d700d6bc3a904f9d5) )  /* bank 1, plane 0 */
r248538r248539
23102221   ROM_CONTINUE(                0x2b0000, 0x008000 )
23112222
23122223   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   
23202224   ROM_LOAD( "136048-1174.12d", 0x000000, 0x000200, CRC(db4a4d53) SHA1(c5468f3585ec9bc23c9ee990b3ae3738b0309823) )
23212225   ROM_LOAD( "136048-1173.2d",  0x000200, 0x000200, CRC(c80574af) SHA1(9a3dc83f70e79915ce0db3e6e69b5dcfee3acb6f) )
23222226
r248538r248539
23942298
23952299
23962300
2397
2398
2399
24002301/*************************************
24012302 *
24022303 *  Driver initialization
r248538r248539
24952396GAME( 1987, roadblstc,  roadblst, atarisy1, roadblst, atarisy1_state, roadb110, ROT0, "Atari Games", "Road Blasters (cockpit, rev 2)", 0 )
24962397GAME( 1987, roadblstcg, roadblst, atarisy1, roadblst, atarisy1_state, roadb109, ROT0, "Atari Games", "Road Blasters (cockpit, German, rev 1)", GAME_IMPERFECT_GRAPHICS )
24972398GAME( 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
r248538r248539
27782778   ROM_LOAD( "317-0374-jpn.pic", 0x000000, 0x004000, CRC(004f77a1) SHA1(bc5c6950293f3bff60bf7913d20a2046aa19ea69) )
27792779ROM_END
27802780
2781ROM_START( mj2 )
2781ROM_START( mj2f )
27822782   CHIHIRO_BIOS
27832783
27842784   DISK_REGION( "gdrom" )
r248538r248539
28042804track02.raw 750 2101    3179904
28052805track03.bin 45150   549299  1185760800
28062806*/
2807ROM_START( mj2g )
2807ROM_START( mj2 )
28082808   CHIHIRO_BIOS
28092809
28102810   DISK_REGION( "gdrom" )
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) )
2811   DISK_IMAGE_READONLY( "gdx-0006g", 0, SHA1(e306837d5c093fdf1e9ff02239a8563535b1c181) )
28132812
28142813   ROM_REGION( 0x4000, "pic", ROMREGION_ERASEFF)
28152814   ROM_LOAD( "317-0374-jpn.pic", 0x000000, 0x004000, CRC(004f77a1) SHA1(bc5c6950293f3bff60bf7913d20a2046aa19ea69) )
r248538r248539
30002999/* 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 )
30013000// 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 )
30023001// 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 )
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 )
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 )
30053004/* 0007  */ GAME( 2004, ollie,    chihiro,  chihirogd,    chihiro, driver_device, 0, ROT0, "Sega / Amusement Vision",  "Ollie King (GDX-0007)", GAME_NO_SOUND|GAME_NOT_WORKING )
30063005// 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 )
30073006// 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
r248538r248539
2020
2121Clocks
2222------
23Top board - SEI-8712A
23Top board
2424Two crystals on top board 12MHz and 16MHz
2525V30(x2) - both 8MHz [16/2]
2626
27Bottom board - SEI-8712B
27Bottom board
2828One crystal on bottom board 14.31818MHz
2929Z80 - 3.579545MHz [14.31818/4]
3030OKI M5205(x2) - 375kHz [12/32]
r248538r248539
3333VSync 60Hz
3434HSync 15.37kHz
3535
36Gang Hunter as an additional daughter card attached to the top board call SEI-8712 GUN
37
38362008-08
3937Dip locations and factory settings verified with US manual
4038
r248538r248539
166164   PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Controller ) ) PORT_DIPLOCATION("SW2:4")
167165   PORT_DIPSETTING(    0x0800, DEF_STR( Trackball ) )
168166   PORT_DIPSETTING(    0x0000, DEF_STR( Joystick ) )
169   
167
170168   PORT_START("TRACKX")
171169   PORT_BIT( 0x0fff, 0x0000, IPT_TRACKBALL_X ) PORT_SENSITIVITY(100) PORT_KEYDELTA(30) PORT_PLAYER(1)
172170
r248538r248539
279277   ROM_LOAD16_BYTE("3.21f",   0x0e0001, 0x10000, CRC(e784b1fa) SHA1(3f41d31e0b36b9a2fab5e9998bb4146dfa0a97eb) )
280278
281279   ROM_REGION( 0x100000, "sub", 0 ) /* v30 sub cpu */
282   ROM_LOAD16_BYTE("5.6b",   0x0e0000, 0x10000, CRC(9c69eb35) SHA1(d5a9714f279b71c419b4bae0f142c4cb1cc8d30e) )
283   ROM_LOAD16_BYTE("6.9b",   0x0e0001, 0x10000, CRC(34a44ce5) SHA1(621c69d8778d4c96ac3be06b033a5931a6a23da2) )
280   ROM_LOAD16_BYTE("5.6bh",   0x0e0000, 0x10000, CRC(9c69eb35) SHA1(d5a9714f279b71c419b4bae0f142c4cb1cc8d30e) )
281   ROM_LOAD16_BYTE("6.9b",    0x0e0001, 0x10000, CRC(34a44ce5) SHA1(621c69d8778d4c96ac3be06b033a5931a6a23da2) )
284282
285283   ROM_REGION( 0x20000, "audiocpu", 0 ) /* sound Z80 */
286284   ROM_LOAD( "13.b1", 0x000000, 0x02000, CRC(13b956fb) SHA1(f7c21ad5e988ac59073659a427b1fa66ff49b0c1) ) /* Encrypted */
r248538r248539
367365
368366ROM_START( ghunter )
369367   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 */
417368   ROM_LOAD16_BYTE("ggh-2.h18",   0x0c0000, 0x10000, CRC(7ccc6fee) SHA1(bccc283d82f080157f0521457b04fdd1d63caafe) )
418369   ROM_LOAD16_BYTE("ggh-4.h22",   0x0c0001, 0x10000, CRC(d1f23ad7) SHA1(2668729af797ccab52ac2bf519d43ab2fa9e54ce) )
419370   ROM_LOAD16_BYTE("ggh-1.f18",   0x0e0000, 0x10000, CRC(0d6ff111) SHA1(209d26170446b43d1d463737b447e30aaca614a7) )
r248538r248539
478429
479430/* Game Drivers */
480431
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 )
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 )
trunk/src/mame/drivers/dorachan.c
r248538r248539
1414#include "cpu/z80/z80.h"
1515
1616
17#define NUM_PENS    (8)
18
19
1720class dorachan_state : public driver_device
1821{
1922public:
r248538r248539
2124      : driver_device(mconfig, type, tag),
2225      m_videoram(*this, "videoram"),
2326      m_maincpu(*this, "maincpu"),
24      m_screen(*this, "screen"),
25      m_palette(*this, "palette"),
26      m_colors(*this, "colors") { }
27      m_screen(*this, "screen") { }
2728
2829   /* memory pointers */
2930   required_shared_ptr<UINT8> m_videoram;
r248538r248539
4041   UINT32 screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4142   required_device<cpu_device> m_maincpu;
4243   required_device<screen_device> m_screen;
43   required_device<palette_device> m_palette;
44   required_region_ptr<UINT8> m_colors;
4544};
4645
4746
r248538r248539
7776 *
7877 *************************************/
7978
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
8090UINT32 dorachan_state::screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
8191{
82   for (offs_t offs = 0; offs < m_videoram.bytes(); offs++)
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++)
83101   {
102      int i;
84103      UINT8 fore_color;
85104
86105      UINT8 x = offs >> 8 << 3;
87106      UINT8 y = offs & 0xff;
88107
89      /* the need for +1 is extremely unusual, but definitely correct */
108      /* the need for +1 is extremely unusual, but definetely correct */
90109      offs_t color_address = ((((offs << 2) & 0x03e0) | (offs >> 8)) + 1) & 0x03ff;
91110
92111      UINT8 data = m_videoram[offs];
93112
94113      if (m_flip_screen)
95         fore_color = (m_colors[color_address] >> 3) & 0x07;
114         fore_color = (color_map_base[color_address] >> 3) & 0x07;
96115      else
97         fore_color = (m_colors[color_address] >> 0) & 0x07;
116         fore_color = (color_map_base[color_address] >> 0) & 0x07;
98117
99      for (int i = 0; i < 8; i++)
118      for (i = 0; i < 8; i++)
100119      {
101120         UINT8 color = (data & 0x01) ? fore_color : 0;
102         bitmap.pix32(y, x) = m_palette->pen_color(color);
121         bitmap.pix32(y, x) = pens[color];
103122
104123         data = data >> 1;
105124         x = x + 1;
r248538r248539
219238}
220239
221240static MACHINE_CONFIG_START( dorachan, dorachan_state )
241
222242   /* basic machine hardware */
223243   MCFG_CPU_ADD("maincpu", Z80, 2000000)
224244   MCFG_CPU_PROGRAM_MAP(dorachan_map)
225245   MCFG_CPU_IO_MAP(dorachan_io_map)
226246   MCFG_CPU_PERIODIC_INT_DRIVER(dorachan_state, irq0_line_hold, 2*60)
227247
248
228249   /* video hardware */
229250   MCFG_SCREEN_ADD("screen", RASTER)
230251   MCFG_SCREEN_SIZE(32*8, 32*8)
r248538r248539
232253   MCFG_SCREEN_REFRESH_RATE(60)
233254   MCFG_SCREEN_UPDATE_DRIVER(dorachan_state, screen_update_dorachan)
234255
235   MCFG_PALETTE_ADD_3BIT_BGR("palette")
236256MACHINE_CONFIG_END
237257
238258
r248538r248539
259279   ROM_LOAD( "d12.rom",    0x7000, 0x0400, CRC(275e5dc1) SHA1(ac07db4b428daa49a52c679de95ddedbea0076b9) )
260280   ROM_LOAD( "d13.rom",    0x7400, 0x0400, CRC(24ccfcf9) SHA1(85e5052ee657f518b0509eb64e494bc3a74e651e) )
261281
262   ROM_REGION( 0x0400, "colors", 0 )
282   ROM_REGION( 0x0400, "proms", 0 )  /* color map */
263283   ROM_LOAD( "d14.rom",    0x0000, 0x0400, CRC(c0d3ee84) SHA1(f2207c685ce8d5144a373c28f11d2cebf9518b65) )
264284ROM_END
265285
trunk/src/mame/drivers/enigma2.c
r248538r248539
5555#define INT_TRIGGER_COUNT_2 (0x18f)
5656
5757
58#define NUM_PENS    (8)
59
60
5861class enigma2_state : public driver_device
5962{
6063public:
r248538r248539
6366      m_videoram(*this, "videoram"),
6467      m_maincpu(*this, "maincpu"),
6568      m_audiocpu(*this, "audiocpu"),
66      m_screen(*this, "screen"),
67      m_palette(*this, "palette"),
68      m_colors(*this, "colors"),
69      m_stars(*this, "stars"){ }
69      m_screen(*this, "screen"){ }
7070
7171   /* memory pointers */
7272   required_shared_ptr<UINT8> m_videoram;
r248538r248539
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
9288   DECLARE_READ8_MEMBER(dip_switch_r);
9389   DECLARE_WRITE8_MEMBER(sound_data_w);
9490   DECLARE_WRITE8_MEMBER(enigma2_flip_screen_w);
r248538r248539
107103   inline int vysnc_chain_counter_to_vpos( UINT16 counter );
108104   void create_interrupt_timers(  );
109105   void start_interrupt_timers(  );
106   void get_pens(pen_t *pens);
110107};
111108
112109
r248538r248539
205202 *
206203 *************************************/
207204
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
208217UINT32 enigma2_state::screen_update_enigma2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
209218{
219   pen_t pens[NUM_PENS];
220
210221   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];
211225
212226   UINT8 x = 0;
213227   UINT16 bitmap_y = visarea.min_y;
r248538r248539
216230   UINT8 fore_color = 0;
217231   UINT8 star_color = 0;
218232
233   get_pens(pens);
234
219235   while (1)
220236   {
221237      UINT8 bit;
r248538r248539
225241      if ((x & 0x07) == 0x00)
226242      {
227243         offs_t color_map_address = (y >> 3 << 5) | (x >> 3);
228
229244         /* the schematics shows it like this, but it doesn't work as this would
230245            produce no stars, due to the contents of the PROM -- maybe there is
231246            a star disabled bit somewhere that's connected here instead of flip_screen() */
232247         /* star_map_address = (y >> 4 << 6) | (engima2_flip_screen_get() << 5) | (x >> 3); */
233248         offs_t star_map_address = (y >> 4 << 6) | 0x20 | (x >> 3);
234         if (m_blink_count & 0x08)
235            star_map_address |= 0x400;
236249
237250         offs_t videoram_address = (y << 5) | (x >> 3);
238251
239252         /* when the screen is flipped, all the video address bits are inverted,
240253            and the adder at 16A is activated */
241         if (m_flip_screen)
242         {
243            color_map_address |= 0x400;
244            videoram_address = (~videoram_address + 0x0400) & 0x1fff;
245         }
254         if (m_flip_screen)  videoram_address = (~videoram_address + 0x0400) & 0x1fff;
246255
247256         video_data = m_videoram[videoram_address];
248257
249         fore_color = m_colors[color_map_address] & 0x07;
250         star_color = m_stars[star_map_address] & 0x07;
258         fore_color = color_map_base[color_map_address] & 0x07;
259         star_color = star_map_base[star_map_address] & 0x07;
251260      }
252261
253262      /* plot the current pixel */
r248538r248539
268277         /* stars only appear at certain positions */
269278         color = ((x & y & 0x0f) == 0x0f) ? star_color : 0;
270279
271      bitmap.pix32(bitmap_y, x) = m_palette->pen_color(color);
280      bitmap.pix32(bitmap_y, x) = pens[color];
272281
273282      /* next pixel */
274283      x = x + 1;
r248538r248539
603612   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
604613   MCFG_SCREEN_UPDATE_DRIVER(enigma2_state, screen_update_enigma2)
605614
606   MCFG_PALETTE_ADD_3BIT_BGR("palette")
607
608615   /* audio hardware */
609616   MCFG_SPEAKER_STANDARD_MONO("mono")
610617
r248538r248539
655662   ROM_REGION( 0x10000, "audiocpu", 0 )
656663   ROM_LOAD( "enigma2.s",    0x0000, 0x1000, CRC(68fd8c54) SHA1(69996d5dfd996f0aacb26e397bef314204a2a88a) )
657664
658   ROM_REGION( 0x0800, "colors", 0 )
665   ROM_REGION( 0x1000, "proms", 0 )    /* color map/star map */
659666   ROM_LOAD( "7.11f",        0x0000, 0x0800, CRC(409b5aad) SHA1(1b774a70f725637458ed68df9ed42476291b0e43) )
660
661   ROM_REGION( 0x0800, "stars", 0 )
662   ROM_LOAD( "8.13f",        0x0000, 0x0800, CRC(e9cb116d) SHA1(41da4f46c5614ec3345c233467ebad022c6b0bf5) )
667   ROM_LOAD( "8.13f",        0x0800, 0x0800, CRC(e9cb116d) SHA1(41da4f46c5614ec3345c233467ebad022c6b0bf5) )
663668ROM_END
664669
665670
trunk/src/mame/drivers/kangaroo.c
r248538r248539
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
448446   /* sound hardware */
449447   MCFG_SPEAKER_STANDARD_MONO("mono")
450448   MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/8)
trunk/src/mame/drivers/m62.c
r248538r248539
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 | 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 )
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 )
trunk/src/mame/drivers/midyunit.c
r248538r248539
12191219
12201220   /* basic machine hardware */
12211221
1222   MCFG_CPU_ADD("audiocpu", Z80, XTAL_8MHz / 2)
1222   MCFG_CPU_ADD("audiocpu", Z80, 5000000)
12231223   MCFG_CPU_PROGRAM_MAP(yawdim_sound_map)
12241224
12251225   /* video hardware */
r248538r248539
12281228   MCFG_VIDEO_START_OVERRIDE(midyunit_state,mkyawdim)
12291229
12301230   /* sound hardware */
1231   MCFG_OKIM6295_ADD("oki", XTAL_8MHz / 8, OKIM6295_PIN7_HIGH)
1231   MCFG_OKIM6295_ADD("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
12321232   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
12331233MACHINE_CONFIG_END
12341234
r248538r248539
25612561
25622562ROM_START( mkyawdim2 )
25632563   ROM_REGION( 0x10000, "audiocpu", 0 )    /* sound CPU */
2564   // Differs from other mkyawdim set
2565   ROM_LOAD ( "yawdim.u167", 0x00000, 0x08000, CRC(16da7efb) SHA1(ac1db81a55aca36136b94977a91a1fc778b7b164) )
2566   ROM_CONTINUE(             0x00000, 0x08000 )
2564      // Differs from other yawdim set - sound doesn't want to work
2565   ROM_LOAD ( "yawdim.u167", 0x00000, 0x10000, CRC(16da7efb) SHA1(ac1db81a55aca36136b94977a91a1fc778b7b164) )
25672566
25682567   ROM_REGION( 0x100000, "oki", 0 )    /* ADPCM */
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 )
2568      // Half size as mkyawdim set
2569   ROM_LOAD( "yawdim.u159",  0x00000, 0x20000, CRC(95b120af) SHA1(41b6fb384e5048926b87959a2c58d96b95698aba) )
2570   ROM_CONTINUE(       0x40000, 0x20000 )
25742571   ROM_LOAD( "mw-15.u160",  0x20000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) )
2575   ROM_CONTINUE(            0x60000, 0x20000 )
2576   ROM_CONTINUE(            0xa0000, 0x20000 )
2577   ROM_CONTINUE(            0xe0000, 0x20000 )
2572   ROM_CONTINUE(       0x60000, 0x20000 )
2573   ROM_CONTINUE(       0xa0000, 0x20000 )
2574   ROM_CONTINUE(       0xe0000, 0x20000 )
25782575
25792576   ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */
25802577   ROM_LOAD16_BYTE( "4.u25",  0x00000, 0x80000, CRC(b12b3bf2) SHA1(deb7755e8407d9de25124b3fdbc4c834a25d8252) )
r248538r248539
25982595
25992596   ROM_REGION( 0x100000, "oki", 0 )    /* ADPCM */
26002597   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 )
26042598   ROM_LOAD( "14.bin",  0x20000, 0x20000, CRC(6e68e0b0) SHA1(edb7aa6507452ffa5ce7097e3b1855a69542971c) )
2605   ROM_CONTINUE(        0x60000, 0x20000 )
2606   ROM_CONTINUE(        0xa0000, 0x20000 )
2607   ROM_CONTINUE(        0xe0000, 0x20000 )
2599   ROM_CONTINUE(       0x60000, 0x20000 )
2600   ROM_CONTINUE(       0xa0000, 0x20000 )
2601   ROM_CONTINUE(       0xe0000, 0x20000 )
26082602
26092603   ROM_REGION16_LE( 0x100000, "user1", 0 ) /* 34010 code */
26102604   ROM_LOAD16_BYTE( "p1.bin",  0x00000, 0x80000, CRC(2337a0f9) SHA1(d25743e5bb7b4a60f181783d17f217aa0a64536a) ) // differs from other Yawdim sets
r248538r248539
26122606
26132607   ROM_REGION( 0x800000, "gfx1", 0 )
26142608   ROM_LOAD ( "12.bin",  0x000000, 0x80000, CRC(d17096c4) SHA1(01ef390a372c9d94adf138f9543ebb88b89f4c38) )
2615   ROM_LOAD ( "8.bin",  0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) )
2609   ROM_LOAD ( "8.bin",  0x080000, 0x80000, CRC(993bc2e4) SHA1(7791edbec2b4b8971a3e790346dd7564ecf16d5c) )
26162610   ROM_LOAD ( "10.bin",  0x100000, 0x80000, CRC(6fb91ede) SHA1(a3735b49f93b08c44fbc97e2b5aad394628fbe90) )
2617   ROM_LOAD ( "3.bin",  0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) )
2611   ROM_LOAD ( "3.bin",  0x180000, 0x80000, CRC(ed1ff88a) SHA1(6b090b658ee6148af953bd0c9216f37162b6460f) )
26182612
26192613   ROM_LOAD (  "6.bin",  0x200000, 0x80000, CRC(a002a155) SHA1(3cf7909e92bcd428063596fc5b9953e0000d6eca) )
26202614   ROM_LOAD (  "1.bin",  0x280000, 0x80000, CRC(dcee8492) SHA1(a912b74d3b26ebd1b1613cc631080f83ececeaf8) )
2621   ROM_LOAD (  "11.bin", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) )
2615   ROM_LOAD (  "11.bin", 0x300000, 0x80000, CRC(de88caef) SHA1(a7927b504dc56ca5c9048373977fe5743b0a3f0b) )
26222616   ROM_LOAD (  "2.bin",  0x380000, 0x80000, CRC(37eb01b4) SHA1(06092460bd137e08d0f8df8560942ed877d40e09) )
26232617
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) )
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) )
26282622ROM_END
26292623
26302624
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
27122625ROM_START( term2 )
27132626   ROM_REGION( 0x50000, "adpcm:cpu", 0 )   /* sound CPU */
27142627   ROM_LOAD (  "t2_snd.3", 0x10000, 0x20000, CRC(73c3f5c4) SHA1(978dd974590e77294dbe9a647aebd3d24af6397f) )
r248538r248539
29612874GAME( 1992, mknifty,  mk,       yunit_adpcm_6bit_fast,   mkla4, midyunit_state,    mkyturbo, ROT0, "hack",     "Mortal Kombat (Nifty Kombo, hack)", GAME_SUPPORTS_SAVE )
29622875GAME( 1992, mknifty666, mk,     yunit_adpcm_6bit_fast,   mkla4, midyunit_state,    mkyturbo, ROT0, "hack",     "Mortal Kombat (Nifty Kombo 666, hack)", GAME_SUPPORTS_SAVE )
29632876GAME( 1992, mkyawdim, mk,       mkyawdim,                mkyawdim, midyunit_state, mkyawdim, ROT0, "bootleg (Yawdim)", "Mortal Kombat (Yawdim bootleg, set 1)", GAME_SUPPORTS_SAVE )
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?
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
29672879
29682880GAME( 1992, totcarn,  0,        yunit_adpcm_6bit_fast,   totcarn, midyunit_state,  totcarn,  ROT0, "Midway",   "Total Carnage (rev LA1 03/10/92)", GAME_SUPPORTS_SAVE )
29692881GAME( 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
r248538r248539
6969      : driver_device(mconfig, type, tag),
7070      m_maincpu(*this, "maincpu"),
7171      m_screen(*this, "screen"),
72      m_palette(*this, "palette"),
7372      m_vram(*this, "vram"),
7473      m_tiles(*this, "tiles"),
7574      m_colors(*this, "colors"),
7675      m_ball_x(0x00),
7776      m_ball_y(0x00),
78      m_color(0x00)
77      m_color(0)
7978   {}
8079
8180   DECLARE_READ8_MEMBER(vblank_r);
r248538r248539
9291private:
9392   required_device<cpu_device> m_maincpu;
9493   required_device<screen_device> m_screen;
95   required_device<palette_device> m_palette;
9694   required_shared_ptr<UINT8> m_vram;
9795   required_region_ptr<UINT8> m_tiles;
9896   required_region_ptr<UINT8> m_colors;
9997
98   static const rgb_t m_palette[];
99
100100   UINT8 m_ball_x;
101101   UINT8 m_ball_y;
102   UINT8 m_color;
102
103   int m_color;
103104};
104105
105106
r248538r248539
156157   PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_UNUSED)
157158   PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_UNUSED)
158159   PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_UNUSED)
159   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Debug?") // checked once at startup
160   PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Debug?")   // debug? checked once at startup
160161
161162   PORT_START("paddle")
162   PORT_BIT(0xff, 0x80, IPT_PADDLE) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_CENTERDELTA(0)
163   PORT_BIT(0xff, 0x80, IPT_PADDLE) PORT_MINMAX(0x00,0xff) PORT_SENSITIVITY(30) PORT_KEYDELTA(30) PORT_CENTERDELTA(0)
163164INPUT_PORTS_END
164165
165166
r248538r248539
215216         {
216217            UINT8 gfx = m_tiles[(code << 4) + tx];
217218
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);
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];
222223
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);
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];
227228         }
228229      }
229230   }
r248538r248539
241242
242243
243244//**************************************************************************
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//**************************************************************************
244262//  AUDIO EMULATION
245263//**************************************************************************
246264
r248538r248539
279297   MCFG_SCREEN_RAW_PARAMS(XTAL_6_144MHz, 384, 0, 256, 264, 0, 192)
280298   MCFG_SCREEN_UPDATE_DRIVER(mmagic_state, screen_update)
281299
282   MCFG_PALETTE_ADD_3BIT_RGB("palette")
283
284300   // sound hardware
285301   // TODO: SN76477 + discrete sound
286302MACHINE_CONFIG_END
trunk/src/mame/drivers/namcond1.c
r248538r248539
7070
7171#include "emu.h"
7272#include "cpu/m68000/m68000.h"
73#include "video/ygv608.h"
7374#include "cpu/h8/h83002.h"
7475#include "includes/namcond1.h"
7576#include "sound/c352.h"
r248538r248539
7980
8081static ADDRESS_MAP_START( namcond1_map, AS_PROGRAM, 16, namcond1_state )
8182   AM_RANGE(0x000000, 0x0fffff) AM_ROM
82   AM_RANGE(0x400000, 0x40ffff) AM_RAM AM_SHARE("shared_ram")
83   AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(namcond1_shared_ram_r,namcond1_shared_ram_w) AM_SHARE("shared_ram")
8384   AM_RANGE(0x800000, 0x80000f) AM_DEVREADWRITE("ygv608", ygv608_device, read, write)
8485   AM_RANGE(0xa00000, 0xa00fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0xff00)
8586#ifdef MAME_DEBUG
8687   AM_RANGE(0xb00000, 0xb00001) AM_DEVREAD("ygv608", ygv608_device, debug_trigger_r)
8788#endif
88   AM_RANGE(0xc3ff00, 0xc3ffff) AM_READWRITE(cuskey_r,cuskey_w)
89   AM_RANGE(0xc3ff00, 0xc3ffff) AM_READWRITE(namcond1_cuskey_r,namcond1_cuskey_w)
8990ADDRESS_MAP_END
9091
9192/*************************************************************/
r248538r248539
222223   GFXDECODE_ENTRY( "gfx1", 0x00000000, pts_16x16_8bits_layout,  0, 256 )
223224GFXDECODE_END
224225
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
225237READ16_MEMBER(namcond1_state::mcu_p7_read)
226238{
227239   return 0xff;
r248538r248539
240252/* H8/3002 MCU stuff */
241253static ADDRESS_MAP_START( nd1h8rwmap, AS_PROGRAM, 16, namcond1_state )
242254   AM_RANGE(0x000000, 0x07ffff) AM_ROM
243   AM_RANGE(0x200000, 0x20ffff) AM_RAM AM_SHARE("shared_ram")
255   AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(sharedram_sub_r, sharedram_sub_w )
244256   AM_RANGE(0xa00000, 0xa07fff) AM_DEVREADWRITE("c352", c352_device, read, write)
245257   AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("DSW")
246258   AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("P1_P2")
r248538r248539
397409   ROM_LOAD( "ncs1voic.7c",     0x000000, 0x200000, CRC(ed05fd88) SHA1(ad88632c89a9946708fc6b4c9247e1bae9b2944b) )
398410ROM_END
399411
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 )
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 )
trunk/src/mame/drivers/namcos1.c
r248538r248539
353353
354354READ8_MEMBER(namcos1_state::dsw_r)
355355{
356   int ret = m_io_dipsw->read();
356   int ret = ioport("DIPSW")->read();
357357   if (!(offset & 2)) ret >>= 4;
358358   return 0xf0 | ret;
359359}
r248538r248539
871871      //  Allow "CPU #0&1 Kick Watchdog in IRQ" = _____oo_
872872      //                                          12345678
873873   #endif
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")
874   PORT_DIPNAME( 0x20, 0x20, "Stage Select (ver. SH3 only)" )
882875   PORT_DIPSETTING(    0x20, DEF_STR( Off ) )
883876   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
884877INPUT_PORTS_END
r248538r248539
28432836GAME( 1988, mmaze,     0,        ns1,     mmaze,    namcos1_state, alice,    ROT180, "Namco", "Marchen Maze (Japan)", GAME_SUPPORTS_SAVE )
28442837GAME( 1988, bakutotu,  0,        ns1,     bakutotu, namcos1_state, bakutotu, ROT180, "Namco", "Bakutotsu Kijuutei", GAME_SUPPORTS_SAVE )
28452838GAME( 1988, wldcourt,  0,        ns1,     wldcourt, namcos1_state, wldcourt, ROT180, "Namco", "World Court (Japan)", GAME_SUPPORTS_SAVE )
2846GAME( 1988, splatter,  0,        ns1,     splatter3,namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, new version (SH3))", GAME_SUPPORTS_SAVE )
2839GAME( 1988, splatter,  0,        ns1,     splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, new version (SH3))", GAME_SUPPORTS_SAVE )
28472840GAME( 1988, splatter2, splatter, ns1,     splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (World, old version (SH2))", GAME_SUPPORTS_SAVE )
28482841GAME( 1988, splatterj, splatter, ns1,     splatter, namcos1_state, splatter, ROT180, "Namco", "Splatter House (Japan, SH1)", GAME_SUPPORTS_SAVE )
28492842GAME( 1988, faceoff,   0,        ns1,     faceoff,  namcos1_state, faceoff,  ROT180, "Namco", "Face Off (Japan)", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/nbmj8891.c
r248538r248539
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
36633644ROM_START( mjcamerb )
36643645   ROM_REGION( 0x10000, "maincpu", 0 ) /* program */
36653646   ROM_LOAD( "2.3h",        0x00000, 0x10000, CRC(3a0f110b) SHA1(8923136ed25ed91c90f93c3f75f5532ff8f9d420) )
r248538r248539
38763857GAME( 1990, club90s,   0,        club90s,  club90s,  driver_device,         0, ROT0,   "Nichibutsu", "Mahjong CLUB 90's (set 1) (Japan 900919)", GAME_SUPPORTS_SAVE )
38773858GAME( 1990, club90sa,  club90s,  club90s,  club90s,  driver_device,         0, ROT0,   "Nichibutsu", "Mahjong CLUB 90's (set 2) (Japan 900919)", GAME_SUPPORTS_SAVE )
38783859GAME( 1990, lovehous,  club90s,  lovehous, lovehous, driver_device,         0, ROT0,   "Nichibutsu", "Mahjong Love House [BET] (Japan 901024)", 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 )
3860GAME( 1991, hanaoji,   0,        hanaoji,  hanaoji,  driver_device,         0, ROT0,   "Nichibutsu", "Hana to Ojisan [BET] (Japan 911209)", GAME_SUPPORTS_SAVE )
38813861GAME( 1988, taiwanmb,  0,        taiwanmb, taiwanmb, driver_device,         0, ROT0,   "Miki Syouji", "Taiwan Mahjong [BET] (Japan 881208)", GAME_SUPPORTS_SAVE )
38823862GAME( 1989, pairsnb,   0,        pairsnb, pairsnb,  nbmj8891_state,  pairsnb,  ROT0,   "Nichibutsu", "Pairs (Nichibutsu) (Japan 890822)", GAME_SUPPORTS_SAVE )
38833863GAME( 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
r248538r248539
8484#define AUDIO_CPU_2_CLOCK           AUDIO_2_MASTER_CLOCK
8585
8686
87#define NUM_PENS       8
88
8789class nyny_state : public driver_device
8890{
8991public:
r248538r248539
98100      m_audiocpu2(*this, "audio2"),
99101      m_ic48_1(*this, "ic48_1"),
100102      m_mc6845(*this, "crtc"),
101      m_palette(*this, "palette"),
102103      m_pia1(*this, "pia1"),
103104      m_pia2(*this, "pia2") { }
104105
r248538r248539
120121   required_device<cpu_device> m_audiocpu2;
121122   required_device<ttl74123_device> m_ic48_1;
122123   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];
127128   DECLARE_WRITE8_MEMBER(audio_1_command_w);
128129   DECLARE_WRITE8_MEMBER(audio_1_answer_w);
129130   DECLARE_WRITE8_MEMBER(audio_2_command_w);
r248538r248539
142143   DECLARE_WRITE8_MEMBER(ic48_1_74123_output_changed);
143144   inline void shift_star_generator(  );
144145
146   MC6845_BEGIN_UPDATE(crtc_begin_update);
145147   MC6845_UPDATE_ROW(crtc_update_row);
146148   MC6845_END_UPDATE(crtc_end_update);
147149};
r248538r248539
246248}
247249
248250
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
249261MC6845_UPDATE_ROW( nyny_state::crtc_update_row )
250262{
251263   UINT8 x = 0;
r248538r248539
295307         else
296308            color = bit2 ? color2 : 0;
297309
298         bitmap.pix32(y, x) = m_palette->pen_color(color);
310         bitmap.pix32(y, x) = m_pens[color];
299311
300312         x += 1;
301313      }
r248538r248539
321333      for (int x = cliprect.min_x; x <= cliprect.max_x; x++)
322334      {
323335         /* check if the star status */
324         if (m_star_enable && (bitmap.pix32(y, x) == m_palette->pen_color(0)) &&
336         if (m_star_enable && (bitmap.pix32(y, x) == m_pens[0]) &&
325337            ((m_star_shift_reg & 0x80ff) == 0x00ff) &&
326338            (((y & 0x01) ^ m_flipscreen) ^ (((x & 0x08) >> 3) ^ m_flipscreen)))
327339         {
r248538r248539
329341                        ((m_star_shift_reg & 0x0400) >>  9) |    /* G */
330342                        ((m_star_shift_reg & 0x1000) >> 10);     /* B */
331343
332            bitmap.pix32(y, x) = m_palette->pen_color(color);
344            bitmap.pix32(y, x) = m_pens[color];
333345         }
334346
335347         if (delay_counter == 0)
r248538r248539
597609   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 256, 0, 256, 256, 0, 256)   /* temporary, CRTC will configure screen */
598610   MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
599611
600   MCFG_PALETTE_ADD_3BIT_RGB("palette")
601
602612   MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK)
603613   MCFG_MC6845_SHOW_BORDER_AREA(false)
604614   MCFG_MC6845_CHAR_WIDTH(8)
615   MCFG_MC6845_BEGIN_UPDATE_CB(nyny_state, crtc_begin_update)
605616   MCFG_MC6845_UPDATE_ROW_CB(nyny_state, crtc_update_row)
606617   MCFG_MC6845_END_UPDATE_CB(nyny_state, crtc_end_update)
607618   MCFG_MC6845_OUT_DE_CB(WRITELINE(nyny_state, display_enable_changed))
trunk/src/mame/drivers/phoenix.c
r248538r248539
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
902879ROM_START( falconz )
903880   ROM_REGION( 0x10000, "maincpu", 0 )
904881   ROM_LOAD( "f45.bin",      0x0000, 0x0800, CRC(9158b43b) SHA1(222cbcfb3f95d09bb90148813541c2613d8b7e1c) )
r248538r248539
1021998   ROM_LOAD( "mmi6301.ic41",   0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )  /* palette high bits */
1022999ROM_END
10231000
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
10491001ROM_START( griffon )
10501002   ROM_REGION( 0x10000, "maincpu", 0 )
10511003   ROM_LOAD( "griffon0.a5",  0x0000, 0x0800, CRC(c0f73929) SHA1(3cecf8341a5674165d2cae9b22ea5db26a9597de) )
r248538r248539
11211073   ROM_LOAD( "mmi6301.ic41",   0x0100, 0x0100, CRC(e176b768) SHA1(e2184dd495ed579f10b6da0b78379e02d7a6229f) )  /* palette high bits */
11221074ROM_END
11231075
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) )
11341076
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
11491077ROM_START( pleiads )
11501078   ROM_REGION( 0x10000, "maincpu", 0 )
11511079   ROM_LOAD( "ic47.r1",      0x0000, 0x0800, CRC(960212c8) SHA1(52a3232e99920805ce9e195b8a6338ae7044dd18) )
r248538r248539
13461274   m_maincpu->space(AS_PROGRAM).install_read_port(0x5000, 0x5000, "DSW1");
13471275}
13481276
1349DRIVER_INIT_MEMBER(phoenix_state,vautourza)
1350{
1351   UINT8 *rgn          =   memregion("proms")->base();
13521277
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}
13601278
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 )
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 )
13741291// the following 2 were common bootlegs in england & france respectively
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
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 )
13811296// fenix is an italian bootleg based on vautourz
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 )
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 )
13841299// nextfase is a spanish bootleg
1385GAME( 1981, nextfase, phoenix,  phoenix,  nextfase, driver_device, 0,        ROT90, "bootleg (Petaco S.A.)",             "Next Fase (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
1300GAME( 1981, nextfase, phoenix,  phoenix,  nextfase, driver_device, 0,        ROT90, "bootleg (Petaco S.A.)", "Next Fase (bootleg of Phoenix)", GAME_SUPPORTS_SAVE )
13861301// as is this
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'
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'
13901304GAME( 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 )
13921305
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 )
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 )
14011313
1402/*** Others ***/
1403GAME( 1982, survival, 0,        survival, survival, driver_device, 0,        ROT90, "Rock-Ola",                          "Survival", GAME_IMPERFECT_COLORS )
1314GAME( 1982, survival, 0,        survival, survival, driver_device, 0,        ROT90, "Rock-Ola", "Survival", GAME_IMPERFECT_COLORS )
trunk/src/mame/drivers/photon2.c
r248538r248539
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_speaker(*this, "speaker"),
25      m_spectrum_video_ram(*this, "spectrum_vram") { }
24      m_spectrum_video_ram(*this, "spectrum_vram"),
25      m_speaker(*this, "speaker"){ }
2626
2727   required_device<cpu_device> m_maincpu;
28   required_device<speaker_sound_device> m_speaker;
29
3028   required_shared_ptr<UINT8> m_spectrum_video_ram;
31
3229   int m_spectrum_frame_number;
3330   int m_spectrum_flash_invert;
3431   UINT8 m_spectrum_port_fe;
3532   UINT8 m_nmi_enable;
3633
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();
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();
4339   virtual void video_start();
4440   DECLARE_PALETTE_INIT(photon2);
45
4641   UINT32 screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4742   void screen_eof_spectrum(screen_device &screen, bool state);
48
4943   TIMER_DEVICE_CALLBACK_MEMBER(spec_interrupt_hack);
44   required_device<speaker_sound_device> m_speaker;
5045};
5146
5247
r248538r248539
105100{
106101   m_spectrum_frame_number = 0;
107102   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));
112103}
113104
114105#if 0
r248538r248539
196187 *
197188 *************************************/
198189
199WRITE8_MEMBER(photon2_state::membank_w)
190WRITE8_MEMBER(photon2_state::photon2_membank_w)
200191{
201192   int bank = 0;
202193   if (data == 0)
r248538r248539
216207      logerror( "Unknown banking write: %02X\n", data);
217208   }
218209
219   membank("mainbank")->set_entry(bank);
210   membank("bank1")->set_base(memregion("maincpu")->base() + 0x4000*bank );
220211}
221212
222READ8_MEMBER(photon2_state::fe_r)
213READ8_MEMBER(photon2_state::photon2_fe_r)
223214{
224215   return 0xff;
225216}
226217
227WRITE8_MEMBER(photon2_state::fe_w)
218WRITE8_MEMBER(photon2_state::photon2_fe_w)
228219{
229220   m_spectrum_port_fe = data;
230221   m_speaker->level_w(BIT(data,4));
231222}
232223
233WRITE8_MEMBER(photon2_state::misc_w)
224WRITE8_MEMBER(photon2_state::photon2_misc_w)
234225{
235226   m_nmi_enable = !BIT(data,5);
236227}
r248538r248539
242233 *************************************/
243234
244235static ADDRESS_MAP_START (spectrum_mem, AS_PROGRAM, 8, photon2_state )
245   AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("mainbank")
236   AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("bank1")
246237   AM_RANGE(0x4000, 0x5aff) AM_RAM AM_SHARE("spectrum_vram")
247238   AM_RANGE(0x5b00, 0xffff) AM_RAM
248239ADDRESS_MAP_END
r248538r248539
250241static ADDRESS_MAP_START (spectrum_io, AS_IO, 8, photon2_state )
251242   ADDRESS_MAP_GLOBAL_MASK(0xff)
252243   AM_RANGE(0x1f, 0x1f) AM_READ_PORT("JOY")
253   AM_RANGE(0x5b, 0x5b) AM_READ_PORT("COIN") AM_WRITE(misc_w)
254   AM_RANGE(0x7a, 0x7a) AM_WRITE(membank_w)
244   AM_RANGE(0x5b, 0x5b) AM_READ_PORT("COIN") AM_WRITE(photon2_misc_w)
245   AM_RANGE(0x7a, 0x7a) AM_WRITE(photon2_membank_w)
255246   AM_RANGE(0x7b, 0x7b) AM_WRITENOP // unknown write
256   AM_RANGE(0x7e, 0x7e) AM_WRITE(membank_w)
257   AM_RANGE(0xfe, 0xfe) AM_READWRITE(fe_r, fe_w)
247   AM_RANGE(0x7e, 0x7e) AM_WRITE(photon2_membank_w)
248   AM_RANGE(0xfe, 0xfe) AM_READWRITE(photon2_fe_r, photon2_fe_w)
258249ADDRESS_MAP_END
259250
260251/*************************************
r248538r248539
325316   }
326317}
327318
328void photon2_state::machine_start()
319void photon2_state::machine_reset()
329320{
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));
321   membank("bank1")->set_base(memregion("maincpu")->base());
334322}
335323
336324static MACHINE_CONFIG_START( photon2, photon2_state )
r248538r248539
395383   ROM_LOAD( "brod13.bin", 0xa000, 0x2000, CRC(1177cd17) SHA1(58c5c09a7b857ce6311339c4d0f4d8c1a7e232a3) )
396384ROM_END
397385
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
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
trunk/src/mame/drivers/qix.c
r248538r248539
10061006ROM_END
10071007
10081008
1009ROM_START( zookeep ) // note on the zookeeper boardset Taito USA made very sure that every ROM has the same name as the socket it is in!
1010   ROM_REGION( 0x10000, "maincpu", 0 ) // roms on the 'SDU board'
1011   ROM_LOAD( "za12.u12",    0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
1012   ROM_LOAD( "za13.u13",    0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
1013   ROM_LOAD( "za14.u14",    0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
1014   ROM_LOAD( "za15.u15",    0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
1015   ROM_LOAD( "za16.u16",    0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
1016   ROM_LOAD( "za17.u17",    0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
1017   ROM_LOAD( "za18.u18",    0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
1018   ROM_LOAD( "za19.u19",    0xf000, 0x1000, CRC(bbfb30d9) SHA1(bc6bd5525b159bee7b08b6967cd3088b7bd10fee) )
1009ROM_START( zookeep )
1010   ROM_REGION( 0x10000, "maincpu", 0 )
1011   ROM_LOAD( "za12", 0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
1012   ROM_LOAD( "za13", 0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
1013   ROM_LOAD( "za14", 0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
1014   ROM_LOAD( "za15", 0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
1015   ROM_LOAD( "za16", 0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
1016   ROM_LOAD( "za17", 0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
1017   ROM_LOAD( "za18", 0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
1018   ROM_LOAD( "za19", 0xf000, 0x1000, CRC(bbfb30d9) SHA1(bc6bd5525b159bee7b08b6967cd3088b7bd10fee) )
10191019
1020   ROM_REGION( 0x12000, "videocpu", 0 ) // roms on the 08-00112-001 'video rom expansion' PCB
1021   ROM_LOAD( "za5.u5",  0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
1022   ROM_LOAD( "za3.u3",  0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
1023   ROM_LOAD( "za6.u6",  0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
1024   ROM_LOAD( "za4.u4",  0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
1020   ROM_REGION( 0x12000, "videocpu", 0 )
1021   ROM_LOAD( "za5",  0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
1022   ROM_LOAD( "za3",  0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
1023   ROM_LOAD( "za6",  0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
1024   ROM_LOAD( "za4",  0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
10251025
1026   ROM_LOAD( "za7.u7",  0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
1027   ROM_LOAD( "za8.u8",  0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
1028   ROM_LOAD( "za9.u9",  0x0e000, 0x1000, CRC(a4f7d9e0) SHA1(a958b4d305bb397aa46d8fdab9dc7e472237ca11) )
1029   ROM_LOAD( "za10.u10", 0x0f000, 0x1000, CRC(05df1a5a) SHA1(30797838c25cca038023c188cd9fa45277c4190d) )
1026   ROM_LOAD( "za7",  0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
1027   ROM_LOAD( "za8",  0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
1028   ROM_LOAD( "za9",  0x0e000, 0x1000, CRC(a4f7d9e0) SHA1(a958b4d305bb397aa46d8fdab9dc7e472237ca11) )
1029   ROM_LOAD( "za10", 0x0f000, 0x1000, CRC(05df1a5a) SHA1(30797838c25cca038023c188cd9fa45277c4190d) )
10301030
1031   ROM_REGION( 0x10000, "audiocpu", 0 ) // roms on the 'SDU board'
1032   ROM_LOAD( "za25.u25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
1033   ROM_LOAD( "za26.u26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
1034   ROM_LOAD( "za27.u27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
1031   ROM_REGION( 0x10000, "audiocpu", 0 )
1032   ROM_LOAD( "za25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
1033   ROM_LOAD( "za26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
1034   ROM_LOAD( "za27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
10351035
1036   ROM_REGION( 0x0800, "mcu", 0 ) // mc68705p3, this is on its own pcb between the coin inputs and the main pcb
1036   ROM_REGION( 0x0800, "mcu", 0 )
10371037   ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) )
10381038ROM_END
10391039
10401040
10411041ROM_START( zookeep2 )
1042   ROM_REGION( 0x10000, "maincpu", 0 ) // roms on the 'SDU board'
1043   ROM_LOAD( "za12.u12",    0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
1044   ROM_LOAD( "za13.u13",    0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
1045   ROM_LOAD( "za14.u14",    0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
1046   ROM_LOAD( "za15.u15",    0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
1047   ROM_LOAD( "za16.u16",    0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
1048   ROM_LOAD( "za17.u17",    0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
1049   ROM_LOAD( "za18.u18",    0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
1050   ROM_LOAD( "za19.red.u19", 0xf000, 0x1000, CRC(ec01760e) SHA1(169ab9d3a0abe325d960f9ed358258b3d6fcd4be) ) // ?updated? rom?
1042   ROM_REGION( 0x10000, "maincpu", 0 )
1043   ROM_LOAD( "za12",     0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
1044   ROM_LOAD( "za13",     0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
1045   ROM_LOAD( "za14",     0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
1046   ROM_LOAD( "za15",     0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
1047   ROM_LOAD( "za16",     0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
1048   ROM_LOAD( "za17",     0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
1049   ROM_LOAD( "za18",     0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
1050   ROM_LOAD( "za19.red", 0xf000, 0x1000, CRC(ec01760e) SHA1(169ab9d3a0abe325d960f9ed358258b3d6fcd4be) )
10511051
1052   ROM_REGION( 0x12000, "videocpu", 0 ) // roms on the 08-00112-001 'video rom expansion' PCB
1053   ROM_LOAD( "za5.u5",  0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
1054   ROM_LOAD( "za3.u3",  0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
1055   ROM_LOAD( "za6.u6",  0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
1056   ROM_LOAD( "za4.u4",  0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
1052   ROM_REGION( 0x12000, "videocpu", 0 )
1053   ROM_LOAD( "za5",      0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
1054   ROM_LOAD( "za3",      0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
1055   ROM_LOAD( "za6",      0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
1056   ROM_LOAD( "za4",      0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
10571057
1058   ROM_LOAD( "za7.u7",  0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
1059   ROM_LOAD( "za8.u8",  0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
1060   ROM_LOAD( "za9.u9",  0x0e000, 0x1000, CRC(a4f7d9e0) SHA1(a958b4d305bb397aa46d8fdab9dc7e472237ca11) )
1061   ROM_LOAD( "za10.u10", 0x0f000, 0x1000, CRC(05df1a5a) SHA1(30797838c25cca038023c188cd9fa45277c4190d) )
1058   ROM_LOAD( "za7",      0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
1059   ROM_LOAD( "za8",      0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
1060   ROM_LOAD( "za9",      0x0e000, 0x1000, CRC(a4f7d9e0) SHA1(a958b4d305bb397aa46d8fdab9dc7e472237ca11) )
1061   ROM_LOAD( "za10",     0x0f000, 0x1000, CRC(05df1a5a) SHA1(30797838c25cca038023c188cd9fa45277c4190d) )
10621062
1063   ROM_REGION( 0x10000, "audiocpu", 0 ) // roms on the 'SDU board'
1064   ROM_LOAD( "za25.u25", 0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
1065   ROM_LOAD( "za26.u26", 0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
1066   ROM_LOAD( "za27.u27", 0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
1063   ROM_REGION( 0x10000, "audiocpu", 0 )
1064   ROM_LOAD( "za25",     0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
1065   ROM_LOAD( "za26",     0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
1066   ROM_LOAD( "za27",     0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
10671067
1068   ROM_REGION( 0x0800, "mcu", 0 ) // mc68705p3, this is on its own pcb between the coin inputs and the main pcb
1068   ROM_REGION( 0x0800, "mcu", 0 )
10691069   ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) )
10701070ROM_END
10711071
10721072
10731073ROM_START( zookeep3 )
1074   ROM_REGION( 0x10000, "maincpu", 0 ) // roms on the 'SDU board'
1075   ROM_LOAD( "za12.u12",    0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
1076   ROM_LOAD( "za13.u13",    0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
1077   ROM_LOAD( "za14.u14",    0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
1078   ROM_LOAD( "za15.u15",    0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
1079   ROM_LOAD( "za16.u16",    0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
1080   ROM_LOAD( "za17.u17",    0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
1081   ROM_LOAD( "za18.u18",    0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
1082   ROM_LOAD( "za19.u19",    0xf000, 0x1000, CRC(bbfb30d9) SHA1(bc6bd5525b159bee7b08b6967cd3088b7bd10fee) )
1074   ROM_REGION( 0x10000, "maincpu", 0 )
1075   ROM_LOAD( "za12",    0x8000, 0x1000, CRC(4e40d8dc) SHA1(dd7923dcb55a2a1ae0f2029caf5a8904a9ebe8b1) )
1076   ROM_LOAD( "za13",    0x9000, 0x1000, CRC(eebd5248) SHA1(ebe7f8c436bfefa4236f603fbcbd38d2f4cfd2bd) )
1077   ROM_LOAD( "za14",    0xa000, 0x1000, CRC(fab43297) SHA1(daa5a780bc9f171da0f6db5319b1519caa09c6c9) )
1078   ROM_LOAD( "za15",    0xb000, 0x1000, CRC(ef8cd67c) SHA1(f3a2e12ccfa45eb77c2a6e0d9cc0601b99273fd3) )
1079   ROM_LOAD( "za16",    0xc000, 0x1000, CRC(ccfc15bc) SHA1(56ac6e89825fcde9cf7aeb5d0765a02f5474174a) )
1080   ROM_LOAD( "za17",    0xd000, 0x1000, CRC(358013f4) SHA1(dd3fae69bf460f89c71e7c78d229dd86605c5950) )
1081   ROM_LOAD( "za18",    0xe000, 0x1000, CRC(37886afe) SHA1(a0cc902b2d253466e21c4fbf9d3339069fe79ebe) )
1082   ROM_LOAD( "za19",    0xf000, 0x1000, CRC(bbfb30d9) SHA1(bc6bd5525b159bee7b08b6967cd3088b7bd10fee) )
10831083
1084   ROM_REGION( 0x12000, "videocpu", 0 ) // roms on the 08-00112-001 'video rom expansion' PCB
1085   ROM_LOAD( "za5.u5",  0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
1086   ROM_LOAD( "za3.u3",  0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
1087   ROM_LOAD( "za6.u6",  0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
1088   ROM_LOAD( "za4.u4",  0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
1084   ROM_REGION( 0x12000, "videocpu", 0 )
1085   ROM_LOAD( "za5",     0x0a000, 0x1000, CRC(dc0c3cbd) SHA1(8335cd91bbacc680a3a98a5242d4cb5a6f61b2b5) )
1086   ROM_LOAD( "za3",     0x10000, 0x1000, CRC(cc4d0aee) SHA1(05c0025e96b432088b46100051a2c780e46b7457) )
1087   ROM_LOAD( "za6",     0x0b000, 0x1000, CRC(27c787dd) SHA1(1142790d875573d0c39d846aba4b06946fd2bc88) )
1088   ROM_LOAD( "za4",     0x11000, 0x1000, CRC(ec3b10b1) SHA1(44303ab923d776052ca4d2d09a6a4315d67adc4b) )
10891089
1090   ROM_LOAD( "za7.u7",  0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
1091   ROM_LOAD( "za8.u8",  0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
1092   ROM_LOAD( "zv35.9.u9",  0x0e000, 0x1000, CRC(d14123b7) SHA1(5d35bffd2203225937bb83598ffdc31a46a1dbca) )
1093   ROM_LOAD( "zv36.10.u10", 0x0f000, 0x1000, CRC(23705777) SHA1(952cd8d9ee00268bff2022b2428b1dbfab061254) )
1090   ROM_LOAD( "za7",     0x0c000, 0x1000, CRC(1479f480) SHA1(bd0e9eead0f1213eb3b9653c73257bc704346ab0) )
1091   ROM_LOAD( "za8",     0x0d000, 0x1000, CRC(4c96cdb2) SHA1(67e506462317d882c4e5c2e16318411d4958ac63) )
1092   ROM_LOAD( "zv35.9",  0x0e000, 0x1000, CRC(d14123b7) SHA1(5d35bffd2203225937bb83598ffdc31a46a1dbca) )
1093   ROM_LOAD( "zv36.10", 0x0f000, 0x1000, CRC(23705777) SHA1(952cd8d9ee00268bff2022b2428b1dbfab061254) )
10941094
1095   ROM_REGION( 0x10000, "audiocpu", 0 ) // roms on the 'SDU board'
1096   ROM_LOAD( "za25.u25",    0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
1097   ROM_LOAD( "za26.u26",    0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
1098   ROM_LOAD( "za27.u27",    0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
1095   ROM_REGION( 0x10000, "audiocpu", 0 )
1096   ROM_LOAD( "za25",    0xd000, 0x1000, CRC(779b8558) SHA1(7312e63c23d92c9c52e93cc445a718bc8fe35a0a) )
1097   ROM_LOAD( "za26",    0xe000, 0x1000, CRC(60a810ce) SHA1(d97e5acea0ef1c208f8e5e95024c83dd6bc9b028) )
1098   ROM_LOAD( "za27",    0xf000, 0x1000, CRC(99ed424e) SHA1(e4e543dcb77f153aeb78904d11b95381d039299e) )
10991099
1100   ROM_REGION( 0x0800, "mcu", 0 ) // mc68705p3, this is on its own pcb between the coin inputs and the main pcb
1100   ROM_REGION( 0x0800, "mcu", 0 )
11011101   ROM_LOAD( "za_coin.bin", 0x0000, 0x0800, CRC(364d3557) SHA1(049d0759750c576187053306e07984b1e5877df7) )
11021102ROM_END
11031103
trunk/src/mame/drivers/r2dtank.c
r248538r248539
4343#include "machine/nvram.h"
4444
4545
46#define NUM_PENS    (8)
47
4648#define LOG_AUDIO_COMM  (0)
4749
4850#define MAIN_CPU_MASTER_CLOCK   (11200000)
r248538r248539
5759      m_videoram(*this, "videoram"),
5860      m_colorram(*this, "colorram"),
5961      m_maincpu(*this, "maincpu"),
60      m_palette(*this, "palette"),
6162      m_audiocpu(*this, "audiocpu") { }
6263
6364   required_shared_ptr<UINT8> m_videoram;
r248538r248539
6566   UINT8 m_flipscreen;
6667   UINT32 m_ttl74123_output;
6768   UINT8 m_AY8910_selected;
68
69   pen_t m_pens[NUM_PENS];
6970   DECLARE_READ8_MEMBER(audio_command_r);
7071   DECLARE_WRITE8_MEMBER(audio_command_w);
7172   DECLARE_READ8_MEMBER(audio_answer_r);
r248538r248539
8081   DECLARE_WRITE8_MEMBER(pia_comp_w);
8182   virtual void machine_start();
8283   DECLARE_WRITE8_MEMBER(ttl74123_output_changed);
83
84   MC6845_BEGIN_UPDATE(crtc_begin_update);
8485   MC6845_UPDATE_ROW(crtc_update_row);
85
8686   required_device<cpu_device> m_maincpu;
87   required_device<palette_device> m_palette;
8887   required_device<cpu_device> m_audiocpu;
8988};
9089
r248538r248539
258257}
259258
260259
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
261270MC6845_UPDATE_ROW( r2dtank_state::crtc_update_row )
262271{
263272   UINT8 x = 0;
r248538r248539
293302         }
294303
295304         color = bit ? fore_color : 0;
296         bitmap.pix32(y, x) = m_palette->pen_color(color);
305         bitmap.pix32(y, x) = m_pens[color];
297306
298307         x = x + 1;
299308      }
r248538r248539
448457   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 256, 0, 256, 256, 0, 256)   /* temporary, CRTC will configure screen */
449458   MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
450459
451   MCFG_PALETTE_ADD_3BIT_BGR("palette")
452
453460   MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK)
454461   MCFG_MC6845_SHOW_BORDER_AREA(false)
455462   MCFG_MC6845_CHAR_WIDTH(8)
463   MCFG_MC6845_BEGIN_UPDATE_CB(r2dtank_state, crtc_begin_update)
456464   MCFG_MC6845_UPDATE_ROW_CB(r2dtank_state, crtc_update_row)
457465   MCFG_MC6845_OUT_DE_CB(WRITELINE(r2dtank_state, display_enable_changed))
458466
trunk/src/mame/drivers/route16.c
r248538r248539
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
577575   /* sound hardware */
578576   MCFG_SPEAKER_STANDARD_MONO("mono")
579577   MCFG_SOUND_ADD("ay8910", AY8910, 10000000/8)
r248538r248539
601599
602600   /* video hardware */
603601   MCFG_SCREEN_MODIFY("screen")
604   MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng)
602   MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_stratvox)
605603
606604   /* sound hardware */
607605   MCFG_SOUND_MODIFY("ay8910")
r248538r248539
656654   /* video hardware */
657655   MCFG_SCREEN_MODIFY("screen")
658656   MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng)
659
660   MCFG_DEVICE_REMOVE("palette")
661   MCFG_PALETTE_ADD_3BIT_BGR("palette")
662657MACHINE_CONFIG_END
663658
664659
trunk/src/mame/drivers/seattle.c
r248538r248539
28342834   ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
28352835ROM_END
28362836
2837
28372838ROM_START( calspeeda )
28382839   ROM_REGION32_LE( 0x80000, "user1", 0 )  /* Boot Code Version 1.2 (2/18/98) */
28392840   ROM_LOAD( "caspd1_2.u32", 0x000000, 0x80000, CRC(0a235e4e) SHA1(b352f10fad786260b58bd344b5002b6ea7aaf76d) )
28402841
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
28522842   DISK_REGION( "ide:0:hdd:image" )    /* Release version 1.0r7a (3/4/98) (Guts 3/3/98, Main 1/19/98) */
28532843   DISK_IMAGE( "calspeda", 0, SHA1(6b1c3a7530195ef7309b06a651b01c8b3ece92c6) )
28542844
r248538r248539
28572847ROM_END
28582848
28592849
2860
2861
2862
28632850ROM_START( vaportrx )
28642851   ROM_REGION32_LE( 0x80000, "user1", 0 )
28652852   ROM_LOAD( "vtrxboot.bin", 0x000000, 0x80000, CRC(ee487a6c) SHA1(fb9efda85047cf615f24f7276a9af9fd542f3354) )
r248538r248539
29312918   DISK_IMAGE( "blitz99", 0, SHA1(19877e26ffce81dd525031e9e2b4f83ff982e2d9) )
29322919ROM_END
29332920
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) )
29372921
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
29462922ROM_START( blitz2k )
29472923   ROM_REGION16_LE( 0x10000, "dcs", 0 )    /* ADSP-2115 data Version 1.02 */
29482924   ROM_LOAD16_BYTE( "sound102.u95", 0x000000, 0x8000, CRC(bec7d3ae) SHA1(db80aa4a645804a4574b07b9f34dec6b6b64190d) )
r248538r248539
31653141GAME( 1997, macea,    mace,     mace,              mace, seattle_state,     mace,     ROT0, "Atari Games",  "Mace: The Dark Age (HDD 1.0a)", GAME_SUPPORTS_SAVE )
31663142GAME( 1996, sfrush,   0,        sfrush,            sfrush, seattle_state,   sfrush,   ROT0, "Atari Games",  "San Francisco Rush", GAME_SUPPORTS_SAVE )
31673143GAME( 1996, sfrushrk, 0,        sfrushrk,          sfrushrk, seattle_state, sfrushrk, ROT0, "Atari Games",  "San Francisco Rush: The Rock", GAME_NOT_WORKING | 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
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 )
31743146GAME( 1998, vaportrx, 0,        vaportrx,          vaportrx, seattle_state, vaportrx, ROT0, "Atari Games",  "Vapor TRX", GAME_SUPPORTS_SAVE )
31753147GAME( 1998, vaportrxp,vaportrx, vaportrx,          vaportrx, seattle_state, vaportrx, ROT0, "Atari Games",  "Vapor TRX (prototype)", GAME_SUPPORTS_SAVE )
31763148
r248538r248539
31783150GAME( 1997, biofreak, 0,        biofreak,          biofreak, seattle_state, biofreak, ROT0, "Midway Games", "BioFreaks (prototype)", GAME_SUPPORTS_SAVE )
31793151GAME( 1997, blitz,    0,        blitz,             blitz, seattle_state,    blitz,    ROT0, "Midway Games", "NFL Blitz (boot ROM 1.2)", GAME_SUPPORTS_SAVE )
31803152GAME( 1997, blitz11,  blitz,    blitz,             blitz, seattle_state,    blitz,    ROT0, "Midway Games", "NFL Blitz (boot ROM 1.1)", 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 )
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 )
31843155GAME( 1998, carnevil, 0,        carnevil,          carnevil, seattle_state, carnevil, ROT0, "Midway Games", "CarnEvil (v1.0.3)", GAME_SUPPORTS_SAVE )
31853156GAME( 1998, carnevil1,carnevil, carnevil,          carnevil, seattle_state, carnevil, ROT0, "Midway Games", "CarnEvil (v1.0.1)", GAME_SUPPORTS_SAVE )
31863157GAME( 1998, hyprdriv, 0,        hyprdriv,          hyprdriv, seattle_state, hyprdriv, ROT0, "Midway Games", "Hyperdrive", GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/shadfrce.c
r248538r248539
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
149153WRITE16_MEMBER(shadfrce_state::flip_screen)
150154{
151155   flip_screen_set(data & 0x01);
r248538r248539
238242   switch (offset)
239243   {
240244      case 0 :
241         data = (m_io_p1->read() & 0xff) | ((m_io_dsw2->read() & 0xc0) << 6) | ((m_io_system->read() & 0x0f) << 8);
245         data = (ioport("P1")->read() & 0xff) | ((ioport("DSW2")->read() & 0xc0) << 6) | ((ioport("SYSTEM")->read() & 0x0f) << 8);
242246         break;
243247      case 1 :
244         data = (m_io_p2->read() & 0xff) | ((m_io_dsw2->read() & 0x3f) << 8);
248         data = (ioport("P2")->read() & 0xff) | ((ioport("DSW2")->read() & 0x3f) << 8);
245249         break;
246250      case 2 :
247         data = (m_io_extra->read() & 0xff) | ((m_io_dsw1->read() & 0x3f) << 8);
251         data = (ioport("EXTRA")->read() & 0xff) | ((ioport("DSW1")->read() & 0x3f) << 8);
248252         break;
249253      case 3 :
250         data = (m_io_other->read() & 0xff) | ((m_io_dsw1->read() & 0xc0) << 2) | ((m_io_misc->read() & 0x38) << 8) | (m_vblank << 8);
254         data = (ioport("OTHER")->read() & 0xff) | ((ioport("DSW1")->read() & 0xc0) << 2) | ((ioport("MISC")->read() & 0x38) << 8) | (m_vblank << 8);
251255         break;
252256   }
253257
r248538r248539
446450   PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )            /* must be ACTIVE_LOW or 'shadfrcj' jumps to the end (code at 0x04902e) */
447451   PORT_BIT( 0xeb, IP_ACTIVE_LOW, IPT_UNUSED )
448452
449   PORT_START("DSW1")  /*DSW1, not mapped directly  */
453   PORT_START("DSW1")  /* Fake IN6 (DIP1) */
450454   PORT_DIPNAME( 0x01, 0x01, "Unused DIP 1-1" )
451455   PORT_DIPSETTING(    0x01, DEF_STR( Off ) )
452456   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
r248538r248539
469473   PORT_DIPSETTING(    0x40, DEF_STR( On ) )
470474   PORT_SERVICE( 0x80, IP_ACTIVE_LOW )
471475
472   PORT_START("DSW2")  /* DSW2, not mapped directly */
476   PORT_START("DSW2")  /* Fake IN7 (DIP2) */
473477   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) )
474478   PORT_DIPSETTING(    0x01, DEF_STR( Easy ) )
475479   PORT_DIPSETTING(    0x03, DEF_STR( Normal ) )
r248538r248539
504508   { 0, 2, 4, 6 },
505509   { 1, 0, 8*8+1, 8*8+0, 16*8+1, 16*8+0, 24*8+1, 24*8+0 },
506510   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
507   4*8*8
511   32*8
508512};
509513
510514static const gfx_layout sp16x16x5_layout =
r248538r248539
512516   16,16,
513517   RGN_FRAC(1,5),
514518   5,
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) },
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 },
518522   16*16
519523};
520524
r248538r248539
523527   16,16,
524528   RGN_FRAC(1,3),
525529   6,
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
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
530534};
531535
532536static GFXDECODE_START( shadfrce )
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 )
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 )
536540GFXDECODE_END
537541
538542/* Machine Driver Bits */
539543
540544static MACHINE_CONFIG_START( shadfrce, shadfrce_state )
541545
542   MCFG_CPU_ADD("maincpu", M68000, XTAL_28MHz / 2)          /* verified on pcb */
546   MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK)          /* verified on pcb */
543547   MCFG_CPU_PROGRAM_MAP(shadfrce_map)
544548   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", shadfrce_state, scanline, "screen", 0, 1)
545549
r248538r248539
547551   MCFG_CPU_PROGRAM_MAP(shadfrce_sound_map)
548552
549553   MCFG_SCREEN_ADD("screen", RASTER)
550   MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz / 4, 448, 0, 320, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
554   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 432, 0, 320, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
551555   MCFG_SCREEN_UPDATE_DRIVER(shadfrce_state, screen_update)
552556   MCFG_SCREEN_VBLANK_DRIVER(shadfrce_state, screen_eof)
553557   MCFG_SCREEN_PALETTE("palette")
r248538r248539
581585   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
582586   ROM_LOAD( "32j10-0.42",  0x00000, 0x10000, CRC(65daf475) SHA1(7144332b2d17af8645e22e1926b33113db0d20e2) )
583587
584   ROM_REGION( 0x020000, "chars", 0 ) /* Chars */
588   ROM_REGION( 0x020000, "gfx1", 0 ) /* Chars */
585589   ROM_LOAD( "32a11-0.55",  0x00000, 0x20000, CRC(cfaf5e77) SHA1(eab76e085f695c74cc868aaf95f04ff2acf66ee9) )
586590
587   ROM_REGION( 0xa00000, "sprites", 0 ) /* Sprite Tiles */
591   ROM_REGION( 0xa00000, "gfx2", 0 ) /* Sprite Tiles */
588592   ROM_LOAD( "32j4-0.12",  0x000000, 0x200000, CRC(1ebea5b6) SHA1(35bd49dda9ad75326d45ffb10c87d83fc4f1b7a8) )
589593   ROM_LOAD( "32j5-0.13",  0x200000, 0x200000, CRC(600026b5) SHA1(5641246300d7e20dcff1eae004647faaee6cd1c6) )
590594   ROM_LOAD( "32j6-0.24",  0x400000, 0x200000, CRC(6cde8ebe) SHA1(750933798235951fe24b2e667c33f692612c0aa0) )
591595   ROM_LOAD( "32j7-0.25",  0x600000, 0x200000, CRC(bcb37922) SHA1(f3eee73c8b9f4873a7f1cc42e334e7502eaee3c8) )
592596   ROM_LOAD( "32j8-0.32",  0x800000, 0x200000, CRC(201bebf6) SHA1(c89d2895ea5b19daea1f88542419f4e10f437c73) )
593597
594   ROM_REGION( 0x300000, "tiles", 0 ) /* BG Tiles */
598   ROM_REGION( 0x300000, "gfx3", 0 ) /* BG Tiles */
595599   ROM_LOAD( "32j1-0.4",  0x000000, 0x100000, CRC(f1cca740) SHA1(339079b95ca137e66b4f032ad67a0adf58cca100) )
596600   ROM_LOAD( "32j2-0.5",  0x100000, 0x100000, CRC(5fac3e01) SHA1(20c30f4c76e303285ae37e596afe86aa4812c3b9) )
597601   ROM_LOAD( "32j3-0.6",  0x200000, 0x100000, CRC(d297925e) SHA1(5bc4d37bf0dc54114884c816b94a64ef1ccfeda5) )
r248538r248539
610614   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
611615   ROM_LOAD( "32j10-0.42",  0x00000, 0x10000, CRC(65daf475) SHA1(7144332b2d17af8645e22e1926b33113db0d20e2) )
612616
613   ROM_REGION( 0x020000, "chars", 0 ) /* Chars */
617   ROM_REGION( 0x020000, "gfx1", 0 ) /* Chars */
614618   ROM_LOAD( "32j11-0.55",  0x00000, 0x20000, CRC(7252d993) SHA1(43f7de381841039aa290486aafb98e2cf3b8579b) )
615619
616   ROM_REGION( 0xa00000, "sprites", 0 ) /* Sprite Tiles */
620   ROM_REGION( 0xa00000, "gfx2", 0 ) /* Sprite Tiles */
617621   ROM_LOAD( "32j4-0.12",  0x000000, 0x200000, CRC(1ebea5b6) SHA1(35bd49dda9ad75326d45ffb10c87d83fc4f1b7a8) )
618622   ROM_LOAD( "32j5-0.13",  0x200000, 0x200000, CRC(600026b5) SHA1(5641246300d7e20dcff1eae004647faaee6cd1c6) )
619623   ROM_LOAD( "32j6-0.24",  0x400000, 0x200000, CRC(6cde8ebe) SHA1(750933798235951fe24b2e667c33f692612c0aa0) )
620624   ROM_LOAD( "32j7-0.25",  0x600000, 0x200000, CRC(bcb37922) SHA1(f3eee73c8b9f4873a7f1cc42e334e7502eaee3c8) )
621625   ROM_LOAD( "32j8-0.32",  0x800000, 0x200000, CRC(201bebf6) SHA1(c89d2895ea5b19daea1f88542419f4e10f437c73) )
622626
623   ROM_REGION( 0x300000, "tiles", 0 ) /* BG Tiles */
627   ROM_REGION( 0x300000, "gfx3", 0 ) /* BG Tiles */
624628   ROM_LOAD( "32j1-0.4",  0x000000, 0x100000, CRC(f1cca740) SHA1(339079b95ca137e66b4f032ad67a0adf58cca100) )
625629   ROM_LOAD( "32j2-0.5",  0x100000, 0x100000, CRC(5fac3e01) SHA1(20c30f4c76e303285ae37e596afe86aa4812c3b9) )
626630   ROM_LOAD( "32j3-0.6",  0x200000, 0x100000, CRC(d297925e) SHA1(5bc4d37bf0dc54114884c816b94a64ef1ccfeda5) )
r248538r248539
639643   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
640644   ROM_LOAD( "32j10-0.42",  0x00000, 0x10000, CRC(65daf475) SHA1(7144332b2d17af8645e22e1926b33113db0d20e2) )
641645
642   ROM_REGION( 0x020000, "chars", 0 ) /* Chars */
646   ROM_REGION( 0x020000, "gfx1", 0 ) /* Chars */
643647   ROM_LOAD( "32j11-0.55",  0x00000, 0x20000, CRC(7252d993) SHA1(43f7de381841039aa290486aafb98e2cf3b8579b) )
644648
645   ROM_REGION( 0xa00000, "sprites", 0 ) /* Sprite Tiles */
649   ROM_REGION( 0xa00000, "gfx2", 0 ) /* Sprite Tiles */
646650   ROM_LOAD( "32j4-0.12",  0x000000, 0x200000, CRC(1ebea5b6) SHA1(35bd49dda9ad75326d45ffb10c87d83fc4f1b7a8) )
647651   ROM_LOAD( "32j5-0.13",  0x200000, 0x200000, CRC(600026b5) SHA1(5641246300d7e20dcff1eae004647faaee6cd1c6) )
648652   ROM_LOAD( "32j6-0.24",  0x400000, 0x200000, CRC(6cde8ebe) SHA1(750933798235951fe24b2e667c33f692612c0aa0) )
649653   ROM_LOAD( "32j7-0.25",  0x600000, 0x200000, CRC(bcb37922) SHA1(f3eee73c8b9f4873a7f1cc42e334e7502eaee3c8) )
650654   ROM_LOAD( "32j8-0.32",  0x800000, 0x200000, CRC(201bebf6) SHA1(c89d2895ea5b19daea1f88542419f4e10f437c73) )
651655
652   ROM_REGION( 0x300000, "tiles", 0 ) /* BG Tiles */
656   ROM_REGION( 0x300000, "gfx3", 0 ) /* BG Tiles */
653657   ROM_LOAD( "32j1-0.4",  0x000000, 0x100000, CRC(f1cca740) SHA1(339079b95ca137e66b4f032ad67a0adf58cca100) )
654658   ROM_LOAD( "32j2-0.5",  0x100000, 0x100000, CRC(5fac3e01) SHA1(20c30f4c76e303285ae37e596afe86aa4812c3b9) )
655659   ROM_LOAD( "32j3-0.6",  0x200000, 0x100000, CRC(d297925e) SHA1(5bc4d37bf0dc54114884c816b94a64ef1ccfeda5) )
trunk/src/mame/drivers/silvmil.c
r248538r248539
99  also very close to gotcha.c, which was also a Para
1010  board.
1111
12  todo: refresh rate
12  todo: refresh rate & audio balance
1313        verify dipswitches - difficulty & unknown dips
14        verify clocks for Z80 & OKI6295
1415
15OSC on Silver Millennium are 12MHz, 14.31818MHz & 4.096MHz
16The above has been verified on two boards.
16OSC on the PCB are 12MHz, 14.31818MHz & 4.096MHz
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
2418*/
2519
2620#include "emu.h"
r248538r248539
173167}
174168
175169
170
171
176172static ADDRESS_MAP_START( silvmil_map, AS_PROGRAM, 16, silvmil_state )
177173   AM_RANGE(0x000000, 0x0fffff) AM_ROM
178174
r248538r248539
325321   PORT_SERVICE_DIPLOC(  0x8000, IP_ACTIVE_LOW, "SW2:8" ) /* Verified */
326322INPUT_PORTS_END
327323
328static INPUT_PORTS_START( puzzlovek )
329   PORT_INCLUDE(puzzlove)
330324
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 ) )
336325
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
347326static const gfx_layout tlayout =
348327{
349328   16,16,
r248538r248539
389368   AM_RANGE(0xc00f, 0xc00f) AM_WRITENOP // ??
390369ADDRESS_MAP_END
391370
371/* CLOCKS UNKNOWN! */
392372
393373static MACHINE_CONFIG_START( silvmil, silvmil_state )
394374
395375   /* basic machine hardware */
396   MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz) /* Verified */
376   MCFG_CPU_ADD("maincpu", M68000, XTAL_12MHz)
397377   MCFG_CPU_PROGRAM_MAP(silvmil_map)
398378   MCFG_CPU_VBLANK_INT_DRIVER("screen", silvmil_state,  irq6_line_hold)
399379
400   MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) /* Verified */
380   MCFG_CPU_ADD("audiocpu", Z80, XTAL_4_096MHz) // 4.096MHz or 3.579545MHz - Need to verify
401381   MCFG_CPU_PROGRAM_MAP(silvmil_sound_map)
402382
403383
r248538r248539
422402   MCFG_DECO_SPRITE_GFXDECODE("gfxdecode")
423403   MCFG_DECO_SPRITE_PALETTE("palette")
424404
425   MCFG_SPEAKER_STANDARD_MONO("mono")
405   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
426406
427   MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4) /* Verified */
407   MCFG_YM2151_ADD("ymsnd", XTAL_14_31818MHz/4)
428408   MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
429   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
409   MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
410   MCFG_SOUND_ROUTE(1, "rspeaker", 0.50)
430411
431   MCFG_OKIM6295_ADD("oki", XTAL_4_096MHz/4, OKIM6295_PIN7_HIGH) /* Verified */
432   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
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)
433415MACHINE_CONFIG_END
434416
435417static 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
440418   MCFG_DEVICE_MODIFY("spritegen")
441419   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)
446420MACHINE_CONFIG_END
447421
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
456422ROM_START( silvmil )
457423   ROM_REGION( 0x100000, "maincpu", 0 ) /* 68k */
458424   ROM_LOAD16_BYTE( "d-13_u3.bin", 0x00000, 0x40000, CRC(46106c59) SHA1(ab965c1ea9ce89a67875530d76ac2bde7fd13e13) )
r248538r248539
533499   ROM_LOAD16_BYTE( "8.u56", 0x100001, 0x80000, CRC(037dcd3d) SHA1(fcdf604710518982e0b4acc81a56fa703d0c9407) )
534500ROM_END
535501
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
564502void silvmil_state::tumblepb_gfx1_rearrange()
565503{
566504   UINT8 *rom = memregion("gfx1")->base();
r248538r248539
587525   tumblepb_gfx1_rearrange();
588526}
589527
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 )
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 )
trunk/src/mame/drivers/smsmcorp.c
r248538r248539
247247   virtual void machine_start();
248248   virtual void machine_reset();
249249   virtual void video_start();
250   DECLARE_PALETTE_INIT(smsmfg);
250251   DECLARE_MACHINE_START(sureshot);
251252   UINT32 screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
252253   required_device<cpu_device> m_maincpu;
r248538r248539
471472   return 0;
472473}
473474
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
474485/*************************************
475486 *
476487 *  Memory maps
r248538r248539
561572   MCFG_SCREEN_UPDATE_DRIVER(smsmfg_state, screen_update_sms)
562573   MCFG_SCREEN_PALETTE("palette")
563574
564   MCFG_PALETTE_ADD_3BIT_BGR("palette")
575   MCFG_PALETTE_ADD("palette", 8)
576   MCFG_PALETTE_INIT_OWNER(smsmfg_state, smsmfg)
565577
566578   /* sound hardware */
567579   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/spiders.c
r248538r248539
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
326336MC6845_UPDATE_ROW( spiders_state::crtc_update_row )
327337{
328338   UINT8 x = 0;
r248538r248539
368378            data3 = data3 >> 1;
369379         }
370380
371         bitmap.pix32(y, x) = m_palette->pen_color(color);
381         bitmap.pix32(y, x) = m_pens[color];
372382
373383         x = x + 1;
374384      }
r248538r248539
568578   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 256, 0, 256, 256, 0, 256)   /* temporary, CRTC will configure screen */
569579   MCFG_SCREEN_UPDATE_DEVICE("crtc", mc6845_device, screen_update)
570580
571   MCFG_PALETTE_ADD_3BIT_RGB("palette")
572
573581   MCFG_MC6845_ADD("crtc", MC6845, "screen", CRTC_CLOCK)
574582   MCFG_MC6845_SHOW_BORDER_AREA(false)
575583   MCFG_MC6845_CHAR_WIDTH(8)
584   MCFG_MC6845_BEGIN_UPDATE_CB(spiders_state, crtc_begin_update)
576585   MCFG_MC6845_UPDATE_ROW_CB(spiders_state, crtc_update_row)
577586   MCFG_MC6845_OUT_DE_CB(WRITELINE(spiders_state, display_enable_changed))
578587
trunk/src/mame/drivers/taito_f3.c
r248538r248539
19351935   ROM_LOAD16_BYTE("d87-02.bin", 0x400000, 0x200000, CRC(9250abae) SHA1(07cae8edbc3cca0a95022d9b40a5c18a55350b67) )    // CD CE CF D0
19361936ROM_END
19371937
1938
19391938ROM_START( bublbob2 )
19401939   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 */
19751940   ROM_LOAD32_BYTE("d90-12", 0x000000, 0x40000, CRC(9e523996) SHA1(c49a426f9865f96e8021c8ed9a6ac094c5e586b1) )
19761941   ROM_LOAD32_BYTE("d90-11", 0x000001, 0x40000, CRC(edfdbb7f) SHA1(698ad631d5b13661645f2c5ccd3e4fbf0248053c) )
19771942   ROM_LOAD32_BYTE("d90-10", 0x000002, 0x40000, CRC(8e957d3d) SHA1(5db31e5788483b802592e1092bf98df51ff4b70e) )
r248538r248539
19901955   ROM_FILL       (          0x200000, 0x100000, 0 )
19911956
19921957   ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
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) )
1958   ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
1959   ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
19951960
19961961   ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
19971962   ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) )    // C8 C9 CA CB
r248538r248539
20652030   ROM_FILL       (          0x200000, 0x100000, 0 )
20662031
20672032   ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
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) )
2033   ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
2034   ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
20702035
20712036   ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
20722037   ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) )    // C8 C9 CA CB
r248538r248539
20932058   ROM_FILL       (          0x200000, 0x100000, 0 )
20942059
20952060   ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
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) )
2061   ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
2062   ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
20982063
20992064   ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
21002065   ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) )    // C8 C9 CA CB
r248538r248539
21822147   ROM_FILL       (          0x200000, 0x100000, 0 )
21832148
21842149   ROM_REGION(0x180000, "audiocpu", 0) /* sound CPU */
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) )
2150   ROM_LOAD16_BYTE("d90-13", 0x100000, 0x40000, CRC(6762bd90) SHA1(771db0382bc8dab2caf13d0fc20648366c685829) )
2151   ROM_LOAD16_BYTE("d90-14", 0x100001, 0x40000, CRC(8e33357e) SHA1(68b81693c22e6357e37244f2a416818a81338138) )
21872152
21882153   ROM_REGION16_BE(0x800000, "ensoniq.0" , ROMREGION_ERASE00 ) // V2: 4 banks, only 2 populated
21892154   ROM_LOAD16_BYTE("d90-04", 0x000000, 0x200000, CRC(feee5fda) SHA1(b89354013ec4d34bcd51ecded412effa66dd2f2f) )    // C8 C9 CA CB
r248538r248539
41584123GAME( 1994, dariusgj, dariusg,  f3,      f3, taito_f3_state, dariusg,  ROT0,   "Taito Corporation",         "Darius Gaiden - Silver Hawk (Ver 2.5J 1994/09/19)", 0 )
41594124GAME( 1994, dariusgu, dariusg,  f3,      f3, taito_f3_state, dariusg,  ROT0,   "Taito America Corporation", "Darius Gaiden - Silver Hawk (Ver 2.5A 1994/09/19)", 0 )
41604125GAME( 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 )
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 )
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 )
41634127GAME( 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 )
41644128GAME( 1994, bubsymphe,bublbob2, f3_224a, f3, taito_f3_state, bubsymph, ROT0,   "Taito Corporation Japan",   "Bubble Symphony (Ver 2.5O 1994/10/05)", 0 )
41654129GAME( 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
r248538r248539
1313
1414
1515
16void tank8_state::set_collision(int index)
16void tank8_state::tank8_set_collision(int index)
1717{
1818   m_maincpu->set_input_line(0, ASSERT_LINE);
1919
r248538r248539
2727}
2828
2929
30READ8_MEMBER(tank8_state::collision_r)
30READ8_MEMBER(tank8_state::tank8_collision_r)
3131{
3232   return m_collision_index;
3333}
3434
35WRITE8_MEMBER(tank8_state::lockout_w)
35WRITE8_MEMBER(tank8_state::tank8_lockout_w)
3636{
3737   coin_lockout_w(machine(), offset, ~data & 1);
3838}
3939
4040
41WRITE8_MEMBER(tank8_state::int_reset_w)
41WRITE8_MEMBER(tank8_state::tank8_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::crash_w)
48WRITE8_MEMBER(tank8_state::tank8_crash_w)
4949{
5050   m_discrete->write(space, TANK8_CRASH_EN, data);
5151}
5252
53WRITE8_MEMBER(tank8_state::explosion_w)
53WRITE8_MEMBER(tank8_state::tank8_explosion_w)
5454{
5555   m_discrete->write(space, TANK8_EXPLOSION_EN, data);
5656}
5757
58WRITE8_MEMBER(tank8_state::bugle_w)
58WRITE8_MEMBER(tank8_state::tank8_bugle_w)
5959{
6060   m_discrete->write(space, TANK8_BUGLE_EN, data);
6161}
6262
63WRITE8_MEMBER(tank8_state::bug_w)
63WRITE8_MEMBER(tank8_state::tank8_bug_w)
6464{
6565   /* D0 and D1 determine the on/off time off the square wave */
6666   switch(data & 3) {
r248538r248539
8484
8585}
8686
87WRITE8_MEMBER(tank8_state::attract_w)
87WRITE8_MEMBER(tank8_state::tank8_attract_w)
8888{
8989   m_discrete->write(space, TANK8_ATTRACT_EN, data);
9090}
9191
92WRITE8_MEMBER(tank8_state::motor_w)
92WRITE8_MEMBER(tank8_state::tank8_motor_w)
9393{
9494   m_discrete->write(space, NODE_RELATIVE(TANK8_MOTOR1_EN, offset), data);
9595}
r248538r248539
9999   AM_RANGE(0x0400, 0x17ff) AM_ROM
100100   AM_RANGE(0xf800, 0xffff) AM_ROM
101101
102   AM_RANGE(0x1c00, 0x1c00) AM_READ(collision_r)
102   AM_RANGE(0x1c00, 0x1c00) AM_READ(tank8_collision_r)
103103
104104   AM_RANGE(0x1c01, 0x1c01) AM_READ_PORT("P1")
105105   AM_RANGE(0x1c02, 0x1c02) AM_READ_PORT("P2")
r248538r248539
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(video_ram_w) AM_SHARE("video_ram")
117   AM_RANGE(0x1800, 0x1bff) AM_WRITE(tank8_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(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)
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)
128128   AM_RANGE(0x1d05, 0x1d05) AM_WRITEONLY AM_SHARE("team")
129   AM_RANGE(0x1d06, 0x1d06) AM_WRITE(attract_w)
130   AM_RANGE(0x1e00, 0x1e07) AM_WRITE(motor_w)
129   AM_RANGE(0x1d06, 0x1d06) AM_WRITE(tank8_attract_w)
130   AM_RANGE(0x1e00, 0x1e07) AM_WRITE(tank8_motor_w)
131131
132132ADDRESS_MAP_END
133133
r248538r248539
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)
343   MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof)
342   MCFG_SCREEN_UPDATE_DRIVER(tank8_state, screen_update_tank8)
343   MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof_tank8)
344344   MCFG_SCREEN_PALETTE("palette")
345345
346346   MCFG_GFXDECODE_ADD("gfxdecode", "palette", tank8)
r248538r248539
480480}
481481
482482
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 )
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 )
trunk/src/mame/drivers/tourvis.c
r248538r248539
1616
1717    Known games:
1818
19    1943
2019    Aero Blaster (label shows "Vol. 33") [dumped]
2120    After Burner
22    Ankoku Densetu
2321    Ballistix
24    Bomberman (label shows "Vol. 34")
22    Bomberman
2523    Columns [dumped]
2624    Cyber Core
2725    Daisempuu
2826    Dead Moon
29    Die Hard
3027    Dodge Ball
3128    Doraemon Meikyuu Daisakusen
32    Doramon II
3329    Down Load
3430    Dragon Spirit
3531    Dungeon Explorer [dumped]
r248538r248539
4339    Kiki Kaikai
4440    Legend Of Hero Tomna
4541    Legendary Axe [dumped]
46    Liquid Kids
4742    Mr. Heli
4843    Out Run
4944    Pac-Land
45    Parasol Stars
5046    PC Denjin Punkic Cyborg
5147    PC Genjin
5248    PC Genjin 2 [dumped]
r248538r248539
6056    Saigo no Nindou
6157    Salamander
6258    Shinobi
63    Side Arms
64    Skweek
6559    Son Son II
6660    Special Criminal Investigation [dumped]
6761    Super Star Soldier (label shows "Vol. 30") [dumped]
r248538r248539
7064    Terra Cresta II
7165    Thunder Blade [dumped]
7266    Toy Shop Boys
73    Tricky
7467    USA Pro Basketball [dumped]
75    Veigues
7668    Vigilante
7769    Volfied [dumped]
7870    W-Ring
trunk/src/mame/drivers/unkhorse.c
r248538r248539
4848   DECLARE_WRITE_LINE_MEMBER(timer_out);
4949
5050   virtual void machine_start();
51   DECLARE_PALETTE_INIT(horse);
5152
5253   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354
r248538r248539
6667
6768***************************************************************************/
6869
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
6977UINT32 horse_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7078{
7179   for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
r248538r248539
215223   MCFG_SCREEN_UPDATE_DRIVER(horse_state, screen_update)
216224   MCFG_SCREEN_PALETTE("palette")
217225
218   MCFG_PALETTE_ADD_3BIT_BGR("palette")
226   MCFG_PALETTE_ADD("palette", 8)
227   MCFG_PALETTE_INIT_OWNER(horse_state, horse)
219228
220229   /* sound hardware */
221230   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/vegas.c
r248538r248539
24462446 *
24472447 *************************************/
24482448
2449
2450
2451
24522449ROM_START( gauntleg )
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
2450   ROM_REGION32_LE( 0x80000, "user1", 0 )  /* EPROM 1.5 11/17/1998 */
2451   ROM_LOAD( "legend15.bin", 0x000000, 0x80000, CRC(a8372d70) SHA1(d8cd4fd4d7007ee38bb58b5a818d0f83043d5a48) )
24552452
24562453   DISK_REGION( "ide:0:hdd:image" )    /* Guts 1.5 1/14/1999 Game 1/14/1999 */
24572454   DISK_IMAGE( "gauntleg", 0, SHA1(66eb70e2fba574a7abe54be8bd45310654b24b08) )
r248538r248539
24622459
24632460
24642461ROM_START( gauntleg12 )
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
2462   ROM_REGION32_LE( 0x80000, "user1", 0 )  /* EPROM 1.3 9/25/1998 */
2463   ROM_LOAD( "legend12.bin", 0x000000, 0x80000, CRC(34674c5f) SHA1(92ec1779f3ab32944cbd953b6e1889503a57794b) )
24682464
24692465   DISK_REGION( "ide:0:hdd:image" )    /* Guts 1.4 10/22/1998 Main 10/23/1998 */
24702466   DISK_IMAGE( "gauntl12", 0, SHA1(c8208e3ce3b02a271dc6b089efa98dd996b66ce0) )
r248538r248539
25332529
25342530ROM_START( nbashowt )
25352531   ROM_REGION32_LE( 0x80000, "user1", 0 )
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
2532   ROM_LOAD( "nbau27.100", 0x000000, 0x80000, CRC(ff5d620d) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) )
25372533
25382534   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?)
25432535   DISK_IMAGE( "nbashowt", 0, SHA1(f7c56bc3dcbebc434de58034986179ae01127f87) )
25442536
25452537   ROM_REGION16_LE( 0x10000, "dcs", 0 )    /* Vegas SIO boot ROM */
r248538r248539
25492541
25502542ROM_START( nbanfl )
25512543   ROM_REGION32_LE( 0x80000, "user1", 0 )
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
2544   ROM_LOAD( "u27nflnba.bin", 0x000000, 0x80000, CRC(6a9bd382) SHA1(18b942df6af86ea944c24166dbe88148334eaff9) )
2545//  ROM_LOAD( "bootnflnba.bin", 0x000000, 0x80000, CRC(3def7053) SHA1(8f07567929f40a2269a42495dfa9dd5edef688fe) )
25552546
25562547   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?)
25612548   DISK_IMAGE( "nbanfl", 0, SHA1(f60c627f85f1bf58f2ea674063736a1e516e7e9e) )
25622549
25632550   ROM_REGION16_LE( 0x10000, "dcs", 0 )    /* Vegas SIO boot ROM */
25642551   ROM_LOAD16_BYTE( "vegassio.bin", 0x000000, 0x8000, CRC(d1470e23) SHA1(f6e8405cfa604528c0224401bc374a6df9caccef) )
25652552ROM_END
25662553
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
25722554
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
25922555ROM_START( cartfury )
25932556   ROM_REGION32_LE( 0x80000, "user1", 0 )
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
2557   ROM_LOAD( "bootu27", 0x000000, 0x80000, CRC(c44550a2) SHA1(ad30f1c3382ff2f5902a4cbacbb1f0c4e37f42f9) )
25952558
25962559   DISK_REGION( "ide:0:hdd:image" )
25972560   DISK_IMAGE( "cartfury", 0, SHA1(4c5bc2803297ea9a191bbd8b002d0e46b4ae1563) )
r248538r248539
27282691GAME( 1999, roadburn, 0,        roadburn, roadburn, vegas_state, roadburn, ROT0, "Atari Games",  "Road Burners", GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
27292692
27302693/* Durango + DSIO? + Voodoo banshee */
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 )
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 )
27342696
2735
27362697/* Durango + Denver SIO + Voodoo 3 */
27372698GAME( 1998, sf2049,   0,        sf2049,   sf2049, vegas_state,   sf2049,   ROT0, "Atari Games",  "San Francisco Rush 2049", GAME_NO_SOUND | GAME_NOT_WORKING | GAME_SUPPORTS_SAVE )
27382699GAME( 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
r248538r248539
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);
4748   UINT32 screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849
4950   virtual void machine_start();
trunk/src/mame/includes/kangaroo.h
r248538r248539
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"),
18      m_palette(*this, "palette") { }
17      m_maincpu(*this, "maincpu") { }
1918
2019   /* memory pointers */
2120   required_shared_ptr<UINT8> m_video_control;
r248538r248539
3837   void videoram_write( UINT16 offset, UINT8 data, UINT8 mask );
3938   void blitter_execute(  );
4039   required_device<cpu_device> m_maincpu;
41   required_device<palette_device> m_palette;
4240};
trunk/src/mame/includes/namcond1.h
r248538r248539
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"),
1819      m_maincpu(*this, "maincpu"),
1920      m_mcu(*this, "mcu"),
20      m_ygv608(*this, "ygv608"),
21      m_shared_ram(*this, "shared_ram") { }
21      m_ygv608(*this, "ygv608") { }
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
2923   UINT8 m_h8_irq5_enabled;
24   required_shared_ptr<UINT16> m_shared_ram;
3025   int m_p8;
31
26   DECLARE_WRITE16_MEMBER(sharedram_sub_w);
27   DECLARE_READ16_MEMBER(sharedram_sub_r);
3228   DECLARE_READ16_MEMBER(mcu_p7_read);
3329   DECLARE_READ16_MEMBER(mcu_pa_read);
3430   DECLARE_WRITE16_MEMBER(mcu_pa_write);
35   DECLARE_READ16_MEMBER(cuskey_r);
36   DECLARE_WRITE16_MEMBER(cuskey_w);
37
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);
3835   virtual void machine_start();
3936   virtual void machine_reset();
40
4137   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;
4241};
trunk/src/mame/includes/namcos1.h
r248538r248539
2323      m_spriteram(*this, "spriteram"),
2424      m_playfield_control(*this, "pfcontrol"),
2525      m_triram(*this, "triram"),
26      m_rom(*this, "user1"),
27      m_soundbank(*this, "soundbank"),
28      m_mcubank(*this, "mcubank"),
29      m_io_dipsw(*this, "DIPSW") { }
26      m_rom(*this, "user1") { }
3027
3128   required_device<cpu_device> m_maincpu;
3229   required_device<cpu_device> m_subcpu;
r248538r248539
4239   required_shared_ptr<UINT8> m_spriteram;
4340   required_shared_ptr<UINT8> m_playfield_control;
4441   required_shared_ptr<UINT8> m_triram;
42
4543   required_region_ptr<UINT8> m_rom;
4644
47   required_memory_bank m_soundbank;
48   required_memory_bank m_mcubank;
49
50   required_ioport m_io_dipsw;
51
5245   int m_dac0_value;
5346   int m_dac1_value;
5447   int m_dac0_gain;
trunk/src/mame/includes/phoenix.h
r248538r248539
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);
3938   TILE_GET_INFO_MEMBER(get_fg_tile_info);
4039   TILE_GET_INFO_MEMBER(get_bg_tile_info);
4140   DECLARE_MACHINE_RESET(phoenix);
trunk/src/mame/includes/route16.h
r248538r248539
1010      m_sn(*this, "snsnd"),
1111      m_sharedram(*this, "sharedram"),
1212      m_videoram1(*this, "videoram1"),
13      m_videoram2(*this, "videoram2"),
14      m_palette(*this, "palette") {}
13      m_videoram2(*this, "videoram2"){ }
1514
1615   optional_device<sn76477_device> m_sn;
1716
1817   required_shared_ptr<UINT8> m_sharedram;
1918   required_shared_ptr<UINT8> m_videoram1;
2019   required_shared_ptr<UINT8> m_videoram2;
21   required_device<palette_device> m_palette;
2220
2321   UINT8 m_ttmahjng_port_select;
2422   int m_speakres_vrx;
r248538r248539
4341   virtual void video_start();
4442
4543   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);
4645   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));
4749};
trunk/src/mame/includes/shadfrce.h
r248538r248539
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"),
2416      m_fgvideoram(*this, "fgvideoram"),
2517      m_bg0videoram(*this, "bg0videoram"),
2618      m_bg1videoram(*this, "bg1videoram"),
r248538r248539
3325   required_device<screen_device> m_screen;
3426   required_device<palette_device> m_palette;
3527
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
4528   required_shared_ptr<UINT16> m_fgvideoram;
4629   required_shared_ptr<UINT16> m_bg0videoram;
4730   required_shared_ptr<UINT16> m_bg1videoram;
r248538r248539
8366
8467   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8568   void screen_eof(screen_device &screen, bool state);
86   void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offset );
69   void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect );
8770};
trunk/src/mame/includes/spiders.h
r248538r248539
88#include "sound/discrete.h"
99#include "video/mc6845.h"
1010
11#define NUM_PENS    (8)
12
1113class spiders_state : public driver_device
1214{
1315public:
r248538r248539
1618      m_ram(*this, "ram"),
1719      m_discrete(*this, "discrete"),
1820      m_maincpu(*this, "maincpu"),
19      m_palette(*this, "palette"),
2021      m_audiocpu(*this, "audiocpu") { }
2122
2223   required_shared_ptr<UINT8> m_ram;
r248538r248539
2627   UINT8 m_gfx_rom_ctrl_mode;
2728   UINT8 m_gfx_rom_ctrl_latch;
2829   UINT8 m_gfx_rom_ctrl_data;
29
30   pen_t m_pens[NUM_PENS];
3031   DECLARE_WRITE_LINE_MEMBER(main_cpu_irq);
3132   DECLARE_WRITE_LINE_MEMBER(main_cpu_firq);
3233   DECLARE_WRITE_LINE_MEMBER(audio_cpu_irq);
r248538r248539
4142   DECLARE_WRITE8_MEMBER(spiders_audio_a_w);
4243   DECLARE_WRITE8_MEMBER(spiders_audio_b_w);
4344   DECLARE_WRITE8_MEMBER(spiders_audio_ctrl_w);
44
45   MC6845_BEGIN_UPDATE(crtc_begin_update);
4546   MC6845_UPDATE_ROW(crtc_update_row);
46
4747   required_device<cpu_device> m_maincpu;
48   required_device<palette_device> m_palette;
4948   required_device<cpu_device> m_audiocpu;
5049};
5150
trunk/src/mame/includes/tank8.h
r248538r248539
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"),
4338      m_video_ram(*this, "video_ram"),
4439      m_pos_h_ram(*this, "pos_h_ram"),
4540      m_pos_v_ram(*this, "pos_v_ram"),
4641      m_pos_d_ram(*this, "pos_d_ram"),
47      m_team(*this, "team") { }
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") { }
4848
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
49   int m_collision_index;
5550   required_shared_ptr<UINT8> m_video_ram;
5651   required_shared_ptr<UINT8> m_pos_h_ram;
5752   required_shared_ptr<UINT8> m_pos_v_ram;
5853   required_shared_ptr<UINT8> m_pos_d_ram;
5954   required_shared_ptr<UINT8> m_team;
60
61   int m_collision_index;
6255   tilemap_t *m_tilemap;
6356   bitmap_ind16 m_helper1;
6457   bitmap_ind16 m_helper2;
6558   bitmap_ind16 m_helper3;
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
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);
8169   DECLARE_DRIVER_INIT(decode);
70   TILE_GET_INFO_MEMBER(tank8_get_tile_info);
8271   virtual void machine_reset();
8372   virtual void video_start();
8473   DECLARE_PALETTE_INIT(tank8);
85
86   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
87   void screen_eof(screen_device &screen, bool state);
74   UINT32 screen_update_tank8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
75   void screen_eof_tank8(screen_device &screen, bool state);
8876   void set_pens();
8977   inline int get_x_pos(int n);
9078   inline int get_y_pos(int n);
9179   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
9280   void draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect);
93   void set_collision(int index);
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;
9487
9588protected:
9689   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
trunk/src/mame/machine/jvs13551.c
r248538r248539
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
4325void sega_837_13551::static_set_port_tag(device_t &device, int port, const char *tag)
4426{
4527   sega_837_13551 &ctrl = downcast<sega_837_13551 &>(device);
r248538r248539
5133   return INPUT_PORTS_NAME(sega_837_13551_coins);
5234}
5335
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__)
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__)
5537{
5638   memset(port_tag, 0, sizeof(port_tag));
5739}
trunk/src/mame/machine/jvs13551.h
r248538r248539
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
3432   DECLARE_WRITE_LINE_MEMBER(jvs13551_coin_1_w);
3533   DECLARE_WRITE_LINE_MEMBER(jvs13551_coin_2_w);
3634   void inc_coin(int coin);
trunk/src/mame/machine/namcond1.c
r248538r248539
1313
1414#include "emu.h"
1515#include "cpu/m6809/m6809.h"
16#include "video/ygv608.h"
1617#include "includes/namcond1.h"
1718
1819/* Perform basic machine initialisation */
r248538r248539
2122void namcond1_state::machine_start()
2223{
2324   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()
r248538r248539
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
5461// $c3ff00-$c3ffff
55READ16_MEMBER(namcond1_state::cuskey_r)
62READ16_MEMBER(namcond1_state::namcond1_cuskey_r)
5663{
5764   switch( offset )
5865   {
r248538r248539
7077   }
7178}
7279
73WRITE16_MEMBER(namcond1_state::cuskey_w)
80WRITE16_MEMBER(namcond1_state::namcond1_shared_ram_w)
7481{
7582   switch( offset )
7683   {
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   {
7794      case (0x0a>>1):
7895         // this is a kludge until we emulate the h8
7996      if ((m_h8_irq5_enabled == 0) && (data != 0x0000))
trunk/src/mame/machine/namcos1.c
r248538r248539
477477
478478WRITE8_MEMBER(namcos1_state::sound_bankswitch_w)
479479{
480   m_soundbank->set_entry((data & 0x70) >> 4);
480   membank("soundbank")->set_entry((data & 0x70) >> 4);
481481}
482482
483483
r248538r248539
510510
511511void namcos1_state::machine_start()
512512{
513   m_soundbank->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
514   m_mcubank->configure_entries(0, 24, memregion("voice")->base(), 0x8000);
513   membank("soundbank")->configure_entries(0, 8, memregion("audiocpu")->base(), 0x4000);
514   membank("mcubank")->configure_entries(0, 24, memregion("voice")->base(), 0x8000);
515515
516516   save_item(NAME(m_dac0_value));
517517   save_item(NAME(m_dac1_value));
r248538r248539
568568   /* bit 0-1 : address line A15-A16 */
569569   bank += (data & 3);
570570
571   m_mcubank->set_entry(bank);
571   membank("mcubank")->set_entry(bank);
572572}
573573
574574
trunk/src/mame/mess.lst
r248538r248539
21532153bfriskyt    // Bandai
21542154packmon     // Bandai
21552155msthawk     // Bandai/Mattel
2156bzaxxon     // Bandai
21572156zackman     // Bandai
2158bpengo      // Bandai
2159bbtime      // Bandai
21602157bdoramon    // Bandai
2161bultrman    // Bandai
21622158machiman    // Bandai
21632159alnattck    // Coleco
21642160cdkong      // Coleco
r248538r248539
21822178
21832179// hh_melps4
21842180cfrogger    // Coleco
2185gjungler    // Gakken
21862181
21872182// hh_pic16
21882183maniac      // Ideal
trunk/src/mame/video/4enraya.c
r248538r248539
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
2128TILE_GET_INFO_MEMBER(_4enraya_state::get_tile_info)
2229{
2330   int code = m_videoram[tile_index * 2] + (m_videoram[tile_index * 2 + 1] << 8);
trunk/src/mame/video/kangaroo.c
r248538r248539
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];
144145   int x, y;
145146
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
146151   /* iterate over pixels */
147152   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
148153   {
r248538r248539
166171            finalpens |= pixb;
167172
168173         /* store the first of two pixels, which is always full brightness */
169         dest[x + 0] = m_palette->pen_color(finalpens & 7);
174         dest[x + 0] = pens[finalpens & 7];
170175
171176         /* KOS1 alternates at 5MHz, offset from the pixel clock by 1/2 clock */
172177         /* when 0, it enables the color mask for pixels with Z = 0 */
r248538r248539
183188         }
184189
185190         /* store the second of two pixels, which is affected by KOS1 and the A/B masks */
186         dest[x + 1] = m_palette->pen_color(finalpens & 7);
191         dest[x + 1] = pens[finalpens & 7];
187192      }
188193   }
189194
trunk/src/mame/video/route16.c
r248538r248539
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
5068/*
5169 *  Game observation shows that Route 16 can blank each
5270 *  bitmap by setting bit 1 of the palette register.
r248538r248539
88106                              ((data2 >> 0) & 0x01)];
89107
90108         /* the final color is the OR of the two colors (verified) */
91         UINT8 final_color = (color1 | color2) & 0x07;
109         UINT8 final_color = color1 | color2;
92110
111         pen_t pen = route16_make_pen(final_color);
112
93113         if (m_flipscreen)
94            bitmap.pix32(255 - y, 255 - x) = m_palette->pen_color(final_color);
114            bitmap.pix32(255 - y, 255 - x) = pen;
95115         else
96            bitmap.pix32(y, x) = m_palette->pen_color(final_color);
116            bitmap.pix32(y, x) = pen;
97117
98118         x = x + 1;
99119         data1 = data1 >> 1;
r248538r248539
109129 *  The Stratovox video connections have been verified from the schematics
110130 */
111131
112UINT32 route16_state::screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
132int route16_state::video_update_stratvox_ttmahjng(bitmap_rgb32 &bitmap,
133                                 const rectangle &cliprect,
134                                 pen_t (route16_state::*make_pen)(UINT8))
113135{
114136   offs_t offs;
115137
r248538r248539
139161                              ((data2 >> 0) & 0x01)];
140162
141163         /* the final color is the OR of the two colors */
142         UINT8 final_color = (color1 | color2) & 0x07;
164         UINT8 final_color = color1 | color2;
143165
166         pen_t pen = (this->*make_pen)(final_color);
167
144168         if (m_flipscreen)
145            bitmap.pix32(255 - y, 255 - x) = m_palette->pen_color(final_color);
169            bitmap.pix32(255 - y, 255 - x) = pen;
146170         else
147            bitmap.pix32(y, x) = m_palette->pen_color(final_color);
171            bitmap.pix32(y, x) = pen;
148172
149173         x = x + 1;
150174         data1 = data1 >> 1;
r248538r248539
154178
155179   return 0;
156180}
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
r248538r248539
101101
102102
103103
104void shadfrce_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int y_offset )
104void shadfrce_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect )
105105{
106
107
108106   /* | ---- ---- hhhf Fe-Y | ---- ---- yyyy yyyy | ---- ---- TTTT TTTT | ---- ---- tttt tttt |
109107      | ---- ---- -pCc cccX | ---- ---- xxxx xxxx | ---- ---- ---- ---- | ---- ---- ---- ---- | */
110108
r248538r248539
123121   UINT16 *finish = m_spvideoram_old;
124122   UINT16 *source = finish + 0x2000/2 - 8;
125123   int hcount;
126   while (source >= finish)
124   while( source>=finish )
127125   {
128
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;
129130      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;
130135
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;
136      if (pal & 0x20) pal ^= 0x60;    /* skip hole */
136137
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;
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);
144145         }
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         }
161146      }
162
163147      source-=8;
164148   }
165149}
r248538r248539
172156   {
173157      m_bg1tilemap->draw(screen, bitmap, cliprect, 0,0);
174158      m_bg0tilemap->draw(screen, bitmap, cliprect, 0,1);
175      draw_sprites(screen,bitmap,cliprect, 0);
176      draw_sprites(screen,bitmap,cliprect, 0x200); // y-wrap
159      draw_sprites(screen,bitmap,cliprect);
177160      m_fgtilemap->draw(screen, bitmap, cliprect, 0,0);
178161   }
179162   else
trunk/src/mame/video/tank8.c
r248538r248539
6060}
6161
6262
63WRITE8_MEMBER(tank8_state::video_ram_w)
63WRITE8_MEMBER(tank8_state::tank8_video_ram_w)
6464{
6565   m_video_ram[offset] = data;
6666   m_tilemap->mark_tile_dirty(offset);
r248538r248539
6868
6969
7070
71TILE_GET_INFO_MEMBER(tank8_state::get_tile_info)
71TILE_GET_INFO_MEMBER(tank8_state::tank8_get_tile_info)
7272{
7373   UINT8 code = m_video_ram[tile_index];
7474
r248538r248539
100100
101101void tank8_state::video_start()
102102{
103   m_collision_timer = timer_alloc(TIMER_COLLISION);
104
105103   m_screen->register_screen_bitmap(m_helper1);
106104   m_screen->register_screen_bitmap(m_helper2);
107105   m_screen->register_screen_bitmap(m_helper3);
108106
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);
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);
110108
111109   /* VBLANK starts on scanline #256 and ends on scanline #24 */
112110
113111   m_tilemap->set_scrolly(0, 2 * 24);
114   
115   save_item(NAME(m_collision_index));
116112}
117113
118114
r248538r248539
174170   switch (id)
175171   {
176172   case TIMER_COLLISION:
177      set_collision(param);
173      tank8_set_collision(param);
178174      break;
179175   default:
180176      assert_always(FALSE, "Unknown id in tank8_state::device_timer");
r248538r248539
182178}
183179
184180
185UINT32 tank8_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
181UINT32 tank8_state::screen_update_tank8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
186182{
187183   set_pens();
188184   m_tilemap->draw(screen, bitmap, cliprect, 0, 0);
r248538r248539
193189}
194190
195191
196void tank8_state::screen_eof(screen_device &screen, bool state)
192void tank8_state::screen_eof_tank8(screen_device &screen, bool state)
197193{
198194   // on falling edge
199195   if (!state)
r248538r248539
277273                  index |= 0x80; /* collision on right side */
278274            }
279275
280            m_collision_timer->adjust(screen.time_until_pos(y, x), index);
276            timer_set(screen.time_until_pos(y, x), TIMER_COLLISION, index);
281277
282278            _state = 1;
283279         }
trunk/src/mess/drivers/amstrad.c
r248538r248539
784784SLOT_INTERFACE_END
785785
786786static SLOT_INTERFACE_START( aleste_floppies )
787   SLOT_INTERFACE( "35hd", FLOPPY_35_HD )
787   SLOT_INTERFACE( "525hd", FLOPPY_525_HD )
788788SLOT_INTERFACE_END
789789
790790static MACHINE_CONFIG_FRAGMENT( cpcplus_cartslot )
r248538r248539
11251125   MCFG_DEVICE_REMOVE("upd765")
11261126   MCFG_I8272A_ADD("upd765", true)
11271127
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)
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)
11301130
11311131   MCFG_DEVICE_REMOVE("flop_list")
11321132   MCFG_SOFTWARE_LIST_ADD("flop_list", "aleste")
trunk/src/mess/drivers/elecbowl.c
r248538r248539
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 MAME output lamp5x,
18  SN74259.u6(mux 2) goes to MAME output lamp6x. u1-u3 are SN75492 ICs,
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,
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
r248538r248539
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!: MAME external artwork is recommended
287  NOTE!: MESS external artwork is recommended
288288
289289***************************************************************************/
290290
trunk/src/mess/drivers/hh_hmcs40.c
r248538r248539
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)
2523 *41      HD38800A  1982, Gakken Puck Monster
2624 *51      HD38800A  1981, Actronics(Hanzawa) Twinvader (larger white version)
2725 @70      HD38800A  1982, Coleco Galaxian
r248538r248539
3028 @88      HD38800A  1984, Tomy Tron (THN-02)
3129
3230 @01      HD38800B  1982, Gakken Crazy Kong
33 @19      HD38800B  1982, Bandai Zaxxon
31 *19      HD38800B  1982, Bandai Zaxxon
3432 @23      HD38800B  1982, Tomy Kingman (THF-01II)
3533 *24      HD38800B  1982, Actronics(Hanzawa) Wanted G-Man
3634 *29      HD38800B  1984, Tomy Portable 6000 Bombman
3735 *35      HD38800B  1983, Bandai Gundam vs Gelgoog Zaku
3836 @43      HD38800B  1983, Bandai Dokodemo Dorayaki Doraemon (PT-412)
39 @52      HD38800B  1983, Bandai Ultra Man (PT-424)
4037
4138 @09      HD38820A  1980, Mattel World Championship Baseball
4239 @13      HD38820A  1981, Entex Galaxian 2
r248538r248539
5047 @45      HD38820A  1982, Coleco Donkey Kong
5148 @49      HD38820A  1983, Bandai Zackman
5249 @61      HD38820A  1983, Coleco Ms. Pac-Man
53 @63      HD38820A  1983, Bandai Pengo
54 @65      HD38820A  1983, Bandai Burger Time (PT-389)
50 *63      HD38820A  1983, Bandai Pengo
51 *65      HD38820A  1983, Bandai Burger Time
5552 @69      HD38820A  1983, Gakken Dig Dug
5653 @70      HD38820A  1983, Parker Brothers Q*Bert
5754 @85      HD38820A  1984, Bandai Machine Man (PT-438)
r248538r248539
9592   hh_hmcs40_state(const machine_config &mconfig, device_type type, const char *tag)
9693      : driver_device(mconfig, type, tag),
9794      m_maincpu(*this, "maincpu"),
98      m_audiocpu(*this, "audiocpu"),
9995      m_inp_matrix(*this, "IN"),
10096      m_speaker(*this, "speaker"),
10197      m_display_wait(33),
r248538r248539
105101
106102   // devices
107103   required_device<cpu_device> m_maincpu;
108   optional_device<cpu_device> m_audiocpu;
109104   optional_ioport_array<7> m_inp_matrix; // max 7
110105   optional_device<speaker_sound_device> m_speaker;
111106
r248538r248539
943938
944939/***************************************************************************
945940
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
1068941  Bandai Zackman "The Pit, FL Exploration of Space" (manufactured in Japan)
1069942  * Hitachi QFP HD38820A49 MCU
1070943  * cyan/red/yellow VFD display Futaba DM-53Z 3E, with color overlay
r248538r248539
11831056
11841057/***************************************************************************
11851058
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
14381059  Bandai Dokodemo Dorayaki Doraemon (FL LSI Game Push Up) (manufactured in Japan)
14391060  * PCB label Kaken Corp PT-412 FL-Doreamon(in katakana)
14401061  * Hitachi HD38800B43 MCU
r248538r248539
15331154
15341155/***************************************************************************
15351156
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
16261157  Bandai Machine Man (FL Flat Type) (manufactured in Japan)
16271158  * PCB label Kaken PT-438
16281159  * Hitachi QFP HD38820A85 MCU
r248538r248539
18251356
18261357/***************************************************************************
18271358
1828  Coleco Donkey Kong (manufactured in Taiwan, licensed from Nintendo)
1359  Coleco Donkey Kong (manufactured in Taiwan)
18291360  * PCB label Coleco Rev C 75790 DK
18301361  * Hitachi QFP HD38820A45 MCU
18311362  * cyan/red VFD display Futaba DM-47ZK 2K, with color overlay
r248538r248539
18701401
18711402void cdkong_state::prepare_display()
18721403{
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;
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);
18741405   display_matrix(29, 11, plate, m_grid);
18751406}
18761407
r248538r248539
20801611
20811612/***************************************************************************
20821613
2083  Coleco Pac-Man (manufactured in Taiwan, licensed from Midway)
1614  Coleco Pac-Man (manufactured in Taiwan)
20841615  * PCB label Coleco 75690
20851616  * Hitachi QFP HD38820A28/29 MCU
20861617  * cyan/red VFD display Futaba DM-34Z 2A, with color overlay
r248538r248539
22011732
22021733/***************************************************************************
22031734
2204  Coleco Ms. Pac-Man (manufactured in Taiwan, licensed from Midway)
1735  Coleco Ms. Pac-Man (manufactured in Taiwan)
22051736  * PCB label Coleco 911171
22061737  * Hitachi QFP HD38820A61 MCU
22071738  * cyan/red VFD display Futaba DM-60Z 3I, with color overlay
r248538r248539
22391770
22401771   // update display
22411772   UINT16 grid = BITSWAP16(m_grid,15,14,13,11,10,9,8,7,6,5,4,3,2,1,0,1);
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;
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);
22431774   display_matrix(33, 12, plate, grid);
22441775}
22451776
r248538r248539
29512482
29522483   // update display
29532484   UINT16 grid = BITSWAP16(m_grid,15,14,13,12,11,0,1,2,3,4,5,6,7,8,9,10);
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;
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);
29552486   display_matrix(32, 11, plate, grid);
29562487}
29572488
r248538r248539
33532884   m_plate = (m_plate & ~(0xf << shift)) | (data << shift);
33542885
33552886   // update display
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;
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);
33572888   display_matrix(30, 8, plate, m_grid);
33582889}
33592890
r248538r248539
37873318ROM_END
37883319
37893320
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
37973321ROM_START( zackman )
37983322   ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
37993323   ROM_LOAD( "hd38820a49", 0x0000, 0x1000, CRC(b97f5ef6) SHA1(7fe20e8107361caf9ea657e504be1f8b10b8b03f) )
r248538r248539
38013325ROM_END
38023326
38033327
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
38183328ROM_START( bdoramon )
38193329   ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
38203330   ROM_LOAD( "hd38800b43", 0x0000, 0x1000, CRC(9387ca42) SHA1(8937e208934b34bd9f49700aa50287dfc8bda76c) )
r248538r248539
38223332ROM_END
38233333
38243334
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
38323335ROM_START( machiman )
38333336   ROM_REGION( 0x2000, "maincpu", ROMREGION_ERASE00 )
38343337   ROM_LOAD( "hd38820a85", 0x0000, 0x1000, CRC(894b4954) SHA1(cab49638a326b031aa548301beb16f818759ef62) )
r248538r248539
39753478CONS( 1982, bfriskyt,  0,        0, bfriskyt, bfriskyt, driver_device, 0, "Bandai", "Frisky Tom (Bandai)", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
39763479CONS( 1981, packmon,   0,        0, packmon,  packmon,  driver_device, 0, "Bandai", "Packri Monster", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
39773480CONS( 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 )
39793481CONS( 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 )
39823482CONS( 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 )
39843483CONS( 1984, machiman,  0,        0, machiman, machiman, driver_device, 0, "Bandai", "Machine Man", GAME_SUPPORTS_SAVE | GAME_REQUIRES_ARTWORK )
39853484
39863485CONS( 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
r248538r248539
3636   UINT16 m_inp_mux;                   // multiplexed inputs mask
3737
3838   UINT8 read_inputs(int columns);
39   DECLARE_INPUT_CHANGED_MEMBER(reset_button);
4039
4140   // display common
4241   int m_display_wait;                 // led/lamp off-delay in microseconds (default 33ms)
r248538r248539
189188}
190189
191190
192// generic input handlers
193
194191UINT8 hh_melps4_state::read_inputs(int columns)
195192{
196193   UINT8 ret = 0;
r248538r248539
203200   return ret;
204201}
205202
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}
211203
212204
213
214205/***************************************************************************
215206
216207  Minidrivers (subclass, I/O, Inputs, Machine Config)
r248538r248539
219210
220211/***************************************************************************
221212
222  Coleco Frogger (manufactured in Japan, licensed from Sega)
213  Coleco Frogger (manufactured in Japan)
223214  * PCB label Coleco Frogger Code No. 01-81543, KS-003282 Japan
224215  * Mitsubishi M58846-701P MCU
225216  * cyan/red/green VFD display Itron CP5090GLR R1B, with partial color overlay
226217
227  NOTE!: MAME external artwork is recommended
218  NOTE!: MESS external artwork is recommended
228219
229220***************************************************************************/
230221
r248538r248539
240231   DECLARE_WRITE16_MEMBER(grid_w);
241232   DECLARE_WRITE_LINE_MEMBER(speaker_w);
242233   DECLARE_READ16_MEMBER(input_r);
234
235   DECLARE_INPUT_CHANGED_MEMBER(reset_button);
243236};
244237
245238// handlers
r248538r248539
253246
254247WRITE8_MEMBER(cfrogger_state::plate_w)
255248{
256   // F0,F1: input mux
257   if (offset == MELPS4_PORTF)
258      m_inp_mux = data & 3;
259
260249   // Sx,Fx,Gx: vfd matrix plate
261250   int mask = (offset == MELPS4_PORTS) ? 0xff : 0xf; // port S is 8-bit
262251   int shift = (offset == MELPS4_PORTS) ? 0 : (offset + 1) * 4;
263252   m_plate = (m_plate & ~(mask << shift)) | (data << shift);
264253   prepare_display();
254
255   // F0,F1: input mux
256   m_inp_mux = m_plate >> 8 & 3;
265257}
266258
267259WRITE16_MEMBER(cfrogger_state::grid_w)
r248538r248539
289281// config
290282
291283static INPUT_PORTS_START( cfrogger )
292   PORT_START("IN.0") // F0 port K0,K1
284   PORT_START("IN.0") // F0 port K
293285   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP )
294286   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT )
295287
296   PORT_START("IN.1") // F1 port K0,K1
288   PORT_START("IN.1") // F1 port K
297289   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT )
298290   PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN )
299291
r248538r248539
303295   PORT_CONFSETTING(    0x08, "2" )
304296
305297   PORT_START("IN.3") // fake
306   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_melps4_state, reset_button, NULL)
298   PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, cfrogger_state, reset_button, NULL)
307299INPUT_PORTS_END
308300
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
309308static MACHINE_CONFIG_START( cfrogger, cfrogger_state )
310309
311310   /* basic machine hardware */
r248538r248539
334333
335334/***************************************************************************
336335
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
453336  Game driver(s)
454337
455338***************************************************************************/
r248538r248539
460343ROM_END
461344
462345
463ROM_START( gjungler )
464   ROM_REGION( 0x1000, "maincpu", 0 )
465   ROM_LOAD( "m58846-702p", 0x0000, 0x1000, CRC(94ab7060) SHA1(3389bc115d1df8d01a30611fa9e95a900d32b29b) )
466ROM_END
467346
468
469
470347/*    YEAR  NAME      PARENT COMPAT MACHINE  INPUT     INIT              COMPANY, FULLNAME, FLAGS */
471348CONS( 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
r248538r248539
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 MAME, @ denotes it's in this driver)
18  (* denotes not yet emulated by MESS, @ denotes it's in this driver)
1919
2020
2121  TODO:
trunk/src/mess/drivers/hh_tms1k.c
r248538r248539
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 MAME, @ denotes it's in this driver)
81  (* denotes not yet emulated by MESS, @ denotes it's in this driver)
8282
8383
8484  TODO:
r248538r248539
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 MAME: rotate left
914  on how to play. Remember that you can rotate the view in MESS: rotate left
915915  for Home(P1) orientation, rotate right for Visitor(P2) orientation.
916916
917917  Cartridge socket:
r248538r248539
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 = MAME lampyx:
1079  lamp translation table: led LDzz from game PCB = MESS lampyx:
10801080
10811081    LD0  = -        LD10 = lamp12   LD20 = lamp42   LD30 = lamp60
10821082    LD1  = lamp23   LD11 = lamp4    LD21 = lamp41   LD31 = lamp61
r248538r248539
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 = MAME lampyx:
1212  lamp translation table: led zz from game PCB = MESS lampyx:
12131213
12141214    00 = -        10 = lamp94   20 = lamp74   30 = lamp50
12151215    01 = lamp53   11 = lamp93   21 = lamp75   31 = lamp51
r248538r248539
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 = MAME lampyx:
1338  lamp translation table: led zz from game PCB = MESS 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
r248538r248539
15171517  TMS1100, the second more widespread release runs on a COP400. There are
15181518  also differences with the overlay mask.
15191519
1520  NOTE!: MAME external artwork is recommended
1520  NOTE!: MESS external artwork is recommended
15211521
15221522***************************************************************************/
15231523
r248538r248539
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 = MAME lampyx:
1751  lamp translation table: led zz from game PCB = MESS lampyx:
17521752
17531753    11 = lamp90   21 = lamp91   31 = lamp92   41 = lamp93   51 = lamp95
17541754    12 = lamp80   22 = lamp81   32 = lamp82   42 = lamp83   52 = lamp85
r248538r248539
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 = MAME lampyx:
1876  lamp translation table: led zz from game PCB = MESS lampyx:
18771877
18781878    0 = -          10 = lamp44     20 = lamp53     30 = lamp95     40 = lamp92
18791879    1 = lamp30     11 = lamp45     21 = lamp54     31 = lamp85     41 = lamp93
r248538r248539
18861886    8 = lamp42     18 = lamp73     28 = lamp84     38 = lamp82
18871887    9 = lamp43     19 = -          29 = lamp94     39 = lamp83
18881888
1889  NOTE!: MAME external artwork is recommended
1889  NOTE!: MESS external artwork is recommended
18901890
18911891***************************************************************************/
18921892
r248538r248539
36843684// config
36853685
36863686/* physical button layout and labels is like this:
3687  (note: remember that you can rotate the display in MAME)
3687  (note: remember that you can rotate the display in MESS)
36883688
36893689    [SELECT  [BALL UP] [BALL OVER]
36903690     SCORE]
r248538r248539
40194019  - Japan: Block Attack
40204020  - UK: Break-In
40214021
4022  lamp translation table: led zz from game PCB = MAME lampyx:
4022  lamp translation table: led zz from game PCB = MESS lampyx:
40234023
40244024    00 = -         10 = lamp50    20 = lamp42
40254025    01 = lamp70    11 = lamp51    21 = lamp33
r248538r248539
46194619
46204620CONS( 1979, tbreakup,  0,        0, tbreakup,  tbreakup,  driver_device, 0, "Tomy", "Break Up (Tomy)", GAME_SUPPORTS_SAVE )
46214621
4622// ***: As far as MAME is concerned, the game is emulated fine. But for it to be playable, it requires interaction
4622// ***: As far as MESS 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
r248538r248539
5050 *128     uPD650C  1981, Roland TR-606
5151  133     uPD650C  1982, Roland TB-303 -> tb303.c
5252
53  (* denotes not yet emulated by MAME, @ denotes it's in this driver)
53  (* denotes not yet emulated by MESS, @ denotes it's in this driver)
5454
5555***************************************************************************/
5656
r248538r248539
229229  - Japan: "Missile Guerilla Warfare Maneuvers", published by Tomy
230230  - World: UFO Master-Blaster Station
231231
232  NOTE!: MAME external artwork is recommended
232  NOTE!: MESS external artwork is recommended
233233
234234***************************************************************************/
235235
r248538r248539
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!: MAME external artwork is recommended
344  NOTE!: MESS external artwork is recommended
345345
346346***************************************************************************/
347347
r248538r248539
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!: MAME external artwork is recommended
484  NOTE!: MESS external artwork is recommended
485485
486486***************************************************************************/
487487
r248538r248539
603603  * NEC uCOM-44 MCU, labeled EMIX D552C 049
604604  * cyan VFD display Emix-108
605605
606  NOTE!: MAME external artwork is recommended
606  NOTE!: MESS external artwork is recommended
607607
608608***************************************************************************/
609609
r248538r248539
712712  This is basically a revamp of their earlier Boxing game (ET-06), case and
713713  buttons are exactly the same.
714714
715  NOTE!: MAME external artwork is recommended
715  NOTE!: MESS external artwork is recommended
716716
717717***************************************************************************/
718718
r248538r248539
865865  - Japan: FL Crazy Climbing
866866  - USA: Crazy Climber
867867
868  NOTE!: MAME external artwork is recommended
868  NOTE!: MESS external artwork is recommended
869869
870870***************************************************************************/
871871
r248538r248539
967967  - USA: Invader From Space
968968  - UK: Invader From Space, published by Grandstand
969969
970  NOTE!: MAME external artwork is recommended
970  NOTE!: MESS external artwork is recommended
971971
972972***************************************************************************/
973973
r248538r248539
11791179  - Japan: Astro Wars
11801180  - UK: Astro Wars, published by Grandstand
11811181
1182  NOTE!: MAME external artwork is recommended
1182  NOTE!: MESS external artwork is recommended
11831183
11841184***************************************************************************/
11851185
r248538r248539
12811281  - USA: Astro Command, published by Tandy
12821282  - UK: Scramble, published by Grandstand
12831283
1284  NOTE!: MAME external artwork is recommended
1284  NOTE!: MESS external artwork is recommended
12851285
12861286***************************************************************************/
12871287
r248538r248539
13901390  - USA: Dracula, red case
13911391  - Other: Dracula, yellow case, published by Hales
13921392
1393  NOTE!: MAME external artwork is recommended
1393  NOTE!: MESS external artwork is recommended
13941394
13951395***************************************************************************/
13961396
r248538r248539
15891589  - USA: Cosmic Combat
15901590  - Japan: Space Attack
15911591
1592  NOTE!: MAME external artwork is recommended
1592  NOTE!: MESS external artwork is recommended
15931593
15941594***************************************************************************/
15951595
r248538r248539
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!: MAME external artwork is recommended
1691  NOTE!: MESS external artwork is recommended
16921692
16931693***************************************************************************/
16941694
r248538r248539
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!: MAME external artwork is recommended
1853  NOTE!: MESS external artwork is recommended
18541854
18551855***************************************************************************/
18561856
r248538r248539
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) | 0x100;
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);
18751875   display_matrix(19, 8, plate, grid);
18761876}
18771877
r248538r248539
19541954  - UK: Astro Blaster, published by Hales (Epoch Astro Command was named Scramble)
19551955  - Germany: Rambler
19561956
1957  NOTE!: MAME external artwork is recommended
1957  NOTE!: MESS external artwork is recommended
19581958
19591959***************************************************************************/
19601960
r248538r248539
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) | 0x400;
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);
19781978   display_matrix(17, 10, plate, m_grid);
19791979}
19801980
r248538r248539
20552055  - USA: Caveman, published by Tandy
20562056  - UK: Cave Man - Jr. Caveman vs Dinosaur, published by Grandstand
20572057
2058  NOTE!: MAME external artwork is recommended
2058  NOTE!: MESS external artwork is recommended
20592059
20602060***************************************************************************/
20612061
r248538r248539
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) | 0x40;
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);
20802080   display_matrix(19, 8, plate, grid);
20812081}
20822082
r248538r248539
21542154
21552155  To start the game, simply press [UP]. Hold a joystick direction to move around.
21562156
2157  NOTE!: MAME external artwork is recommended
2157  NOTE!: MESS external artwork is recommended
21582158
21592159***************************************************************************/
21602160
trunk/src/mess/drivers/mbdtower.c
r248538r248539
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 MAME is concerned, the game works fine.
16  as MESS 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
r248538r248539
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"),
5352         m_psg(*this, "ay8912"),
5453         m_centronics(*this, "centronics"),
5554         m_cent_data_out(*this, "cent_data_out"),
r248538r248539
8281
8382protected:
8483   required_device<cpu_device> m_maincpu;
85   required_device<palette_device> m_palette;
8684   required_device<ay8910_device> m_psg;
8785   required_device<centronics_device> m_centronics;
8886   required_device<output_latch_device> m_cent_data_out;
r248538r248539
202200
203201UINT32 oric_state::screen_update_oric(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
204202{
203   static const UINT32 colors[8] = {
204      0x000000,
205      0xff0000,
206      0x00ff00,
207      0xffff00,
208      0x0000ff,
209      0xff00ff,
210      0x00ffff,
211      0xffffff
212   };
213
205214   bool blink_state = m_blink_counter & 0x20;
206215   m_blink_counter = (m_blink_counter + 1) & 0x3f;
207216
r248538r248539
210219   for(int y=0; y<224; y++) {
211220      // Line attributes and current colors
212221      UINT8 lattr = 0;
213      UINT32 fgcol = m_palette->pen_color(7);
214      UINT32 bgcol = m_palette->pen_color(0);
222      UINT32 fgcol = colors[7];
223      UINT32 bgcol = colors[0];
215224
216225      UINT32 *p = &bitmap.pix32(y);
217226
r248538r248539
242251         if(!(ch & 0x60)) {
243252            pat = 0x00;
244253            switch(ch & 0x18) {
245            case 0x00: fgcol = m_palette->pen_color(ch & 7); break;
254            case 0x00: fgcol = colors[ch & 7]; break;
246255            case 0x08: lattr = ch & 7; break;
247            case 0x10: bgcol = m_palette->pen_color(ch & 7); break;
256            case 0x10: bgcol = colors[ch & 7]; break;
248257            case 0x18: pattr = ch & 7; break;
249258            }
250259         }
r248538r248539
775784   MCFG_SCREEN_UPDATE_DRIVER(oric_state, screen_update_oric)
776785   MCFG_SCREEN_VBLANK_DRIVER(oric_state, vblank_w)
777786
778   MCFG_PALETTE_ADD_3BIT_RGB("palette")
779
780787   /* sound hardware */
781788   MCFG_SPEAKER_STANDARD_MONO("mono")
782789   MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette")
trunk/src/mess/drivers/sdk80.c
r248538r248539
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 )
205COMP( 1975, sdk80,  0,       0,     sdk80,     sdk80,  driver_device,  0,     "Intel",  "SDK-80", GAME_NO_SOUND_HW | GAME_NOT_WORKING )
trunk/src/mess/drivers/wildfire.c
r248538r248539
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!: MAME external artwork is recommended
12  NOTE!: MESS external artwork is recommended
1313
1414
1515  TODO:
r248538r248539
9090   return (index < 3);
9191}
9292
93// lamp translation table: Lzz from patent US4334679 FIG.4 = MAME lampxxy,
93// lamp translation table: Lzz from patent US4334679 FIG.4 = MESS 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
r248538r248539
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),
108107      opt_verb("v", "verbose",              "be verbose - this produces lots of output", this),
109108      opt_quiet("q", "quiet",               "be quiet - no warnings", this),
110109      opt_help("h", "help",                 "display help", this)
r248538r248539
116115   poption_str    opt_file;
117116   poption_str_limit opt_type;
118117   poption_str    opt_cmd;
119   poption_str    opt_inp;
120118   poption_bool   opt_verb;
121119   poption_bool   opt_quiet;
122120   poption_bool   opt_help;
r248538r248539
265263   fprintf(stderr, "%s\n", opts.help().cstr());
266264}
267265
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
328266static void run(tool_options_t &opts)
329267{
330268   netlist_tool_t nt;
r248538r248539
333271   nt.m_opts = &opts;
334272   nt.init();
335273   nt.read_netlist(filetobuf(opts.opt_file()), opts.opt_name());
336
337   plist_t<input_t> *inps = read_input(&nt, opts.opt_inp());
338
339274   double ttr = opts.opt_ttr();
340275
341276   printf("startup time ==> %5.3f\n", (double) (osd_ticks() - t) / (double) osd_ticks_per_second() );
342277   printf("runnning ...\n");
343278   t = osd_ticks();
344279
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);
280   nt.process_queue(netlist::netlist_time::from_double(ttr));
356281   nt.stop();
357   pfree(inps);
358282
359283   double emutime = (double) (osd_ticks() - t) / (double) osd_ticks_per_second();
360284   printf("%f seconds emulation took %f real time ==> %5.2f%%\n", ttr, emutime, ttr/emutime*100.0);
trunk/src/tools/nlwav.c
r248538r248539
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