trunk/src/mame/includes/rohga.h
| r29432 | r29433 | |
| 69 | 69 | DECLARE_DRIVER_INIT(nitrobal); |
| 70 | 70 | DECLARE_DRIVER_INIT(schmeisr); |
| 71 | 71 | DECLARE_DRIVER_INIT(rohga); |
| 72 | | DECLARE_VIDEO_START(rohga); |
| 73 | 72 | DECLARE_VIDEO_START(wizdfire); |
| 74 | | DECLARE_VIDEO_START(schmeisr); |
| 75 | 73 | UINT32 screen_update_rohga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 76 | 74 | UINT32 screen_update_wizdfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 77 | 75 | UINT32 screen_update_nitrobal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 78 | 76 | void mixwizdfirelayer(bitmap_rgb32 &bitmap, const rectangle &cliprect, int gfxregion, UINT16 pri, UINT16 primask); |
| 79 | 77 | DECO16IC_BANK_CB_MEMBER(bank_callback); |
| 78 | DECOSPR_PRIORITY_CB_MEMBER(rohga_pri_callback); |
| 79 | DECOSPR_COLOUR_CB_MEMBER(rohga_col_callback); |
| 80 | DECOSPR_COLOUR_CB_MEMBER(schmeisr_col_callback); |
| 80 | 81 | |
| 81 | 82 | READ16_MEMBER( nb_protection_region_0_146_r ); |
| 82 | 83 | WRITE16_MEMBER( nb_protection_region_0_146_w ); |
| 83 | 84 | READ16_MEMBER( wf_protection_region_0_104_r ); |
| 84 | 85 | WRITE16_MEMBER( wf_protection_region_0_104_w ); |
| 85 | 86 | }; |
| 86 | | /*----------- defined in video/rohga.c -----------*/ |
| 87 | | UINT16 rohga_pri_callback(UINT16 x); |
| 88 | | UINT16 schmeisr_col_callback(UINT16 x); |
| 89 | | UINT16 rohga_col_callback(UINT16 x); |
trunk/src/mame/video/decospr.c
| r29432 | r29433 | |
| 131 | 131 | #include "emu.h" |
| 132 | 132 | #include "decospr.h" |
| 133 | 133 | |
| 134 | | UINT16 decospr_default_colour_callback(UINT16 col) |
| 134 | DECOSPR_COLOUR_CB_MEMBER(decospr_device::default_col_cb) |
| 135 | 135 | { |
| 136 | 136 | return (col >> 9) & 0x1f; |
| 137 | 137 | } |
| r29432 | r29433 | |
| 143 | 143 | // printf("decospr_device::set_gfx_region()\n"); |
| 144 | 144 | } |
| 145 | 145 | |
| 146 | | void decospr_device::set_pri_callback(device_t &device, decospr_priority_callback_func callback) |
| 147 | | { |
| 148 | | decospr_device &dev = downcast<decospr_device &>(device); |
| 149 | | dev.m_pricallback = callback; |
| 150 | | } |
| 151 | | |
| 152 | | void decospr_device::set_col_callback(device_t &device, decospr_colour_callback_func callback) |
| 153 | | { |
| 154 | | decospr_device &dev = downcast<decospr_device &>(device); |
| 155 | | dev.m_colcallback = callback; |
| 156 | | } |
| 157 | | |
| 158 | | |
| 159 | | |
| 160 | 146 | const device_type DECO_SPRITE = &device_creator<decospr_device>; |
| 161 | 147 | |
| 162 | 148 | decospr_device::decospr_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 163 | 149 | : device_t(mconfig, DECO_SPRITE, "decospr_device", tag, owner, clock, "decospr", __FILE__), |
| 164 | 150 | device_video_interface(mconfig, *this), |
| 165 | 151 | m_gfxregion(0), |
| 166 | | m_pricallback(NULL), |
| 167 | | m_colcallback(decospr_default_colour_callback), |
| 168 | 152 | m_is_bootleg(false), |
| 169 | 153 | m_x_offset(0), |
| 170 | 154 | m_y_offset(0), |
| r29432 | r29433 | |
| 173 | 157 | m_gfxdecode(*this), |
| 174 | 158 | m_palette(*this) |
| 175 | 159 | { |
| 160 | // default color callback |
| 161 | m_col_cb = decospr_col_cb_delegate(FUNC(decospr_device::default_col_cb), this); |
| 176 | 162 | } |
| 177 | 163 | |
| 178 | 164 | //------------------------------------------------- |
| r29432 | r29433 | |
| 187 | 173 | |
| 188 | 174 | void decospr_device::device_start() |
| 189 | 175 | { |
| 190 | | // printf("decospr_device::device_start()\n"); |
| 176 | m_pri_cb.bind_relative_to(*owner()); |
| 177 | m_col_cb.bind_relative_to(*owner()); |
| 178 | |
| 191 | 179 | m_alt_format = 0; |
| 192 | 180 | m_pixmask = 0xf; |
| 193 | 181 | m_raw_shift = 4; // set to 8 on tattass / nslashers for the custom mixing (because they have 5bpp sprites, and shifting by 4 isn't good enough) |
| r29432 | r29433 | |
| 203 | 191 | m_screen->register_screen_bitmap(m_sprite_bitmap); |
| 204 | 192 | } |
| 205 | 193 | |
| 206 | | void decospr_device::set_pri_callback(decospr_priority_callback_func callback) |
| 207 | | { |
| 208 | | m_pricallback = callback; |
| 209 | | } |
| 210 | | |
| 211 | | void decospr_device::set_col_callback(decospr_priority_callback_func callback) |
| 212 | | { |
| 213 | | m_colcallback = callback; |
| 214 | | } |
| 215 | | |
| 216 | | |
| 217 | 194 | template<class _BitmapClass> |
| 218 | 195 | void decospr_device::draw_sprites_common(_BitmapClass &bitmap, const rectangle &cliprect, UINT16* spriteram, int sizewords, bool invert_flip ) |
| 219 | 196 | { |
| 220 | 197 | //printf("cliprect %04x, %04x\n", cliprect.min_y, cliprect.max_y); |
| 221 | 198 | |
| 222 | | if (m_sprite_bitmap.valid() && m_pricallback) |
| 223 | | fatalerror("m_sprite_bitmap && m_pricallback is invalid\n"); |
| 199 | if (m_sprite_bitmap.valid() && !m_pri_cb.isnull()) |
| 200 | fatalerror("m_sprite_bitmap && m_pri_cb is invalid\n"); |
| 224 | 201 | |
| 225 | 202 | if (m_sprite_bitmap.valid()) |
| 226 | 203 | m_sprite_bitmap.fill(0, cliprect); |
| r29432 | r29433 | |
| 234 | 211 | flipscreen = !flipscreen; |
| 235 | 212 | |
| 236 | 213 | |
| 237 | | if (m_pricallback) |
| 214 | if (!m_pri_cb.isnull()) |
| 238 | 215 | { |
| 239 | 216 | offs = sizewords-4; |
| 240 | 217 | end = -4; |
| r29432 | r29433 | |
| 265 | 242 | |
| 266 | 243 | if (!m_sprite_bitmap.valid()) |
| 267 | 244 | { |
| 268 | | colour = m_colcallback(x); |
| 245 | colour = m_col_cb(x); |
| 269 | 246 | } |
| 270 | 247 | else |
| 271 | 248 | { |
| r29432 | r29433 | |
| 274 | 251 | } |
| 275 | 252 | |
| 276 | 253 | |
| 277 | | if (m_pricallback) |
| 278 | | pri = m_pricallback(x); |
| 254 | if (!m_pri_cb.isnull()) |
| 255 | pri = m_pri_cb(x); |
| 279 | 256 | else |
| 280 | 257 | pri = 0; |
| 281 | 258 | |
| r29432 | r29433 | |
| 355 | 332 | { |
| 356 | 333 | if ((ypos<=cliprect.max_y) && (ypos>=(cliprect.min_y)-16)) |
| 357 | 334 | { |
| 358 | | if (m_pricallback) |
| 335 | if (!m_pri_cb.isnull()) |
| 359 | 336 | m_gfxdecode->gfx(m_gfxregion)->prio_transpen(bitmap,cliprect, |
| 360 | 337 | sprite - multi * inc, |
| 361 | 338 | colour, |
| r29432 | r29433 | |
| 374 | 351 | // double wing uses this flag |
| 375 | 352 | if (w) |
| 376 | 353 | { |
| 377 | | if (m_pricallback) |
| 354 | if (!m_pri_cb.isnull()) |
| 378 | 355 | m_gfxdecode->gfx(m_gfxregion)->prio_transpen(bitmap,cliprect, |
| 379 | 356 | (sprite - multi * inc)-mult2, |
| 380 | 357 | colour, |
| r29432 | r29433 | |
| 423 | 400 | sprite = spriteram[offs+3] & 0xffff; |
| 424 | 401 | |
| 425 | 402 | |
| 426 | | if (m_pricallback) |
| 427 | | pri = m_pricallback(spriteram[offs+2]&0x00ff); |
| 403 | if (!m_pri_cb.isnull()) |
| 404 | pri = m_pri_cb(spriteram[offs+2]&0x00ff); |
| 428 | 405 | else |
| 429 | 406 | pri = 0; |
| 430 | 407 | |
| r29432 | r29433 | |
| 474 | 451 | { |
| 475 | 452 | if(!m_sprite_bitmap.valid()) |
| 476 | 453 | { |
| 477 | | if (m_pricallback) |
| 454 | if (!m_pri_cb.isnull()) |
| 478 | 455 | { |
| 479 | 456 | ypos = y + mult2 * (h-yy); |
| 480 | 457 | |
trunk/src/mame/video/decospr.h
| r29432 | r29433 | |
| 1 | 1 | |
| 2 | | typedef UINT16 (*decospr_priority_callback_func)(UINT16 pri); |
| 3 | | typedef UINT16 (*decospr_colour_callback_func)(UINT16 col); |
| 2 | typedef device_delegate<UINT16 (UINT16 pri)> decospr_pri_cb_delegate; |
| 3 | typedef device_delegate<UINT16 (UINT16 col)> decospr_col_cb_delegate; |
| 4 | 4 | |
| 5 | |
| 6 | // function definition for a callback |
| 7 | #define DECOSPR_PRIORITY_CB_MEMBER(_name) UINT16 _name(UINT16 pri) |
| 8 | #define DECOSPR_COLOUR_CB_MEMBER(_name) UINT16 _name(UINT16 col) |
| 9 | |
| 10 | |
| 5 | 11 | class decospr_device : public device_t, |
| 6 | 12 | public device_video_interface |
| 7 | 13 | { |
| r29432 | r29433 | |
| 12 | 18 | static void static_set_gfxdecode_tag(device_t &device, const char *tag); |
| 13 | 19 | static void static_set_palette_tag(device_t &device, const char *tag); |
| 14 | 20 | static void set_gfx_region(device_t &device, int gfxregion); |
| 15 | | static void set_pri_callback(device_t &device, decospr_priority_callback_func callback); |
| 16 | | static void set_col_callback(device_t &device, decospr_colour_callback_func callback); |
| 17 | | |
| 18 | | static void set_is_bootleg(device_t &device, bool is_bootleg) |
| 19 | | { |
| 20 | | decospr_device &dev = downcast<decospr_device &>(device); |
| 21 | | dev.m_is_bootleg = is_bootleg; |
| 22 | | } |
| 23 | | |
| 21 | static void set_pri_callback(device_t &device, decospr_pri_cb_delegate callback) { downcast<decospr_device &>(device).m_pri_cb = callback; } |
| 22 | static void set_col_callback(device_t &device, decospr_col_cb_delegate callback) { downcast<decospr_device &>(device).m_col_cb = callback; } |
| 23 | static void set_is_bootleg(device_t &device, bool is_bootleg) { downcast<decospr_device &>(device).m_is_bootleg = is_bootleg; } |
| 24 | static void set_flipallx(device_t &device, int flipallx) { downcast<decospr_device &>(device).m_flipallx = flipallx; } |
| 25 | static void set_transpen(device_t &device, int transpen) { downcast<decospr_device &>(device).m_transpen = transpen; } |
| 24 | 26 | static void set_offsets(device_t &device, int x_offset, int y_offset) |
| 25 | 27 | { |
| 26 | 28 | decospr_device &dev = downcast<decospr_device &>(device); |
| r29432 | r29433 | |
| 28 | 30 | dev.m_y_offset = y_offset; |
| 29 | 31 | } |
| 30 | 32 | |
| 31 | | static void set_flipallx(device_t &device, int flipallx) |
| 32 | | { |
| 33 | | decospr_device &dev = downcast<decospr_device &>(device); |
| 34 | | dev.m_flipallx = flipallx; |
| 35 | | } |
| 36 | | |
| 37 | | static void set_transpen(device_t &device, int transpen) |
| 38 | | { |
| 39 | | decospr_device &dev = downcast<decospr_device &>(device); |
| 40 | | dev.m_transpen = transpen; |
| 41 | | } |
| 42 | | |
| 43 | | |
| 44 | 33 | void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16* spriteram, int sizewords, bool invert_flip = false ); |
| 45 | 34 | void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, UINT16* spriteram, int sizewords, bool invert_flip = false ); |
| 46 | | void set_pri_callback(decospr_priority_callback_func callback); |
| 47 | | void set_col_callback(decospr_colour_callback_func callback); |
| 48 | | void set_gfxregion(int region) { m_gfxregion = region; }; |
| 49 | 35 | void set_alt_format(bool alt) { m_alt_format = alt; }; |
| 50 | 36 | void set_pix_mix_mask(UINT16 mask) { m_pixmask = mask; }; |
| 51 | 37 | void set_pix_raw_shift(UINT16 shift) { m_raw_shift = shift; }; |
| 52 | | void set_is_bootleg(bool is_bootleg) { m_is_bootleg = is_bootleg; }; |
| 53 | | void set_offsets(int x_offset, int y_offset) { m_x_offset = x_offset; m_y_offset = y_offset; }; |
| 54 | | void set_flipallx(int flipallx) { m_flipallx = flipallx; }; |
| 55 | | void set_transpen(int transpen) { m_transpen = transpen; }; |
| 56 | 38 | |
| 57 | 39 | void alloc_sprite_bitmap(); |
| 58 | 40 | void inefficient_copy_sprite_bitmap(bitmap_rgb32 &bitmap, const rectangle &cliprect, UINT16 pri, UINT16 priority_mask, UINT16 colbase, UINT16 palmask, UINT8 alpha = 0xff); |
| 59 | 41 | bitmap_ind16& get_sprite_temp_bitmap() { assert(m_sprite_bitmap.valid()); return m_sprite_bitmap; }; |
| 60 | 42 | |
| 43 | DECOSPR_PRIORITY_CB_MEMBER(default_col_cb); |
| 44 | |
| 61 | 45 | protected: |
| 62 | 46 | virtual void device_start(); |
| 63 | 47 | virtual void device_reset(); |
| 64 | | UINT8 m_gfxregion; |
| 65 | | decospr_priority_callback_func m_pricallback; |
| 66 | | decospr_colour_callback_func m_colcallback; |
| 48 | UINT8 m_gfxregion; |
| 49 | decospr_pri_cb_delegate m_pri_cb; |
| 50 | decospr_col_cb_delegate m_col_cb; |
| 67 | 51 | bitmap_ind16 m_sprite_bitmap;// optional sprite bitmap (should be INDEXED16) |
| 68 | 52 | bool m_alt_format; |
| 69 | 53 | UINT16 m_pixmask; |
| r29432 | r29433 | |
| 84 | 68 | |
| 85 | 69 | extern const device_type DECO_SPRITE; |
| 86 | 70 | |
| 71 | #define MCFG_DECO_SPRITE_GFX_REGION(_region) \ |
| 72 | decospr_device::set_gfx_region(*device, _region); |
| 73 | |
| 74 | #define MCFG_DECO_SPRITE_PRIORITY_CB(_class, _method) \ |
| 75 | decospr_device::set_pri_callback(*device, decospr_pri_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); |
| 76 | |
| 77 | #define MCFG_DECO_SPRITE_COLOUR_CB(_class, _method) \ |
| 78 | decospr_device::set_col_callback(*device, decospr_col_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); |
| 79 | |
| 80 | #define MCFG_DECO_SPRITE_ISBOOTLEG(_boot) \ |
| 81 | decospr_device::set_is_bootleg(*device, _boot); |
| 82 | |
| 83 | #define MCFG_DECO_SPRITE_FLIPALLX(_flip) \ |
| 84 | decospr_device::set_flipallx(*device, _flip); |
| 85 | |
| 86 | #define MCFG_DECO_SPRITE_TRANSPEN(_pen) \ |
| 87 | decospr_device::set_transpen(*device, _pen); |
| 88 | |
| 89 | #define MCFG_DECO_SPRITE_OFFSETS(_xoffs, _yoffs) \ |
| 90 | decospr_device::set_offsets(*device, _xoffs, _yoffs); |
| 91 | |
| 87 | 92 | #define MCFG_DECO_SPRITE_GFXDECODE(_gfxtag) \ |
| 88 | 93 | decospr_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); |
| 89 | 94 | |
trunk/src/mame/drivers/cninja.c
| r29432 | r29433 | |
| 808 | 808 | } |
| 809 | 809 | |
| 810 | 810 | |
| 811 | | void cninja_state::machine_start() |
| 811 | DECOSPR_PRIORITY_CB_MEMBER(cninja_state::pri_callback) |
| 812 | 812 | { |
| 813 | | save_item(NAME(m_scanline)); |
| 814 | | save_item(NAME(m_irq_mask)); |
| 815 | | } |
| 816 | | |
| 817 | | void cninja_state::machine_reset() |
| 818 | | { |
| 819 | | m_scanline = 0; |
| 820 | | m_irq_mask = 0; |
| 821 | | } |
| 822 | | |
| 823 | | |
| 824 | | UINT16 cninja_pri_callback(UINT16 x) |
| 825 | | { |
| 826 | 813 | /* Sprite/playfield priority */ |
| 827 | | switch (x & 0xc000) |
| 814 | switch (pri & 0xc000) |
| 828 | 815 | { |
| 829 | 816 | case 0x0000: return 0; |
| 830 | 817 | case 0x4000: return 0xf0; |
| 831 | 818 | case 0x8000: return 0xf0 | 0xcc; |
| 832 | 819 | case 0xc000: return 0xf0 | 0xcc; /* Perhaps 0xf0|0xcc|0xaa (Sprite under bottom layer) */ |
| 833 | 820 | } |
| 834 | | |
| 821 | |
| 835 | 822 | return 0; |
| 836 | 823 | } |
| 837 | 824 | |
| 838 | 825 | |
| 826 | void cninja_state::machine_start() |
| 827 | { |
| 828 | save_item(NAME(m_scanline)); |
| 829 | save_item(NAME(m_irq_mask)); |
| 830 | } |
| 831 | |
| 832 | void cninja_state::machine_reset() |
| 833 | { |
| 834 | m_scanline = 0; |
| 835 | m_irq_mask = 0; |
| 836 | } |
| 837 | |
| 839 | 838 | static MACHINE_CONFIG_START( cninja, cninja_state ) |
| 840 | 839 | |
| 841 | 840 | /* basic machine hardware */ |
| r29432 | r29433 | |
| 896 | 895 | MCFG_DECO16IC_PALETTE("palette") |
| 897 | 896 | |
| 898 | 897 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 899 | | decospr_device::set_gfx_region(*device, 3); |
| 900 | | decospr_device::set_pri_callback(*device, cninja_pri_callback); |
| 898 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 899 | MCFG_DECO_SPRITE_PRIORITY_CB(cninja_state, pri_callback) |
| 901 | 900 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 902 | 901 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 903 | 902 | |
| r29432 | r29433 | |
| 986 | 985 | MCFG_DECO16IC_PALETTE("palette") |
| 987 | 986 | |
| 988 | 987 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 989 | | decospr_device::set_gfx_region(*device, 3); |
| 990 | | decospr_device::set_pri_callback(*device, cninja_pri_callback); |
| 988 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 989 | MCFG_DECO_SPRITE_PRIORITY_CB(cninja_state, pri_callback) |
| 991 | 990 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 992 | 991 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 993 | 992 | |
| r29432 | r29433 | |
| 1143 | 1142 | MCFG_DECO16IC_PALETTE("palette") |
| 1144 | 1143 | |
| 1145 | 1144 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 1146 | | decospr_device::set_gfx_region(*device, 3); |
| 1147 | | decospr_device::set_pri_callback(*device, cninja_pri_callback); |
| 1145 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 1146 | MCFG_DECO_SPRITE_PRIORITY_CB(cninja_state, pri_callback) |
| 1148 | 1147 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 1149 | 1148 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 1150 | 1149 | |
| r29432 | r29433 | |
| 1231 | 1230 | MCFG_DECO16IC_PALETTE("palette") |
| 1232 | 1231 | |
| 1233 | 1232 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 1234 | | decospr_device::set_gfx_region(*device, 3); |
| 1235 | | decospr_device::set_pri_callback(*device, cninja_pri_callback); |
| 1233 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 1234 | MCFG_DECO_SPRITE_PRIORITY_CB(cninja_state, pri_callback) |
| 1236 | 1235 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 1237 | 1236 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 1238 | 1237 | |
| r29432 | r29433 | |
| 1325 | 1324 | MCFG_DECO16IC_PALETTE("palette") |
| 1326 | 1325 | |
| 1327 | 1326 | MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) |
| 1328 | | decospr_device::set_gfx_region(*device, 3); |
| 1327 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 1329 | 1328 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 1330 | 1329 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 1331 | 1330 | |
| 1332 | 1331 | MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) |
| 1333 | | decospr_device::set_gfx_region(*device, 4); |
| 1332 | MCFG_DECO_SPRITE_GFX_REGION(4) |
| 1334 | 1333 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 1335 | 1334 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 1336 | 1335 | |
trunk/src/mame/drivers/dblewing.c
| r29432 | r29433 | |
| 114 | 114 | UINT32 screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 115 | 115 | |
| 116 | 116 | DECO16IC_BANK_CB_MEMBER(bank_callback); |
| 117 | DECOSPR_PRIORITY_CB_MEMBER(pri_callback); |
| 117 | 118 | void dblewing_sound_cb( address_space &space, UINT16 data, UINT16 mem_mask ); |
| 118 | 119 | |
| 119 | 120 | READ16_MEMBER( wf_protection_region_0_104_r ); |
| 120 | 121 | WRITE16_MEMBER( wf_protection_region_0_104_w ); |
| 121 | 122 | }; |
| 122 | 123 | |
| 123 | | UINT16 dblwings_pri_callback(UINT16 x) |
| 124 | | { |
| 125 | | return 0; // sprites always on top? |
| 126 | | } |
| 127 | 124 | |
| 128 | | |
| 129 | | |
| 130 | 125 | UINT32 dblewing_state::screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 131 | 126 | { |
| 132 | 127 | address_space &space = generic_space(); |
| r29432 | r29433 | |
| 337 | 332 | return ((bank >> 4) & 0x7) * 0x1000; |
| 338 | 333 | } |
| 339 | 334 | |
| 335 | DECOSPR_PRIORITY_CB_MEMBER(dblewing_state::pri_callback) |
| 336 | { |
| 337 | return 0; // sprites always on top? |
| 338 | } |
| 339 | |
| 340 | |
| 340 | 341 | void dblewing_state::machine_start() |
| 341 | 342 | { |
| 342 | 343 | save_item(NAME(m_sound_irq)); |
| r29432 | r29433 | |
| 398 | 399 | MCFG_DECO16IC_PALETTE("palette") |
| 399 | 400 | |
| 400 | 401 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 401 | | decospr_device::set_gfx_region(*device, 2); |
| 402 | | decospr_device::set_pri_callback(*device, dblwings_pri_callback); |
| 402 | MCFG_DECO_SPRITE_GFX_REGION(2) |
| 403 | MCFG_DECO_SPRITE_PRIORITY_CB(dblewing_state, pri_callback) |
| 403 | 404 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 404 | 405 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 405 | 406 | |
trunk/src/mame/drivers/esd16.c
| r29432 | r29433 | |
| 592 | 592 | m_tilemap0_color = 0; |
| 593 | 593 | } |
| 594 | 594 | |
| 595 | | UINT16 esd16_state::hedpanic_pri_callback(UINT16 x) |
| 595 | DECOSPR_PRIORITY_CB_MEMBER(esd16_state::hedpanic_pri_callback) |
| 596 | 596 | { |
| 597 | | if (x & 0x8000) |
| 597 | if (pri & 0x8000) |
| 598 | 598 | return 0xfffe; // under "tilemap 1" |
| 599 | 599 | else |
| 600 | 600 | return 0; // above everything |
| r29432 | r29433 | |
| 623 | 623 | MCFG_SCREEN_PALETTE("palette") |
| 624 | 624 | |
| 625 | 625 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 626 | | decospr_device::set_gfx_region(*device, 0); |
| 627 | | decospr_device::set_is_bootleg(*device, true); |
| 628 | | decospr_device::set_pri_callback(*device, esd16_state::hedpanic_pri_callback); |
| 629 | | decospr_device::set_flipallx(*device, 1); |
| 626 | MCFG_DECO_SPRITE_GFX_REGION(0) |
| 627 | MCFG_DECO_SPRITE_ISBOOTLEG(true) |
| 628 | MCFG_DECO_SPRITE_PRIORITY_CB(esd16_state, hedpanic_pri_callback) |
| 629 | MCFG_DECO_SPRITE_FLIPALLX(1) |
| 630 | 630 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 631 | 631 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 632 | 632 | |
| r29432 | r29433 | |
| 679 | 679 | |
| 680 | 680 | static MACHINE_CONFIG_DERIVED( hedpanic, hedpanio ) |
| 681 | 681 | MCFG_DEVICE_MODIFY("spritegen") |
| 682 | | decospr_device::set_offsets(*device, -0x18,-0x100); |
| 682 | MCFG_DECO_SPRITE_OFFSETS(-0x18, -0x100) |
| 683 | 683 | MACHINE_CONFIG_END |
| 684 | 684 | |
| 685 | 685 | /* ESD 08-26-1999 PCBs with different memory maps */ |
trunk/src/mame/drivers/rohga.c
| r29432 | r29433 | |
| 764 | 764 | return ((bank >> 4) & 0x3) << 12; |
| 765 | 765 | } |
| 766 | 766 | |
| 767 | DECOSPR_PRIORITY_CB_MEMBER(rohga_state::rohga_pri_callback) |
| 768 | { |
| 769 | switch (pri & 0x6000) |
| 770 | { |
| 771 | case 0x0000: return 0; |
| 772 | case 0x4000: return 0xf0; |
| 773 | case 0x6000: return 0xf0 | 0xcc; |
| 774 | case 0x2000: return 0;//0xf0|0xcc; /* Perhaps 0xf0|0xcc|0xaa (Sprite under bottom layer) */ |
| 775 | } |
| 776 | |
| 777 | return 0; |
| 778 | } |
| 779 | |
| 780 | DECOSPR_COLOUR_CB_MEMBER(rohga_state::rohga_col_callback) |
| 781 | { |
| 782 | return (col >> 9) & 0xf; |
| 783 | } |
| 784 | |
| 785 | DECOSPR_COLOUR_CB_MEMBER(rohga_state::schmeisr_col_callback) |
| 786 | { |
| 787 | UINT16 colour = ((col >> 9) & 0xf) << 2; |
| 788 | if (col & 0x8000) |
| 789 | colour++; |
| 790 | |
| 791 | return colour; |
| 792 | } |
| 793 | |
| 767 | 794 | static MACHINE_CONFIG_START( rohga, rohga_state ) |
| 768 | 795 | |
| 769 | 796 | /* basic machine hardware */ |
| r29432 | r29433 | |
| 788 | 815 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", rohga) |
| 789 | 816 | MCFG_PALETTE_ADD("palette", 2048) |
| 790 | 817 | |
| 791 | | MCFG_VIDEO_START_OVERRIDE(rohga_state,rohga) |
| 792 | | |
| 793 | 818 | MCFG_DECOCOMN_ADD("deco_common") |
| 794 | 819 | MCFG_DECOCOMN_PALETTE("palette") |
| 795 | 820 | |
| r29432 | r29433 | |
| 826 | 851 | MCFG_DECO16IC_PALETTE("palette") |
| 827 | 852 | |
| 828 | 853 | MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) |
| 829 | | decospr_device::set_gfx_region(*device, 3); |
| 854 | MCFG_DECO_SPRITE_PRIORITY_CB(rohga_state, rohga_pri_callback) |
| 855 | MCFG_DECO_SPRITE_COLOUR_CB(rohga_state, rohga_col_callback) |
| 856 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 830 | 857 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 831 | 858 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 832 | 859 | |
| r29432 | r29433 | |
| 910 | 937 | MCFG_DECO16IC_PALETTE("palette") |
| 911 | 938 | |
| 912 | 939 | MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) |
| 913 | | decospr_device::set_gfx_region(*device, 3); |
| 940 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 914 | 941 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 915 | 942 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 916 | 943 | |
| 917 | 944 | MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) |
| 918 | | decospr_device::set_gfx_region(*device, 4); |
| 945 | MCFG_DECO_SPRITE_GFX_REGION(4) |
| 919 | 946 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 920 | 947 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 921 | 948 | |
| 922 | 949 | MCFG_DECO104_ADD("ioprot104") |
| 923 | 950 | MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE |
| 924 | 951 | |
| 925 | | MCFG_VIDEO_START_OVERRIDE(rohga_state,wizdfire) |
| 952 | MCFG_VIDEO_START_OVERRIDE(rohga_state, wizdfire) |
| 926 | 953 | |
| 927 | 954 | /* sound hardware */ |
| 928 | 955 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| r29432 | r29433 | |
| 1002 | 1029 | MCFG_DECO16IC_PALETTE("palette") |
| 1003 | 1030 | |
| 1004 | 1031 | MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) |
| 1005 | | decospr_device::set_gfx_region(*device, 3); |
| 1032 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 1006 | 1033 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 1007 | 1034 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 1008 | 1035 | |
| 1009 | 1036 | MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) |
| 1010 | | decospr_device::set_gfx_region(*device, 4); |
| 1037 | MCFG_DECO_SPRITE_GFX_REGION(4) |
| 1011 | 1038 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 1012 | 1039 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 1013 | 1040 | |
| 1014 | | MCFG_VIDEO_START_OVERRIDE(rohga_state,wizdfire) |
| 1041 | MCFG_VIDEO_START_OVERRIDE(rohga_state, wizdfire) |
| 1015 | 1042 | |
| 1016 | 1043 | MCFG_DECO146_ADD("ioprot") |
| 1017 | 1044 | MCFG_DECO146_SET_INTERFACE_SCRAMBLE_REVERSE |
| r29432 | r29433 | |
| 1060 | 1087 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", schmeisr) |
| 1061 | 1088 | MCFG_PALETTE_ADD("palette", 2048) |
| 1062 | 1089 | |
| 1063 | | MCFG_VIDEO_START_OVERRIDE(rohga_state,schmeisr) |
| 1064 | | |
| 1065 | 1090 | MCFG_DECOCOMN_ADD("deco_common") |
| 1066 | 1091 | MCFG_DECOCOMN_PALETTE("palette") |
| 1067 | 1092 | |
| r29432 | r29433 | |
| 1098 | 1123 | MCFG_DECO16IC_PALETTE("palette") |
| 1099 | 1124 | |
| 1100 | 1125 | MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) |
| 1101 | | decospr_device::set_gfx_region(*device, 3); |
| 1126 | MCFG_DECO_SPRITE_PRIORITY_CB(rohga_state, rohga_pri_callback) |
| 1127 | MCFG_DECO_SPRITE_COLOUR_CB(rohga_state, schmeisr_col_callback) // wire mods on pcb... |
| 1128 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 1102 | 1129 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 1103 | 1130 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 1104 | 1131 | |
trunk/src/mame/drivers/deco156.c
| r29432 | r29433 | |
| 66 | 66 | void descramble_sound( const char *tag ); |
| 67 | 67 | DECLARE_WRITE_LINE_MEMBER(sound_irq_gen); |
| 68 | 68 | DECO16IC_BANK_CB_MEMBER(bank_callback); |
| 69 | DECOSPR_PRIORITY_CB_MEMBER(pri_callback); |
| 69 | 70 | }; |
| 70 | 71 | |
| 71 | 72 | |
| r29432 | r29433 | |
| 327 | 328 | return ((bank >> 4) & 0x7) * 0x1000; |
| 328 | 329 | } |
| 329 | 330 | |
| 330 | | UINT16 deco156_pri_callback(UINT16 x) |
| 331 | DECOSPR_PRIORITY_CB_MEMBER(deco156_state::pri_callback) |
| 331 | 332 | { |
| 332 | | switch (x & 0xc000) |
| 333 | switch (pri & 0xc000) |
| 333 | 334 | { |
| 334 | 335 | case 0x0000: return 0; |
| 335 | 336 | case 0x4000: return 0xf0; |
| r29432 | r29433 | |
| 340 | 341 | return 0; |
| 341 | 342 | } |
| 342 | 343 | |
| 343 | | |
| 344 | 344 | static MACHINE_CONFIG_START( hvysmsh, deco156_state ) |
| 345 | 345 | |
| 346 | 346 | /* basic machine hardware */ |
| r29432 | r29433 | |
| 377 | 377 | MCFG_DECO16IC_PALETTE("palette") |
| 378 | 378 | |
| 379 | 379 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 380 | | decospr_device::set_gfx_region(*device, 2); |
| 381 | | decospr_device::set_pri_callback(*device, deco156_pri_callback); |
| 380 | MCFG_DECO_SPRITE_GFX_REGION(2) |
| 381 | MCFG_DECO_SPRITE_PRIORITY_CB(deco156_state, pri_callback) |
| 382 | 382 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 383 | 383 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 384 | 384 | |
| r29432 | r29433 | |
| 430 | 430 | MCFG_DECO16IC_PALETTE("palette") |
| 431 | 431 | |
| 432 | 432 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 433 | | decospr_device::set_gfx_region(*device, 2); |
| 434 | | decospr_device::set_pri_callback(*device, deco156_pri_callback); |
| 433 | MCFG_DECO_SPRITE_GFX_REGION(2) |
| 434 | MCFG_DECO_SPRITE_PRIORITY_CB(deco156_state, pri_callback) |
| 435 | 435 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 436 | 436 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 437 | 437 | |
trunk/src/mame/drivers/tumbleb.c
| r29432 | r29433 | |
| 2060 | 2060 | MCFG_SCREEN_PALETTE("palette") |
| 2061 | 2061 | |
| 2062 | 2062 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 2063 | | decospr_device::set_gfx_region(*device, 3); |
| 2064 | | decospr_device::set_is_bootleg(*device, true); |
| 2063 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 2064 | MCFG_DECO_SPRITE_ISBOOTLEG(true) |
| 2065 | 2065 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2066 | 2066 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2067 | 2067 | |
| r29432 | r29433 | |
| 2099 | 2099 | MCFG_SCREEN_PALETTE("palette") |
| 2100 | 2100 | |
| 2101 | 2101 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 2102 | | decospr_device::set_gfx_region(*device, 3); |
| 2103 | | decospr_device::set_is_bootleg(*device, true); |
| 2102 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 2103 | MCFG_DECO_SPRITE_ISBOOTLEG(true) |
| 2104 | 2104 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2105 | 2105 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2106 | 2106 | |
| r29432 | r29433 | |
| 2141 | 2141 | MCFG_SCREEN_PALETTE("palette") |
| 2142 | 2142 | |
| 2143 | 2143 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 2144 | | decospr_device::set_gfx_region(*device, 3); |
| 2145 | | decospr_device::set_is_bootleg(*device, true); |
| 2144 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 2145 | MCFG_DECO_SPRITE_ISBOOTLEG(true) |
| 2146 | 2146 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2147 | 2147 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2148 | 2148 | |
| r29432 | r29433 | |
| 2179 | 2179 | MCFG_SCREEN_PALETTE("palette") |
| 2180 | 2180 | |
| 2181 | 2181 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 2182 | | decospr_device::set_gfx_region(*device, 3); |
| 2183 | | decospr_device::set_is_bootleg(*device, true); |
| 2184 | | decospr_device::set_transpen(*device, 15); |
| 2182 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 2183 | MCFG_DECO_SPRITE_ISBOOTLEG(true) |
| 2184 | MCFG_DECO_SPRITE_TRANSPEN(15) |
| 2185 | 2185 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2186 | 2186 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2187 | 2187 | |
| r29432 | r29433 | |
| 2240 | 2240 | MCFG_SCREEN_PALETTE("palette") |
| 2241 | 2241 | |
| 2242 | 2242 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 2243 | | decospr_device::set_gfx_region(*device, 3); |
| 2244 | | decospr_device::set_is_bootleg(*device, true); |
| 2243 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 2244 | MCFG_DECO_SPRITE_ISBOOTLEG(true) |
| 2245 | 2245 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2246 | 2246 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2247 | 2247 | |
| r29432 | r29433 | |
| 2351 | 2351 | MCFG_SCREEN_PALETTE("palette") |
| 2352 | 2352 | |
| 2353 | 2353 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 2354 | | decospr_device::set_gfx_region(*device, 3); |
| 2355 | | decospr_device::set_is_bootleg(*device, true); |
| 2354 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 2355 | MCFG_DECO_SPRITE_ISBOOTLEG(true) |
| 2356 | 2356 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2357 | 2357 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2358 | 2358 | |
| r29432 | r29433 | |
| 2390 | 2390 | MCFG_SCREEN_PALETTE("palette") |
| 2391 | 2391 | |
| 2392 | 2392 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 2393 | | decospr_device::set_gfx_region(*device, 3); |
| 2394 | | decospr_device::set_is_bootleg(*device, true); |
| 2393 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 2394 | MCFG_DECO_SPRITE_ISBOOTLEG(true) |
| 2395 | 2395 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2396 | 2396 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2397 | 2397 | |
trunk/src/mame/drivers/backfire.c
| r29432 | r29433 | |
| 97 | 97 | INTERRUPT_GEN_MEMBER(deco32_vbl_interrupt); |
| 98 | 98 | void descramble_sound(); |
| 99 | 99 | DECO16IC_BANK_CB_MEMBER(bank_callback); |
| 100 | | |
| 100 | DECOSPR_PRIORITY_CB_MEMBER(pri_callback); |
| 101 | |
| 101 | 102 | required_ioport m_io_in0; |
| 102 | 103 | required_ioport m_io_in1; |
| 103 | 104 | required_ioport m_io_in2; |
| r29432 | r29433 | |
| 456 | 457 | return bank * 0x1000; |
| 457 | 458 | } |
| 458 | 459 | |
| 459 | | void backfire_state::machine_start() |
| 460 | DECOSPR_PRIORITY_CB_MEMBER(backfire_state::pri_callback) |
| 460 | 461 | { |
| 461 | | } |
| 462 | | |
| 463 | | UINT16 backfire_pri_callback(UINT16 x) |
| 464 | | { |
| 465 | | switch (x & 0xc000) |
| 462 | switch (pri & 0xc000) |
| 466 | 463 | { |
| 467 | 464 | case 0x0000: return 0; // numbers, people, cars when in the air, status display.. |
| 468 | 465 | case 0x4000: return 0xf0; // cars most of the time |
| r29432 | r29433 | |
| 472 | 469 | return 0; |
| 473 | 470 | } |
| 474 | 471 | |
| 472 | void backfire_state::machine_start() |
| 473 | { |
| 474 | } |
| 475 | |
| 475 | 476 | static MACHINE_CONFIG_START( backfire, backfire_state ) |
| 476 | 477 | |
| 477 | 478 | /* basic machine hardware */ |
| r29432 | r29433 | |
| 539 | 540 | |
| 540 | 541 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 541 | 542 | MCFG_VIDEO_SET_SCREEN("lscreen") |
| 542 | | decospr_device::set_gfx_region(*device, 4); |
| 543 | | decospr_device::set_pri_callback(*device, backfire_pri_callback); |
| 543 | MCFG_DECO_SPRITE_GFX_REGION(4) |
| 544 | MCFG_DECO_SPRITE_PRIORITY_CB(backfire_state, pri_callback) |
| 544 | 545 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 545 | 546 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 546 | 547 | |
| 547 | 548 | MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) |
| 548 | 549 | MCFG_VIDEO_SET_SCREEN("rscreen") |
| 549 | | decospr_device::set_gfx_region(*device, 5); |
| 550 | | decospr_device::set_pri_callback(*device, backfire_pri_callback); |
| 550 | MCFG_DECO_SPRITE_GFX_REGION(5) |
| 551 | MCFG_DECO_SPRITE_PRIORITY_CB(backfire_state, pri_callback) |
| 551 | 552 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 552 | 553 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 553 | 554 | |
trunk/src/mame/drivers/deco32.c
| r29432 | r29433 | |
| 1645 | 1645 | device.execute().set_input_line(ARM_IRQ_LINE, HOLD_LINE); |
| 1646 | 1646 | } |
| 1647 | 1647 | |
| 1648 | | UINT16 captaven_pri_callback(UINT16 x) |
| 1648 | DECOSPR_PRIORITY_CB_MEMBER(deco32_state::captaven_pri_callback) |
| 1649 | 1649 | { |
| 1650 | | if ((x&0x60)==0x00) |
| 1650 | if ((pri & 0x60) == 0x00) |
| 1651 | 1651 | { |
| 1652 | 1652 | return 0; // above everything |
| 1653 | 1653 | } |
| 1654 | | else if ((x&0x60)==0x20) |
| 1654 | else if ((pri & 0x60) == 0x20) |
| 1655 | 1655 | { |
| 1656 | 1656 | return 0xfff0; // above the 2nd playfield |
| 1657 | 1657 | } |
| 1658 | | else if ((x&0x60)==0x40) |
| 1658 | else if ((pri & 0x60) == 0x40) |
| 1659 | 1659 | { |
| 1660 | 1660 | return 0xfffc; // above the 1st playfield |
| 1661 | 1661 | } |
| r29432 | r29433 | |
| 1729 | 1729 | MCFG_DECO16IC_PALETTE("palette") |
| 1730 | 1730 | |
| 1731 | 1731 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 1732 | | decospr_device::set_gfx_region(*device, 3); |
| 1733 | | decospr_device::set_pri_callback(*device, captaven_pri_callback); |
| 1732 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 1733 | MCFG_DECO_SPRITE_PRIORITY_CB(deco32_state, captaven_pri_callback) |
| 1734 | 1734 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 1735 | 1735 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 1736 | 1736 | |
| r29432 | r29433 | |
| 1835 | 1835 | MCFG_DECO16IC_PALETTE("palette") |
| 1836 | 1836 | |
| 1837 | 1837 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 1838 | | decospr_device::set_gfx_region(*device, 3); |
| 1838 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 1839 | 1839 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 1840 | 1840 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 1841 | 1841 | |
| r29432 | r29433 | |
| 1921 | 1921 | MCFG_DECO16IC_PALETTE("palette") |
| 1922 | 1922 | |
| 1923 | 1923 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
| 1924 | | decospr_device::set_gfx_region(*device, 3); |
| 1924 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 1925 | 1925 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 1926 | 1926 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 1927 | 1927 | |
| r29432 | r29433 | |
| 2225 | 2225 | MCFG_DECO16IC_PALETTE("palette") |
| 2226 | 2226 | |
| 2227 | 2227 | MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) |
| 2228 | | decospr_device::set_gfx_region(*device, 3); |
| 2228 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 2229 | 2229 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2230 | 2230 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2231 | 2231 | |
| 2232 | 2232 | MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) |
| 2233 | | decospr_device::set_gfx_region(*device, 4); |
| 2233 | MCFG_DECO_SPRITE_GFX_REGION(4) |
| 2234 | 2234 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2235 | 2235 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2236 | 2236 | |
| r29432 | r29433 | |
| 2302 | 2302 | MCFG_DECO16IC_PALETTE("palette") |
| 2303 | 2303 | |
| 2304 | 2304 | MCFG_DEVICE_ADD("spritegen1", DECO_SPRITE, 0) |
| 2305 | | decospr_device::set_gfx_region(*device, 3); |
| 2305 | MCFG_DECO_SPRITE_GFX_REGION(3) |
| 2306 | 2306 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2307 | 2307 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2308 | 2308 | |
| 2309 | 2309 | MCFG_DEVICE_ADD("spritegen2", DECO_SPRITE, 0) |
| 2310 | | decospr_device::set_gfx_region(*device, 4); |
| 2310 | MCFG_DECO_SPRITE_GFX_REGION(4) |
| 2311 | 2311 | MCFG_DECO_SPRITE_GFXDECODE("gfxdecode") |
| 2312 | 2312 | MCFG_DECO_SPRITE_PALETTE("palette") |
| 2313 | 2313 | |