Merge pull request #5033 from cam900/kaneko_spr_intgfx

kaneko_spr.cpp : Updates
This commit is contained in:
R. Belmont 2019-05-11 10:33:12 -04:00 committed by GitHub
commit 7e4a568950
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 290 additions and 366 deletions

View File

@ -893,29 +893,6 @@ READ8_MEMBER(expro02_state::comad_okim6295_r)
}
/*************************************
*
* Graphics definitions
*
*************************************/
static const gfx_layout layout_16x16x4 =
{
16,16,
RGN_FRAC(1,1),
4,
{ STEP4(0,1) },
{ STEP8(8*8*4*0,4), STEP8(8*8*4*1,4) },
{ STEP8(8*8*4*0,8*4), STEP8(8*8*4*2,8*4) },
16*16*4
};
static GFXDECODE_START( gfx_expro02 )
GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4, 0x100, 0x40 ) // [0] Sprites
GFXDECODE_END
/*************************************
*
* Machine driver
@ -940,7 +917,6 @@ void expro02_state::expro02(machine_config &config)
m_screen->set_screen_update(FUNC(expro02_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, "gfxdecode", m_palette, gfx_expro02);
PALETTE(config, m_palette, FUNC(expro02_state::expro02_palette)).set_format(palette_device::GRBx_555, 2048 + 32768);
KANEKO_TMAP(config, m_view2);
@ -952,7 +928,8 @@ void expro02_state::expro02(machine_config &config)
KANEKO_VU002_SPRITE(config, m_kaneko_spr);
m_kaneko_spr->set_priorities(8,8,8,8); // above all (not verified)
m_kaneko_spr->set_offsets(0, -0x40);
m_kaneko_spr->set_gfxdecode_tag("gfxdecode");
m_kaneko_spr->set_palette(m_palette);
m_kaneko_spr->set_color_base(0x100);
KANEKO_HIT(config, "calc1_mcu").set_type(0);
@ -1073,7 +1050,7 @@ ROM_START( galsnew ) /* EXPRO-02 PCB */
ROM_REGION16_BE( 0x80000, "user2", 0 ) /* contains real (non-cartoon) women, used after each 3rd round */
ROM_LOAD16_WORD_SWAP( "pm017e.u84", 0x00000, 0x80000, CRC(bc41b6ca) SHA1(0aeaf024dd7c84550e7df27230a1d4f04cc1d61c) )
ROM_REGION( 0x200000, "gfx1", ROMREGION_ERASEFF ) /* sprites */
ROM_REGION( 0x200000, "kan_spr", ROMREGION_ERASEFF ) /* sprites */
/* the 06e rom from the other type gals panic board ends up split across 2 roms here */
ROM_LOAD( "pm006e.u83", 0x000000, 0x080000, CRC(a7555d9a) SHA1(f95821b3358d9ab03ca9ead38fd358062259d89d) )
ROM_LOAD( "pm206e.u82", 0x080000, 0x080000, CRC(cc978baa) SHA1(59a95bcbaeca9d356f61ea42af4da116afbb1491) )
@ -1112,7 +1089,7 @@ ROM_START( galsnewa ) /* EXPRO-02 PCB */
ROM_REGION16_BE( 0x80000, "user2", 0 ) /* contains real (non-cartoon) women, used after each 3rd round */
ROM_LOAD16_WORD_SWAP( "pm017e.u84", 0x00000, 0x80000, CRC(bc41b6ca) SHA1(0aeaf024dd7c84550e7df27230a1d4f04cc1d61c) )
ROM_REGION( 0x200000, "gfx1", ROMREGION_ERASEFF ) /* sprites */
ROM_REGION( 0x200000, "kan_spr", ROMREGION_ERASEFF ) /* sprites */
/* the 06e rom from the other type gals panic board ends up split across 2 roms here */
ROM_LOAD( "pm006e.u83", 0x000000, 0x080000, CRC(a7555d9a) SHA1(f95821b3358d9ab03ca9ead38fd358062259d89d) )
ROM_LOAD( "pm206e.u82", 0x080000, 0x080000, CRC(cc978baa) SHA1(59a95bcbaeca9d356f61ea42af4da116afbb1491) )
@ -1150,7 +1127,7 @@ ROM_START( galsnewj ) /* EXPRO-02 PCB */
ROM_REGION16_BE( 0x80000, "user2", ROMREGION_ERASEFF ) /* contains real (non-cartoon) women, used after each 3rd round */
/* U84 is an empty socket and not used with this set */
ROM_REGION( 0x200000, "gfx1", ROMREGION_ERASEFF ) /* sprites */
ROM_REGION( 0x200000, "kan_spr", ROMREGION_ERASEFF ) /* sprites */
/* the 06e rom from the other type gals panic board ends up split across 2 roms here */
ROM_LOAD( "pm006e.u83", 0x000000, 0x080000, CRC(a7555d9a) SHA1(f95821b3358d9ab03ca9ead38fd358062259d89d) )
ROM_LOAD( "pm206e.u82", 0x080000, 0x080000, CRC(cc978baa) SHA1(59a95bcbaeca9d356f61ea42af4da116afbb1491) )
@ -1187,7 +1164,7 @@ ROM_START( galsnewk ) /* EXPRO-02 PCB, Korean title is "Ddang Dda Meok Gi" */
ROM_REGION16_BE( 0x80000, "user2", 0 ) /* contains real (non-cartoon) women, used after each 3rd round */
ROM_LOAD16_WORD_SWAP( "pm017k.u84", 0x00000, 0x80000, CRC(0c656fb5) SHA1(4610800a460c9f50f7a2ee7b2984bf8e79b62124) )
ROM_REGION( 0x200000, "gfx1", ROMREGION_ERASEFF ) /* sprites */
ROM_REGION( 0x200000, "kan_spr", ROMREGION_ERASEFF ) /* sprites */
/* the 06e rom from the other type gals panic board ends up split across 2 roms here */
ROM_LOAD( "pm006e.u83", 0x000000, 0x080000, CRC(a7555d9a) SHA1(f95821b3358d9ab03ca9ead38fd358062259d89d) )
ROM_LOAD( "pm206e.u82", 0x080000, 0x080000, CRC(cc978baa) SHA1(59a95bcbaeca9d356f61ea42af4da116afbb1491) )
@ -1286,7 +1263,7 @@ ROM_START( fantasia ) /* PCB silkscreened COMAD INDUSTRY CO.,LTD940429 MADE IN K
ROM_LOAD16_BYTE( "10.imag2", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
ROM_LOAD16_BYTE( "6.imag1", 0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "17.scr3", 0x00000, 0x80000, CRC(aadb6eb7) SHA1(6eaa994ad7b4e8341360eaf5ddb46240316b7274) )
/* SCR1 and SCR2 are unpopulated */
@ -1318,7 +1295,7 @@ ROM_START( fantasiaa ) /* PCB silkscreened COMAD INDUSTRY CO.,LTD 940307 MADE IN
ROM_LOAD16_BYTE( "imag2_10.ue20b", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
ROM_LOAD16_BYTE( "imag1_6.ue20a", 0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "obj1_17.u5", 0x00000, 0x80000, CRC(aadb6eb7) SHA1(6eaa994ad7b4e8341360eaf5ddb46240316b7274) ) /* same data, different PCB location */
/* U4 OBJ2 18 and U3 OBJ3 19 are unpopulated */
@ -1349,7 +1326,7 @@ ROM_START( fantasiab )
ROM_LOAD16_BYTE( "10.imag2", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
ROM_LOAD16_BYTE( "6.imag1", 0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "17.scr3", 0x00000, 0x80000, CRC(aadb6eb7) SHA1(6eaa994ad7b4e8341360eaf5ddb46240316b7274) )
/* SCR1 and SCR2 are unpopulated */
@ -1411,7 +1388,7 @@ ROM_START( fantsy95 )
ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(33db8177) SHA1(9e9aa890dfa20e5aa6f1caec7d018d992217c2fe) )
ROM_LOAD16_BYTE( "i-scr7.6", 0x400001, 0x80000, CRC(8662dd01) SHA1(a349c1cd965d3d51c20178fcce2f61ae76f4006a) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "obj1.13", 0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1433,7 +1410,7 @@ ROM_START( fantasian ) /* PCB silkscreened COMAD INDUSTRY CO.,LTD 940803 MADE IN
ROM_LOAD16_BYTE( "i-scr8_11.ue20b", 0x400000, 0x80000, CRC(1f14a395) SHA1(12ca5a5a30963ecf90f5a006029aa1098b9ee1df) )
ROM_LOAD16_BYTE( "i-scr7_6.ue20a", 0x400001, 0x80000, CRC(faf870e4) SHA1(163a9aa3e5c550d3760d32e31048a7aa1f93db7f) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "obj1_13.u5", 0x00000, 0x80000, CRC(f99751f5) SHA1(10f0a2e369abc36a6df2f0c9879ffb7071ee214b) )
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1455,7 +1432,7 @@ ROM_START( newfant )
ROM_LOAD16_BYTE( "iscr8.11", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
ROM_LOAD16_BYTE( "iscr7.06", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "nf95obj1.13", 0x00000, 0x80000, CRC(e6d1bc71) SHA1(df0b6c1742c01991196659bab2691230323e7b8d) ) // sldh
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1477,7 +1454,7 @@ ROM_START( newfanta )
ROM_LOAD16_BYTE( "iscr8.11", 0x400000, 0x80000, CRC(f4148528) SHA1(4e27fff0b7ead068a159b3ed80c5793a6166fc4e) )
ROM_LOAD16_BYTE( "iscr7.06", 0x400001, 0x80000, CRC(2dee0c31) SHA1(1097006e6e5d16b24fb71615b6c0754fe0ecbe33) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "obj1.13", 0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1497,7 +1474,7 @@ ROM_START( missw96 )
ROM_LOAD16_BYTE( "mw96_07.bin", 0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
ROM_LOAD16_BYTE( "mw96_03.bin", 0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "mw96_11.bin", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1517,7 +1494,7 @@ ROM_START( missw96a )
ROM_LOAD16_BYTE( "mw96_07.bin", 0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
ROM_LOAD16_BYTE( "mw96_03.bin", 0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "mw96_11.bin", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1537,7 +1514,7 @@ ROM_START( missw96b )
ROM_LOAD16_BYTE( "mw96_07.bin", 0x300000, 0x80000, CRC(26112ed3) SHA1(f49f92a4d1bcea322b171702591315950fbd70c6) )
ROM_LOAD16_BYTE( "mw96_03.bin", 0x300001, 0x80000, CRC(e9374a46) SHA1(eabfcc7cb9c9a2f932abc8103c3abfa8360dcbb5) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "mw96_11.bin", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1557,7 +1534,7 @@ ROM_START( missw96c )
ROM_LOAD16_BYTE( "7_im3_b.ue14b", 0x300000, 0x80000, CRC(7fd5ca2c) SHA1(7733bd0529953bdae718bf28053d173e5ec3ca92) )
ROM_LOAD16_BYTE( "3_im3-a.ue14a", 0x300001, 0x80000, CRC(4ba5dab7) SHA1(81d7b6fde6d9405793f60ee7d15a15a511396332) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "20_obj1.u5", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1578,7 +1555,7 @@ ROM_START( missmw96 )
ROM_LOAD16_BYTE( "mmw96_07.bin", 0x300000, 0x80000, CRC(001572bf) SHA1(cdf59c624baaeaea70985ee6f2f2fed08a8dfa61) )
ROM_LOAD16_BYTE( "mmw96_03.bin", 0x300001, 0x80000, CRC(22204025) SHA1(442e7f754c65c598983d6f897a60870d7759c823) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "mmw96_11.bin", 0x00000, 0x80000, CRC(7d491f8c) SHA1(63f580bd65579cac70b90eaa0e7f2413ef1597b8) )
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1598,7 +1575,7 @@ ROM_START( smissw )
ROM_LOAD16_BYTE( "7_im3-b.ue14b", 0x300000, 0x80000, CRC(12a9441d) SHA1(d9cd51e0c3ffac5fc561e0927c419bce0157337e) )
ROM_LOAD16_BYTE( "3_im3-a.ue14a", 0x300001, 0x80000, CRC(8c656fc9) SHA1(c3fe5de7cd6cd520bbd205ec62ac0dda51f71eeb) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "15_obj11.u5", 0x00000, 0x80000, CRC(3983152f) SHA1(6308e936ba54e88b34253f1d4fbd44725e9d88ae) )
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1621,7 +1598,7 @@ ROM_START( fantsia2 )
ROM_LOAD16_BYTE( "scr8.g20", 0x400000, 0x80000, CRC(694ae2b3) SHA1(82b7a565290fce07c8393af4718fd1e6136928e9) )
ROM_LOAD16_BYTE( "scr7.f20", 0x400001, 0x80000, CRC(6068712c) SHA1(80a136d76dca566772e34d832ac11b8c7d6ce9ab) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x100000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "obj1.1i", 0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
ROM_LOAD( "obj2.2i", 0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
@ -1644,7 +1621,7 @@ ROM_START( fantsia2a )
ROM_LOAD16_BYTE( "fnt2-18.bin", 0x400000, 0x80000, CRC(4cdaeda3) SHA1(f5b478e49b59496865982409517654f48296565d) )
ROM_LOAD16_BYTE( "fnt2-13.bin", 0x400001, 0x80000, CRC(68c7f042) SHA1(ed3c864f3d91377fec78f19897ba0b0d2bcf0d2b) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x100000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "obj1.1i", 0x00000, 0x80000, CRC(52e6872a) SHA1(7e5274b9a415ee0e536cd3b87f73d3eae9644669) )
ROM_LOAD( "obj2.2i", 0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
@ -1668,7 +1645,7 @@ ROM_START( fantsia2n )
ROM_LOAD16_BYTE( "scr8.g20", 0x400000, 0x80000, CRC(694ae2b3) SHA1(82b7a565290fce07c8393af4718fd1e6136928e9) )
ROM_LOAD16_BYTE( "scr7.f20", 0x400001, 0x80000, CRC(6068712c) SHA1(80a136d76dca566772e34d832ac11b8c7d6ce9ab) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x100000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "23_obj1.u5", 0x00000, 0x80000, CRC(b45c9234) SHA1(b5eeec91b9c6952b338130458405997e1a51bf2f) )
ROM_LOAD( "obj2.2i", 0x80000, 0x80000, CRC(ea6e3861) SHA1(463b40f5441231a0451571a0b8afe1ed0fd4b164) )
@ -1685,7 +1662,7 @@ ROM_START( wownfant)
ROM_LOAD16_WORD_SWAP( "ep-061 43750002 - 1.bin", 0x100000, 0x200000, CRC(c318e841) SHA1(ba7af736d3b0accca474b0de1c8299eb3c449ef9) )
ROM_LOAD16_WORD_SWAP( "ep-061 43750002 - 2.bin", 0x300000, 0x200000, CRC(8871dc3a) SHA1(8e028f1430474df19bb9a912ee9e407fe4582558) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x100000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "ep-4001 42750001 u113.bin", 0x00000, 0x80000, CRC(3e77ca1f) SHA1(f946e65a29bc02b89c02b2a869578d38cfe7e2d0) )
ROM_LOAD( "ep-4001 42750001 u112.bin", 0x80000, 0x80000, CRC(51f4b604) SHA1(52e8ce0a2c1b9b00f04e0c775789bc550bad8ae0) )
@ -1702,7 +1679,7 @@ ROM_START( missw02)
ROM_LOAD16_WORD_SWAP( "3.bin", 0x100000, 0x200000, CRC(fdfe36ba) SHA1(128277e44e2368267e097bb3510c797cc690d1ff) )
ROM_LOAD16_WORD_SWAP( "4.bin", 0x300000, 0x200000, CRC(aa769a81) SHA1(2beb6da9327ddce7bec934bcf610061fc3b9ab09) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x100000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "6.u113", 0x00000, 0x80000, CRC(3e77ca1f) SHA1(f946e65a29bc02b89c02b2a869578d38cfe7e2d0) ) // same as wowfant
ROM_LOAD( "5.u112", 0x80000, 0x80000, CRC(ead3411d) SHA1(ee1b071e4a556b66ecdedcdc7e1ee60851c0ddb0) )
@ -1724,7 +1701,7 @@ ROM_START( galhustl ) // An original PCB has been seen with genuine AFEGA labels
ROM_LOAD( "galhstl1.ub6", 0x00000, 0x80000, CRC(23848790) SHA1(2e77fbe04f46e258daecb4c5917e383c7c06a306) ) // Also found as AFEGA 1
ROM_LOAD( "galhstl2.uc6", 0x80000, 0x80000, CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) ) // Also found as AFEGA 2
ROM_REGION( 0x100000, "gfx1", 0 )
ROM_REGION( 0x100000, "kan_spr", 0 )
ROM_LOAD( "galhstl5.u5", 0x00000, 0x80000, CRC(44a18f15) SHA1(1217cf7fbbb442358b15016099efeface5dcbd22) ) // Also found as AFEGA 5
ROM_END
@ -1742,7 +1719,7 @@ ROM_START( pgalvip ) // this set has extra data roms for the gfx
ROM_LOAD( "afega_12.ub6", 0x00000, 0x20000, CRC(d32a6c0c) SHA1(6f16043ed1e174b42de83462e2ea7a601bac6678) )
ROM_LOAD( "afega_11.uc6", 0x80000, 0x80000, CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
ROM_REGION( 0x100000, "gfx1", 0 )
ROM_REGION( 0x100000, "kan_spr", 0 )
ROM_LOAD( "afega_17.u5", 0x00000, 0x80000, CRC(a8a50745) SHA1(e51963947c7a7556b8531d172b9d7bf9f321b21b) )
ROM_END
@ -1758,7 +1735,7 @@ ROM_START( pgalvipa ) // this set is more like Gals Hustler
ROM_LOAD( "pgalvip_1.ub6", 0x00000, 0x20000, CRC(d32a6c0c) SHA1(6f16043ed1e174b42de83462e2ea7a601bac6678) )
ROM_LOAD( "pgalvip_2.uc6", 0x80000, 0x80000, CRC(2168e54a) SHA1(87534334b16d3ddc3daefcb1b8086aff44157ccf) )
ROM_REGION( 0x100000, "gfx1", 0 )
ROM_REGION( 0x100000, "kan_spr", 0 )
ROM_LOAD( "pgalvip_5.u5", 0x00000, 0x80000, CRC(2d6e5a90) SHA1(b5487e5764d83dfecd982a8614d213c9075fbee4) )
ROM_END
@ -1776,7 +1753,7 @@ ROM_START( supmodel )
ROM_LOAD16_BYTE( "i-scr8.11", 0x400000, 0x80000, CRC(7c1813c8) SHA1(80fe97ac640847360529edfb728955e1067b0c14) )
ROM_LOAD16_BYTE( "i-scr7.6", 0x400001, 0x80000, CRC(19c73268) SHA1(aa6dc8c817a2e9707ea74e219ab34cf826223741) )
ROM_REGION( 0x80000, "gfx1", 0 ) /* sprites */
ROM_REGION( 0x80000, "kan_spr", 0 ) /* sprites */
ROM_LOAD( "obj1.13", 0x00000, 0x80000, CRC(832cd451) SHA1(29dfab1d4b7a15f3fe9fbedef41d405a40235a77) ) // sldh
ROM_REGION( 0x100000, "oki", 0 ) /* OKIM6295 samples */
@ -1820,7 +1797,7 @@ ROM_START( zipzap )
ROM_LOAD16_BYTE( "937.bin", 0x100000, 0x80000, CRC(61dd653f) SHA1(68b5ae3423363cc64d933836bf6881431dad021a) ) // good, girls
ROM_LOAD16_BYTE( "941.bin", 0x100001, 0x80000, CRC(320321ed) SHA1(00b52cd34cd86c105ff6dbd0248ff239de31c851) )
ROM_REGION( 0x100000, "gfx1", 0 ) // sprites
ROM_REGION( 0x100000, "kan_spr", 0 ) // sprites
ROM_LOAD( "u5.bin", 0x000000, 0x80000, CRC(c274d8b5) SHA1(2c45961aaf8311f027a734df7e33fe085dfdd099) )
ROM_REGION( 0x100000, "oki", 0 ) /* Samples */

View File

@ -552,33 +552,6 @@ static INPUT_PORTS_START( gp2se )
//missing "test" input
INPUT_PORTS_END
/***************************************************************************
Graphics Layouts
***************************************************************************/
/*
16x16x8 made of four 8x8x8 tiles arranged like: 01
23
*/
static const gfx_layout layout_16x16x8 =
{
16,16,
RGN_FRAC(1,1),
8,
{ STEP8(0,1) },
{ STEP8(0,8), STEP8(8*8*8*1,8) },
{ STEP8(0,8*8), STEP8(8*8*8*2,8*8) },
16*16*8
};
static GFXDECODE_START( gfx_galpani2 )
GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x8, 0, 0x40 ) // [0] Sprites
GFXDECODE_END
/***************************************************************************
@ -644,14 +617,14 @@ void galpani2_state::galpani2(machine_config &config)
screen.set_visarea(0, 320-1, 0, 256-1-16);
screen.set_screen_update(FUNC(galpani2_state::screen_update_galpani2));
GFXDECODE(config, "gfxdecode", m_palette, gfx_galpani2);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 0x4000); // sprites
PALETTE(config, m_bg8palette).set_format(palette_device::xGRB_555, 0x200 / 2); // bg8
PALETTE(config, m_bg15palette, palette_device::GRB_555); // 32768 static colors for the bg
KANEKO_KC002_SPRITE(config, m_kaneko_spr);
m_kaneko_spr->set_offsets(0x10000 - 0x16c0 + 0xc00, 0);
m_kaneko_spr->set_gfxdecode_tag("gfxdecode");
m_kaneko_spr->set_palette(m_palette);
m_kaneko_spr->set_color_base(0);
/* sound hardware */
SPEAKER(config, "lspeaker").front_left();
@ -760,7 +733,7 @@ ROM_START( galpani2 )
ROM_LOAD16_BYTE( "gp2-309b.051", 0x1200001, 0x100000, CRC(e8bf1730) SHA1(0d9a446aecc19a43368550348745c9b167ec4941) )
ROM_LOAD( "gp2-310a.055", 0x1400000, 0x100000, CRC(01eca246) SHA1(19cb35d7873b84486f9105127a1e3cf3235d3109) )
ROM_REGION( 0x480000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x480000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "gp2-200.046", 0x080000, 0x080000, CRC(11b49470) SHA1(d11c2374a7c9b9b0d1f27c29759b16630700561d) )
ROM_CONTINUE( 0x000000, 0x080000 )
ROM_LOAD( "gp2-201.047", 0x180000, 0x080000, CRC(2f6392b4) SHA1(67446974c00481a7a806f4bc5b10eb6e442a1186) )
@ -806,7 +779,7 @@ ROM_START( galpani2e )
ROM_LOAD16_BYTE( "gp2-309b.051", 0x1200001, 0x100000, CRC(e8bf1730) SHA1(0d9a446aecc19a43368550348745c9b167ec4941) )
ROM_LOAD( "gp2-310a.055", 0x1400000, 0x100000, CRC(01eca246) SHA1(19cb35d7873b84486f9105127a1e3cf3235d3109) )
ROM_REGION( 0x480000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x480000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "gp2-200.046", 0x080000, 0x080000, CRC(11b49470) SHA1(d11c2374a7c9b9b0d1f27c29759b16630700561d) )
ROM_CONTINUE( 0x000000, 0x080000 )
ROM_LOAD( "gp2-201.047", 0x180000, 0x080000, CRC(2f6392b4) SHA1(67446974c00481a7a806f4bc5b10eb6e442a1186) )
@ -853,7 +826,7 @@ ROM_START( galpani2i )
ROM_LOAD16_BYTE( "gp2-309b.051", 0x1200001, 0x100000, CRC(e8bf1730) SHA1(0d9a446aecc19a43368550348745c9b167ec4941) )
ROM_LOAD( "gp2-310a.055", 0x1400000, 0x100000, CRC(01eca246) SHA1(19cb35d7873b84486f9105127a1e3cf3235d3109) )
ROM_REGION( 0x480000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x480000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "gp2-200.046", 0x080000, 0x080000, CRC(11b49470) SHA1(d11c2374a7c9b9b0d1f27c29759b16630700561d) )
ROM_CONTINUE( 0x000000, 0x080000 )
ROM_LOAD( "gp2-201.047", 0x180000, 0x080000, CRC(2f6392b4) SHA1(67446974c00481a7a806f4bc5b10eb6e442a1186) )
@ -902,7 +875,7 @@ ROM_START( galpani2gs ) // basically the same as the Italy set but with differen
ROM_LOAD16_BYTE( "gp2-309b.051", 0x1200001, 0x100000, CRC(e8bf1730) SHA1(0d9a446aecc19a43368550348745c9b167ec4941) )
ROM_LOAD( "gp2-310a.055", 0x1400000, 0x100000, CRC(01eca246) SHA1(19cb35d7873b84486f9105127a1e3cf3235d3109) )
ROM_REGION( 0x480000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x480000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "gp2-200.046", 0x080000, 0x080000, CRC(11b49470) SHA1(d11c2374a7c9b9b0d1f27c29759b16630700561d) )
ROM_CONTINUE( 0x000000, 0x080000 )
ROM_LOAD( "gp2-201.047", 0x180000, 0x080000, CRC(2f6392b4) SHA1(67446974c00481a7a806f4bc5b10eb6e442a1186) )
@ -952,7 +925,7 @@ ROM_START( galpani2g )
ROM_LOAD16_BYTE( "gp2-309b.051", 0x1200001, 0x100000, CRC(e8bf1730) SHA1(0d9a446aecc19a43368550348745c9b167ec4941) )
ROM_LOAD( "gp2-310a.055", 0x1400000, 0x100000, CRC(01eca246) SHA1(19cb35d7873b84486f9105127a1e3cf3235d3109) )
ROM_REGION( 0x480000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x480000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "gp2-200.046", 0x080000, 0x080000, CRC(11b49470) SHA1(d11c2374a7c9b9b0d1f27c29759b16630700561d) )
ROM_CONTINUE( 0x000000, 0x080000 )
ROM_LOAD( "gp2-201.047", 0x180000, 0x080000, CRC(2f6392b4) SHA1(67446974c00481a7a806f4bc5b10eb6e442a1186) )
@ -1004,7 +977,7 @@ ROM_START( galpani2e2 )
ROM_LOAD16_BYTE( "gp2-309b.051", 0x1200001, 0x100000, CRC(e8bf1730) SHA1(0d9a446aecc19a43368550348745c9b167ec4941) )
ROM_LOAD( "gp2-310a.055", 0x1400000, 0x100000, CRC(01eca246) SHA1(19cb35d7873b84486f9105127a1e3cf3235d3109) )
ROM_REGION( 0x480000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x480000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "gp2-200.046", 0x080000, 0x080000, CRC(11b49470) SHA1(d11c2374a7c9b9b0d1f27c29759b16630700561d) )
ROM_CONTINUE( 0x000000, 0x080000 )
ROM_LOAD( "gp2-201.047", 0x180000, 0x080000, CRC(2f6392b4) SHA1(67446974c00481a7a806f4bc5b10eb6e442a1186) )
@ -1054,7 +1027,7 @@ ROM_START( galpani2t )
ROM_LOAD16_BYTE( "gp2-309b.051", 0x1200001, 0x100000, CRC(e8bf1730) SHA1(0d9a446aecc19a43368550348745c9b167ec4941) )
ROM_LOAD( "gp2-310a.055", 0x1400000, 0x100000, CRC(01eca246) SHA1(19cb35d7873b84486f9105127a1e3cf3235d3109) )
ROM_REGION( 0x480000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x480000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "gp2-200.046", 0x080000, 0x080000, CRC(11b49470) SHA1(d11c2374a7c9b9b0d1f27c29759b16630700561d) )
ROM_CONTINUE( 0x000000, 0x080000 )
ROM_LOAD( "gp2-201.047", 0x180000, 0x080000, CRC(2f6392b4) SHA1(67446974c00481a7a806f4bc5b10eb6e442a1186) )
@ -1112,7 +1085,7 @@ ROM_START( galpani2j )
ROM_LOAD16_BYTE( "gp2-303a.179", 0x600000, 0x100000, CRC(162d83b7) SHA1(16daf2ba09e63eaca5e50c944472773b1774c946) )
ROM_LOAD16_BYTE( "gp2-303b.180", 0x600001, 0x100000, CRC(458a1fbc) SHA1(971548ec8cce592773e762a0c972264013b7cb8d) )
ROM_REGION( 0x480000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x480000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "gp2-200j.189", 0x000000, 0x200000, CRC(2f81e519) SHA1(c07f4dad15b6f7f1fb867f773c0ada309d172326) )
ROM_LOAD( "gp2-201j.171", 0x200000, 0x200000, CRC(bbe404e0) SHA1(198db9a6c6ec97ed8fd32d946051ba4d6e4bd354) )
ROM_LOAD16_BYTE( "g204j0.169", 0x400000, 0x040000, CRC(212d8aab) SHA1(459f556978ef9a103279cf633fcc1cacb367ea61) )
@ -1147,7 +1120,7 @@ ROM_START( gp2se )
ROM_LOAD16_BYTE( "g305aj4.u160", 0x900000, 0x080000, CRC(2d4a8fbb) SHA1(8a00e6ba4e061678da4c41446df7278c9b4f26c2) )
ROM_LOAD16_BYTE( "g305bj4.u161", 0x900001, 0x080000, CRC(53d13974) SHA1(29ca4d36f2a8153228c2eec8e9ef6a6bf712cb59) )
ROM_REGION( 0x500000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x500000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "gp2-200-j-0073.u189", 0x000000, 0x200000, CRC(2f81e519) SHA1(c07f4dad15b6f7f1fb867f773c0ada309d172326) )
ROM_LOAD( "gp2-201-j-0074.u171", 0x200000, 0x200000, CRC(bbe404e0) SHA1(198db9a6c6ec97ed8fd32d946051ba4d6e4bd354) )
ROM_LOAD16_BYTE( "g204aj4.u169", 0x400000, 0x080000, CRC(e5e32820) SHA1(9bdc0717feb8983c0d6d5edaa08bcebad4baace0) )
@ -1180,7 +1153,7 @@ ROM_START( gp2quiz )
ROM_LOAD16_BYTE( "gp2-303a-0063.u179", 0x600000, 0x100000, CRC(162d83b7) SHA1(16daf2ba09e63eaca5e50c944472773b1774c946) )
ROM_LOAD16_BYTE( "gp2-303b-0064.u180", 0x600001, 0x100000, CRC(458a1fbc) SHA1(971548ec8cce592773e762a0c972264013b7cb8d) )
ROM_REGION( 0x500000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x500000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "gp2-200-j-0073.u189", 0x000000, 0x200000, CRC(2f81e519) SHA1(c07f4dad15b6f7f1fb867f773c0ada309d172326) )
ROM_LOAD( "gp2-201-j-0074.u171", 0x200000, 0x200000, CRC(bbe404e0) SHA1(198db9a6c6ec97ed8fd32d946051ba4d6e4bd354) )
ROM_LOAD16_BYTE( "g204a3.u169-3", 0x400000, 0x080000, CRC(92a837b7) SHA1(f581e1f7754f1fb20255c6c55ffc4e486d867111) )

View File

@ -1642,54 +1642,6 @@ Difficulty Lives Bonus Players Play Level
INPUT_PORTS_END
/***************************************************************************
Graphics Layouts
***************************************************************************/
/*
16x16x4 made of 4 8x8x4 blocks arrenged like: 01
23
*/
static const gfx_layout layout_16x16x4 =
{
16,16,
RGN_FRAC(1,1),
4,
{ STEP4(0,1) },
{ STEP8(8*8*4*0,4), STEP8(8*8*4*1,4) },
{ STEP8(8*8*4*0,8*4), STEP8(8*8*4*2,8*4) },
16*16*4
};
/*
16x16x8 made of 4 8x8x8 blocks arrenged like: 01
23
*/
static const gfx_layout layout_16x16x8 =
{
16,16,
RGN_FRAC(1,1),
8,
{ STEP8(0,1) },
{ STEP8(0,8), STEP8(8*8*8*1,8) },
{ STEP8(0,8*8), STEP8(8*8*8*2,8*8) },
16*16*8
};
static GFXDECODE_START( gfx_4bit )
GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x4, 0, 0x40 ) // [0] Sprites
GFXDECODE_END
static GFXDECODE_START( gfx_8bit )
GFXDECODE_ENTRY( "gfx1", 0, layout_16x16x8, 0x40 * 256, 0x40 ) // [0] Sprites
GFXDECODE_END
/***************************************************************************
@ -1746,7 +1698,6 @@ void kaneko16_berlwall_state::berlwall(machine_config &config)
m_screen->set_visarea(0, 256-1, 16, 240-1);
m_screen->set_screen_update(FUNC(kaneko16_berlwall_state::screen_update));
GFXDECODE(config, m_gfxdecode, m_palette, gfx_4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
PALETTE(config, m_bgpalette, palette_device::GRB_555); // 32768 static colors for the bg
@ -1758,7 +1709,8 @@ void kaneko16_berlwall_state::berlwall(machine_config &config)
KANEKO_VU002_SPRITE(config, m_kaneko_spr);
m_kaneko_spr->set_offsets(0, -1*64);
m_kaneko_spr->set_gfxdecode_tag("gfxdecode");
m_kaneko_spr->set_palette(m_palette);
m_kaneko_spr->set_color_base(0);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@ -1808,7 +1760,6 @@ void kaneko16_state::bakubrkr(machine_config &config)
m_screen->set_screen_update(FUNC(kaneko16_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
KANEKO_TMAP(config, m_view2[0]);
@ -1823,7 +1774,8 @@ void kaneko16_state::bakubrkr(machine_config &config)
KANEKO_VU002_SPRITE(config, m_kaneko_spr);
m_kaneko_spr->set_priorities(8,8,8,8); // above all
m_kaneko_spr->set_gfxdecode_tag("gfxdecode");
m_kaneko_spr->set_palette(m_palette);
m_kaneko_spr->set_color_base(0);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@ -1877,7 +1829,6 @@ void kaneko16_state::blazeon(machine_config &config)
m_screen->set_screen_update(FUNC(kaneko16_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
KANEKO_TMAP(config, m_view2[0], 0);
@ -1888,7 +1839,8 @@ void kaneko16_state::blazeon(machine_config &config)
KANEKO_VU002_SPRITE(config, m_kaneko_spr);
m_kaneko_spr->set_priorities(1 /* "above tile[0], below the others" */ ,2 /* "above tile[0-1], below the others" */ ,8 /* above all */,8 /* above all */);
m_kaneko_spr->set_offsets(0x10000 - 0x680, 0x000);
m_kaneko_spr->set_gfxdecode_tag("gfxdecode");
m_kaneko_spr->set_palette(m_palette);
m_kaneko_spr->set_color_base(0);
// there is actually a 2nd sprite chip! looks like our device emulation handles both at once
@ -1930,7 +1882,6 @@ void kaneko16_state::wingforc(machine_config &config)
m_screen->set_screen_update(FUNC(kaneko16_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
KANEKO_TMAP(config, m_view2[0]);
@ -1941,7 +1892,8 @@ void kaneko16_state::wingforc(machine_config &config)
KANEKO_VU002_SPRITE(config, m_kaneko_spr);
m_kaneko_spr->set_priorities(1 /* "above tile[0], below the others" */ ,2 /* "above tile[0-1], below the others" */ ,8 /* above all */,8 /* above all */);
m_kaneko_spr->set_offsets(0x10000 - 0x680, 0x000);
m_kaneko_spr->set_gfxdecode_tag("gfxdecode");
m_kaneko_spr->set_palette(m_palette);
m_kaneko_spr->set_color_base(0);
// there is actually a 2nd sprite chip! looks like our device emulation handles both at once
@ -2008,7 +1960,6 @@ void kaneko16_gtmr_state::gtmr(machine_config &config)
m_screen->set_screen_update(FUNC(kaneko16_gtmr_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_8bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 32768);
KANEKO_TMAP(config, m_view2[0]);
@ -2022,7 +1973,8 @@ void kaneko16_gtmr_state::gtmr(machine_config &config)
m_view2[1]->set_palette(m_palette);
KANEKO_KC002_SPRITE(config, m_kaneko_spr);
m_kaneko_spr->set_gfxdecode_tag("gfxdecode");
m_kaneko_spr->set_palette(m_palette);
m_kaneko_spr->set_color_base(0x40 * 256);
KANEKO_TOYBOX(config, m_toybox, m_eeprom, m_dsw_port, m_mcuram, "mcudata");
/* part of the toybox? */
@ -2119,7 +2071,6 @@ void kaneko16_state::mgcrystl(machine_config &config)
m_screen->set_screen_update(FUNC(kaneko16_state::screen_update));
m_screen->set_palette(m_palette);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
KANEKO_TMAP(config, m_view2[0]);
@ -2134,7 +2085,8 @@ void kaneko16_state::mgcrystl(machine_config &config)
KANEKO_VU002_SPRITE(config, m_kaneko_spr);
m_kaneko_spr->set_priorities(2 /* below all */ ,3 /* above tile[0], below the other */ ,5 /* above all */ ,7 /* above all */);
m_kaneko_spr->set_gfxdecode_tag("gfxdecode");
m_kaneko_spr->set_palette(m_palette);
m_kaneko_spr->set_color_base(0);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@ -2235,7 +2187,6 @@ void kaneko16_shogwarr_state::shogwarr(machine_config &config)
m_screen->set_palette(m_palette);
m_screen->set_video_attributes(VIDEO_UPDATE_AFTER_VBLANK);
GFXDECODE(config, m_gfxdecode, m_palette, gfx_4bit);
PALETTE(config, m_palette).set_format(palette_device::xGRB_555, 2048);
KANEKO_TMAP(config, m_view2[0]);
@ -2247,7 +2198,8 @@ void kaneko16_shogwarr_state::shogwarr(machine_config &config)
m_kaneko_spr->set_priorities(1 /* below all */ ,3 /* above tile[0], below the others */ ,5 /* above all */ ,7 /* above all */);
m_kaneko_spr->set_offsets(0xa00, -0x40);
m_kaneko_spr->set_fliptype(1);
m_kaneko_spr->set_gfxdecode_tag("gfxdecode");
m_kaneko_spr->set_palette(m_palette);
m_kaneko_spr->set_color_base(0);
KANEKO_HIT(config, m_kaneko_hit);
m_kaneko_hit->set_type(1);
@ -2494,7 +2446,7 @@ ROM_START( explbrkr ) /* MASTER UP= 92/10/08 20:10:16 */
ROM_LOAD16_BYTE( "ts101e.u19", 0x000001, 0x040000, CRC(88f4afb7) SHA1(08b8efd6bd935bc1b8cf9753d58b38ccf9a70b4d) )
/* these actually match the other set but have different names on the board..*/
ROM_REGION( 0x240000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x240000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "ts001e.u37", 0x000000, 0x080000, CRC(70b66e7e) SHA1(307ba27b623f67ee4b4023179870c270bac8ea22) )
ROM_RELOAD( 0x100000, 0x080000 )
ROM_LOAD( "ts000e.u38", 0x080000, 0x080000, CRC(a7a94143) SHA1(d811a7597402c161850ddf98cdb00661ea506c7d) )
@ -2519,7 +2471,7 @@ ROM_START( explbrkrk ) /* MASTER UP= 92/10/08 21:35:56 - No "For use in Korea.."
ROM_LOAD16_BYTE( "u19", 0x000001, 0x040000, CRC(f0a243b1) SHA1(3448c85c9388b590ea28b9adcaf81b68c14c678c) ) /* TMS 27C020 with non descript label "MF" */
/* these actually match the other set but have different names on the board..*/
ROM_REGION( 0x240000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x240000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "ts001e.u37", 0x000000, 0x080000, CRC(70b66e7e) SHA1(307ba27b623f67ee4b4023179870c270bac8ea22) )
ROM_RELOAD( 0x100000, 0x080000 )
ROM_LOAD( "ts000e.u38", 0x080000, 0x080000, CRC(a7a94143) SHA1(d811a7597402c161850ddf98cdb00661ea506c7d) )
@ -2543,7 +2495,7 @@ ROM_START( bakubrkr ) /* MASTER UP= 92/10/08 20:56:03 */
ROM_LOAD16_BYTE( "ts100j.u18", 0x000000, 0x040000, CRC(8cc0a4fd) SHA1(e7e18b5ea236522a79ba9db8f573ac8f7ade504b) )
ROM_LOAD16_BYTE( "ts101j.u19", 0x000001, 0x040000, CRC(aea92195) SHA1(e89f964e7e936fd7774f21956eb4ff5c9104837b) )
ROM_REGION( 0x240000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x240000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "ts001j.u37", 0x000000, 0x080000, CRC(70b66e7e) SHA1(307ba27b623f67ee4b4023179870c270bac8ea22) )
ROM_RELOAD( 0x100000, 0x080000 )
ROM_LOAD( "ts000j.u38", 0x080000, 0x080000, CRC(a7a94143) SHA1(d811a7597402c161850ddf98cdb00661ea506c7d) )
@ -2602,7 +2554,7 @@ ROM_START( berlwall )
ROM_LOAD16_BYTE( "bw100e_u23-01.u23", 0x000000, 0x020000, CRC(76b526ce) SHA1(95ba7cccbe88fd695c28b6a7c25a1afd130c1aa6) )
ROM_LOAD16_BYTE( "bw101e_u39-01.u39", 0x000001, 0x020000, CRC(78fa7ef2) SHA1(8392de6e307dcd2bf5bcbeb37d578d33246acfcf) )
ROM_REGION( 0x100000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x100000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "bw001.u84", 0x000000, 0x080000, CRC(bc927260) SHA1(44273a8b6a041504d54da4a7897adf23e3e9db10) )
ROM_LOAD( "bw002.u83", 0x080000, 0x080000, CRC(223f5465) SHA1(6ed077514ab4370a215a4a60c3aecc8b72ed1c97) )
@ -2633,7 +2585,7 @@ ROM_START( berlwallt )
ROM_LOAD16_BYTE( "bw100a.u23", 0x000000, 0x020000, CRC(e6bcb4eb) SHA1(220b8fddc79230b4f6a8cf33e1035355c485e8d1) )
ROM_LOAD16_BYTE( "bw101a.u39", 0x000001, 0x020000, CRC(38056fb2) SHA1(48338b9a5ebea872286541a3c45016673c4af76b) )
ROM_REGION( 0x120000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x120000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "bw001.u84", 0x000000, 0x080000, CRC(bc927260) SHA1(44273a8b6a041504d54da4a7897adf23e3e9db10) )
ROM_LOAD( "bw002.u83", 0x080000, 0x080000, CRC(223f5465) SHA1(6ed077514ab4370a215a4a60c3aecc8b72ed1c97) )
ROM_LOAD( "bw300.u82", 0x100000, 0x020000, CRC(b258737a) SHA1(b5c8fe44a8dcfc19bccba896bdb73030c5843544) ) // Masked players, Japanese text
@ -2667,7 +2619,7 @@ ROM_START( berlwallk )
ROM_LOAD16_BYTE( "bw100k.u23", 0x000000, 0x020000, CRC(0ce1d336) SHA1(9dbff4a72f03dd506726c3b305fd0a32e7da4ee1) )
ROM_LOAD16_BYTE( "bw101k.u39", 0x000001, 0x020000, CRC(3355be65) SHA1(bc3506236ee2f37b3cba7c4d8fe1b4dad61b06f1) )
ROM_REGION( 0x120000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x120000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "bw001.u84", 0x000000, 0x080000, CRC(bc927260) SHA1(44273a8b6a041504d54da4a7897adf23e3e9db10) )
ROM_LOAD( "bw002.u83", 0x080000, 0x080000, CRC(223f5465) SHA1(6ed077514ab4370a215a4a60c3aecc8b72ed1c97) )
ROM_LOAD( "bw300k.u82", 0x100000, 0x020000, CRC(b8de79d7) SHA1(c9a78aa213105f3657349995aca2866bc6d80093) )
@ -2699,7 +2651,7 @@ ROM_START( packbang ) /* same PCB as Berlin Wall - BW-002 */
ROM_LOAD16_BYTE( "bbp0x3.u23", 0x000000, 0x020000, CRC(105e978a) SHA1(d2aa72a25b70726ebe4b16bfe16da149bb37cd85) ) /* hand written checksum on label - 527B */
ROM_LOAD16_BYTE( "bbp1x3.u39", 0x000001, 0x020000, CRC(465d36f5) SHA1(d3bc9e5d444e086652d2bc562d9adfb8a1fd0d2d) ) /* hand written checksum on label - C5C8 */
ROM_REGION( 0x120000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x120000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "bb.u84", 0x000000, 0x080000, CRC(97837aaa) SHA1(303780621afea01f9e4d1386229c7421307562ec) )
ROM_LOAD( "pb_spr_ext_9_20_ver.u83", 0x080000, 0x040000, CRC(666a1217) SHA1(0d7b08d63b229d70b7e9e77a36516a695533c4cb) ) /* hand written label plus checksum BA63 */
@ -2753,7 +2705,7 @@ ROM_START( blazeon )
ROM_REGION( 0x020000, "audiocpu", 0 ) /* Z80 Code */
ROM_LOAD( "3.u45", 0x000000, 0x020000, CRC(52fe4c94) SHA1(896230e4627503292575bbd84edc3cf9cb18b27e) ) // 1xxxxxxxxxxxxxxxx = 0xFF
ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x200000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "bz_sp1.u20", 0x000000, 0x100000, CRC(0d5809a1) SHA1(e72669f95b050d1967d10a865bab8f3634c9daad) )
ROM_LOAD( "bz_sp1.u68", 0x000000, 0x100000, CRC(0d5809a1) SHA1(e72669f95b050d1967d10a865bab8f3634c9daad) )
ROM_LOAD( "bz_sp2.u21", 0x100000, 0x100000, CRC(56ead2bd) SHA1(463723f3c533603ce3a95310e9ce12b4e582b52d) )
@ -2771,7 +2723,7 @@ ROM_START( blazeonj )
ROM_REGION( 0x020000, "audiocpu", 0 ) /* Z80 Code */
ROM_LOAD( "3.u45", 0x000000, 0x020000, CRC(52fe4c94) SHA1(896230e4627503292575bbd84edc3cf9cb18b27e) ) // 1xxxxxxxxxxxxxxxx = 0xFF
ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x200000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "bz_sp1.u20", 0x000000, 0x100000, CRC(0d5809a1) SHA1(e72669f95b050d1967d10a865bab8f3634c9daad) )
ROM_LOAD( "bz_sp1.u68", 0x000000, 0x100000, CRC(0d5809a1) SHA1(e72669f95b050d1967d10a865bab8f3634c9daad) )
ROM_LOAD( "bz_sp2.u21", 0x100000, 0x100000, CRC(56ead2bd) SHA1(463723f3c533603ce3a95310e9ce12b4e582b52d) )
@ -2849,7 +2801,7 @@ ROM_START( wingforc )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Z80 Code */
ROM_LOAD( "s-drv_2.22.u45", 0x00000, 0x10000, CRC(ccdc2758) SHA1(5c0448a70306bd7574f35056ad45ffcbd4a866a8) )
ROM_REGION( 0x200000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x200000, "kan_spr", 0 ) /* Sprites */
// two sprite chips, roms are doubled
ROM_LOAD( "sp0m.u69", 0x000000, 0x80000, CRC(8be26a05) SHA1(5b54cd74235c0e32a234ddbe9cf26817700451f1) )
ROM_LOAD( "sp0m.u1", 0x000000, 0x80000, CRC(8be26a05) SHA1(5b54cd74235c0e32a234ddbe9cf26817700451f1) )
@ -2960,7 +2912,7 @@ ROM_START( bloodwar )
ROM_LOAD16_WORD_SWAP( "ofd0x3.124", 0x000000, 0x020000, CRC(399f2005) SHA1(ff0370724770c35963953fd9596d9f808ba87d8f) )
ROM_REGION( 0x1e00000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x1e00000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD ( "of-200-0201.8", 0x0000000, 0x200000, CRC(bba63025) SHA1(daec5285469ee953f6f838fe3cb3903524e9ac39) )
ROM_LOAD ( "of-201-0202.9", 0x0200000, 0x200000, CRC(4ffd9ddc) SHA1(62bc8c0ed2efab407fc2956c514c3e732bcc47ee) )
ROM_LOAD ( "of-202-0203.10", 0x0400000, 0x200000, CRC(fbcc5363) SHA1(9eff48c29d5c887d39e4db442c6ee51ec879521e) )
@ -3004,7 +2956,7 @@ ROM_START( oedfight )
ROM_REGION( 0x020000, "mcudata", 0 ) /* MCU Code */
ROM_LOAD16_WORD_SWAP( "ofd0x3.124", 0x000000, 0x020000, CRC(399f2005) SHA1(ff0370724770c35963953fd9596d9f808ba87d8f) )
ROM_REGION( 0x1e00000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x1e00000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD ( "of-200-0201.8", 0x0000000, 0x200000, CRC(bba63025) SHA1(daec5285469ee953f6f838fe3cb3903524e9ac39) )
ROM_LOAD ( "of-201-0202.9", 0x0200000, 0x200000, CRC(4ffd9ddc) SHA1(62bc8c0ed2efab407fc2956c514c3e732bcc47ee) )
ROM_LOAD ( "of-202-0203.10", 0x0400000, 0x200000, CRC(fbcc5363) SHA1(9eff48c29d5c887d39e4db442c6ee51ec879521e) )
@ -3159,7 +3111,7 @@ ROM_START( gtmr )
ROM_REGION( 0x020000, "mcudata", 0 ) /* MCU Code */
ROM_LOAD16_WORD_SWAP( "mmd0x2.u124.bin", 0x000000, 0x020000, CRC(3d7cb329) SHA1(053106acde642a414fde0b01105fe6762b6a10f6) ) // from gtmra
ROM_REGION( 0x840000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x840000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "mm-200-402-s0.bin", 0x000000, 0x200000, CRC(c0ab3efc) SHA1(e6cd15480977b036234d91e6f3a6e21b7f0a3c3e) )
ROM_LOAD( "mm-201-403-s1.bin", 0x200000, 0x200000, CRC(cf6b23dc) SHA1(ccfd0b17507e091e55c169361cd6a6b19641b717) )
ROM_LOAD( "mm-202-404-s2.bin", 0x400000, 0x200000, CRC(8f27f5d3) SHA1(219a86446ce2556682009d8aff837480f040a01e) )
@ -3188,7 +3140,7 @@ ROM_START( gtmra )
ROM_REGION( 0x020000, "mcudata", 0 ) /* MCU Code */
ROM_LOAD16_WORD_SWAP( "mmd0x2.u124.bin", 0x000000, 0x020000, CRC(3d7cb329) SHA1(053106acde642a414fde0b01105fe6762b6a10f6) )
ROM_REGION( 0x840000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x840000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "mm-200-402-s0.bin", 0x000000, 0x200000, CRC(c0ab3efc) SHA1(e6cd15480977b036234d91e6f3a6e21b7f0a3c3e) )
ROM_LOAD( "mm-201-403-s1.bin", 0x200000, 0x200000, CRC(cf6b23dc) SHA1(ccfd0b17507e091e55c169361cd6a6b19641b717) )
ROM_LOAD( "mm-202-404-s2.bin", 0x400000, 0x200000, CRC(8f27f5d3) SHA1(219a86446ce2556682009d8aff837480f040a01e) )
@ -3217,7 +3169,7 @@ ROM_START( gtmrb )
ROM_REGION( 0x020000, "mcudata", 0 ) /* MCU Code */
ROM_LOAD16_WORD_SWAP( "mmd0x1.u124", 0x000000, 0x020000, CRC(3d7cb329) SHA1(053106acde642a414fde0b01105fe6762b6a10f6) ) // == mmd0x2
ROM_REGION( 0x840000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x840000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "mm-200-402-s0.bin", 0x000000, 0x200000, CRC(c0ab3efc) SHA1(e6cd15480977b036234d91e6f3a6e21b7f0a3c3e) )
ROM_LOAD( "mm-201-403-s1.bin", 0x200000, 0x200000, CRC(cf6b23dc) SHA1(ccfd0b17507e091e55c169361cd6a6b19641b717) )
ROM_LOAD( "mm-202-404-s2.bin", 0x400000, 0x200000, CRC(8f27f5d3) SHA1(219a86446ce2556682009d8aff837480f040a01e) )
@ -3247,7 +3199,7 @@ ROM_START( gtmro )
ROM_REGION( 0x020000, "mcudata", 0 ) /* MCU Code */
ROM_LOAD16_WORD_SWAP( "mmd0x0.u124", 0x000000, 0x020000, CRC(e1f6159e) SHA1(e4af85036756482d6fa27494842699e2647809c7) )
ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x800000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD16_BYTE( "mm200-e.bin", 0x000000, 0x100000, CRC(eb104408) SHA1(a7805597161dc5acd2804d607dd0acac0c40111d) )
ROM_LOAD16_BYTE( "mm200-o.bin", 0x000001, 0x100000, CRC(b6d04e7c) SHA1(1fa9d6b967724ed0c9e6ae3eda7089a081120d54) )
ROM_LOAD16_BYTE( "mm201-e.bin", 0x200000, 0x100000, CRC(b8c64e14) SHA1(8e2b19f0ba715dfdf0d423a41989e715145adbeb) )
@ -3289,7 +3241,7 @@ ROM_START( gtmre )
// this rom has the right version string, so is probably correct
ROM_LOAD16_WORD_SWAP( "gtmrusa.u12", 0x000000, 0x020000, CRC(2e1a06ff) SHA1(475a7555653eefac84307492a385895b839cab0d) )
ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x800000, "kan_spr", 0 ) /* Sprites */
/* fill the 0x700000-7fffff range first, with the second of the identical halves */
ROM_LOAD16_BYTE( "gmmu64.bin", 0x600000, 0x100000, CRC(57d77b33) SHA1(f7ae28ae889be4442b7b236705943eaad1f0c84e) ) // HALVES IDENTICAL
ROM_LOAD16_BYTE( "gmmu65.bin", 0x600001, 0x100000, CRC(05b8bdca) SHA1(44471d66787d5b48ae8b13676f42f27af44e5c6a) ) // HALVES IDENTICAL
@ -3326,7 +3278,7 @@ ROM_START( gtmrusa )
ROM_REGION( 0x020000, "mcudata", 0 ) /* MCU Code? */
ROM_LOAD16_WORD_SWAP( "mmd0x3.u12", 0x000000, 0x020000, CRC(2e1a06ff) SHA1(475a7555653eefac84307492a385895b839cab0d) )
ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x800000, "kan_spr", 0 ) /* Sprites */
/* fill the 0x700000-7fffff range first, with the second of the identical halves */
ROM_LOAD16_BYTE( "mm-204-564.bin", 0x600000, 0x100000, CRC(57d77b33) SHA1(f7ae28ae889be4442b7b236705943eaad1f0c84e) ) // HALVES IDENTICAL
ROM_LOAD16_BYTE( "mm-204-406-565.bin", 0x600001, 0x100000, CRC(05b8bdca) SHA1(44471d66787d5b48ae8b13676f42f27af44e5c6a) ) // HALVES IDENTICAL
@ -3515,7 +3467,7 @@ ROM_START( gtmr2 )
ROM_REGION( 0x020000, "mcudata", 0 ) /* MCU Code? */
ROM_LOAD16_WORD_SWAP( "m2d0x0.u31", 0x000000, 0x020000, CRC(2e1a06ff) SHA1(475a7555653eefac84307492a385895b839cab0d) )
ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x800000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "m2-200-0.u49", 0x000000, 0x400000, CRC(93aafc53) SHA1(1d28b6e3bd61ce9c938fc5303aeabcdefa549852) )
ROM_LOAD( "m2-201-0.u50", 0x400000, 0x200000, CRC(39b60a83) SHA1(aa7b37c7c92bbcf685f4fec84cc6d8a77d26433c) )
ROM_LOAD( "m2-202-0.u51", 0x600000, 0x200000, CRC(fd06b339) SHA1(5de0af7d23147f6eb403700eabd66794198f3641) )
@ -3546,7 +3498,7 @@ ROM_START( gtmr2a )
ROM_REGION( 0x020000, "mcudata", 0 ) /* MCU Code? */
ROM_LOAD16_WORD_SWAP( "m2d0x0.u31", 0x000000, 0x020000, CRC(2e1a06ff) SHA1(475a7555653eefac84307492a385895b839cab0d) )
ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x800000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "m2-200-0.u49", 0x000000, 0x400000, CRC(93aafc53) SHA1(1d28b6e3bd61ce9c938fc5303aeabcdefa549852) )
ROM_LOAD( "m2-201-0.u50", 0x400000, 0x200000, CRC(39b60a83) SHA1(aa7b37c7c92bbcf685f4fec84cc6d8a77d26433c) )
ROM_LOAD( "m2-202-0.u51", 0x600000, 0x200000, CRC(fd06b339) SHA1(5de0af7d23147f6eb403700eabd66794198f3641) )
@ -3577,7 +3529,7 @@ ROM_START( gtmr2u )
ROM_REGION( 0x020000, "mcudata", 0 ) /* MCU Code? */
ROM_LOAD16_WORD_SWAP( "m2d0x0.u31", 0x000000, 0x020000, CRC(2e1a06ff) SHA1(475a7555653eefac84307492a385895b839cab0d) )
ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x800000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "m2-200-0.u49", 0x000000, 0x400000, CRC(93aafc53) SHA1(1d28b6e3bd61ce9c938fc5303aeabcdefa549852) )
ROM_LOAD( "m2-201-0.u50", 0x400000, 0x200000, CRC(39b60a83) SHA1(aa7b37c7c92bbcf685f4fec84cc6d8a77d26433c) )
ROM_LOAD( "m2-202-0.u51", 0x600000, 0x200000, CRC(fd06b339) SHA1(5de0af7d23147f6eb403700eabd66794198f3641) )
@ -3656,7 +3608,7 @@ ROM_START( mgcrystl ) /* Master Up: 92/01/10 14:21:30 */
ROM_LOAD16_BYTE( "mc100e02.u18", 0x000000, 0x020000, CRC(246a1335) SHA1(8333945a92e08a7bff425d2d6602557386016dc5) ) /* Labeled as MC100E/U18-02 */
ROM_LOAD16_BYTE( "mc101e02.u19", 0x000001, 0x040000, CRC(708ea1dc) SHA1(ae6eca6620729bc1e815f1bfbd8fe130f0ba943c) ) /* Labeled as MC101E/U19-02 */
ROM_REGION( 0x280000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x280000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "mc000.u38", 0x000000, 0x100000, CRC(28acf6f4) SHA1(6647ad90ea580b65ed28772f9d65352b06833d0c) )
ROM_LOAD( "mc001.u37", 0x100000, 0x080000, CRC(005bc43d) SHA1(6f6cd99e8e60562fa86581008455a6d9d646fa95) )
ROM_RELOAD( 0x180000, 0x080000 )
@ -3680,7 +3632,7 @@ ROM_START( mgcrystlo ) /* Master Up: 91/12/10 01:56:06 */
ROM_LOAD16_BYTE( "mc100h00.u18", 0x000000, 0x020000, CRC(c7456ba7) SHA1(96c25c3432069373fa86d7af3e093e02e39aea34) ) /* Labeled as MC100H/U18-00 */
ROM_LOAD16_BYTE( "mc101h00.u19", 0x000001, 0x040000, CRC(ea8f9300) SHA1(0cd0d448805aa45986b63befca00b08fe066dbb2) ) /* Labeled as MC101H/U19-00 */
ROM_REGION( 0x280000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x280000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "mc000.u38", 0x000000, 0x100000, CRC(28acf6f4) SHA1(6647ad90ea580b65ed28772f9d65352b06833d0c) )
ROM_LOAD( "mc001.u37", 0x100000, 0x080000, CRC(005bc43d) SHA1(6f6cd99e8e60562fa86581008455a6d9d646fa95) )
ROM_RELOAD( 0x180000, 0x080000 )
@ -3705,7 +3657,7 @@ ROM_START( mgcrystlj ) /* Master Up: 92/01/13 14:44:20 */
ROM_LOAD16_BYTE( "kaneko__mc100-u18j-02.u18", 0x000000, 0x020000, CRC(afe5882d) SHA1(176e6e12e3df63c08d7aff781f5e5a9bd83ec293) ) /* Labeled as MC100J/U18-02 */
ROM_LOAD16_BYTE( "kaneko__mc101-u19j-02.u19", 0x000001, 0x040000, CRC(60da5492) SHA1(82b90a617d355825624ce9fb30bddf4714bd0d18) ) /* Labeled as MC101J/U19-02 */
ROM_REGION( 0x280000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x280000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "kaneko__mc-000_0001.u38", 0x000000, 0x100000, CRC(28acf6f4) SHA1(6647ad90ea580b65ed28772f9d65352b06833d0c) ) // Mask rom
ROM_LOAD( "kaneko__mc-001_0002_r44.u37", 0x100000, 0x080000, CRC(005bc43d) SHA1(6f6cd99e8e60562fa86581008455a6d9d646fa95) ) // Mask rom
ROM_RELOAD( 0x180000, 0x080000 )
@ -3763,7 +3715,7 @@ ROM_START( shogwarr )
ROM_REGION( 0x020000, "calc3_rom", 0 )/* MCU Data */
ROM_LOAD( "fb040e.u33", 0x000000, 0x020000, CRC(299d0746) SHA1(67fe3a47ab01fa02ce2bb5836c2041986c19d875) )
ROM_REGION( 0x1000000, "gfx1", ROMREGION_ERASEFF ) /* Sprites */
ROM_REGION( 0x1000000, "kan_spr", ROMREGION_ERASEFF ) /* Sprites */
ROM_LOAD( "fb-020a.u1", 0x000000, 0x100000, CRC(87e55c6d) SHA1(87886c045d7c30b8dee3c8fb0bf8f2cdbc5fd7fb) )
ROM_LOAD( "fb020b.u2", 0x100000, 0x100000, CRC(276b9d7b) SHA1(7a154f65b4737f2b6ac8effa3352711079f571dc) )
ROM_LOAD( "fb021a.u3", 0x200000, 0x100000, CRC(7da15d37) SHA1(345cf2242e8210a697294a45197f2b3b974de885) )
@ -3794,7 +3746,7 @@ ROM_START( shogwarrk )
ROM_REGION( 0x020000, "calc3_rom", 0 )/* MCU Data */
ROM_LOAD( "fb-040a.u33", 0x000000, 0x020000, CRC(299d0746) SHA1(67fe3a47ab01fa02ce2bb5836c2041986c19d875) )
ROM_REGION( 0x1000000, "gfx1", ROMREGION_ERASEFF ) /* Sprites */
ROM_REGION( 0x1000000, "kan_spr", ROMREGION_ERASEFF ) /* Sprites */
ROM_LOAD( "fb-020a.u1", 0x000000, 0x100000, CRC(87e55c6d) SHA1(87886c045d7c30b8dee3c8fb0bf8f2cdbc5fd7fb) )
ROM_LOAD( "fb020b.u2", 0x100000, 0x100000, CRC(276b9d7b) SHA1(7a154f65b4737f2b6ac8effa3352711079f571dc) )
ROM_LOAD( "fb021a.u3", 0x200000, 0x100000, CRC(7da15d37) SHA1(345cf2242e8210a697294a45197f2b3b974de885) )
@ -3870,7 +3822,7 @@ ROM_START( shogwarru )
ROM_REGION( 0x020000, "calc3_rom", 0 )/* MCU Data */
ROM_LOAD( "fb040a.u33", 0x000000, 0x020000, CRC(4b62c4d9) SHA1(35c943dde70438a411714070e42a84366db5ef83) )
ROM_REGION( 0x1000000, "gfx1", ROMREGION_ERASEFF ) /* Sprites */
ROM_REGION( 0x1000000, "kan_spr", ROMREGION_ERASEFF ) /* Sprites */
ROM_LOAD( "fb-020a.u1", 0x000000, 0x100000, CRC(87e55c6d) SHA1(87886c045d7c30b8dee3c8fb0bf8f2cdbc5fd7fb) )
ROM_LOAD( "fb020b.u2", 0x100000, 0x100000, CRC(276b9d7b) SHA1(7a154f65b4737f2b6ac8effa3352711079f571dc) )
ROM_LOAD( "fb021a.u3", 0x200000, 0x100000, CRC(7da15d37) SHA1(345cf2242e8210a697294a45197f2b3b974de885) )
@ -3938,7 +3890,7 @@ ROM_START( fjbuster ) // Fujiyama Buster - Japan version of Shogun Warriors
ROM_REGION( 0x020000, "calc3_rom", 0 )/* MCU Data */
ROM_LOAD( "fb040j.u33", 0x000000, 0x020000, CRC(299d0746) SHA1(67fe3a47ab01fa02ce2bb5836c2041986c19d875) )
ROM_REGION( 0x1000000, "gfx1", ROMREGION_ERASEFF ) /* Sprites */
ROM_REGION( 0x1000000, "kan_spr", ROMREGION_ERASEFF ) /* Sprites */
ROM_LOAD( "fb-020a.u1", 0x000000, 0x100000, CRC(87e55c6d) SHA1(87886c045d7c30b8dee3c8fb0bf8f2cdbc5fd7fb) )
ROM_LOAD( "fb020b.u2", 0x100000, 0x100000, CRC(276b9d7b) SHA1(7a154f65b4737f2b6ac8effa3352711079f571dc) )
ROM_LOAD( "fb021a.u3", 0x200000, 0x100000, CRC(7da15d37) SHA1(345cf2242e8210a697294a45197f2b3b974de885) )
@ -4084,7 +4036,7 @@ ROM_START( brapboys ) /* World 'normal version', no rom sub board, serial RB92E0
ROM_REGION( 0x020000, "calc3_rom", 0 )/* MCU Data */
ROM_LOAD( "rb-040.00.u33", 0x000000, 0x020000, CRC(757c6e19) SHA1(0f1c37b1b1eb6b230c593e4648c4302f413a61f5) ) /* eprom labeled RB-040/U33-00 (green label) */
ROM_REGION( 0x800000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x800000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "rb-020.u100", 0x000000, 0x100000, CRC(ce220d38) SHA1(b88d7c89a3e1a826bf19a1fa692ec77c944596d9) )
ROM_LOAD( "rb-021.u76", 0x100000, 0x100000, CRC(74001407) SHA1(90002056ceb4e0401246950b8c3f996af0a2463c) )
ROM_LOAD( "rb-022.u77", 0x200000, 0x100000, CRC(cb3f42dc) SHA1(5415f15621924dd263b8fe7daaf3dc25d470b814) )
@ -4116,7 +4068,7 @@ ROM_START( brapboysp ) /* World 'special version' with EXROM sub board; serial R
ROM_REGION( 0x020000, "calc3_rom", 0 )/* MCU Data */
ROM_LOAD( "rb-040.a0.u33", 0x000000, 0x020000, CRC(7b856d27) SHA1(c9b3cb858302ed33c332a25f08573611d1468e94) ) /* eprom labeled RB-040/U33-A0 (black label) */
ROM_REGION( 0x1000000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x1000000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "rb-020.u100", 0x000000, 0x100000, CRC(ce220d38) SHA1(b88d7c89a3e1a826bf19a1fa692ec77c944596d9) ) // really at location next to capacitor C2 on Z01DK-EXROM daughterboard
ROM_LOAD( "rb-021.u76", 0x100000, 0x100000, CRC(74001407) SHA1(90002056ceb4e0401246950b8c3f996af0a2463c) )
ROM_LOAD( "rb-022.u77", 0x200000, 0x100000, CRC(cb3f42dc) SHA1(5415f15621924dd263b8fe7daaf3dc25d470b814) )
@ -4151,7 +4103,7 @@ ROM_START( brapboyspj ) /* Japanese 'special version' with EXROM sub board; seri
ROM_REGION( 0x020000, "calc3_rom", 0 )/* MCU Data */
ROM_LOAD( "rb-006.u33", 0x000000, 0x020000, CRC(f1d76b20) SHA1(c571b5f28e529589ee2d7697ef5d4b60ccb66e7a) ) // fill in suffix!
ROM_REGION( 0x1000000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x1000000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "rb-020.u100", 0x000000, 0x100000, CRC(ce220d38) SHA1(b88d7c89a3e1a826bf19a1fa692ec77c944596d9) ) // really at location next to capacitor C2 on Z01DK-EXROM daughterboard
ROM_LOAD( "rb-021.u76", 0x100000, 0x100000, CRC(74001407) SHA1(90002056ceb4e0401246950b8c3f996af0a2463c) )
ROM_LOAD( "rb-022.u77", 0x200000, 0x100000, CRC(cb3f42dc) SHA1(5415f15621924dd263b8fe7daaf3dc25d470b814) )
@ -4184,7 +4136,7 @@ ROM_START( brapboyspu ) /* US 'special version' with EXROM sub board; Serial RB9
ROM_REGION( 0x020000, "calc3_rom", 0 )/* MCU Data */
ROM_LOAD( "rb-040.10.u33", 0x000000, 0x020000, CRC(0c90d758) SHA1(9b1a9856ab00f80f15bffc01276f636f92f0bd12) ) /* eprom labeled RB-040/U33-10 (red label)*/
ROM_REGION( 0x1000000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x1000000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "rb-020.u100", 0x000000, 0x100000, CRC(ce220d38) SHA1(b88d7c89a3e1a826bf19a1fa692ec77c944596d9) ) // rb-020 0013 mask rom; really at location next to capacitor C2 on Z01DK-EXROM daughterboard
ROM_LOAD( "rb-021.u76", 0x100000, 0x100000, CRC(74001407) SHA1(90002056ceb4e0401246950b8c3f996af0a2463c) ) // rb-021 0014 mask rom
ROM_LOAD( "rb-022.u77", 0x200000, 0x100000, CRC(cb3f42dc) SHA1(5415f15621924dd263b8fe7daaf3dc25d470b814) ) // rb-022 0015 mask rom
@ -4267,7 +4219,7 @@ ROM_START( bonkadv )
ROM_REGION( 0x020000, "mcudata", 0 ) /* MCU Code */
ROM_LOAD16_WORD_SWAP( "mcu.124", 0x000000, 0x020000, CRC(9d4e2724) SHA1(9dd43703265e39f876877020a0ac3875de6faa8d) )
ROM_REGION( 0x500000, "gfx1", 0 ) /* Sprites */
ROM_REGION( 0x500000, "kan_spr", 0 ) /* Sprites */
ROM_LOAD( "pc100101.37", 0x000000, 0x200000, CRC(c96e7c10) SHA1(607cc7745abc3ff820047e8a00060ece61646623) )
ROM_LOAD( "pc200102.40", 0x200000, 0x100000, CRC(c2b7a26a) SHA1(1c8783442e0ccf30c5640866c5493f1dc1dd48f8) )
ROM_LOAD( "pc300103.38", 0x300000, 0x100000, CRC(51ee162c) SHA1(b33afc7d1e9f55f191e08472e8c51ca931b0389d) )

View File

@ -42,7 +42,6 @@ public:
m_kaneko_calc3(*this, "calc3_prot"),
m_toybox(*this, "toybox"),
m_screen(*this, "screen"),
m_gfxdecode(*this, "gfxdecode"),
m_palette(*this, "palette"),
m_bgpalette(*this, "bgpalette"),
m_eeprom(*this, "eeprom"),
@ -81,7 +80,6 @@ protected:
optional_device<kaneko_calc3_device> m_kaneko_calc3;
optional_device<kaneko_toybox_device> m_toybox;
required_device<screen_device> m_screen;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
optional_device<palette_device> m_bgpalette;
optional_device<eeprom_serial_93cxx_device> m_eeprom;

View File

@ -38,8 +38,10 @@ kaneko16_sprite_device::kaneko16_sprite_device(
device_t *owner,
u32 clock)
: device_t(mconfig, type, tag, owner, clock)
, device_gfx_interface(mconfig, *this, nullptr)
, device_video_interface(mconfig, *this)
, m_gfxdecode(*this, finder_base::DUMMY_TAG)
, m_gfx_region(*this, DEVICE_SELF)
, m_colbase(0)
{
m_keep_sprites = 0; // default disabled for games not using it
@ -77,6 +79,49 @@ void kaneko16_sprite_device::device_start()
}
void kaneko_vu002_sprite_device::device_start()
{
/*
16x16x4 made of 4 8x8x4 blocks arrenged like: 01
23
*/
gfx_layout layout_16x16x4 =
{
16,16,
0,
4,
{ STEP4(0,1) },
{ STEP8(8*8*4*0,4), STEP8(8*8*4*1,4) },
{ STEP8(8*8*4*0,8*4), STEP8(8*8*4*2,8*4) },
16*16*4
};
layout_16x16x4.total = m_gfx_region->bytes() / ((16*16*4) / 8);
kaneko16_sprite_device::device_start();
set_gfx(0, std::make_unique<gfx_element>(&palette(), layout_16x16x4, m_gfx_region->base(), 0, 0x40, m_colbase));
}
void kaneko_kc002_sprite_device::device_start()
{
/*
16x16x8 made of 4 8x8x8 blocks arrenged like: 01
23
*/
gfx_layout layout_16x16x8 =
{
16,16,
0,
8,
{ STEP8(0,1) },
{ STEP8(0,8), STEP8(8*8*8*1,8) },
{ STEP8(0,8*8), STEP8(8*8*8*2,8*8) },
16*16*8
};
layout_16x16x8.total = m_gfx_region->bytes() / ((16*16*8) / 8);
kaneko16_sprite_device::device_start();
set_gfx(0, std::make_unique<gfx_element>(&palette(), layout_16x16x8, m_gfx_region->base(), 0, 0x40, m_colbase));
}
void kaneko16_sprite_device::device_reset()
{
@ -140,170 +185,155 @@ Offset: Format: Value:
void kaneko_kc002_sprite_device::get_sprite_attributes(struct tempsprite_t *s, u16 attr)
{
s->color = (attr & 0x003f);
s->priority = (attr & 0x00c0) >> 6;
s->flipy = (attr & 0x0100);
s->flipx = (attr & 0x0200);
s->code += (s->y & 1) << 16; // bloodwar
s->color = (attr & 0x003f);
s->priority = (attr & 0x00c0) >> 6;
s->flipy = (attr & 0x0100);
s->flipx = (attr & 0x0200);
s->code += (s->y & 1) << 16; // bloodwar
}
void kaneko_vu002_sprite_device::get_sprite_attributes(struct tempsprite_t *s, u16 attr)
{
s->flipy = (attr & 0x0001);
s->flipx = (attr & 0x0002);
s->color = (attr & 0x00fc) >> 2;
s->priority = (attr & 0x0300) >> 8;
s->flipy = (attr & 0x0001);
s->flipx = (attr & 0x0002);
s->color = (attr & 0x00fc) >> 2;
s->priority = (attr & 0x0300) >> 8;
}
int kaneko16_sprite_device::parse_sprite_type012(int i, struct tempsprite_t *s, u16* spriteram16, int spriteram16_bytes)
{
int attr, xoffs, offs;
const int offs = i * 8 / 2;
offs = i * 8/2;
if (offs >= (spriteram16_bytes / 2)) return -1;
if (offs >= (spriteram16_bytes/2)) return -1;
attr = spriteram16[offs + 0];
s->code = spriteram16[offs + 1];
s->x = spriteram16[offs + 2];
s->y = spriteram16[offs + 3];
const u16 attr = spriteram16[offs + 0];
s->code = spriteram16[offs + 1];
s->x = spriteram16[offs + 2];
s->y = spriteram16[offs + 3];
// this differs between each chip type
get_sprite_attributes(s, attr);
xoffs = (attr & 0x1800) >> 11;
s->yoffs = m_sprites_regs[0x10/2 + xoffs*2 + 1];
s->xoffs = m_sprites_regs[0x10/2 + xoffs*2 + 0];
const u16 xoffs = (attr & 0x1800) >> 11;
s->yoffs = m_sprites_regs[0x10 / 2 + xoffs * 2 + 1];
s->xoffs = m_sprites_regs[0x10 / 2 + xoffs * 2 + 0];
if (m_sprite_flipy)
{
s->yoffs -= m_sprites_regs[0x2/2];
s->yoffs -= screen().visible_area().min_y<<6;
s->yoffs -= m_sprites_regs[0x2/2];
s->yoffs -= screen().visible_area().min_y << 6;
}
else
{
s->yoffs -= m_sprites_regs[0x2/2];
s->yoffs += screen().visible_area().min_y<<6;
s->yoffs -= m_sprites_regs[0x2/2];
s->yoffs += screen().visible_area().min_y << 6;
}
return ( (attr & 0x2000) ? USE_LATCHED_XY : 0 ) |
( (attr & 0x4000) ? USE_LATCHED_COLOR : 0 ) |
( (attr & 0x8000) ? USE_LATCHED_CODE : 0 ) ;
return ((attr & 0x2000) ? USE_LATCHED_XY : 0) |
((attr & 0x4000) ? USE_LATCHED_COLOR : 0) |
((attr & 0x8000) ? USE_LATCHED_CODE : 0) ;
}
// custom function to draw a single sprite. needed to keep correct sprites - sprites and sprites - tilemaps priorities
template<class _BitmapClass>
void kaneko16_sprite_device::draw_sprites_custom(_BitmapClass &dest_bmp,const rectangle &clip,gfx_element *gfx,
u32 code,u32 color,int flipx,int flipy,int sx,int sy,
u32 code,u32 color,bool flipx,bool flipy,int sx,int sy,
bitmap_ind8 &priority_bitmap, int priority)
{
pen_t pen_base = gfx->colorbase() + gfx->granularity() * (color % gfx->colors());
const pen_t pen_base = gfx->colorbase() + gfx->granularity() * (color % gfx->colors());
const u8 *source_base = gfx->get_data(code % gfx->elements());
int sprite_screen_height = ((1<<16)*gfx->height()+0x8000)>>16;
int sprite_screen_width = ((1<<16)*gfx->width()+0x8000)>>16;
int dx, dy;
if (sprite_screen_width && sprite_screen_height)
int ex = sx+gfx->width();
int ey = sy+gfx->height();
int x_index_base;
int y_index;
if (flipx)
{
/* compute sprite increment per screen pixel */
int dx = (gfx->width()<<16)/sprite_screen_width;
int dy = (gfx->height()<<16)/sprite_screen_height;
x_index_base = gfx->width() - 1;
dx = -1;
}
else
{
x_index_base = 0;
dx = 1;
}
int ex = sx+sprite_screen_width;
int ey = sy+sprite_screen_height;
if (flipy)
{
y_index = gfx->height() - 1;
dy = -1;
}
else
{
y_index = 0;
dy = 1;
}
int x_index_base;
int y_index;
if (sx < clip.min_x)
{ /* clip left */
int pixels = clip.min_x - sx;
sx += pixels;
x_index_base += pixels * dx;
}
if (sy < clip.min_y)
{ /* clip top */
int pixels = clip.min_y - sy;
sy += pixels;
y_index += pixels * dy;
}
/* NS 980211 - fixed incorrect clipping */
if (ex > clip.max_x + 1)
{ /* clip right */
int pixels = ex-clip.max_x - 1;
ex -= pixels;
}
if (ey > clip.max_y + 1)
{ /* clip bottom */
int pixels = ey-clip.max_y - 1;
ey -= pixels;
}
if( flipx )
if (ex > sx)
{ /* skip if inner loop doesn't draw anything */
typename _BitmapClass::pixel_t *dest;
int rgb;
if (sizeof(*dest) == 2) rgb = 0;
else rgb = 1;
const pen_t *pal = gfx->palette().pens();
for (int y = sy; y < ey; y++)
{
x_index_base = (sprite_screen_width-1)*dx;
dx = -dx;
}
else
{
x_index_base = 0;
}
const u8 *source = source_base + y_index * gfx->rowbytes();
dest = &dest_bmp.pix(y);
u8 *pri = &priority_bitmap.pix8(y);
if( flipy )
{
y_index = (sprite_screen_height-1)*dy;
dy = -dy;
}
else
{
y_index = 0;
}
if( sx < clip.min_x)
{ /* clip left */
int pixels = clip.min_x-sx;
sx += pixels;
x_index_base += pixels*dx;
}
if( sy < clip.min_y )
{ /* clip top */
int pixels = clip.min_y-sy;
sy += pixels;
y_index += pixels*dy;
}
/* NS 980211 - fixed incorrect clipping */
if( ex > clip.max_x+1 )
{ /* clip right */
int pixels = ex-clip.max_x-1;
ex -= pixels;
}
if( ey > clip.max_y+1 )
{ /* clip bottom */
int pixels = ey-clip.max_y-1;
ey -= pixels;
}
if (ex > sx)
{ /* skip if inner loop doesn't draw anything */
typename _BitmapClass::pixel_t *dest;
int rgb;
if (sizeof(*dest) == 2) rgb = 0;
else rgb = 1;
const pen_t *pal = gfx->palette().pens();
for (int y = sy; y < ey; y++)
int x_index = x_index_base;
for (int x = sx; x < ex; x++)
{
const u8 *source = source_base + (y_index >> 16) * gfx->rowbytes();
dest = &dest_bmp.pix(y);
u8 *pri = &priority_bitmap.pix8(y);
int x_index = x_index_base;
for (int x = sx; x < ex; x++)
const u8 c = source[x_index];
if (c != 0)
{
int c = source[x_index >> 16];
if (c != 0)
if (pri[x] < priority)
{
if (pri[x] < priority)
{
if (!rgb) dest[x] = pen_base + c;
else dest[x] = pal[pen_base + c];
}
pri[x] = 0xff; // mark it "already drawn"
if (!rgb) dest[x] = pen_base + c;
else dest[x] = pal[pen_base + c];
}
x_index += dx;
pri[x] = 0xff; // mark it "already drawn"
}
y_index += dy;
x_index += dx;
}
y_index += dy;
}
}
}
/* Build a list of sprites to display & draw them */
template<class _BitmapClass>
void kaneko16_sprite_device::draw_sprites(_BitmapClass &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, u16* spriteram16, int spriteram16_bytes)
@ -317,7 +347,7 @@ void kaneko16_sprite_device::draw_sprites(_BitmapClass &bitmap, const rectangle
in a temp buffer, then draw the buffer's contents from last
to first. */
int max = (screen().width() > 0x100) ? (0x200<<6) : (0x100<<6);
const int max = (screen().width() > 0x100) ? (0x200 << 6) : (0x100 << 6);
int i = 0;
struct tempsprite_t *s = m_first_sprite.get();
@ -335,9 +365,7 @@ void kaneko16_sprite_device::draw_sprites(_BitmapClass &bitmap, const rectangle
while (1)
{
int flags;
flags = parse_sprite_type012(i,s, spriteram16, spriteram16_bytes);
int flags = parse_sprite_type012(i,s, spriteram16, spriteram16_bytes);
if (flags == -1) // End of Sprites
break;
@ -347,26 +375,25 @@ void kaneko16_sprite_device::draw_sprites(_BitmapClass &bitmap, const rectangle
else
code = s->code; // .. or latch this value
if (flags & USE_LATCHED_COLOR)
{
s->color = color;
s->priority = priority;
s->xoffs = xoffs;
s->yoffs = yoffs;
s->color = color;
s->priority = priority;
s->xoffs = xoffs;
s->yoffs = yoffs;
if (m_sprite_fliptype==0)
{
s->flipx = flipx;
s->flipy = flipy;
s->flipx = flipx;
s->flipy = flipy;
}
}
else
{
color = s->color;
priority = s->priority;
xoffs = s->xoffs;
yoffs = s->yoffs;
color = s->color;
priority = s->priority;
xoffs = s->xoffs;
yoffs = s->yoffs;
if (m_sprite_fliptype==0)
{
@ -378,8 +405,8 @@ void kaneko16_sprite_device::draw_sprites(_BitmapClass &bitmap, const rectangle
// brap boys explicitly doesn't want the flip to be latched, maybe there is a different bit to enable that behavior?
if (m_sprite_fliptype==1)
{
flipx = s->flipx;
flipy = s->flipy;
flipx = s->flipx;
flipy = s->flipy;
}
if (flags & USE_LATCHED_XY)
@ -388,22 +415,22 @@ void kaneko16_sprite_device::draw_sprites(_BitmapClass &bitmap, const rectangle
s->y += y;
}
// Always latch the latest result
x = s->x;
y = s->y;
x = s->x;
y = s->y;
/* We can now buffer this sprite */
s->x = s->xoffs + s->x;
s->y = s->yoffs + s->y;
s->x = s->xoffs + s->x;
s->y = s->yoffs + s->y;
s->x += m_sprite_xoffs;
s->y += m_sprite_yoffs;
s->x += m_sprite_xoffs;
s->y += m_sprite_yoffs;
if (m_sprite_flipx) { s->x = max - s->x - (16<<6); s->flipx = !s->flipx; }
if (m_sprite_flipy) { s->y = max - s->y - (16<<6); s->flipy = !s->flipy; }
if (m_sprite_flipx) { s->x = max - s->x - (16 << 6); s->flipx = !s->flipx; }
if (m_sprite_flipy) { s->y = max - s->y - (16 << 6); s->flipy = !s->flipy; }
s->x = ( (s->x & 0x7fc0) - (s->x & 0x8000) ) / 0x40;
s->y = ( (s->y & 0x7fc0) - (s->y & 0x8000) ) / 0x40;
s->x = ((s->x & 0x7fc0) - (s->x & 0x8000)) / 0x40;
s->y = ((s->y & 0x7fc0) - (s->y & 0x8000)) / 0x40;
i++;
s++;
@ -415,18 +442,18 @@ void kaneko16_sprite_device::draw_sprites(_BitmapClass &bitmap, const rectangle
for (s--; s >= m_first_sprite.get(); s--)
{
int curr_pri = s->priority;
const int curr_pri = s->priority;
u32 primask = m_priority.sprite[curr_pri];
const u32 primask = m_priority.sprite[curr_pri];
draw_sprites_custom(
bitmap,cliprect,m_gfxdecode->gfx(0),
bitmap,cliprect,gfx(0),
s->code,
s->color,
s->flipx, s->flipy,
s->x, s->y,
priority_bitmap,
primask );
primask);
}
}
@ -507,10 +534,8 @@ u16 kaneko16_sprite_device::regs_r(offs_t offset)
void kaneko16_sprite_device::regs_w(offs_t offset, u16 data, u16 mem_mask)
{
u16 new_data;
COMBINE_DATA(&m_sprites_regs[offset]);
new_data = m_sprites_regs[offset];
const u16 new_data = m_sprites_regs[offset];
switch (offset)
{
@ -520,7 +545,7 @@ void kaneko16_sprite_device::regs_w(offs_t offset, u16 data, u16 mem_mask)
m_sprite_flipx = new_data & 2;
m_sprite_flipy = new_data & 1;
if(get_sprite_type() == 0)
if (get_sprite_type() == 0)
m_keep_sprites = ~new_data & 4;
}
@ -538,25 +563,22 @@ void kaneko16_sprite_device::copybitmap(bitmap_ind16 &bitmap, const rectangle &c
void kaneko16_sprite_device::copybitmap(bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
const pen_t *pal = m_gfxdecode->gfx(0)->palette().pens();
u16* srcbitmap;
u32* dstbitmap;
const pen_t *pal = gfx(0)->palette().pens();
for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
{
srcbitmap = &m_sprites_bitmap.pix16(y);
dstbitmap = &bitmap.pix32(y);
u16* srcbitmap = &m_sprites_bitmap.pix16(y);
u32* dstbitmap = &bitmap.pix32(y);
for (int x = cliprect.min_x; x <= cliprect.max_x; x++)
{
u16 pix = srcbitmap[x];
const u16 pix = srcbitmap[x];
if (pix) dstbitmap[x] = pal[pix];
}
}
}
void kaneko16_sprite_device::render_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, u16* spriteram16, int spriteram16_bytes) { render_sprites_common(bitmap, cliprect, priority_bitmap, spriteram16, spriteram16_bytes); }
void kaneko16_sprite_device::render_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, bitmap_ind8 &priority_bitmap, u16* spriteram16, int spriteram16_bytes) { render_sprites_common(bitmap, cliprect, priority_bitmap, spriteram16, spriteram16_bytes); }
@ -566,7 +588,7 @@ void kaneko16_sprite_device::render_sprites_common(_BitmapClass &bitmap, const r
/* Sprites last (rendered with pdrawgfx, so they can slip
in between the layers) */
if(m_keep_sprites)
if (m_keep_sprites)
{
/* keep sprites on screen - used by mgcrystl when you get the first gem and it shows instructions */
draw_sprites(m_sprites_bitmap, cliprect, priority_bitmap, spriteram16, spriteram16_bytes);
@ -594,19 +616,16 @@ kaneko_kc002_sprite_device::kaneko_kc002_sprite_device(const machine_config &mco
void kaneko16_sprite_device::bootleg_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, u16* spriteram16, int spriteram16_bytes)
{
// u16 *spriteram16 = m_spriteram;
int offs;
int sx=0, sy=0;
int sx = 0, sy = 0;
for (offs = 0;offs < spriteram16_bytes/2;offs += 4)
for (int offs = 0; offs < spriteram16_bytes / 2; offs += 4)
{
int code,color,flipx,flipy;
const u32 code = spriteram16[offs + 1] & 0x1fff;
const u32 color = (spriteram16[offs] & 0x003c) >> 2;
const bool flipx = spriteram16[offs] & 0x0002;
const bool flipy = spriteram16[offs] & 0x0001;
code = spriteram16[offs + 1] & 0x1fff;
color = (spriteram16[offs] & 0x003c) >> 2;
flipx = spriteram16[offs] & 0x0002;
flipy = spriteram16[offs] & 0x0001;
if((spriteram16[offs] & 0x6000) == 0x6000) /* Link bits */
if ((spriteram16[offs] & 0x6000) == 0x6000) /* Link bits */
{
sx += spriteram16[offs + 2] >> 6;
sy += spriteram16[offs + 3] >> 6;
@ -617,10 +636,10 @@ void kaneko16_sprite_device::bootleg_draw_sprites(bitmap_ind16 &bitmap, const re
sy = spriteram16[offs + 3] >> 6;
}
sx = (sx&0x1ff) - (sx&0x200);
sy = (sy&0x1ff) - (sy&0x200);
sx = (sx & 0x1ff) - (sx & 0x200);
sy = (sy & 0x1ff) - (sy & 0x200);
m_gfxdecode->gfx(0)->transpen(bitmap,cliprect,
gfx(0)->transpen(bitmap,cliprect,
code,
color,
flipx,flipy,

View File

@ -15,20 +15,20 @@ struct priority_t
struct tempsprite_t
{
int code,color;
u32 code,color;
int x,y;
int xoffs,yoffs;
int flipx,flipy;
bool flipx,flipy;
int priority;
};
class kaneko16_sprite_device : public device_t, public device_video_interface
class kaneko16_sprite_device : public device_t, public device_gfx_interface, public device_video_interface
{
public:
// configuration
template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
void set_color_base(u16 base) { m_colbase = base; }
void set_fliptype(int fliptype) { m_sprite_fliptype = fliptype; }
void set_offsets(int xoffs, int yoffs)
{
@ -85,6 +85,8 @@ protected:
// them in a different order
virtual void get_sprite_attributes(struct tempsprite_t *s, u16 attr) =0;
required_memory_region m_gfx_region;
u16 m_colbase;
private:
// registers
@ -103,16 +105,13 @@ private:
template<class _BitmapClass>
void draw_sprites_custom(_BitmapClass &dest_bmp,const rectangle &clip,gfx_element *gfx,
u32 code,u32 color,int flipx,int flipy,int sx,int sy,
u32 code,u32 color,bool flipx,bool flipy,int sx,int sy,
bitmap_ind8 &priority_bitmap, int priority);
int parse_sprite_type012(int i, struct tempsprite_t *s, u16* spriteram16, int spriteram16_bytes);
void copybitmap(bitmap_ind16 &bitmap, const rectangle &cliprect);
void copybitmap(bitmap_rgb32 &bitmap, const rectangle &cliprect);
required_device<gfxdecode_device> m_gfxdecode;
};
//extern const device_type KANEKO16_SPRITE;
@ -130,6 +129,9 @@ public:
kaneko_vu002_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
void get_sprite_attributes(struct tempsprite_t *s, u16 attr) override;
int get_sprite_type(void) override{ return 0; };
protected:
virtual void device_start() override;
};
DECLARE_DEVICE_TYPE(KANEKO_VU002_SPRITE, kaneko_vu002_sprite_device)
@ -146,6 +148,9 @@ public:
kaneko_kc002_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
void get_sprite_attributes(struct tempsprite_t *s, u16 attr) override;
int get_sprite_type(void) override{ return 1; };
protected:
virtual void device_start() override;
};
DECLARE_DEVICE_TYPE(KANEKO_KC002_SPRITE, kaneko_kc002_sprite_device)