trunk/src/mame/video/k053246_k053247_k055673.c
| r31470 | r31471 | |
| 88 | 88 | } |
| 89 | 89 | |
| 90 | 90 | |
| 91 | | WRITE16_MEMBER( k053247_device::k053247_reg_word_w ) // write-only OBJSET2 registers (see p.43 table 6.1) |
| 91 | WRITE16_MEMBER( k053247_device::k055673_reg_word_w ) // write-only OBJSET2 registers (see p.43 table 6.1) |
| 92 | 92 | { |
| 93 | 93 | COMBINE_DATA(m_kx47_regs + offset); |
| 94 | 94 | } |
| 95 | 95 | |
| 96 | | WRITE32_MEMBER( k053247_device::k053247_reg_long_w ) |
| 97 | | { |
| 98 | | offset <<= 1; |
| 99 | | COMBINE_DATA(m_kx47_regs + offset + 1); |
| 100 | | mem_mask >>= 16; |
| 101 | | data >>= 16; |
| 102 | | COMBINE_DATA(m_kx47_regs + offset); |
| 103 | | } |
| 104 | | |
| 105 | 96 | READ16_MEMBER( k053247_device::k053247_word_r ) |
| 106 | 97 | { |
| 107 | 98 | return m_ram[offset]; |
| r31470 | r31471 | |
| 112 | 103 | COMBINE_DATA(m_ram + offset); |
| 113 | 104 | } |
| 114 | 105 | |
| 115 | | READ32_MEMBER( k053247_device::k053247_long_r ) |
| 116 | | { |
| 117 | | return m_ram[offset * 2 + 1] | (m_ram[offset * 2] << 16); |
| 118 | | } |
| 119 | | |
| 120 | | WRITE32_MEMBER( k053247_device::k053247_long_w ) |
| 121 | | { |
| 122 | | offset <<= 1; |
| 123 | | COMBINE_DATA(m_ram + offset + 1); |
| 124 | | mem_mask >>= 16; |
| 125 | | data >>= 16; |
| 126 | | COMBINE_DATA(m_ram + offset); |
| 127 | | } |
| 128 | | |
| 129 | 106 | READ8_MEMBER( k053247_device::k053247_r ) |
| 130 | 107 | { |
| 131 | 108 | int offs = offset >> 1; |
| r31470 | r31471 | |
| 146 | 123 | m_ram[offs] = (m_ram[offs] & 0x00ff) | (data << 8); |
| 147 | 124 | } |
| 148 | 125 | |
| 149 | | // Mystic Warriors hardware games support a non-objcha based ROM readback |
| 126 | // The K055673 supports a non-objcha based ROM readback |
| 150 | 127 | // write the address to the 246 as usual, but there's a completely separate ROM |
| 151 | 128 | // window that works without needing an objcha line. |
| 152 | 129 | // in this window, +0 = 32 bits from one set of ROMs, and +8 = 32 bits from another set |
| 153 | | READ16_MEMBER( k053247_device::k055673_rom_word_r ) // 5bpp |
| 130 | |
| 131 | // FIXME: rearrange ROM loading so this can be merged with the 4/6/8bpp version |
| 132 | READ16_MEMBER( k053247_device::k055673_5bpp_rom_word_r ) // 5bpp |
| 154 | 133 | { |
| 155 | 134 | UINT8 *ROM8 = (UINT8 *)space.machine().root_device().memregion(m_memory_region)->base(); |
| 156 | 135 | UINT16 *ROM = (UINT16 *)space.machine().root_device().memregion(m_memory_region)->base(); |
| r31470 | r31471 | |
| 188 | 167 | return 0; |
| 189 | 168 | } |
| 190 | 169 | |
| 191 | | READ16_MEMBER( k053247_device::k055673_GX6bpp_rom_word_r ) |
| 170 | READ16_MEMBER( k053247_device::k055673_rom_word_r ) |
| 192 | 171 | { |
| 172 | if (m_bpp == 5) |
| 173 | return k055673_5bpp_rom_word_r(space, offset, mem_mask); |
| 174 | |
| 193 | 175 | UINT16 *ROM = (UINT16 *)space.machine().root_device().memregion(m_memory_region)->base(); |
| 194 | 176 | int romofs; |
| 195 | 177 | |
| 196 | 178 | romofs = m_kx46_regs[6] << 16 | m_kx46_regs[7] << 8 | m_kx46_regs[4]; |
| 197 | 179 | |
| 198 | | romofs /= 4; // romofs increments 4 at a time |
| 199 | | romofs *= 12 / 2; // each increment of romofs = 12 new bytes (6 new words) |
| 180 | romofs = (romofs >> 2) * m_bpp; |
| 200 | 181 | |
| 201 | | switch (offset) |
| 202 | | { |
| 203 | | case 0: |
| 204 | | return ROM[romofs + 3]; |
| 205 | | case 1: |
| 206 | | return ROM[romofs + 4]; |
| 207 | | case 2: |
| 208 | | case 3: |
| 209 | | return ROM[romofs + 5]; |
| 210 | | case 4: |
| 211 | | return ROM[romofs]; |
| 212 | | case 5: |
| 213 | | return ROM[romofs + 1]; |
| 214 | | case 6: |
| 215 | | case 7: |
| 216 | | return ROM[romofs + 2]; |
| 217 | | default: |
| 218 | | // LOG(("55673_rom_word_r: Unknown read offset %x (PC=%x)\n", offset, space.device().safe_pc())); |
| 219 | | break; |
| 220 | | } |
| 182 | if ((offset & 0x4) == 0) romofs += m_bpp >> 1; |
| 221 | 183 | |
| 222 | | return 0; |
| 184 | return ROM[romofs + (offset & 0x3)]; |
| 223 | 185 | } |
| 224 | 186 | |
| 225 | 187 | READ8_MEMBER( k053247_device::k053246_r ) |
| r31470 | r31471 | |
| 260 | 222 | k053246_w( space, (offset << 1) + 1,data & 0xff); |
| 261 | 223 | } |
| 262 | 224 | |
| 263 | | READ32_MEMBER( k053247_device::k053246_long_r ) |
| 264 | | { |
| 265 | | offset <<= 1; |
| 266 | | return (k053246_word_r( space, offset + 1, 0xffff) | k053246_word_r( space, offset, 0xffff) << 16); |
| 267 | | } |
| 268 | | |
| 269 | | WRITE32_MEMBER( k053247_device::k053246_long_w ) |
| 270 | | { |
| 271 | | offset <<= 1; |
| 272 | | k053246_word_w( space, offset, data >> 16, mem_mask >> 16); |
| 273 | | k053246_word_w( space, offset + 1, data, mem_mask); |
| 274 | | } |
| 275 | | |
| 276 | 225 | void k053247_device::k053246_set_objcha_line( int state ) |
| 277 | 226 | { |
| 278 | 227 | m_objcha_line = state; |
| r31470 | r31471 | |
| 992 | 941 | 16,16, |
| 993 | 942 | 0, |
| 994 | 943 | 8, |
| 995 | | { 8*1,8*0,8*3,8*2,8*5,8*4,8*7,8*6 }, |
| 944 | { 56, 48, 40, 32, 24, 16, 8, 0 }, |
| 996 | 945 | { 0,1,2,3,4,5,6,7,64+0,64+1,64+2,64+3,64+4,64+5,64+6,64+7 }, |
| 997 | 946 | { 128*0, 128*1, 128*2, 128*3, 128*4, 128*5, 128*6, 128*7, |
| 998 | 947 | 128*8, 128*9, 128*10, 128*11, 128*12, 128*13, 128*14, 128*15 }, |
| 999 | | 128*16 |
| 948 | 16*16*8 |
| 1000 | 949 | }; |
| 1001 | 950 | static const gfx_layout spritelayout4 = /* System GX 6bpp sprite layout */ |
| 1002 | 951 | { |
| r31470 | r31471 | |
| 1023 | 972 | alt_k055673_rom = (UINT16 *)machine().root_device().memregion(m_memory_region)->base(); |
| 1024 | 973 | |
| 1025 | 974 | /* decode the graphics */ |
| 1026 | | switch (m_plane_order) |
| 975 | switch (m_bpp) |
| 1027 | 976 | { |
| 1028 | 977 | case K055673_LAYOUT_GX: |
| 1029 | 978 | size4 = (machine().root_device().memregion(m_memory_region)->bytes()/(1024*1024))/5; |
| r31470 | r31471 | |
| 1155 | 1104 | }; |
| 1156 | 1105 | |
| 1157 | 1106 | /* decode the graphics */ |
| 1158 | | switch (m_plane_order) |
| 1107 | switch (m_bpp) |
| 1159 | 1108 | { |
| 1160 | 1109 | case NORMAL_PLANE_ORDER: |
| 1161 | 1110 | total = machine().root_device().memregion(m_memory_region)->bytes() / 128; |
| r31470 | r31471 | |
| 1232 | 1181 | { |
| 1233 | 1182 | return(m_kx46_regs[offset * 2] << 8 | m_kx46_regs[offset * 2 + 1]); |
| 1234 | 1183 | } // OBJSET1 |
| 1235 | | |
| 1236 | | READ16_MEMBER( k053247_device::k053247_reg_word_r ) |
| 1237 | | { |
| 1238 | | return(m_kx47_regs[offset]); |
| 1239 | | } // OBJSET2 |
| 1240 | | |
| 1241 | | READ32_MEMBER( k053247_device::k053247_reg_long_r ) |
| 1242 | | { |
| 1243 | | offset <<= 1; |
| 1244 | | return (k053247_reg_word_r( space, offset + 1, 0xffff) | k053247_reg_word_r( space, offset, 0xffff) << 16); |
| 1245 | | } |
trunk/src/mame/video/k053246_k053247_k055673.h
| r31470 | r31471 | |
| 6 | 6 | #ifndef __K05324x_H__ |
| 7 | 7 | #define __K05324x_H__ |
| 8 | 8 | |
| 9 | | #define NORMAL_PLANE_ORDER 0x0123 |
| 9 | #define NORMAL_PLANE_ORDER 4 |
| 10 | 10 | |
| 11 | 11 | typedef device_delegate<void (int *code, int *color, int *priority_mask)> k053247_cb_delegate; |
| 12 | 12 | #define K053246_CB_MEMBER(_name) void _name(int *code, int *color, int *priority_mask) |
| r31470 | r31471 | |
| 26 | 26 | |
| 27 | 27 | |
| 28 | 28 | /** Konami 053246 / 053247 / 055673 **/ |
| 29 | | #define K055673_LAYOUT_GX 0 |
| 30 | | #define K055673_LAYOUT_RNG 1 |
| 31 | | #define K055673_LAYOUT_LE2 2 |
| 32 | | #define K055673_LAYOUT_GX6 3 |
| 29 | #define K055673_LAYOUT_GX 5 |
| 30 | #define K055673_LAYOUT_RNG 4 |
| 31 | #define K055673_LAYOUT_LE2 8 |
| 32 | #define K055673_LAYOUT_GX6 6 |
| 33 | 33 | |
| 34 | 34 | |
| 35 | 35 | /* |
| r31470 | r31471 | |
| 68 | 68 | static void static_set_gfxdecode_tag(device_t &device, const char *tag); |
| 69 | 69 | static void static_set_palette_tag(device_t &device, const char *tag); |
| 70 | 70 | static void set_k053247_callback(device_t &device, k053247_cb_delegate callback) { downcast<k053247_device &>(device).m_k053247_cb = callback; } |
| 71 | | static void set_config(device_t &device, const char *gfx_reg, int gfx_num, int order, int dx, int dy) |
| 71 | static void set_config(device_t &device, const char *gfx_reg, int gfx_num, int bpp, int dx, int dy) |
| 72 | 72 | { |
| 73 | 73 | k053247_device &dev = downcast<k053247_device &>(device); |
| 74 | 74 | dev.m_memory_region = gfx_reg; |
| 75 | 75 | dev.m_gfx_num = gfx_num; |
| 76 | | dev.m_plane_order = order; |
| 76 | dev.m_bpp = bpp; |
| 77 | 77 | dev.m_dx = dx; |
| 78 | 78 | dev.m_dy = dy; |
| 79 | 79 | } |
| r31470 | r31471 | |
| 81 | 81 | void clear_all(); |
| 82 | 82 | |
| 83 | 83 | DECLARE_READ16_MEMBER( k055673_rom_word_r ); |
| 84 | | DECLARE_READ16_MEMBER( k055673_GX6bpp_rom_word_r ); |
| 84 | DECLARE_READ16_MEMBER( k055673_5bpp_rom_word_r ); |
| 85 | 85 | |
| 86 | 86 | DECLARE_READ8_MEMBER( k053247_r ); |
| 87 | 87 | DECLARE_WRITE8_MEMBER( k053247_w ); |
| 88 | 88 | DECLARE_READ16_MEMBER( k053247_word_r ); |
| 89 | 89 | DECLARE_WRITE16_MEMBER( k053247_word_w ); |
| 90 | | DECLARE_READ32_MEMBER( k053247_long_r ); |
| 91 | | DECLARE_WRITE32_MEMBER( k053247_long_w ); |
| 92 | | DECLARE_WRITE16_MEMBER( k053247_reg_word_w ); // "OBJSET2" registers |
| 93 | | DECLARE_WRITE32_MEMBER( k053247_reg_long_w ); |
| 90 | DECLARE_WRITE16_MEMBER( k055673_reg_word_w ); // "OBJSET2" registers |
| 94 | 91 | |
| 95 | 92 | void k053247_sprites_draw( bitmap_ind16 &bitmap,const rectangle &cliprect); |
| 96 | 93 | void k053247_sprites_draw( bitmap_rgb32 &bitmap,const rectangle &cliprect); |
| r31470 | r31471 | |
| 104 | 101 | DECLARE_WRITE8_MEMBER( k053246_w ); |
| 105 | 102 | DECLARE_READ16_MEMBER( k053246_word_r ); |
| 106 | 103 | DECLARE_WRITE16_MEMBER( k053246_word_w ); |
| 107 | | DECLARE_READ32_MEMBER( k053246_long_r ); |
| 108 | | DECLARE_WRITE32_MEMBER( k053246_long_w ); |
| 109 | 104 | |
| 110 | 105 | void k053246_set_objcha_line( int state); |
| 111 | 106 | int k053246_is_irq_enabled(void); |
| 112 | 107 | int k053246_read_register( int regnum); |
| 113 | 108 | |
| 114 | 109 | DECLARE_READ16_MEMBER( k053246_reg_word_r ); // OBJSET1 |
| 115 | | DECLARE_READ16_MEMBER( k053247_reg_word_r ); // OBJSET2 |
| 116 | | DECLARE_READ32_MEMBER( k053247_reg_long_r ); // OBJSET2 |
| 117 | 110 | |
| 118 | 111 | UINT16 *m_ram; |
| 119 | 112 | |
| r31470 | r31471 | |
| 130 | 123 | //FIXME: device should be updated to use device_gfx_interface to get rid of most of these! |
| 131 | 124 | const char *m_memory_region; |
| 132 | 125 | int m_gfx_num; |
| 133 | | int m_plane_order; |
| 126 | int m_bpp; |
| 134 | 127 | required_device<gfxdecode_device> m_gfxdecode; |
| 135 | 128 | required_device<palette_device> m_palette; |
| 136 | 129 | |
trunk/src/mame/drivers/mystwarr.c
| r31470 | r31471 | |
| 1 | | #define MW_DEBUG 0 |
| 2 | | |
| 3 | 1 | /************************************************************************** |
| 4 | 2 | * Mystic Warrior (c) 1993 Konami |
| 5 | 3 | * Metamorphic Force (c) 1993 Konami |
| r31470 | r31471 | |
| 298 | 296 | AM_RANGE(0x400000, 0x40ffff) AM_READWRITE(k053247_scattered_word_r,k053247_scattered_word_w) AM_SHARE("spriteram") |
| 299 | 297 | AM_RANGE(0x480000, 0x4800ff) AM_DEVWRITE("k055555", k055555_device, K055555_word_w) |
| 300 | 298 | AM_RANGE(0x482000, 0x48200f) AM_DEVREAD("k055673", k055673_device, k055673_rom_word_r) |
| 301 | | AM_RANGE(0x482010, 0x48201f) AM_DEVWRITE("k055673", k055673_device,k053247_reg_word_w) |
| 299 | AM_RANGE(0x482010, 0x48201f) AM_DEVWRITE("k055673", k055673_device,k055673_reg_word_w) |
| 302 | 300 | AM_RANGE(0x484000, 0x484007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) |
| 303 | 301 | AM_RANGE(0x48a000, 0x48a01f) AM_DEVWRITE("k054338", k054338_device, word_w) |
| 304 | 302 | AM_RANGE(0x48c000, 0x48c03f) AM_DEVWRITE("k056832", k056832_device,word_w) |
| r31470 | r31471 | |
| 319 | 317 | AM_RANGE(0x602000, 0x603fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read(essential) |
| 320 | 318 | AM_RANGE(0x680000, 0x683fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) |
| 321 | 319 | AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 322 | | #if MW_DEBUG |
| 323 | | AM_RANGE(0x482010, 0x48201f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r) |
| 324 | | AM_RANGE(0x484000, 0x484007) AM_DEVREAD("k055673", k055673_device, k053246_reg_word_r) |
| 325 | | AM_RANGE(0x48a000, 0x48a01f) AM_DEVREAD("k054338", k054338_device, word_r) |
| 326 | | AM_RANGE(0x48c000, 0x48c03f) AM_DEVREAD("k056832", k056832_device, word_r) |
| 327 | | #endif |
| 328 | 320 | ADDRESS_MAP_END |
| 329 | 321 | |
| 330 | 322 | /* Metamorphic Force */ |
| r31470 | r31471 | |
| 335 | 327 | AM_RANGE(0x211000, 0x21ffff) AM_RAM |
| 336 | 328 | AM_RANGE(0x240000, 0x240007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) |
| 337 | 329 | AM_RANGE(0x244000, 0x24400f) AM_DEVREAD("k055673", k055673_device, k055673_rom_word_r) |
| 338 | | AM_RANGE(0x244010, 0x24401f) AM_DEVWRITE("k055673", k055673_device,k053247_reg_word_w) |
| 330 | AM_RANGE(0x244010, 0x24401f) AM_DEVWRITE("k055673", k055673_device,k055673_reg_word_w) |
| 339 | 331 | AM_RANGE(0x24c000, 0x24ffff) AM_DEVREADWRITE("k053250_1", k053250_device, ram_r, ram_w) |
| 340 | 332 | AM_RANGE(0x250000, 0x25000f) AM_DEVREADWRITE("k053250_1", k053250_device, reg_r, reg_w) |
| 341 | 333 | AM_RANGE(0x254000, 0x25401f) AM_DEVWRITE("k054338", k054338_device, word_w) |
| r31470 | r31471 | |
| 359 | 351 | AM_RANGE(0x310000, 0x311fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) |
| 360 | 352 | AM_RANGE(0x320000, 0x321fff) AM_DEVREAD("k053250_1", k053250_device, rom_r) |
| 361 | 353 | AM_RANGE(0x330000, 0x331fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 362 | | #if MW_DEBUG |
| 363 | | AM_RANGE(0x240000, 0x240007) AM_DEVREAD("k055673", k055673_device, k053246_reg_word_r) |
| 364 | | AM_RANGE(0x244010, 0x24401f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r) |
| 365 | | AM_RANGE(0x254000, 0x25401f) AM_DEVREAD("k054338", k054338_device, word_r) |
| 366 | | AM_RANGE(0x26C000, 0x26C007) AM_DEVREAD("k056832", k056832_device, b_word_r) |
| 367 | | AM_RANGE(0x270000, 0x27003f) AM_DEVREAD("k056832", k056832_device, word_r) |
| 368 | | #endif |
| 369 | 354 | ADDRESS_MAP_END |
| 370 | 355 | |
| 371 | 356 | /* Violent Storm */ |
| r31470 | r31471 | |
| 376 | 361 | AM_RANGE(0x211000, 0x21ffff) AM_RAM |
| 377 | 362 | AM_RANGE(0x240000, 0x240007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) |
| 378 | 363 | AM_RANGE(0x244000, 0x24400f) AM_DEVREAD("k055673", k055673_device, k055673_rom_word_r) |
| 379 | | AM_RANGE(0x244010, 0x24401f) AM_DEVWRITE("k055673", k055673_device,k053247_reg_word_w) |
| 364 | AM_RANGE(0x244010, 0x24401f) AM_DEVWRITE("k055673", k055673_device,k055673_reg_word_w) |
| 380 | 365 | AM_RANGE(0x24c000, 0x24ffff) AM_RAM // K053250 ram |
| 381 | 366 | AM_RANGE(0x250000, 0x25000f) AM_RAM // K053250 reg |
| 382 | 367 | AM_RANGE(0x254000, 0x25401f) AM_DEVWRITE("k054338", k054338_device, word_w) |
| r31470 | r31471 | |
| 401 | 386 | AM_RANGE(0x304000, 0x3041ff) AM_RAM |
| 402 | 387 | AM_RANGE(0x310000, 0x311fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) |
| 403 | 388 | AM_RANGE(0x330000, 0x331fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") |
| 404 | | #if MW_DEBUG |
| 405 | | AM_RANGE(0x240000, 0x240007) AM_DEVREAD("k055673", k055673_device, k053246_reg_word_r) |
| 406 | | AM_RANGE(0x244010, 0x24401f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r) |
| 407 | | AM_RANGE(0x254000, 0x25401f) AM_DEVREAD("k054338", k054338_device, word_r) |
| 408 | | AM_RANGE(0x26C000, 0x26C007) AM_DEVREAD("k056832", k056832_device, b_word_r) |
| 409 | | AM_RANGE(0x270000, 0x27003f) AM_DEVREAD("k056832", k056832_device, word_r) |
| 410 | | #endif |
| 411 | 389 | ADDRESS_MAP_END |
| 412 | 390 | |
| 413 | 391 | // Martial Champion specific interfaces |
| r31470 | r31471 | |
| 467 | 445 | AM_RANGE(0x300000, 0x3fffff) AM_ROM // data ROM |
| 468 | 446 | AM_RANGE(0x400000, 0x4000ff) AM_DEVWRITE("k055555", k055555_device, K055555_word_w) // PCU2 |
| 469 | 447 | AM_RANGE(0x402000, 0x40200f) AM_DEVREAD("k055673", k055673_device, k055673_rom_word_r) // sprite ROM readback |
| 470 | | AM_RANGE(0x402010, 0x40201f) AM_DEVWRITE("k055673", k055673_device,k053247_reg_word_w) // OBJSET2 |
| 448 | AM_RANGE(0x402010, 0x40201f) AM_DEVWRITE("k055673", k055673_device,k055673_reg_word_w) // OBJSET2 |
| 471 | 449 | AM_RANGE(0x404000, 0x404007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) // OBJSET1 |
| 472 | 450 | AM_RANGE(0x40a000, 0x40a01f) AM_DEVWRITE("k054338", k054338_device, word_w) // CLTC |
| 473 | 451 | AM_RANGE(0x40c000, 0x40c03f) AM_DEVWRITE("k056832", k056832_device,word_w) // VACSET |
| r31470 | r31471 | |
| 490 | 468 | AM_RANGE(0x680000, 0x681fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM |
| 491 | 469 | AM_RANGE(0x682000, 0x683fff) AM_DEVREADWRITE("k056832", k056832_device,ram_word_r,ram_word_w) // tilemap RAM mirror read/write (essential) |
| 492 | 470 | AM_RANGE(0x700000, 0x703fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) // tile ROM readback |
| 493 | | #if MW_DEBUG |
| 494 | | AM_RANGE(0x402010, 0x40201f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r) |
| 495 | | AM_RANGE(0x404000, 0x404007) AM_DEVREAD("k055673", k055673_device, k053246_reg_word_r) |
| 496 | | AM_RANGE(0x40a000, 0x40a01f) AM_DEVREAD("k054338", k054338_device, word_r) |
| 497 | | AM_RANGE(0x40c000, 0x40c03f) AM_DEVREAD("k056832", k056832_device, word_r) |
| 498 | | AM_RANGE(0x41e000, 0x41e007) AM_DEVREAD("k056832", k056832_device, b_word_r) |
| 499 | | #endif |
| 500 | 471 | ADDRESS_MAP_END |
| 501 | 472 | |
| 502 | 473 | /* Ultimate Battler Dadandarn */ |
| r31470 | r31471 | |
| 509 | 480 | AM_RANGE(0x430000, 0x430007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) |
| 510 | 481 | AM_RANGE(0x440000, 0x443fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) |
| 511 | 482 | AM_RANGE(0x450000, 0x45000f) AM_DEVREAD("k055673", k055673_device, k055673_rom_word_r) |
| 512 | | AM_RANGE(0x450010, 0x45001f) AM_DEVWRITE("k055673", k055673_device,k053247_reg_word_w) |
| 483 | AM_RANGE(0x450010, 0x45001f) AM_DEVWRITE("k055673", k055673_device,k055673_reg_word_w) |
| 513 | 484 | AM_RANGE(0x460000, 0x46001f) AM_WRITEONLY AM_SHARE("k053936_0_ct16") |
| 514 | 485 | AM_RANGE(0x470000, 0x470fff) AM_RAM AM_SHARE("k053936_0_li16") |
| 515 | 486 | AM_RANGE(0x480000, 0x48003f) AM_DEVWRITE("k056832", k056832_device,word_w) // VACSET |
| r31470 | r31471 | |
| 533 | 504 | AM_RANGE(0xa00000, 0xa7ffff) AM_READ(ddd_053936_tilerom_1_r) // 128k tilemap readback |
| 534 | 505 | AM_RANGE(0xc00000, 0xdfffff) AM_READ(ddd_053936_tilerom_2_r) // tile character readback |
| 535 | 506 | AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // watchdog |
| 536 | | #if MW_DEBUG |
| 537 | | AM_RANGE(0x430000, 0x430007) AM_DEVREAD("k055673", k055673_device, k053246_reg_word_r) |
| 538 | | AM_RANGE(0x450010, 0x45001f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r) |
| 539 | | AM_RANGE(0x480000, 0x48003f) AM_DEVREAD("k056832", k056832_device, word_r) |
| 540 | | AM_RANGE(0x482000, 0x482007) AM_DEVREAD("k056832", k056832_device, b_word_r) |
| 541 | | AM_RANGE(0x48c000, 0x48c01f) AM_DEVREAD("k054338", k054338_device, word_r) |
| 542 | | #endif |
| 543 | 507 | ADDRESS_MAP_END |
| 544 | 508 | |
| 545 | 509 | /* Gaiapolis */ |
| r31470 | r31471 | |
| 555 | 519 | AM_RANGE(0x430000, 0x430007) AM_DEVWRITE("k055673", k055673_device, k053246_word_w) |
| 556 | 520 | AM_RANGE(0x440000, 0x441fff) AM_DEVREAD("k056832", k056832_device, mw_rom_word_r) |
| 557 | 521 | AM_RANGE(0x450000, 0x45000f) AM_DEVREAD("k055673", k055673_device, k055673_rom_word_r) |
| 558 | | AM_RANGE(0x450010, 0x45001f) AM_DEVWRITE("k055673", k055673_device,k053247_reg_word_w) |
| 522 | AM_RANGE(0x450010, 0x45001f) AM_DEVWRITE("k055673", k055673_device,k055673_reg_word_w) |
| 559 | 523 | AM_RANGE(0x460000, 0x46001f) AM_WRITEONLY AM_SHARE("k053936_0_ct16") |
| 560 | 524 | AM_RANGE(0x470000, 0x470fff) AM_RAM AM_SHARE("k053936_0_li16") |
| 561 | 525 | AM_RANGE(0x480000, 0x48003f) AM_DEVWRITE("k056832", k056832_device,word_w) // VACSET |
| r31470 | r31471 | |
| 579 | 543 | AM_RANGE(0xa00000, 0xa7ffff) AM_READ(ddd_053936_tilerom_1_r) // 128k tilemap readback |
| 580 | 544 | AM_RANGE(0xc00000, 0xdfffff) AM_READ(gai_053936_tilerom_2_r) // tile character readback |
| 581 | 545 | AM_RANGE(0xe00000, 0xe00001) AM_WRITENOP // watchdog |
| 582 | | #if MW_DEBUG |
| 583 | | AM_RANGE(0x430000, 0x430007) AM_DEVREAD("k055673", k055673_device, k053246_reg_word_r) |
| 584 | | AM_RANGE(0x450010, 0x45001f) AM_DEVREAD("k055673", k055673_device, k053247_reg_word_r) |
| 585 | | AM_RANGE(0x480000, 0x48003f) AM_DEVREAD("k056832", k056832_device, word_r) |
| 586 | | AM_RANGE(0x482000, 0x482007) AM_DEVREAD("k056832", k056832_device, b_word_r) |
| 587 | | AM_RANGE(0x48c000, 0x48c01f) AM_DEVREAD("k054338", k054338_device, word_r) |
| 588 | | #endif |
| 589 | 546 | ADDRESS_MAP_END |
| 590 | 547 | |
| 591 | 548 | /**********************************************************************************/ |
| r31470 | r31471 | |
| 1013 | 970 | |
| 1014 | 971 | MCFG_DEVICE_ADD("k055673", K055673, 0) |
| 1015 | 972 | MCFG_K055673_CB(mystwarr_state, mystwarr_sprite_callback) |
| 1016 | | MCFG_K055673_CONFIG("gfx2", 0, 0, -48, -24) |
| 973 | MCFG_K055673_CONFIG("gfx2", 0, K055673_LAYOUT_GX, -48, -24) |
| 1017 | 974 | MCFG_K055673_GFXDECODE("gfxdecode") |
| 1018 | 975 | MCFG_K055673_PALETTE("palette") |
| 1019 | 976 | |
| r31470 | r31471 | |
| 1066 | 1023 | |
| 1067 | 1024 | MCFG_DEVICE_MODIFY("k055673") |
| 1068 | 1025 | MCFG_K055673_CB(mystwarr_state, metamrph_sprite_callback) |
| 1069 | | MCFG_K055673_CONFIG("gfx2", 0, 1, -62, -23) |
| 1026 | MCFG_K055673_CONFIG("gfx2", 0, K055673_LAYOUT_RNG, -62, -23) |
| 1070 | 1027 | MACHINE_CONFIG_END |
| 1071 | 1028 | |
| 1072 | 1029 | static MACHINE_CONFIG_DERIVED( metamrph, mystwarr ) |
| r31470 | r31471 | |
| 1099 | 1056 | |
| 1100 | 1057 | MCFG_DEVICE_MODIFY("k055673") |
| 1101 | 1058 | MCFG_K055673_CB(mystwarr_state, metamrph_sprite_callback) |
| 1102 | | MCFG_K055673_CONFIG("gfx2", 0, 1, -51, -24) |
| 1059 | MCFG_K055673_CONFIG("gfx2", 0, K055673_LAYOUT_RNG, -51, -24) |
| 1103 | 1060 | MACHINE_CONFIG_END |
| 1104 | 1061 | |
| 1105 | 1062 | static MACHINE_CONFIG_DERIVED( dadandrn, mystwarr ) |
| r31470 | r31471 | |
| 1132 | 1089 | |
| 1133 | 1090 | MCFG_DEVICE_MODIFY("k055673") |
| 1134 | 1091 | MCFG_K055673_CB(mystwarr_state, gaiapols_sprite_callback) |
| 1135 | | MCFG_K055673_CONFIG("gfx2", 0, 0, -42, -22) |
| 1092 | MCFG_K055673_CONFIG("gfx2", 0, K055673_LAYOUT_GX, -42, -22) |
| 1136 | 1093 | MACHINE_CONFIG_END |
| 1137 | 1094 | |
| 1138 | 1095 | static MACHINE_CONFIG_DERIVED( gaiapols, mystwarr ) |
| r31470 | r31471 | |
| 1168 | 1125 | |
| 1169 | 1126 | MCFG_DEVICE_MODIFY("k055673") |
| 1170 | 1127 | MCFG_K055673_CB(mystwarr_state, gaiapols_sprite_callback) |
| 1171 | | MCFG_K055673_CONFIG("gfx2", 0, 1, -61, -22) // stage2 brick walls |
| 1128 | MCFG_K055673_CONFIG("gfx2", 0, K055673_LAYOUT_RNG, -61, -22) // stage2 brick walls |
| 1172 | 1129 | MACHINE_CONFIG_END |
| 1173 | 1130 | |
| 1174 | 1131 | static MACHINE_CONFIG_DERIVED( martchmp, mystwarr ) |
| r31470 | r31471 | |
| 1203 | 1160 | |
| 1204 | 1161 | MCFG_DEVICE_MODIFY("k055673") |
| 1205 | 1162 | MCFG_K055673_CB(mystwarr_state, martchmp_sprite_callback) |
| 1206 | | MCFG_K055673_CONFIG("gfx2", 0, 0, -58, -23) |
| 1163 | MCFG_K055673_CONFIG("gfx2", 0, K055673_LAYOUT_GX, -58, -23) |
| 1207 | 1164 | MACHINE_CONFIG_END |
| 1208 | 1165 | |
| 1209 | 1166 | /**********************************************************************************/ |
trunk/src/mame/drivers/konamigx.c
| r31470 | r31471 | |
| 104 | 104 | #include "includes/konamigx.h" |
| 105 | 105 | #include "rendlay.h" |
| 106 | 106 | |
| 107 | | #define GX_DEBUG 0 |
| 108 | 107 | |
| 109 | 108 | |
| 110 | 109 | |
| 111 | | |
| 112 | 110 | static int konamigx_cfgport; |
| 113 | 111 | |
| 114 | 112 | static int gx_rdport1_3, gx_syncen; |
| r31470 | r31471 | |
| 745 | 743 | /**********************************************************************************/ |
| 746 | 744 | /* system or game dependent handlers */ |
| 747 | 745 | |
| 748 | | READ32_MEMBER(konamigx_state::gx5bppspr_r) |
| 749 | | { |
| 750 | | return (m_k055673->k055673_rom_word_r(space, offset*2+1, 0xffff) | m_k055673->k055673_rom_word_r(space, offset*2, 0xffff)<<16); |
| 751 | | } |
| 752 | | |
| 753 | | READ32_MEMBER(konamigx_state::gx6bppspr_r) |
| 754 | | { |
| 755 | | return (m_k055673->k055673_GX6bpp_rom_word_r(space, offset*2+1, 0xffff) | m_k055673->k055673_GX6bpp_rom_word_r(space, offset*2, 0xffff)<<16); |
| 756 | | } |
| 757 | | |
| 758 | 746 | READ32_MEMBER(konamigx_state::type1_roz_r1) |
| 759 | 747 | { |
| 760 | 748 | UINT32 *ROM = (UINT32 *)memregion("gfx3")->base(); |
| r31470 | r31471 | |
| 993 | 981 | AM_RANGE(0x400000, 0x7fffff) AM_ROM // data ROM |
| 994 | 982 | AM_RANGE(0xc00000, 0xc1ffff) AM_RAM AM_SHARE("workram") |
| 995 | 983 | AM_RANGE(0xd00000, 0xd01fff) AM_DEVREAD("k056832", k056832_device, k_5bpp_rom_long_r) |
| 996 | | AM_RANGE(0xd20000, 0xd20fff) AM_DEVREADWRITE("k055673", k055673_device, k053247_long_r, k053247_long_w) |
| 984 | AM_RANGE(0xd20000, 0xd20fff) AM_DEVREADWRITE16("k055673", k055673_device, k053247_word_r, k053247_word_w, 0xffffffff) |
| 997 | 985 | AM_RANGE(0xd21000, 0xd23fff) AM_RAM |
| 998 | 986 | AM_RANGE(0xd40000, 0xd4003f) AM_DEVWRITE("k056832", k056832_device, long_w) |
| 999 | 987 | AM_RANGE(0xd44000, 0xd4400f) AM_WRITE(konamigx_tilebank_w) |
| 1000 | | AM_RANGE(0xd48000, 0xd48007) AM_DEVWRITE("k055673", k055673_device, k053246_long_w) |
| 1001 | | AM_RANGE(0xd4a010, 0xd4a01f) AM_DEVWRITE("k055673", k055673_device, k053247_reg_long_w) |
| 988 | AM_RANGE(0xd48000, 0xd48007) AM_DEVWRITE16("k055673", k055673_device, k053246_word_w, 0xffffffff) |
| 989 | AM_RANGE(0xd4a000, 0xd4a00f) AM_DEVREAD16("k055673", k055673_device, k055673_rom_word_r, 0xffffffff) |
| 990 | AM_RANGE(0xd4a010, 0xd4a01f) AM_DEVWRITE16("k055673", k055673_device, k055673_reg_word_w, 0xffffffff) |
| 1002 | 991 | AM_RANGE(0xd4c000, 0xd4c01f) AM_READWRITE(ccu_r, ccu_w) |
| 1003 | 992 | AM_RANGE(0xd4e000, 0xd4e01f) AM_WRITENOP |
| 1004 | 993 | AM_RANGE(0xd50000, 0xd500ff) AM_DEVWRITE("k055555", k055555_device, K055555_long_w) |
| r31470 | r31471 | |
| 1011 | 1000 | AM_RANGE(0xd80000, 0xd8001f) AM_DEVWRITE("k054338", k054338_device, long_w) |
| 1012 | 1001 | AM_RANGE(0xda0000, 0xda1fff) AM_DEVREADWRITE("k056832", k056832_device, ram_long_r, ram_long_w) |
| 1013 | 1002 | AM_RANGE(0xda2000, 0xda3fff) AM_DEVREADWRITE("k056832", k056832_device, ram_long_r, ram_long_w) |
| 1014 | | #if GX_DEBUG |
| 1015 | | AM_RANGE(0xd40000, 0xd4003f) AM_DEVREAD("k056832", k056832_device, long_r) |
| 1016 | | AM_RANGE(0xd4a010, 0xd4a01f) AM_DEVREAD("k055673", k055673_device, k053247_reg_long_r) |
| 1017 | | #endif |
| 1018 | 1003 | ADDRESS_MAP_END |
| 1019 | 1004 | |
| 1020 | 1005 | static ADDRESS_MAP_START( gx_type1_map, AS_PROGRAM, 32, konamigx_state ) |
| 1021 | | AM_RANGE(0xd4a000, 0xd4a01f) AM_READ(gx6bppspr_r) // sprite ROM readback |
| 1022 | 1006 | AM_RANGE(0xd90000, 0xd97fff) AM_RAM_WRITE(konamigx_palette_w) AM_SHARE("paletteram") |
| 1023 | 1007 | AM_RANGE(0xdc0000, 0xdc1fff) AM_RAM // LAN RAM? (Racin' Force has, Open Golf doesn't) |
| 1024 | 1008 | AM_RANGE(0xdd0000, 0xdd00ff) AM_READNOP AM_WRITENOP // LAN board |
| r31470 | r31471 | |
| 2443 | 2427 | |
| 2444 | 2428 | /* sprites */ |
| 2445 | 2429 | ROM_REGION( 0x1000000, "gfx2", ROMREGION_ERASE00 ) |
| 2446 | | ROM_LOAD64_WORD( "705a10.33g", 0x000000, 0x400000, CRC(fc4dc78b) SHA1(520cdcf9ca20ec1c84be734e06e183e7a871090b) ) |
| 2447 | | ROM_LOAD64_WORD( "705a11.30g", 0x000002, 0x400000, CRC(68542ce9) SHA1(a4294da1d1026e3a9d070575e5855935389a705f) ) |
| 2448 | | ROM_LOAD64_WORD( "705a13.28g", 0x000004, 0x400000, CRC(3b62584b) SHA1(69718f47ff1e8d65a11972af1ed5068db175f625) ) |
| 2449 | | ROM_LOAD64_WORD( "705a17.25g", 0x000006, 0x400000, CRC(971d2812) SHA1(ee0819faf6f6c8420d5d3742cb39dfb76b9ce7a4) ) |
| 2430 | ROM_LOAD64_WORD( "705a17.25g", 0x000000, 0x400000, CRC(971d2812) SHA1(ee0819faf6f6c8420d5d3742cb39dfb76b9ce7a4) ) |
| 2431 | ROM_LOAD64_WORD( "705a13.28g", 0x000002, 0x400000, CRC(3b62584b) SHA1(69718f47ff1e8d65a11972af1ed5068db175f625) ) |
| 2432 | ROM_LOAD64_WORD( "705a11.30g", 0x000004, 0x400000, CRC(68542ce9) SHA1(a4294da1d1026e3a9d070575e5855935389a705f) ) |
| 2433 | ROM_LOAD64_WORD( "705a10.33g", 0x000006, 0x400000, CRC(fc4dc78b) SHA1(520cdcf9ca20ec1c84be734e06e183e7a871090b) ) |
| 2450 | 2434 | |
| 2451 | 2435 | /* sound data */ |
| 2452 | 2436 | ROM_REGION( 0x400000, "shared", 0 ) |
| r31470 | r31471 | |
| 2502 | 2486 | |
| 2503 | 2487 | /* sprites */ |
| 2504 | 2488 | ROM_REGION( 0x1000000, "gfx2", ROMREGION_ERASE00 ) |
| 2505 | | ROM_LOAD64_WORD( "705a10.33g", 0x000000, 0x400000, CRC(fc4dc78b) SHA1(520cdcf9ca20ec1c84be734e06e183e7a871090b) ) |
| 2506 | | ROM_LOAD64_WORD( "705a11.30g", 0x000002, 0x400000, CRC(68542ce9) SHA1(a4294da1d1026e3a9d070575e5855935389a705f) ) |
| 2507 | | ROM_LOAD64_WORD( "705a13.28g", 0x000004, 0x400000, CRC(3b62584b) SHA1(69718f47ff1e8d65a11972af1ed5068db175f625) ) |
| 2508 | | ROM_LOAD64_WORD( "705a17.25g", 0x000006, 0x400000, CRC(971d2812) SHA1(ee0819faf6f6c8420d5d3742cb39dfb76b9ce7a4) ) |
| 2489 | ROM_LOAD64_WORD( "705a17.25g", 0x000000, 0x400000, CRC(971d2812) SHA1(ee0819faf6f6c8420d5d3742cb39dfb76b9ce7a4) ) |
| 2490 | ROM_LOAD64_WORD( "705a13.28g", 0x000002, 0x400000, CRC(3b62584b) SHA1(69718f47ff1e8d65a11972af1ed5068db175f625) ) |
| 2491 | ROM_LOAD64_WORD( "705a11.30g", 0x000004, 0x400000, CRC(68542ce9) SHA1(a4294da1d1026e3a9d070575e5855935389a705f) ) |
| 2492 | ROM_LOAD64_WORD( "705a10.33g", 0x000006, 0x400000, CRC(fc4dc78b) SHA1(520cdcf9ca20ec1c84be734e06e183e7a871090b) ) |
| 2509 | 2493 | |
| 2510 | 2494 | /* sound data */ |
| 2511 | 2495 | ROM_REGION( 0x400000, "shared", 0 ) |
| r31470 | r31471 | |
| 3200 | 3184 | |
| 3201 | 3185 | /* sprites */ |
| 3202 | 3186 | ROM_REGION( 0x800000, "gfx2", ROMREGION_ERASE00 ) |
| 3203 | | ROM_LOAD64_WORD( "312a08.33g", 0x000000, 2*1024*1024, CRC(29015d56) SHA1(7273270804ecefd8f59469c2c2a8a89fb045a12b) ) |
| 3204 | | ROM_LOAD64_WORD( "312a09.30g", 0x000002, 2*1024*1024, CRC(b2c5d6d5) SHA1(8248612275ca862c6688de5c6f24f37aeb3f9fe5) ) |
| 3205 | | ROM_LOAD64_WORD( "312a10.28g", 0x000004, 2*1024*1024, CRC(3c570d04) SHA1(ebbf7d28726e98c8895c9bf901f8b2dd38018c77) ) |
| 3206 | | ROM_LOAD64_WORD( "312a11.25g", 0x000006, 2*1024*1024, CRC(5f474357) SHA1(1f6d99f1ea69e07a65731ea4eae5917452cfcab6) ) |
| 3187 | ROM_LOAD64_WORD( "312a11.25g", 0x000000, 2*1024*1024, CRC(5f474357) SHA1(1f6d99f1ea69e07a65731ea4eae5917452cfcab6) ) |
| 3188 | ROM_LOAD64_WORD( "312a10.28g", 0x000002, 2*1024*1024, CRC(3c570d04) SHA1(ebbf7d28726e98c8895c9bf901f8b2dd38018c77) ) |
| 3189 | ROM_LOAD64_WORD( "312a09.30g", 0x000004, 2*1024*1024, CRC(b2c5d6d5) SHA1(8248612275ca862c6688de5c6f24f37aeb3f9fe5) ) |
| 3190 | ROM_LOAD64_WORD( "312a08.33g", 0x000006, 2*1024*1024, CRC(29015d56) SHA1(7273270804ecefd8f59469c2c2a8a89fb045a12b) ) |
| 3207 | 3191 | |
| 3208 | 3192 | /* sound data */ |
| 3209 | 3193 | ROM_REGION( 0x400000, "shared", 0 ) |
| r31470 | r31471 | |
| 3238 | 3222 | |
| 3239 | 3223 | /* sprites */ |
| 3240 | 3224 | ROM_REGION( 0x800000, "gfx2", ROMREGION_ERASE00 ) |
| 3241 | | ROM_LOAD64_WORD( "312a08.33g", 0x000000, 2*1024*1024, CRC(29015d56) SHA1(7273270804ecefd8f59469c2c2a8a89fb045a12b) ) |
| 3242 | | ROM_LOAD64_WORD( "312a09.30g", 0x000002, 2*1024*1024, CRC(b2c5d6d5) SHA1(8248612275ca862c6688de5c6f24f37aeb3f9fe5) ) |
| 3243 | | ROM_LOAD64_WORD( "312a10.28g", 0x000004, 2*1024*1024, CRC(3c570d04) SHA1(ebbf7d28726e98c8895c9bf901f8b2dd38018c77) ) |
| 3244 | | ROM_LOAD64_WORD( "312a11.25g", 0x000006, 2*1024*1024, CRC(5f474357) SHA1(1f6d99f1ea69e07a65731ea4eae5917452cfcab6) ) |
| 3225 | ROM_LOAD64_WORD( "312a11.25g", 0x000000, 2*1024*1024, CRC(5f474357) SHA1(1f6d99f1ea69e07a65731ea4eae5917452cfcab6) ) |
| 3226 | ROM_LOAD64_WORD( "312a10.28g", 0x000002, 2*1024*1024, CRC(3c570d04) SHA1(ebbf7d28726e98c8895c9bf901f8b2dd38018c77) ) |
| 3227 | ROM_LOAD64_WORD( "312a09.30g", 0x000004, 2*1024*1024, CRC(b2c5d6d5) SHA1(8248612275ca862c6688de5c6f24f37aeb3f9fe5) ) |
| 3228 | ROM_LOAD64_WORD( "312a08.33g", 0x000006, 2*1024*1024, CRC(29015d56) SHA1(7273270804ecefd8f59469c2c2a8a89fb045a12b) ) |
| 3245 | 3229 | |
| 3246 | 3230 | /* sound data */ |
| 3247 | 3231 | ROM_REGION( 0x400000, "shared", 0 ) |
| r31470 | r31471 | |
| 3277 | 3261 | |
| 3278 | 3262 | /* sprites */ |
| 3279 | 3263 | ROM_REGION( 0x800000, "gfx2", ROMREGION_ERASE00 ) |
| 3280 | | ROM_LOAD64_WORD( "312a08.33g", 0x000000, 2*1024*1024, CRC(29015d56) SHA1(7273270804ecefd8f59469c2c2a8a89fb045a12b) ) |
| 3281 | | ROM_LOAD64_WORD( "312a09.30g", 0x000002, 2*1024*1024, CRC(b2c5d6d5) SHA1(8248612275ca862c6688de5c6f24f37aeb3f9fe5) ) |
| 3282 | | ROM_LOAD64_WORD( "312a10.28g", 0x000004, 2*1024*1024, CRC(3c570d04) SHA1(ebbf7d28726e98c8895c9bf901f8b2dd38018c77) ) |
| 3283 | | ROM_LOAD64_WORD( "312a11.25g", 0x000006, 2*1024*1024, CRC(5f474357) SHA1(1f6d99f1ea69e07a65731ea4eae5917452cfcab6) ) |
| 3264 | ROM_LOAD64_WORD( "312a11.25g", 0x000000, 2*1024*1024, CRC(5f474357) SHA1(1f6d99f1ea69e07a65731ea4eae5917452cfcab6) ) |
| 3265 | ROM_LOAD64_WORD( "312a10.28g", 0x000002, 2*1024*1024, CRC(3c570d04) SHA1(ebbf7d28726e98c8895c9bf901f8b2dd38018c77) ) |
| 3266 | ROM_LOAD64_WORD( "312a09.30g", 0x000004, 2*1024*1024, CRC(b2c5d6d5) SHA1(8248612275ca862c6688de5c6f24f37aeb3f9fe5) ) |
| 3267 | ROM_LOAD64_WORD( "312a08.33g", 0x000006, 2*1024*1024, CRC(29015d56) SHA1(7273270804ecefd8f59469c2c2a8a89fb045a12b) ) |
| 3284 | 3268 | |
| 3285 | 3269 | /* sound data */ |
| 3286 | 3270 | ROM_REGION( 0x400000, "shared", 0 ) |
| r31470 | r31471 | |
| 3798 | 3782 | i++; |
| 3799 | 3783 | } |
| 3800 | 3784 | |
| 3801 | | switch (readback) |
| 3802 | | { |
| 3803 | | case BPP5: |
| 3804 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0xd4a000, 0xd4a00f, read32_delegate(FUNC(konamigx_state::gx5bppspr_r),this)); |
| 3805 | | break; |
| 3785 | if (readback == BPP66) |
| 3786 | m_maincpu->space(AS_PROGRAM).install_read_handler(0xd00000, 0xd01fff, read32_delegate(FUNC(konamigx_state::k_6bpp_rom_long_r), this)); |
| 3806 | 3787 | |
| 3807 | | case BPP66: |
| 3808 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0xd00000, 0xd01fff, read32_delegate(FUNC(konamigx_state::k_6bpp_rom_long_r), this)); |
| 3809 | | // fall through |
| 3810 | 3788 | |
| 3811 | | case BPP6: |
| 3812 | | m_maincpu->space(AS_PROGRAM).install_read_handler(0xd4a000, 0xd4a00f, read32_delegate(FUNC(konamigx_state::gx6bppspr_r),this)); |
| 3813 | | break; |
| 3814 | | } |
| 3815 | | |
| 3816 | 3789 | #undef BPP5 |
| 3817 | 3790 | #undef BPP6 |
| 3818 | 3791 | #undef BPP66 |