Previous 199869 Revisions Next

r29257 Friday 4th April, 2014 at 13:45:06 UTC by David Haywood
handle berlwall alt spriteram layout in driver instead of inside sprite chip, add IC locations (nw)
[src/mame/drivers]kaneko16.c
[src/mame/includes]kaneko16.h
[src/mame/video]kaneko_spr.c kaneko_spr.h

trunk/src/mame/drivers/kaneko16.c
r29256r29257
258258   m_oki->write(space, offset, data, mem_mask);
259259}
260260
261READ16_MEMBER(kaneko16_berlwall_state::berlwall_spriteram_r)
262{
263   offset = BITSWAP16(offset, 15, 14, 13, 12, 2, 11, 10, 9, 8, 7, 6, 5, 4, 3, 1, 0);
264   return m_spriteram[offset];
265}
266
267WRITE16_MEMBER(kaneko16_berlwall_state::berlwall_spriteram_w)
268{
269   offset = BITSWAP16(offset, 15, 14, 13, 12, 2, 11, 10, 9, 8, 7, 6, 5, 4, 3, 1, 0);
270   COMBINE_DATA(&m_spriteram[offset]);
271}
272
261273static ADDRESS_MAP_START( berlwall, AS_PROGRAM, 16, kaneko16_berlwall_state )
262274   AM_RANGE(0x000000, 0x03ffff) AM_ROM     // ROM
263275   AM_RANGE(0x200000, 0x20ffff) AM_RAM     // Work RAM
264   AM_RANGE(0x30e000, 0x30ffff) AM_RAM AM_SHARE("spriteram")       // Sprites
276   AM_RANGE(0x30e000, 0x30ffff) AM_READWRITE(berlwall_spriteram_r, berlwall_spriteram_w) AM_SHARE("spriteram")       // Sprites
265277   AM_RANGE(0x400000, 0x400fff) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette")    // Palette
266278//  AM_RANGE(0x480000, 0x480001) AM_RAM     // ?
267279   AM_RANGE(0x500000, 0x500001) AM_READWRITE(kaneko16_bg15_reg_r, kaneko16_bg15_reg_w) AM_SHARE("bg15_reg")    // High Color Background
r29256r29257
16741686   MCFG_KANEKO_TMAP_GFXDECODE("gfxdecode")
16751687
16761688   MCFG_DEVICE_ADD_VU002_SPRITES
1677   kaneko16_sprite_device::set_altspacing(*device, 1);
1689//   kaneko16_sprite_device::set_altspacing(*device, 1);
16781690   MCFG_KANEKO16_SPRITE_GFXDECODE("gfxdecode")
16791691
16801692   MCFG_VIDEO_START_OVERRIDE(kaneko16_berlwall_state,berlwall)
r29256r29257
24212433
24222434ROM_START( berlwall )
24232435   ROM_REGION( 0x040000, "maincpu", 0 )            /* 68000 Code */
2424   ROM_LOAD16_BYTE( "u23_01.bin", 0x000000, 0x020000, CRC(76b526ce) SHA1(95ba7cccbe88fd695c28b6a7c25a1afd130c1aa6) )
2425   ROM_LOAD16_BYTE( "u39_01.bin", 0x000001, 0x020000, CRC(78fa7ef2) SHA1(8392de6e307dcd2bf5bcbeb37d578d33246acfcf) )
2436   ROM_LOAD16_BYTE( "u23_01.u23", 0x000000, 0x020000, CRC(76b526ce) SHA1(95ba7cccbe88fd695c28b6a7c25a1afd130c1aa6) )
2437   ROM_LOAD16_BYTE( "u39_01.u39", 0x000001, 0x020000, CRC(78fa7ef2) SHA1(8392de6e307dcd2bf5bcbeb37d578d33246acfcf) )
24262438
24272439   ROM_REGION( 0x120000, "gfx1", 0 )   /* Sprites */
2428   ROM_LOAD( "bw001",  0x000000, 0x080000, CRC(bc927260) SHA1(44273a8b6a041504d54da4a7897adf23e3e9db10) )
2429   ROM_LOAD( "bw002",  0x080000, 0x080000, CRC(223f5465) SHA1(6ed077514ab4370a215a4a60c3aecc8b72ed1c97) )
2430   ROM_LOAD( "bw300",  0x100000, 0x020000, CRC(b258737a) SHA1(b5c8fe44a8dcfc19bccba896bdb73030c5843544) )
2440   ROM_LOAD( "bw001.u84",  0x000000, 0x080000, CRC(bc927260) SHA1(44273a8b6a041504d54da4a7897adf23e3e9db10) )
2441   ROM_LOAD( "bw002.u83",  0x080000, 0x080000, CRC(223f5465) SHA1(6ed077514ab4370a215a4a60c3aecc8b72ed1c97) )
2442   ROM_LOAD( "bw300.u82",  0x100000, 0x020000, CRC(b258737a) SHA1(b5c8fe44a8dcfc19bccba896bdb73030c5843544) )
24312443
24322444   ROM_REGION( 0x080000, "gfx2", 0 )   /* Tiles (Scrambled) */
2433   ROM_LOAD( "bw003",  0x000000, 0x080000, CRC(fbb4b72d) SHA1(07a0590f18b3bba1843ef6a89a5c214e8e605cc3) )
2445   ROM_LOAD( "bw003.u77",  0x000000, 0x080000, CRC(fbb4b72d) SHA1(07a0590f18b3bba1843ef6a89a5c214e8e605cc3) )
24342446
24352447   ROM_REGION( 0x400000, "gfx3", 0 )   /* High Color Background */
2436   ROM_LOAD16_BYTE( "bw004",  0x000000, 0x080000, CRC(5300c34d) SHA1(ccb12ea05f89ef68bcfe003faced2ffea24c4bf0) )
2437   ROM_LOAD16_BYTE( "bw008",  0x000001, 0x080000, CRC(9aaf2f2f) SHA1(1352856159e19f07e8e30f9c44b21347103ce024) ) // FIXED BITS (xxxxxxx0)
2438   ROM_LOAD16_BYTE( "bw005",  0x100000, 0x080000, CRC(16db6d43) SHA1(0158d0278d085487400ad4384b8cc9618503319e) )
2439   ROM_LOAD16_BYTE( "bw009",  0x100001, 0x080000, CRC(1151a0b0) SHA1(584a0da7eb7f06450f95e76faa20d19f053cb74c) ) // FIXED BITS (xxxxxxx0)
2440   ROM_LOAD16_BYTE( "bw006",  0x200000, 0x080000, CRC(73a35d1f) SHA1(af919cf858c5923aea45e0d8d91493e6284cb99e) )
2441   ROM_LOAD16_BYTE( "bw00a",  0x200001, 0x080000, CRC(f447dfc2) SHA1(1254eafea92e8e416deedf21cb01990ffc4f896c) ) // FIXED BITS (xxxxxxx0)
2442   ROM_LOAD16_BYTE( "bw007",  0x300000, 0x080000, CRC(97f85c87) SHA1(865e076e098c49c96639f62be793f2de24b4926b) )
2443   ROM_LOAD16_BYTE( "bw00b",  0x300001, 0x080000, CRC(b0a48225) SHA1(de256bb6e2a824114274bff0c6c1234934c31c49) ) // FIXED BITS (xxxxxxx0)
2448   ROM_LOAD16_BYTE( "bw004.u73",  0x000000, 0x080000, CRC(5300c34d) SHA1(ccb12ea05f89ef68bcfe003faced2ffea24c4bf0) )
2449   ROM_LOAD16_BYTE( "bw008.u65",  0x000001, 0x080000, CRC(9aaf2f2f) SHA1(1352856159e19f07e8e30f9c44b21347103ce024) ) // FIXED BITS (xxxxxxx0)
2450   ROM_LOAD16_BYTE( "bw005.u74",  0x100000, 0x080000, CRC(16db6d43) SHA1(0158d0278d085487400ad4384b8cc9618503319e) )
2451   ROM_LOAD16_BYTE( "bw009.u66",  0x100001, 0x080000, CRC(1151a0b0) SHA1(584a0da7eb7f06450f95e76faa20d19f053cb74c) ) // FIXED BITS (xxxxxxx0)
2452   ROM_LOAD16_BYTE( "bw006.u75",  0x200000, 0x080000, CRC(73a35d1f) SHA1(af919cf858c5923aea45e0d8d91493e6284cb99e) )
2453   ROM_LOAD16_BYTE( "bw00a.u67",  0x200001, 0x080000, CRC(f447dfc2) SHA1(1254eafea92e8e416deedf21cb01990ffc4f896c) ) // FIXED BITS (xxxxxxx0)
2454   ROM_LOAD16_BYTE( "bw007.u76",  0x300000, 0x080000, CRC(97f85c87) SHA1(865e076e098c49c96639f62be793f2de24b4926b) )
2455   ROM_LOAD16_BYTE( "bw00b.u68",  0x300001, 0x080000, CRC(b0a48225) SHA1(de256bb6e2a824114274bff0c6c1234934c31c49) ) // FIXED BITS (xxxxxxx0)
24442456
24452457   ROM_REGION( 0x040000, "oki", 0 )    /* Samples */
2446   ROM_LOAD( "bw000",  0x000000, 0x040000, CRC(d8fe869d) SHA1(75e9044c4164ca6db9519fcff8eca6c8a2d8d5d1) )
2458   ROM_LOAD( "bw000.u46",  0x000000, 0x040000, CRC(d8fe869d) SHA1(75e9044c4164ca6db9519fcff8eca6c8a2d8d5d1) )
24472459ROM_END
24482460
24492461
r29256r29257
24932505
24942506ROM_START( berlwallt )
24952507   ROM_REGION( 0x040000, "maincpu", 0 )            /* 68000 Code */
2496   ROM_LOAD16_BYTE( "bw100a", 0x000000, 0x020000, CRC(e6bcb4eb) SHA1(220b8fddc79230b4f6a8cf33e1035355c485e8d1) )
2497   ROM_LOAD16_BYTE( "bw101a", 0x000001, 0x020000, CRC(38056fb2) SHA1(48338b9a5ebea872286541a3c45016673c4af76b) )
2508   ROM_LOAD16_BYTE( "bw100a.u23", 0x000000, 0x020000, CRC(e6bcb4eb) SHA1(220b8fddc79230b4f6a8cf33e1035355c485e8d1) )
2509   ROM_LOAD16_BYTE( "bw101a.u39", 0x000001, 0x020000, CRC(38056fb2) SHA1(48338b9a5ebea872286541a3c45016673c4af76b) )
24982510
24992511   ROM_REGION( 0x120000, "gfx1", 0 )   /* Sprites */
2500   ROM_LOAD( "bw001",  0x000000, 0x080000, CRC(bc927260) SHA1(44273a8b6a041504d54da4a7897adf23e3e9db10) )
2501   ROM_LOAD( "bw002",  0x080000, 0x080000, CRC(223f5465) SHA1(6ed077514ab4370a215a4a60c3aecc8b72ed1c97) )
2502   ROM_LOAD( "bw300",  0x100000, 0x020000, CRC(b258737a) SHA1(b5c8fe44a8dcfc19bccba896bdb73030c5843544) )
2512   ROM_LOAD( "bw001.u84",  0x000000, 0x080000, CRC(bc927260) SHA1(44273a8b6a041504d54da4a7897adf23e3e9db10) )
2513   ROM_LOAD( "bw002.u83",  0x080000, 0x080000, CRC(223f5465) SHA1(6ed077514ab4370a215a4a60c3aecc8b72ed1c97) )
2514   ROM_LOAD( "bw300.u82",  0x100000, 0x020000, CRC(b258737a) SHA1(b5c8fe44a8dcfc19bccba896bdb73030c5843544) )
25032515
25042516   ROM_REGION( 0x080000, "gfx2", 0 )   /* Tiles (Scrambled) */
2505   ROM_LOAD( "bw003",  0x000000, 0x080000, CRC(fbb4b72d) SHA1(07a0590f18b3bba1843ef6a89a5c214e8e605cc3) )
2517   ROM_LOAD( "bw003.u77",  0x000000, 0x080000, CRC(fbb4b72d) SHA1(07a0590f18b3bba1843ef6a89a5c214e8e605cc3) )
25062518
25072519   ROM_REGION( 0x400000, "gfx3", 0 )   /* High Color Background */
2508   ROM_LOAD16_BYTE( "bw004",  0x000000, 0x080000, CRC(5300c34d) SHA1(ccb12ea05f89ef68bcfe003faced2ffea24c4bf0) )
2509   ROM_LOAD16_BYTE( "bw008",  0x000001, 0x080000, CRC(9aaf2f2f) SHA1(1352856159e19f07e8e30f9c44b21347103ce024) ) // FIXED BITS (xxxxxxx0)
2510   ROM_LOAD16_BYTE( "bw005",  0x100000, 0x080000, CRC(16db6d43) SHA1(0158d0278d085487400ad4384b8cc9618503319e) )
2511   ROM_LOAD16_BYTE( "bw009",  0x100001, 0x080000, CRC(1151a0b0) SHA1(584a0da7eb7f06450f95e76faa20d19f053cb74c) ) // FIXED BITS (xxxxxxx0)
2512   ROM_LOAD16_BYTE( "bw006",  0x200000, 0x080000, CRC(73a35d1f) SHA1(af919cf858c5923aea45e0d8d91493e6284cb99e) )
2513   ROM_LOAD16_BYTE( "bw00a",  0x200001, 0x080000, CRC(f447dfc2) SHA1(1254eafea92e8e416deedf21cb01990ffc4f896c) ) // FIXED BITS (xxxxxxx0)
2514   ROM_LOAD16_BYTE( "bw007",  0x300000, 0x080000, CRC(97f85c87) SHA1(865e076e098c49c96639f62be793f2de24b4926b) )
2515   ROM_LOAD16_BYTE( "bw00b",  0x300001, 0x080000, CRC(b0a48225) SHA1(de256bb6e2a824114274bff0c6c1234934c31c49) ) // FIXED BITS (xxxxxxx0)
2520   ROM_LOAD16_BYTE( "bw004.u73",  0x000000, 0x080000, CRC(5300c34d) SHA1(ccb12ea05f89ef68bcfe003faced2ffea24c4bf0) )
2521   ROM_LOAD16_BYTE( "bw008.u65",  0x000001, 0x080000, CRC(9aaf2f2f) SHA1(1352856159e19f07e8e30f9c44b21347103ce024) ) // FIXED BITS (xxxxxxx0)
2522   ROM_LOAD16_BYTE( "bw005.u74",  0x100000, 0x080000, CRC(16db6d43) SHA1(0158d0278d085487400ad4384b8cc9618503319e) )
2523   ROM_LOAD16_BYTE( "bw009.u66",  0x100001, 0x080000, CRC(1151a0b0) SHA1(584a0da7eb7f06450f95e76faa20d19f053cb74c) ) // FIXED BITS (xxxxxxx0)
2524   ROM_LOAD16_BYTE( "bw006.u75",  0x200000, 0x080000, CRC(73a35d1f) SHA1(af919cf858c5923aea45e0d8d91493e6284cb99e) )
2525   ROM_LOAD16_BYTE( "bw00a.u67",  0x200001, 0x080000, CRC(f447dfc2) SHA1(1254eafea92e8e416deedf21cb01990ffc4f896c) ) // FIXED BITS (xxxxxxx0)
2526   ROM_LOAD16_BYTE( "bw007.u76",  0x300000, 0x080000, CRC(97f85c87) SHA1(865e076e098c49c96639f62be793f2de24b4926b) )
2527   ROM_LOAD16_BYTE( "bw00b.u68",  0x300001, 0x080000, CRC(b0a48225) SHA1(de256bb6e2a824114274bff0c6c1234934c31c49) ) // FIXED BITS (xxxxxxx0)
25162528
25172529   ROM_REGION( 0x040000, "oki", 0 )    /* Samples */
2518   ROM_LOAD( "bw000",  0x000000, 0x040000, CRC(d8fe869d) SHA1(75e9044c4164ca6db9519fcff8eca6c8a2d8d5d1) )
2530   ROM_LOAD( "bw000.u46",  0x000000, 0x040000, CRC(d8fe869d) SHA1(75e9044c4164ca6db9519fcff8eca6c8a2d8d5d1) )
25192531ROM_END
25202532
25212533
trunk/src/mame/includes/kaneko16.h
r29256r29257
142142   DECLARE_READ16_MEMBER(berlwall_oki_r);
143143   DECLARE_WRITE16_MEMBER(berlwall_oki_w);
144144
145   DECLARE_READ16_MEMBER(berlwall_spriteram_r);
146   DECLARE_WRITE16_MEMBER(berlwall_spriteram_w);
147
145148   DECLARE_DRIVER_INIT(berlwall);
146149   DECLARE_PALETTE_INIT(berlwall);
147150   DECLARE_VIDEO_START(berlwall);
trunk/src/mame/video/kaneko_spr.c
r29256r29257
4141   m_sprite_yoffs = 0;
4242
4343   m_sprite_fliptype = 0;
44
45   m_altspacing = 0;
4644/*
4745    Sx = Sprites with priority x, x = tiles with priority x,
4846    Sprites - Tiles Order (bottom -> top):
r29256r29257
9492}
9593
9694
97void kaneko16_sprite_device::set_altspacing(device_t &device, int spacing)
98{
99   kaneko16_sprite_device &dev = downcast<kaneko16_sprite_device &>(device);
100   dev.m_altspacing = spacing;
101}
102
10395void kaneko16_sprite_device::set_fliptype(device_t &device, int fliptype)
10496{
10597   kaneko16_sprite_device &dev = downcast<kaneko16_sprite_device &>(device);
r29256r29257
195187{
196188   int attr, xoffs, offs;
197189
198   if (m_altspacing)   offs = i * 16/2 + 0x8/2;
199   else                offs = i * 8/2;
190   offs = i * 8/2;
200191
201192   if (offs >= (spriteram16_bytes/2))  return -1;
202193
trunk/src/mame/video/kaneko_spr.h
r29256r29257
3333
3434   // static configuration
3535   static void static_set_gfxdecode_tag(device_t &device, const char *tag);
36   static void set_altspacing(device_t &device, int spacing);
3736   static void set_fliptype(device_t &device, int fliptype);
3837   static void set_offsets(device_t &device, int xoffs, int yoffs);
3938   static void set_priorities(device_t &device, int pri0, int pri1, int pri2, int pri3);
r29256r29257
5655   virtual void device_start();
5756   virtual void device_reset();
5857
59   // alt ram addressing (set when declaring device in MCFG)
60   //  used on Berlin Wall.. it's the same sprite chip, so probably just a different RAM hookup on the PCB, maybe also
61   //  related to the 'COPY BOARD' protection check on one set? investigate..
62   int m_altspacing;
6358
6459   // flip latching (set when declaring device in MCFG )  probably needs figuring out properly, only brapboys wants it?
6560   int m_sprite_fliptype;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team