Previous 199869 Revisions Next

r37210 Thursday 16th April, 2015 at 16:42:15 UTC by Osso
vamphalf.c: added save state support (nw)
[src/mame/drivers]vamphalf.c

trunk/src/mame/drivers/vamphalf.c
r245721r245722
5050 Undumped Semicom games on similar hardware:
5151   Red Wyvern - A semi-sequel or update?
5252 Same time era, but unknown hardware:
53   Gaia The last Choice of the Earth (c) 1998 (might be Byron Future Assault type hardware)
53   Gaia The last Choice of the Earth (c) 1998 (might be Baryon Future Assault type hardware)
5454   Choice III: Joker's Dream (c) 2001
5555
5656TODO:
r245721r245722
7575public:
7676   vamphalf_state(const machine_config &mconfig, device_type type, const char *tag)
7777      : driver_device(mconfig, type, tag),
78         m_tiles(*this,"tiles"),
79         m_wram(*this,"wram"),
80         m_tiles32(*this,"tiles32"),
81         m_wram32(*this,"wram32"),
8278         m_maincpu(*this, "maincpu"),
8379         m_qs1000(*this, "qs1000"),
8480         m_oki(*this, "oki"),
8581         m_oki2(*this, "oki_2"),
8682         m_eeprom(*this, "eeprom"),
8783         m_gfxdecode(*this, "gfxdecode"),
88         m_palette(*this, "palette")  {
84         m_palette(*this, "palette"),
85         m_tiles(*this,"tiles"),
86         m_wram(*this,"wram"),
87         m_tiles32(*this,"tiles32"),
88         m_wram32(*this,"wram32") {
8989         m_has_extra_gfx = 0;
9090      }
9191
92   optional_shared_ptr<UINT16> m_tiles;
93   optional_shared_ptr<UINT16> m_wram;
94   optional_shared_ptr<UINT32> m_tiles32;
95   optional_shared_ptr<UINT32> m_wram32;
96
9792   required_device<cpu_device> m_maincpu;
9893   optional_device<qs1000_device> m_qs1000;
9994   optional_device<okim6295_device> m_oki;
r245721r245722
10297   required_device<gfxdecode_device> m_gfxdecode;
10398   required_device<palette_device> m_palette;
10499
100   optional_shared_ptr<UINT16> m_tiles;
101   optional_shared_ptr<UINT16> m_wram;
102   optional_shared_ptr<UINT32> m_tiles32;
103   optional_shared_ptr<UINT32> m_wram32;
104
105   // driver init configuration
105106   int m_flip_bit;
107   int m_palshift;
108   int m_has_extra_gfx;
109   UINT16 m_semicom_prot_data[2];
110
106111   int m_flipscreen;
107   int m_palshift;
108112   int m_semicom_prot_idx;
109113   int m_semicom_prot_which;
110   UINT16 m_semicom_prot_data[2];
111114   UINT16 m_finalgdr_backupram_bank;
112115   UINT8 *m_finalgdr_backupram;
113   int m_has_extra_gfx;
114116   UINT8 m_qs1000_data;
115117
116118   DECLARE_WRITE16_MEMBER(flipscreen_w);
r245721r245722
162164   DECLARE_WRITE16_MEMBER(boonggab_oki_bank_w);
163165   DECLARE_WRITE32_MEMBER(wyvernwg_snd_w);
164166   DECLARE_WRITE16_MEMBER(misncrft_snd_w);
165
166
167167   DECLARE_READ8_MEMBER(qs1000_p1_r);
168168   DECLARE_WRITE8_MEMBER(qs1000_p3_w);
169
170   virtual void video_start();
169171   DECLARE_DRIVER_INIT(vamphalf);
170172   DECLARE_DRIVER_INIT(vamphafk);
171173   DECLARE_DRIVER_INIT(coolmini);
r245721r245722
185187   DECLARE_DRIVER_INIT(boonggab);
186188   DECLARE_DRIVER_INIT(wyvernwg);
187189   DECLARE_DRIVER_INIT(yorijori);
190
188191   UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
189192   UINT32 screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
190193   void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap);
r245721r245722
590593Offset+3
591594-------x xxxxxxxx X offs
592595*/
596
597void vamphalf_state::video_start()
598{
599   save_item(NAME(m_flipscreen));
600}
601
593602void vamphalf_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap)
594603{
595604   gfx_element *gfx = m_gfxdecode->gfx(0);
r245721r245722
26832692   // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM
26842693   machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data");
26852694   membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100);
2695   
2696   save_item(NAME(m_qs1000_data));
26862697}
26872698
26882699DRIVER_INIT_MEMBER(vamphalf_state,coolmini)
r245721r245722
27412752   // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM
27422753   machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data");
27432754   membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100);
2755   
2756   save_item(NAME(m_qs1000_data));
2757   save_item(NAME(m_semicom_prot_idx));
2758   save_item(NAME(m_semicom_prot_which));
27442759}
27452760
27462761DRIVER_INIT_MEMBER(vamphalf_state,yorijori)
27472762{
2748   // seesm close to Final Godori in terms of port mappings, possibly a SemiCom game?
2763   // seems close to Final Godori in terms of port mappings, possibly a SemiCom game?
27492764
27502765   m_palshift = 0;
27512766   m_flip_bit = 1;
r245721r245722
27622777   // Configure the QS1000 ROM banking. Care must be taken not to overlap the 256b internal RAM
27632778   machine().device("qs1000:cpu")->memory().space(AS_IO).install_read_bank(0x0100, 0xffff, "data");
27642779   membank("qs1000:data")->configure_entries(0, 16, memregion("qs1000:cpu")->base()+0x100, 0x8000-0x100);
2780   
2781   save_item(NAME(m_qs1000_data));
27652782}
27662783
27672784DRIVER_INIT_MEMBER(vamphalf_state,finalgdr)
r245721r245722
27772794   m_semicom_prot_idx = 8;
27782795   m_semicom_prot_data[0] = 2;
27792796   m_semicom_prot_data[1] = 3;
2797   
2798   save_item(NAME(m_finalgdr_backupram_bank));
2799   save_pointer(NAME(m_finalgdr_backupram), 0x80*0x100);
2800   save_item(NAME(m_semicom_prot_idx));
2801   save_item(NAME(m_semicom_prot_which));
27802802}
27812803
27822804DRIVER_INIT_MEMBER(vamphalf_state,mrkicker)
r245721r245722
27932815   m_semicom_prot_idx = 8;
27942816   m_semicom_prot_data[0] = 2;
27952817   m_semicom_prot_data[1] = 3;
2818   
2819   save_item(NAME(m_semicom_prot_idx));
2820   save_item(NAME(m_semicom_prot_which));
27962821}
27972822
27982823DRIVER_INIT_MEMBER(vamphalf_state,dquizgo2)
r245721r245722
28542879   m_flip_bit = 1;
28552880}
28562881
2857GAME( 1999, coolmini,  0,        coolmini, common,   vamphalf_state, coolmini, ROT0,   "SemiCom",           "Cool Minigame Collection", 0 )
2858GAME( 1999, jmpbreak,  0,        jmpbreak, common,   vamphalf_state, jmpbreak, ROT0,   "F2 System",         "Jumping Break" , 0 )
2859GAME( 1999, suplup,    0,        suplup,   common,   vamphalf_state, suplup,   ROT0,   "Omega System",      "Super Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 4.0 / 990518)" , 0 )
2860GAME( 1999, luplup,    suplup,   suplup,   common,   vamphalf_state, luplup,   ROT0,   "Omega System",      "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 3.0 / 990128)", 0 )
2861GAME( 1999, luplup29,  suplup,   suplup,   common,   vamphalf_state, luplup29, ROT0,   "Omega System",      "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 2.9 / 990108)", 0 )
2862GAME( 1999, puzlbang,  suplup,   suplup,   common,   vamphalf_state, puzlbang, ROT0,   "Omega System",      "Puzzle Bang Bang (Korea, version 2.9 / 990108)", 0 )
2863GAME( 1999, puzlbanga, suplup,   suplup,   common,   vamphalf_state, puzlbang, ROT0,   "Omega System",      "Puzzle Bang Bang (Korea, version 2.8 / 990106)", 0 )
2864GAME( 1999, vamphalf,  0,        vamphalf, common,   vamphalf_state, vamphalf, ROT0,   "Danbi / F2 System", "Vamf x1/2 (Europe)", 0 )
2865GAME( 1999, vamphalfk, vamphalf, vamphalf, common,   vamphalf_state, vamphafk, ROT0,   "Danbi / F2 System", "Vamp x1/2 (Korea)", 0 )
2866GAME( 2000, dquizgo2,  0,        coolmini, common,   vamphalf_state, dquizgo2, ROT0,   "SemiCom",           "Date Quiz Go Go Episode 2" , 0)
2867GAME( 2000, misncrft,  0,        misncrft, common,   vamphalf_state, misncrft, ROT90,  "Sun",               "Mission Craft (version 2.7)", GAME_IMPERFECT_SOUND )
2868GAME( 2000, misncrfta, misncrft, misncrft, common,   vamphalf_state, misncrft, ROT90,  "Sun",               "Mission Craft (version 2.4)", GAME_IMPERFECT_SOUND )
2869GAME( 2000, mrdig,     0,        mrdig,    common,   vamphalf_state, mrdig,    ROT0,   "Sun",               "Mr. Dig", 0 )
2870GAME( 2001, dtfamily,  0,        coolmini, common,   vamphalf_state, dtfamily, ROT0,   "SemiCom",           "Diet Family", 0 )
2871GAME( 2001, finalgdr,  0,        finalgdr, finalgdr, vamphalf_state, finalgdr, ROT0,   "SemiCom",           "Final Godori (Korea, version 2.20.5915)", 0 )
2872GAME( 2001, mrkicker,  0,        mrkicker, finalgdr, vamphalf_state, mrkicker, ROT0,   "SemiCom",           "Mr. Kicker", 0 )
2873GAME( 2001, toyland,   0,        coolmini, common,   vamphalf_state, toyland,  ROT0,   "SemiCom",           "Toy Land Adventure", 0 )
2874GAME( 2001, wivernwg,  0,        wyvernwg, common,   vamphalf_state, wyvernwg, ROT270, "SemiCom",           "Wivern Wings", GAME_IMPERFECT_SOUND )
2875GAME( 2001, wyvernwg,  wivernwg, wyvernwg, common,   vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", GAME_IMPERFECT_SOUND )
2876GAME( 2001, wyvernwga, wivernwg, wyvernwg, common,   vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", GAME_IMPERFECT_SOUND )
2877GAME( 2001, aoh,       0,        aoh,      aoh,      vamphalf_state, aoh,      ROT0,   "Unico",             "Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)", 0 )
2878GAME( 2001, boonggab,  0,        boonggab, boonggab, vamphalf_state, boonggab, ROT270, "Taff System",       "Boong-Ga Boong-Ga (Spank'em!)", 0 )
2879GAME( 199?, yorijori,  0,        yorijori, common,   vamphalf_state, yorijori, ROT0,   "Golden Bell Entertainment",         "Yori Jori Kuk Kuk", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND )
2882GAME( 1999, coolmini,  0,        coolmini, common,   vamphalf_state, coolmini, ROT0,   "SemiCom",           "Cool Minigame Collection", GAME_SUPPORTS_SAVE )
2883GAME( 1999, jmpbreak,  0,        jmpbreak, common,   vamphalf_state, jmpbreak, ROT0,   "F2 System",         "Jumping Break" , GAME_SUPPORTS_SAVE )
2884GAME( 1999, suplup,    0,        suplup,   common,   vamphalf_state, suplup,   ROT0,   "Omega System",      "Super Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 4.0 / 990518)" , GAME_SUPPORTS_SAVE )
2885GAME( 1999, luplup,    suplup,   suplup,   common,   vamphalf_state, luplup,   ROT0,   "Omega System",      "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 3.0 / 990128)", GAME_SUPPORTS_SAVE )
2886GAME( 1999, luplup29,  suplup,   suplup,   common,   vamphalf_state, luplup29, ROT0,   "Omega System",      "Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 2.9 / 990108)", GAME_SUPPORTS_SAVE )
2887GAME( 1999, puzlbang,  suplup,   suplup,   common,   vamphalf_state, puzlbang, ROT0,   "Omega System",      "Puzzle Bang Bang (Korea, version 2.9 / 990108)", GAME_SUPPORTS_SAVE )
2888GAME( 1999, puzlbanga, suplup,   suplup,   common,   vamphalf_state, puzlbang, ROT0,   "Omega System",      "Puzzle Bang Bang (Korea, version 2.8 / 990106)", GAME_SUPPORTS_SAVE )
2889GAME( 1999, vamphalf,  0,        vamphalf, common,   vamphalf_state, vamphalf, ROT0,   "Danbi / F2 System", "Vamf x1/2 (Europe)", GAME_SUPPORTS_SAVE )
2890GAME( 1999, vamphalfk, vamphalf, vamphalf, common,   vamphalf_state, vamphafk, ROT0,   "Danbi / F2 System", "Vamp x1/2 (Korea)", GAME_SUPPORTS_SAVE )
2891GAME( 2000, dquizgo2,  0,        coolmini, common,   vamphalf_state, dquizgo2, ROT0,   "SemiCom",           "Date Quiz Go Go Episode 2" , GAME_SUPPORTS_SAVE )
2892GAME( 2000, misncrft,  0,        misncrft, common,   vamphalf_state, misncrft, ROT90,  "Sun",               "Mission Craft (version 2.7)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2893GAME( 2000, misncrfta, misncrft, misncrft, common,   vamphalf_state, misncrft, ROT90,  "Sun",               "Mission Craft (version 2.4)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2894GAME( 2000, mrdig,     0,        mrdig,    common,   vamphalf_state, mrdig,    ROT0,   "Sun",               "Mr. Dig", GAME_SUPPORTS_SAVE )
2895GAME( 2001, dtfamily,  0,        coolmini, common,   vamphalf_state, dtfamily, ROT0,   "SemiCom",           "Diet Family", GAME_SUPPORTS_SAVE )
2896GAME( 2001, finalgdr,  0,        finalgdr, finalgdr, vamphalf_state, finalgdr, ROT0,   "SemiCom",           "Final Godori (Korea, version 2.20.5915)", GAME_SUPPORTS_SAVE )
2897GAME( 2001, mrkicker,  0,        mrkicker, finalgdr, vamphalf_state, mrkicker, ROT0,   "SemiCom",           "Mr. Kicker", GAME_SUPPORTS_SAVE )
2898GAME( 2001, toyland,   0,        coolmini, common,   vamphalf_state, toyland,  ROT0,   "SemiCom",           "Toy Land Adventure", GAME_SUPPORTS_SAVE )
2899GAME( 2001, wivernwg,  0,        wyvernwg, common,   vamphalf_state, wyvernwg, ROT270, "SemiCom",           "Wivern Wings", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2900GAME( 2001, wyvernwg,  wivernwg, wyvernwg, common,   vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 1)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2901GAME( 2001, wyvernwga, wivernwg, wyvernwg, common,   vamphalf_state, wyvernwg, ROT270, "SemiCom (Game Vision license)", "Wyvern Wings (set 2)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )
2902GAME( 2001, aoh,       0,        aoh,      aoh,      vamphalf_state, aoh,      ROT0,   "Unico",             "Age Of Heroes - Silkroad 2 (v0.63 - 2001/02/07)", GAME_SUPPORTS_SAVE )
2903GAME( 2001, boonggab,  0,        boonggab, boonggab, vamphalf_state, boonggab, ROT270, "Taff System",       "Boong-Ga Boong-Ga (Spank'em!)", GAME_SUPPORTS_SAVE )
2904GAME( 199?, yorijori,  0,        yorijori, common,   vamphalf_state, yorijori, ROT0,   "Golden Bell Entertainment",         "Yori Jori Kuk Kuk", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team