new working clone

----------------------------
Rabbit (Japan, location test) [Hammy, Spinalfeyd, The Dumping Union]
This commit is contained in:
Ivan Vangelista 2018-02-06 18:10:22 +01:00
parent 82434217cf
commit 25811d74a8
2 changed files with 68 additions and 27 deletions

View File

@ -5,7 +5,7 @@
-= 68020 + Imagetek I5000 Games =-
driver by David Haywood
partly based on metro.c driver by Luca Elia
partly based on metro.cpp driver by Luca Elia
Main CPU : MC68020
@ -30,7 +30,7 @@ To Do:
Notes:
(1) This is currently in its own driver "tmmjprd.c" because it uses the
(1) This is currently in its own driver "tmmjprd.cpp" because it uses the
chip in a completely different way to Rabbit. They should be merged
again later, once the chip is better understood.
@ -66,8 +66,6 @@ Notes:
Only ROMs positions 60, 50, 40, 02, 03, 10, 11, 01, 00 are populated.
There is known to exist an earlier Japanese prototype version of Rabbit which is currently not dumped.
Tokimeki Mahjong Paradise - Dear My Love Board Notes
----------------------------------------------------
@ -113,6 +111,28 @@ public:
m_blitterregs(*this, "blitterregs"),
m_spriteram(*this, "spriteram") { }
DECLARE_WRITE32_MEMBER(tilemap0_w);
DECLARE_WRITE32_MEMBER(tilemap1_w);
DECLARE_WRITE32_MEMBER(tilemap2_w);
DECLARE_WRITE32_MEMBER(tilemap3_w);
DECLARE_READ32_MEMBER(tilemap0_r);
DECLARE_READ32_MEMBER(tilemap1_r);
DECLARE_READ32_MEMBER(tilemap2_r);
DECLARE_READ32_MEMBER(tilemap3_r);
DECLARE_READ32_MEMBER(randomrabbits);
DECLARE_WRITE32_MEMBER(rombank_w);
DECLARE_WRITE32_MEMBER(blitter_w);
DECLARE_WRITE32_MEMBER(eeprom_write);
DECLARE_DRIVER_INIT(rabbit);
void rabbit(machine_config &config);
protected:
virtual void video_start() override;
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
private:
required_device<cpu_device> m_maincpu;
required_device<eeprom_serial_93cxx_device> m_eeprom;
required_device<gfxdecode_device> m_gfxdecode;
@ -137,21 +157,6 @@ public:
tilemap_t *m_tilemap[4];
emu_timer *m_blit_done_timer;
DECLARE_WRITE32_MEMBER(tilemap0_w);
DECLARE_WRITE32_MEMBER(tilemap1_w);
DECLARE_WRITE32_MEMBER(tilemap2_w);
DECLARE_WRITE32_MEMBER(tilemap3_w);
DECLARE_READ32_MEMBER(tilemap0_r);
DECLARE_READ32_MEMBER(tilemap1_r);
DECLARE_READ32_MEMBER(tilemap2_r);
DECLARE_READ32_MEMBER(tilemap3_r);
DECLARE_READ32_MEMBER(randomrabbits);
DECLARE_WRITE32_MEMBER(rombank_w);
DECLARE_WRITE32_MEMBER(blitter_w);
DECLARE_WRITE32_MEMBER(eeprom_write);
DECLARE_DRIVER_INIT(rabbit);
TILE_GET_INFO_MEMBER(get_tilemap0_tile_info);
TILE_GET_INFO_MEMBER(get_tilemap1_tile_info);
TILE_GET_INFO_MEMBER(get_tilemap2_tile_info);
@ -159,8 +164,6 @@ public:
INTERRUPT_GEN_MEMBER(vblank_interrupt);
virtual void video_start() override;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
inline void get_tilemap_info(tile_data &tileinfo, int tile_index, int whichtilemap, int tilesize);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
@ -168,10 +171,6 @@ public:
void draw_sprite_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprect );
void drawtilemap( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int whichtilemap );
void do_blit();
void rabbit(machine_config &config);
protected:
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
};
@ -361,7 +360,7 @@ void rabbit_state::clearspritebitmap( bitmap_ind16 &bitmap, const rectangle &cli
}
}
/* todo: fix zoom, its inaccurate and this code is ugly */
/* todo: fix zoom, it's inaccurate and this code is ugly */
void rabbit_state::draw_sprite_bitmap( bitmap_ind16 &bitmap, const rectangle &cliprect )
{
uint32_t x,y;
@ -984,5 +983,46 @@ ROM_START( rabbit )
ROM_LOAD( "rabbit.nv", 0x0000, 0x0080, CRC(73d471ed) SHA1(45e045f5ea9036342b88013e021d402741d98537) )
ROM_END
ROM_START( rabbitjt )
ROM_REGION( 0x200000, "maincpu", 0 ) /* 68020 Code */
ROM_LOAD32_BYTE( "wotr0.0", 0x000000, 0x080000, CRC(a1c30c91) SHA1(fe35c5521acba902ca74c6d1ea2b92593138a10a) )
ROM_LOAD32_BYTE( "wotr1.1", 0x000001, 0x080000, CRC(9b7697e6) SHA1(c60cdc3db7321b2846637d92ae864ca80796ad73) )
ROM_LOAD32_BYTE( "wotr2.2", 0x000002, 0x080000, CRC(9809b825) SHA1(05f965c87782062e66e5a88313a12b230de90800) )
ROM_LOAD32_BYTE( "wotr3.3", 0x000003, 0x080000, CRC(ce8ebb82) SHA1(69eb8410a3b7d9cbb682d0911bcad1a92ac3aca7) )
GAME( 1997, rabbit, 0, rabbit, rabbit, rabbit_state, rabbit, ROT0, "Aorn / Electronic Arts", "Rabbit (Asia 3/6)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // somewhat playable
// the rom test tests as if things were mapped like this (video chip / blitter space?)
#if 0
ROM_REGION( 0x9000000, "test", ROMREGION_ERASE )
ROM_LOAD32_WORD( "jfv0.00", 0x0000002, 0x400000, CRC(b2a4d3d3) SHA1(0ab71d82a37ff94442b91712a28d3470619ba575) ) // sprite gfx
ROM_LOAD32_WORD( "jfv1.01", 0x0000000, 0x400000, CRC(83f3926e) SHA1(b1c479e675d35fc08c9a7648ff40348a24654e7e) ) // sprite gfx
ROM_LOAD32_WORD( "jsn0.11", 0x0800002, 0x400000, CRC(e1f726e8) SHA1(598d75f3ff9e43ec8ce6131ed37f4345bf2f2d8e) ) // sound
ROM_LOAD32_WORD( "jfv2.02", 0x2000002, 0x400000, CRC(b264bfb5) SHA1(8fafedb6af74150465b1773e80aef0edc3da4678) ) // sprite gfx
ROM_LOAD32_WORD( "jfv3.03", 0x2000000, 0x400000, CRC(3e1a9be2) SHA1(2082a4ae8cda84cec5ea0fc08753db387bb70d41) ) // sprite gfx
ROM_LOAD16_BYTE( "jbg0.40", 0x4000001, 0x200000, CRC(89662944) SHA1(ca916ba38480fa588af19fc9682603f5195ad6c7) ) // bg gfx (fails check?)
ROM_LOAD16_BYTE( "jbg1.50", 0x6000000, 0x200000, CRC(1fc7f6e0) SHA1(b36062d2a9683683ffffd3003d5244a185f53280) ) // bg gfx
ROM_LOAD16_BYTE( "jbg2.60", 0x8000001, 0x200000, CRC(aee265fc) SHA1(ec420ab30b9b5141162223fc1fbf663ad9f211e6) ) // bg gfx
#endif
ROM_REGION( 0x1000000, "gfx1", 0 ) /* Sprite Roms (and Blitter Data) */
ROM_LOAD32_WORD( "jfv0.00", 0x0000002, 0x400000, CRC(b2a4d3d3) SHA1(0ab71d82a37ff94442b91712a28d3470619ba575) )
ROM_LOAD32_WORD( "jfv1.01", 0x0000000, 0x400000, CRC(83f3926e) SHA1(b1c479e675d35fc08c9a7648ff40348a24654e7e) )
ROM_LOAD32_WORD( "jfv2.02", 0x0800002, 0x400000, CRC(b264bfb5) SHA1(8fafedb6af74150465b1773e80aef0edc3da4678) )
ROM_LOAD32_WORD( "jfv3.03", 0x0800000, 0x400000, CRC(3e1a9be2) SHA1(2082a4ae8cda84cec5ea0fc08753db387bb70d41) )
ROM_REGION( 0x600000, "gfx2", 0 ) /* BG Roms */
ROM_LOAD( "jbg0.40", 0x000000, 0x200000, CRC(89662944) SHA1(ca916ba38480fa588af19fc9682603f5195ad6c7) )
ROM_LOAD( "jbg1.50", 0x200000, 0x200000, CRC(1fc7f6e0) SHA1(b36062d2a9683683ffffd3003d5244a185f53280) )
ROM_LOAD( "jbg2.60", 0x400000, 0x200000, CRC(aee265fc) SHA1(ec420ab30b9b5141162223fc1fbf663ad9f211e6) )
ROM_REGION( 0x400000, "i5000snd", ROMREGION_ERASE ) /* sound rom */
ROM_LOAD( "jsn0.11", 0x000000, 0x000018, CRC(e1f726e8) SHA1(598d75f3ff9e43ec8ce6131ed37f4345bf2f2d8e) ) // header "VCDT i5000"
ROM_CONTINUE( 0x000000, 0x3fffe8 ) // sample data starts here
ROM_REGION16_BE( 0x80, "eeprom", 0 )
ROM_LOAD( "rabbit.nv", 0x0000, 0x0080, CRC(73d471ed) SHA1(45e045f5ea9036342b88013e021d402741d98537) )
ROM_END
GAME( 1997, rabbit, 0, rabbit, rabbit, rabbit_state, rabbit, ROT0, "Aorn / Electronic Arts", "Rabbit (Asia 3/6)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // This is the Asian version sold in Korea but the devs forgot to update the disclaimer. It has English text.
GAME( 1996, rabbitjt, rabbit, rabbit, rabbit, rabbit_state, rabbit, ROT0, "Aorn / Electronic Arts", "Rabbit (Japan, location test)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_IMPERFECT_SOUND | MACHINE_SUPPORTS_SAVE ) // Japanese text.

View File

@ -32450,6 +32450,7 @@ r9751 // ROLM 9751 phone system
@source:rabbit.cpp
rabbit // (c) 1997 Electronic Arts
rabbitjt // (c) 1996 Electronic Arts
@source:rad_eu3a14.cpp
rad_gtg