Previous 199869 Revisions Next

r33399 Friday 14th November, 2014 at 14:42:21 UTC by Vasantha Crabb
Update tilemap header comments/example to match current interface
[src/emu]tilemap.h
[src/emu/bus/plus4]c1551.h
[src/emu/machine]pla.c pla.h
[src/lib/util]plaparse.c
[src/mame]mame.lst mame.mak
[src/mame/drivers]alinvade.c dynax.c goldngam.c lethal.c meritm.c naomi.c popobear.c
[src/mame/etc]template_cpu.c template_cpu.h template_device.c template_device.h template_driver.c template_readme.txt
[src/mame/includes]lethal.h
[src/mame/layout]alinvade.lay
[src/mame/machine]naomim4.c naomim4.h
[src/mame/video]lethal.c
[src/mess/drivers]comp4.c ngen.c simon.c
[src/mess/includes]c128.h c64.h cbm2.h gamecom.h pet.h plus4.h
[src/mess/layout]gamecom.lay

trunk/src/emu/bus/plus4/c1551.h
r241910r241911
8484   required_device<tpi6525_device> m_tpi0;
8585   required_device<tpi6525_device> m_tpi1;
8686   required_device<c64h156_device> m_ga;
87   required_device<pla_device> m_pla;
87   required_device<pls100_device> m_pla;
8888   required_device<floppy_image_device> m_floppy;
8989   required_device<plus4_expansion_slot_device> m_exp;
9090   required_ioport m_jp1;
trunk/src/emu/machine/pla.c
r241910r241911
22// copyright-holders:Curt Coder
33/**********************************************************************
44
5    PLA (Programmable Logic Array) emulation
5    PLS100 16x48x8 Programmable Logic Array emulation
66
77    Copyright MESS Team.
88    Visit http://mamedev.org for licensing and usage restrictions.
r241910r241911
1010**********************************************************************/
1111
1212#include "pla.h"
13#include "jedparse.h"
14#include "plaparse.h"
1513
1614
17const device_type PLA = &device_creator<pla_device>;
1815
16//**************************************************************************
17//  DEVICE TYPE DEFINITIONS
18//**************************************************************************
19
20const device_type PLS100 = &device_creator<pls100_device>;
21const device_type MOS8721 = &device_creator<mos8721_device>;
22
23
24
25//**************************************************************************
26//  LIVE DEVICE
27//**************************************************************************
28
1929//-------------------------------------------------
2030//  pla_device - constructor
2131//-------------------------------------------------
2232
23pla_device::pla_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
24   : device_t(mconfig, PLA, "PLA", tag, owner, clock, "pla", __FILE__),
25      m_format(PLA_FMT_JEDBIN),
26      m_inputs(0),
27      m_outputs(0),
28      m_terms(0),
29      m_input_mask(0)
33pla_device::pla_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, int inputs, int outputs, int terms, UINT32 input_mask, const char *shortname, const char *source) :
34   device_t(mconfig, type, name, tag, owner, clock, shortname, source),
35   m_inputs(inputs),
36   m_outputs(outputs),
37   m_terms(terms),
38   m_input_mask(((UINT64)input_mask << 32) | input_mask)
3039{
3140}
3241
42pls100_device::pls100_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
43   pla_device(mconfig, PLS100, "PLS100", tag, owner, clock, 16, 8, 48, 0xffff, "pls100", __FILE__),
44   m_output(*this, "output")
45{
46}
3347
48mos8721_device::mos8721_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
49   pla_device(mconfig, MOS8721, "MOS8721", tag, owner, clock, 27, 18, 379, 0x7ffffff, "mos8721", __FILE__) // TODO actual number of terms is unknown
50{
51}
52
53
3454//-------------------------------------------------
3555//  device_start - device-specific startup
3656//-------------------------------------------------
3757
3858void pla_device::device_start()
3959{
40   assert(region() != NULL);
41   assert(m_terms < MAX_TERMS);
42   assert(m_inputs < 32 && m_outputs <= 32);
60   assert(machine().root_device().memregion(tag()) != NULL);
4361
44   if (m_input_mask == 0)
45      m_input_mask = ((UINT64)1 << m_inputs) - 1;
46   m_input_mask = ((UINT64)m_input_mask << 32) | m_input_mask;
47
4862   // parse fusemap
4963   parse_fusemap();
5064
51   // initialize cache
52   m_cache2_ptr = 0;
53   for (int i = 0; i < CACHE2_SIZE; i++)
54      m_cache2[i] = 0x80000000;
65   // clear cache
66   for (int i = 0; i < CACHE_SIZE; i++)
67   {
68      m_cache[i] = 0;
69   }
5570
56   m_cache_size = 0;
57   int csize = 1 << ((m_inputs > MAX_CACHE_BITS) ? MAX_CACHE_BITS : m_inputs);
58   m_cache.resize(csize);
59   for (int i = 0; i < csize; i++)
60      m_cache[i] = read(i);
61   
62   m_cache_size = csize;
71   m_cache_ptr = 0;
6372}
6473
74void pls100_device::device_start()
75{
76   pla_device::device_start();
6577
78   m_output.allocate(0x10000);
79
80   for (UINT32 input = 0; input < 0x10000; input++)
81   {
82      m_output[input] = pla_device::read(input);
83   }
84}
85
86
6687//-------------------------------------------------
6788//  parse_fusemap -
6889//-------------------------------------------------
6990
7091void pla_device::parse_fusemap()
7192{
93   memory_region *region = machine().root_device().memregion(tag());
7294   jed_data jed;
73   int result = JEDERR_NONE;
74   
75   // read pla file
76   switch (m_format)
77   {
78      case PLA_FMT_JEDBIN:
79         result = jedbin_parse(region()->base(), region()->bytes(), &jed);
80         break;
81     
82      case PLA_FMT_BERKELEY:
83         result = pla_parse(region()->base(), region()->bytes(), &jed);
84         break;
85   }
86   
87   if (result != JEDERR_NONE)
88      fatalerror("%s PLA parse error %d\n", tag(), result);
89   
90   // parse it
95
96   jedbin_parse(region->base(), region->bytes(), &jed);
97
9198   UINT32 fusenum = 0;
9299
93100   for (int p = 0; p < m_terms; p++)
r241910r241911
136143UINT32 pla_device::read(UINT32 input)
137144{
138145   // try the cache first
139   if (input < m_cache_size)
140      return m_cache[input];
141   
142   for (int i = 0; i < CACHE2_SIZE; ++i)
146   for (int i = 0; i < CACHE_SIZE; ++i)
143147   {
144      UINT64 cache2_entry = m_cache2[i];
148      UINT64 cache_entry = m_cache[i];
145149
146      if ((UINT32)cache2_entry == input)
150      if ((UINT32)cache_entry == input)
147151      {
148         // cache2 hit
149         return cache2_entry >> 32;
152         // cache hit
153         return cache_entry >> 32;
150154      }
151155   }
152156
r241910r241911
166170
167171   s ^= m_xor;
168172
169   // store output in cache2
170   m_cache2[m_cache2_ptr] = s | input;
171   ++m_cache2_ptr &= (CACHE2_SIZE - 1);
173   // store output in cache
174   m_cache[m_cache_ptr] = s | input;
175   ++m_cache_ptr &= (CACHE_SIZE - 1);
172176
173177   return s >> 32;
174178}
179
180
181//-------------------------------------------------
182//  read -
183//-------------------------------------------------
184
185UINT32 pls100_device::read(UINT32 input)
186{
187   return m_output[input];
188}
trunk/src/emu/machine/pla.h
r241910r241911
22// copyright-holders:Curt Coder
33/**********************************************************************
44
5    PLA (Programmable Logic Array) emulation
5    PLS100 16x48x8 Programmable Logic Array emulation
66
77    Copyright MESS Team.
88    Visit http://mamedev.org for licensing and usage restrictions.
99
10**********************************************************************
11                            _____   _____
12                    FE   1 |*    \_/     | 28  Vcc
13                    I7   2 |             | 27  I8
14                    I6   3 |             | 26  I9
15                    I5   4 |             | 25  I10
16                    I4   5 |             | 24  I11
17                    I3   6 |    82S100   | 23  I12
18                    I2   7 |    82S101   | 22  I13
19                    I1   8 |    PLS100   | 21  I14
20                    I0   9 |    PLS101   | 20  I15
21                    F7  10 |             | 19  _CE
22                    F6  11 |             | 18  F0
23                    F5  12 |             | 17  F1
24                    F4  13 |             | 16  F2
25                   GND  14 |_____________| 15  F3
26
1027**********************************************************************/
1128
1229#pragma once
r241910r241911
1532#define __PLA__
1633
1734#include "emu.h"
35#include "jedparse.h"
1836
1937
2038
r241910r241911
2341//**************************************************************************
2442
2543#define MAX_TERMS       512
26#define MAX_CACHE_BITS  16
27#define CACHE2_SIZE     8
44#define CACHE_SIZE      8
2845
29enum
30{
31   PLA_FMT_JEDBIN = 0,
32   PLA_FMT_BERKELEY
33};
3446
3547
36
3748///*************************************************************************
3849//  INTERFACE CONFIGURATION MACROS
3950///*************************************************************************
4051
41#define MCFG_PLA_ADD(_tag, _inputs, _outputs, _terms) \
42   MCFG_DEVICE_ADD(_tag, PLA, 0) \
43   pla_device::set_num_inputs(*device, _inputs); \
44   pla_device::set_num_outputs(*device, _outputs); \
45   pla_device::set_num_terms(*device, _terms);
46
47#define MCFG_PLA_INPUTMASK(_mask) \
48   pla_device::set_inputmask(*device, _mask);
49
50#define MCFG_PLA_FILEFORMAT(_format) \
51   pla_device::set_format(*device, _format);
52
53
54// macros for known (and used) devices
55
56// 82S100, 82S101, PLS100, PLS101
57// 16x48x8 PLA, 28-pin:
58/*           _____   _____
59     FE   1 |*    \_/     | 28  Vcc
60     I7   2 |             | 27  I8
61     I6   3 |             | 26  I9
62     I5   4 |             | 25  I10
63     I4   5 |             | 24  I11
64     I3   6 |    82S100   | 23  I12
65     I2   7 |    82S101   | 22  I13
66     I1   8 |    PLS100   | 21  I14
67     I0   9 |    PLS101   | 20  I15
68     F7  10 |             | 19  _CE
69     F6  11 |             | 18  F0
70     F5  12 |             | 17  F1
71     F4  13 |             | 16  F2
72    GND  14 |_____________| 15  F3
73*/
7452#define MCFG_PLS100_ADD(_tag) \
75   MCFG_PLA_ADD(_tag, 16, 8, 48)
53   MCFG_DEVICE_ADD(_tag, PLS100, 0)
7654
77// MOS 8721 PLA
78// TODO: actual number of terms is unknown
7955#define MCFG_MOS8721_ADD(_tag) \
80   MCFG_PLA_ADD(_tag, 27, 18, 379)
56   MCFG_DEVICE_ADD(_tag, MOS8721, 0)
8157
8258
83
8459///*************************************************************************
8560//  TYPE DEFINITIONS
8661///*************************************************************************
8762
8863// ======================> pla_device
8964
90class pla_device : public device_t
65class pla_device : public device_t
9166{
9267public:
9368   // construction/destruction
94   pla_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
69   pla_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, int inputs, int outputs, int terms, UINT32 output_mask, const char *shortname, const char *source);
9570
96   // static configuration helpers
97   static void set_num_inputs(device_t &device, UINT32 i) { downcast<pla_device &>(device).m_inputs = i; }
98   static void set_num_outputs(device_t &device, UINT32 o) { downcast<pla_device &>(device).m_outputs = o; }
99   static void set_num_terms(device_t &device, UINT32 t) { downcast<pla_device &>(device).m_terms = t; }
100   static void set_inputmask(device_t &device, UINT32 mask) { downcast<pla_device &>(device).m_input_mask = mask; } // UINT32!
101   static void set_format(device_t &device, int format) { downcast<pla_device &>(device).m_format = format; }
71   virtual UINT32 read(UINT32 input);
10272
103   UINT32 read(UINT32 input);
104
10573protected:
10674   // device-level overrides
10775   virtual void device_start();
10876
109private:
11077   void parse_fusemap();
11178
112   int m_format;
113   
114   UINT32 m_inputs;
115   UINT32 m_outputs;
116   UINT32 m_terms;
79   int m_inputs;
80   int m_outputs;
81   int m_terms;
11782   UINT64 m_input_mask;
11883   UINT64 m_xor;
11984
120   int m_cache_size;
121   dynamic_array<UINT32> m_cache;
122   UINT64 m_cache2[CACHE2_SIZE];
123   UINT8 m_cache2_ptr;
124
12585   struct term
12686   {
12787      UINT64 m_and;
12888      UINT64 m_or;
129   } m_term[MAX_TERMS];
89   };
90
91   term m_term[MAX_TERMS];
92
93   UINT64 m_cache[CACHE_SIZE];
94   UINT8 m_cache_ptr;
13095};
13196
13297
98// ======================> pls100_device
99
100class pls100_device : public pla_device
101{
102public:
103   pls100_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
104
105   // device-level overrides
106   virtual void device_start();
107
108   virtual UINT32 read(UINT32 input);
109
110private:
111   optional_shared_ptr<UINT8> m_output;
112};
113
114
115// ======================> mos8721_device
116
117class mos8721_device : public pla_device
118{
119public:
120   mos8721_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
121};
122
123
133124// device type definition
134extern const device_type PLA;
125extern const device_type PLS100;
126extern const device_type MOS8721;
135127
136128
129
137130#endif
trunk/src/emu/tilemap.h
r241910r241911
3636
3737            category (optional): specifies one of 16 categories for the
3838                pixels in the tile; the category controls which tiles are
39                rendered during a tilemap_draw() call
39                rendered during a tilemap::draw() call
4040
4141            group (optional): specifies one of 256 groups for pen mapping;
4242                each pen in the tile is looked up in a table to determine
r241910r241911
8181            all tiles rendered.
8282
8383        Flagsmap = an 8bpp bitmap containing per-pixel flags,
84            specifically the category (specified in bits 0-3) and
85            the layer (specified in bits 4-6).
84            specifically the category (specified in bits 0-3) and the
85            layer (specified in bits 4-6).
8686
8787****************************************************************************
8888
8989    How to use a tilemap:
9090
91    1. First create a new tilemap by calling tilemap_create(). The
92        parameters are as follows:
91    1. First create a new tilemap by calling tilemap_manager::create().
92        The parameters are as follows:
9393
94        tile_get_info = pointer to a callback function which accepts a
95            memory index and in return fills in a tile_info structure
96            that describes the characteristics of a tile; this function
97            will be called whenever a dirty tile needs to be rendered
94        decoder = reference to your device_gfx_interface
9895
99        mapper = pointer to a callback function which maps the logical
100            column and row to a memory index; several standard mappers
101            are provided, with tilemap_scan_rows being the most common
96        tile_get_info = callback function which accepts a memory index
97            and in return fills in a tile_data structure that describes
98            the characteristics of a tile; this function will be called
99            whenever a dirty tile needs to be rendered
102100
101        mapper = callback function which maps the logical column and row
102            to a memory index; several standard mappers are provided,
103            with TILEMAP_SCAN_ROWS being the most common
104
103105        tilewidth = the width, in pixels, of each individual tile
104106
105107        tileheight = the height, in pixels, of each individual tile
r241910r241911
112114        Common configuration tasks include:
113115
114116            * marking one of the pens as transparent via
115                tilemap_set_transparent_pen()
117                tilemap_t::set_transparent_pen()
116118
117119            * performing more complex pen-to-layer mapping via
118                tilemap_map_pen_to_layer() or
119                tilemap_map_pens_to_layer()
120                tilemap_t::map_pen_to_layer() or
121                tilemap_t::map_pens_to_layer()
120122
121123            * configuring global scroll offsets via
122                tilemap_set_scrolldx() and tilemap_set_scrolldy()
124                tilemap_t::set_scrolldx() and tilemap_t::set_scrolldy()
123125
124            * specifying a pointer that is passed to your tile_get_info
125                callback via tilemap_set_user_data()
126            * specifying a pointer that can be read back later (e.g. in
127                your tile_get_info callback) via
128                tilemap_t::set_user_data()
126129
127130            * setting a global palette offset via
128                tilemap_set_palette_offset()
131                tilemap_t::set_palette_offset()
129132
130133    3. In your memory write handlers for the tile memory, anytime tile
131134        data is modified, you need to mark the tile dirty so that it is
132135        re-rendered with the new data the next time the tilemap is drawn.
133        Use tilemap_mark_tile_dirty() and pass in the memory index.
136        Use tilemap_t::mark_tile_dirty() and pass in the memory index.
134137
135138    4. In your handlers for scrolling, update the scroll values for the
136        tilemap via tilemap_set_scrollx() and tilemap_set_scrolly().
139        tilemap via tilemap_t::set_scrollx() and tilemap_t::set_scrolly().
137140
138141    5. If any other major characteristics of the tilemap change (generally
139142        any global state that is used by the tile_get_info callback but
140143        which is not reported via other calls to the tilemap code), you
141144        should invalidate the entire tilemap. You can do this by calling
142        tilemap_mark_all_tiles_dirty().
145        tilemap_t::mark_all_dirty().
143146
144147    6. In your VIDEO_UPDATE callback, render the tiles by calling
145        tilemap_draw() or tilemap_draw_roz(). If you need to do custom
146        rendering and want access to the raw pixels, call
147        tilemap_get_pixmap() to get a pointer to the updated bitmap_ind16
148        tilemap_t::draw() or tilemap_t::draw_roz(). If you need to do
149        custom rendering and want access to the raw pixels, call
150        tilemap_t::pixmap() to get a reference to the updated bitmap_ind16
148151        containing the tilemap graphics.
149152
150153****************************************************************************
r241910r241911
157160
158161        tilemap_t *tmap;
159162        UINT16 *my_tmap_memory;
163        required_device<gfxdecode_device> gfxdecode;
160164
161        TILE_GET_INFO( my_get_info )
165        TILE_GET_INFO_MEMBER( my_state::my_get_info )
162166        {
163            UINT8 tiledata = my_tmap_memory[tile_index];
167            UINT16 tiledata = my_tmap_memory[tile_index];
164168            UINT8 code = tiledata & 0xff;
165169            UINT8 color = (tiledata >> 8) & 0x1f;
166170            UINT8 flipx = (tiledata >> 13) & 1;
r241910r241911
168172            UINT8 category = (tiledata >> 15) & 1;
169173
170174            // set the common info for the tile
171            SET_TILE_INFO(
172                1,              // use m_gfxdecode->gfx(1) for tile graphics
175            tileinfo.set(
176                1,              // use gfxdecode->gfx(1) for tile graphics
173177                code,           // the index of the graphics for this tile
174178                color,          // the color to use for this tile
175179                (flipx ? TILE_FLIPX : 0) |  // flags for this tile; also
176                (flipy ? TILE_FLIPY : 0);   // see the FLIP_YX macro
180                (flipy ? TILE_FLIPY : 0)    // see the FLIP_YX macro
177181            );
178182
179183            // set the category of each tile based on the high bit; this
r241910r241911
181185            tileinfo.category = category;
182186        }
183187
184        VIDEO_START( mydriver )
188        VIDEO_START_MEMBER( my_state, my_driver )
185189        {
186190            // first create the tilemap
187            tmap = tilemap_create(machine,
188                    my_get_info,            // pointer to your get_info
189                    tilemap_scan_rows,      // standard row-major mapper
191            tmap = &machine().tilemap().create(
192                    gfxdecode,
193                    tilemap_get_info_delegate(FUNC(my_state::my_get_info), this),
194                    TILEMAP_SCAN_ROWS,      // standard row-major mapper
190195                    8,8,                    // 8x8 tiles
191196                    64,32);                 // 64 columns, 32 rows
192197
193198            // then set the transparent pen; all other pens will default
194199            // to being part of layer 0
195            tilemap_set_transparent_pen(tmap, 0);
200            tmap.set_transparent_pen(0);
196201        }
197202
198        SCREEN_UPDATE( mydriver )
203        UINT32 my_state::screen_update_mydriver(
204            screen_device &screen,
205            bitmap_ind16 &bitmap,
206            const rectangle &cliprect)
199207        {
200208            // draw the tilemap first, fully opaque since it needs to
201209            // erase all previous pixels
202            tilemap_draw(
210            tmap->draw(
211                screen,                 // destination screen
203212                bitmap,                 // destination bitmap
204213                cliprect,               // clipping rectangle
205                tmap,                   // tilemap to draw
206                TILEMAP_DRAW_OPAQUE,    // flags
207                0);                     // don't use priority_bitmap
214                TILEMAP_DRAW_OPAQUE);   // flags
208215
209216            // next draw the sprites
210217            my_draw_sprites();
211218
212219            // then draw the tiles which have priority over sprites
213            tilemap_draw(
220            tmap->draw(
221                screen,                 // destination screen
214222                bitmap,                 // destination bitmap
215223                cliprect,               // clipping rectangle
216                tmap,                   // tilemap to draw
217                TILEMAP_DRAW_CATEGORY(1),// flags: draw category 1
218                0);                     // don't use priority_bitmap
224                TILEMAP_DRAW_CATEGORY(1));// flags: draw category 1
219225
220226            return 0;
221227        }
r241910r241911
237243
238244        TILEMAP_TRANSPARENT: This described a tilemap with a single
239245            transparent pen. To create the same effect, call
240            tilemap_set_transparent_pen() to specify which pen is
246            tilemap_t::set_transparent_pen() to specify which pen is
241247            transparent; all other pens will map to layer 0.
242248
243249        TILEMAP_BITMASK: This type is no longer special; with the new
r241910r241911
250256            also allowed for you to choose one of 4 mappings on a per-tile
251257            basis. All of this functionality is now expanded: you can
252258            specify one of 3 layers and can choose from one of 256 mappings
253            on a per-tile basis. You just call tilemap_set_transmask(),
259            on a per-tile basis. You just call tilemap_t::set_transmask(),
254260            which still exists but maps onto the new behavior. The "front"
255261            layer is now "layer 0" and the "back" layer is now "layer 1".
256262
r241910r241911
275281        TILEMAP_DRAW_LAYER0 is assumed.
276282
277283    * If you want to render with alpha blending, you can call
278        tilemap_draw() with the TILEMAP_DRAW_ALPHA flag.
284        tilemap_t::draw() with the TILEMAP_DRAW_ALPHA flag.
279285
280286    * To configure more complex pen-to-layer mapping, use the
281        tilemap_map_pens_to_layer() call. This call takes a group number
282        so that you can configure 1 of the 256 groups independently.
283        It also takes a pen and a mask; the mapping is updated for all
284        pens where ((pennum & mask) == pen). To set all the pens in a
285        group to the same value, pass a mask of 0. To set a single pen in
286        a group, pass a mask of ~0. The helper function
287        tilemap_map_pen_to_layer() does this for you.
287        tilemap_t::map_pens_to_layer() call. This call takes a group
288        number so that you can configure 1 of the 256 groups
289        independently. It also takes a pen and a mask; the mapping is
290        updated for all pens where ((pennum & mask) == pen). To set all
291        the pens in a group to the same value, pass a mask of 0. To set
292        a single pen in a group, pass a mask of ~0. The helper function
293        tilemap_t::map_pen_to_layer() does this for you.
288294
289295***************************************************************************/
290296
r241910r241911
306312#define TILEMAP_NUM_GROUPS              256
307313
308314
309// these flags control tilemap_draw() behavior
315// these flags control tilemap_t::draw() behavior
310316const UINT32 TILEMAP_DRAW_CATEGORY_MASK = 0x0f;     // specify the category to draw
311317const UINT32 TILEMAP_DRAW_LAYER0 = 0x10;            // draw layer 0
312318const UINT32 TILEMAP_DRAW_LAYER1 = 0x20;            // draw layer 1
r241910r241911
329335const UINT8 TILE_FORCE_LAYER1 = TILEMAP_PIXEL_LAYER1; // force all pixels to be layer 1 (no transparency)
330336const UINT8 TILE_FORCE_LAYER2 = TILEMAP_PIXEL_LAYER2; // force all pixels to be layer 2 (no transparency)
331337
332// tilemap global flags, used by tilemap_set_flip()
338// tilemap global flags, used by tilemap_t::set_flip()
333339const UINT32 TILEMAP_FLIPX = TILE_FLIPX;            // draw the tilemap horizontally flipped
334340const UINT32 TILEMAP_FLIPY = TILE_FLIPY;            // draw the tilemap vertically flipped
335341
r241910r241911
767773//  MACROS
768774//**************************************************************************
769775
770// macros to help form flags for tilemap_draw
776// macros to help form flags for tilemap_t::draw
771777#define TILEMAP_DRAW_CATEGORY(x)        (x)     // specify category to draw
772778#define TILEMAP_DRAW_ALPHA(x)           (TILEMAP_DRAW_ALPHA_FLAG | (rgb_t::clamp(x) << 24))
773779
trunk/src/lib/util/plaparse.c
r241910r241911
183183
184184      // end of file
185185      case 'e':
186         if (LOG_PARSE) printf("End of file\n");
186         printf("End of file\n");
187187         break;
188188   }
189189
trunk/src/mame/drivers/alinvade.c
r241910r241911
22
33 tiny bartop b&w Space Invaders type game with colour overlay
44 
5 Driver by David Haywood and Mariusz Wojcieszek
5 does it use any off-the shelf chips in addition to the 6502?
66
7 TODO:
8 - 16 bytes are protected in the c*** range. I'm guessing they used a PROM to protect a
9 simple sub-routine because just after that the program has a left-over located at 0xe000-0xe00f (yup, NOPs + a RTS)
10 It's unknown at current stage what it really protects tho ...
11 
12 */
137
8*/
9
1410#include "emu.h"
1511#include "cpu/m6502/m6502.h"
16#include "alinvade.lh"
1712
1813class alinvade_state : public driver_device
1914{
2015public:
2116   alinvade_state(const machine_config &mconfig, device_type type, const char *tag)
2217      : driver_device(mconfig, type, tag),
23       m_maincpu(*this, "maincpu"),
2418         m_videoram(*this, "videoram")
2519   { }
26   
27   UINT8 irqmask;
28   UINT8 irqff;
29   DECLARE_READ8_MEMBER(irqmask_r);
30   DECLARE_WRITE8_MEMBER(irqmask_w);
31   INTERRUPT_GEN_MEMBER(vblank_irq);
32   required_device<cpu_device> m_maincpu;
20
3321   required_shared_ptr<UINT8> m_videoram;
3422
3523public:
r241910r241911
3826   UINT32 screen_update_alinvade(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
3927};
4028
41READ8_MEMBER(alinvade_state::irqmask_r)
42{
43   return 0; // TODO: might be anything
44}
4529
4630
47WRITE8_MEMBER(alinvade_state::irqmask_w)
48{
49   if((!(irqff & 1)) && (data & 1)) // f/f, active high? If the above actually returns 0xff this could be active low ...
50      irqmask^= 1;
51     
52   irqff = data;
53}
54
5531static ADDRESS_MAP_START( alinvade_map, AS_PROGRAM, 8, alinvade_state )
56    AM_RANGE(0x0000, 0x01ff) AM_RAM
57    AM_RANGE(0x0400, 0x0bff) AM_RAM AM_SHARE("videoram")
58   AM_RANGE(0x0c00, 0x0dff) AM_RAM
59    AM_RANGE(0x2000, 0x2000) AM_WRITENOP //??
60    AM_RANGE(0x4000, 0x4000) AM_READ_PORT("COIN")
61    AM_RANGE(0x6000, 0x6000) AM_READ_PORT("DSW")
62    AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0")
63    AM_RANGE(0x8001, 0x8001) AM_READ_PORT("IN1")
64    AM_RANGE(0x8002, 0x8002) AM_READ_PORT("IN2")
65    AM_RANGE(0x8003, 0x8003) AM_READ_PORT("IN3")
66    AM_RANGE(0x8004, 0x8004) AM_READ_PORT("IN4")
67    AM_RANGE(0xa000, 0xa000) AM_WRITENOP //??
68    AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0xff0) AM_ROM AM_REGION("proms",0)
69    AM_RANGE(0xe000, 0xe3ff) AM_ROM
70    AM_RANGE(0xe400, 0xe400) AM_WRITENOP //??
71    AM_RANGE(0xe800, 0xe800) AM_READWRITE(irqmask_r,irqmask_w) //??
72    AM_RANGE(0xec00, 0xffff) AM_ROM
73ADDRESS_MAP_END
32   AM_RANGE(0x0000, 0x01ff) AM_RAM   
33   AM_RANGE(0x0400, 0x0bff) AM_RAM   AM_SHARE("videoram")
7434
35   AM_RANGE(0xe000, 0xe3ff) AM_ROM
36   AM_RANGE(0xe800, 0xebff) AM_RAM   
37   AM_RANGE(0xec00, 0xffff) AM_ROM
7538
76static INPUT_PORTS_START( alinvade )
77    PORT_START("COIN")
78    PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_COIN1 )
79    PORT_BIT(0xef, IP_ACTIVE_LOW, IPT_UNKNOWN )
8039
81    PORT_START("IN0")
82    PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
83    PORT_BIT(0xdf, IP_ACTIVE_HIGH, IPT_UNKNOWN )
40ADDRESS_MAP_END
8441
85    PORT_START("IN1")
86    PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_2WAY PORT_PLAYER(1)
87    PORT_BIT(0xdf, IP_ACTIVE_HIGH, IPT_UNKNOWN )
8842
89    PORT_START("IN2")
90    PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_2WAY PORT_PLAYER(1)
91    PORT_BIT(0xdf, IP_ACTIVE_HIGH, IPT_UNKNOWN )
92
93    PORT_START("IN3")
94    PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_START1 )
95    PORT_BIT(0xdf, IP_ACTIVE_HIGH, IPT_UNKNOWN )
96
97    PORT_START("IN4")
98    PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_START2 )
99    PORT_BIT(0xdf, IP_ACTIVE_HIGH, IPT_UNKNOWN )
100
101    PORT_START("DSW")
102    PORT_DIPNAME( 0x03, 0x00, DEF_STR( Lives ) )
103    PORT_DIPSETTING(    0x00, "2" )
104    PORT_DIPSETTING(    0x01, "3" )
105    PORT_DIPSETTING(    0x02, "4" )
106    PORT_DIPSETTING(    0x03, "5" )
107    PORT_DIPNAME( 0x04, 0x00, DEF_STR ( Unknown ) )    // read, but not tested afterwards?
108    PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
109    PORT_DIPSETTING(    0x04, DEF_STR( On ) )
110    PORT_BIT( 0xf8, IP_ACTIVE_HIGH, IPT_UNUSED )
43static INPUT_PORTS_START( alinvade )
11144INPUT_PORTS_END
11245
11346
47
11448void alinvade_state::machine_start()
11549{
11650}
11751
11852void alinvade_state::machine_reset()
11953{
120   irqmask = 1;
12154}
12255
12356UINT32 alinvade_state::screen_update_alinvade(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
r241910r241911
14679   return 0;
14780}
14881
149INTERRUPT_GEN_MEMBER(alinvade_state::vblank_irq)
150{
151   if(irqmask & 1)
152      m_maincpu->set_input_line(0,HOLD_LINE);
153}
15482
15583static MACHINE_CONFIG_START( alinvade, alinvade_state )
15684
15785   /* basic machine hardware */
15886   MCFG_CPU_ADD("maincpu", M6502,2000000)         /* ? MHz */
15987   MCFG_CPU_PROGRAM_MAP(alinvade_map)
160   MCFG_CPU_VBLANK_INT_DRIVER("screen", alinvade_state,  vblank_irq)
88//   MCFG_CPU_VBLANK_INT_DRIVER("screen", alinvade_state,  irq0_line_hold)
16189
16290   /* video hardware */
16391   MCFG_SCREEN_ADD("screen", RASTER)
r241910r241911
16795   MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0, 128-1)
16896   MCFG_SCREEN_UPDATE_DRIVER(alinvade_state, screen_update_alinvade)
16997
170   // TODO: MCFG_DEFAULT_LAYOUT for square pixels
171   
17298   /* sound hardware */
17399   MCFG_SPEAKER_STANDARD_MONO("mono")
174100MACHINE_CONFIG_END
r241910r241911
177103
178104ROM_START( alinvade )
179105   ROM_REGION( 0x10000, "maincpu", 0 ) // todo, check mapping
180    ROM_LOAD( "alien28.708", 0xe000, 0x0400, CRC(de376295) SHA1(e8eddbb1be1f8661c6b5b39c0d78a65bded65db2) )
181    ROM_LOAD( "alien29.708", 0xec00, 0x0400, CRC(20212977) SHA1(9d24a6b403d968267079fa6241545bd5a01afebb) )
182    ROM_LOAD( "alien30.708", 0xf000, 0x0400, CRC(734b691c) SHA1(9e562159061eecf4b1dee4ea0ee4752c901a54aa) )
183    ROM_LOAD( "alien31.708", 0xf400, 0x0400, CRC(5a70535c) SHA1(2827e7d4bffca78bd035da04481e1e972ee2da39) )
184    ROM_LOAD( "alien32.708", 0xf800, 0x0400, CRC(332dd234) SHA1(9974668344a2a351868a9e7757d1c3a497dc5621) )
185    ROM_LOAD( "alien33.708", 0xfc00, 0x0400, CRC(e0d57fc7) SHA1(7b8ddcb4a86811592d2d0bbc61b2f19e5caa9ccc) )
186
187   ROM_REGION( 0x20, "proms", 0 )
188   ROM_LOAD( "prom", 0, 0x20, NO_DUMP )
189   ROM_FILL( 0x00, 0x0f, 0xea )   
190   ROM_FILL( 0x0f, 0x01, 0x60 )    // rts for whole area, interrupt code jumps to various addresses here, check note on top.   
106   ROM_LOAD( "alien28.708", 0xe000, 0x0400, CRC(de376295) SHA1(e8eddbb1be1f8661c6b5b39c0d78a65bded65db2) )
107   ROM_LOAD( "alien29.708", 0xec00, 0x0400, CRC(20212977) SHA1(9d24a6b403d968267079fa6241545bd5a01afebb) )
108   ROM_LOAD( "alien30.708", 0xf000, 0x0400, CRC(734b691c) SHA1(9e562159061eecf4b1dee4ea0ee4752c901a54aa) )
109   ROM_LOAD( "alien31.708", 0xf400, 0x0400, CRC(5a70535c) SHA1(2827e7d4bffca78bd035da04481e1e972ee2da39) )
110   ROM_LOAD( "alien32.708", 0xf800, 0x0400, CRC(332dd234) SHA1(9974668344a2a351868a9e7757d1c3a497dc5621) )
111   ROM_LOAD( "alien33.708", 0xfc00, 0x0400, CRC(e0d57fc7) SHA1(7b8ddcb4a86811592d2d0bbc61b2f19e5caa9ccc) )
191112ROM_END
192113
193114
194GAMEL( 198?, alinvade,  0,    alinvade, alinvade, driver_device,  0, ROT90, "Forbes?", "Alien Invaders", GAME_UNEMULATED_PROTECTION | GAME_NO_SOUND, layout_alinvade )
115GAME( 198?, alinvade,  0,    alinvade, alinvade, driver_device,  0, ROT90, "Forbes?", "Alien Invaders", GAME_NOT_WORKING )
trunk/src/mame/drivers/dynax.c
r241910r241911
482482   AM_RANGE( 0x8000, 0x81ff ) AM_WRITE(yarunara_palette_w) // Palette or RTC
483483ADDRESS_MAP_END
484484
485//identical to yarunara, but nvram is in the 0x6000 - 0x6fff range
486static ADDRESS_MAP_START( quiztvqq_mem_map, AS_PROGRAM, 8, dynax_state )
487   AM_RANGE( 0x0000, 0x5fff ) AM_ROM
488   AM_RANGE( 0x6000, 0x6fff ) AM_RAM AM_SHARE("nvram")
489   AM_RANGE( 0x7000, 0x7fff ) AM_RAM
490   AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
491   AM_RANGE( 0x8000, 0x81ff ) AM_WRITE(yarunara_palette_w) // Palette or RTC
492ADDRESS_MAP_END
493
494485static ADDRESS_MAP_START( jantouki_mem_map, AS_PROGRAM, 8, dynax_state )
495486   AM_RANGE( 0x0000, 0x5fff ) AM_ROM
496487   AM_RANGE( 0x6000, 0x6fff ) AM_RAM
r241910r241911
43374328   MCFG_DEVICE_ADD("rtc", MSM6242, XTAL_32_768kHz)
43384329MACHINE_CONFIG_END
43394330
4340static MACHINE_CONFIG_DERIVED( quiztvqq, yarunara )
43414331
4342   /* basic machine hardware */
4343   MCFG_CPU_MODIFY("maincpu")
4344   MCFG_CPU_PROGRAM_MAP(quiztvqq_mem_map)
4345MACHINE_CONFIG_END
4346
4347
43484332/***************************************************************************
43494333                            Mahjong Campus Hunting
43504334***************************************************************************/
r241910r241911
69186902GAME( 1991, mjdialq2, 0,        mjdialq2, mjdialq2, driver_device, 0,        ROT180, "Dynax",                    "Mahjong Dial Q2 (Japan)",                                       GAME_SUPPORTS_SAVE )
69196903GAME( 1991, yarunara, 0,        yarunara, yarunara, driver_device, 0,        ROT180, "Dynax",                    "Mahjong Yarunara (Japan)",                                      GAME_SUPPORTS_SAVE )
69206904GAME( 1991, mjangels, 0,        yarunara, yarunara, driver_device, 0,        ROT180, "Dynax",                    "Mahjong Angels - Comic Theater Vol.2 (Japan)",                  GAME_SUPPORTS_SAVE )
6921GAME( 1992, quiztvqq, 0,        quiztvqq, quiztvqq, driver_device, 0,        ROT180, "Dynax",                    "Quiz TV Gassyuukoku Q&Q (Japan)",                               GAME_SUPPORTS_SAVE )
6905GAME( 1992, quiztvqq, 0,        yarunara, quiztvqq, driver_device, 0,        ROT180, "Dynax",                    "Quiz TV Gassyuukoku Q&Q (Japan)",                               GAME_SUPPORTS_SAVE )
69226906GAME( 1993, mjelctrn, 0,        mjelctrn, mjelctrn, dynax_state,   mjelct3,  ROT180, "Dynax",                    "Mahjong Electron Base (parts 2 & 4, Japan)",                    GAME_SUPPORTS_SAVE )
69236907GAME( 1990, mjelct3,  mjelctrn, mjelctrn, mjelct3,  dynax_state,   mjelct3,  ROT180, "Dynax",                    "Mahjong Electron Base (parts 2 & 3, Japan)",                    GAME_SUPPORTS_SAVE )
69246908GAME( 1990, mjelct3a, mjelctrn, mjelctrn, mjelct3,  dynax_state,   mjelct3a, ROT180, "Dynax",                    "Mahjong Electron Base (parts 2 & 3, alt., Japan)",              GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/goldngam.c
r241910r241911
264264
265265UINT32 goldngam_state::screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
266266{
267   int x, y;
268
269   // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
270   UINT8 *tmp = reinterpret_cast<UINT8 *>(m_videoram.target());
267271   int index = 0;
268272
269   for(int y = 0; y < 512; ++y)
273   for(y = 0; y < 512; ++y)
270274   {
271      for(int x = 0; x < 384; x += 2)
275      for(x = 0; x < 384; ++x)
272276      {
273         UINT16 word = m_videoram[index];
274         bitmap.pix16(y, x) = word >> 8;
275         bitmap.pix16(y, x+1) = word & 0xff;
277         bitmap.pix16(y, x) = tmp[index ^ 1]; /* swapped bytes in 16 bit word */
276278         ++index;
277279      }
278280   }
trunk/src/mame/drivers/lethal.c
r241910r241911
109109---------------- --- -------- --------- -----------------------
110110000xxxxxxxxxxxxx R   xxxxxxxx PROM      program ROM (banked)
111111001xxxxxxxxxxxxx R/W xxxxxxxx WRAM      work RAM
112010000--00xxxxxx   W xxxxxxxx VREG      054156 control
113010000--01--xxxx   W xxxxxxxx VSCG      054157 control
112010000--00xxxxxx   W xxxxxxxx VREG      056832 control
113010000--01--xxxx   W xxxxxxxx VSCG      056832 control
114114010000--1000---- R/W -------- AFR       watchdog reset
115115010000--1001----   W          SDON      sound enable?
116116010000--1010                  CCLR      ?
r241910r241911
121121010000--11-000--   W --x----- CRDB      /
122122010000--11-001--   W -----xxx EEP       EEPROM DI, CS, CLK
123123010000--11-001--   W ----x--- MUT       sound mute?
124010000--11-001--   W ---x---- CBNK      bank switch 4400-7FFF region between palette and 053245/054156
124010000--11-001--   W ---x---- CBNK      bank switch 4800-7FFF region between palette and 053245/056832
125125010000--11-001--   W --x----- n.c.
126126010000--11-001--   W xx------ SHD0/1    shadow control
127127010000--11-010--   W -----xxx PCU1/XBA  palette bank (tilemap A)
r241910r241911
138138010000--11-11011 R   -------x NCPU      ?
139139010000--11-111--   W --xxxxxx BREG      ROM bank select
140140010010--00------              n.c.
141010010--01---xxx R/W xxxxxxxx OREG      053244/053245 control
141010010--01---xxx R/W xxxxxxxx OREG      053244
142142010010--10-xxxxx R/W xxxxxxxx HIP       054000
143143010010--11       R/W xxxxxxxx PAR       sound communication
144010100xxxxxxxxxx R/W xxxxxxxx OBJ       053245 sprite RAM
145011xxxxxxxxxxxxx R/W xxxxxxxx VRAM      054156 video RAM
144010100xxxxxxxxxx R/W xxxxxxxx OBJ       053245
145011xxxxxxxxxxxxx R/W xxxxxxxx VRAM      056832
1461461xxxxxxxxxxxxxxx R   xxxxxxxx PROM      program ROM
147147
148148
r241910r241911
231231
232232note:
233233
234Lethal Enforcers has two sprite rendering chips working in parallel with their
235output mixed to give 6bpp, and two tilemap rendering chips working in parallel
236to give 8bpp. We currently cheat, using just one of each device but using
237alternate gfx layouts. Emulating it accurately will require separating the
238"front end" chips (053245, 054156) from the "back end" chips (053244, 054157)
239as only the latter are doubled.
234lethal enforcers has 2 sprite rendering chips working in parallel mixing
235data together to give 6bpp.. we cheat by using a custom function in
236konamiic.c and a fixed 6bpp decode.
240237
241238mirror not set up correctly
242239
r241910r241911
268265   /* bit 1 is cs (active low) */
269266   /* bit 2 is clock (active high) */
270267   /* bit 3 is "MUT" on the schematics (audio mute?) */
271   /* bit 4 bankswitches the 4400-7fff region: 0 = registers, 1 = palette RAM ("CBNK" on schematics) */
268   /* bit 4 bankswitches the 4800-7fff region: 0 = registers, 1 = RAM ("CBNK" on schematics) */
272269   /* bit 6 is "SHD0" (some kind of shadow control) */
273270   /* bit 7 is "SHD1" (ditto) */
274271
275272   m_cur_control2 = data;
276273
277   m_bank4000->set_bank(BIT(m_cur_control2, 4));
274   m_bank4800->set_bank((m_cur_control2 >> 4) & 1);
278275
279276   ioport("EEPROMOUT")->write(m_cur_control2, 0xff);
280277}
r241910r241911
305302   membank("bank1")->set_entry(data);
306303}
307304
305// use one more palette entry for the BG color
306WRITE8_MEMBER(lethal_state::le_bgcolor_w)
307{
308   m_palette->write(space, 0x3800 + offset, data);
309}
310
308311READ8_MEMBER(lethal_state::guns_r)
309312{
310313   switch (offset)
r241910r241911
353356   AM_RANGE(0x40d9, 0x40d9) AM_READ_PORT("INPUTS")
354357   AM_RANGE(0x40db, 0x40db) AM_READ(gunsaux_r)     // top X bit of guns
355358   AM_RANGE(0x40dc, 0x40dc) AM_WRITE(le_bankswitch_w)
356   AM_RANGE(0x4000, 0x43ff) AM_UNMAP // first 0x400 bytes of palette RAM are inaccessible
357   AM_RANGE(0x4000, 0x7fff) AM_DEVICE("bank4000", address_map_bank_device, amap8)
359   AM_RANGE(0x47fe, 0x47ff) AM_WRITE(le_bgcolor_w)     // BG color
360   AM_RANGE(0x4800, 0x7fff) AM_DEVICE("bank4800", address_map_bank_device, amap8)
358361   AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0x38000)
359362ADDRESS_MAP_END
360363
361static ADDRESS_MAP_START( bank4000_map, AS_PROGRAM, 8, lethal_state )
362    // VRD = 0 or 1, CBNK = 0
363   AM_RANGE(0x0840, 0x084f) AM_MIRROR(0x8000) AM_DEVREADWRITE("k053244", k05324x_device, k053244_r, k053244_w)
364   AM_RANGE(0x0880, 0x089f) AM_MIRROR(0x8000) AM_DEVREADWRITE("k054000", k054000_device, read, write)
365   AM_RANGE(0x08c6, 0x08c6) AM_MIRROR(0x8000) AM_WRITE(sound_cmd_w)
366   AM_RANGE(0x08c7, 0x08c7) AM_MIRROR(0x8000) AM_WRITE(sound_irq_w)
367   AM_RANGE(0x08ca, 0x08ca) AM_MIRROR(0x8000) AM_READ(sound_status_r)
368   AM_RANGE(0x1000, 0x17ff) AM_MIRROR(0x8000) AM_DEVREADWRITE("k053244", k05324x_device, k053245_r, k053245_w)
369
370   // VRD = 0, CBNK = 0
371   AM_RANGE(0x2000, 0x27ff) AM_DEVREADWRITE("k056832", k056832_device, ram_code_lo_r, ram_code_lo_w)
372   AM_RANGE(0x2800, 0x2fff) AM_DEVREADWRITE("k056832", k056832_device, ram_code_hi_r, ram_code_hi_w)
373   AM_RANGE(0x3000, 0x37ff) AM_DEVREADWRITE("k056832", k056832_device, ram_attr_lo_r, ram_attr_lo_w)
374   AM_RANGE(0x3800, 0x3fff) AM_DEVREADWRITE("k056832", k056832_device, ram_attr_hi_r, ram_attr_hi_w)
375
376   // VRD = 1, CBNK = 0 or 1
377   AM_RANGE(0xa000, 0xbfff) AM_MIRROR(0x4000) AM_UNMAP // AM_DEVREAD("k056832", k056832_device, rom_byte_r)
378
379   // CBNK = 1; partially overlaid when VRD = 1
380   AM_RANGE(0x4000, 0x7fff) AM_MIRROR(0x8000) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")
364static ADDRESS_MAP_START( bank4800_map, AS_PROGRAM, 8, lethal_state )
365   AM_RANGE(0x0040, 0x004f) AM_DEVREADWRITE("k053244", k05324x_device, k053244_r, k053244_w)
366   AM_RANGE(0x0080, 0x009f) AM_DEVREADWRITE("k054000", k054000_device, read, write)
367   AM_RANGE(0x00c6, 0x00c6) AM_WRITE(sound_cmd_w)
368   AM_RANGE(0x00c7, 0x00c7) AM_WRITE(sound_irq_w)
369   AM_RANGE(0x00ca, 0x00ca) AM_READ(sound_status_r)
370   AM_RANGE(0x0800, 0x17ff) AM_MASK(0x07ff) AM_DEVREADWRITE("k053244", k05324x_device, k053245_r, k053245_w)
371   AM_RANGE(0x1800, 0x1fff) AM_DEVREADWRITE("k056832", k056832_device, ram_code_lo_r, ram_code_lo_w)
372   AM_RANGE(0x2000, 0x27ff) AM_DEVREADWRITE("k056832", k056832_device, ram_code_hi_r, ram_code_hi_w)
373   AM_RANGE(0x2800, 0x2fff) AM_DEVREADWRITE("k056832", k056832_device, ram_attr_lo_r, ram_attr_lo_w)
374   AM_RANGE(0x3000, 0x37ff) AM_DEVREADWRITE("k056832", k056832_device, ram_attr_hi_r, ram_attr_hi_w)
375   AM_RANGE(0x3800, 0x7001) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") // 2 extra bytes for the BG color
381376ADDRESS_MAP_END
382377
383378static ADDRESS_MAP_START( le_sound, AS_PROGRAM, 8, lethal_state )
r241910r241911
472467   membank("bank1")->set_entry(0);
473468
474469   save_item(NAME(m_cur_control2));
475   save_item(NAME(m_layer_colorbase));
476470   save_item(NAME(m_sprite_colorbase));
477   save_item(NAME(m_back_colorbase));
471   save_item(NAME(m_layer_colorbase));
478472}
479473
480474void lethal_state::machine_reset()
r241910r241911
483477      m_layer_colorbase[i] = 0;
484478
485479   m_sprite_colorbase = 0;
486   m_back_colorbase = 0;
487480   m_cur_control2 = 0;
488   m_bank4000->set_bank(0);
481   m_bank4800->set_bank(0);
489482}
490483
491484static MACHINE_CONFIG_START( lethalen, lethal_state )
r241910r241911
498491   MCFG_CPU_ADD("soundcpu", Z80, MAIN_CLOCK/4)  /* verified on pcb */
499492   MCFG_CPU_PROGRAM_MAP(le_sound)
500493
501   MCFG_DEVICE_ADD("bank4000", ADDRESS_MAP_BANK, 0)
502   MCFG_DEVICE_PROGRAM_MAP(bank4000_map)
494   MCFG_DEVICE_ADD("bank4800", ADDRESS_MAP_BANK, 0)
495   MCFG_DEVICE_PROGRAM_MAP(bank4800_map)
503496   MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
504497   MCFG_ADDRESS_MAP_BANK_DATABUS_WIDTH(8)
505   MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(16)
506   MCFG_ADDRESS_MAP_BANK_STRIDE(0x4000)
498   MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH(15)
499   MCFG_ADDRESS_MAP_BANK_STRIDE(0x3800)
507500
508501   MCFG_EEPROM_SERIAL_ER5911_8BIT_ADD("eeprom")
509502
r241910r241911
518511   MCFG_SCREEN_UPDATE_DRIVER(lethal_state, screen_update_lethalen)
519512   MCFG_SCREEN_PALETTE("palette")
520513
521   MCFG_PALETTE_ADD("palette", 8192)
514   MCFG_PALETTE_ADD("palette", 7168+1)
522515   MCFG_PALETTE_ENABLE_SHADOWS()
523516   MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR)
524517
trunk/src/mame/drivers/meritm.c
r241910r241911
9494  Pit Boss Superstar III 30 (c)1993
9595  Pit Boss Megastar (c)1994
9696  Pit Boss Supertouch 30 (c)1993/4
97  Pit Boss Megatouch (c)1994
9897
9998Custom Program Versions (Superstar 30 / Supertouch 30):
10099
r241910r241911
110109
111110
112111  CRT-260:
112  *Megatouch Video (c)1994?
113113  Megatouch II (c)1994
114114  Megatouch III (c)1995
115115  Megatouch III Tournament Edition (c)1996
r241910r241911
11911191The Touchscreen Calibration routine doesn't seem to work?
11921192
11931193*/
1194
11941195ROM_START( mtjpoker ) /* Uses the CRT-258 touch controller board & Dallas DS1225Y NV SRAM */
11951196   ROM_REGION( 0x80000, "maincpu", 0 )
11961197   ROM_LOAD( "9132-00-02_u9-r0.u9", 0x00000, 0x10000, CRC(4ec683b6) SHA1(7cff76ba1517deede3dfa2a419e11fd603dcf695) ) /* 9132-00-02 R0 46  940416 */
r241910r241911
12121213 Hold5 advances through the list.
12131214 Hi-Score will clear the High Scores
12141215
1215Is the "Stand" & "Hi-Score" keys the same? Without a separate Stand key, you cannot set up the "TWIN" bonus feature
1216Is the "Stand" & "Hi-Score" keys the same? Without a sperate Stand key, you cannot set up the "TWIN" bonus feature
12161217
12171218*/
1219
12181220ROM_START( americna ) /* Uses a small daughter card CRT-251 & Dallas DS1225Y NV SRAM */
12191221   ROM_REGION( 0x80000, "maincpu", 0 )
12201222   ROM_LOAD( "9131-00_u9-2.u9",   0x00000, 0x10000, CRC(8a741fb6) SHA1(2d77c67e5a0bdaf6199c31c4055df214672db3e1) ) /* 9131-00 U9-2  888020 */
r241910r241911
12291231   ROM_LOAD( "9131-02_u11-0.u11", 0x20000, 0x10000, CRC(f137d70c) SHA1(8ec04ec17300aa3a6ef14bcca1ca1c2aec0eea18) )
12301232ROM_END
12311233
1234/*
1235    Pit Boss II - Merit Industries Inc. 1988
1236    ----------------------------------------
1237
1238    All eproms are 27C512
1239
1240    One 8 bank dip switch.
1241
1242    Two YAMAHA V9938 Video Processors.
1243
1244    21.47727 MHz Crystal
1245
1246    CPU Z80
1247
1248    Audio AY8930
1249
1250    Two Z80A-PIO
1251
1252    One bq4010YMA-150 NVRAM
1253    Eight V53C464AP80 (41464) RAMS
1254
1255    One PAL16L8AN
1256    One PAL20L10NC
1257*/
1258
12321259ROM_START( pitboss2 )
12331260   ROM_REGION( 0x80000, "maincpu", 0 )
12341261   ROM_LOAD( "9221-01_u9-0c.u9",  0x00000, 0x10000, CRC(a1b6ac15) SHA1(b7b395f3e7e14dbb84003e03bf7d054e795a7211) ) /* 9221-01C  880221 */
r241910r241911
12431270
12441271ROM_START( spitboss )
12451272   ROM_REGION( 0x80000, "maincpu", 0 )
1246   ROM_LOAD( "9221-02_u9-0a.u9",   0x00000, 0x10000, CRC(e0c45c9c) SHA1(534bff67c8fee08f1c348275de8977659efa9f69) ) /* 9221-02A   886021 */
1273   ROM_LOAD( "9221-02_u9-0a.u9",   0x00000, 0x10000, CRC(e0c45c9c) SHA1(534bff67c8fee08f1c348275de8977659efa9f69) ) /* 9221-02A   886021 (actual, but should be 880621) */
12471274   ROM_LOAD( "9221-02_u10-0.u10",  0x10000, 0x10000, CRC(ed010c58) SHA1(02750944a28c1c27ce2a9904d11b7e46272a940e) )
12481275   ROM_LOAD( "9221-02_u11-0a.u11", 0x20000, 0x10000, CRC(0c65fa86) SHA1(7906a8d615116ca67bf370dfb2da8cb2389a313d) )
12491276   ROM_LOAD( "9221-02_u12-0.u12",  0x30000, 0x10000, CRC(0cf95b0e) SHA1(c6ffc13703892b9ae0da39a02db37c4ec890f79e) )
r241910r241911
12671294
12681295ROM_START( pitbosssa )
12691296   ROM_REGION( 0x80000, "maincpu", 0 )
1270   ROM_LOAD( "9221-10_u9-0a.u9",   0x00000, 0x10000, CRC(41be6b30) SHA1(c4df87a599e310ce29ee9277e5adc916ff68f060) ) /* 9221-10-00A  090370 */
1297   ROM_LOAD( "9221-10_u9-0a.u9",   0x00000, 0x10000, CRC(41be6b30) SHA1(c4df87a599e310ce29ee9277e5adc916ff68f060) ) /* 9221-10-00A  090370 (actual, but should be 090390) */
12711298   ROM_LOAD( "9221-10_u10-0.u10",  0x10000, 0x10000, CRC(853a1a99) SHA1(45e33442aa7e51c05c9ac8b8458937ee3ff4c21d) )
12721299   ROM_LOAD( "9221-10_u11-0a.u11", 0x20000, 0x10000, CRC(c9137469) SHA1(618680609bdffa92b919a2417bd3ec41a4c8bf2b) )
12731300   ROM_LOAD( "9221-10_u12-0.u12",  0x30000, 0x10000, CRC(3577a203) SHA1(80f9c827ad9dea2c6af788bd3b46ab65e8c594eb) )
r241910r241911
13031330   ROM_LOAD( "9233-00-01_u15-r0", 0x60000, 0x10000, CRC(5810840e) SHA1(bad6457752ac212c3c11360a13a8d3473662a287) )
13041331
13051332   ROM_REGION( 0x000022, "ds1204", 0 )
1306   ROM_LOAD( "9233-01_u1-r01_c1993_mii", 0x000000, 0x000022, BAD_DUMP CRC(93459659) SHA1(73ad4c3a7c52d3db3acb43662c535f8c2ed2376a) )
1333   ROM_LOAD( "9233-01_u1-ro1_c1993_mii", 0x000000, 0x000022, BAD_DUMP CRC(93459659) SHA1(73ad4c3a7c52d3db3acb43662c535f8c2ed2376a) )
13071334
13081335   ROM_REGION( 0xc0000, "extra", 0 ) // question roms
13091336   ROM_LOAD( "qs9233-01_u7-r0",  0x00000, 0x40000, CRC(176dd688) SHA1(306cf78101219ef1122023a01d16dff5e9f2aecf) ) /* These 3 roms are on CRT-256 sattalite PCB */
r241910r241911
13111338   ROM_LOAD( "qs9233-01_u5-r0",  0x80000, 0x40000, CRC(740b1274) SHA1(14eab68fc137b905a5a2739c7081900a48cba562) )
13121339ROM_END
13131340
1314/*
1315Basically this Pit Boss Megatouch set is Pit Boss Supertouch 30 v2.0 but marks the first time Merit
1316 started using the Megatouch name.
1317
1318NOTE: Once again U10, U12 & U13 doesn't change between this set and the Pit Boss Supertouch 30 sets
1319      and the question roms are the same data with a new label and game number ID
1320*/
1321ROM_START( megat ) /* Dallas DS1204V security key attached to CRT-254 connected to J2 connector labeled 9234-20 U1-RO C1994 MII */
1322   ROM_REGION( 0x80000, "maincpu", 0 )
1323   ROM_LOAD( "9234-20-01_u9-r0a",  0x00000, 0x10000, CRC(5a9fd092) SHA1(756b6a925dafb17451e7dc37c95a26d09ecfe2d7) ) /* 9234-20-01 R0A 940519 */
1324   ROM_LOAD( "9234-20-01_u10-r0a", 0x10000, 0x10000, CRC(853a1a99) SHA1(45e33442aa7e51c05c9ac8b8458937ee3ff4c21d) ) /* Also found as PBC U10 */
1325   ROM_LOAD( "9234-20-01_u11-r0a", 0x20000, 0x10000, CRC(8bd5f6bb) SHA1(95b23d7d14207fcafc01ee975400ebdd1e7b5ad5) )
1326   ROM_LOAD( "9234-20-01_u12-r0a", 0x30000, 0x10000, CRC(b9fb4203) SHA1(84b514d9739d9c2ab1081cfc7cdedb41155ee038) ) /* Also found as PBC U12 */
1327   ROM_LOAD( "9234-20-01_u13-r0a", 0x40000, 0x10000, CRC(574fb3c7) SHA1(213741df3055b97ddd9889c2aa3d3e863e2c86d3) ) /* Also found as PBC U13 */
1328   ROM_LOAD( "9234-20-01_u14-r0a", 0x50000, 0x10000, CRC(40d78506) SHA1(5e1d8e4ef8aa02faa2a323f5e988bf56d4747b60) )
1329   ROM_LOAD( "9234-20-01_u15-r0a", 0x60000, 0x10000, CRC(9adc67b8) SHA1(271e6b6473eeea01f2923ef82c192a583bb5e338) )
1330
1331   ROM_REGION( 0x000022, "ds1204", 0 )
1332   ROM_LOAD( "9234-20_u1-r0_c1994_mii", 0x000000, 0x000022, BAD_DUMP CRC(6cbdbde1) SHA1(b076ee21fc792a5e85cdaed427bc41554568811e) )
1333
1334   ROM_REGION( 0xc0000, "extra", 0 ) // question roms
1335   ROM_LOAD( "qs9234-20_u7-r0",  0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 sattalite PCB */
1336   ROM_LOAD( "qs9234-20_u6-r0",  0x40000, 0x40000, CRC(fe2cd934) SHA1(623011dc53ed6eefefa0725dba6fd1efee2077c1) ) /* Same data as Pit Boss Supertouch 30 sets, different label - verified */
1337   ROM_LOAD( "qs9234-20_u5-r0",  0x80000, 0x40000, CRC(293fe305) SHA1(8a551ae8fb4fa4bf329128be1bfd6f1c3ff5a366) )
1338ROM_END
1339
13401341ROM_START( pbst30 ) /* Dallas DS1204V security key attached to CRT-254 connected to J2 connector labeled 9234-10 U1-RO1 C1994 MII */
13411342   ROM_REGION( 0x80000, "maincpu", 0 )
13421343   ROM_LOAD( "9234-10-01_u9-r0",  0x00000, 0x10000, CRC(96f39c9a) SHA1(df698e94a5204cf050ceadc5c257ca5f68171114) ) /* 9234-10-01 032294 */
r241910r241911
13481349   ROM_LOAD( "9234-10-01_u15-r0", 0x60000, 0x10000, CRC(9fbd8582) SHA1(c0f68c8a7cdca34c8736cefc71767c421bcaba8a) )
13491350
13501351   ROM_REGION( 0x000022, "ds1204", 0 )
1351   ROM_LOAD( "9234-10_u1-r01_c1994_mii", 0x000000, 0x000022, BAD_DUMP CRC(1c782f78) SHA1(8255afcffbe21a43f53cfb41867552681403ea47) )
1352   ROM_LOAD( "9234-10_u1-ro1_c1994_mii", 0x000000, 0x000022, BAD_DUMP CRC(1c782f78) SHA1(8255afcffbe21a43f53cfb41867552681403ea47) )
13521353
13531354   ROM_REGION( 0xc0000, "extra", 0 ) // question roms
13541355   ROM_LOAD( "qs9234-01_u7-r0",  0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 sattalite PCB */
r241910r241911
13561357   ROM_LOAD( "qs9234-01_u5-r0",  0x80000, 0x40000, CRC(293fe305) SHA1(8a551ae8fb4fa4bf329128be1bfd6f1c3ff5a366) )
13571358ROM_END
13581359
1359ROM_START( pbst30a ) /* Dallas DS1204V security key attached to CRT-254 connected to J2 connector labeled 9234-01 U1-RO1 C1993 MII */
1360ROM_START( pbst30b ) /* Dallas DS1204V security key attached to CRT-254 connected to J2 connector labeled 9234-01 U1-RO1 C1993 MII */
13601361   ROM_REGION( 0x80000, "maincpu", 0 )
13611362   ROM_LOAD( "9234-00-01_u9-r0a",  0x00000, 0x10000, CRC(5f058f95) SHA1(98382935340a076bdb1b20c7f16c25b6084599fe) ) /* 9234-00-01  122293 */
13621363   ROM_LOAD( "9234-00-01_u10-r0",  0x10000, 0x10000, CRC(853a1a99) SHA1(45e33442aa7e51c05c9ac8b8458937ee3ff4c21d) )
r241910r241911
13671368   ROM_LOAD( "9234-00-01_u15-r0a", 0x60000, 0x10000, CRC(f10f0d39) SHA1(2b5d5a93adb5251e09160b10c067b6e70289f608) )
13681369
13691370   ROM_REGION( 0x000022, "ds1204", 0 )
1370   ROM_LOAD( "9234-01_u1-r01_c1993_mii", 0x000000, 0x000022, BAD_DUMP CRC(74bf0546) SHA1(eb44a057cf797279ee3456a74e166fa711547ea4) )
1371   ROM_LOAD( "9234-01_u1-ro1_c1993_mii", 0x000000, 0x000022, BAD_DUMP CRC(74bf0546) SHA1(eb44a057cf797279ee3456a74e166fa711547ea4) )
13711372
13721373   ROM_REGION( 0xc0000, "extra", 0 ) // question roms
13731374   ROM_LOAD( "qs9234-01_u7-r0",  0x00000, 0x40000, CRC(c0534aaa) SHA1(4b3cbf03f29fd5b4b8fd423e73c0c8147692fa75) ) /* These 3 roms are on CRT-256 sattalite PCB */
r241910r241911
13861387   ROM_LOAD( "9243-00-01_u15-r0", 0x60000, 0x10000, CRC(27034061) SHA1(cff6be592a4a3ab01c204b081470f224e6186c4d) )
13871388   ROM_RELOAD(     0x70000, 0x10000)
13881389
1390
13891391   ROM_REGION( 0xc0000, "extra", 0 ) // question roms
13901392   ROM_LOAD( "qs9243-00-01_u7-r0",  0x00000, 0x40000, CRC(35f4ca46) SHA1(87917b3017f505fae65d6bfa2c7d6fb503c2da6a) ) /* These 3 roms are on CRT-256 sattalite PCB */
13911393   ROM_LOAD( "qs9243-00-01_u6-r0",  0x40000, 0x40000, CRC(606f1656) SHA1(7f1e3a698a34d3c3b8f9f2cd8d5224b6c096e941) )
r241910r241911
142414261- Great Draw Poker and 7 Stud Poker have been added to the program set
142514272- On page 3-1 legend artwork has changed. PASS has been replaced with
14261428   PASS/PLAY and COLLECT/QUIT has been replaced with COLLECT/QUIT/RAISE
14273- An additional Solitaire Instruction decal has been added to the kit.
1428   This new Instruction decal is to be mounted in a visible location for
14293- An additional Solitaire Instruction decal has beed added to the kit.
1430   This new Instruction decal is to be mounted in a visivle loction for
14291431   players use.
14301432
14311433*/
1434
14321435ROM_START( pitbossm ) /* Dallas DS1204V security key attached to CRT-254 connected to J2 connector labeled 9244-00 U1-RO1 C1994 MII */
14331436   ROM_REGION( 0x80000, "maincpu", 0 )
14341437   ROM_LOAD( "9244-00-01_u9-r0",  0x00000, 0x10000, CRC(8317fea1) SHA1(eb84fdca7cd51883153561785571790d12d0d612) ) /* 9244-00-01 R0  940822 */
r241910r241911
14881491It's currently unknown how to access / enable those features or if it's possible to do so.
14891492
14901493*/
1494
14911495ROM_START( realbrod ) /* Dallas DS1204U-3 security key labeled 9131-20-00-U5-R0A */
14921496   ROM_REGION( 0x400000, "maincpu", 0 )
14931497   /* U32 Empty */
r241910r241911
15181522             one PC16550DN
15191523             one PB255a or L5220574
15201524             One Dallas DS1204 Data Key
1521             One Dallas DS1225Y 64k Non-volatile SRAM (Mega Touch 4)
1522              or Dallas DS1230Y 256K Non-volatile SRAM (Mega Touch 6)
1525             One Dallas DS1225Y 64k Non-volitile SRAM (Mega Touch 4)
1526              or Dallas DS1230Y 256K Non-volitile SRAM (Mega Touch 6)
15231527              or Dallas DS1644 32K NVRAM + RTC (Tournament sets)
15241528             Two Z80APIO (Z0842004PSC)
15251529
r241910r241911
22882292
22892293/* CRT-250 + CRT-252 + CRT-256 + CRT-258 */
22902294GAME( 1994, mtjpoker,  0,        meritm_crt250_crt252_crt258, mtjpoker,   driver_device, 0,  ROT0, "Merit", "Merit Touch Joker Poker (9132-00)", GAME_IMPERFECT_GRAPHICS )
2291GAME( 1994, megat,     0,        meritm_crt250_crt252_crt258, pbst30,     driver_device, 0,  ROT0, "Merit", "Pit Boss Megatouch (9234-20-01)", GAME_IMPERFECT_GRAPHICS )
22922295GAME( 1994, pbst30,    0,        meritm_crt250_crt252_crt258, pbst30,     driver_device, 0,  ROT0, "Merit", "Pit Boss Supertouch 30 (9234-10-01)", GAME_IMPERFECT_GRAPHICS )
2293GAME( 1993, pbst30a,   pbst30,   meritm_crt250_crt252_crt258, pbst30,     driver_device, 0,  ROT0, "Merit", "Pit Boss Supertouch 30 (9234-00-01)", GAME_IMPERFECT_GRAPHICS )
2296GAME( 1993, pbst30b,   pbst30,   meritm_crt250_crt252_crt258, pbst30,     driver_device, 0,  ROT0, "Merit", "Pit Boss Supertouch 30 (9234-00-01)", GAME_IMPERFECT_GRAPHICS )
22942297
22952298/* CRT-250 + CRT-254 + CRT-256 */
22962299GAME( 1993, pbss330,   0,        meritm_crt250_questions, pbss330,  driver_device, 0, ROT0, "Merit", "Pit Boss Superstar III 30 (9233-00-01)", GAME_IMPERFECT_GRAPHICS )
trunk/src/mame/drivers/naomi.c
r241910r241911
254254                                              Sticker    EPROM   FLASHROMs   X76F100  EPM7064S  315-5881
255255Game                                          on cart    IC22#   # of SOP56  IC37#    IC41#     IC42#         Notes
256256----------------------------------------------------------------------------------------------------------------------------------
257Club Kart: European Session (2003, prototype)   no cart  *       21 (64Mb)   present  315-6206  not present   * instead of EPROM have tiny PCB with 2 flashroms on it
258Crackin' DJ part 2                            840-0068C  23674   20 (64Mb)   present  315-6206  317-0311-COM  PCB have label 840-0068B-01 837-14124, requires regular 837-13551 and 837-13938 rotary JVS boards, and turntable simulation
259Ferrari F355 Challenge (twin, prototype)        no cart  22848P* 21 (64Mb)   present  315-6206  317-0267-COM  * flash-PCB have CRC 330B A417, the rest is the same as regular cart, not dumped but known to exist
257Club Kart: European Session (2003, prototype)   no cart  *       21 (64Mb)   present  315-6206  not present   *instead of EPROM have tiny PCB with 2 flashroms on it
258Crackin' DJ part 2                            840-0068C  23674   20 (64Mb)   present  315-6206  317-0311-COM  PCB have label 840-0068B-01 837-14124
260259Ferrari F355 Challenge 2 (twin)                 no cart  23399   21 (64Mb)   present  315-6206  317-0287-COM  content is the same as regular 171-7919A cart
261260House of the Dead 2 (prototype)                 no cart  A1E2    21 (64Mb)   present  315-6206  present       no label on IC42
262Inu No Osanpo / Dog Walking (Rev A)           840-0073C  22294A  16 (64Mb)   present  315-6206  317-0316-JPN  requires 837-13844 JVS IO with special jumpers settings enabling rotary
263Maze of the Kings The (prototype)               no cart  *       21 (64Mb)   present  315-6206  FRI           * flash-PCB, not dumped but known to exist
264Samba de Amigo (prototype)                      no cart  *       21 (64Mb)   present  315-6206  317-0270-COM  * instead of EPROM have tiny PCB with 2 flashroms on it
265Soul Surfer (Rev A)                           840-0095C  23838C  21 (64Mb)   present  315-6206  not present
261Inu No Osanpo / Dog Walking (Rev A)           840-0073C  22294A  16 (64Mb)   present  315-6206  317-0316-JPN
262Samba de Amigo (prototype)                      no cart  *       21 (64Mb)   present  315-6206  317-0270-COM  *instead of EPROM have tiny PCB with 2 flashroms on it
263Soul Surfer (Rev A)                           840-0095C  23838C  21 (64Mb)   present  315-6206  not present   todo: verify if it's Rev A or Rev C
266264Star Horse (server)                           840-0055C  23626   17 (64Mb)   present  315-6206  not present
267265The King of Route 66 (Rev A)                  840-0087C  23819A  20 (64Mb)   present  315-6206  not present   content is the same as regular 171-8132A cart
268Virtua NBA (prototype)                          no cart  *       21 (64Mb)   present  315-6206  317-0271-COM  * instead of EPROM have tiny PCB with 2 flashroms on it
269Virtua Tennis / Power Smash (prototype)         no cart  *       21 (64Mb)   present  315-6206  317-0263-COM  * flash-PCB, title screen have label "SOFT R&D Dept.#3", not dumped but known to exist
266Virtua NBA (prototype)                          no cart  *       21 (64Mb)   present  315-6206  317-0271-COM  *instead of EPROM have tiny PCB with 2 flashroms on it
270267
271268
272269837-13668  171-7919A (C) Sega 1998
r241910r241911
30430118 Wheeler (deluxe) (Rev A)                     840-0023C    22185A  20 (64Mb)   present     315-6213  317-0273-COM
30530218 Wheeler (standard)                           840-0036C    23298   20 (64Mb)   present     315-6213  317-0273-COM
30630318 Wheeler (upright)                            840-0037C    23299   20 (64Mb)   present     315-6213  317-0273-COM
307Airline Pilots (deluxe) (Rev B)                 ?            21787B  11 (64Mb)   present     315-6213  317-0251-COM   2 known BIOS 21801 (USA), 21802 (EXP)
304Airline Pilots (deluxe) (Rev B)                 ?            21787B  11 (64Mb)   present     315-6213  317-0251-COM   2 know BIOS 21801 (USA), 21802 (EXP)
308305Airline Pilots (Rev A)                          840-0005C    21739A  11 (64Mb)   present     315-6213  317-0251-COM
309306Cosmic Smash                                    840-0044C    23428    8 (64Mb)   ?           315-6213  317-0289-COM   joystick + 2 buttons
310307Cosmic Smash (Rev A)                            840-0044C    23428A   8 (64Mb)   ?           315-6213  317-0289-COM   joystick + 2 buttons
r241910r241911
317314Derby Owners Club 2000 Ver.2 (Rev A)            840-0052C    22284A  16 (64Mb)   present     315-6213  not present
318315Dynamite Baseball '99 / World Series'99 (Rev B) 840-0019C    22141B  19 (64Mb)   ?           315-6213  317-0269-JPN   requires special panel (joystick + 2 buttons + bat controller for each player)
319316Dynamite Baseball Naomi                         840-0001C    21575   21 (64Mb)   ?           315-6213  317-0246-JPN   requires special panel (joystick + 2 buttons + bat controller for each player)
320Ferrari F355 Challenge (deluxe)                 834-13842    21902   21 (64Mb)   present     315-6213  317-0254-COM   BIOS 21863 (USA), also known  to exists Japanese BIOS, not dumped
321Ferrari F355 Challenge (twin)                   834-13950    22848   21 (64Mb)   present     315-6213  317-0267-COM   2 known BIOS 22850 (USA), 22851 (EXP)
322Ferrari F355 Challenge 2 (twin)                 840-0042C    23399   21 (64Mb)   present     315-6213  317-0287-COM   2 known BIOS 22850 (USA), 22851 (EXP)
317Ferrari F355 Challenge                          834-13842    21902   21 (64Mb)   present     315-6213  317-0254-COM   requires special BIOS not yet dumped
318Ferrari F355 Challenge (twin)                   834-13950    22848   21 (64Mb)   present     315-6213  317-0267-COM   2 know BIOS 22850 (USA), 22851 (EXP)
319Ferrari F355 Challenge 2 (twin)                 840-0042C    23399   21 (64Mb)   present     315-6213  317-0287-COM   2 know BIOS 22850 (USA), 22851 (EXP)
323320Giant Gram: All Japan Pro Wrestling 2           840-0007C    21820    9 (64Mb)   ?           315-6213  317-0253-JPN   joystick + 3 buttons
324321Guilty Gear X                                   841-0013C    23356   14 (64Mb)   ?           315-6213  317-5063-COM
325322Gun Spike / Cannon Spike                        841-0012C    23210   12 (64Mb)   present     315-6213  317-5060-COM
326323Heavy Metal Geomatrix (Rev A)                   HMG016007    23716A  11 (64Mb)   present     315-6213  317-5071-COM   joystick + 2 buttons
327324House of the Dead 2 (original)                  834-13636    21385   20 (64Mb)   not present 315-6213  not present
328325House of the Dead 2                             834-13636-01 21585   20 (64Mb)   not present 315-6213  not present
329Idol Janshi Suchie-Pai 3                        841-0002C    21979   14 (64Mb)   ?           315-6213  317-5047-JPN   requires mahjong panel
326Idol Janshi Suchie-Pai 3                        841-0002C    21979   14 (64Mb)   ?           315-6213  317-5047-JPN   requires special I/O board and mahjong panel
330327Jambo! Safari (Rev A)                           840-0013C    22826A   8 (64Mb)   ?           315-6213  317-0264-COM
331328Mars TV                                         840-0025C    22993   15 (64Mb)   present     315-6213  317-0074-JPN
332OutTrigger                                      840-0017C    22163   19 (64Mb)   ?           315-6213  317-0266-COM   requires regular 837-13551 and 837-13938 rotary JVS boards, and special panel
329OutTrigger                                      840-0017C    22163   19 (64Mb)   ?           315-6213  317-0266-COM   requires analog controllers/special panel
333330Power Stone                                     841-0001C    21597    8 (64Mb)   present     315-6213  317-5046-COM   joystick + 3 buttons
334331Power Stone 2                                   841-0008C    23127    9 (64Mb)   present     315-6213  317-5054-COM   joystick + 3 buttons
335332Puyo Puyo Da!                                   841-0006C    22206   20 (64Mb)   ?           315-6213  ?
336Ring Out 4x4                                    840-0004C    21779   10 (64Mb)   present     315-6213  317-0250-COM   requires 2 JVS boards
333Ring Out 4x4                                    840-0004C    21779   10 (64Mb)   present     315-6213  317-0250-COM
337334Samba de Amigo (Rev B)                          840-0020C    22966B  16 (64Mb)   present     315-6213  317-0270-COM   will boot but requires special controller to play it
338Sega Marine Fishing                             840-0027C    22221   10 (64Mb)   ?           315-6213  not present    ROM 3&4 not present. Requires fishing controller
335Sega Marine Fishing                             840-0027C    22221   10 (64Mb)   ?           315-6213  not present    ROM 3&4 not present. Requires special I/O board and fishing controller
339336Sega Strike Fighter (Rev A)                     840-0035C    23323A  20 (64Mb)   present     315-6213  317-0281-COM
340337Sega Tetris                                     840-0018C    22909    6 (64Mb)   present     315-6213  317-0268-COM
341338Slashout                                        840-0041C    23341   17 (64Mb)   ?           315-6213  317-0286-COM   joystick + 4 buttons
342339Spawn In the Demon's Hand (Rev B)               841-0005C    22977B  10 (64Mb)   ?           315-6213  317-5051-COM   joystick + 4 buttons
343340Super Major League '99                          840-0012C    22059   21 (64Mb)   ?           315-6213  ?
344341The Typing of the Dead (Rev A)                  840-0026C    23021A  20 (64Mb)   present     315-6213  not present
345Touch de UNO! / Unou Nouryoku Check Machine     840-0008C    22073    4 (64Mb)   present     315-6213  317-0255-JPN   requires special JVS board with touch input and printer
342Touch de UNO! / Unou Nouryoku Check Machine     840-0008C    22073    4 (64Mb)   present     315-6213  317-0255-JPN
346343Toy Fighter / Waffupu                           840-0011C    22035   10 (64Mb)   present     315-6212  317-0257-COM   joystick + 3 buttons
347344Virtua NBA                                      840-0021C-01 23073   21 (64Mb)   present     315-6213  not present
348345Virtua NBA (original)                           840-0021C    22949   21 (64Mb)   present     315-6213  317-0271-COM
r241910r241911
447444                                               Sticker      EPROM   MASKROMs    25LC040  A54SX32
448445Game                                           on cart      IC11#   # of SOP44  IC13S#   IC1#          Notes
449446-------------------------------------------------------------------------------------------------------------------------------
450Club Kart Prize (Rev A)                        840-0129C    24082A  16 (64Mb)   present  317-0368-COM  requires Naomi-based hopper controller (Naomi bd + 840-0130 cart + 837-14381 "G2 EXPANSION BD")
451Club Kart Prize Ver. B                         840-0137C    24149   16 (64Mb)   present  317-0368-COM  requires 837-14438 "SH I/O BD" hopper controller (not dumped)
447Club Kart Prize (Rev A)                        840-0129C    24082A  16 (64Mb)   present  317-0368-COM  A54SX32A
448Club Kart Prize Ver. B                         840-0137C    24149   16 (64Mb)   present  317-0368-COM  A54SX32A
452449Giant Gram 2000                                840-0039C    23377   20 (64Mb)   present  317-0296-COM
453Kick '4' Cash                                  840-0140C    24212   16 (64Mb)   present  317-0397-COM  requires 837-14438 "SH I/O BD" hopper controller (not dumped)
450Kick '4' Cash                                  840-0140C    24212   16 (64Mb)   present  317-0397-COM  A54SX32A
454451Marvel Vs. Capcom 2 New Age of Heroes (Rev A)  841-0007C-02 23085A  14 (64Mb)*  present  317-5058-COM  *(+2x 32Mb)
455MushiKing The King of Beetles 2K3 2ND          840-0150C    24217    6 (64Mb)   present  317-0394-COM  requires 610-0669 barcode reader, 838-14245-92 "MAPLE/232C CONVERT BD" (MIE-based), 838-14243 "RFID CHIP R/W BD" and RFID chip
452MushiKing The King of Beetles 2K3 2ND          840-0150C    24217    6 (64Mb)   present  317-0394-COM
456453Quiz Ah Megamisama                             840-0030C    23227   16 (64Mb)   present  317-0280-JPN
457Shootout Pool                                  840-0098C    23844    4 (64Mb)   present  317-0336-COM  requires regular 837-13551 and 837-13938 rotary JVS boards
458Shootout Pool Prize / The Medal (Rev A)        840-0128C    24065A   4 (64Mb)   present  317-0367-COM  requires Naomi-based hopper controller
459Shootout Pool Prize / The Medal Ver. B         840-0136C    24148    4 (64Mb)   present  317-0367-COM  requires Naomi-based or 837-14438 hopper controller
454Shootout Pool                                  840-0098C    23844    4 (64Mb)   present  317-0336-COM
455Shootout Pool - Shootout Pool Prize (Rev A)    840-0128C    24065A   4 (64Mb)   present  317-0367-COM
456Shootout Pool Medal                            840-0136C    24148    4 (64Mb)   present  317-0367-COM
460457SWP Hopper Board                               840-0130C    24083   20 (64Mb)   present  317-0339-COM  Maskroms are not really used, they are recycled from other games; there is an additional 837-14381 IO board
461Touch de UNO! 2                                840-0022C    23071    6 (64Mb)   present  317-0276-JPN  requires special JVS board with touch input and printer
458Touch de UNO! 2                                840-0022C    23071    6 (64Mb)   present  317-0276-JPN
462459Virtua Fighter 4 Evolution                     840-0106B    23934   20 (64Mb)   present  317-0339-COM
463460Virtua Tennis 2 / Power Smash 2 (Rev A)        840-0084C    22327A  18 (64Mb)   present  317-0320-COM
464461
r241910r241911
505502Club Kart: European Session                     840-0062C  23704   11 (128Mb)  315-6319A  315-6213  317-0313-COM
506503Club Kart: European Session (Rev C)             840-0062C      *   11 (128Mb)  315-6319A  315-6213  317-0313-COM  * EPR have handwritten Japanese label possibly readable as 'teteto 74 lcl'
507504Club Kart: European Session (Rev D)             840-0062C  23704D  11 (128Mb)  315-6319A  315-6213  317-0313-COM
508Crackin' DJ                                     840-0043C  23450   10 (128Mb)  315-6319   315-6213  317-0288-COM  requires regular 837-13551 and 837-13938 rotary JVS boards, and turntable simulation
505Crackin' DJ                                     840-0043C  23450   10 (128Mb)  315-6319   315-6213  317-0288-COM
509506Derby Owners Club II (Rev B)                    840-0083C  22306B  11 (128Mb)  315-6319A  315-6213  not present
510507Derby Owners Club World Edition (Rev C)         840-0088C  22336C   7 (128Mb)  315-6319A  315-6213  not present
511508Derby Owners Club World Edition (Rev D)         840-0088C  22336D   7 (128Mb)  315-6319A  315-6213  not present   2 MaskROM are different from Rev C
512509Giga Wing 2                                     841-0014C  22270    5 (128Mb)  315-6319A  315-6213  317-5064-COM
513510Mobile Suit Gundam: Federation Vs. Zeon         841-0017C  23638   10 (128Mb)  315-6319A  315-6213  ?
514511Moero Justice Gakuen / Project Justice (Rev A)  841-0015C  23548A  11 (128Mb)  315-6319A  315-6213  317-5065-COM
515MushiKing - The King Of Beetle 2K5 1ST          840-0158C  24286    7 (128Mb)  315-6319A  315-6213  not present   requires 610-0669 barcode reader
516Oinori-daimyoujin Matsuri                       840-0126B  24053    5 (128Mb)  315-6319A  315-6213  not present   requires 837-14274 "G2 EXPANSION BD" (similar to hopper 837-14381 but with ARC NET chip)
512MushiKing - The King Of Beetle 2K5 1ST         840-0158C  24286    7 (128Mb)  315-6319A  315-6213  not present
513Oinori-daimyoujin Matsuri                       840-0126B  24053    5 (128Mb)  315-6319A  315-6213  not present
517514Samba de Amigo Ver. 2000                        840-0047C  23600   11 (128Mb)  315-6319A  315-6213  317-0295-COM
518515Star Horse (big screens)                        840-0054C  23625    4 (128Mb)  315-6319   315-6213  not present
519516Star Horse (client)                             840-0056C  23627    6 (128Mb)* 315-6319   315-6213  not present   * +1 (64Mb)
r241910r241911
569566Dynamite Deka EX / Asian Dynamite                   840-0175C  not present  4 (512Mb)   present  317-0495-COM  present  IC2# is labeled "VER.2"
570567Illmatic Envelope                                   841-0059C  not present  4 (512Mb)   present  317-5131-JPN  present  IC2# is labeled "VER.2" - IC#11 is empty
571568Mamoru-kun wa Norowarete Shimatta                   841-0060C  not present  4 (512Mb)   present  317-5132-JPN  present  IC2# is labeled "VER.2"
572Manic Panic Ghost!                                  840-0170C  not present  5 (512Mb)   present  317-0461-COM  present  requires 837-14672 sensor board (SH4 based)
569Manic Panic Ghost!                                  840-0170C  not present  5 (512Mb)   present  317-0461-COM  present
573570Melty Blood Actress Again                           841-0061C  not present  6 (512Mb)   present  317-5133-JPN  present  IC2# is labeled "REV.A" - IC4# is marked "5A"
574571Melty Blood Actress Again (Rev A)                   841-0061C  24455        6 (512Mb)   present  317-5133-JPN  present  IC2# is labeled "REV.A" - IC4# is marked "5A"
575Mushiking - The King Of Beetles II ENG (Ver. 1.001) 840-0164C  not present  2 (512Mb)   present  317-0437-COM  present  requires 610-0669 barcode reader, 838-14245-92 "MAPLE/232C CONVERT BD" (MIE-based), 838-14243 "RFID CHIP R/W BD" and RFID chip
572Mushiking - The King Of Beetles II ENG (Ver. 1.001) 840-0164C  not present  2 (512Mb)   present  317-0437-COM  present
576573Mushiking - The King Of Beetles II ENG (Ver. 2.001) 840-0164C  24357        2 (512Mb)   present  317-0437-COM  present  IC4# is marked "18"
577Poka Suka Ghost                                     840-0170C  not present  5 (512Mb)   present  317-0461-COM  present  requires 837-14672 sensor board (SH4 based)
574Poka Suka Ghost                                     840-0170C  not present  5 (512Mb)   present  317-0461-COM  present
578575Radirgy Noa                                         841-0062C  not present  4 (512Mb)   present  317-5138-JPN  present  IC2# is labeled "VER.2" - IC4# is marked "8A"
579576Rythm Tengoku                                       841-0177C  not present  4 (512Mb)   present  317-0503-JPN  present  IC2# is labeled "VER.2" - IC4# is marked "8A"
580577Shooting Love 2007                                  841-0057C  not present  4 (512Mb)   present  317-5129-JPN  present  IC2# is labeled "VER.2"
581Touch De Zunou (Rev A)                              840-0166C  not present  2 (512Mb)   present  317-0435-JPN  present  IC4# is marked "18", requires 837-14672 sensor board (SH4 based)
578Touch De Zunou (Rev A)                              840-0166C  not present  2 (512Mb)   present  317-0435-JPN  present  IC4# is marked "18"
582579
583580
584581
r241910r241911
627624 Game                                Type  on cart   FLASHROM  # of SOP48  IC @ 1F      IC @ 1H   IC @ 2K   IC @ 1M       code (1)    Notes
628625------------------------------------------------------------------------------------------------------------------------------------------------------
629626/Gun Survivor 2 Biohazard
630\Code: Veronica                      F1X   25709801  1 (64Mb)  14 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5075-COM  BHF1        uses Namco FCA JVS I/O, will crash if COMM.BOARD not present
627\Code: Veronica                      F1X   25709801  1 (64Mb)  14 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5075-COM  BHF1
631628/Gun Survivor 2 Biohazard
632629\Code: Veronica (Ver. E)             F1X   25709801  1 (64Mb)  14 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5075-COM  BHF2
633630/Shin Nihon Prowrestling Toukon                                                                                                       /FL0 & FL1 have pin55 raised from PCB.
634631\Retsuden 4 Arcade Edition (Ver. A)  F2X   25349801  2 (64Mb)  15 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5040-COM  TRF1        \They are connected togheter and go to pin89 on 2K.
635World Kicks PCB (WKC1 Ver. A)        F2    25509801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5040-COM  WKC1        uses Namco V226 JVS I/O
632World Kicks PCB (WKC1 Ver. A)        F2    25509801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1B  317-5040-COM  WKC1
636633World Kicks (WK2 Ver. A)             F2    25209801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1A  317-5040-COM  WK2
637634World Kicks (WK3 Ver. A)             F2    25209801  2 (64Mb)   9 (128Mb)  not present  NAODEC2A  NAODEC1A  317-5040-COM  WK3
638635
r241910r241911
680677                                    Cart  Sticker   FL0-FL3   FLASHROMs   X76F100  CY37128  315-5881      Known Game
681678 Game                               Type  on cart   FLASHROM  # of SOP48  IC @ 1F  IC @ 2J  IC @ 1M       code (1)    Notes
682679--------------------------------------------------------------------------------------------------------------------------------
683Mazan: Flash of the Blade (Ver. A)  F1X   25869812  1 (64Mb)   8 (128Mb)  present  NAODEC3  317-0266-COM  MAZ2        uses 2x Namco FCB JVS I/O
680Mazan: Flash of the Blade (Ver. A)  F1X   25869812  1 (64Mb)   8 (128Mb)  present  NAODEC3  317-0266-COM  MAZ2
684681Mazan: Flash of the Blade (Ver. A)  F1X   25869812  1 (64Mb)   8 (128Mb)  present  NAODEC3  317-0266-COM  MAZ3
685Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA1        uses Namco JYU JVS I/O
682Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA1
686683Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA2
687684Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA3
688685Ninja Assault (Ver. A)              F3    25469801  3 (64Mb)   9 (128Mb)  present  NAODEC3  317-5068-COM  NJA4
r241910r241911
26612658 */
26622659
26632660static MACHINE_CONFIG_DERIVED( naomim4, naomi_base )
2664   MCFG_NAOMI_M4_BOARD_ADD("rom_board", ":pic_readout", "naomibd_eeprom", ":boardid", WRITE8(dc_state, g1_irq))
2661   MCFG_NAOMI_M4_BOARD_ADD("rom_board", ":rom_key", "naomibd_eeprom", ":boardid", WRITE8(dc_state, g1_irq))
26652662MACHINE_CONFIG_END
26662663
26672664/*
r241910r241911
27792776
27802777Ferrari F355 specific Naomi BIOS roms:
27812778
2782EPR-21863 - NAOMI BOOT ROM 1999 07/02  1.34 (USA)
27832779EPR-22850 - NAOMI BOOT ROM 1999 08/30  1.35 (USA)
27842780EPR-22851 - NAOMI BOOT ROM 1999 08/30  1.35 (Export)
27852781
r241910r241911
28682864   ROM_SYSTEM_BIOS( 2, "bios2", "HOTD2 (Proto)" ) \
28692865   ROM_LOAD16_WORD_SWAP_BIOS( 2,  "hotd2biosproto.ic27", 0x000000, 0x200000, CRC(ea74e967) SHA1(e4d037480eb6555d335a8ab9cd6c56122335586d) )
28702866
2871#define F355DLX_BIOS \
2872   ROM_REGION( 0x200000, "maincpu", 0) \
2873   ROM_SYSTEM_BIOS( 0, "bios0", "Ferrari F355 Deluxe (USA)" ) \
2874   ROM_LOAD16_WORD_SWAP_BIOS( 0,  "epr-21863.ic27", 0x000000, 0x200000, CRC(0615a4d1) SHA1(2c6986580b84278af75f396229fdd587bebc1768) )
2875
28762867#define F355_BIOS \
28772868   ROM_REGION( 0x200000, "maincpu", 0) \
28782869   ROM_SYSTEM_BIOS( 0, "bios0", "Ferrari F355 (Export)" ) \
r241910r241911
30103001   ROM_REGION( 0x8400000, "rom_board", ROMREGION_ERASE)
30113002ROM_END
30123003
3013ROM_START( f355dlx )
3014   F355DLX_BIOS
3015   NAOMI_DEFAULT_EEPROM
3016
3017   ROM_REGION( 0x8400000, "rom_board", ROMREGION_ERASE)
3018ROM_END
3019
30203004ROM_START( f355bios )
30213005   F355_BIOS
30223006   NAOMI_DEFAULT_EEPROM
r241910r241911
37163700*/
37173701
37183702ROM_START( f355 )
3719   F355DLX_BIOS
3703   F355_BIOS /* note: require (undumped) special BIOS, game not compatible with EPR-22850/EPR-22851 from twin-versions */
37203704   NAOMI_DEFAULT_EEPROM
37213705
37223706   ROM_REGION( 0xb000000, "rom_board", ROMREGION_ERASEFF)
r241910r241911
51815165   ROM_REGION( 4, "rom_key", ROMREGION_ERASE00 )
51825166ROM_END
51835167
5184// Shootout Pool
5185ROM_START( shootopl )
5186   NAOMI_BIOS
5187   NAOMI_DEFAULT_EEPROM
5168/*
51885169
5189   ROM_REGION( 0x3000000, "rom_board", ROMREGION_ERASEFF)
5190   ROM_LOAD( "epr-23844.ic11", 0x000000, 0x400000, CRC(5c229638) SHA1(9185f9f2369bb2423faff4222419001ac9037d3f) )
5191   ROM_LOAD32_WORD( "mtp-23840.ic17s", 0x1000000, 0x800000, CRC(985e5ff4) SHA1(a6f529b1855cc2aef3bed8503746c2e38061f944) )
5192   ROM_LOAD32_WORD( "mtp-23841.ic18",  0x1000002, 0x800000, CRC(255fc335) SHA1(34ffec963880383bb9c02642f73ba3c852699831) )
5193   ROM_LOAD32_WORD( "mtp-23842.ic19s", 0x2000000, 0x800000, CRC(80724895) SHA1(ed4fa1160b35b3987702c0178bd31c3c5db69e6e) )
5194   ROM_LOAD32_WORD( "mtp-23843.ic20",  0x2000002, 0x800000, CRC(3574f616) SHA1(40130e8f98fb31c98428d444b79491f6a06ac208) )
5170SYSTEMID: NAOMI
5171JAP: SHOOTOUT POOL
5172USA: SHOOTOUT POOL
5173EXP: SHOOTOUT POOL PRIZE
51955174
5196   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
5175*/
51975176
5198   ROM_REGION( 4, "rom_key", 0 )
5199   ROM_LOAD( "shootopl-key.bin", 0, 4, CRC(45547e02) SHA1(4f79f478ff1eea14bc939a67ff570143cb56a4bf) )
5200ROM_END
5201
5202// Shootout Pool Prize
52035177ROM_START( shootpl )
52045178   NAOMI_BIOS
52055179   NAOMI_DEFAULT_EEPROM
r241910r241911
52175191   ROM_LOAD( "shootpl-key.bin", 0, 4, CRC(03c30b17) SHA1(e8e8659aa27b3d1cac2268850d3973d9afeaeba9) )
52185192ROM_END
52195193
5220// Shootout Pool Prize Ver. B
5194// SHOOTOUT POOL (the original, the above set is a sequel)
5195ROM_START( shootopl )
5196   NAOMI_BIOS
5197   NAOMI_DEFAULT_EEPROM
5198
5199   ROM_REGION( 0x3000000, "rom_board", ROMREGION_ERASEFF)
5200   ROM_LOAD( "epr-23844.ic11", 0x000000, 0x400000, CRC(5c229638) SHA1(9185f9f2369bb2423faff4222419001ac9037d3f) )
5201   ROM_LOAD32_WORD( "mtp-23840.ic17s", 0x1000000, 0x800000, CRC(985e5ff4) SHA1(a6f529b1855cc2aef3bed8503746c2e38061f944) )
5202   ROM_LOAD32_WORD( "mtp-23841.ic18",  0x1000002, 0x800000, CRC(255fc335) SHA1(34ffec963880383bb9c02642f73ba3c852699831) )
5203   ROM_LOAD32_WORD( "mtp-23842.ic19s", 0x2000000, 0x800000, CRC(80724895) SHA1(ed4fa1160b35b3987702c0178bd31c3c5db69e6e) )
5204   ROM_LOAD32_WORD( "mtp-23843.ic20",  0x2000002, 0x800000, CRC(3574f616) SHA1(40130e8f98fb31c98428d444b79491f6a06ac208) )
5205
5206   ROM_COPY( "rom_board", 0x1000000, 0x400000, 0xc00000 )
5207
5208   ROM_REGION( 4, "rom_key", 0 )
5209   ROM_LOAD( "shootopl-key.bin", 0, 4, CRC(45547e02) SHA1(4f79f478ff1eea14bc939a67ff570143cb56a4bf) )
5210ROM_END
5211
5212/* Shootout Pool Medal */
52215213ROM_START( shootplm )
52225214   NAOMI_BIOS
52235215   NAOMI_DEFAULT_EEPROM
r241910r241911
55975589   ROM_LOAD( "fpr-24333.ic8", 0x0000000, 0x4000000, CRC(a467b69c) SHA1(66a841b72ef1bb8cbabbfb1d14081b4dff14b1d3) )
55985590   ROM_LOAD( "fpr-24334.ic9", 0x4000000, 0x4000000, CRC(13d2d1dc) SHA1(6a47cfaddf006e6ff46837fac956fbcc20619d79) )
55995591
5600   // ROM_REGION( 4, "rom_key", 0 )
5601   // ROM_LOAD( "mushik2e-key.bin", 0, 4, CRC(b32a0633) SHA1(984c01e43cf359d8e8a0c6cb1a04c5dc3da47d39) )
5602   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5603   ROM_LOAD( "317-0437-com.ic3", 0, 20, NO_DUMP )
5592   ROM_REGION( 4, "rom_key", 0 )
5593   ROM_LOAD( "mushik2e-key.bin", 0, 4, CRC(b32a0633) SHA1(984c01e43cf359d8e8a0c6cb1a04c5dc3da47d39) )
56045594
56055595   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x02))
56065596ROM_END
r241910r241911
56145604   ROM_LOAD( "epr-24357.ic7", 0x0000000, 0x0400000, CRC(a2236d58) SHA1(3746b9d3c0f7ecf6340619bb8bf01f170ac4efb7) ) // EPR mode, overwrite FPR data
56155605   ROM_LOAD( "fpr-24334.ic9", 0x4000000, 0x4000000, CRC(13d2d1dc) SHA1(6a47cfaddf006e6ff46837fac956fbcc20619d79) )
56165606
5617   // ROM_REGION( 4, "rom_key", 0 )
5618   // ROM_LOAD( "mushik2e-key.bin", 0, 4, CRC(b32a0633) SHA1(984c01e43cf359d8e8a0c6cb1a04c5dc3da47d39) )
5619   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5620   ROM_LOAD( "317-0437-com.ic3", 0, 20, NO_DUMP )
5607   ROM_REGION( 4, "rom_key", 0 )
5608   ROM_LOAD( "mushik2e-key.bin", 0, 4, CRC(b32a0633) SHA1(984c01e43cf359d8e8a0c6cb1a04c5dc3da47d39) )
56215609
56225610   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x82))
56235611ROM_END
r241910r241911
56305618   ROM_LOAD( "fpr-24338.ic8", 0x0000000, 0x4000000, CRC(1423c374) SHA1(e6a3f0eaccd13c161d07705bcd00f447f08fc186) )
56315619   ROM_LOAD( "fpr-24339.ic9", 0x4000000, 0x4000000, CRC(11883792) SHA1(1782db04f74394f981f887ab1a95d687eb2c0b35) )
56325620
5633   // ROM_REGION( 4, "rom_key", 0 )
5634   // ROM_LOAD( "zunou-key.bin", 0, 4, CRC(cbe35afb) SHA1(78877655800aae27661bf720e1c37d6c6f2e3d1c) )
5635   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5636   ROM_LOAD( "317-0435-jpn.ic3", 0, 20, NO_DUMP )
5621   ROM_REGION( 4, "rom_key", 0 )
5622   ROM_LOAD( "zunou-key.bin", 0, 4, CRC(cbe35afb) SHA1(78877655800aae27661bf720e1c37d6c6f2e3d1c) )
56375623
56385624   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x02))
56395625ROM_END
r241910r241911
56485634   ROM_LOAD( "fpr-24415.ic10", 0x8000000, 0x4000000, CRC(133c742c) SHA1(89f857a31731dc918afc72b6cb716f5c77cb9d6e) )
56495635   ROM_LOAD( "fpr-24416.ic11", 0xc000000, 0x4000000, CRC(562fb88e) SHA1(172678e3e27cfad7f7e6217c4653a4ba119bfbdf) )
56505636
5651   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5652   ROM_LOAD( "317-5129-jpn.ic3", 0, 20, CRC(b6191cea) SHA1(13e14ff013bf2728203641303141c016e82b10a3) )
5637   ROM_REGION( 4, "rom_key", 0 )
5638   ROM_LOAD( "sl2007-key.bin", 0, 4, CRC(d5d1e807) SHA1(8a0cc371729c622bb05c5d26b3e39ec31d29ace1) )
56535639
56545640   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x04))
56555641ROM_END
r241910r241911
56645650   ROM_LOAD( "fpr-24384.ic10", 0x8000000, 0x4000000, CRC(2e9116c4) SHA1(58903a33c4ce72a1f75aefcab94393fc2e8bd2d9) )
56655651   ROM_LOAD( "fpr-24385.ic11", 0xc000000, 0x4000000, CRC(2b79f45d) SHA1(db97d980bf1590df4b983a4b7786977687238ef5) )
56665652
5667   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5668   ROM_LOAD( "317-0495-com.ic3", 0, 20, CRC(675aca7b) SHA1(5127189e1f960abf9ed3f643158747d9abcaee1c) )
5653   ROM_REGION( 4, "rom_key", 0 )
5654   ROM_LOAD( "asndynmt-key.bin", 0, 4, CRC(bf5396a9) SHA1(0b27fdc800143fb977cb2f1e937078d7a7006939) )
56695655
56705656   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x04))
56715657ROM_END
r241910r241911
56805666   ROM_LOAD( "fpr-24439.ic10", 0x8000000, 0x4000000, CRC(c02040f9) SHA1(27ad2cb45e8a516433917f060ca9798412bb95f7) )
56815667   // IC11 Populated, Empty
56825668
5683   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5684   ROM_LOAD( "317-5131-jpn.ic3", 0, 20, CRC(44ab8ca9) SHA1(c17b10041e70590547ed010dc16a4dd2510fcc80) )
5669   ROM_REGION( 4, "rom_key", 0 )
5670   ROM_LOAD( "illvelo-key.bin", 0, 4, CRC(e164952f) SHA1(6c0dfe567640e1e843a5d7bf858a24c101dfcf95) )
56855671
56865672   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x04))
56875673ROM_END
r241910r241911
56965682   ROM_LOAD( "ic10.bin", 0x8000000, 0x4000000, CRC(76fb945f) SHA1(448be0c3d9a7c3956dd51aca3c4d8d28f8cec227) )
56975683   // IC11 Populated, Empty
56985684
5699   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5700   ROM_LOAD( "317-5132-jpn.ic3", 0, 20, CRC(f2089de5) SHA1(12af0681decb22bbfa4b3e01037c3503846f265a) )
5685   ROM_REGION( 4, "rom_key", 0 )
5686   ROM_LOAD( "mamonoro-key.bin", 0x000000, 0x000004, CRC(264ca27a) SHA1(3b81b9794d86697f8eac7ea6945d992564ad6199) )
57015687
57025688   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x04))
57035689ROM_END
r241910r241911
57145700   ROM_LOAD( "ic12.bin",     0x10000000, 0x4000000, CRC(b8a6bff2) SHA1(befbc2e917b3107f1c4bfb9169623282ff97bfb2) )
57155701   ROM_LOAD( "ic13.bin",     0x14000000, 0x4000000, CRC(4886329f) SHA1(6ccf6fb83cfdbef3f85f6c06e641c38ff434d605) )
57165702
5717   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5718   ROM_LOAD( "317-5133-jpn.ic3", 0, 20, CRC(3dc7d902) SHA1(bb70e80dff878bca3652088f3333079e0781f482) )
5703   ROM_REGION( 4, "rom_key", 0 )
5704   ROM_LOAD( "mbaa-key.bin", 0x000000, 0x000004, CRC(f4ad909f) SHA1(27ba44592c2642b5862a24f68c755ad4115e6047) )
57195705
57205706   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x06))
57215707ROM_END
r241910r241911
57335719   ROM_LOAD( "ic12.bin",     0x10000000, 0x4000000, CRC(b8a6bff2) SHA1(befbc2e917b3107f1c4bfb9169623282ff97bfb2) )
57345720   ROM_LOAD( "ic13.bin",     0x14000000, 0x4000000, CRC(4886329f) SHA1(6ccf6fb83cfdbef3f85f6c06e641c38ff434d605) )
57355721
5736   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5737   ROM_LOAD( "317-5133-jpn.ic3", 0, 20, CRC(3dc7d902) SHA1(bb70e80dff878bca3652088f3333079e0781f482) )
5722   ROM_REGION( 4, "rom_key", 0 )
5723   ROM_LOAD( "mbaa-key.bin", 0x000000, 0x000004, CRC(f4ad909f) SHA1(27ba44592c2642b5862a24f68c755ad4115e6047) )
57385724
57395725   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x86))
57405726ROM_END
r241910r241911
57485734   ROM_LOAD( "ic9.bin", 0x4000000, 0x4000000, CRC(16cf2e7a) SHA1(ff7c6540e4507f84e3128ba03be4826ba504678c) )
57495735   // IC10 and IC11 Populated, Empty
57505736
5751   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5752   ROM_LOAD( "317-5138-jpn.ic3", 0, 20, CRC(babcc420) SHA1(653cdcfa388426f4ce03c76506046ec6fd070562) )
5737   ROM_REGION( 4, "rom_key", 0 )
5738   ROM_LOAD( "radirgyn-key.bin", 0x000000, 0x000004, CRC(c158cf3b) SHA1(c128646d7fee79fc10bf7bbaa23121f347df77f4) )
57535739
57545740   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x04))
57555741ROM_END
r241910r241911
57635749   ROM_LOAD( "ic9.bin",    0x4000000, 0x4000000, CRC(18c994d7) SHA1(159e1425b2fc645133814b0d26d93a90e9849b1a) )
57645750   // IC10 and IC11 Populated, Empty
57655751
5766   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5767   ROM_LOAD( "317-5130-jpn.ic3", 0, 20, CRC(3e0c010b) SHA1(b6da97d4ecb228e73fb9a5ada837d0d6699ab0f1) )
5752   ROM_REGION( 4, "rom_key", 0 )
5753   ROM_LOAD( "ausfache-key.bin", 0, 4, CRC(93cdc793) SHA1(f0a0c321a3bdf8ca87cbd840a168a9057c08f16a) )
57685754
57695755   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x04))
57705756ROM_END
r241910r241911
57835769   ROM_REGION( 0x200000, "ioboard", 0) // touch screen I/O board, program disassembles as little-endian SH-4
57845770   ROM_LOAD( "fpr24351.ic14", 0x000000, 0x200000, CRC(4d1b7b89) SHA1(965b8c6b5a2e7b3f1b1e2eac19c86000c3b66754) )
57855771
5786   // ROM_REGION( 4, "rom_key", 0 )
5787   // ROM_LOAD( "pokasuka-key.bin", 0, 4, CRC(f00bcd61) SHA1(b8315b851656c2e0b7853979988d1c44eab0886b) )
5788   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5789   ROM_LOAD( "317-0461-com.ic3", 0, 20, NO_DUMP )
5772   ROM_REGION( 4, "rom_key", 0 )
5773   ROM_LOAD( "pokasuka-key.bin", 0, 4, CRC(f00bcd61) SHA1(b8315b851656c2e0b7853979988d1c44eab0886b) )
57905774
57915775   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x05))
57925776ROM_END
r241910r241911
58055789   ROM_REGION( 0x200000, "ioboard", 0) // touch screen I/O board, program disassembles as little-endian SH-4
58065790   ROM_LOAD( "fpr24351.ic14", 0x000000, 0x200000, CRC(4d1b7b89) SHA1(965b8c6b5a2e7b3f1b1e2eac19c86000c3b66754) )
58075791
5808   // ROM_REGION( 4, "rom_key", 0 )
5809   // ROM_LOAD( "pokasuka-key.bin", 0, 4, CRC(f00bcd61) SHA1(b8315b851656c2e0b7853979988d1c44eab0886b) )
5810   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5811   ROM_LOAD( "317-0461-com.ic3", 0, 20, NO_DUMP )
5792   ROM_REGION( 4, "rom_key", 0 )
5793   ROM_LOAD( "pokasuka-key.bin", 0, 4, CRC(f00bcd61) SHA1(b8315b851656c2e0b7853979988d1c44eab0886b) )
58125794
58135795   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x05))
58145796ROM_END
r241910r241911
58265808   ROM_LOAD( "fpr-24425.ic10", 0x08000000, 0x4000000, CRC(6223ebac) SHA1(64c0ec61c108acbb557e7d3837f578deba832cb6) )
58275809   ROM_LOAD( "fpr-24426.ic11", 0x0c000000, 0x4000000, CRC(c78b0981) SHA1(f889acf9065566e11ff985a3b6c4824e364d57ae) )
58285810
5829   ROM_REGION( 20, "pic_readout", 0 ) // data obtained using a custom PIC reader
5830   ROM_LOAD( "317-0503-jpn.ic3", 0, 20, CRC(69fc3f47) SHA1(3a887c62e93fa264b307c954eb39a4fca1bdfad6) )
5811   ROM_REGION( 4, "rom_key", 0 )
5812   ROM_LOAD( "rhytngk-key.bin", 0x000000, 0x000004, CRC(e2560d28) SHA1(46fb9b47a0df3035f92db2b0c63a6e4e0745ad29) )
58315813
58325814   ROM_REGION(0x4, "boardid", ROMREGION_ERASEVAL(0x04))
58335815ROM_END
r241910r241911
88648846/* Main board and game specific BIOS */
88658847/* Naomi */ GAME( 1998, naomi,    0, naomi, naomi, naomi_state,   naomi, ROT0, "Sega", "Naomi Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88668848/* game  */ GAME( 1998, hod2bios, 0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi House of the Dead 2 Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
8867/* game  */ GAME( 1999, f355dlx,  0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi Ferrari F355 Challenge (deluxe) Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
8868/* game  */ GAME( 1999, f355bios, 0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi Ferrari F355 Challenge (twin) Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
8849/* game  */ GAME( 1999, f355bios, 0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi Ferrari F355 Challenge Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88698850/* game  */ GAME( 1999, airlbios, 0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi Airline Pilots (deluxe) Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88708851/* Naomi2*/ GAME( 2001, naomi2,   0, naomi, naomi, driver_device, 0,     ROT0, "Sega", "Naomi 2 Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
88718852/* GDROM */ GAME( 2001, naomigd,  0, naomi, naomi, naomi_state,   naomi, ROT0, "Sega", "Naomi GD-ROM Bios", GAME_FLAGS|GAME_IS_BIOS_ROOT )
r241910r241911
88738854/* 834-xxxxx (Sega Naomi cart with game specific BIOS sets) */
88748855/* 13636-01 */ GAME( 1998, hotd2,  hod2bios, naomim2, hotd2, naomi_state,   hotd2, ROT0, "Sega", "House of the Dead 2", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */
88758856/* 13636  */ GAME( 1998, hotd2o,   hotd2,    naomim2, hotd2, naomi_state,   hotd2, ROT0, "Sega", "House of the Dead 2 (original)", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */
8876/* none   */ GAME( 1998, hotd2p,   hotd2,    naomim2, hotd2, naomi_state,   hotd2, ROT0, "Sega", "House of the Dead 2 (prototype)", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */
8877/* 13842  */ GAME( 1999, f355,     f355dlx,  naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Ferrari F355 Challenge (deluxe)", GAME_FLAGS ) /* specific BIOS "f355dlx" needed */
8857/* 13636? */ GAME( 1998, hotd2p,   hotd2,    naomim2, hotd2, naomi_state,   hotd2, ROT0, "Sega", "House of the Dead 2 (prototype)", GAME_FLAGS ) /* specific BIOS "hod2bios" needed */
8858/* 13842  */ GAME( 1999, f355,     f355bios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Ferrari F355 Challenge", GAME_FLAGS ) /* specific BIOS "f355bios" needed */
88788859/* 13950  */ GAME( 1999, f355twin, f355bios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Ferrari F355 Challenge (twin)", GAME_FLAGS ) /* specific BIOS "f355bios" needed */
88798860/* ?????  */ GAME( 2001, f355twn2, f355bios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Ferrari F355 Challenge 2 (twin)", GAME_FLAGS ) /* specific BIOS "f355bios" needed */
88808861/* ?????  */ GAME( 1999, alpiltdx, airlbios, naomim2, naomi, driver_device, 0,     ROT0, "Sega", "Airline Pilots (deluxe) (Rev B)", GAME_FLAGS ) /* specific BIOS "airlbios" needed */
r241910r241911
88978878/* 0018 */ GAME( 1999, sgtetris, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Sega Tetris", GAME_FLAGS )
88988879/* 0019 */ GAME( 1999, dybb99,   naomi,    naomim2, dybbnao, naomi_state, naomi,   ROT0, "Sega", "Dynamite Baseball '99 (JPN) / World Series '99 (USA, EXP, KOR, AUS) (Rev B)", GAME_FLAGS )
88998880/* 0020 */ GAME( 1999, samba,    naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Samba De Amigo (JPN) (Rev B)", GAME_FLAGS )
8900/* none */ GAME( 1999, sambap,   samba,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Samba De Amigo (prototype)", GAME_FLAGS )
8901/* none */ GAME( 2000, virnbap,  virnba,   naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Virtua NBA (prototype)", GAME_FLAGS )
8881/* 0020? */GAME( 1999, sambap,   samba,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Samba De Amigo (prototype)", GAME_FLAGS )
8882/* 0021 */ GAME( 2000, virnbap,  virnba,   naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Virtua NBA (prototype)", GAME_FLAGS )
89028883/* 0021 */ GAME( 2000, virnbao,  virnba,   naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Virtua NBA (JPN, USA, EXP, KOR, AUS) (original)", GAME_FLAGS )
89038884/* 0021-01*/GAME( 2000,virnba,   naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Virtua NBA (JPN, USA, EXP, KOR, AUS)", GAME_FLAGS )
89048885/* 0022 */ GAME( 2000, tduno2,   naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Touch de Uno! 2", GAME_FLAGS )
r241910r241911
89338914/* 0088 */ GAME( 2001, derbyocw, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Derby Owners Club World Edition (JPN, USA, EXP, KOR, AUS) (Rev D)", GAME_FLAGS )
89348915/* 0088 */ GAME( 2001, drbyocwc, derbyocw, naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Derby Owners Club World Edition (JPN, USA, EXP, KOR, AUS) (Rev C)", GAME_FLAGS )
89358916/* 0098 */ GAME( 2002, shootopl, naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool", GAME_FLAGS )
8936/* 0123 */ GAME( 2003, starhrsp, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Star Horse Progress (Rev A)", GAME_FLAGS )
8917/* 0123 */ GAME( 2001, starhrsp, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Star Horse Progress (Rev A)", GAME_FLAGS )
89378918/* 0126 */ GAME( 2003, oinori,   naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Oinori-daimyoujin Matsuri", GAME_FLAGS )
8938/* 0128 */ GAME( 2003, shootpl,  naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool The Medal / Shootout Pool Prize (Rev A)", GAME_FLAGS )
8919/* 0128 */ GAME( 2002, shootpl,  naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool (JPN, USA, KOR, AUS) / Shootout Pool Prize (EXP) (Rev A)", GAME_FLAGS )
89398920/* 0130 */ GAME( 2002, hopper,   naomi,    naomi,   naomi,   naomi_state, naomi,   ROT0, "Sega", "SWP Hopper Board", GAME_FLAGS )
8940/* 0136 */ GAME( 2004, shootplm, naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool The Medal Ver. B / Shootout Pool Prize Ver. B", GAME_FLAGS )
8921/* 0136 */ GAME( 2001, shootplm, naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Shootout Pool Medal", GAME_FLAGS )
89418922/* 0140 */ GAME( 2004, kick4csh, naomi,    naomim1, naomi,   naomi_state, kick4csh,ROT0, "Sega", "Kick '4' Cash", GAME_FLAGS )
89428923/* 0150 */ GAME( 2003, mtkob2,   naomi,    naomim1, naomi,   naomi_state, naomi,   ROT0, "Sega", "Mushiking The King Of Beetle 2K3 2nd", GAME_FLAGS )
89438924/* 0158 */ GAME( 2005, mushi2k5, naomi,    naomim2, naomi,   naomi_state, naomi,   ROT0, "Sega", "Mushiking The King Of Beetle 2K5 1st", GAME_FLAGS )
r241910r241911
89488929/* 0170 */ GAME( 2007, pokasuka, manicpnc, naomim4, naomi,   naomi_state, naomi,   ROT0, "Sega", "Pokasuka Ghost", GAME_FLAGS )
89498930/* 0175 */ GAME( 2007, asndynmt, naomi,    naomim4, naomi,   naomi_state, naomi,   ROT0, "Sega", "Asian Dynamite", GAME_FLAGS )
89508931/* 0177 */ GAME( 2007, rhytngk,  naomi,    naomim4, naomi,   naomi_state, naomi,   ROT0, "Sega/Nintendo", "Rhythm Tengoku", GAME_FLAGS )
8951// 01?? Star Horse Progress Returns
89528932// 00xx Mayjinsen (Formation Battle in May) - prototype, never released
89538933
89548934/* Cartridge prototypes of games released on GD-ROM */
r241910r241911
89708950/* 0137 */ GAME( 2004, clubkpzb, naomi2,  naomi2m1, naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart Prize Ver. B", GAME_FLAGS )
89718951// needs verification is this dump really from 840-0139C cart
89728952/* 0139 */ GAME( 2003, clubk2k3, naomi2,  naomi2m1, naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart: European Session (2003)", GAME_FLAGS )
8973/* none */ GAME( 2003, clubk2kp, clubk2k3,naomi2,   naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart: European Session (2003, prototype)", GAME_FLAGS )
8953/* ??? */ GAME( 2003, clubk2kp, clubk2k3,naomi2,   naomi, naomi_state, naomi2,   ROT0, "Sega", "Club Kart: European Session (2003, prototype)", GAME_FLAGS )
89748954
89758955/* 841-xxxxx ("Licensed by Sega" Naomi cart games)*/
89768956/* 0001 */ GAME( 1999, pstone,   naomi, naomim2, naomi,   naomi_state, naomi,  ROT0,  "Capcom",          "Power Stone (JPN, USA, EUR, ASI, AUS)", GAME_FLAGS )
trunk/src/mame/drivers/popobear.c
r241910r241911
8989      : driver_device(mconfig, type, tag),
9090      m_maincpu(*this,"maincpu"),
9191      m_spr(*this, "spr"),
92      m_vram(*this, "vram"),
9392      m_vregs(*this, "vregs"),
9493      m_gfxdecode(*this, "gfxdecode"),
9594      m_palette(*this, "palette")
r241910r241911
9998      tilemap_base[1] = 0xf4000;
10099      tilemap_base[2] = 0xf8000;
101100      tilemap_base[3] = 0xfc000;
101
102      tilemap_size[0] = 0x04000;
103      tilemap_size[1] = 0x04000;
104      tilemap_size[2] = 0x04000;
105      tilemap_size[3] = 0x04000;
102106   }
103107
104108   required_device<cpu_device> m_maincpu;
105109   required_shared_ptr<UINT16> m_spr;
106   required_shared_ptr<UINT16> m_vram;
107110   required_shared_ptr<UINT16> m_vregs;
108111   optional_device<gfxdecode_device> m_gfxdecode;
109112   required_device<palette_device> m_palette;
110113
111   dynamic_array<UINT16> m_vram_rearranged;
114   UINT16* m_vram;
115   UINT16* m_vram_rearranged;
112116
113117   int tilemap_base[4];
118   int tilemap_size[4];
114119
115120   DECLARE_READ8_MEMBER(popo_620000_r);
116121   DECLARE_WRITE8_MEMBER(popobear_irq_ack_w);
r241910r241911
119124   TIMER_DEVICE_CALLBACK_MEMBER(popobear_irq);
120125   void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
121126
127   int m_gfx_index;
122128   tilemap_t    *m_bg_tilemap[4];
123129   TILE_GET_INFO_MEMBER(get_popobear_bg0_tile_info);
124130   TILE_GET_INFO_MEMBER(get_popobear_bg1_tile_info);
r241910r241911
143149
144150
145151      COMBINE_DATA(&m_vram_rearranged[swapped_offset]);
146      m_gfxdecode->gfx(0)->mark_dirty((swapped_offset)/32);
152      m_gfxdecode->gfx(m_gfx_index)->mark_dirty((swapped_offset)/32);
147153
148154      // unfortunately tilemaps and tilegfx share the same ram so we're always dirty if we write to RAM
149155      m_bg_tilemap[0]->mark_all_dirty();
r241910r241911
152158      m_bg_tilemap[3]->mark_all_dirty();
153159
154160   }
161   DECLARE_READ16_MEMBER(popo_vram_r) { return m_vram[offset]; }
155162
156163};
157164
r241910r241911
159166static const gfx_layout popobear_char_layout =
160167{
161168   8,8,
162   RGN_FRAC(1,1),
169   0x4000,
163170   8,
164171   { 0,1,2,3,4,5,6,7 },
165172   { STEP8(0, 8) },
r241910r241911
167174   8*64
168175};
169176
170GFXDECODE_START(popobear)
171   GFXDECODE_RAM( "vram", 0, popobear_char_layout, 0, 1 )
172GFXDECODE_END
173177
174178TILE_GET_INFO_MEMBER(popobear_state::get_popobear_bg0_tile_info)
175179{
r241910r241911
208212
209213void popobear_state::video_start()
210214{
211   m_vram_rearranged.resize(0x100000 / 2);
215   /* find first empty slot to decode gfx */
216   for (m_gfx_index = 0; m_gfx_index < MAX_GFX_ELEMENTS; m_gfx_index++)
217      if (m_gfxdecode->gfx(m_gfx_index) == 0)
218         break;
212219
213   m_gfxdecode->gfx(0)->set_source(reinterpret_cast<UINT8 *>(&m_vram_rearranged[0]));
220   assert(m_gfx_index != MAX_GFX_ELEMENTS);
214221
222   m_vram = auto_alloc_array_clear(machine(), UINT16, 0x100000/2);
223   m_vram_rearranged = auto_alloc_array_clear(machine(), UINT16, 0x100000/2);
224
225
226   /* create the char set (gfx will then be updated dynamically from RAM) */
227   m_gfxdecode->set_gfx(m_gfx_index, global_alloc(gfx_element(m_palette, popobear_char_layout, (UINT8 *)m_vram_rearranged, NATIVE_ENDIAN_VALUE_LE_BE(8,0), m_palette->entries() / 16, 0)));
228
215229   m_bg_tilemap[0] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_popobear_bg0_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
216230   m_bg_tilemap[1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_popobear_bg1_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
217231   m_bg_tilemap[2] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(popobear_state::get_popobear_bg2_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 128, 64);
r241910r241911
229243
230244void popobear_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect)
231245{
246   // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
232247   UINT8* vram = reinterpret_cast<UINT8 *>(m_spr.target());
233248   int i;
234249
r241910r241911
249264      /* 0x*29 = 32 x 32 */
250265      for(i = 0x800-8;i >= 0; i-=8)
251266      {
252         UINT16 *sprdata = &m_spr[(0x7f800 + i) / 2];
267         int y = vram[i+0x7f800+2]|(vram[i+0x7f800+3]<<8);
268         int x = vram[i+0x7f800+4]|(vram[i+0x7f800+5]<<8);
269         int spr_num = vram[i+0x7f800+6]|(vram[i+0x7f800+7]<<8);
270         int param = vram[i+0x7f800+0]|(vram[i+0x7f800+1]<<8);
253271
254         int param = sprdata[0];
255272         int pri = (param & 0x0f00)>>8;
256273
257274         // we do this because it's sprite<->sprite priority,
258275         if (pri!=drawpri)
259276            continue;
260277
261         int y = sprdata[1];
262         int x = sprdata[2];
263         int spr_num = sprdata[3];
264
265278         int width = 8 << ((param & 0x30)>>4);
266279         int height = width; // sprites are always square?
267280
r241910r241911
314327
315328            for(int xi=0;xi<width;xi++)
316329            {
317               UINT8 pix = vram[BYTE_XOR_BE(spr_num)];
330               UINT8 pix = (vram[spr_num^1] & 0xff);
318331               int x_draw = (x_dir) ? x+((width-1) - xi) : x+xi;
319332
320333               if(cliprect.contains(x_draw, y_draw))
r241910r241911
466479   AM_RANGE(0x000000, 0x03ffff) AM_ROM
467480   AM_RANGE(0x210000, 0x21ffff) AM_RAM
468481   AM_RANGE(0x280000, 0x2fffff) AM_RAM AM_SHARE("spr") // unknown boundaries, 0x2ff800 contains a sprite list, lower area = sprite gfx
469   AM_RANGE(0x300000, 0x3fffff) AM_RAM_WRITE( popo_vram_w ) AM_SHARE("vram") // tile definitions + tilemaps
482   AM_RANGE(0x300000, 0x3fffff) AM_READWRITE( popo_vram_r, popo_vram_w ) // tile definitions + tilemaps
470483
471484
472485   /* Most if not all of these are vregs */
r241910r241911
647660
648661   MCFG_SPEAKER_STANDARD_MONO("mono")
649662
650   MCFG_GFXDECODE_ADD("gfxdecode", "palette", popobear)
663   MCFG_GFXDECODE_ADD("gfxdecode", "palette", empty)
651664
652665   MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_42MHz/16)  // XTAL CORRECT, DIVISOR GUESSED
653666   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
trunk/src/mame/etc/template_cpu.c
r241910r241911
1// license: BSD-3-Clause
1// license: ?
22// copyright-holders: Angelo Salese
33/*****************************************************************************
44 *
trunk/src/mame/etc/template_cpu.h
r241910r241911
1// license: BSD-3-Clause
1// license: ?
22// copyright-holders: Angelo Salese
33/*****************************************************************************
44 *
r241910r241911
1313
1414enum
1515{
16   #if UNUSED
16   #if 0
1717   XXX_R0=1, XXX_R1, XXX_R2, XXX_R3,
1818   XXX_R4, XXX_R5, XXX_R6, XXX_R7
1919   #endif
trunk/src/mame/etc/template_device.c
r241910r241911
1// license: BSD-3-Clause
1// license: ?
22// copyright-holders: Angelo Salese
33/***************************************************************************
44
trunk/src/mame/etc/template_device.h
r241910r241911
1// license: BSD-3-Clause
1// license: ?
22// copyright-holders: Angelo Salese
33/***************************************************************************
44
trunk/src/mame/etc/template_driver.c
r241910r241911
1// license: BSD-3-Clause
1// license: ?
22// copyright-holders: Angelo Salese
33/***************************************************************************
44
r241910r241911
151151   MCFG_SCREEN_UPDATE_DRIVER(xxx_state, screen_update)
152152//  MCFG_SCREEN_SIZE(32*8, 32*8)
153153//  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
154   MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 442, 0, 320, 264, 0, 240) /* generic NTSC video timing, change accordingly */
154   MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 442, 0, 320, 264, 0, 240) /* generic video timing, change accordingly */
155155   MCFG_SCREEN_PALETTE("palette")
156156
157157   MCFG_GFXDECODE_ADD("gfxdecode", "palette", xxx)
trunk/src/mame/etc/template_readme.txt
r241910r241911
1The template family tree is an attempt to ease the pain to write CPUs/drivers/devices
2from scratch (especially for smaller projects).
3
4===
5Usage:
6- Any "xxx" name is case-sensitive (i.e., XXX -> NAMEOFDEVICE, xxx -> nameofdevice);
7
8===
9License:
10Copyright (c) 2014, Angelo Salese & the MAME team
11All rights reserved.
12
13Redistribution and use in source and binary forms, with or without
14modification, are permitted provided that the following conditions are met:
15    * Redistributions of source code must retain the above copyright
16      notice, this list of conditions and the following disclaimer.
17    * Redistributions in binary form must reproduce the above copyright
18      notice, this list of conditions and the following disclaimer in the
19      documentation and/or other materials provided with the distribution.
20    * Neither the name of the <organization> nor the
21      names of its contributors may be used to endorse or promote products
22      derived from this software without specific prior written permission.
23
24THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
25ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
28DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
35===
36TODO:
37- Define convention for template inputs (i.e. optimal for each host);
38- Write template drivers for different endianesses;
39- Write template header for drivers;
40- Write tool program that auto-generate contents;
trunk/src/mame/includes/lethal.h
r241910r241911
1818      : driver_device(mconfig, type, tag),
1919      m_maincpu(*this, "maincpu"),
2020      m_soundcpu(*this, "soundcpu"),
21      m_bank4000(*this, "bank4000"),
21      m_bank4800(*this, "bank4800"),
2222      m_k056832(*this, "k056832"),
2323      m_k053244(*this, "k053244"),
2424      m_palette(*this, "palette") { }
r241910r241911
2626   /* video-related */
2727   int        m_layer_colorbase[4];
2828   int        m_sprite_colorbase;
29   int        m_back_colorbase;
3029
3130   /* misc */
3231   UINT8      m_cur_control2;
r241910r241911
3433   /* devices */
3534   required_device<cpu_device> m_maincpu;
3635   required_device<cpu_device> m_soundcpu;
37   required_device<address_map_bank_device> m_bank4000;
36   required_device<address_map_bank_device> m_bank4800;
3837   required_device<k056832_device> m_k056832;
3938   required_device<k05324x_device> m_k053244;
4039   required_device<palette_device> m_palette;
r241910r241911
4443   DECLARE_WRITE8_MEMBER(sound_irq_w);
4544   DECLARE_READ8_MEMBER(sound_status_r);
4645   DECLARE_WRITE8_MEMBER(le_bankswitch_w);
46   DECLARE_WRITE8_MEMBER(le_bgcolor_w);
4747   DECLARE_READ8_MEMBER(guns_r);
4848   DECLARE_READ8_MEMBER(gunsaux_r);
4949   DECLARE_WRITE8_MEMBER(lethalen_palette_control);
trunk/src/mame/layout/alinvade.lay
r241910r241911
1<?xml version="1.0"?>
2<mamelayout version="2">
3   <element name="overlay">
4      <rect>
5         <bounds left="0" top="0" right="127" bottom="23" />
6         <color red="1" green="1" blue="0.60" />
7      </rect>
8      <rect>
9         <bounds left="0" top="24" right="127" bottom="82" />
10         <color red="0.25" green="1" blue="0.65" />
11      </rect>
12      <rect>
13         <bounds left="0" top="83" right="127" bottom="127" />
14         <color red="1" green="0.125" blue="0.125" />
15      </rect>
16   </element>
17
18   <view name="Color Overlay">
19      <screen index="0">
20         <bounds left="0" top="0" right="3" bottom="4" />
21      </screen>
22      <overlay name="overlay" element="overlay">
23         <bounds left="0" top="0" right="3" bottom="4" />
24      </overlay>
25   </view>
26</mamelayout>
trunk/src/mame/machine/naomim4.c
r241910r241911
1616// phase is indeed a nibble-based linear combination.
1717// With that block cipher, a stream cipher is constructed by feeding the output result of the 1st round
1818// of a certain 16-bits block as a whitening value for the next block. The cart dependent data used by
19// the algorithm is a 32-bits key stored in the PIC16C621A. The hardware auto-reset the feed value
19// the algorithm is comprised by a 16-bits "key" and a 16-bits IV (initialization vector) --though they
20// will be merged in a only 32-bits number in the code--. The hardware auto-reset the feed value
2021// to the cart-based IV every 16 blocks (32 bytes); that reset is not address-based, but index-based.
2122
2223const device_type NAOMI_M4_BOARD = &device_creator<naomi_m4_board>;
2324
2425const UINT8 naomi_m4_board::k_sboxes[4][16] = {
25   {9,8,2,11,1,14,5,15,12,6,0,3,7,13,10,4},
26   {2,10,0,15,14,1,11,3,7,12,13,8,4,9,5,6},
27   {4,11,3,8,7,2,15,13,1,5,14,9,6,12,0,10},
28   {1,13,8,2,0,5,6,14,4,11,15,10,12,3,7,9}
26   {13,14,1,11,7,9,10,0,15,6,4,5,8,2,12,3},
27   {12,3,14,6,7,15,2,13,1,4,11,0,9,10,8,5},
28   {6,12,0,10,1,5,14,9,7,2,15,13,4,11,3,8},
29   {9,12,8,7,10,4,0,15,1,11,14,2,13,5,6,3}
2930};
3031
3132// from S29GL512N datasheet
r241910r241911
6667   key = tempkey & 0xffff;
6768#else
6869   const UINT8 *key_data = memregion(key_tag)->base();
69   subkey1 = (key_data[17] << 8) | key_data[16];
70   subkey2 = (key_data[19] << 8) | key_data[18];
70   key = (key_data[2] << 8) | key_data[3];
71   iv = (key_data[0] << 8) | key_data[1];
7172#endif
7273   buffer = auto_alloc_array(machine(), UINT8, BUFFER_SIZE);
7374   enc_init();
r241910r241911
116117   encryption = false;
117118   cfi_mode = false;
118119   counter = 0;
119   iv = 0;
120   cur_iv = 0;
120121}
121122
122123void naomi_m4_board::board_setup_address(UINT32 address, bool is_dma)
r241910r241911
175176void naomi_m4_board::enc_reset()
176177{
177178   buffer_actual_size = 0;
178   iv = 0;
179   cur_iv = iv;
179180   counter = 0;
180181}
181182
182UINT16 naomi_m4_board::decrypt_one_round(UINT16 word, UINT16 subkey)
183{
184   return one_round[word ^ subkey] ^ subkey ;
185}
186
187183void naomi_m4_board::enc_fill()
188184{
189185   const UINT8 *base = m_region->base() + rom_cur_address;
190186   while(buffer_actual_size < BUFFER_SIZE) {
191187      UINT16 enc = base[0] | (base[1] << 8);
192      UINT16 dec = iv;
193      iv = decrypt_one_round(enc ^ iv, subkey1);
194      dec ^= decrypt_one_round(iv, subkey2);
195     
188      UINT16 output_whitening = key ^ cur_iv;
189      cur_iv = one_round[enc ^ cur_iv];
190      UINT16 dec = one_round[key ^ cur_iv] ^ output_whitening;
191
196192      buffer[buffer_actual_size++] = dec;
197193      buffer[buffer_actual_size++] = dec >> 8;
198194
r241910r241911
202198      counter++;
203199      if(counter == 16) {
204200         counter = 0;
205         iv = 0;
201         cur_iv = iv;
206202      }
207203   }
208204}
trunk/src/mame/machine/naomim4.h
r241910r241911
3232   static const UINT8 k_sboxes[4][16];
3333
3434   const char *key_tag;
35   UINT16 subkey1, subkey2;
35   UINT16 key, iv;
3636   UINT16 *one_round;
3737
3838   UINT8 *buffer;
3939   UINT32 rom_cur_address, buffer_actual_size;
40   UINT16 iv;
40   UINT16 cur_iv;
4141   UINT8 counter;
4242   bool encryption;
4343   bool cfi_mode;
r241910r241911
4545   void enc_init();
4646   void enc_reset();
4747   void enc_fill();
48   UINT16 decrypt_one_round(UINT16 word, UINT16 subkey);
4948};
5049
5150extern const device_type NAOMI_M4_BOARD;
trunk/src/mame/mame.lst
r241910r241911
52775277ggram2          // 1999.04 Giant Gram: All Japan Pro Wrestling 2
52785278            // 1999.05 Taisen Puzzle Kurutto Stone
52795279ringout         // 1999.06 Ring Out 4x4
5280f355dlx         // 1999.07 F355 Challenge Deluxe (BIOS)
5281f355bios        // 1999.08 F355 Challenge Twin (BIOS)
5282f355            // 1999.07 F355 Challenge Deluxe
5280f355bios        // 1999.07 F355 Challenge (BIOS)
5281f355            // 1999.07 F355 Challenge
52835282f355twin        // 1999.07 F355 Challenge Twin
52845283shangril        // 1999.08 Dengen Tenshi Taisen Janshi Shangri-la
52855284tduno           // 1999.08 Touch de UNO! / Unou Nouryoku Check Machine
r241910r241911
53235322qmegamis        // 2000.05 Quiz Ah Megamisama
53245323derbyo2k        // 2000.06 Derby Owners Club 2000 Ver.2 (Rev A)
53255324starhrse        // 2000.?? Star Horse (big screens)
5326starhrct        // 2000.12 Star Horse (server)
5325starhrct        // 2000.?? Star Horse (server)
53275326starhrcl        // 2000.?? Star Horse (client)
53285327vonot           // 2000.06 Virtual-on Oratorio Tangram M.S.B.S. Ver.5.66 2000 Edition
53295328ggx             // 2000.07 Guilty Gear X
r241910r241911
53575356sfz3ugd         // 2001.02 Street Fighter ZERO3 Upper
53585357gundmgd         // 2001.03 Mobile Suit Gundam: Federation Vs. Zeon (GD-ROM)
53595358gundmct         // 2001.03 Mobile Suit Gundam: Federation Vs. Zeon (cartridge)
5359starhrsp        // 2001.03 Star Horse Progress (Rev A)
53605360dygolf          // 2001.04.27 Dynamic Golf / Virtua Golf (Rev A)
53615361            // 2001.04 Shakatto Tambourine Motto Norinori Shinkyoku Tsuika
53625362shaktmsp        // 2001.04.04 Shakatto Tambourine 2K1 SPR
r241910r241911
53855385lupinsho        // 2001.12 Lupin the Third: the Shooting
53865386drbyocwc        // 2001.?? Derby Owners Club World Edition (Rev. C)
53875387derbyocw        // 2001.?? Derby Owners Club World Edition (Rev. D)
5388shootplm        // 2001.?? Shootout Pool Medal
53885389            // 2001.?? Star Horse 2001
53895390hopper          // 2002.?? SWP Hopper Board
53905391vathlete        // 2002.03 Virtua Athletics / Virtua Athlete
r241910r241911
54015402            // 2002.?? Pochinya
54025403quizqgd         // 2002.?? Quiz Keitai Q mode
54035404shootopl        // 2002.?? Shootout Pool
5404shootpl         // 2003.?? Shootout Pool The Medal / Shootout Pool Prize (Rev A)
5405shootpl         // 2002.?? Shootout Pool / Shootout Pool Prize (Rev A)
54055406mtkob2          // 2003.02 MushiKing The King Of Beetle
54065407            // 2003.03 Sega Network Taisen Mahjong MJ
54075408ggxxrl          // 2003.03 Guilty Gear XX # Reload (Rev A)
r241910r241911
54125413oinori          // 2003.08 Oinori-daimyoujin Matsuri
54135414psyvar2         // 2003.11 Psyvariar 2 - The Will To Fabricate
54145415puyofev         // 2003.11 Puyo Puyo Fever
5415starhrsp        // 2003.12 Star Horse Progress (Rev A)
54165416puyofevp        // 2003.?? Puyo Puyo Fever (prototype)
54175417            // 2003.?? Dragon Treasure
54185418            // 2003.?? Rabbit 2
r241910r241911
54205420tetkiwam        // 2004.06 Tetris Kiwamemichi (Arcade TV Game List - P.88, Right, 11 from bottom)
54215421trizeal         // 2004.09 Trizeal
54225422            // 2004.?? Dragon Treasure 2
5423shootplm        // 2004.?? Shootout Pool The Medal Ver. B / Shootout Pool Prize Ver. B
54245423kick4csh        // 2004.?? Kick '4' Cash
54255424            // 2004.?? The Quiz Show
54265425            // 2005.03 Melty Blood Act Cadenza
r241910r241911
1053110530pitbossma       // (c) 1994 Merit
1053210531pbss330         // (c) 1994 Merit
1053310532pbst30          // (c) 1994 Merit
10534pbst30a         // (c) 1993 Merit
10533pbst30b         // (c) 1993 Merit
1053510534realbrod        // (c) 1995 Merit
1053610535mtjpoker        // (c) 1994 Merit
10537megat           // (c) 1994 Merit
1053810536megat2          // (c) 1994 Merit
1053910537megat2a         // (c) 1994 Merit
1054010538megat2b         // (c) 1994 Merit
trunk/src/mame/mame.mak
r241910r241911
24802480
24812481$(DRIVERS)/acefruit.o:  $(LAYOUT)/sidewndr.lh
24822482
2483$(DRIVERS)/alinvade.o:  $(LAYOUT)/alinvade.lh
2484
24852483$(DRIVERS)/allied.o:    $(LAYOUT)/allied.lh
24862484
24872485$(DRIVERS)/amaticmg.o:  $(LAYOUT)/suprstar.lh
trunk/src/mame/video/lethal.c
r241910r241911
1414{
1515   int pri = (*color & 0xfff0);
1616   *color = *color & 0x000f;
17   *color += m_sprite_colorbase;
17   *color += 0x400 / 64; // colourbase?
1818
1919   /* this isn't ideal.. shouldn't need to hardcode it? not 100% sure about it anyway*/
2020   if (pri == 0x10)
r241910r241911
6565      m_k056832->set_layer_offs(2, 192, 0);
6666      m_k056832->set_layer_offs(3, 194, 0);
6767   }
68
69   m_layer_colorbase[0] = 0x00;
70   m_layer_colorbase[1] = 0x40;
71   m_layer_colorbase[2] = 0x80;
72   m_layer_colorbase[3] = 0xc0;
6873}
6974
7075WRITE8_MEMBER(lethal_state::lethalen_palette_control)
r241910r241911
7277   switch (offset)
7378   {
7479      case 0: // 40c8 - PCU1 from schematics
75         m_layer_colorbase[0] = (data & 0x7) * 1024 / 16;
76         m_layer_colorbase[1] = ((data >> 4) & 0x7) * 1024 / 16;
80         m_layer_colorbase[0] = ((data & 0x7) - 1) * 0x40;
81         m_layer_colorbase[1] = (((data >> 4) & 0x7) - 1) * 0x40;
7782         m_k056832->mark_plane_dirty( 0);
7883         m_k056832->mark_plane_dirty( 1);
7984         break;
8085
8186      case 4: // 40cc - PCU2 from schematics
82         m_layer_colorbase[2] = (data & 0x7) * 1024 / 16;
83         m_layer_colorbase[3] = ((data >> 4) & 0x7) * 1024 / 16;
87         m_layer_colorbase[2] = ((data & 0x7) - 1) * 0x40;
88         m_layer_colorbase[3] = (((data >> 4) & 0x7) - 1) * 0x40;
8489         m_k056832->mark_plane_dirty( 2);
8590         m_k056832->mark_plane_dirty( 3);
8691         break;
8792
8893      case 8: // 40d0 - PCU3 from schematics
89         m_sprite_colorbase = (data & 0x7) * 1024 / 64;
90         m_back_colorbase = ((data >> 4) & 0x7) * 1024 + 1023;
94         m_sprite_colorbase = ((data & 0x7) - 1) * 0x40;
9195         break;
9296   }
9397}
9498
9599UINT32 lethal_state::screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
96100{
97   bitmap.fill(m_back_colorbase, cliprect);
101   bitmap.fill(7168, cliprect);
98102   screen.priority().fill(0, cliprect);
99103
100104   m_k056832->tilemap_draw(screen, bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1);
trunk/src/mess/drivers/comp4.c
r241910r241911
77 
88  This is a handheld Mastermind game; a code-breaking game where the player
99  needs to find out the correct sequence of colours (numbers in our case).
10  It is known as Logic 5 in Europe, and as Pythaligoras in Japan.
10  It is known as Logic 5 in Europe, and as Pythaugoras in Japan.
1111 
1212  Press the R key to start, followed by a set of unique numbers and E.
1313  Refer to the official manual for more information.
trunk/src/mess/drivers/ngen.c
r241910r241911
1414#include "machine/am9517a.h"
1515#include "machine/pic8259.h"
1616#include "machine/pit8253.h"
17#include "machine/z80dart.h"
1817
1918class ngen_state : public driver_device
2019{
r241910r241911
2423      m_maincpu(*this,"maincpu"),
2524      m_crtc(*this,"crtc"),
2625      m_viduart(*this,"videouart"),
27      m_iouart(*this,"iouart"),
2826      m_dmac(*this,"dmac"),
2927      m_pic(*this,"pic"),
30      m_pit(*this,"pit"),
31      m_vram(*this,"vram"),
32      m_fontram(*this,"fontram")
28      m_pit(*this,"pit")
3329   {}
3430
3531   DECLARE_WRITE_LINE_MEMBER(pit_out0_w);
r241910r241911
4743   required_device<cpu_device> m_maincpu;
4844   required_device<mc6845_device> m_crtc;
4945   required_device<i8251_device> m_viduart;
50   required_device<upd7201_device> m_iouart;
5146   required_device<am9517a_device> m_dmac;
5247   required_device<pic8259_device> m_pic;
5348   required_device<pit8254_device> m_pit;
54   required_shared_ptr<UINT16> m_vram;
55   required_shared_ptr<UINT16> m_fontram;
5649
5750   UINT16 m_peripheral;
5851   UINT16 m_upper;
5952   UINT16 m_middle;
6053   UINT16 m_port00;
61   UINT16 m_periph141;
6254};
6355
6456WRITE_LINE_MEMBER(ngen_state::pit_out0_w)
6557{
66   //m_pic->ir0_w(state);
67   logerror("80186 Timer 1 state %i\n",state);
58   m_pic->ir0_w(state);
6859}
6960
7061WRITE_LINE_MEMBER(ngen_state::pit_out1_w)
7162{
72   logerror("PIT Timer 1 state %i\n",state);
7363}
7464
7565WRITE_LINE_MEMBER(ngen_state::pit_out2_w)
7666{
77   logerror("PIT Timer 2 state %i\n",state);
7867}
7968
8069WRITE16_MEMBER(ngen_state::cpu_peripheral_cb)
r241910r241911
10897}
10998
11099// 80186 peripheral space
111// Largely guesswork at this stage
112100WRITE16_MEMBER(ngen_state::peripheral_w)
113101{
114102   switch(offset)
115103   {
116   case 0x141:
117      // bit 1 enables speaker?
118      COMBINE_DATA(&m_periph141);
119      break;
120104   case 0x144:
121105      if(mem_mask & 0x00ff)
122106         m_crtc->address_w(space,0,data & 0xff);
r241910r241911
127111      break;
128112   case 0x146:
129113      if(mem_mask & 0x00ff)
130         m_iouart->ba_cd_w(space,0,data & 0xff);
131      logerror("Video write offset 0x146 data %04x mask %04x\n",data,mem_mask);
114         m_pic->write(space,0,data & 0xff);
132115      break;
133116   case 0x147:
134117      if(mem_mask & 0x00ff)
135         m_iouart->ba_cd_w(space,1,data & 0xff);
136      logerror("Video write offset 0x147 data %04x mask %04x\n",data,mem_mask);
118         m_pic->write(space,1,data & 0xff);
137119      break;
138   default:
139      logerror("(PC=%06x) Unknown 80186 peripheral write offset %04x data %04x mask %04x\n",m_maincpu->device_t::safe_pc(),offset,data,mem_mask);
140120   }
121   logerror("Peripheral write offset %04x data %04x mask %04x\n",offset,data,mem_mask);
141122}
142123
143124READ16_MEMBER(ngen_state::peripheral_r)
144125{
145   UINT16 ret = 0xffff;
126   UINT16 ret = 0xff;
146127   switch(offset)
147128   {
148   case 0x141:
149      ret = m_periph141;
150      break;
151129   case 0x144:
152130      if(mem_mask & 0x00ff)
153131         ret = m_crtc->status_r(space,0);
r241910r241911
158136      break;
159137   case 0x146:
160138      if(mem_mask & 0x00ff)
161         ret = m_iouart->ba_cd_r(space,0);
139         ret = m_pic->read(space,0);
162140      break;
163   case 0x147:  // definitely video related, likely UART sending data to the video board
141   case 0x147:
164142      if(mem_mask & 0x00ff)
165         ret = m_iouart->ba_cd_r(space,1);
166      // expects bit 0 to be set (Video ready signal?)
167      ret |= 1;
143         ret = m_pic->read(space,1);
168144      break;
169   default:
170      logerror("(PC=%06x) Unknown 80186 peripheral read offset %04x mask %04x returning %04x\n",m_maincpu->device_t::safe_pc(),offset,mem_mask,ret);
171145   }
146   logerror("Peripheral read offset %04x mask %04x\n",offset,mem_mask);
172147   return ret;
173148}
174149
r241910r241911
190165
191166MC6845_UPDATE_ROW( ngen_state::crtc_update_row )
192167{
193   UINT16 addr = ma;
194
195   for(int x=0;x<bitmap.width();x+=9)
196   {
197      UINT8 ch = m_vram[addr++];
198      for(int z=0;z<9;z++)
199      {
200         if(BIT(m_fontram[ch*16+ra],8-z))
201            bitmap.pix32(y,x+z) = rgb_t(0,0xff,0);
202         else
203            bitmap.pix32(y,x+z) = rgb_t(0,0,0);
204      }
205   }
206168}
207169
208170static ADDRESS_MAP_START( ngen_mem, AS_PROGRAM, 16, ngen_state )
209   AM_RANGE(0x00000, 0xf7fff) AM_RAM
210   AM_RANGE(0xf8000, 0xf9fff) AM_RAM AM_SHARE("vram")
211   AM_RANGE(0xfa000, 0xfbfff) AM_RAM AM_SHARE("fontram")
171   AM_RANGE(0x00000, 0xfdfff) AM_RAM
212172   AM_RANGE(0xfe000, 0xfffff) AM_ROM AM_REGION("bios",0)
213173ADDRESS_MAP_END
214174
r241910r241911
255215
256216   MCFG_DEVICE_ADD("dmac", AM9517A, XTAL_14_7456MHz / 3)  // NEC D8237A, divisor unknown
257217
258   // I/O board
259   MCFG_UPD7201_ADD("iouart",XTAL_14_7456MHz / 3, 0,0,0,0) // no clock visible on I/O board, guessing for now
260
261218   // video board
262219   MCFG_SCREEN_ADD("screen", RASTER)
263220   MCFG_SCREEN_SIZE(720,348)
trunk/src/mess/drivers/simon.c
r241910r241911
1212  It is possibly a cost-reduced custom ASIC specifically for Simon.
1313 
1414  Other games assumed to be on similar hardware:
15  - Pocket Simon, but there's a chance it only exists with MB4850 chip
16  - Super Simon (TMS1100)
15  - Pocket Simon
16  - Super Simon
1717
1818***************************************************************************/
1919
trunk/src/mess/includes/c128.h
r241910r241911
105105   required_device<cpu_device> m_maincpu;
106106   required_device<m8502_device> m_subcpu;
107107   required_device<mos8722_device> m_mmu;
108   required_device<pla_device> m_pla;
108   required_device<mos8721_device> m_pla;
109109   required_device<mos8563_device> m_vdc;
110110   required_device<mos6566_device> m_vic;
111111   required_device<mos6581_device> m_sid;
trunk/src/mess/includes/c64.h
r241910r241911
7878   UINT8 *m_charom;
7979
8080   required_device<m6510_device> m_maincpu;
81   required_device<pla_device> m_pla;
81   required_device<pls100_device> m_pla;
8282   required_device<mos6566_device> m_vic;
8383   required_device<mos6581_device> m_sid;
8484   required_device<mos6526_device> m_cia1;
trunk/src/mess/includes/cbm2.h
r241910r241911
113113   { }
114114
115115   required_device<cpu_device> m_maincpu;
116   required_device<pla_device> m_pla1;
116   required_device<pls100_device> m_pla1;
117117   optional_device<mc6845_device> m_crtc;
118118   optional_device<palette_device> m_palette;
119119   required_device<mos6581_device> m_sid;
r241910r241911
274274         m_vic_irq(CLEAR_LINE)
275275   { }
276276
277   required_device<pla_device> m_pla2;
277   required_device<pls100_device> m_pla2;
278278   required_device<mos6566_device> m_vic;
279279   optional_shared_ptr<UINT8> m_color_ram;
280280
trunk/src/mess/includes/gamecom.h
r241910r241911
211211{
212212public:
213213   gamecom_state(const machine_config &mconfig, device_type type, const char *tag)
214      : driver_device(mconfig, type, tag)
215      , m_p_videoram(*this,"videoram")
216      , m_p_nvram(*this,"nvram")
217      , m_maincpu(*this, "maincpu")
218      , m_dac(*this, "dac")
219      , m_cart1(*this, "cartslot1")
220      , m_cart2(*this, "cartslot2")
221      , m_bank1(*this, "bank1")
222      , m_bank2(*this, "bank2")
223      , m_bank3(*this, "bank3")
224      , m_bank4(*this, "bank4")
225      , m_region_maincpu(*this, "maincpu")
226      , m_region_kernel(*this, "kernel")
227      , m_io_in0(*this, "IN0")
228      , m_io_in1(*this, "IN1")
229      , m_io_in2(*this, "IN2")
230      , m_io_grid(*this, "GRID")
214      : driver_device(mconfig, type, tag),
215      m_maincpu(*this, "maincpu"),
216      m_dac(*this, "dac"),
217      m_cart1(*this, "cartslot1"),
218      m_cart2(*this, "cartslot2"),
219      m_p_nvram(*this,"nvram"),
220      m_p_videoram(*this,"videoram"),
221      m_bank1(*this, "bank1"),
222      m_bank2(*this, "bank2"),
223      m_bank3(*this, "bank3"),
224      m_bank4(*this, "bank4"),
225      m_region_maincpu(*this, "maincpu"),
226      m_region_kernel(*this, "kernel"),
227      m_io_in0(*this, "IN0"),
228      m_io_in1(*this, "IN1"),
229      m_io_in2(*this, "IN2"),
230      m_io_grid(*this, "GRID")
231231      { }
232232
233   required_device<cpu_device> m_maincpu;
234   required_device<dac_device> m_dac;
235   required_device<generic_slot_device> m_cart1;
236   required_device<generic_slot_device> m_cart2;
233237   DECLARE_READ8_MEMBER( gamecom_internal_r );
234238   DECLARE_READ8_MEMBER( gamecom_pio_r );
235239   DECLARE_WRITE8_MEMBER( gamecom_internal_w );
236240   DECLARE_WRITE8_MEMBER( gamecom_pio_w );
237   DECLARE_DRIVER_INIT(gamecom);
238   DECLARE_PALETTE_INIT(gamecom);
239   INTERRUPT_GEN_MEMBER(gamecom_interrupt);
240   TIMER_CALLBACK_MEMBER(gamecom_clock_timer_callback);
241   TIMER_CALLBACK_MEMBER(gamecom_scanline);
242   DECLARE_WRITE8_MEMBER( gamecom_handle_dma );
243   DECLARE_WRITE8_MEMBER( gamecom_update_timers );
244   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( gamecom_cart1 );
245   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( gamecom_cart2 );
246   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
247private:
241   required_shared_ptr<UINT8> m_p_nvram;
248242   UINT8 *m_p_ram;
243   required_shared_ptr<UINT8> m_p_videoram;
249244   UINT8 *m_cart_ptr;
250   UINT8 m_lcdc_reg;
251   UINT8 m_lch_reg;
252   UINT8 m_lcv_reg;
253   UINT16 m_scanline;
254   UINT16 m_base_address;
255245   memory_region *m_cart1_rom;
256246   memory_region *m_cart2_rom;
257247   emu_timer *m_clock_timer;
r241910r241911
259249   GAMECOM_DMA m_dma;
260250   GAMECOM_TIMER m_timer[2];
261251   gamecom_sound_t m_sound;
252   int m_scanline;
253   unsigned int m_base_address;
262254   bitmap_ind16 m_bitmap;
263255   void gamecom_set_mmu(UINT8 mmu, UINT8 data);
264256   void handle_stylus_press(int column);
257   UINT8 m_lcdc_reg;
258   UINT8 m_lch_reg;
259   UINT8 m_lcv_reg;
265260   void recompute_lcd_params();
266261   void handle_input_press(UINT16 mux_data);
267   int common_load(device_image_interface &image, generic_slot_device *slot);
262
263   UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
264   DECLARE_DRIVER_INIT(gamecom);
268265   virtual void machine_reset();
269266   virtual void video_start();
270   required_shared_ptr<UINT8> m_p_videoram;
271   required_shared_ptr<UINT8> m_p_nvram;
272   required_device<cpu_device> m_maincpu;
273   required_device<dac_device> m_dac;
274   required_device<generic_slot_device> m_cart1;
275   required_device<generic_slot_device> m_cart2;
267   DECLARE_PALETTE_INIT(gamecom);
268   INTERRUPT_GEN_MEMBER(gamecom_interrupt);
269   TIMER_CALLBACK_MEMBER(gamecom_clock_timer_callback);
270   TIMER_CALLBACK_MEMBER(gamecom_scanline);
271   DECLARE_WRITE8_MEMBER( gamecom_handle_dma );
272   DECLARE_WRITE8_MEMBER( gamecom_update_timers );
273   int common_load(device_image_interface &image, generic_slot_device *slot);
274   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( gamecom_cart1 );
275   DECLARE_DEVICE_IMAGE_LOAD_MEMBER( gamecom_cart2 );
276
277protected:
276278   required_memory_bank m_bank1;
277279   required_memory_bank m_bank2;
278280   required_memory_bank m_bank3;
trunk/src/mess/includes/pet.h
r241910r241911
259259   required_memory_region m_editor_rom;
260260   required_memory_region m_ue5_rom;
261261   required_memory_region m_ue6_rom;
262   required_device<pla_device> m_pla1;
263   required_device<pla_device> m_pla2;
262   required_device<pls100_device> m_pla1;
263   required_device<pls100_device> m_pla2;
264264
265265   DECLARE_MACHINE_START( cbm8296 );
266266   DECLARE_MACHINE_RESET( cbm8296 );
trunk/src/mess/includes/plus4.h
r241910r241911
3131#define SCREEN_TAG          "screen"
3232#define CONTROL1_TAG        "joy1"
3333#define CONTROL2_TAG        "joy2"
34#define PET_USER_PORT_TAG   "user"
34#define PET_USER_PORT_TAG     "user"
3535
3636class plus4_state : public driver_device
3737{
r241910r241911
7171   { }
7272
7373   required_device<m7501_device> m_maincpu;
74   required_device<pla_device> m_pla;
74   required_device<pls100_device> m_pla;
7575   required_device<mos7360_device> m_ted;
7676   optional_device<mos6551_device> m_acia;
7777   optional_device<mos6529_device> m_spi_user;
trunk/src/mess/layout/gamecom.lay
r241910r241911
1010         <bounds x="0" y="0" width="16" height="16" />
1111      </backdrop>
1212      <backdrop element="grid" inputtag="GRID.1" inputmask="0x01" >
13         <bounds x="16" y="0" width="16" height="16" />
13         <bounds x="16" y="16" width="16" height="16" />
1414      </backdrop>
1515      <backdrop element="grid" inputtag="GRID.2" inputmask="0x01" >
16         <bounds x="32" y="0" width="16" height="16" />
16         <bounds x="32" y="16" width="16" height="16" />
1717      </backdrop>
1818      <backdrop element="grid" inputtag="GRID.3" inputmask="0x01" >
19         <bounds x="48" y="0" width="16" height="16" />
19         <bounds x="48" y="16" width="16" height="16" />
2020      </backdrop>
2121      <backdrop element="grid" inputtag="GRID.4" inputmask="0x01" >
22         <bounds x="64" y="0" width="16" height="16" />
22         <bounds x="64" y="16" width="16" height="16" />
2323      </backdrop>
2424      <backdrop element="grid" inputtag="GRID.5" inputmask="0x01" >
25         <bounds x="80" y="0" width="16" height="16" />
25         <bounds x="80" y="16" width="16" height="16" />
2626      </backdrop>
2727      <backdrop element="grid" inputtag="GRID.6" inputmask="0x01" >
28         <bounds x="96" y="0" width="16" height="16" />
28         <bounds x="96" y="16" width="16" height="16" />
2929      </backdrop>
3030      <backdrop element="grid" inputtag="GRID.7" inputmask="0x01" >
31         <bounds x="112" y="0" width="16" height="16" />
31         <bounds x="112" y="16" width="16" height="16" />
3232      </backdrop>
3333      <backdrop element="grid" inputtag="GRID.8" inputmask="0x01" >
34         <bounds x="128" y="0" width="16" height="16" />
34         <bounds x="128" y="16" width="16" height="16" />
3535      </backdrop>
3636      <backdrop element="grid" inputtag="GRID.9" inputmask="0x01" >
37         <bounds x="144" y="0" width="16" height="16" />
37         <bounds x="144" y="16" width="16" height="16" />
3838      </backdrop>
3939      <backdrop element="grid" inputtag="GRID.10" inputmask="0x01" >
40         <bounds x="160" y="0" width="16" height="16" />
40         <bounds x="160" y="16" width="16" height="16" />
4141      </backdrop>
4242      <backdrop element="grid" inputtag="GRID.11" inputmask="0x01" >
43         <bounds x="176" y="0" width="16" height="16" />
43         <bounds x="176" y="16" width="16" height="16" />
4444      </backdrop>
4545      <backdrop element="grid" inputtag="GRID.12" inputmask="0x01" >
46         <bounds x="192" y="0" width="16" height="16" />
46         <bounds x="192" y="16" width="16" height="16" />
4747      </backdrop>
4848
4949      <backdrop element="grid" inputtag="GRID.0" inputmask="0x02" >


Previous 199869 Revisions Next


© 1997-2024 The MAME Team