trunk/src/mame/drivers/igs011.c
| r31818 | r31819 | |
| 76 | 76 | depth, |
| 77 | 77 | pen, |
| 78 | 78 | flags; |
| 79 | | |
| 80 | 79 | }; |
| 81 | 80 | |
| 82 | 81 | class igs011_state : public driver_device |
| r31818 | r31819 | |
| 85 | 84 | igs011_state(const machine_config &mconfig, device_type type, const char *tag) |
| 86 | 85 | : driver_device(mconfig, type, tag), |
| 87 | 86 | m_maincpu(*this, "maincpu"), |
| 88 | | m_priority_ram(*this, "priority_ram"), |
| 89 | | m_vbowl_trackball(*this, "vbowl_trackball"), |
| 90 | 87 | m_oki(*this, "oki"), |
| 91 | 88 | m_screen(*this, "screen"), |
| 92 | 89 | m_palette(*this, "palette"), |
| 90 | m_priority_ram(*this, "priority_ram"), |
| 91 | m_vbowl_trackball(*this, "vbowl_trackball"), |
| 93 | 92 | m_generic_paletteram_16(*this, "paletteram") { } |
| 94 | 93 | |
| 94 | /* devices */ |
| 95 | 95 | required_device<cpu_device> m_maincpu; |
| 96 | optional_device<okim6295_device> m_oki; |
| 97 | required_device<screen_device> m_screen; |
| 98 | required_device<palette_device> m_palette; |
| 99 | |
| 100 | /* memory pointers */ |
| 96 | 101 | required_shared_ptr<UINT16> m_priority_ram; |
| 97 | 102 | optional_shared_ptr<UINT16> m_vbowl_trackball; |
| 103 | required_shared_ptr<UINT16> m_generic_paletteram_16; |
| 104 | |
| 98 | 105 | UINT8 *m_layer[8]; |
| 99 | 106 | UINT16 m_priority; |
| 100 | 107 | UINT8 m_lhb2_pen_hi; |
| r31818 | r31819 | |
| 209 | 216 | TIMER_DEVICE_CALLBACK_MEMBER(lev5_timer_irq_cb); |
| 210 | 217 | TIMER_DEVICE_CALLBACK_MEMBER(lhb_timer_irq_cb); |
| 211 | 218 | TIMER_DEVICE_CALLBACK_MEMBER(lev3_timer_irq_cb); |
| 219 | virtual void machine_start(); |
| 212 | 220 | virtual void video_start(); |
| 213 | 221 | UINT32 screen_update_igs011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); |
| 214 | 222 | void screen_eof_vbowl(screen_device &screen, bool state); |
| r31818 | r31819 | |
| 225 | 233 | void ryukobou_decrypt(); |
| 226 | 234 | void lhb2_decrypt_gfx(); |
| 227 | 235 | void drgnwrld_gfx_decrypt(); |
| 228 | | optional_device<okim6295_device> m_oki; |
| 229 | | required_device<screen_device> m_screen; |
| 230 | | required_device<palette_device> m_palette; |
| 231 | | required_shared_ptr<UINT16> m_generic_paletteram_16; |
| 232 | 236 | }; |
| 233 | 237 | |
| 234 | 238 | |
| r31818 | r31819 | |
| 266 | 270 | |
| 267 | 271 | void igs011_state::video_start() |
| 268 | 272 | { |
| 269 | | int i; |
| 270 | | |
| 271 | | for (i = 0; i < 8; i++) |
| 273 | for (int i = 0; i < 8; i++) |
| 272 | 274 | { |
| 273 | 275 | m_layer[i] = auto_alloc_array(machine(), UINT8, 512 * 256); |
| 276 | save_pointer(NAME(m_layer[i]), 512 * 256, i); |
| 274 | 277 | } |
| 275 | 278 | |
| 276 | 279 | m_lhb2_pen_hi = 0; |
| 280 | |
| 281 | save_item(NAME(m_priority)); |
| 282 | save_item(NAME(m_lhb2_pen_hi)); |
| 283 | save_item(NAME(m_blitter.x)); |
| 284 | save_item(NAME(m_blitter.y)); |
| 285 | save_item(NAME(m_blitter.w)); |
| 286 | save_item(NAME(m_blitter.h)); |
| 287 | save_item(NAME(m_blitter.gfx_lo)); |
| 288 | save_item(NAME(m_blitter.gfx_hi)); |
| 289 | save_item(NAME(m_blitter.depth)); |
| 290 | save_item(NAME(m_blitter.pen)); |
| 291 | save_item(NAME(m_blitter.flags)); |
| 277 | 292 | } |
| 278 | 293 | |
| 279 | 294 | UINT32 igs011_state::screen_update_igs011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| r31818 | r31819 | |
| 572 | 587 | |
| 573 | 588 | ***************************************************************************/ |
| 574 | 589 | |
| 590 | void igs011_state::machine_start() |
| 591 | { |
| 592 | save_item(NAME(m_igs_dips_sel)); |
| 593 | save_item(NAME(m_igs_input_sel)); |
| 594 | save_item(NAME(m_igs_hopper)); |
| 595 | save_item(NAME(m_prot1)); |
| 596 | save_item(NAME(m_prot1_swap)); |
| 597 | save_item(NAME(m_prot1_addr)); |
| 598 | save_item(NAME(m_prot2)); |
| 599 | save_item(NAME(m_igs012_prot)); |
| 600 | save_item(NAME(m_igs012_prot_swap)); |
| 601 | save_item(NAME(m_igs012_prot_mode)); |
| 602 | save_item(NAME(m_igs003_reg)); |
| 603 | save_item(NAME(m_lhb_irq_enable)); |
| 604 | save_item(NAME(m_igs003_prot_hold)); |
| 605 | save_item(NAME(m_igs003_prot_x)); |
| 606 | save_item(NAME(m_igs003_prot_y)); |
| 607 | save_item(NAME(m_igs003_prot_z)); |
| 608 | save_item(NAME(m_igs003_prot_h1)); |
| 609 | save_item(NAME(m_igs003_prot_h2)); |
| 610 | } |
| 611 | |
| 575 | 612 | // Inputs |
| 576 | 613 | |
| 577 | 614 | |
| r31818 | r31819 | |
| 4747 | 4784 | |
| 4748 | 4785 | ***************************************************************************/ |
| 4749 | 4786 | |
| 4750 | | GAME( 1997, drgnwrld, 0, drgnwrld, drgnwrld, igs011_state, drgnwrld, ROT0, "IGS", "Dragon World (World, V040O)", 0 ) |
| 4751 | | GAME( 1995, drgnwrldv30, drgnwrld, drgnwrld, drgnwrld, igs011_state, drgnwrldv30, ROT0, "IGS", "Dragon World (World, V030O)", 0 ) |
| 4752 | | GAME( 1995, drgnwrldv21, drgnwrld, drgnwrld_igs012, drgnwrld, igs011_state, drgnwrldv21, ROT0, "IGS", "Dragon World (World, V021O)", 0 ) |
| 4753 | | GAME( 1995, drgnwrldv21j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv21j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V021J)", 0 ) |
| 4754 | | GAME( 1995, drgnwrldv20j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv20j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V020J)", 0 ) |
| 4755 | | GAME( 1995, drgnwrldv10c, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv10c, ROT0, "IGS", "Zhong Guo Long (China, V010C)", 0 ) |
| 4756 | | GAME( 1995, drgnwrldv11h, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv11h, ROT0, "IGS", "Dong Fang Zhi Zhu (Hong Kong, V011H)", 0 ) |
| 4757 | | GAME( 1995, lhb, 0, lhb, lhb, igs011_state, lhb, ROT0, "IGS", "Long Hu Bang (China, V035C)", 0 ) |
| 4758 | | GAME( 1995, lhbv33c, lhb, lhb, lhb, igs011_state, lhbv33c, ROT0, "IGS", "Long Hu Bang (China, V033C)", 0 ) |
| 4759 | | GAME( 1995, dbc, lhb, lhb, lhb, igs011_state, dbc, ROT0, "IGS", "Da Ban Cheng (Hong Kong, V027H)", 0 ) |
| 4760 | | GAME( 1995, ryukobou, lhb, lhb, lhb, igs011_state, ryukobou, ROT0, "IGS / Alta", "Mahjong Ryukobou (Japan, V030J)", 0 ) |
| 4761 | | GAME( 1996, lhb2, 0, lhb2, lhb2, igs011_state, lhb2, ROT0, "IGS", "Long Hu Bang II (Hong Kong, V185H)", 0 ) |
| 4762 | | GAME( 1996, xymg, 0, xymg, xymg, igs011_state, xymg, ROT0, "IGS", "Xing Yun Man Guan (China, V651C)", 0 ) |
| 4763 | | GAME( 1996, wlcc, xymg, wlcc, wlcc, igs011_state, wlcc, ROT0, "IGS", "Wan Li Chang Cheng (China, V638C)", 0 ) |
| 4764 | | GAME( 1996, vbowl, 0, vbowl, vbowl, igs011_state, vbowl, ROT0, "IGS", "Virtua Bowling (World, V101XCM)", GAME_IMPERFECT_SOUND ) |
| 4765 | | GAME( 1996, vbowlj, vbowl, vbowl, vbowlj, igs011_state, vbowlj, ROT0, "IGS / Alta", "Virtua Bowling (Japan, V100JCM)", GAME_IMPERFECT_SOUND ) |
| 4766 | | GAME( 1998, nkishusp, lhb2, nkishusp, nkishusp, igs011_state, nkishusp, ROT0, "IGS / Alta", "Mahjong Nenrikishu SP (Japan, V250J)", 0 ) |
| 4787 | GAME( 1997, drgnwrld, 0, drgnwrld, drgnwrld, igs011_state, drgnwrld, ROT0, "IGS", "Dragon World (World, V040O)", GAME_SUPPORTS_SAVE ) |
| 4788 | GAME( 1995, drgnwrldv30, drgnwrld, drgnwrld, drgnwrld, igs011_state, drgnwrldv30, ROT0, "IGS", "Dragon World (World, V030O)", GAME_SUPPORTS_SAVE ) |
| 4789 | GAME( 1995, drgnwrldv21, drgnwrld, drgnwrld_igs012, drgnwrld, igs011_state, drgnwrldv21, ROT0, "IGS", "Dragon World (World, V021O)", GAME_SUPPORTS_SAVE ) |
| 4790 | GAME( 1995, drgnwrldv21j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv21j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V021J)", GAME_SUPPORTS_SAVE ) |
| 4791 | GAME( 1995, drgnwrldv20j, drgnwrld, drgnwrld_igs012, drgnwrldj, igs011_state, drgnwrldv20j, ROT0, "IGS / Alta", "Zhong Guo Long (Japan, V020J)", GAME_SUPPORTS_SAVE ) |
| 4792 | GAME( 1995, drgnwrldv10c, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv10c, ROT0, "IGS", "Zhong Guo Long (China, V010C)", GAME_SUPPORTS_SAVE ) |
| 4793 | GAME( 1995, drgnwrldv11h, drgnwrld, drgnwrld, drgnwrldc, igs011_state, drgnwrldv11h, ROT0, "IGS", "Dong Fang Zhi Zhu (Hong Kong, V011H)", GAME_SUPPORTS_SAVE ) |
| 4794 | GAME( 1995, lhb, 0, lhb, lhb, igs011_state, lhb, ROT0, "IGS", "Long Hu Bang (China, V035C)", GAME_SUPPORTS_SAVE ) |
| 4795 | GAME( 1995, lhbv33c, lhb, lhb, lhb, igs011_state, lhbv33c, ROT0, "IGS", "Long Hu Bang (China, V033C)", GAME_SUPPORTS_SAVE ) |
| 4796 | GAME( 1995, dbc, lhb, lhb, lhb, igs011_state, dbc, ROT0, "IGS", "Da Ban Cheng (Hong Kong, V027H)", GAME_SUPPORTS_SAVE ) |
| 4797 | GAME( 1995, ryukobou, lhb, lhb, lhb, igs011_state, ryukobou, ROT0, "IGS / Alta", "Mahjong Ryukobou (Japan, V030J)", GAME_SUPPORTS_SAVE ) |
| 4798 | GAME( 1996, lhb2, 0, lhb2, lhb2, igs011_state, lhb2, ROT0, "IGS", "Long Hu Bang II (Hong Kong, V185H)", GAME_SUPPORTS_SAVE ) |
| 4799 | GAME( 1996, xymg, 0, xymg, xymg, igs011_state, xymg, ROT0, "IGS", "Xing Yun Man Guan (China, V651C)", GAME_SUPPORTS_SAVE ) |
| 4800 | GAME( 1996, wlcc, xymg, wlcc, wlcc, igs011_state, wlcc, ROT0, "IGS", "Wan Li Chang Cheng (China, V638C)", GAME_SUPPORTS_SAVE ) |
| 4801 | GAME( 1996, vbowl, 0, vbowl, vbowl, igs011_state, vbowl, ROT0, "IGS", "Virtua Bowling (World, V101XCM)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE) |
| 4802 | GAME( 1996, vbowlj, vbowl, vbowl, vbowlj, igs011_state, vbowlj, ROT0, "IGS / Alta", "Virtua Bowling (Japan, V100JCM)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE) |
| 4803 | GAME( 1998, nkishusp, lhb2, nkishusp, nkishusp, igs011_state, nkishusp, ROT0, "IGS / Alta", "Mahjong Nenrikishu SP (Japan, V250J)", GAME_SUPPORTS_SAVE ) |