trunk/src/mame/video/tc0480scp.c
| r29476 | r29477 | |
| 151 | 151 | //m_bgscrolly[4](NULL), |
| 152 | 152 | m_pri_reg(0), |
| 153 | 153 | m_dblwidth(0), |
| 154 | | m_x_offs(0), |
| 154 | m_gfxnum(0), |
| 155 | m_txnum(0), |
| 156 | m_x_offset(0), |
| 157 | m_y_offset(0), |
| 158 | m_text_xoffs(0), |
| 159 | m_text_yoffs(0), |
| 160 | m_flip_xoffs(0), |
| 161 | m_flip_yoffs(0), |
| 162 | m_col_base(0), |
| 155 | 163 | m_gfxdecode(*this), |
| 156 | 164 | m_palette(*this) |
| 157 | 165 | { |
| r29476 | r29477 | |
| 178 | 186 | } |
| 179 | 187 | |
| 180 | 188 | //------------------------------------------------- |
| 181 | | // device_config_complete - perform any |
| 182 | | // operations now that the configuration is |
| 183 | | // complete |
| 184 | | //------------------------------------------------- |
| 185 | | |
| 186 | | void tc0480scp_device::device_config_complete() |
| 187 | | { |
| 188 | | // inherit a copy of the static data |
| 189 | | const tc0480scp_interface *intf = reinterpret_cast<const tc0480scp_interface *>(static_config()); |
| 190 | | if (intf != NULL) |
| 191 | | *static_cast<tc0480scp_interface *>(this) = *intf; |
| 192 | | |
| 193 | | // or initialize to defaults if none provided |
| 194 | | else |
| 195 | | { |
| 196 | | } |
| 197 | | } |
| 198 | | |
| 199 | | //------------------------------------------------- |
| 200 | 189 | // device_start - device-specific startup |
| 201 | 190 | //------------------------------------------------- |
| 202 | 191 | |
| r29476 | r29477 | |
| 205 | 194 | if(!m_gfxdecode->started()) |
| 206 | 195 | throw device_missing_dependencies(); |
| 207 | 196 | |
| 208 | | int i, xd, yd; |
| 197 | int xd, yd; |
| 209 | 198 | |
| 210 | | m_x_offs = m_x_offset + m_pixels; |
| 211 | | |
| 212 | | |
| 213 | 199 | static const gfx_layout tc0480scp_charlayout = |
| 214 | 200 | { |
| 215 | 201 | 8,8, /* 8*8 characters */ |
| r29476 | r29477 | |
| 236 | 222 | m_tilemap[3][1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_bg3_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); |
| 237 | 223 | m_tilemap[4][1] = &machine().tilemap().create(m_gfxdecode, tilemap_get_info_delegate(FUNC(tc0480scp_device::get_tx_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); |
| 238 | 224 | |
| 239 | | for (i = 0; i < 2; i++) |
| 225 | for (int i = 0; i < 2; i++) |
| 240 | 226 | { |
| 241 | 227 | m_tilemap[0][i]->set_transparent_pen(0); |
| 242 | 228 | m_tilemap[1][i]->set_transparent_pen(0); |
| r29476 | r29477 | |
| 245 | 231 | m_tilemap[4][i]->set_transparent_pen(0); |
| 246 | 232 | } |
| 247 | 233 | |
| 248 | | xd = -m_x_offs; |
| 234 | xd = -m_x_offset; |
| 249 | 235 | yd = m_y_offset; |
| 250 | 236 | |
| 251 | 237 | /* Metalb and Deadconx have minor screenflip issues: blue planet |
| r29476 | r29477 | |
| 280 | 266 | m_tilemap[4][1]->set_scrolldx(xd - 3, 317 - xd); /* text layer */ |
| 281 | 267 | m_tilemap[4][1]->set_scrolldy(yd, 256 - yd); /* text layer */ |
| 282 | 268 | |
| 283 | | for (i = 0; i < 2; i++) |
| 269 | for (int i = 0; i < 2; i++) |
| 284 | 270 | { |
| 285 | 271 | /* Both sets of bg tilemaps scrollable per pixel row */ |
| 286 | 272 | m_tilemap[0][i]->set_scroll_rows(512); |
| r29476 | r29477 | |
| 308 | 294 | |
| 309 | 295 | void tc0480scp_device::device_reset() |
| 310 | 296 | { |
| 311 | | int i; |
| 312 | | |
| 313 | 297 | m_dblwidth = 0; |
| 314 | 298 | |
| 315 | | for (i = 0; i < 0x18; i++) |
| 299 | for (int i = 0; i < 0x18; i++) |
| 316 | 300 | m_ctrl[i] = 0; |
| 317 | 301 | |
| 318 | 302 | } |
| r29476 | r29477 | |
| 733 | 717 | if (!flip) |
| 734 | 718 | { |
| 735 | 719 | sx = ((m_bgscrollx[layer] + 15 + layer * 4) << 16) + ((255 - (m_ctrl[0x10 + layer] & 0xff)) << 8); |
| 736 | | sx += (m_x_offs - 15 - layer * 4) * zoomx; |
| 720 | sx += (m_x_offset - 15 - layer * 4) * zoomx; |
| 737 | 721 | |
| 738 | 722 | y_index = (m_bgscrolly[layer] << 16) + ((m_ctrl[0x14 + layer] & 0xff) << 8); |
| 739 | 723 | y_index -= (m_y_offset - min_y) * zoomy; |
| r29476 | r29477 | |
| 741 | 725 | else /* TC0480SCP tiles flipscreen */ |
| 742 | 726 | { |
| 743 | 727 | sx = ((-m_bgscrollx[layer] + 15 + layer * 4 + m_flip_xoffs ) << 16) + ((255-(m_ctrl[0x10 + layer] & 0xff)) << 8); |
| 744 | | sx += (m_x_offs - 15 - layer * 4) * zoomx; |
| 728 | sx += (m_x_offset - 15 - layer * 4) * zoomx; |
| 745 | 729 | |
| 746 | 730 | y_index = ((-m_bgscrolly[layer] + m_flip_yoffs) << 16) + ((m_ctrl[0x14 + layer] & 0xff) << 8); |
| 747 | 731 | y_index -= (m_y_offset - min_y) * zoomy; |
| r29476 | r29477 | |
| 875 | 859 | if (!flipscreen) |
| 876 | 860 | { |
| 877 | 861 | sx = ((m_bgscrollx[layer] + 15 + layer * 4) << 16) + ((255-(m_ctrl[0x10 + layer] & 0xff)) << 8); |
| 878 | | sx += (m_x_offs - 15 - layer * 4) * zoomx; |
| 862 | sx += (m_x_offset - 15 - layer * 4) * zoomx; |
| 879 | 863 | |
| 880 | 864 | y_index = (m_bgscrolly[layer] << 16) + ((m_ctrl[0x14 + layer] & 0xff) << 8); |
| 881 | 865 | y_index -= (m_y_offset - min_y) * zoomy; |
| r29476 | r29477 | |
| 883 | 867 | else /* TC0480SCP tiles flipscreen */ |
| 884 | 868 | { |
| 885 | 869 | sx = ((-m_bgscrollx[layer] + 15 + layer * 4 + m_flip_xoffs ) << 16) + ((255 - (m_ctrl[0x10 + layer] & 0xff)) << 8); |
| 886 | | sx += (m_x_offs - 15 - layer * 4) * zoomx; |
| 870 | sx += (m_x_offset - 15 - layer * 4) * zoomx; |
| 887 | 871 | |
| 888 | 872 | y_index = ((-m_bgscrolly[layer] + m_flip_yoffs) << 16) + ((m_ctrl[0x14 + layer] & 0xff) << 8); |
| 889 | 873 | y_index -= (m_y_offset - min_y) * zoomy; |
| r29476 | r29477 | |
| 915 | 899 | x_index = sx - ((m_bgscroll_ram[layer][row_index] << 16)) - ((m_bgscroll_ram[layer][row_index + 0x800] << 8) & 0xffff); |
| 916 | 900 | |
| 917 | 901 | /* flawed calc ?? */ |
| 918 | | x_index -= (m_x_offs - 0x1f + layer * 4) * ((row_zoom & 0xff) << 8); |
| 902 | x_index -= (m_x_offset - 0x1f + layer * 4) * ((row_zoom & 0xff) << 8); |
| 919 | 903 | |
| 920 | 904 | /* We used to kludge 270 multiply factor, before adjusting x_index instead */ |
| 921 | 905 | |
trunk/src/mame/video/tc0480scp.h
| r29476 | r29477 | |
| 1 | 1 | #ifndef __TC0480SCP_H__ |
| 2 | 2 | #define __TC0480SCP_H__ |
| 3 | 3 | |
| 4 | | struct tc0480scp_interface |
| 4 | class tc0480scp_device : public device_t |
| 5 | 5 | { |
| 6 | | int m_gfxnum; |
| 7 | | int m_txnum; |
| 8 | | |
| 9 | | int m_pixels; |
| 10 | | |
| 11 | | int m_x_offset, m_y_offset; |
| 12 | | int m_text_xoffs, m_text_yoffs; |
| 13 | | int m_flip_xoffs, m_flip_yoffs; |
| 14 | | |
| 15 | | int m_col_base; |
| 16 | | }; |
| 17 | | |
| 18 | | class tc0480scp_device : public device_t, |
| 19 | | public tc0480scp_interface |
| 20 | | { |
| 21 | 6 | public: |
| 22 | 7 | tc0480scp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); |
| 23 | 8 | ~tc0480scp_device() {} |
| r29476 | r29477 | |
| 25 | 10 | // static configuration |
| 26 | 11 | static void static_set_gfxdecode_tag(device_t &device, const char *tag); |
| 27 | 12 | static void static_set_palette_tag(device_t &device, const char *tag); |
| 28 | | |
| 13 | static void set_gfx_region(device_t &device, int gfxregion) { downcast<tc0480scp_device &>(device).m_gfxnum = gfxregion; } |
| 14 | static void set_tx_region(device_t &device, int txregion) { downcast<tc0480scp_device &>(device).m_txnum = txregion; } |
| 15 | static void set_col_base(device_t &device, int col) { downcast<tc0480scp_device &>(device).m_col_base = col; } |
| 16 | static void set_offsets(device_t &device, int x_offset, int y_offset) |
| 17 | { |
| 18 | tc0480scp_device &dev = downcast<tc0480scp_device &>(device); |
| 19 | dev.m_x_offset = x_offset; |
| 20 | dev.m_y_offset = y_offset; |
| 21 | } |
| 22 | static void set_offsets_tx(device_t &device, int x_offset, int y_offset) |
| 23 | { |
| 24 | tc0480scp_device &dev = downcast<tc0480scp_device &>(device); |
| 25 | dev.m_text_xoffs = x_offset; |
| 26 | dev.m_text_yoffs = y_offset; |
| 27 | } |
| 28 | static void set_offsets_flip(device_t &device, int x_offset, int y_offset) |
| 29 | { |
| 30 | tc0480scp_device &dev = downcast<tc0480scp_device &>(device); |
| 31 | dev.m_flip_xoffs = x_offset; |
| 32 | dev.m_flip_yoffs = y_offset; |
| 33 | } |
| 34 | |
| 29 | 35 | /* When writing a driver, pass zero for the text and flip offsets initially: |
| 30 | 36 | then tweak them once you have the 4 bg layer positions correct. Col_base |
| 31 | 37 | may be needed when tilemaps use a palette area from sprites. */ |
| r29476 | r29477 | |
| 56 | 62 | |
| 57 | 63 | protected: |
| 58 | 64 | // device-level overrides |
| 59 | | virtual void device_config_complete(); |
| 60 | 65 | virtual void device_start(); |
| 61 | 66 | virtual void device_reset(); |
| 62 | 67 | |
| r29476 | r29477 | |
| 76 | 81 | int m_pri_reg; |
| 77 | 82 | |
| 78 | 83 | /* We keep two tilemaps for each of the 5 actual tilemaps: one at standard width, one double */ |
| 79 | | tilemap_t *m_tilemap[5][2]; |
| 80 | | INT32 m_dblwidth; |
| 81 | | int m_x_offs; |
| 84 | tilemap_t *m_tilemap[5][2]; |
| 85 | INT32 m_dblwidth; |
| 82 | 86 | |
| 87 | int m_gfxnum; |
| 88 | int m_txnum; |
| 89 | int m_x_offset, m_y_offset; |
| 90 | int m_text_xoffs, m_text_yoffs; |
| 91 | int m_flip_xoffs, m_flip_yoffs; |
| 92 | |
| 93 | int m_col_base; |
| 94 | |
| 83 | 95 | required_device<gfxdecode_device> m_gfxdecode; |
| 84 | 96 | required_device<palette_device> m_palette; |
| 85 | 97 | |
| r29476 | r29477 | |
| 100 | 112 | |
| 101 | 113 | extern const device_type TC0480SCP; |
| 102 | 114 | |
| 103 | | #define MCFG_TC0480SCP_ADD(_tag, _interface) \ |
| 104 | | MCFG_DEVICE_ADD(_tag, TC0480SCP, 0) \ |
| 105 | | MCFG_DEVICE_CONFIG(_interface) |
| 106 | 115 | |
| 116 | #define MCFG_TC0480SCP_GFX_REGION(_region) \ |
| 117 | tc0480scp_device::set_gfx_region(*device, _region); |
| 118 | |
| 119 | #define MCFG_TC0480SCP_TX_REGION(_region) \ |
| 120 | tc0480scp_device::set_tx_region(*device, _region); |
| 121 | |
| 122 | #define MCFG_TC0480SCP_OFFSETS(_xoffs, _yoffs) \ |
| 123 | tc0480scp_device::set_offsets(*device, _xoffs, _yoffs); |
| 124 | |
| 125 | #define MCFG_TC0480SCP_OFFSETS_TX(_xoffs, _yoffs) \ |
| 126 | tc0480scp_device::set_offsets_tx(*device, _xoffs, _yoffs); |
| 127 | |
| 128 | #define MCFG_TC0480SCP_OFFSETS_FLIP(_xoffs, _yoffs) \ |
| 129 | tc0480scp_device::set_offsets_flip(*device, _xoffs, _yoffs); |
| 130 | |
| 131 | #define MCFG_TC0480SCP_COL_BASE(_col) \ |
| 132 | tc0480scp_device::set_col_base(*device, _col); |
| 133 | |
| 107 | 134 | #define MCFG_TC0480SCP_GFXDECODE(_gfxtag) \ |
| 108 | 135 | tc0480scp_device::static_set_gfxdecode_tag(*device, "^" _gfxtag); |
| 109 | 136 | |
trunk/src/mame/drivers/superchs.c
| r29476 | r29477 | |
| 312 | 312 | MACHINE DRIVERS |
| 313 | 313 | ***********************************************************/ |
| 314 | 314 | |
| 315 | | static const tc0480scp_interface superchs_tc0480scp_intf = |
| 316 | | { |
| 317 | | 1, 2, /* gfxnum, txnum */ |
| 318 | | 0, /* pixels */ |
| 319 | | 0x20, 0x08, /* x_offset, y_offset */ |
| 320 | | -1, 0, /* text_xoff, text_yoff */ |
| 321 | | 0, 0, /* flip_xoff, flip_yoff */ |
| 322 | | 0 /* col_base */ |
| 323 | | }; |
| 324 | | |
| 325 | 315 | static MACHINE_CONFIG_START( superchs, superchs_state ) |
| 326 | 316 | |
| 327 | 317 | /* basic machine hardware */ |
| r29476 | r29477 | |
| 349 | 339 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", superchs) |
| 350 | 340 | MCFG_PALETTE_ADD("palette", 8192) |
| 351 | 341 | |
| 352 | | |
| 353 | | MCFG_TC0480SCP_ADD("tc0480scp", superchs_tc0480scp_intf) |
| 342 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 343 | MCFG_TC0480SCP_GFX_REGION(1) |
| 344 | MCFG_TC0480SCP_TX_REGION(2) |
| 345 | MCFG_TC0480SCP_OFFSETS(0x20, 0x08) |
| 346 | MCFG_TC0480SCP_OFFSETS_TX(-1, 0) |
| 354 | 347 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 355 | 348 | MCFG_TC0480SCP_PALETTE("palette") |
| 356 | 349 | |
trunk/src/mame/drivers/taito_z.c
| r29476 | r29477 | |
| 2955 | 2955 | |
| 2956 | 2956 | ***********************************************************/ |
| 2957 | 2957 | |
| 2958 | | static const tc0480scp_interface taitoz_tc0480scp_intf = |
| 2959 | | { |
| 2960 | | 1, 2, /* gfxnum, txnum */ |
| 2961 | | 0, /* pixels */ |
| 2962 | | 0x1f, 0x08, /* x_offset, y_offset */ |
| 2963 | | 0, 0, /* text_xoff, text_yoff */ |
| 2964 | | 0, 0, /* flip_xoff, flip_yoff */ |
| 2965 | | 0 /* col_base */ |
| 2966 | | }; |
| 2967 | | |
| 2968 | | |
| 2969 | 2958 | /*********************************************************** |
| 2970 | 2959 | SAVE STATES |
| 2971 | 2960 | ***********************************************************/ |
| r29476 | r29477 | |
| 3674 | 3663 | |
| 3675 | 3664 | MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) |
| 3676 | 3665 | |
| 3677 | | MCFG_TC0480SCP_ADD("tc0480scp", taitoz_tc0480scp_intf) |
| 3666 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 3667 | MCFG_TC0480SCP_GFX_REGION(1) |
| 3668 | MCFG_TC0480SCP_TX_REGION(2) |
| 3669 | MCFG_TC0480SCP_OFFSETS(0x1f, 0x08) |
| 3678 | 3670 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 3679 | 3671 | MCFG_TC0480SCP_PALETTE("palette") |
| 3680 | 3672 | |
| r29476 | r29477 | |
| 3748 | 3740 | MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) |
| 3749 | 3741 | MCFG_VIDEO_START_OVERRIDE(taitoz_state,taitoz) |
| 3750 | 3742 | |
| 3751 | | MCFG_TC0480SCP_ADD("tc0480scp", taitoz_tc0480scp_intf) |
| 3743 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 3744 | MCFG_TC0480SCP_GFX_REGION(1) |
| 3745 | MCFG_TC0480SCP_TX_REGION(2) |
| 3746 | MCFG_TC0480SCP_OFFSETS(0x1f, 0x08) |
| 3752 | 3747 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 3753 | 3748 | MCFG_TC0480SCP_PALETTE("palette") |
| 3754 | 3749 | |
trunk/src/mame/drivers/slapshot.c
| r29476 | r29477 | |
| 491 | 491 | MACHINE DRIVERS |
| 492 | 492 | ***********************************************************/ |
| 493 | 493 | |
| 494 | | static const tc0480scp_interface slapshot_tc0480scp_intf = |
| 495 | | { |
| 496 | | 1, 2, /* gfxnum, txnum */ |
| 497 | | 3, /* pixels */ |
| 498 | | 30, 9, /* x_offset, y_offset */ |
| 499 | | -1, 1, /* text_xoff, text_yoff */ |
| 500 | | 0, 2, /* flip_xoff, flip_yoff */ |
| 501 | | 256 /* col_base */ |
| 502 | | }; |
| 503 | | |
| 504 | 494 | void slapshot_state::machine_start() |
| 505 | 495 | { |
| 506 | 496 | membank("bank10")->configure_entries(0, 4, memregion("audiocpu")->base() + 0xc000, 0x4000); |
| r29476 | r29477 | |
| 542 | 532 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", slapshot) |
| 543 | 533 | MCFG_PALETTE_ADD("palette", 8192) |
| 544 | 534 | |
| 545 | | MCFG_TC0480SCP_ADD("tc0480scp", slapshot_tc0480scp_intf) |
| 535 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 536 | MCFG_TC0480SCP_GFX_REGION(1) |
| 537 | MCFG_TC0480SCP_TX_REGION(2) |
| 538 | MCFG_TC0480SCP_OFFSETS(30 + 3, 9) |
| 539 | MCFG_TC0480SCP_OFFSETS_TX(-1, -1) |
| 540 | MCFG_TC0480SCP_OFFSETS_FLIP(0, 2) |
| 541 | MCFG_TC0480SCP_COL_BASE(256) |
| 546 | 542 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 547 | 543 | MCFG_TC0480SCP_PALETTE("palette") |
| 544 | |
| 548 | 545 | MCFG_TC0360PRI_ADD("tc0360pri") |
| 549 | 546 | |
| 550 | 547 | /* sound hardware */ |
| r29476 | r29477 | |
| 595 | 592 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", slapshot) |
| 596 | 593 | MCFG_PALETTE_ADD("palette", 8192) |
| 597 | 594 | |
| 598 | | |
| 599 | | MCFG_TC0480SCP_ADD("tc0480scp", slapshot_tc0480scp_intf) |
| 595 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 596 | MCFG_TC0480SCP_GFX_REGION(1) |
| 597 | MCFG_TC0480SCP_TX_REGION(2) |
| 598 | MCFG_TC0480SCP_OFFSETS(30 + 3, 9) |
| 599 | MCFG_TC0480SCP_OFFSETS_TX(-1, -1) |
| 600 | MCFG_TC0480SCP_OFFSETS_FLIP(0, 2) |
| 601 | MCFG_TC0480SCP_COL_BASE(256) |
| 600 | 602 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 601 | 603 | MCFG_TC0480SCP_PALETTE("palette") |
| 604 | |
| 602 | 605 | MCFG_TC0360PRI_ADD("tc0360pri") |
| 603 | 606 | |
| 604 | 607 | /* sound hardware */ |
trunk/src/mame/drivers/taito_f2.c
| r29476 | r29477 | |
| 2833 | 2833 | MACHINE DRIVERS |
| 2834 | 2834 | ***********************************************************/ |
| 2835 | 2835 | |
| 2836 | | static const tc0480scp_interface footchmp_tc0480scp_intf = |
| 2837 | | { |
| 2838 | | 1, 2, /* gfxnum, txnum */ |
| 2839 | | 3, /* pixels */ |
| 2840 | | 0x1d, 0x08, /* x_offset, y_offset */ |
| 2841 | | -1, 0, /* text_xoff, text_yoff */ |
| 2842 | | -1, 0, /* flip_xoff, flip_yoff */ |
| 2843 | | 0 /* col_base */ |
| 2844 | | }; |
| 2845 | | |
| 2846 | | static const tc0480scp_interface hthero_tc0480scp_intf = |
| 2847 | | { |
| 2848 | | 1, 2, /* gfxnum, txnum */ |
| 2849 | | 3, /* pixels */ |
| 2850 | | 0x33, -0x04, /* x_offset, y_offset */ |
| 2851 | | -1, 0, /* text_xoff, text_yoff */ |
| 2852 | | -1, 0, /* flip_xoff, flip_yoff */ |
| 2853 | | 0 /* col_base */ |
| 2854 | | }; |
| 2855 | | |
| 2856 | | static const tc0480scp_interface deadconx_tc0480scp_intf = |
| 2857 | | { |
| 2858 | | 1, 2, /* gfxnum, txnum */ |
| 2859 | | 3, /* pixels */ |
| 2860 | | 0x1e, 0x08, /* x_offset, y_offset */ |
| 2861 | | -1, 0, /* text_xoff, text_yoff */ |
| 2862 | | -1, 0, /* flip_xoff, flip_yoff */ |
| 2863 | | 0 /* col_base */ |
| 2864 | | }; |
| 2865 | | |
| 2866 | | static const tc0480scp_interface deadconxj_tc0480scp_intf = |
| 2867 | | { |
| 2868 | | 1, 2, /* gfxnum, txnum */ |
| 2869 | | 3, /* pixels */ |
| 2870 | | 0x34, -0x05, /* x_offset, y_offset */ |
| 2871 | | -1, 0, /* text_xoff, text_yoff */ |
| 2872 | | -1, 0, /* flip_xoff, flip_yoff */ |
| 2873 | | 0 /* col_base */ |
| 2874 | | }; |
| 2875 | | |
| 2876 | | static const tc0480scp_interface metalb_tc0480scp_intf = |
| 2877 | | { |
| 2878 | | 1, 2, /* gfxnum, txnum */ |
| 2879 | | 3, /* pixels */ |
| 2880 | | 0x32, -0x04, /* x_offset, y_offset */ |
| 2881 | | 1, 0, /* text_xoff, text_yoff */ |
| 2882 | | -1, 0, /* flip_xoff, flip_yoff */ |
| 2883 | | 256 /* col_base */ |
| 2884 | | }; |
| 2885 | | |
| 2886 | | |
| 2887 | 2836 | MACHINE_START_MEMBER(taitof2_state,common) |
| 2888 | 2837 | { |
| 2889 | 2838 | } |
| r29476 | r29477 | |
| 3273 | 3222 | MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) |
| 3274 | 3223 | MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_full_buffer_delayed) |
| 3275 | 3224 | |
| 3276 | | MCFG_TC0480SCP_ADD("tc0480scp", footchmp_tc0480scp_intf) |
| 3225 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 3226 | MCFG_TC0480SCP_GFX_REGION(1) |
| 3227 | MCFG_TC0480SCP_TX_REGION(2) |
| 3228 | MCFG_TC0480SCP_OFFSETS(0x1d + 3, 0x08) |
| 3229 | MCFG_TC0480SCP_OFFSETS_TX(-1, 0) |
| 3230 | MCFG_TC0480SCP_OFFSETS_FLIP(-1, 0) |
| 3277 | 3231 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 3278 | 3232 | MCFG_TC0480SCP_PALETTE("palette") |
| 3279 | 3233 | |
| r29476 | r29477 | |
| 3301 | 3255 | MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_full_buffer_delayed) |
| 3302 | 3256 | |
| 3303 | 3257 | MCFG_TC0360PRI_ADD("tc0360pri") |
| 3304 | | MCFG_TC0480SCP_ADD("tc0480scp", hthero_tc0480scp_intf) |
| 3258 | |
| 3259 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 3260 | MCFG_TC0480SCP_GFX_REGION(1) |
| 3261 | MCFG_TC0480SCP_TX_REGION(2) |
| 3262 | MCFG_TC0480SCP_OFFSETS(0x33 + 3, -0x04) |
| 3263 | MCFG_TC0480SCP_OFFSETS_TX(-1, 0) |
| 3264 | MCFG_TC0480SCP_OFFSETS_FLIP(-1, 0) |
| 3305 | 3265 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 3306 | 3266 | MCFG_TC0480SCP_PALETTE("palette") |
| 3307 | 3267 | MACHINE_CONFIG_END |
| r29476 | r29477 | |
| 3462 | 3422 | MCFG_SCREEN_MODIFY("screen") |
| 3463 | 3423 | MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_metalb) |
| 3464 | 3424 | |
| 3465 | | MCFG_TC0480SCP_ADD("tc0480scp", metalb_tc0480scp_intf) |
| 3425 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 3426 | MCFG_TC0480SCP_GFX_REGION(1) |
| 3427 | MCFG_TC0480SCP_TX_REGION(2) |
| 3428 | MCFG_TC0480SCP_OFFSETS(0x32 + 3, -0x04) |
| 3429 | MCFG_TC0480SCP_OFFSETS_TX(1, 0) |
| 3430 | MCFG_TC0480SCP_OFFSETS_FLIP(-1, 0) |
| 3431 | MCFG_TC0480SCP_COL_BASE(256) |
| 3466 | 3432 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 3467 | 3433 | MCFG_TC0480SCP_PALETTE("palette") |
| 3468 | 3434 | |
| r29476 | r29477 | |
| 3525 | 3491 | MCFG_SCREEN_MODIFY("screen") |
| 3526 | 3492 | MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) |
| 3527 | 3493 | |
| 3528 | | MCFG_TC0480SCP_ADD("tc0480scp", deadconx_tc0480scp_intf) |
| 3494 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 3495 | MCFG_TC0480SCP_GFX_REGION(1) |
| 3496 | MCFG_TC0480SCP_TX_REGION(2) |
| 3497 | MCFG_TC0480SCP_OFFSETS(0x1e + 3, 0x08) |
| 3498 | MCFG_TC0480SCP_OFFSETS_TX(-1, 0) |
| 3499 | MCFG_TC0480SCP_OFFSETS_FLIP(-1, 0) |
| 3529 | 3500 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 3530 | 3501 | MCFG_TC0480SCP_PALETTE("palette") |
| 3531 | 3502 | |
| r29476 | r29477 | |
| 3545 | 3516 | MCFG_SCREEN_MODIFY("screen") |
| 3546 | 3517 | MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx) |
| 3547 | 3518 | |
| 3548 | | MCFG_TC0480SCP_ADD("tc0480scp", deadconxj_tc0480scp_intf) |
| 3519 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 3520 | MCFG_TC0480SCP_GFX_REGION(1) |
| 3521 | MCFG_TC0480SCP_TX_REGION(2) |
| 3522 | MCFG_TC0480SCP_OFFSETS(0x34 + 3, -0x05) |
| 3523 | MCFG_TC0480SCP_OFFSETS_TX(-1, 0) |
| 3524 | MCFG_TC0480SCP_OFFSETS_FLIP(-1, 0) |
| 3549 | 3525 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 3550 | 3526 | MCFG_TC0480SCP_PALETTE("palette") |
| 3551 | 3527 | |
trunk/src/mame/drivers/undrfire.c
| r29476 | r29477 | |
| 696 | 696 | device.execute().set_input_line(4, HOLD_LINE); |
| 697 | 697 | } |
| 698 | 698 | |
| 699 | | static const tc0480scp_interface undrfire_tc0480scp_intf = |
| 700 | | { |
| 701 | | 1, 4, /* gfxnum, txnum */ |
| 702 | | 0, /* pixels */ |
| 703 | | 0x24, 0, /* x_offset, y_offset */ |
| 704 | | -1, 0, /* text_xoff, text_yoff */ |
| 705 | | 0, 0, /* flip_xoff, flip_yoff */ |
| 706 | | 0 /* col_base */ |
| 707 | | }; |
| 708 | | |
| 709 | 699 | static MACHINE_CONFIG_START( undrfire, undrfire_state ) |
| 710 | 700 | |
| 711 | 701 | /* basic machine hardware */ |
| r29476 | r29477 | |
| 734 | 724 | MCFG_TC0100SCN_GFXDECODE("gfxdecode") |
| 735 | 725 | MCFG_TC0100SCN_PALETTE("palette") |
| 736 | 726 | |
| 737 | | MCFG_TC0480SCP_ADD("tc0480scp", undrfire_tc0480scp_intf) |
| 727 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 728 | MCFG_TC0480SCP_GFX_REGION(1) |
| 729 | MCFG_TC0480SCP_TX_REGION(4) |
| 730 | MCFG_TC0480SCP_OFFSETS(0x24, 0) |
| 731 | MCFG_TC0480SCP_OFFSETS_TX(-1, 0) |
| 738 | 732 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 739 | 733 | MCFG_TC0480SCP_PALETTE("palette") |
| 740 | 734 | |
| r29476 | r29477 | |
| 777 | 771 | MCFG_TC0100SCN_GFXDECODE("gfxdecode") |
| 778 | 772 | MCFG_TC0100SCN_PALETTE("palette") |
| 779 | 773 | |
| 780 | | MCFG_TC0480SCP_ADD("tc0480scp", undrfire_tc0480scp_intf) |
| 774 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 775 | MCFG_TC0480SCP_GFX_REGION(1) |
| 776 | MCFG_TC0480SCP_TX_REGION(4) |
| 777 | MCFG_TC0480SCP_OFFSETS(0x24, 0) |
| 778 | MCFG_TC0480SCP_OFFSETS_TX(-1, 0) |
| 781 | 779 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 782 | 780 | MCFG_TC0480SCP_PALETTE("palette") |
| 783 | 781 | |
trunk/src/mame/drivers/galastrm.c
| r29476 | r29477 | |
| 277 | 277 | |
| 278 | 278 | /***************************************************************************/ |
| 279 | 279 | |
| 280 | | static const tc0480scp_interface galastrm_tc0480scp_intf = |
| 281 | | { |
| 282 | | 1, 3, /* gfxnum, txnum */ |
| 283 | | 0, /* pixels */ |
| 284 | | -40, -3, /* x_offset, y_offset */ |
| 285 | | 0, 0, /* text_xoff, text_yoff */ |
| 286 | | 0, 0, /* flip_xoff, flip_yoff */ |
| 287 | | 0 /* col_base */ |
| 288 | | }; |
| 289 | | |
| 290 | 280 | static MACHINE_CONFIG_START( galastrm, galastrm_state ) |
| 291 | 281 | /* basic machine hardware */ |
| 292 | 282 | MCFG_CPU_ADD("maincpu", M68EC020, 16000000) /* 16 MHz */ |
| r29476 | r29477 | |
| 314 | 304 | MCFG_TC0100SCN_GFXDECODE("gfxdecode") |
| 315 | 305 | MCFG_TC0100SCN_PALETTE("palette") |
| 316 | 306 | |
| 317 | | MCFG_TC0480SCP_ADD("tc0480scp", galastrm_tc0480scp_intf) |
| 307 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 308 | MCFG_TC0480SCP_GFX_REGION(1) |
| 309 | MCFG_TC0480SCP_TX_REGION(3) |
| 310 | MCFG_TC0480SCP_OFFSETS(-40, -3) |
| 318 | 311 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 319 | 312 | MCFG_TC0480SCP_PALETTE("palette") |
| 320 | 313 | |
trunk/src/mame/drivers/gunbustr.c
| r29476 | r29477 | |
| 284 | 284 | MACHINE DRIVERS |
| 285 | 285 | ***********************************************************/ |
| 286 | 286 | |
| 287 | | static const tc0480scp_interface gunbustr_tc0480scp_intf = |
| 288 | | { |
| 289 | | 1, 2, /* gfxnum, txnum */ |
| 290 | | 0, /* pixels */ |
| 291 | | 0x20, 0x07, /* x_offset, y_offset */ |
| 292 | | -1, -1, /* text_xoff, text_yoff */ |
| 293 | | -1, 0, /* flip_xoff, flip_yoff */ |
| 294 | | 0 /* col_base */ |
| 295 | | }; |
| 296 | | |
| 297 | 287 | static MACHINE_CONFIG_START( gunbustr, gunbustr_state ) |
| 298 | 288 | |
| 299 | 289 | /* basic machine hardware */ |
| r29476 | r29477 | |
| 315 | 305 | MCFG_GFXDECODE_ADD("gfxdecode", "palette", gunbustr) |
| 316 | 306 | MCFG_PALETTE_ADD("palette", 8192) |
| 317 | 307 | |
| 318 | | |
| 319 | | MCFG_TC0480SCP_ADD("tc0480scp", gunbustr_tc0480scp_intf) |
| 308 | MCFG_DEVICE_ADD("tc0480scp", TC0480SCP, 0) |
| 309 | MCFG_TC0480SCP_GFX_REGION(1) |
| 310 | MCFG_TC0480SCP_TX_REGION(2) |
| 311 | MCFG_TC0480SCP_OFFSETS(0x20, 0x07) |
| 312 | MCFG_TC0480SCP_OFFSETS_TX(-1, -1) |
| 313 | MCFG_TC0480SCP_OFFSETS_FLIP(-1, 0) |
| 320 | 314 | MCFG_TC0480SCP_GFXDECODE("gfxdecode") |
| 321 | 315 | MCFG_TC0480SCP_PALETTE("palette") |
| 322 | 316 | |