From f6874a26afa95761ce3fb745a42ee684fc6d2930 Mon Sep 17 00:00:00 2001 From: Scott Stone Date: Mon, 10 Oct 2011 00:46:06 +0000 Subject: [PATCH] Added the video code back in.. it's definitely processing the blit lists etc. now, although all it seems to be drawing is blank data at this time. From Haze (nw) --- src/mame/drivers/cavesh3.c | 563 +++++++++++++++++++++++++++++++++---- 1 file changed, 514 insertions(+), 49 deletions(-) diff --git a/src/mame/drivers/cavesh3.c b/src/mame/drivers/cavesh3.c index 3a508e82650..54652a83600 100644 --- a/src/mame/drivers/cavesh3.c +++ b/src/mame/drivers/cavesh3.c @@ -14,53 +14,506 @@ public: : driver_device(mconfig, type, tag) { } }; +/*************************************************************************** + Video Hardware +***************************************************************************/ -VIDEO_START(cavesh3) +struct _clr_t { + INT8 r,g,b; +}; +typedef struct _clr_t clr_t; + +// r5g5b5 ro clr_t +INLINE void pen_to_clr(UINT16 pen, clr_t *clr) +{ + clr->r = (pen >> 10) & 0x1f; + clr->g = (pen >> 5) & 0x1f; + clr->b = (pen ) & 0x1f; } -SCREEN_UPDATE(cavesh3) +// convert separate r,g,b biases (0..80..ff) to clr_t (-1f..0..1f) +INLINE void tint_to_clr(UINT8 r, UINT8 g, UINT8 b, clr_t *clr) { + clr->r = (r - 0x80) / 4; + clr->g = (g - 0x80) / 4; + clr->b = (b - 0x80) / 4; + + if (clr->r < -0x1f) clr->r = -0x1f; + if (clr->g < -0x1f) clr->g = -0x1f; + if (clr->b < -0x1f) clr->b = -0x1f; +} + +// convert alpha factor (0..ff) to clr_t (0..1f) +INLINE void alpha_to_clr(UINT8 alpha, clr_t *clr) +{ + clr->r = alpha / 8; + clr->g = alpha / 8; + clr->b = alpha / 8; +} + +// clamp to 0..1f +INLINE INT8 clamp(INT8 comp) +{ + if (comp > 0x1f) return 0x1f; + else if (comp < 0) return 0; + else return comp; +} + +// clr_t to r5g5b5 +INLINE UINT16 clr_to_pen(const clr_t *clr) +{ +// return (clr->r << 10) | (clr->g << 5) | clr->b; +return 0x8000 | (clr->r << 10) | (clr->g << 5) | clr->b; +} + +// add clrs +INLINE void clr_add(const clr_t *clr0, const clr_t *clr1, clr_t *clr) +{ + clr->r = clamp(clr0->r + clr1->r); + clr->g = clamp(clr0->g + clr1->g); + clr->b = clamp(clr0->b + clr1->b); +} + +// multiply clrs +INLINE void clr_mul(const clr_t *clr0, const clr_t *clr1, clr_t *clr) +{ + clr->r = clamp(clr0->r * clr1->r / 0x1f); + clr->g = clamp(clr0->g * clr1->g / 0x1f); + clr->b = clamp(clr0->b * clr1->b / 0x1f); +} + +INLINE char mode_name(UINT8 mode) +{ + switch( mode ) + { + case 0: return 'A'; // +alpha + case 1: return 'S'; // +source + case 2: return 'D'; // +dest + case 3: return '*'; // * + case 4: return 'a'; // -alpha + case 5: return 's'; // -source + case 6: return 'd'; // -dest + case 7: return '-'; // * + } + return '?'; +} + +// (1|s|d) * s_factor * s + (1|s|d) * d_factor * d +// 0: +alpha +// 1: +source +// 2: +dest +// 3: * +// 4: -alpha +// 5: -source +// 6: -dest +// 7: * +INLINE void cavesh_clr_select(const clr_t *s_clr, const clr_t *d_clr, const clr_t *a_clr, UINT8 mode, clr_t *clr) +{ + switch( mode ) + { + case 0: // +alpha + clr->r = a_clr->r; + clr->g = a_clr->g; + clr->b = a_clr->b; + return; + + case 1: // +source + clr->r = s_clr->r; + clr->g = s_clr->g; + clr->b = s_clr->b; + return; + + case 2: // +dest + clr->r = d_clr->r; + clr->g = d_clr->g; + clr->b = d_clr->b; + return; + + case 3: // * + clr->r = 0x1f; + clr->g = 0x1f; + clr->b = 0x1f; + return; + + case 4: // -alpha + clr->r = a_clr->r^0x1f; + clr->g = a_clr->g^0x1f; + clr->b = a_clr->b^0x1f; + return; + + case 5: // -source + clr->r = s_clr->r^0x1f; + clr->g = s_clr->g^0x1f; + clr->b = s_clr->b^0x1f; + return; + + case 6: // -dest + clr->r = d_clr->r^0x1f; + clr->g = d_clr->g^0x1f; + clr->b = d_clr->b^0x1f; + return; + + default: + case 7: // * + clr->r = 0x1f; + clr->g = 0x1f; + clr->b = 0x1f; + return; + } +} + + +static UINT32 cavesh_gfx_addr; +static UINT32 cavesh_gfx_scroll_0_x, cavesh_gfx_scroll_0_y; +static UINT32 cavesh_gfx_scroll_1_x, cavesh_gfx_scroll_1_y; + +static int cavesh_gfx_size; +static bitmap_t *cavesh_bitmaps[1]; + +static VIDEO_START( cavesh3 ) +{ + cavesh_gfx_size = 0x2000 * 0x1000; + cavesh_bitmaps[0] = auto_bitmap_alloc(machine, 0x2000, 0x1000, BITMAP_FORMAT_INDEXED16); +} + +INLINE UINT32 GFX_OFFSET( UINT32 p, UINT32 x0, UINT32 y0, UINT32 x, UINT32 y ) +{ +// return p * 0x100 * 0x1000 + +// ((x0 + x) & 0x00ff) + +// ((y0 + y) & 0x0fff) * 0x100; + +/* + // to see flash + return (((x0 + x) & 0x1f00)>>8) * 0x100 * 0x1000 + + ((x0 + x) & 0x00ff) + + ((y0 + y) & 0x0fff) * 0x100; +*/ + + // correct + return ((x0 + x) & 0x1fff) + + ((y0 + y) & 0x0fff) * 0x2000; +} + +INLINE void draw_sprite( + bitmap_t *bitmap, const rectangle *clip, UINT16 *gfx, int gfx_size, + + int src_p,int src_x,int src_y, int dst_x,int dst_y, int dimx,int dimy, int flipx,int flipy, + + int blend, clr_t *s_alpha_clr, int s_mode, clr_t *d_alpha_clr, int d_mode, + + int tint, clr_t *tint_clr +) +{ + + logerror("draw sprite %04x %04x\n", dimx, dimy); + + int x,y, xf,yf; + clr_t s_clr, d_clr, clr0, clr1; + UINT16 pen; + UINT16 *bmp; + + if (flipx) { xf = -1; src_x += (dimx-1); } + else { xf = +1; } + + if (flipy) { yf = -1; src_y += (dimy-1); } + else { yf = +1; } + + for (y = 0; y < dimy; y++) + { + for (x = 0; x < dimx; x++) + { + pen = gfx[GFX_OFFSET(src_p,src_x,src_y, xf * x, yf * y) % gfx_size]; + if ((pen & 0x8000) && ((dst_x + x) >= clip->min_x) && ((dst_x + x) <= clip->max_x) && ((dst_y + y) >= clip->min_y) && ((dst_y + y) <= clip->max_y)) + { + bmp = BITMAP_ADDR16(bitmap, dst_y + y, dst_x + x); + + // convert source to clr + pen_to_clr(pen, &s_clr); + + // apply clr bias to source +// if (tint) + clr_add(&s_clr, tint_clr, &s_clr); + + if (blend) + { + // convert destination to clr + pen_to_clr(*bmp, &d_clr); + + // transform source + cavesh_clr_select(&s_clr, &d_clr, s_alpha_clr, s_mode, &clr0); + clr_mul(&clr0, &s_clr, &clr0); + + // transform destination + cavesh_clr_select(&s_clr, &d_clr, d_alpha_clr, d_mode, &clr1); + clr_mul(&clr1, &d_clr, &clr1); + + // blend (add) into source + clr_add(&clr0, &clr1, &s_clr); + } + + // write result + *bmp = clr_to_pen(&s_clr); + } + } + } +} + + + +INLINE UINT16 READ_NEXT_WORD(address_space &space, offs_t *addr) +{ + UINT16 data = space.read_word(*addr); + *addr += 2; + +// printf("data %04x\n", data); + return data; +} + +INLINE void cavesh_gfx_copy(address_space &space, offs_t *addr, int layer) +{ + UINT32 x,y, dst_p,dst_x,dst_y, dimx,dimy; +// UINT16 *dst; + + // 0x20000000 + READ_NEXT_WORD(space, addr); + READ_NEXT_WORD(space, addr); + + // 0x99999999 + READ_NEXT_WORD(space, addr); + READ_NEXT_WORD(space, addr); + + dst_x = READ_NEXT_WORD(space, addr); + dst_y = READ_NEXT_WORD(space, addr); + + dst_p = 0; + dst_x &= 0x1fff; + dst_y &= 0x0fff; + + dimx = (READ_NEXT_WORD(space, addr) & 0x1fff) + 1; + dimy = (READ_NEXT_WORD(space, addr) & 0x0fff) + 1; + + logerror("GFX COPY: DST %02X,%02X,%03X DIM %02X,%03X\n", dst_p,dst_x,dst_y, dimx,dimy); + + for (y = 0; y < dimy; y++) + { + for (x = 0; x < dimx; x++) + { + *BITMAP_ADDR16(cavesh_bitmaps[0], dst_y + y, dst_x + x) = READ_NEXT_WORD(space, addr); + } + } +} + +INLINE void cavesh_gfx_draw(address_space &space, offs_t *addr, int layer) +{ + int x,y, dimx,dimy, flipx,flipy, src_p; + int tint,blend, s_alpha,s_mode, d_alpha,d_mode; + clr_t tint_clr, s_alpha_clr, d_alpha_clr; + + UINT16 attr = READ_NEXT_WORD(space, addr); + UINT16 alpha = READ_NEXT_WORD(space, addr); + UINT16 src_x = READ_NEXT_WORD(space, addr); + UINT16 src_y = READ_NEXT_WORD(space, addr); + UINT16 dst_x = READ_NEXT_WORD(space, addr); + UINT16 dst_y = READ_NEXT_WORD(space, addr); + UINT16 w = READ_NEXT_WORD(space, addr); + UINT16 h = READ_NEXT_WORD(space, addr); + UINT16 tint_r = READ_NEXT_WORD(space, addr); + UINT16 tint_gb = READ_NEXT_WORD(space, addr); + + // 0: +alpha + // 1: +source + // 2: +dest + // 3: * + // 4: -alpha + // 5: -source + // 6: -dest + // 7: * + + d_mode = attr & 0x0007; + s_mode = (attr & 0x0070) >> 4; + + tint = !(attr & 0x0100); + blend = attr & 0x0200; + + flipy = attr & 0x0400; + flipx = attr & 0x0800; + + d_alpha = alpha & 0x00ff; + s_alpha = (alpha & 0xff00) >> 8; + + src_p = 0; + src_x = src_x & 0x1fff; + src_y = src_y & 0x0fff; + + + x = (dst_x & 0x7fff) - (dst_x & 0x8000); + y = (dst_y & 0x7fff) - (dst_y & 0x8000); + + dimx = (w & 0x1fff) + 1; + dimy = (h & 0x0fff) + 1; + + // convert parameters to clr + + tint_to_clr(tint_r & 0x00ff, (tint_gb >> 8) & 0xff, tint_gb & 0xff, &tint_clr); + + alpha_to_clr(s_alpha, &s_alpha_clr); + alpha_to_clr(d_alpha, &d_alpha_clr); + + // draw + draw_sprite( + cavesh_bitmaps[0], &cavesh_bitmaps[0]->cliprect, BITMAP_ADDR16(cavesh_bitmaps[0], 0,0),cavesh_gfx_size, + src_p,src_x,src_y, x,y, dimx,dimy, flipx,flipy, + blend, &s_alpha_clr, s_mode, &d_alpha_clr, d_mode, + tint, &tint_clr + ); +} + +static void cavesh_gfx_exec(address_space &space) +{ + UINT16 layer = 0; + + offs_t addr = cavesh_gfx_addr & 0x1fffffff; + + logerror("GFX EXEC: %08X\n", addr); + + cavesh_bitmaps[0]->cliprect.min_x = cavesh_gfx_scroll_1_x; + cavesh_bitmaps[0]->cliprect.min_y = cavesh_gfx_scroll_1_y; + cavesh_bitmaps[0]->cliprect.max_x = cavesh_bitmaps[0]->cliprect.min_x + 0x180-1; + cavesh_bitmaps[0]->cliprect.max_y = cavesh_bitmaps[0]->cliprect.min_y + 0x100-1; + + while (1) + { + UINT16 data = READ_NEXT_WORD(space, &addr); + + switch( data & 0xf000 ) + { + case 0x0000: + case 0xf000: + return; + + case 0xc000: + data = READ_NEXT_WORD(space, &addr); + //logerror("GFX LAYER: %X\n", (UINT32)data); + //printf("GFX LAYER: %X\n", (UINT32)data); + layer = data ? 1 : 0; + + if (layer) + { + cavesh_bitmaps[0]->cliprect.min_x = cavesh_gfx_scroll_1_x; + cavesh_bitmaps[0]->cliprect.min_y = cavesh_gfx_scroll_1_y; + cavesh_bitmaps[0]->cliprect.max_x = cavesh_bitmaps[0]->cliprect.min_x + 0x180-1; + cavesh_bitmaps[0]->cliprect.max_y = cavesh_bitmaps[0]->cliprect.min_y + 0x100-1; + } + else + { + cavesh_bitmaps[0]->cliprect.min_x = 0; + cavesh_bitmaps[0]->cliprect.min_y = 0; + cavesh_bitmaps[0]->cliprect.max_x = 0x2000-1; + cavesh_bitmaps[0]->cliprect.max_y = 0x1000-1; + } + break; + + case 0x2000: + addr -= 2; + cavesh_gfx_copy(space, &addr, layer); + break; + + case 0x1000: + addr -= 2; + cavesh_gfx_draw(space, &addr, layer); + break; + + default: + popmessage("GFX op = %04X", data); + return; + } + } +} + + +static READ32_HANDLER( cavesh_gfx_ready_r ) +{ + return 0x00000010; +} + +static WRITE32_HANDLER( cavesh_gfx_exec_w ) +{ + if ( ACCESSING_BITS_0_7 ) + { + if (data & 1) + { + cavesh_gfx_exec(*space); + } + } +} + + + +static SCREEN_UPDATE( cavesh3 ) +{ + int scroll_0_x, scroll_0_y; + int scroll_1_x, scroll_1_y; + + bitmap_fill(bitmap, cliprect, 0); + + scroll_0_x = -cavesh_gfx_scroll_0_x; + scroll_0_y = -cavesh_gfx_scroll_0_y; + scroll_1_x = -cavesh_gfx_scroll_1_x; + scroll_1_y = -cavesh_gfx_scroll_1_y; + + logerror("SCREEN UPDATE\n"); + + copyscrollbitmap_trans(bitmap, cavesh_bitmaps[0], 1,&scroll_0_x, 1,&scroll_0_y, cliprect, 0x8000); + return 0; } - - static READ32_HANDLER( cavesh3_blitter_r ) { -// UINT64 ret = space->machine().rand(); - static UINT32 i = 0; - i^=0xffffffff; - - logerror("%08x cavesh3_blitter_r access at %08x (%08x) - mem_mask %08x\n",cpu_get_pc(&space->device()), offset, offset*4, mem_mask); - - switch (offset) + switch (offset*4) { + case 0x10: + return cavesh_gfx_ready_r(space,offset,mem_mask); - case 0x4: - return i; - case 0x9: - return 0; - - default: - logerror("no case for blit read\n"); - return 0; } - - return 0; - - - } static WRITE32_HANDLER( cavesh3_blitter_w ) { - logerror("%08x cavesh3_blitter_w access at %08x (%08x) - %08x %08x\n",cpu_get_pc(&space->device()),offset, offset*8, data,mem_mask); + switch (offset*4) + { + case 0x04: + cavesh_gfx_exec_w(space,offset,data,mem_mask); + + case 0x08: + COMBINE_DATA(&cavesh_gfx_addr); + break; + + case 0x14: + COMBINE_DATA(&cavesh_gfx_scroll_0_x); + break; + + case 0x18: + COMBINE_DATA(&cavesh_gfx_scroll_0_y); + break; + + case 0x40: + COMBINE_DATA(&cavesh_gfx_scroll_1_x); + break; + + case 0x44: + COMBINE_DATA(&cavesh_gfx_scroll_1_y); + break; + + } } + + static READ64_HANDLER( ymz2770c_z_r ) { UINT64 ret = space->machine().rand(); @@ -266,7 +719,7 @@ static READ8_HANDLER( flash_io_r ) data = flash_page_data[flash_page_addr++]; -// logerror("%08x FLASH: read data %02X from addr %03X (page %04X)\n", cpu_get_pc(&space->device()), data, old, flash_page_index); + //logerror("%08x FLASH: read data %02X from addr %03X (page %04X)\n", cpu_get_pc(&space->device()), data, old, flash_page_index); break; case STATE_READ_STATUS: @@ -421,6 +874,13 @@ static MACHINE_RESET( cavesh3 ) flash_hard_reset(machine); } +static PALETTE_INIT( cavesh_RRRRR_GGGGG_BBBBB ) +{ + int i; + for (i = 0; i < 0x10000; i++) + palette_set_color(machine, i, MAKE_RGB(pal5bit(i >> 10), pal5bit(i >> 5), pal5bit(i >> 0))); +} + static MACHINE_CONFIG_START( cavesh3, cavesh3_state ) /* basic machine hardware */ @@ -434,10 +894,15 @@ static MACHINE_CONFIG_START( cavesh3, cavesh3_state ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_FORMAT(BITMAP_FORMAT_RGB32) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) + MCFG_SCREEN_FORMAT(BITMAP_FORMAT_INDEXED16) + MCFG_SCREEN_SIZE(0x200, 0x200) + MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xf0-1) + + MCFG_PALETTE_INIT(cavesh_RRRRR_GGGGG_BBBBB) + MCFG_PALETTE_LENGTH(0x10000) + + MCFG_SCREEN_UPDATE(cavesh3) MCFG_MACHINE_RESET(cavesh3) @@ -457,8 +922,8 @@ ROM_START( mushisam ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP("u4", 0x000000, 0x200000, CRC(0b5b30b2) SHA1(35fd1bb1561c30b311b4325bc8f4628f2fccd20b) ) /* (2004/10/12 MASTER VER.) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) - ROM_LOAD16_WORD_SWAP("u2", 0x000000, 0x8400000, CRC(b1f826dc) SHA1(c287bd9f571d0df03d7fcbcf3c57c74ce564ab05) ) /* (2004/10/12 MASTER VER.) */ + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_LOAD("u2", 0x000000, 0x8400000, CRC(b1f826dc) SHA1(c287bd9f571d0df03d7fcbcf3c57c74ce564ab05) ) /* (2004/10/12 MASTER VER.) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(138e2050) SHA1(9e86489a4e65af5efb5495adf6d4b3e01d5b2816) ) @@ -469,8 +934,8 @@ ROM_START( mushisama ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP("u4", 0x000000, 0x200000, CRC(9f1c7f51) SHA1(f82ae72ec03687904ca7516887080be92365a5f3) ) /* (2004/10/12 MASTER VER) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) - ROM_LOAD16_WORD_SWAP("u2", 0x000000, 0x8400000, CRC(2cd13810) SHA1(40e45e201b60e63a060b68d4cc767eb64cfb99c2) ) /* (2004/10/12 MASTER VER) */ + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_LOAD("u2", 0x000000, 0x8400000, CRC(2cd13810) SHA1(40e45e201b60e63a060b68d4cc767eb64cfb99c2) ) /* (2004/10/12 MASTER VER) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(138e2050) SHA1(9e86489a4e65af5efb5495adf6d4b3e01d5b2816) ) @@ -481,7 +946,7 @@ ROM_START( espgal2 ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(09c908bb) SHA1(7d6031fd3542b3e1d296ff218feb40502fd78694) ) /* (2005/11/14 MASTER VER) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(222f58c7) SHA1(d47a5085a1debd9cb8c61d88cd39e4f5036d1797) ) /* (2005/11/14 MASTER VER) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) @@ -493,8 +958,8 @@ ROM_START( mushitam ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP("u4", 0x000000, 0x200000, CRC(4a23e6c8) SHA1(d44c287bb88e6d413a8d35d75bc1b4928ad52cdf) ) /* (2005/09/09 MASTER VER) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) - ROM_LOAD16_WORD_SWAP("u2", 0x000000, 0x8400000, CRC(3f93ff82) SHA1(6f6c250aa7134016ffb288d056bc937ea311f538) ) /* (2005/09/09 MASTER VER) */ + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_LOAD("u2", 0x000000, 0x8400000, CRC(3f93ff82) SHA1(6f6c250aa7134016ffb288d056bc937ea311f538) ) /* (2005/09/09 MASTER VER) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(701a912a) SHA1(85c198946fb693d99928ea2595c84ba4d9dc8157) ) @@ -505,8 +970,8 @@ ROM_START( futari15 ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP("u4", 0x000000, 0x200000, CRC(e8c5f128) SHA1(45fb8066fdbecb83fdc2e14555c460d0c652cd5f) ) /* (2006/12/8.MAST VER. 1.54.) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) - ROM_LOAD16_WORD_SWAP("u2", 0x000000, 0x8400000, CRC(b9eae1fc) SHA1(410f8e7cfcbfd271b41fb4f8d049a13a3191a1f9) ) /* (2006/12/8.MAST VER. 1.54.) */ + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_LOAD("u2", 0x000000, 0x8400000, CRC(b9eae1fc) SHA1(410f8e7cfcbfd271b41fb4f8d049a13a3191a1f9) ) /* (2006/12/8.MAST VER. 1.54.) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(39f1e1f4) SHA1(53d12f59a56df35c705408c76e6e02118da656f1) ) @@ -517,8 +982,8 @@ ROM_START( futari15a ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP("u4", 0x000000, 0x200000, CRC(a609cf89) SHA1(56752fae9f42fa852af8ee2eae79e25ec7f17953) ) /* (2006/12/8 MAST VER 1.54) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) - ROM_LOAD16_WORD_SWAP("u2", 0x000000, 0x8400000, CRC(b9d815f9) SHA1(6b6f668b0bbb087ffac65e4f0d8bd9d5b28eeb28) ) /* (2006/12/8 MAST VER 1.54) */ + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_LOAD("u2", 0x000000, 0x8400000, CRC(b9d815f9) SHA1(6b6f668b0bbb087ffac65e4f0d8bd9d5b28eeb28) ) /* (2006/12/8 MAST VER 1.54) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP("u23", 0x000000, 0x400000, CRC(39f1e1f4) SHA1(53d12f59a56df35c705408c76e6e02118da656f1) ) @@ -529,7 +994,7 @@ ROM_START( futari10 ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(b127dca7) SHA1(e1f518bc72fc1cdf69aefa89eafa4edaf4e84778) ) /* (2006/10/23 MASTER VER.) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(78ffcd0c) SHA1(0e2937edec15ce3f5741b72ebd3bbaaefffb556e) ) /* (2006/10/23 MASTER VER.) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) @@ -541,7 +1006,7 @@ ROM_START( futariblk ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(6db13c62) SHA1(6a53ce7f70b754936ccbb3a4674d4b2f03979644) ) /* (2007/12/11 BLACK LABEL VER) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(08c6fd62) SHA1(e1fc386b2b0e41906c724287cbf82304297e0150) ) /* (2007/12/11 BLACK LABEL VER) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) @@ -553,7 +1018,7 @@ ROM_START( ibara ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(8e6c155d) SHA1(38ac2107dc7824836e2b4e04c7180d5ae43c9b79) ) /* (2005/03/22 MASTER VER..) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(55840976) SHA1(4982bdce84f9603adfed7a618f18bc80359ab81e) ) /* (2005/03/22 MASTER VER..) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) @@ -565,7 +1030,7 @@ ROM_START( ibarablk ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(ee1f1f77) SHA1(ac276f3955aa4dde2544af4912819a7ae6bcf8dd) ) /* (2006/02/06. MASTER VER.) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(5e46be44) SHA1(bed5f1bf452f2cac58747ecabec3c4392566a3a7) ) /* (2006/02/06. MASTER VER.) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) @@ -577,7 +1042,7 @@ ROM_START( ibarablka ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(a9d43839) SHA1(507696e616608c05893c7ac2814b3365e9cb0720) ) /* (2006/02/06 MASTER VER.) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(33400d96) SHA1(09c22b5431ac3726bf88c56efd970f56793f825a) ) /* (2006/02/06 MASTER VER.) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) @@ -589,7 +1054,7 @@ ROM_START( deathsml ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(1a7b98bf) SHA1(07798a4a846e5802756396b34df47d106895c1f1) ) /* (2007/10/09 MASTER VER) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(d45b0698) SHA1(7077b9445f5ed4749c7f683191ccd312180fac38) ) /* (2007/10/09 MASTER VER) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) @@ -601,7 +1066,7 @@ ROM_START( mmpork ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP( "u4", 0x000000, 0x200000, CRC(d06cfa42) SHA1(5707feb4b3e5265daf5926f38c38612b24106f1f) ) /* (2007/ 4/17 MASTER VER.) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) ROM_LOAD( "u2", 0x000000, 0x8400000, CRC(1ee961b8) SHA1(81a2eba704ac1cf7fc44fa7c6a3f50e3570c104f) ) /* (2007/ 4/17 MASTER VER.) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF) @@ -613,7 +1078,7 @@ ROM_START( mmmbnk ) ROM_REGION( 0x200000, "maincpu", ROMREGION_ERASEFF) ROM_LOAD16_WORD_SWAP( "u4", 0x0000, 0x200000, CRC(5589d8c6) SHA1(43fbdb0effe2bc0e7135698757b6ee50200aecde) ) /* (2007/06/05 MASTER VER.) */ - ROM_REGION64_BE( 0x8400000, "game", ROMREGION_ERASEFF) + ROM_REGION( 0x8400000, "game", ROMREGION_ERASEFF) ROM_LOAD( "u2", 0x0000, 0x8400000, CRC(f3b50c30) SHA1(962327798081b292b2d3fd3b7845c0197f9f2d8a) ) /* (2007/06/05 MASTER VER.) */ ROM_REGION( 0x800000, "samples", ROMREGION_ERASEFF)