Previous 199869 Revisions Next

r24874 Tuesday 13th August, 2013 at 17:02:57 UTC by David Haywood
reduce some code duplication, preparation for creating a new device (nw)
[src/mame]mame.mak
[src/mame/drivers]ddragon3.c wwfwfest.c
[src/mame/includes]ddragon3.h wwfwfest.h
[src/mame/video]ddragon3.c wwfwfest.c

trunk/src/mame/mame.mak
r24873r24874
18141814   $(DRIVERS)/tagteam.o $(VIDEO)/tagteam.o \
18151815   $(DRIVERS)/vball.o $(VIDEO)/vball.o \
18161816   $(DRIVERS)/wwfsstar.o $(VIDEO)/wwfsstar.o \
1817   $(DRIVERS)/wwfwfest.o $(VIDEO)/wwfwfest.o \
18181817   $(DRIVERS)/xain.o $(VIDEO)/xain.o \
18191818
18201819$(MAMEOBJ)/tehkan.a: \
trunk/src/mame/includes/wwfwfest.h
r24873r24874
1#include "video/bufsprite.h"
2#include "sound/okim6295.h"
3
4class wwfwfest_state : public driver_device
5{
6public:
7   wwfwfest_state(const machine_config &mconfig, device_type type, const char *tag)
8      : driver_device(mconfig, type, tag),
9      m_fg0_videoram(*this, "fg0_videoram"),
10      m_bg0_videoram(*this, "bg0_videoram"),
11      m_bg1_videoram(*this, "bg1_videoram"),
12      m_spriteram(*this, "spriteram") ,
13      m_maincpu(*this, "maincpu"),
14      m_audiocpu(*this, "audiocpu"),
15      m_oki(*this, "oki") { }
16
17   required_shared_ptr<UINT16> m_fg0_videoram;
18   required_shared_ptr<UINT16> m_bg0_videoram;
19   required_shared_ptr<UINT16> m_bg1_videoram;
20   UINT16 m_pri;
21   UINT16 m_bg0_scrollx;
22   UINT16 m_bg0_scrolly;
23   UINT16 m_bg1_scrollx;
24   UINT16 m_bg1_scrolly;
25   tilemap_t *m_fg0_tilemap;
26   tilemap_t *m_bg0_tilemap;
27   tilemap_t *m_bg1_tilemap;
28   UINT16 m_sprite_xoff;
29   UINT16 m_bg0_dx;
30   UINT16 m_bg1_dx[2];
31   required_device<buffered_spriteram16_device> m_spriteram;
32   DECLARE_WRITE16_MEMBER(wwfwfest_1410_write);
33   DECLARE_WRITE16_MEMBER(wwfwfest_scroll_write);
34   DECLARE_WRITE16_MEMBER(wwfwfest_irq_ack_w);
35   DECLARE_WRITE16_MEMBER(wwfwfest_flipscreen_w);
36   DECLARE_READ16_MEMBER(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r);
37   DECLARE_WRITE16_MEMBER(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w);
38   DECLARE_WRITE16_MEMBER(wwfwfest_soundwrite);
39   DECLARE_WRITE16_MEMBER(wwfwfest_fg0_videoram_w);
40   DECLARE_WRITE16_MEMBER(wwfwfest_bg0_videoram_w);
41   DECLARE_WRITE16_MEMBER(wwfwfest_bg1_videoram_w);
42   DECLARE_CUSTOM_INPUT_MEMBER(dsw_3f_r);
43   DECLARE_CUSTOM_INPUT_MEMBER(dsw_c0_r);
44   DECLARE_WRITE8_MEMBER(oki_bankswitch_w);
45   TILE_GET_INFO_MEMBER(get_fg0_tile_info);
46   TILE_GET_INFO_MEMBER(get_bg0_tile_info);
47   TILE_GET_INFO_MEMBER(get_bg1_tile_info);
48   virtual void video_start();
49   DECLARE_VIDEO_START(wwfwfstb);
50   UINT32 screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
51   TIMER_DEVICE_CALLBACK_MEMBER(wwfwfest_scanline);
52   void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
53   required_device<cpu_device> m_maincpu;
54   required_device<cpu_device> m_audiocpu;
55   required_device<okim6295_device> m_oki;
56};
trunk/src/mame/includes/ddragon3.h
r24873r24874
44
55*************************************************************************/
66#include "sound/okim6295.h"
7#include "video/bufsprite.h"
78
9
810class ddragon3_state : public driver_device
911{
1012public:
r24873r24874
1517      m_spriteram(*this, "spriteram"),
1618      m_maincpu(*this, "maincpu"),
1719      m_audiocpu(*this, "audiocpu"),
18      m_oki(*this, "oki"){ }
20      m_oki(*this, "oki")
21   
22   {
23      vblank_level = 6;
24      raster_level = 5;
25   }
1926
2027   /* memory pointers */
2128   required_shared_ptr<UINT16> m_bg_videoram;
2229   required_shared_ptr<UINT16> m_fg_videoram;
23   required_shared_ptr<UINT16> m_spriteram;
24//  UINT16 *        m_paletteram; // currently this uses generic palette handling
30//   required_shared_ptr<UINT16> m_spriteram;
31   required_device<buffered_spriteram16_device> m_spriteram;
32   //  UINT16 *        m_paletteram; // currently this uses generic palette handling
2533
2634   /* video-related */
2735   tilemap_t         *m_fg_tilemap;
r24873r24874
3341   UINT16          m_fg_scrolly;
3442   UINT16          m_bg_tilebase;
3543
44   UINT16 m_sprite_xoff;
45   UINT16 m_bg0_dx;
46   UINT16 m_bg1_dx[2];
47
3648   /* misc */
3749   UINT16          m_io_reg[8];
50   UINT16 m_pri;
3851
3952   /* devices */
4053   required_device<cpu_device> m_maincpu;
r24873r24874
5669   UINT32 screen_update_ctribe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5770   TIMER_DEVICE_CALLBACK_MEMBER(ddragon3_scanline);
5871   void draw_sprites(  bitmap_ind16 &bitmap, const rectangle &cliprect );
72
73   int vblank_level;
74   int raster_level;
5975};
76
77
78class wwfwfest_state : public ddragon3_state
79{
80public:
81   wwfwfest_state(const machine_config &mconfig, device_type type, const char *tag)
82      : ddragon3_state(mconfig, type, tag),
83      m_fg0_videoram(*this, "fg0_videoram")
84   {
85      vblank_level = 3;
86      raster_level = 2;
87   }
88
89   /* wwfwfest has an extra layer */
90   required_shared_ptr<UINT16> m_fg0_videoram;
91   tilemap_t *m_fg0_tilemap;
92   DECLARE_WRITE16_MEMBER(wwfwfest_fg0_videoram_w);
93
94
95   //required_device<buffered_spriteram16_device> m_spriteram;
96   DECLARE_WRITE16_MEMBER(wwfwfest_1410_write);
97   DECLARE_WRITE16_MEMBER(wwfwfest_scroll_write);
98   DECLARE_WRITE16_MEMBER(wwfwfest_irq_ack_w);
99   DECLARE_WRITE16_MEMBER(wwfwfest_flipscreen_w);
100   DECLARE_READ16_MEMBER(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r);
101   DECLARE_WRITE16_MEMBER(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w);
102   DECLARE_WRITE16_MEMBER(wwfwfest_soundwrite);
103
104   DECLARE_CUSTOM_INPUT_MEMBER(dsw_3f_r);
105   DECLARE_CUSTOM_INPUT_MEMBER(dsw_c0_r);
106   TILE_GET_INFO_MEMBER(get_fg0_tile_info);
107
108   virtual void video_start();
109   DECLARE_VIDEO_START(wwfwfstb);
110   UINT32 screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
111
112};
trunk/src/mame/video/wwfwfest.c
r24873r24874
1/*******************************************************************************
2 WWF Wrestlefest (C) 1991 Technos Japan  (video/wwfwfest.c)
3********************************************************************************
4 driver by David Haywood
5
6 see (drivers/wwfwfest.c) for more notes
7*******************************************************************************/
8
9#include "emu.h"
10#include "includes/wwfwfest.h"
11
12
13/*******************************************************************************
14 Write Handlers
15********************************************************************************
16 for writes to Video Ram
17*******************************************************************************/
18
19WRITE16_MEMBER(wwfwfest_state::wwfwfest_fg0_videoram_w)
20{
21   /* Videoram is 8 bit, upper & lower byte writes end up in the same place */
22   if (ACCESSING_BITS_8_15 && ACCESSING_BITS_0_7) {
23      COMBINE_DATA(&m_fg0_videoram[offset]);
24   } else if (ACCESSING_BITS_8_15) {
25      m_fg0_videoram[offset]=(data>>8)&0xff;
26   } else {
27      m_fg0_videoram[offset]=data&0xff;
28   }
29
30   m_fg0_tilemap->mark_tile_dirty(offset/2);
31}
32
33WRITE16_MEMBER(wwfwfest_state::wwfwfest_bg0_videoram_w)
34{
35   COMBINE_DATA(&m_bg0_videoram[offset]);
36   m_bg0_tilemap->mark_tile_dirty(offset/2);
37}
38
39WRITE16_MEMBER(wwfwfest_state::wwfwfest_bg1_videoram_w)
40{
41   COMBINE_DATA(&m_bg1_videoram[offset]);
42   m_bg1_tilemap->mark_tile_dirty(offset);
43}
44
45/*******************************************************************************
46 Tilemap Related Functions
47*******************************************************************************/
48TILE_GET_INFO_MEMBER(wwfwfest_state::get_fg0_tile_info)
49{
50   /*- FG0 RAM Format -**
51
52     4 bytes per tile
53
54     ---- ----  tttt tttt  ---- ----  ???? TTTT
55
56     C = Colour Bank (0-15)
57     T = Tile Number (0 - 4095)
58
59     other bits unknown / unused
60
61     basically the same as WWF Superstar's FG0 Ram but
62     more of it and the used bytes the other way around
63
64   **- End of Comments -*/
65
66   UINT16 *tilebase;
67   int tileno;
68   int colbank;
69   tilebase =  &m_fg0_videoram[tile_index*2];
70   tileno =  (tilebase[0] & 0x00ff) | ((tilebase[1] & 0x000f) << 8);
71   colbank = (tilebase[1] & 0x00f0) >> 4;
72   SET_TILE_INFO_MEMBER(
73         0,
74         tileno,
75         colbank,
76         0);
77}
78
79TILE_GET_INFO_MEMBER(wwfwfest_state::get_bg0_tile_info)
80{
81   /*- BG0 RAM Format -**
82
83     4 bytes per tile
84
85     ---- ----  fF-- CCCC  ---- TTTT tttt tttt
86
87     C = Colour Bank (0-15)
88     T = Tile Number (0 - 4095)
89     f = Flip Y
90     F = Flip X
91
92     other bits unknown / unused
93
94   **- End of Comments -*/
95
96   UINT16 *tilebase;
97   int tileno,colbank;
98
99   tilebase =  &m_bg0_videoram[tile_index*2];
100   tileno =  (tilebase[1] & 0x0fff);
101   colbank = (tilebase[0] & 0x000f);
102   SET_TILE_INFO_MEMBER(
103         2,
104         tileno,
105         colbank,
106         TILE_FLIPYX((tilebase[0] & 0x00c0) >> 6));
107}
108
109TILE_GET_INFO_MEMBER(wwfwfest_state::get_bg1_tile_info)
110{
111   /*- BG1 RAM Format -**
112
113     2 bytes per tile
114
115     CCCC TTTT tttt tttt
116
117     C = Colour Bank (0-15)
118     T = Tile Number (0 - 4095)
119
120   **- End of Comments -*/
121
122   UINT16 *tilebase;
123   int tileno;
124   int colbank;
125   tilebase =  &m_bg1_videoram[tile_index];
126   tileno =  (tilebase[0] & 0x0fff);
127   colbank = (tilebase[0] & 0xf000) >> 12;
128   SET_TILE_INFO_MEMBER(
129         3,
130         tileno,
131         colbank,
132         0);
133}
134
135/*******************************************************************************
136 Sprite Related Functions
137********************************************************************************
138 sprite drawing could probably be improved a bit
139*******************************************************************************/
140
141void wwfwfest_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
142{
143   /*- SPR RAM Format -**
144
145     16 bytes per sprite
146
147     ---- ----  yyyy yyyy  ---- ----  lllF fXYE  ---- ----  nnnn nnnn  ---- ----  NNNN NNNN
148     ---- ----  ---- CCCC  ---- ----  xxxx xxxx  ---- ----  ---- ----  ---- ----  ---- ----
149
150     Yy = sprite Y Position
151     Xx = sprite X Position
152     C  = colour bank
153     f  = flip Y
154     F  = flip X
155     l  = chain sprite
156     E  = sprite enable
157     Nn = Sprite Number
158
159     other bits unused
160
161   **- End of Comments -*/
162
163   UINT16 *buffered_spriteram16 = m_spriteram->buffer();
164   gfx_element *gfx = machine().gfx[1];
165   UINT16 *source = buffered_spriteram16;
166   UINT16 *finish = source + 0x2000/2;
167
168   while( source<finish )
169   {
170      int xpos, ypos, colourbank, flipx, flipy, chain, enable, number, count;
171
172      enable = (source[1] & 0x0001);
173
174      if (enable) {
175         xpos = +(source[5] & 0x00ff) | (source[1] & 0x0004) << 6;
176         if (xpos>512-16) xpos -=512;
177         xpos += m_sprite_xoff;
178         ypos = (source[0] & 0x00ff) | (source[1] & 0x0002) << 7;
179         ypos = (256 - ypos) & 0x1ff;
180         ypos -= 16 ;
181         flipx = (source[1] & 0x0010) >> 4;
182         flipy = (source[1] & 0x0008) >> 3;
183         chain = (source[1] & 0x00e0) >> 5;
184         chain += 1;
185         number = (source[2] & 0x00ff) | (source[3] & 0x00ff) << 8;
186         colourbank = (source[4] & 0x000f);
187
188         if (flip_screen()) {
189            if (flipy) flipy=0; else flipy=1;
190            if (flipx) flipx=0; else flipx=1;
191            ypos=240-ypos-m_sprite_xoff;
192            xpos=304-xpos;
193         }
194
195         for (count=0;count<chain;count++) {
196            if (flip_screen()) {
197               if (!flipy) {
198                  drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos+(16*(chain-1))-(16*count),0);
199               } else {
200                  drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos+16*count,0);
201               }
202            } else {
203               if (flipy) {
204                  drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos-(16*(chain-1))+(16*count),0);
205               } else {
206                  drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos-16*count,0);
207               }
208            }
209         }
210      }
211   source+=8;
212   }
213}
214
215/*******************************************************************************
216 Video Start and Refresh Functions
217********************************************************************************
218 Draw Order / Priority seems to affect where the scroll values are used also.
219*******************************************************************************/
220
221void wwfwfest_state::video_start()
222{
223   save_item(NAME(m_pri));
224   save_item(NAME(m_bg0_scrollx));
225   save_item(NAME(m_bg0_scrolly));
226   save_item(NAME(m_bg1_scrollx));
227   save_item(NAME(m_bg1_scrolly));
228
229   m_fg0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_fg0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
230   m_bg1_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_bg1_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
231   m_bg0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_bg0_tile_info),this),TILEMAP_SCAN_ROWS, 16, 16,32,32);
232
233   m_fg0_tilemap->set_transparent_pen(0);
234   m_bg1_tilemap->set_transparent_pen(0);
235   m_bg0_tilemap->set_transparent_pen(0);
236
237   m_sprite_xoff = m_bg0_dx = m_bg1_dx[0] = m_bg1_dx[1] = 0;
238}
239
240VIDEO_START_MEMBER(wwfwfest_state,wwfwfstb)
241{
242   wwfwfest_state::video_start();
243
244   m_sprite_xoff = 2;
245   m_bg0_dx = m_bg1_dx[0] = -4;
246   m_bg1_dx[1] = -2;
247}
248
249UINT32 wwfwfest_state::screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
250{
251   if (m_pri == 0x0078) {
252      m_bg0_tilemap->set_scrolly(0, m_bg0_scrolly  );
253      m_bg0_tilemap->set_scrollx(0, m_bg0_scrollx  + m_bg0_dx);
254      m_bg1_tilemap->set_scrolly(0, m_bg1_scrolly  );
255      m_bg1_tilemap->set_scrollx(0, m_bg1_scrollx  + m_bg1_dx[0]);
256   } else {
257      m_bg1_tilemap->set_scrolly(0, m_bg0_scrolly  );
258      m_bg1_tilemap->set_scrollx(0, m_bg0_scrollx  + m_bg1_dx[1]);
259      m_bg0_tilemap->set_scrolly(0, m_bg1_scrolly  );
260      m_bg0_tilemap->set_scrollx(0, m_bg1_scrollx  + m_bg0_dx);
261   }
262
263   /* todo : which bits of pri are significant to the order */
264
265   if (m_pri == 0x007b) {
266      m_bg0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
267      m_bg1_tilemap->draw(screen, bitmap, cliprect, 0,0);
268      draw_sprites(bitmap,cliprect);
269      m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0);
270   }
271
272   if (m_pri == 0x007c) {
273      m_bg0_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
274      draw_sprites(bitmap,cliprect);
275      m_bg1_tilemap->draw(screen, bitmap, cliprect, 0,0);
276      m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0);
277   }
278
279   if (m_pri == 0x0078) {
280      m_bg1_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
281      m_bg0_tilemap->draw(screen, bitmap, cliprect, 0,0);
282      draw_sprites(bitmap,cliprect);
283      m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0);
284   }
285   return 0;
286}
trunk/src/mame/video/ddragon3.c
r24873r24874
4040   return 0;
4141}
4242
43/*****************************************************************************************************************************************************/
44
45TILE_GET_INFO_MEMBER(ddragon3_state::get_bg_tile_info)
46{
47   UINT16 attr = m_bg_videoram[tile_index];
48   int code = (attr & 0x0fff) | ((m_bg_tilebase & 0x01) << 12);
49   int color = ((attr & 0xf000) >> 12);
50
51   SET_TILE_INFO_MEMBER(0, code, color, 0);
52}
53
54
55
4356WRITE16_MEMBER(ddragon3_state::ddragon3_bg_videoram_w)
4457{
4558   COMBINE_DATA(&m_bg_videoram[offset]);
4659   m_bg_tilemap->mark_tile_dirty(offset);
4760}
4861
62
63
64
65/*****************************************************************************************************************************************************/
66
67
68
69TILE_GET_INFO_MEMBER(ddragon3_state::get_fg_tile_info)
70{
71
72
73   UINT16 *tilebase;
74   int tileno,colbank;
75
76   tilebase =  &m_fg_videoram[tile_index*2];
77   tileno =  (tilebase[1] & 0x1fff);
78   colbank = (tilebase[0] & 0x000f);
79   SET_TILE_INFO_MEMBER(
80         1,
81         tileno,
82         colbank,
83         TILE_FLIPYX((tilebase[0] & 0x00c0) >> 6));
84}
85
86
87
4988WRITE16_MEMBER(ddragon3_state::ddragon3_fg_videoram_w)
5089{
5190   COMBINE_DATA(&m_fg_videoram[offset]);
5291   m_fg_tilemap->mark_tile_dirty(offset / 2);
5392}
5493
55TILE_GET_INFO_MEMBER(ddragon3_state::get_bg_tile_info)
94
95
96
97/*****************************************************************************************************************************************************/
98/* 8x8 text layer - wwfwfest only */
99
100TILE_GET_INFO_MEMBER(wwfwfest_state::get_fg0_tile_info)
56101{
57   UINT16 attr = m_bg_videoram[tile_index];
58   int code = (attr & 0x0fff) | ((m_bg_tilebase & 0x01) << 12);
59   int color = ((attr & 0xf000) >> 12) + 16;
60
61   SET_TILE_INFO_MEMBER(0, code, color, 0);
102   UINT16 *tilebase;
103   int tileno;
104   int colbank;
105   tilebase =  &m_fg0_videoram[tile_index*2];
106   tileno =  (tilebase[0] & 0x00ff) | ((tilebase[1] & 0x000f) << 8);
107   colbank = (tilebase[1] & 0x00f0) >> 4;
108   SET_TILE_INFO_MEMBER(
109         3,
110         tileno,
111         colbank,
112         0);
62113}
63114
64TILE_GET_INFO_MEMBER(ddragon3_state::get_fg_tile_info)
115WRITE16_MEMBER(wwfwfest_state::wwfwfest_fg0_videoram_w)
65116{
66   int offs = tile_index * 2;
67   UINT16 attr = m_fg_videoram[offs];
68   int code = m_fg_videoram[offs + 1] & 0x1fff;
69   int color = attr & 0xf;
70   int flags = (attr & 0x40) ? TILE_FLIPX : 0;
117   /* Videoram is 8 bit, upper & lower byte writes end up in the same place */
118   if (ACCESSING_BITS_8_15 && ACCESSING_BITS_0_7) {
119      COMBINE_DATA(&m_fg0_videoram[offset]);
120   } else if (ACCESSING_BITS_8_15) {
121      m_fg0_videoram[offset]=(data>>8)&0xff;
122   } else {
123      m_fg0_videoram[offset]=data&0xff;
124   }
71125
72   SET_TILE_INFO_MEMBER(0, code, color, flags);
126   m_fg0_tilemap->mark_tile_dirty(offset/2);
73127}
74128
129/*****************************************************************************************************************************************************/
130
75131void ddragon3_state::video_start()
76132{
133   save_item(NAME(m_pri));
134
77135   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ddragon3_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
78136   m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ddragon3_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
79137
80138   m_bg_tilemap->set_transparent_pen(0);
81139   m_fg_tilemap->set_transparent_pen(0);
140
141   m_sprite_xoff = m_bg0_dx = m_bg1_dx[0] = m_bg1_dx[1] = 0;
142   m_bg_tilebase = 0;
82143}
83144
84/*
85 * Sprite Format
86 * ----------------------------------
87 *
88 * Word | Bit(s)           | Use
89 * -----+-fedcba9876543210-+----------------
90 *   0  | --------xxxxxxxx | ypos (signed)
91 * -----+------------------+
92 *   1  | --------xxx----- | height
93 *   1  | -----------xx--- | yflip, xflip
94 *   1  | -------------x-- | msb x
95 *   1  | --------------x- | msb y?
96 *   1  | ---------------x | enable
97 * -----+------------------+
98 *   2  | --------xxxxxxxx | tile number
99 * -----+------------------+
100 *   3  | --------xxxxxxxx | bank
101 * -----+------------------+
102 *   4  | ------------xxxx |color
103 * -----+------------------+
104 *   5  | --------xxxxxxxx | xpos
105 * -----+------------------+
106 *   6,7| unused
107 */
145void wwfwfest_state::video_start()
146{
147   ddragon3_state::video_start();
108148
109void ddragon3_state::draw_sprites(  bitmap_ind16 &bitmap, const rectangle &cliprect )
149
150   m_fg0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_fg0_tile_info),this),TILEMAP_SCAN_ROWS, 8, 8,64,32);
151   m_fg0_tilemap->set_transparent_pen(0);
152
153}
154
155VIDEO_START_MEMBER(wwfwfest_state,wwfwfstb)
110156{
111   UINT16 *source = m_spriteram;
112   UINT16 *finish = source + 0x800;
157   wwfwfest_state::video_start();
113158
114   while (source < finish)
159   m_sprite_xoff = 2;
160   m_bg0_dx = m_bg1_dx[0] = -4;
161   m_bg1_dx[1] = -2;
162}
163
164/*****************************************************************************************************************************************************/
165
166void ddragon3_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect )
167{
168   /*- SPR RAM Format -**
169
170     16 bytes per sprite  (8-bit RAM? only every other byte is used)
171
172     ---- ----  yyyy yyyy  ---- ----  lllF fXYE  ---- ----  nnnn nnnn  ---- ----  NNNN NNNN
173     ---- ----  ---- CCCC  ---- ----  xxxx xxxx  ---- ----  ---- ----  ---- ----  ---- ----
174
175     Yy = sprite Y Position
176     Xx = sprite X Position
177     C  = colour bank
178     f  = flip Y
179     F  = flip X
180     l  = chain sprite
181     E  = sprite enable
182     Nn = Sprite Number
183
184     other bits unused
185   */
186
187   UINT16 *buffered_spriteram16 = m_spriteram->buffer();
188   int length = m_spriteram->bytes();
189   gfx_element *gfx = machine().gfx[2];
190   UINT16 *source = buffered_spriteram16;
191   UINT16 *finish = source + length/2;
192
193   while( source<finish )
115194   {
116      UINT16 attr = source[1];
195      int xpos, ypos, colourbank, flipx, flipy, chain, enable, number, count;
117196
118      if (attr & 0x01)    /* enable */
119      {
120         int i;
121         int bank = source[3] & 0xff;
122         int code = (source[2] & 0xff) + (bank * 256);
123         int color = source[4] & 0xf;
124         int flipx = attr & 0x10;
125         int flipy = attr & 0x08;
126         int sx = source[5] & 0xff;
127         int sy = source[0] & 0xff;
128         int height = (attr >> 5) & 0x07;
197      enable = (source[1] & 0x0001);
129198
130         if (attr & 0x04) sx |= 0x100;
131         if (attr & 0x02) sy = 239 + (0x100 - sy); else sy = 240 - sy;
132         if (sx > 0x17f) sx = 0 - (0x200 - sx);
199      if (enable) {
200         xpos = +(source[5] & 0x00ff) | (source[1] & 0x0004) << 6;
201         if (xpos>512-16) xpos -=512;
202         xpos += m_sprite_xoff;
203         ypos = (source[0] & 0x00ff) | (source[1] & 0x0002) << 7;
204         ypos = (256 - ypos) & 0x1ff;
205         ypos -= 16 ;
206         flipx = (source[1] & 0x0010) >> 4;
207         flipy = (source[1] & 0x0008) >> 3;
208         chain = (source[1] & 0x00e0) >> 5;
209         chain += 1;
210         number = (source[2] & 0x00ff) | (source[3] & 0x00ff) << 8;
211         colourbank = (source[4] & 0x000f);
133212
134         if (flip_screen())
135         {
136            sx = 304 - sx;
137            sy = 224 - sy;
138            flipx = !flipx;
139            flipy = !flipy;
213         if (flip_screen()) {
214            if (flipy) flipy=0; else flipy=1;
215            if (flipx) flipx=0; else flipx=1;
216            ypos=240-ypos-m_sprite_xoff;
217            xpos=304-xpos;
140218         }
141219
142         for (i = 0; i <= height; i++)
143         {
144            drawgfx_transpen(bitmap, cliprect,
145               machine().gfx[1], code + i, color, flipx, flipy,
146               sx, sy + (flip_screen() ? (i * 16) : (-i * 16)), 0);
220         for (count=0;count<chain;count++) {
221            if (flip_screen()) {
222               if (!flipy) {
223                  drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos+(16*(chain-1))-(16*count),0);
224               } else {
225                  drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos+16*count,0);
226               }
227            } else {
228               if (flipy) {
229                  drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos-(16*(chain-1))+(16*count),0);
230               } else {
231                  drawgfx_transpen(bitmap,cliprect,gfx,number+count,colourbank,flipx,flipy,xpos,ypos-16*count,0);
232               }
233            }
147234         }
148235      }
149
150      source += 8;
236   source+=8;
151237   }
152238}
153239
240
241
242/*****************************************************************************************************************************************************/
243
244
245
154246UINT32 ddragon3_state::screen_update_ddragon3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
155247{
156248   m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
r24873r24874
200292   }
201293   return 0;
202294}
295
296
297UINT32 wwfwfest_state::screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
298{
299   if (m_pri == 0x0078) {
300      m_fg_tilemap->set_scrolly(0, m_fg_scrolly  );
301      m_fg_tilemap->set_scrollx(0, m_fg_scrollx  + m_bg0_dx);
302      m_bg_tilemap->set_scrolly(0, m_bg_scrolly  );
303      m_bg_tilemap->set_scrollx(0, m_bg_scrollx  + m_bg1_dx[0]);
304   } else {
305      m_bg_tilemap->set_scrolly(0, m_fg_scrolly  );
306      m_bg_tilemap->set_scrollx(0, m_fg_scrollx  + m_bg1_dx[1]);
307      m_fg_tilemap->set_scrolly(0, m_bg_scrolly  );
308      m_fg_tilemap->set_scrollx(0, m_bg_scrollx  + m_bg0_dx);
309   }
310
311   /* todo : which bits of pri are significant to the order */
312
313   if (m_pri == 0x007b) {
314      m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
315      m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
316      draw_sprites(bitmap,cliprect);
317   }
318
319   if (m_pri == 0x007c) {
320      m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
321      draw_sprites(bitmap,cliprect);
322      m_bg_tilemap->draw(screen, bitmap, cliprect, 0,0);
323   }
324
325   if (m_pri == 0x0078) {
326      m_bg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
327      m_fg_tilemap->draw(screen, bitmap, cliprect, 0,0);
328      draw_sprites(bitmap,cliprect);
329   }
330
331   m_fg0_tilemap->draw(screen, bitmap, cliprect, 0,0);
332
333   return 0;
334}
335
trunk/src/mame/drivers/wwfwfest.c
r24873r24874
1/*******************************************************************************
2 WWF Wrestlefest (C) 1991 Technos Japan  (drivers/wwfwfest.c)
3********************************************************************************
4 driver by David Haywood
5
6 Special Thanks to:
7
8 Richard Bush & the Rest of the Raine Team - Raine's WWF Wrestlefest driver on
9 which some of this driver has been based.
10
11********************************************************************************
12
13 Hardware:
14
15 Primary CPU : 68000 - 12MHz
16
17 Sound CPUs : Z80 - 3.579MHz
18
19 Sound Chips : YM2151, M6295
20
21 4 Layers from now on if mentioned will be referred to as
22
23 BG0 - Background Layer 0
24 BG1 - Background Layer 1
25 SPR - Sprites
26 FG0 - Foreground / Text Layer
27
28 Priorities of BG0, BG1 and SPR can be changed
29
30********************************************************************************
31
32 Change Log:
33 20 Jun 2001 | Did Pretty Much everything else, the game is now playable.
34 19 Jun 2001 | Started the driver, based on Raine, the WWF Superstars driver,
35             | and the Double Dragon 3 Driver, got most of the basics done,
36             | the game will boot showing some graphics.
37
38*******************************************************************************/
39
40#include "emu.h"
41#include "cpu/m68000/m68000.h"
42#include "cpu/z80/z80.h"
43#include "includes/wwfwfest.h"
44#include "sound/2151intf.h"
45#include "sound/okim6295.h"
46
47#define MASTER_CLOCK        XTAL_24MHz
48#define CPU_CLOCK           MASTER_CLOCK / 2
49#define PIXEL_CLOCK     MASTER_CLOCK / 4
50
51/*- in this file -*/
52
53
54
55
56
57
58
59/*******************************************************************************
60 Memory Maps
61********************************************************************************
62 Pretty Straightforward
63
64 still some unknown writes however, sound cpu memory map is the same as dd3
65*******************************************************************************/
66
67static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wwfwfest_state )
68   AM_RANGE(0x000000, 0x07ffff) AM_ROM
69   AM_RANGE(0x0c0000, 0x0c1fff) AM_RAM_WRITE(wwfwfest_fg0_videoram_w) AM_SHARE("fg0_videoram") /* FG0 Ram - 4 bytes per tile */
70   AM_RANGE(0x0c2000, 0x0c3fff) AM_RAM AM_SHARE("spriteram")                       /* SPR Ram */
71   AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(wwfwfest_bg0_videoram_w) AM_SHARE("bg0_videoram") /* BG0 Ram - 4 bytes per tile */
72   AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(wwfwfest_bg1_videoram_w) AM_SHARE("bg1_videoram") /* BG1 Ram - 2 bytes per tile */
73   AM_RANGE(0x100000, 0x100007) AM_WRITE(wwfwfest_scroll_write)
74   AM_RANGE(0x10000a, 0x10000b) AM_WRITE(wwfwfest_flipscreen_w)
75   AM_RANGE(0x140000, 0x140003) AM_WRITE(wwfwfest_irq_ack_w)
76   AM_RANGE(0x14000c, 0x14000d) AM_WRITE(wwfwfest_soundwrite)
77   AM_RANGE(0x140010, 0x140011) AM_WRITE(wwfwfest_1410_write)
78   AM_RANGE(0x140020, 0x140021) AM_READ_PORT("P1")
79   AM_RANGE(0x140022, 0x140023) AM_READ_PORT("P2")
80   AM_RANGE(0x140024, 0x140025) AM_READ_PORT("P3")
81   AM_RANGE(0x140026, 0x140027) AM_READ_PORT("P4")
82   AM_RANGE(0x180000, 0x18ffff) AM_READWRITE(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r,wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
83   AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* Work Ram */
84ADDRESS_MAP_END
85
86static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, wwfwfest_state )
87   AM_RANGE(0x0000, 0xbfff) AM_ROM
88   AM_RANGE(0xc000, 0xc7ff) AM_RAM
89   AM_RANGE(0xc800, 0xc801) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
90   AM_RANGE(0xd800, 0xd800) AM_DEVREADWRITE("oki", okim6295_device, read, write)
91   AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_byte_r)
92   AM_RANGE(0xe800, 0xe800) AM_WRITE(oki_bankswitch_w)
93ADDRESS_MAP_END
94
95/*******************************************************************************
96 Read / Write Handlers
97********************************************************************************
98 as used by the above memory map
99*******************************************************************************/
100
101WRITE16_MEMBER(wwfwfest_state::wwfwfest_irq_ack_w)
102{
103   if (offset == 0)
104      m_maincpu->set_input_line(3, CLEAR_LINE);
105
106   else
107      m_maincpu->set_input_line(2, CLEAR_LINE);
108}
109
110WRITE16_MEMBER(wwfwfest_state::wwfwfest_flipscreen_w)
111{
112   flip_screen_set(data&1);
113}
114
115/*- Palette Reads/Writes -*/
116
117READ16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r)
118{
119   offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2;
120   return m_generic_paletteram_16[offset];
121}
122
123WRITE16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w)
124{
125   offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2;
126   paletteram_xxxxBBBBGGGGRRRR_word_w (space, offset, data, mem_mask);
127}
128
129/*- Priority Control -*/
130
131
132WRITE16_MEMBER(wwfwfest_state::wwfwfest_1410_write)
133{
134   m_pri = data;
135}
136
137/*- Scroll Control -*/
138
139WRITE16_MEMBER(wwfwfest_state::wwfwfest_scroll_write)
140{
141   switch (offset) {
142      case 0x00:
143         m_bg0_scrollx = data;
144         break;
145      case 0x01:
146         m_bg0_scrolly = data;
147         break;
148      case 0x02:
149         m_bg1_scrollx = data;
150         break;
151      case 0x03:
152         m_bg1_scrolly = data;
153         break;
154   }
155}
156
157/*- Sound Related (from dd3) -*/
158
159WRITE8_MEMBER(wwfwfest_state::oki_bankswitch_w)
160{
161   m_oki->set_bank_base((data & 1) * 0x40000);
162}
163
164WRITE16_MEMBER(wwfwfest_state::wwfwfest_soundwrite)
165{
166   soundlatch_byte_w(space,1,data & 0xff);
167   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
168}
169
170/*******************************************************************************
171 Input Ports
172********************************************************************************
173 There are 4 players, 2 sets of dipswitches and 2 misc
174*******************************************************************************/
175
176/* DIPs are spread across the other input ports */
177CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_3f_r)
178{
179   const char *tag = (const char *)param;
180   return ioport(tag)->read() & 0x3f;
181}
182
183CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_c0_r)
184{
185   const char *tag = (const char *)param;
186   return (ioport(tag)->read() & 0xc0) >> 6;
187}
188
189
190static INPUT_PORTS_START( wwfwfest )
191   PORT_START("P1")
192   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
193   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
194   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
195   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
196   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
197   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
198   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
199   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
200   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
201   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1 )
202   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
203   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
204   PORT_BIT( 0x3000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_c0_r, "DSW2")
205   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
206   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
207
208   PORT_START("P2")
209   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
210   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
211   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
212   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
213   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
214   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
215   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
216   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
217   PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_3f_r, "DSW2")
218
219   PORT_START("P3")
220   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3)
221   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3)
222   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3)
223   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3)
224   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
225   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
226   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
227   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 )
228   PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_3f_r, "DSW1")
229
230   PORT_START("P4")
231   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4)
232   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4)
233   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4)
234   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4)
235   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
236   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
237   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
238   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START4 )
239   PORT_BIT( 0x0300, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_c0_r, "DSW1")
240   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
241   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
242   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
243   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
244   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
245   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
246
247   /* Nb:  There are actually 3 dips on the board, 2 * 8, and 1 *4 */
248   PORT_START("DSW1")
249   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2")
250   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C )  )
251   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C )  )
252   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C )  )
253   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C )  )
254   PORT_DIPNAME( 0x04, 0x04, "Buy In Price"  ) PORT_DIPLOCATION("SW1:3")
255   PORT_DIPSETTING(    0x04, "1 Coin" )
256   PORT_DIPSETTING(    0x00, "As start price" )
257   PORT_DIPNAME( 0x08, 0x08, "Regain Power Price"  ) PORT_DIPLOCATION("SW1:4")
258   PORT_DIPSETTING(    0x08, "1 Coin" )
259   PORT_DIPSETTING(    0x00, "As start price" )
260   PORT_DIPNAME( 0x10, 0x00, DEF_STR( Continue_Price )  ) PORT_DIPLOCATION("SW1:5")
261   PORT_DIPSETTING(    0x10, "1 Coin" )
262   PORT_DIPSETTING(    0x00, "As start price" )
263   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
264   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
265   PORT_DIPSETTING(    0x20, DEF_STR( On ) )
266   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen )  ) PORT_DIPLOCATION("SW1:7")
267   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
268   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
269   PORT_DIPNAME( 0x80, 0x80, "FBI Logo" ) PORT_DIPLOCATION("SW1:8")
270   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
271   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
272
273   PORT_START("DSW2")
274   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
275   PORT_DIPSETTING(    0x02, DEF_STR( Easy ) )
276   PORT_DIPSETTING(    0x03, DEF_STR( Normal ) )
277   PORT_DIPSETTING(    0x01, DEF_STR( Hard ) )
278   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
279   PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Players ) ) PORT_DIPLOCATION("SW2:3,4") /* Nothing listed for seting ON/ON IE:0x00 */
280   PORT_DIPSETTING(    0x04, "2" )
281   PORT_DIPSETTING(    0x08, "3" )
282   PORT_DIPSETTING(    0x0c, "4" )
283   PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" )
284   PORT_DIPNAME( 0x60, 0x60, "Clear Stage Power Up" ) PORT_DIPLOCATION("SW2:6,7")
285   PORT_DIPSETTING(    0x00, "0" )
286   PORT_DIPSETTING(    0x20, "12" )
287   PORT_DIPSETTING(    0x60, "24" )
288   PORT_DIPSETTING(    0x40, "32" )
289   PORT_DIPNAME( 0x80, 0x80, "Championship Game" ) PORT_DIPLOCATION("SW2:8")
290   PORT_DIPSETTING(    0x00, "4th" )
291   PORT_DIPSETTING(    0x80, "5th" )
292INPUT_PORTS_END
293
294static INPUT_PORTS_START( wwfwfesta )
295   PORT_INCLUDE(wwfwfest)
296
297   PORT_MODIFY("DSW1")
298   PORT_DIPNAME( 0x80, 0x00, "FBI Logo" ) PORT_DIPLOCATION("SW1:8")
299   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
300   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
301INPUT_PORTS_END
302
303/*******************************************************************************
304 Graphic Decoding
305*******************************************************************************/
306static const gfx_layout tiles8x8_layout =
307{
308   8,8,
309   RGN_FRAC(1,1),
310   4,
311   { 0, 2, 4, 6 },
312   { 1, 0, 8*8+1, 8*8+0, 16*8+1, 16*8+0, 24*8+1, 24*8+0 },
313   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
314   32*8
315};
316
317static const gfx_layout tile_layout =
318{
319   16,16,  /* 16*16 tiles */
320   4096,   /* 8192 tiles */
321   4,  /* 4 bits per pixel */
322   { 8, 0, 0x40000*8+8 , 0x40000*8+0 },    /* the bitplanes are separated */
323   { 0, 1, 2, 3, 4, 5, 6, 7,
324         32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7 },
325   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
326         16*8, 16*9, 16*10, 16*11, 16*12, 16*13, 16*14, 16*15 },
327   64*8    /* every tile takes 64 consecutive bytes */
328};
329
330static const gfx_layout sprite_layout = {
331   16,16,  /* 16*16 tiles */
332   RGN_FRAC(1,4),
333   4,  /* 4 bits per pixel */
334   { 0, 0x200000*8, 2*0x200000*8 , 3*0x200000*8 }, /* the bitplanes are separated */
335   { 0, 1, 2, 3, 4, 5, 6, 7,
336      16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
337   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
338      8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
339   32*8    /* every tile takes 32 consecutive bytes */
340};
341
342static GFXDECODE_START( wwfwfest )
343   GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0x0000, 16 )
344   GFXDECODE_ENTRY( "gfx2", 0, sprite_layout,   0x0400, 16 )
345   GFXDECODE_ENTRY( "gfx3", 0, tile_layout,     0x1000, 16 )
346   GFXDECODE_ENTRY( "gfx3", 0, tile_layout,     0x0c00, 16 )
347GFXDECODE_END
348
349/*******************************************************************************
350 Interrupt Function
351*******************************************************************************/
352
353TIMER_DEVICE_CALLBACK_MEMBER(wwfwfest_state::wwfwfest_scanline)
354{
355   int scanline = param;
356
357   /* An interrupt is generated every 16 scanlines */
358   if (scanline % 16 == 0)
359   {
360      if (scanline > 0)
361         m_screen->update_partial(scanline - 1);
362      m_maincpu->set_input_line(2, ASSERT_LINE);
363   }
364
365   /* Vblank is raised on scanline 248 */
366   if (scanline == 248)
367   {
368      m_screen->update_partial(scanline - 1);
369      m_maincpu->set_input_line(3, ASSERT_LINE);
370   }
371}
372
373/*******************************************************************************
374 Machine Driver(s)
375*******************************************************************************/
376
377static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state )
378
379   /* basic machine hardware */
380   MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK)  /* 24 crystal, 12 rated chip */
381   MCFG_CPU_PROGRAM_MAP(main_map)
382   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", wwfwfest_state, wwfwfest_scanline, "screen", 0, 1)
383
384   MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)
385   MCFG_CPU_PROGRAM_MAP(sound_map)
386
387   /* video hardware */
388   MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
389
390   MCFG_SCREEN_ADD("screen", RASTER)
391   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 320, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
392   MCFG_SCREEN_UPDATE_DRIVER(wwfwfest_state, screen_update_wwfwfest)
393   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
394
395   MCFG_GFXDECODE(wwfwfest)
396   MCFG_PALETTE_LENGTH(8192)
397
398
399   /* sound hardware */
400   MCFG_SPEAKER_STANDARD_MONO("mono")
401
402   MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz)
403   MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
404   MCFG_SOUND_ROUTE(0, "mono", 0.45)
405   MCFG_SOUND_ROUTE(1, "mono", 0.45)
406
407   MCFG_OKIM6295_ADD("oki", 1024188, OKIM6295_PIN7_HIGH) /* Verified - Pin 7 tied to +5VDC */
408   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
409MACHINE_CONFIG_END
410
411static MACHINE_CONFIG_DERIVED( wwfwfstb, wwfwfest )
412   MCFG_VIDEO_START_OVERRIDE(wwfwfest_state,wwfwfstb)
413MACHINE_CONFIG_END
414
415/*******************************************************************************
416 Rom Loaders / Game Drivers
417********************************************************************************
418 5 sets supported,
419 wwfwfest  - US Set (Technos only copyright for US distribution?)
420 wwfwfesta - World? Set (Tecmo License / Distribution for outside the US?)
421 wwfwfestj - Japan Set (Japanese text at "Game Select" screen)
422 wwfwfestk - Korean Set (Shows "KOREA ONLY" on manufacturer's screen)
423
424 readme / info files below
425
426--------------------------------------------------------------------------------
427 wwfwfstj: README.TXT
428--------------------------------------------------------------------------------
429 Wrestlefest
430 Technos 1991
431
432 TA-0031
433                                                         68000-12
434  31J0_IC1  6264 6264 31A14-2 31A13-2 6264 6264 31A12-0  24MHz
435  31J1_IC2
436                   TJ-002          TJ-004
437                                   6264                   SW1
438                   28MHz                                  SW2
439                                                          SW3
440                                             61C16-35
441                        61C16-35             61C16-35
442  31J2_IC8
443  31J3_IC9
444  31J4_IC10
445  31J5_IC11
446  31J6_IC12
447  31J7_IC13
448  31J8_IC14    TJ-003                31A11-2  M6295   31J10_IC73
449  31J9_IC15    61C16-35 61C16-35     Z80      YM2151
450
451
452  Clock Crystals:
453
454  X1 - 28.000 MHz
455  X2 - 3.579545 MHz (for Z80)
456  X3 - 24.000 MHz (for 68000)
457  X4 - 1.056 MHz (not used, initially intended for OKI6295?)
458
459
460  The mask roms at IC1 and IC2 have the same pinouts as a MX27C4100 or M27C400
461  except pin 1 is not A17 but instead not used (not connected).
462
463*******************************************************************************/
464
465ROM_START( wwfwfest )
466   ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU  (68000) */
467   ROM_LOAD16_BYTE( "31a13-2.ic19", 0x00001, 0x40000, CRC(7175bca7) SHA1(992b47a787b5bc2a5a381ec78b8dfaf7d42c614b) )
468   ROM_LOAD16_BYTE( "31a14-2.ic18", 0x00000, 0x40000, CRC(5d06bfd1) SHA1(39a93da662158aa5a9953dcabfcb47c2fc196dc7) )
469
470   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80)  */
471   ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) )
472
473   ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
474   ROM_LOAD( "31j10.ic73",   0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) )
475
476   ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */
477   ROM_LOAD( "31a12-0.ic33", 0x00000, 0x20000, CRC(d0803e20) SHA1(b68758e9a5522396f831a3972571f8aed54c64de) )
478
479   ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */
480   ROM_LOAD( "31j3.ic9",     0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */
481   ROM_LOAD( "31j2.ic8",     0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */
482   ROM_LOAD( "31j5.ic11",    0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */
483   ROM_LOAD( "31j4.ic10",    0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */
484   ROM_LOAD( "31j6.ic12",    0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */
485   ROM_LOAD( "31j7.ic13",    0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */
486   ROM_LOAD( "31j9.ic15",    0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */
487   ROM_LOAD( "31j8.ic14",    0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */
488
489   ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */
490   ROM_LOAD( "31j0.ic1",     0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */
491   ROM_LOAD( "31j1.ic2",     0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */
492ROM_END
493
494ROM_START( wwfwfesta )
495   ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU  (68000) */
496   ROM_LOAD16_BYTE( "wf_18.rom", 0x00000, 0x40000, CRC(933ea1a0) SHA1(61da142cfa7abd3b77ab21979c061a078c0d0c63) )
497   ROM_LOAD16_BYTE( "wf_19.rom", 0x00001, 0x40000, CRC(bd02e3c4) SHA1(7ae63e48caf9919ce7b63b4c5aa9474ba8c336da) )
498
499   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80)  */
500   ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) )
501
502   ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
503   ROM_LOAD( "31j10.ic73",   0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) )
504
505   ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */
506   ROM_LOAD( "31e12-0.ic33", 0x00000, 0x20000, CRC(06f22615) SHA1(2e9418e372da85ea597977d912d8b35753655f4e) )
507
508   ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */
509   ROM_LOAD( "31j3.ic9",     0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */
510   ROM_LOAD( "31j2.ic8",     0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */
511   ROM_LOAD( "31j5.ic11",    0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */
512   ROM_LOAD( "31j4.ic10",    0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */
513   ROM_LOAD( "31j6.ic12",    0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */
514   ROM_LOAD( "31j7.ic13",    0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */
515   ROM_LOAD( "31j9.ic15",    0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */
516   ROM_LOAD( "31j8.ic14",    0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */
517
518   ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */
519   ROM_LOAD( "31j0.ic1",     0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */
520   ROM_LOAD( "31j1.ic2",     0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */
521ROM_END
522
523ROM_START( wwfwfestb )
524   ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU  (68000) */
525   ROM_LOAD16_BYTE( "3",      0x00000, 0x40000, CRC(ea73369c) SHA1(be614a342f9014251810fa30ec56fec03f7c8ef3) )
526   ROM_LOAD16_BYTE( "2",      0x00001, 0x40000, CRC(632bb3a4) SHA1(9c04fed5aeefc683810cfbd9b3318e155ed9813f) )
527
528   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80)  */
529   ROM_LOAD( "1",             0x00000, 0x10000, CRC(d9e8cda2) SHA1(754c73cd341d51ffd35cdb62155a3f061416c9ba) )
530
531   ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
532   ROM_LOAD( "wf_73a.rom",    0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) )
533
534   ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */
535   ROM_LOAD( "4",             0x00000, 0x20000, CRC(520ef575) SHA1(99a5e9b94e9234851c6b504d58939ad84e0d6589) )
536
537   ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16) */
538   ROM_LOAD( "wf_09.rom",    0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */
539   ROM_LOAD( "wf_08.rom",    0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */
540   ROM_LOAD( "wf_11.rom",    0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */
541   ROM_LOAD( "wf_10.rom",    0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */
542   ROM_LOAD( "wf_12.rom",    0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */
543   ROM_LOAD( "wf_13.rom",    0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */
544   ROM_LOAD( "wf_15.rom",    0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */
545   ROM_LOAD( "wf_14.rom",    0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */
546
547   ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */
548   ROM_LOAD16_BYTE( "5",     0x40000, 0x20000, CRC(35e4d6eb) SHA1(d2a12bde268bc0734e6806ff5302b8c3dcc17280) ) /* 0 */
549   ROM_LOAD16_BYTE( "6",     0x40001, 0x20000, CRC(a054a5b2) SHA1(d6ed5d5a20acb7cdbaee8e3f520873650529c0ae) ) /* 1 */
550   ROM_LOAD16_BYTE( "7",     0x00000, 0x20000, CRC(101f0136) SHA1(2ccd641e49cdd3f5243ebe8c52c492842d62f5b8) ) /* 2 */
551   ROM_LOAD16_BYTE( "8",     0x00001, 0x20000, CRC(7b2ecba7) SHA1(1ed2451132448930ac4afcdc67ca14e3e922863e) ) /* 3 */
552ROM_END
553
554ROM_START( wwfwfestj )
555   ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU  (68000) */
556   ROM_LOAD16_BYTE( "31j13-0.ic19", 0x00001, 0x40000, CRC(2147780d) SHA1(9a7a5db06117f3780e084d3f0c7b642ff8a9db55) )
557   ROM_LOAD16_BYTE( "31j14-0.ic18", 0x00000, 0x40000, CRC(d76fc747) SHA1(5f6819bc61756d1df4ac0776ac420a59c438cf8a) )
558
559   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80)  */
560   ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) )
561
562   ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
563   ROM_LOAD( "31j10.ic73",   0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) )
564
565   ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */
566   ROM_LOAD( "31j12-0.ic33", 0x00000, 0x20000, CRC(f4821fe0) SHA1(e5faa9860e9d4e75393b64ca85a8bfc4852fd4fd) )
567
568   ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */
569   ROM_LOAD( "31j3.ic9",     0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */
570   ROM_LOAD( "31j2.ic8",     0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */
571   ROM_LOAD( "31j5.ic11",    0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */
572   ROM_LOAD( "31j4.ic10",    0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */
573   ROM_LOAD( "31j6.ic12",    0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */
574   ROM_LOAD( "31j7.ic13",    0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */
575   ROM_LOAD( "31j9.ic15",    0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */
576   ROM_LOAD( "31j8.ic14",    0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */
577
578   ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */
579   ROM_LOAD( "31j0.ic1",     0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */
580   ROM_LOAD( "31j1.ic2",     0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */
581ROM_END
582
583ROM_START( wwfwfestk )
584   ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU  (68000) */
585   ROM_LOAD16_BYTE( "31e13-0.ic19", 0x00001, 0x40000, CRC(774a26a7) SHA1(30e00bff9027a0ae971f8820ca6c3e4cdea82994) )
586   ROM_LOAD16_BYTE( "31e14-0.ic18", 0x00000, 0x40000, CRC(05bbb807) SHA1(1dc2ddd9ae498468a97e002f78e7f3a331d802d1) )
587
588   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80)  */
589   ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) )
590
591   ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
592   ROM_LOAD( "31j10.ic73",   0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) )
593
594   ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */
595   ROM_LOAD( "31e12-0.ic33", 0x00000, 0x20000, CRC(06f22615) SHA1(2e9418e372da85ea597977d912d8b35753655f4e) )
596
597   ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */
598   ROM_LOAD( "31j3.ic9",     0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */
599   ROM_LOAD( "31j2.ic8",     0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */
600   ROM_LOAD( "31j5.ic11",    0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */
601   ROM_LOAD( "31j4.ic10",    0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */
602   ROM_LOAD( "31j6.ic12",    0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */
603   ROM_LOAD( "31j7.ic13",    0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */
604   ROM_LOAD( "31j9.ic15",    0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */
605   ROM_LOAD( "31j8.ic14",    0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */
606
607   ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */
608   ROM_LOAD( "31j0.ic1",     0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */
609   ROM_LOAD( "31j1.ic2",     0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */
610ROM_END
611
612GAME( 1991, wwfwfest,  0,        wwfwfest, wwfwfest,  driver_device, 0, ROT0, "Technos Japan",                 "WWF WrestleFest (US set 1)",   GAME_SUPPORTS_SAVE )
613GAME( 1991, wwfwfesta, wwfwfest, wwfwfest, wwfwfest,  driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (US Tecmo)",   GAME_SUPPORTS_SAVE )
614GAME( 1991, wwfwfestb, wwfwfest, wwfwfstb, wwfwfest,  driver_device, 0, ROT0, "bootleg",                       "WWF WrestleFest (US bootleg)", GAME_SUPPORTS_SAVE )
615GAME( 1991, wwfwfestj, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Japan)",      GAME_SUPPORTS_SAVE )
616GAME( 1991, wwfwfestk, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Korea)",      GAME_SUPPORTS_SAVE )
trunk/src/mame/drivers/ddragon3.c
r24873r24874
127127      -       IC47
128128      -       IC48
129129
130
131
132
133
134
135 Wrestlefest
136 Technos 1991
137
138 TA-0031
139                                                         68000-12
140  31J0_IC1  6264 6264 31A14-2 31A13-2 6264 6264 31A12-0  24MHz
141  31J1_IC2
142                   TJ-002          TJ-004
143                                   6264                   SW1
144                   28MHz                                  SW2
145                                                          SW3
146                                             61C16-35
147                        61C16-35             61C16-35
148  31J2_IC8
149  31J3_IC9
150  31J4_IC10
151  31J5_IC11
152  31J6_IC12
153  31J7_IC13
154  31J8_IC14    TJ-003                31A11-2  M6295   31J10_IC73
155  31J9_IC15    61C16-35 61C16-35     Z80      YM2151
156
157
158  Clock Crystals:
159
160  X1 - 28.000 MHz
161  X2 - 3.579545 MHz (for Z80)
162  X3 - 24.000 MHz (for 68000)
163  X4 - 1.056 MHz (not used, initially intended for OKI6295?)
164
165
166  The mask roms at IC1 and IC2 have the same pinouts as a MX27C4100 or M27C400
167  except pin 1 is not A17 but instead not used (not connected).
168
169
170
171
130172******************************************************************/
131173
132174/*
r24873r24874
145187#include "sound/okim6295.h"
146188#include "includes/ddragon3.h"
147189
148#define PIXEL_CLOCK     (XTAL_28MHz / 4)
190#define MASTER_CLOCK        XTAL_24MHz
191#define CPU_CLOCK           MASTER_CLOCK / 2
192#define PIXEL_CLOCK     MASTER_CLOCK / 4
149193
150
151194/*************************************
152195 *
153196 *  Read/Write Handlers
r24873r24874
159202   m_oki->set_bank_base((data & 1) * 0x40000);
160203}
161204
205
206
207
208WRITE16_MEMBER(wwfwfest_state::wwfwfest_soundwrite)
209{
210   soundlatch_byte_w(space,1,data & 0xff);
211   m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE );
212}
213
214
162215WRITE16_MEMBER(ddragon3_state::ddragon3_io_w)
163216{
164217   COMBINE_DATA(&m_io_reg[offset]);
r24873r24874
198251   }
199252}
200253
254
255WRITE16_MEMBER(wwfwfest_state::wwfwfest_irq_ack_w)
256{
257   if (offset == 0)
258      m_maincpu->set_input_line(3, CLEAR_LINE);
259
260   else
261      m_maincpu->set_input_line(2, CLEAR_LINE);
262}
263
264WRITE16_MEMBER(wwfwfest_state::wwfwfest_flipscreen_w)
265{
266   flip_screen_set(data&1);
267}
268
269/*- Palette Reads/Writes -*/
270
271READ16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r)
272{
273   offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2;
274   return m_generic_paletteram_16[offset];
275}
276
277WRITE16_MEMBER(wwfwfest_state::wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w)
278{
279   offset = (offset & 0x000f) | (offset & 0x7fc0) >> 2;
280   paletteram_xxxxBBBBGGGGRRRR_word_w (space, offset, data, mem_mask);
281}
282
283/*- Priority Control -*/
284
285
286WRITE16_MEMBER(wwfwfest_state::wwfwfest_1410_write)
287{
288   m_pri = data;
289}
290
291
292
293
294/* DIPs are spread across the other input ports */
295CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_3f_r)
296{
297   const char *tag = (const char *)param;
298   return ioport(tag)->read() & 0x3f;
299}
300
301CUSTOM_INPUT_MEMBER(wwfwfest_state::dsw_c0_r)
302{
303   const char *tag = (const char *)param;
304   return (ioport(tag)->read() & 0xc0) >> 6;
305}
306
307
308
201309/*************************************
202310 *
203311 *  Memory Maps
r24873r24874
250358   AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* working RAM */
251359ADDRESS_MAP_END
252360
361static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, wwfwfest_state )
362   AM_RANGE(0x000000, 0x07ffff) AM_ROM
363   AM_RANGE(0x0c0000, 0x0c1fff) AM_RAM_WRITE(wwfwfest_fg0_videoram_w) AM_SHARE("fg0_videoram") /* FG0 Ram - 4 bytes per tile */
364   AM_RANGE(0x0c2000, 0x0c3fff) AM_RAM AM_SHARE("spriteram")                       /* SPR Ram */
365   AM_RANGE(0x080000, 0x080fff) AM_RAM_WRITE(ddragon3_fg_videoram_w) AM_SHARE("fg_videoram") /* BG0 Ram - 4 bytes per tile */
366   AM_RANGE(0x082000, 0x082fff) AM_RAM_WRITE(ddragon3_bg_videoram_w) AM_SHARE("bg_videoram") /* BG1 Ram - 2 bytes per tile */
367   AM_RANGE(0x100000, 0x100007) AM_READWRITE(ddragon3_scroll_r, ddragon3_scroll_w)
368   AM_RANGE(0x10000a, 0x10000b) AM_WRITE(wwfwfest_flipscreen_w)
369   AM_RANGE(0x140000, 0x140003) AM_WRITE(wwfwfest_irq_ack_w)
370   AM_RANGE(0x14000c, 0x14000d) AM_WRITE(wwfwfest_soundwrite)
371   AM_RANGE(0x140010, 0x140011) AM_WRITE(wwfwfest_1410_write)
372   AM_RANGE(0x140020, 0x140021) AM_READ_PORT("P1")
373   AM_RANGE(0x140022, 0x140023) AM_READ_PORT("P2")
374   AM_RANGE(0x140024, 0x140025) AM_READ_PORT("P3")
375   AM_RANGE(0x140026, 0x140027) AM_READ_PORT("P4")
376   AM_RANGE(0x180000, 0x18ffff) AM_READWRITE(wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_r,wwfwfest_paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_SHARE("paletteram")
377   AM_RANGE(0x1c0000, 0x1c3fff) AM_RAM /* Work Ram */
378ADDRESS_MAP_END
379
380
253381static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, ddragon3_state )
254382   AM_RANGE(0x0000, 0xbfff) AM_ROM
255383   AM_RANGE(0xc000, 0xc7ff) AM_RAM
r24873r24874
259387   AM_RANGE(0xe800, 0xe800) AM_WRITE(oki_bankswitch_w)
260388ADDRESS_MAP_END
261389
390
262391static ADDRESS_MAP_START( ctribe_sound_map, AS_PROGRAM, 8, ddragon3_state )
263392   AM_RANGE(0x0000, 0x7fff) AM_ROM
264393   AM_RANGE(0x8000, 0x87ff) AM_RAM
r24873r24874
463592   PORT_DIPUNUSED_DIPLOC( 0x0800, 0x0800, "SW2:4" )
464593INPUT_PORTS_END
465594
595
596
597static INPUT_PORTS_START( wwfwfest )
598   PORT_START("P1")
599   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
600   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
601   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
602   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
603   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 )
604   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 )
605   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
606   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START1 )
607   PORT_BIT( 0x0100, IP_ACTIVE_LOW, IPT_COIN1 )
608   PORT_BIT( 0x0200, IP_ACTIVE_LOW, IPT_SERVICE1 )
609   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_UNKNOWN )
610   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
611   PORT_BIT( 0x3000, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_c0_r, "DSW2")
612   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
613   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
614
615   PORT_START("P2")
616   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2)
617   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2)
618   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2)
619   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2)
620   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2)
621   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2)
622   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
623   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START2 )
624   PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_3f_r, "DSW2")
625
626   PORT_START("P3")
627   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(3)
628   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(3)
629   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(3)
630   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(3)
631   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(3)
632   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(3)
633   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
634   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START3 )
635   PORT_BIT( 0x3f00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_3f_r, "DSW1")
636
637   PORT_START("P4")
638   PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(4)
639   PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(4)
640   PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(4)
641   PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(4)
642   PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(4)
643   PORT_BIT( 0x0020, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(4)
644   PORT_BIT( 0x0040, IP_ACTIVE_LOW, IPT_UNUSED )
645   PORT_BIT( 0x0080, IP_ACTIVE_LOW, IPT_START4 )
646   PORT_BIT( 0x0300, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, wwfwfest_state,dsw_c0_r, "DSW1")
647   PORT_BIT( 0x0400, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
648   PORT_BIT( 0x0800, IP_ACTIVE_LOW, IPT_UNKNOWN )
649   PORT_BIT( 0x1000, IP_ACTIVE_LOW, IPT_UNKNOWN )
650   PORT_BIT( 0x2000, IP_ACTIVE_LOW, IPT_UNKNOWN )
651   PORT_BIT( 0x4000, IP_ACTIVE_LOW, IPT_UNKNOWN )
652   PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
653
654   /* Nb:  There are actually 3 dips on the board, 2 * 8, and 1 *4 */
655   PORT_START("DSW1")
656   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Coin_A ) ) PORT_DIPLOCATION("SW1:1,2")
657   PORT_DIPSETTING(    0x00, DEF_STR( 3C_1C )  )
658   PORT_DIPSETTING(    0x01, DEF_STR( 2C_1C )  )
659   PORT_DIPSETTING(    0x03, DEF_STR( 1C_1C )  )
660   PORT_DIPSETTING(    0x02, DEF_STR( 1C_2C )  )
661   PORT_DIPNAME( 0x04, 0x04, "Buy In Price"  ) PORT_DIPLOCATION("SW1:3")
662   PORT_DIPSETTING(    0x04, "1 Coin" )
663   PORT_DIPSETTING(    0x00, "As start price" )
664   PORT_DIPNAME( 0x08, 0x08, "Regain Power Price"  ) PORT_DIPLOCATION("SW1:4")
665   PORT_DIPSETTING(    0x08, "1 Coin" )
666   PORT_DIPSETTING(    0x00, "As start price" )
667   PORT_DIPNAME( 0x10, 0x00, DEF_STR( Continue_Price )  ) PORT_DIPLOCATION("SW1:5")
668   PORT_DIPSETTING(    0x10, "1 Coin" )
669   PORT_DIPSETTING(    0x00, "As start price" )
670   PORT_DIPNAME( 0x20, 0x20, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION("SW1:6")
671   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
672   PORT_DIPSETTING(    0x20, DEF_STR( On ) )
673   PORT_DIPNAME( 0x40, 0x40, DEF_STR( Flip_Screen )  ) PORT_DIPLOCATION("SW1:7")
674   PORT_DIPSETTING(    0x40, DEF_STR( Off ) )
675   PORT_DIPSETTING(    0x00, DEF_STR( On ) )
676   PORT_DIPNAME( 0x80, 0x80, "FBI Logo" ) PORT_DIPLOCATION("SW1:8")
677   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
678   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
679
680   PORT_START("DSW2")
681   PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION("SW2:1,2")
682   PORT_DIPSETTING(    0x02, DEF_STR( Easy ) )
683   PORT_DIPSETTING(    0x03, DEF_STR( Normal ) )
684   PORT_DIPSETTING(    0x01, DEF_STR( Hard ) )
685   PORT_DIPSETTING(    0x00, DEF_STR( Hardest ) )
686   PORT_DIPNAME( 0x0c, 0x0c, DEF_STR( Players ) ) PORT_DIPLOCATION("SW2:3,4") /* Nothing listed for seting ON/ON IE:0x00 */
687   PORT_DIPSETTING(    0x04, "2" )
688   PORT_DIPSETTING(    0x08, "3" )
689   PORT_DIPSETTING(    0x0c, "4" )
690   PORT_DIPUNUSED_DIPLOC( 0x10, IP_ACTIVE_LOW, "SW2:5" )
691   PORT_DIPNAME( 0x60, 0x60, "Clear Stage Power Up" ) PORT_DIPLOCATION("SW2:6,7")
692   PORT_DIPSETTING(    0x00, "0" )
693   PORT_DIPSETTING(    0x20, "12" )
694   PORT_DIPSETTING(    0x60, "24" )
695   PORT_DIPSETTING(    0x40, "32" )
696   PORT_DIPNAME( 0x80, 0x80, "Championship Game" ) PORT_DIPLOCATION("SW2:8")
697   PORT_DIPSETTING(    0x00, "4th" )
698   PORT_DIPSETTING(    0x80, "5th" )
699INPUT_PORTS_END
700
701static INPUT_PORTS_START( wwfwfesta )
702   PORT_INCLUDE(wwfwfest)
703
704   PORT_MODIFY("DSW1")
705   PORT_DIPNAME( 0x80, 0x00, "FBI Logo" ) PORT_DIPLOCATION("SW1:8")
706   PORT_DIPSETTING(    0x00, DEF_STR( Off ) )
707   PORT_DIPSETTING(    0x80, DEF_STR( On ) )
708INPUT_PORTS_END
709
710
466711/*************************************
467712 *
468713 *  Graphics Layouts
469714 *
470715 *************************************/
471716
472static const gfx_layout tile_layout =
717
718static const gfx_layout tiles8x8_layout =
473719{
720   8,8,
721   RGN_FRAC(1,1),
722   4,
723   { 0, 2, 4, 6 },
724   { 1, 0, 8*8+1, 8*8+0, 16*8+1, 16*8+0, 24*8+1, 24*8+0 },
725   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 },
726   32*8
727};
728
729static const gfx_layout wwf_tile_layout =
730{
474731   16,16,  /* 16*16 tiles */
475   8192,   /* 8192 tiles */
732   RGN_FRAC(1,2),   /* 8192 tiles */
476733   4,  /* 4 bits per pixel */
477   { 0, 0x40000*8, 2*0x40000*8 , 3*0x40000*8 },    /* the bitplanes are separated */
734   { 8, 0, RGN_FRAC(1,2)+8 , RGN_FRAC(1,2)+0 },    /* the bitplanes are separated */
478735   { 0, 1, 2, 3, 4, 5, 6, 7,
479         16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
480   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
481         8*8, 9*8, 10*8, 11*8, 12*8, 13*8, 14*8, 15*8 },
482   32*8    /* every tile takes 32 consecutive bytes */
736         32*8+0, 32*8+1, 32*8+2, 32*8+3, 32*8+4, 32*8+5, 32*8+6, 32*8+7 },
737   { 0*16, 1*16, 2*16, 3*16, 4*16, 5*16, 6*16, 7*16,
738         16*8, 16*9, 16*10, 16*11, 16*12, 16*13, 16*14, 16*15 },
739   64*8    /* every tile takes 64 consecutive bytes */
483740};
484741
485static const gfx_layout sprite_layout = {
742static const gfx_layout wwf_sprite_layout = {
486743   16,16,  /* 16*16 tiles */
487   0x90000/32, /* 4096 tiles */
744   RGN_FRAC(1,4),
488745   4,  /* 4 bits per pixel */
489   { 0, 0x100000*8, 2*0x100000*8 , 3*0x100000*8 }, /* the bitplanes are separated */
746   { RGN_FRAC(0,4), RGN_FRAC(1,4), RGN_FRAC(2,4) , RGN_FRAC(3,4) }, /* the bitplanes are separated */
490747   { 0, 1, 2, 3, 4, 5, 6, 7,
491748      16*8+0, 16*8+1, 16*8+2, 16*8+3, 16*8+4, 16*8+5, 16*8+6, 16*8+7 },
492749   { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8,
r24873r24874
501758 *************************************/
502759
503760static GFXDECODE_START( ddragon3 )
504   GFXDECODE_ENTRY( "gfx1", 0, tile_layout,   256, 32 )
505   GFXDECODE_ENTRY( "gfx2", 0, sprite_layout,  0, 16 )
761   GFXDECODE_ENTRY( "gfx1", 0, wwf_tile_layout,   512, 32 )
762   GFXDECODE_ENTRY( "gfx1", 0, wwf_tile_layout,   256, 32 )
763   GFXDECODE_ENTRY( "gfx2", 0, wwf_sprite_layout,  0, 16 )
506764GFXDECODE_END
507765
766static GFXDECODE_START( wwfwfest )
767   GFXDECODE_ENTRY( "gfx3", 0, wwf_tile_layout,     0x0c00, 16 )
768   GFXDECODE_ENTRY( "gfx3", 0, wwf_tile_layout,     0x1000, 16 )
769   GFXDECODE_ENTRY( "gfx2", 0, wwf_sprite_layout,   0x0400, 16 )
770   GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0x0000, 16 )
771GFXDECODE_END
508772
773
774
509775/*************************************
510776 *
511777 *  Interrupt Generators
r24873r24874
521787   {
522788      if (scanline > 0)
523789         m_screen->update_partial(scanline - 1);
524      m_maincpu->set_input_line(5, ASSERT_LINE);
790      m_maincpu->set_input_line(raster_level, ASSERT_LINE);
525791   }
526792
527793   /* Vblank is raised on scanline 248 */
528794   if (scanline == 248)
529795   {
530796      m_screen->update_partial(scanline - 1);
531      m_maincpu->set_input_line(6, ASSERT_LINE);
797      m_maincpu->set_input_line(vblank_level, ASSERT_LINE);
532798   }
533799}
534800
r24873r24874
579845   MCFG_SCREEN_ADD("screen", RASTER)
580846   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 448, 0, 320, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
581847   MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ddragon3)
848   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
582849
583850   MCFG_GFXDECODE(ddragon3)
584851   MCFG_PALETTE_LENGTH(768)
585852
853   MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
586854
587855   /* sound hardware */
588856   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
r24873r24874
625893   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.80)
626894MACHINE_CONFIG_END
627895
896
897static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state )
898
899   /* basic machine hardware */
900   MCFG_CPU_ADD("maincpu", M68000, CPU_CLOCK)  /* 24 crystal, 12 rated chip */
901   MCFG_CPU_PROGRAM_MAP(main_map)
902   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", ddragon3_state, ddragon3_scanline, "screen", 0, 1)
903
904   MCFG_CPU_ADD("audiocpu", Z80, XTAL_3_579545MHz)
905   MCFG_CPU_PROGRAM_MAP(sound_map)
906
907   /* video hardware */
908   MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
909
910   MCFG_SCREEN_ADD("screen", RASTER)
911   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 320, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
912   MCFG_SCREEN_UPDATE_DRIVER(wwfwfest_state, screen_update_wwfwfest)
913   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
914
915   MCFG_GFXDECODE(wwfwfest)
916   MCFG_PALETTE_LENGTH(8192)
917
918
919   /* sound hardware */
920   MCFG_SPEAKER_STANDARD_MONO("mono")
921
922   MCFG_YM2151_ADD("ymsnd", XTAL_3_579545MHz)
923   MCFG_YM2151_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
924   MCFG_SOUND_ROUTE(0, "mono", 0.45)
925   MCFG_SOUND_ROUTE(1, "mono", 0.45)
926
927   MCFG_OKIM6295_ADD("oki", 1024188, OKIM6295_PIN7_HIGH) /* Verified - Pin 7 tied to +5VDC */
928   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
929MACHINE_CONFIG_END
930
931static MACHINE_CONFIG_DERIVED( wwfwfstb, wwfwfest )
932   MCFG_VIDEO_START_OVERRIDE(wwfwfest_state,wwfwfstb)
933MACHINE_CONFIG_END
934
935
628936/*************************************
629937 *
630938 *  ROM definition(s)
r24873r24874
639947   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for sound cpu code */
640948   ROM_LOAD( "30a13-0.ic43", 0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) )
641949
642   ROM_REGION( 0x200000, "gfx1", 0 )   /* Background */
643   ROM_LOAD( "30j-7.ic4",    0x000000, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) )
644   ROM_LOAD( "30j-6.ic5",    0x040000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) )
645   ROM_LOAD( "30j-5.ic6",    0x080000, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) )
646   ROM_LOAD( "30j-4.ic7",    0x0c0000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) )
950   ROM_REGION( 0x100000, "gfx1", 0 )   /* Background */
951   ROM_LOAD16_BYTE( "30j-7.ic4",    0x000001, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) )
952   ROM_LOAD16_BYTE( "30j-6.ic5",    0x000000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) )
953   ROM_LOAD16_BYTE( "30j-5.ic6",    0x080001, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) )
954   ROM_LOAD16_BYTE( "30j-4.ic7",    0x080000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) )
647955
648956   ROM_REGION( 0x400000, "gfx2", 0 )   /* Sprites */
649957   ROM_LOAD( "30j-3.ic9",    0x000000, 0x80000, CRC(b3151871) SHA1(a647b4d9bddd6b8715a1d24641391a2e2d0f8867) )
r24873r24874
670978   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for sound cpu code */
671979   ROM_LOAD( "30j13.ic43",   0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) )
672980
673   ROM_REGION( 0x200000, "gfx1", 0 )   /* Background */
674   ROM_LOAD( "30j-7.ic4",    0x000000, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) )
675   ROM_LOAD( "30j-6.ic5",    0x040000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) )
676   ROM_LOAD( "30j-5.ic6",    0x080000, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) )
677   ROM_LOAD( "30j-4.ic7",    0x0c0000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) )
981   ROM_REGION( 0x100000, "gfx1", 0 )   /* Background */
982   ROM_LOAD16_BYTE( "30j-7.ic4",    0x000001, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) )
983   ROM_LOAD16_BYTE( "30j-6.ic5",    0x000000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) )
984   ROM_LOAD16_BYTE( "30j-5.ic6",    0x080001, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) )
985   ROM_LOAD16_BYTE( "30j-4.ic7",    0x080000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) )
678986
679987   ROM_REGION( 0x400000, "gfx2", 0 )   /* Sprites */
680988   ROM_LOAD( "30j-3.ic9",    0x000000, 0x80000, CRC(b3151871) SHA1(a647b4d9bddd6b8715a1d24641391a2e2d0f8867) )
r24873r24874
7011009   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for sound cpu code */
7021010   ROM_LOAD( "30a13-0.ic43",   0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) )
7031011
704   ROM_REGION( 0x200000, "gfx1", 0 )   /* Background */
705   ROM_LOAD( "14.ic45",      0x000000, 0x20000, CRC(b036a27b) SHA1(c13589c3882bb86f14a3b0143f2d9a4474350ddd) )
706   ROM_LOAD( "15.ic46",      0x020000, 0x20000, CRC(24d0bf41) SHA1(2e9c26c8078d17323af6ba378c7ceaed9045d3f7) )
707   ROM_LOAD( "30.ic13",      0x040000, 0x20000, CRC(72fe2b16) SHA1(92f02381c0216cf5cfede6813e4dcb814a040091) )
708   ROM_LOAD( "31.ic14",      0x060000, 0x20000, CRC(ab48a0c8) SHA1(b908f601a621697ad3b5067d26b6fb1713c4af39) )
709   ROM_LOAD( "23.ic29",      0x080000, 0x20000, CRC(0768fedd) SHA1(757c4378f53b4b8cc024b4c5a74d19ab653e886e) )
710   ROM_LOAD( "24.ic30",      0x0a0000, 0x20000, CRC(ec9db18a) SHA1(7e4085ba4c0e20ec00f392a2bf9cdb81be53b97f) )
711   ROM_LOAD( "21.ic25",      0x0c0000, 0x20000, CRC(902744b9) SHA1(eea623ce013bc270b1611982dd2f9388b205dbb3) )
712   ROM_LOAD( "22.ic26",      0x0e0000, 0x20000, CRC(5b142d4d) SHA1(88e22e102efa35449c0d9f6139eb0718528a9d72) )
1012   ROM_REGION( 0x100000, "gfx1", 0 )   /* Background */
1013   ROM_LOAD16_BYTE( "14.ic45",      0x000001, 0x20000, CRC(b036a27b) SHA1(c13589c3882bb86f14a3b0143f2d9a4474350ddd) )
1014   ROM_LOAD16_BYTE( "15.ic46",      0x040001, 0x20000, CRC(24d0bf41) SHA1(2e9c26c8078d17323af6ba378c7ceaed9045d3f7) )
1015   ROM_LOAD16_BYTE( "30.ic13",      0x000000, 0x20000, CRC(72fe2b16) SHA1(92f02381c0216cf5cfede6813e4dcb814a040091) )
1016   ROM_LOAD16_BYTE( "31.ic14",      0x040000, 0x20000, CRC(ab48a0c8) SHA1(b908f601a621697ad3b5067d26b6fb1713c4af39) )
1017   ROM_LOAD16_BYTE( "23.ic29",      0x080001, 0x20000, CRC(0768fedd) SHA1(757c4378f53b4b8cc024b4c5a74d19ab653e886e) )
1018   ROM_LOAD16_BYTE( "24.ic30",      0x0c0001, 0x20000, CRC(ec9db18a) SHA1(7e4085ba4c0e20ec00f392a2bf9cdb81be53b97f) )
1019   ROM_LOAD16_BYTE( "21.ic25",      0x080000, 0x20000, CRC(902744b9) SHA1(eea623ce013bc270b1611982dd2f9388b205dbb3) )
1020   ROM_LOAD16_BYTE( "22.ic26",      0x0c0000, 0x20000, CRC(5b142d4d) SHA1(88e22e102efa35449c0d9f6139eb0718528a9d72) )
7131021
7141022   ROM_REGION( 0x400000, "gfx2", 0 )   /* Sprites */
7151023   ROM_LOAD( "9.ic39",       0x000000, 0x20000, CRC(726c49b7) SHA1(dbafad47bb6b717c409fdc5d81c413f1282f2bbb) )
r24873r24874
7541062   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for sound cpu code */
7551063   ROM_LOAD( "dd3.06",    0x00000, 0x10000, CRC(1e974d9b) SHA1(8e54ff747efe587a2e971c15e729445c4e232f0f) )
7561064
757   ROM_REGION( 0x200000, "gfx1", 0 )   /* Background */
758   ROM_LOAD( "dd3.f",   0x000000, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) )
759   ROM_LOAD( "dd3.e",   0x040000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) )
760   ROM_LOAD( "dd3.b",   0x080000, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) )
761   ROM_LOAD( "dd3.a",   0x0c0000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) )
1065   ROM_REGION( 0x100000, "gfx1", 0 )   /* Background */
1066   ROM_LOAD16_BYTE( "dd3.f",   0x000001, 0x40000, CRC(89d58d32) SHA1(54cfc154024e014f537c7ae0c2275ece50413bc5) )
1067   ROM_LOAD16_BYTE( "dd3.e",   0x000000, 0x40000, CRC(9bf1538e) SHA1(c7cb96c6b1ac73ec52f46b2a6687bfcfd375ab44) )
1068   ROM_LOAD16_BYTE( "dd3.b",   0x080001, 0x40000, CRC(8f671a62) SHA1(b5dba61ad6ed39440bb98f7b2dc1111779d6c4a1) )
1069   ROM_LOAD16_BYTE( "dd3.a",   0x080000, 0x40000, CRC(0f74ea1c) SHA1(6bd8dd89bd22b29038cf502a898336e95e50a9cc) )
7621070
7631071   ROM_REGION( 0x400000, "gfx2", 0 )   /* Sprites */
7641072   ROM_LOAD( "dd3.3e",   0x000000, 0x20000, CRC(726c49b7) SHA1(dbafad47bb6b717c409fdc5d81c413f1282f2bbb) ) //4a
r24873r24874
8031111   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for sound cpu code */
8041112   ROM_LOAD( "28a10-0.ic89", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) )
8051113
806   ROM_REGION( 0x200000, "gfx1", 0 )   /* Background */
807   ROM_LOAD( "28j7-0.ic11",  0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
808   ROM_LOAD( "28j6-0.ic13",  0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
809   ROM_LOAD( "28j5-0.ic12",  0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
810   ROM_LOAD( "28j4-0.ic14",  0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
1114   ROM_REGION( 0x100000, "gfx1", 0 )   /* Background */
1115   ROM_LOAD16_BYTE( "28j7-0.ic11",  0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
1116   ROM_LOAD16_BYTE( "28j6-0.ic13",  0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
1117   ROM_LOAD16_BYTE( "28j5-0.ic12",  0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
1118   ROM_LOAD16_BYTE( "28j4-0.ic14",  0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
8111119
8121120   ROM_REGION( 0x400000, "gfx2", 0 )   /* Sprites */
8131121   ROM_LOAD( "28j3-0.ic77",  0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) )
r24873r24874
8371145   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for sound cpu code */
8381146   ROM_LOAD( "28a10-0.ic89", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) )
8391147
840   ROM_REGION( 0x200000, "gfx1", 0 )   /* Background */
841   ROM_LOAD( "28j7-0.ic11",  0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
842   ROM_LOAD( "28j6-0.ic13",  0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
843   ROM_LOAD( "28j5-0.ic12",  0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
844   ROM_LOAD( "28j4-0.ic14",  0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
1148   ROM_REGION( 0x100000, "gfx1", 0 )   /* Background */
1149   ROM_LOAD16_BYTE( "28j7-0.ic11",  0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
1150   ROM_LOAD16_BYTE( "28j6-0.ic13",  0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
1151   ROM_LOAD16_BYTE( "28j5-0.ic12",  0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
1152   ROM_LOAD16_BYTE( "28j4-0.ic14",  0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
8451153
8461154   ROM_REGION( 0x400000, "gfx2", 0 )   /* Sprites */
8471155   ROM_LOAD( "28j3-0.ic77",  0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) )
r24873r24874
8711179   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for sound cpu code */
8721180   ROM_LOAD( "28j10-0.89", 0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) )
8731181
874   ROM_REGION( 0x200000, "gfx1", 0 )   /* Background */
875   ROM_LOAD( "28j7-0.ic11",  0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
876   ROM_LOAD( "28j6-0.ic13",  0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
877   ROM_LOAD( "28j5-0.ic12",  0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
878   ROM_LOAD( "28j4-0.ic14",  0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
1182   ROM_REGION( 0x100000, "gfx1", 0 )   /* Background */
1183   ROM_LOAD16_BYTE( "28j7-0.ic11",  0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
1184   ROM_LOAD16_BYTE( "28j6-0.ic13",  0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
1185   ROM_LOAD16_BYTE( "28j5-0.ic12",  0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
1186   ROM_LOAD16_BYTE( "28j4-0.ic14",  0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
8791187
8801188   ROM_REGION( 0x400000, "gfx2", 0 )   /* Sprites */
8811189   ROM_LOAD( "28j3-0.ic77",  0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) )
r24873r24874
9051213   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for sound cpu code */
9061214   ROM_LOAD( "ct_ep4.rom",   0x00000, 0x8000, CRC(4346de13) SHA1(67c6de90ba31a325f03e64d28c9391a315ee359c) )
9071215
908   ROM_REGION( 0x200000, "gfx1", 0 )   /* Background */
909   ROM_LOAD( "ct_mr7.rom",  0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
910   ROM_LOAD( "ct_mr6.rom",  0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
911   ROM_LOAD( "ct_mr5.rom",  0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
912   ROM_LOAD( "ct_mr4.rom",  0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
1216   ROM_REGION( 0x100000, "gfx1", 0 )   /* Background */
1217   ROM_LOAD16_BYTE( "ct_mr7.rom",  0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
1218   ROM_LOAD16_BYTE( "ct_mr6.rom",  0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
1219   ROM_LOAD16_BYTE( "ct_mr5.rom",  0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
1220   ROM_LOAD16_BYTE( "ct_mr4.rom",  0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
9131221
9141222   ROM_REGION( 0x400000, "gfx2", 0 )   /* Sprites */
9151223   ROM_LOAD( "ct_mr3.rom",  0x000000, 0x80000, CRC(1ac2a461) SHA1(17436f5dcf29041ca5f470dfae538e4fc12153cc) )
r24873r24874
9361244   ROM_REGION( 0x10000, "audiocpu", 0 )    /* 64k for sound cpu code */
9371245   ROM_LOAD( "6.bin",   0x00000, 0x10000, CRC(0101df2d) SHA1(35e1efa4a11c0f9d9db5ee057926e5de29c3a4c1) )
9381246
939   ROM_REGION( 0x200000, "gfx1", 0 )   /* Background */
940   ROM_LOAD( "7.bin",   0x000000, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
941   ROM_LOAD( "8.bin",   0x040000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
942   ROM_LOAD( "11.bin",  0x080000, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
943   ROM_LOAD( "12.bin",  0x0c0000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
944   ROM_LOAD( "9.bin",   0x100000, 0x20000, CRC(2719d7ce) SHA1(35275d32b584c477033037bc041a3687ecca412d) )
945   ROM_LOAD( "10.bin",  0x140000, 0x20000, CRC(753a4f53) SHA1(c76a449ef29dde671196cda1f128b0b2d4839a97) )
946   ROM_LOAD( "13.bin",  0x180000, 0x20000, CRC(59e01fe1) SHA1(67f5a4e9c9e9ebc6218b7c2ede0e5ff51682ee2f) )
947   ROM_LOAD( "14.bin",  0x1c0000, 0x20000, CRC(a69ab4f3) SHA1(bc99c6a587c972cb5c9e719c53ef921a28f1498e) )
1247   ROM_REGION( 0x100000, "gfx1", 0 )   /* Background */
1248   ROM_LOAD16_BYTE( "7.bin",   0x000001, 0x40000, CRC(a8b773f1) SHA1(999e41dfeb3fb937da769c4a33bb29bf4076dc63) )
1249   ROM_LOAD16_BYTE( "8.bin",   0x000000, 0x40000, CRC(617530fc) SHA1(b9155ed0ae1437bf4d0b7a95e769bc05a820ecec) )
1250   ROM_LOAD16_BYTE( "11.bin",  0x080001, 0x40000, CRC(cef0a821) SHA1(c7a35048d5ebf3f09abf9d27f91d12adc03befeb) )
1251   ROM_LOAD16_BYTE( "12.bin",  0x080000, 0x40000, CRC(b84fda09) SHA1(3ae0c0ec6c398dea17e248b017ea3e2f6c3571e1) )
1252   // a second copy of the 2nd half of the above roms? did the bootleg pull the data for one of the layers from here instead?
1253   ROM_LOAD16_BYTE( "9.bin",   0x040001, 0x20000, CRC(2719d7ce) SHA1(35275d32b584c477033037bc041a3687ecca412d) )
1254   ROM_LOAD16_BYTE( "10.bin",  0x040000, 0x20000, CRC(753a4f53) SHA1(c76a449ef29dde671196cda1f128b0b2d4839a97) )
1255   ROM_LOAD16_BYTE( "13.bin",  0x0c0001, 0x20000, CRC(59e01fe1) SHA1(67f5a4e9c9e9ebc6218b7c2ede0e5ff51682ee2f) )
1256   ROM_LOAD16_BYTE( "14.bin",  0x0c0000, 0x20000, CRC(a69ab4f3) SHA1(bc99c6a587c972cb5c9e719c53ef921a28f1498e) )
9481257
9491258   ROM_REGION( 0x400000, "gfx2", 0 )   /* Sprites */
9501259   ROM_LOAD( "34.bin",  0x000000, 0x20000, CRC(5b498f0e) SHA1(9d93ca1f44e1f04eb3b66db6027130683c9431a2) )
r24873r24874
9731282   ROM_LOAD( "4.bin",   0x020000, 0x20000, CRC(1a3a0b39) SHA1(8847530027cf4be03ffbc6d78dee97b459d03a04) )
9741283ROM_END
9751284
1285
1286ROM_START( wwfwfest )
1287   ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU  (68000) */
1288   ROM_LOAD16_BYTE( "31a13-2.ic19", 0x00001, 0x40000, CRC(7175bca7) SHA1(992b47a787b5bc2a5a381ec78b8dfaf7d42c614b) )
1289   ROM_LOAD16_BYTE( "31a14-2.ic18", 0x00000, 0x40000, CRC(5d06bfd1) SHA1(39a93da662158aa5a9953dcabfcb47c2fc196dc7) )
1290
1291   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80)  */
1292   ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) )
1293
1294   ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
1295   ROM_LOAD( "31j10.ic73",   0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) )
1296
1297   ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */
1298   ROM_LOAD( "31a12-0.ic33", 0x00000, 0x20000, CRC(d0803e20) SHA1(b68758e9a5522396f831a3972571f8aed54c64de) )
1299
1300   ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */
1301   ROM_LOAD( "31j3.ic9",     0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */
1302   ROM_LOAD( "31j2.ic8",     0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */
1303   ROM_LOAD( "31j5.ic11",    0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */
1304   ROM_LOAD( "31j4.ic10",    0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */
1305   ROM_LOAD( "31j6.ic12",    0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */
1306   ROM_LOAD( "31j7.ic13",    0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */
1307   ROM_LOAD( "31j9.ic15",    0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */
1308   ROM_LOAD( "31j8.ic14",    0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */
1309
1310   ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */
1311   ROM_LOAD( "31j0.ic1",     0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */
1312   ROM_LOAD( "31j1.ic2",     0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */
1313ROM_END
1314
1315ROM_START( wwfwfesta )
1316   ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU  (68000) */
1317   ROM_LOAD16_BYTE( "wf_18.rom", 0x00000, 0x40000, CRC(933ea1a0) SHA1(61da142cfa7abd3b77ab21979c061a078c0d0c63) )
1318   ROM_LOAD16_BYTE( "wf_19.rom", 0x00001, 0x40000, CRC(bd02e3c4) SHA1(7ae63e48caf9919ce7b63b4c5aa9474ba8c336da) )
1319
1320   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80)  */
1321   ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) )
1322
1323   ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
1324   ROM_LOAD( "31j10.ic73",   0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) )
1325
1326   ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */
1327   ROM_LOAD( "31e12-0.ic33", 0x00000, 0x20000, CRC(06f22615) SHA1(2e9418e372da85ea597977d912d8b35753655f4e) )
1328
1329   ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */
1330   ROM_LOAD( "31j3.ic9",     0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */
1331   ROM_LOAD( "31j2.ic8",     0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */
1332   ROM_LOAD( "31j5.ic11",    0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */
1333   ROM_LOAD( "31j4.ic10",    0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */
1334   ROM_LOAD( "31j6.ic12",    0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */
1335   ROM_LOAD( "31j7.ic13",    0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */
1336   ROM_LOAD( "31j9.ic15",    0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */
1337   ROM_LOAD( "31j8.ic14",    0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */
1338
1339   ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */
1340   ROM_LOAD( "31j0.ic1",     0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */
1341   ROM_LOAD( "31j1.ic2",     0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */
1342ROM_END
1343
1344ROM_START( wwfwfestb )
1345   ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU  (68000) */
1346   ROM_LOAD16_BYTE( "3",      0x00000, 0x40000, CRC(ea73369c) SHA1(be614a342f9014251810fa30ec56fec03f7c8ef3) )
1347   ROM_LOAD16_BYTE( "2",      0x00001, 0x40000, CRC(632bb3a4) SHA1(9c04fed5aeefc683810cfbd9b3318e155ed9813f) )
1348
1349   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80)  */
1350   ROM_LOAD( "1",             0x00000, 0x10000, CRC(d9e8cda2) SHA1(754c73cd341d51ffd35cdb62155a3f061416c9ba) )
1351
1352   ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
1353   ROM_LOAD( "wf_73a.rom",    0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) )
1354
1355   ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */
1356   ROM_LOAD( "4",             0x00000, 0x20000, CRC(520ef575) SHA1(99a5e9b94e9234851c6b504d58939ad84e0d6589) )
1357
1358   ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16) */
1359   ROM_LOAD( "wf_09.rom",    0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */
1360   ROM_LOAD( "wf_08.rom",    0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */
1361   ROM_LOAD( "wf_11.rom",    0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */
1362   ROM_LOAD( "wf_10.rom",    0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */
1363   ROM_LOAD( "wf_12.rom",    0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */
1364   ROM_LOAD( "wf_13.rom",    0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */
1365   ROM_LOAD( "wf_15.rom",    0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */
1366   ROM_LOAD( "wf_14.rom",    0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */
1367
1368   ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */
1369   ROM_LOAD16_BYTE( "5",     0x40000, 0x20000, CRC(35e4d6eb) SHA1(d2a12bde268bc0734e6806ff5302b8c3dcc17280) ) /* 0 */
1370   ROM_LOAD16_BYTE( "6",     0x40001, 0x20000, CRC(a054a5b2) SHA1(d6ed5d5a20acb7cdbaee8e3f520873650529c0ae) ) /* 1 */
1371   ROM_LOAD16_BYTE( "7",     0x00000, 0x20000, CRC(101f0136) SHA1(2ccd641e49cdd3f5243ebe8c52c492842d62f5b8) ) /* 2 */
1372   ROM_LOAD16_BYTE( "8",     0x00001, 0x20000, CRC(7b2ecba7) SHA1(1ed2451132448930ac4afcdc67ca14e3e922863e) ) /* 3 */
1373ROM_END
1374
1375ROM_START( wwfwfestj )
1376   ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU  (68000) */
1377   ROM_LOAD16_BYTE( "31j13-0.ic19", 0x00001, 0x40000, CRC(2147780d) SHA1(9a7a5db06117f3780e084d3f0c7b642ff8a9db55) )
1378   ROM_LOAD16_BYTE( "31j14-0.ic18", 0x00000, 0x40000, CRC(d76fc747) SHA1(5f6819bc61756d1df4ac0776ac420a59c438cf8a) )
1379
1380   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80)  */
1381   ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) )
1382
1383   ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
1384   ROM_LOAD( "31j10.ic73",   0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) )
1385
1386   ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */
1387   ROM_LOAD( "31j12-0.ic33", 0x00000, 0x20000, CRC(f4821fe0) SHA1(e5faa9860e9d4e75393b64ca85a8bfc4852fd4fd) )
1388
1389   ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */
1390   ROM_LOAD( "31j3.ic9",     0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */
1391   ROM_LOAD( "31j2.ic8",     0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */
1392   ROM_LOAD( "31j5.ic11",    0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */
1393   ROM_LOAD( "31j4.ic10",    0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */
1394   ROM_LOAD( "31j6.ic12",    0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */
1395   ROM_LOAD( "31j7.ic13",    0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */
1396   ROM_LOAD( "31j9.ic15",    0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */
1397   ROM_LOAD( "31j8.ic14",    0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */
1398
1399   ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */
1400   ROM_LOAD( "31j0.ic1",     0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */
1401   ROM_LOAD( "31j1.ic2",     0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */
1402ROM_END
1403
1404ROM_START( wwfwfestk )
1405   ROM_REGION( 0x80000, "maincpu", 0 ) /* Main CPU  (68000) */
1406   ROM_LOAD16_BYTE( "31e13-0.ic19", 0x00001, 0x40000, CRC(774a26a7) SHA1(30e00bff9027a0ae971f8820ca6c3e4cdea82994) )
1407   ROM_LOAD16_BYTE( "31e14-0.ic18", 0x00000, 0x40000, CRC(05bbb807) SHA1(1dc2ddd9ae498468a97e002f78e7f3a331d802d1) )
1408
1409   ROM_REGION( 0x10000, "audiocpu", 0 ) /* Sound CPU (Z80)  */
1410   ROM_LOAD( "31a11-2.ic42", 0x00000, 0x10000, CRC(5ddebfea) SHA1(30073963e965250d94f0dc3bd261a054850adf95) )
1411
1412   ROM_REGION( 0x80000, "oki", 0 ) /* ADPCM samples */
1413   ROM_LOAD( "31j10.ic73",   0x00000, 0x80000, CRC(6c522edb) SHA1(8005d59c94160638ba2ea7caf4e991fff03003d5) )
1414
1415   ROM_REGION( 0x20000, "gfx1", 0 ) /* FG0 Tiles (8x8) */
1416   ROM_LOAD( "31e12-0.ic33", 0x00000, 0x20000, CRC(06f22615) SHA1(2e9418e372da85ea597977d912d8b35753655f4e) )
1417
1418   ROM_REGION( 0x800000, "gfx2", 0 ) /* SPR Tiles (16x16), 27080 Mask ROM's */
1419   ROM_LOAD( "31j3.ic9",     0x000000, 0x100000, CRC(e395cf1d) SHA1(241f98145e295993c9b6a44dc087a9b61fbc9a6f) ) /* Tiles 0 */
1420   ROM_LOAD( "31j2.ic8",     0x100000, 0x100000, CRC(b5a97465) SHA1(08d82c29a5c02b83fdbd0bad649b74eb35ab7e54) ) /* Tiles 1 */
1421   ROM_LOAD( "31j5.ic11",    0x200000, 0x100000, CRC(2ce545e8) SHA1(82173e58a8476a6fe9d2c990fce1f71af117a0ea) ) /* Tiles 0 */
1422   ROM_LOAD( "31j4.ic10",    0x300000, 0x100000, CRC(00edb66a) SHA1(926606d1923936b6e75391b1ab03b369d9822d13) ) /* Tiles 1 */
1423   ROM_LOAD( "31j6.ic12",    0x400000, 0x100000, CRC(79956cf8) SHA1(52207263620a6b6dde66d3f8749b772577899ea5) ) /* Tiles 0 */
1424   ROM_LOAD( "31j7.ic13",    0x500000, 0x100000, CRC(74d774c3) SHA1(a723ac5d481bf91b12e17652fbb2d869c886dec0) ) /* Tiles 1 */
1425   ROM_LOAD( "31j9.ic15",    0x600000, 0x100000, CRC(dd387289) SHA1(2cad42d4e7cd1a49346f844058ae18c38bc686a8) ) /* Tiles 0 */
1426   ROM_LOAD( "31j8.ic14",    0x700000, 0x100000, CRC(44abe127) SHA1(c723e1dea117534e976d2d383e634faf073cd57b) ) /* Tiles 1 */
1427
1428   ROM_REGION( 0x80000, "gfx3", 0 ) /* BG0 / BG1 Tiles (16x16) */
1429   ROM_LOAD( "31j0.ic1",     0x40000, 0x40000, CRC(8a12b450) SHA1(2e15c949efcda8bb6f11afe3ff07ba1dee9c771c) ) /* 0,1 */
1430   ROM_LOAD( "31j1.ic2",     0x00000, 0x40000, CRC(82ed7155) SHA1(b338e1150ffe3277c11d4d6e801a7d3bd7c58492) ) /* 2,3 */
1431ROM_END
1432
1433
9761434/*************************************
9771435 *
9781436 *  Game driver(s)
r24873r24874
9831441GAME( 1990, ddragon3j,ddragon3, ddragon3, ddragon3, driver_device, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (Japan)", GAME_SUPPORTS_SAVE )
9841442GAME( 1990, ddragon3p,ddragon3, ddragon3, ddragon3, driver_device, 0, ROT0, "Technos Japan", "Double Dragon 3 - The Rosetta Stone (prototype)", GAME_SUPPORTS_SAVE )
9851443GAME( 1990, ddragon3b,ddragon3, ddragon3b,ddragon3b, driver_device,0, ROT0, "bootleg", "Double Dragon 3 - The Rosetta Stone (bootleg)", GAME_SUPPORTS_SAVE )
1444
9861445GAME( 1990, ctribe,   0,        ctribe,   ctribe, driver_device,   0, ROT0, "Technos Japan", "The Combatribes (US)", GAME_SUPPORTS_SAVE )
9871446GAME( 1990, ctribe1,  ctribe,   ctribe,   ctribe, driver_device,   0, ROT0, "Technos Japan", "The Combatribes (US set 1?)", GAME_SUPPORTS_SAVE )
9881447GAME( 1990, ctribej,  ctribe,   ctribe,   ctribe, driver_device,   0, ROT0, "Technos Japan", "The Combatribes (Japan)", GAME_SUPPORTS_SAVE )
9891448GAME( 1990, ctribeb,  ctribe,   ctribe,   ctribeb, driver_device,  0, ROT0, "bootleg", "The Combatribes (bootleg set 1)", GAME_SUPPORTS_SAVE )
9901449GAME( 1990, ctribeb2, ctribe,   ctribe,   ctribeb, driver_device,  0, ROT0, "bootleg", "The Combatribes (bootleg set 2)", GAME_SUPPORTS_SAVE )
1450
1451GAME( 1991, wwfwfest,  0,        wwfwfest, wwfwfest,  driver_device, 0, ROT0, "Technos Japan",                 "WWF WrestleFest (US set 1)",   GAME_SUPPORTS_SAVE )
1452GAME( 1991, wwfwfesta, wwfwfest, wwfwfest, wwfwfest,  driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (US Tecmo)",   GAME_SUPPORTS_SAVE )
1453GAME( 1991, wwfwfestb, wwfwfest, wwfwfstb, wwfwfest,  driver_device, 0, ROT0, "bootleg",                       "WWF WrestleFest (US bootleg)", GAME_SUPPORTS_SAVE )
1454GAME( 1991, wwfwfestj, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Japan)",      GAME_SUPPORTS_SAVE )
1455GAME( 1991, wwfwfestk, wwfwfest, wwfwfest, wwfwfesta, driver_device, 0, ROT0, "Technos Japan (Tecmo license)", "WWF WrestleFest (Korea)",      GAME_SUPPORTS_SAVE )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team