summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Scott Stone <tafoid@users.noreply.github.com>2011-10-10 00:46:06 +0000
committer Scott Stone <tafoid@users.noreply.github.com>2011-10-10 00:46:06 +0000
commitf6874a26afa95761ce3fb745a42ee684fc6d2930 (patch)
tree7609106f86af18c75cf11ece8e293d135639d921
parent6d00689c35c7f0891857d413108d4ce1e5662e5f (diff)
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)
-rw-r--r--src/mame/drivers/cavesh3.c547
1 files changed, 506 insertions, 41 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)
{
- return 0;
+ 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;
+}
-static READ32_HANDLER( cavesh3_blitter_r )
+// add clrs
+INLINE void clr_add(const clr_t *clr0, const clr_t *clr1, clr_t *clr)
{
-// UINT64 ret = space->machine().rand();
- static UINT32 i = 0;
- i^=0xffffffff;
+ clr->r = clamp(clr0->r + clr1->r);
+ clr->g = clamp(clr0->g + clr1->g);
+ clr->b = clamp(clr0->b + clr1->b);
+}
- logerror("%08x cavesh3_blitter_r access at %08x (%08x) - mem_mask %08x\n",cpu_get_pc(&space->device()), offset, offset*4, mem_mask);
+// 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);
+}
- switch (offset)
+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 '?';
+}
- case 0x4:
- return i;
+// (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 0x9:
- return 0;
+ 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:
- logerror("no case for blit read\n");
- return 0;
+ case 7: // *
+ clr->r = 0x1f;
+ clr->g = 0x1f;
+ clr->b = 0x1f;
+ return;
}
+}
- return 0;
+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 )
+{
+ switch (offset*4)
+ {
+ case 0x10:
+ return cavesh_gfx_ready_r(space,offset,mem_mask);
+
+
+ }
+ 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)