mirror of
https://github.com/holub/mame
synced 2025-06-07 05:13:46 +03:00
New working clones
------------------ Ojanko Club (Japan, Program Ver. 1.3, set 2) [system11]
This commit is contained in:
parent
da36cacbb5
commit
089259b888
@ -32,19 +32,18 @@
|
||||
#include "cpu/z80/z80.h"
|
||||
#include "machine/nvram.h"
|
||||
#include "sound/ay8910.h"
|
||||
#include "sound/msm5205.h"
|
||||
#include "video/vsystem_gga.h"
|
||||
#include "speaker.h"
|
||||
|
||||
|
||||
void ojankohs_state::ojankohs_rombank_w(uint8_t data)
|
||||
void ojankohs_state::rombank_w(uint8_t data)
|
||||
{
|
||||
membank("bank1")->set_entry(data & 0x3f);
|
||||
m_mainbank->set_entry(data & 0x3f);
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankoy_rombank_w(uint8_t data)
|
||||
void ojankoy_state::rombank_w(uint8_t data)
|
||||
{
|
||||
membank("bank1")->set_entry(data & 0x1f);
|
||||
m_mainbank->set_entry(data & 0x1f);
|
||||
|
||||
m_adpcm_reset = BIT(data, 5);
|
||||
if (!m_adpcm_reset)
|
||||
@ -53,7 +52,7 @@ void ojankohs_state::ojankoy_rombank_w(uint8_t data)
|
||||
m_msm->reset_w(!m_adpcm_reset);
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankohs_adpcm_reset_w(uint8_t data)
|
||||
void ojankohs_state::adpcm_reset_w(uint8_t data)
|
||||
{
|
||||
m_adpcm_reset = BIT(data, 0);
|
||||
m_vclk_left = 0;
|
||||
@ -61,19 +60,19 @@ void ojankohs_state::ojankohs_adpcm_reset_w(uint8_t data)
|
||||
m_msm->reset_w(!m_adpcm_reset);
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankohs_msm5205_w(uint8_t data)
|
||||
void ojankohs_state::msm5205_w(uint8_t data)
|
||||
{
|
||||
m_adpcm_data = data;
|
||||
m_vclk_left = 2;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(ojankohs_state::ojankohs_adpcm_int)
|
||||
WRITE_LINE_MEMBER(ojankohs_state::adpcm_int)
|
||||
{
|
||||
/* skip if we're reset */
|
||||
// skip if we're reset
|
||||
if (!m_adpcm_reset)
|
||||
return;
|
||||
|
||||
/* clock the data through */
|
||||
// clock the data through
|
||||
if (m_vclk_left)
|
||||
{
|
||||
m_msm->data_w(m_adpcm_data >> 4);
|
||||
@ -81,99 +80,99 @@ WRITE_LINE_MEMBER(ojankohs_state::ojankohs_adpcm_int)
|
||||
m_vclk_left--;
|
||||
}
|
||||
|
||||
/* generate an NMI if we're out of data */
|
||||
// generate an NMI if we're out of data
|
||||
if (!m_vclk_left)
|
||||
m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankoc_ctrl_w(uint8_t data)
|
||||
void ojankoc_state::ctrl_w(uint8_t data)
|
||||
{
|
||||
membank("bank1")->set_entry(data & 0x0f);
|
||||
m_mainbank->set_entry(data & 0x0f);
|
||||
|
||||
m_adpcm_reset = BIT(data, 4);
|
||||
m_msm->reset_w(!BIT(data, 4));
|
||||
ojankoc_flipscreen(data);
|
||||
flipscreen(data);
|
||||
}
|
||||
|
||||
|
||||
void ojankohs_state::ojankohs_map(address_map &map)
|
||||
void ojankohs_state::map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0x8fff).ram().w(FUNC(ojankohs_state::ojankohs_videoram_w)).share("videoram");
|
||||
map(0x9000, 0x9fff).ram().w(FUNC(ojankohs_state::ojankohs_colorram_w)).share("colorram");
|
||||
map(0x8000, 0x8fff).ram().w(FUNC(ojankohs_state::videoram_w)).share(m_videoram);
|
||||
map(0x9000, 0x9fff).ram().w(FUNC(ojankohs_state::colorram_w)).share(m_colorram);
|
||||
map(0xa000, 0xb7ff).ram().share("nvram");
|
||||
map(0xb800, 0xbfff).ram().w(FUNC(ojankohs_state::ojankohs_palette_w)).share("paletteram");
|
||||
map(0xc000, 0xffff).bankr("bank1");
|
||||
map(0xb800, 0xbfff).ram().w(FUNC(ojankohs_state::palette_w)).share(m_paletteram);
|
||||
map(0xc000, 0xffff).bankr(m_mainbank);
|
||||
}
|
||||
|
||||
|
||||
void ojankohs_state::ojankoy_map(address_map &map)
|
||||
void ojankoy_state::map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x7fff).rom();
|
||||
map(0x8000, 0x9fff).ram().w(FUNC(ojankohs_state::ojankohs_videoram_w)).share("videoram");
|
||||
map(0xa000, 0xafff).ram().w(FUNC(ojankohs_state::ojankohs_colorram_w)).share("colorram");
|
||||
map(0x8000, 0x9fff).ram().w(FUNC(ojankoy_state::videoram_w)).share(m_videoram);
|
||||
map(0xa000, 0xafff).ram().w(FUNC(ojankoy_state::colorram_w)).share(m_colorram);
|
||||
map(0xb000, 0xbfff).ram().share("nvram");
|
||||
map(0xc000, 0xffff).bankr("bank1");
|
||||
map(0xc000, 0xffff).bankr(m_mainbank);
|
||||
}
|
||||
|
||||
|
||||
void ojankohs_state::ojankoc_map(address_map &map)
|
||||
void ojankoc_state::map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x77ff).rom();
|
||||
map(0x7800, 0x7fff).ram().share("nvram");
|
||||
map(0x8000, 0xffff).bankr("bank1").w(FUNC(ojankohs_state::ojankoc_videoram_w));
|
||||
map(0x8000, 0xffff).bankr(m_mainbank).w(FUNC(ojankoc_state::videoram_w));
|
||||
}
|
||||
|
||||
|
||||
void ojankohs_state::ojankohs_io_map(address_map &map)
|
||||
void ojankohs_state::io_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).portr("system").w(FUNC(ojankohs_state::port_select_w));
|
||||
map(0x01, 0x01).rw(FUNC(ojankohs_state::keymatrix_p1_r), FUNC(ojankohs_state::ojankohs_rombank_w));
|
||||
map(0x02, 0x02).rw(FUNC(ojankohs_state::keymatrix_p2_r), FUNC(ojankohs_state::ojankohs_gfxreg_w));
|
||||
map(0x03, 0x03).w(FUNC(ojankohs_state::ojankohs_adpcm_reset_w));
|
||||
map(0x04, 0x04).w(FUNC(ojankohs_state::ojankohs_flipscreen_w));
|
||||
map(0x05, 0x05).w(FUNC(ojankohs_state::ojankohs_msm5205_w));
|
||||
map(0x01, 0x01).rw(FUNC(ojankohs_state::keymatrix_p1_r), FUNC(ojankohs_state::rombank_w));
|
||||
map(0x02, 0x02).rw(FUNC(ojankohs_state::keymatrix_p2_r), FUNC(ojankohs_state::gfxreg_w));
|
||||
map(0x03, 0x03).w(FUNC(ojankohs_state::adpcm_reset_w));
|
||||
map(0x04, 0x04).w(FUNC(ojankohs_state::flipscreen_w));
|
||||
map(0x05, 0x05).w(FUNC(ojankohs_state::msm5205_w));
|
||||
map(0x06, 0x06).r("aysnd", FUNC(ym2149_device::data_r));
|
||||
map(0x06, 0x07).w("aysnd", FUNC(ym2149_device::data_address_w));
|
||||
map(0x10, 0x11).w("gga", FUNC(vsystem_gga_device::write));
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankoy_io_map(address_map &map)
|
||||
void ojankoy_state::io_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x00).portr("system").w(FUNC(ojankohs_state::port_select_w));
|
||||
map(0x01, 0x01).rw(FUNC(ojankohs_state::keymatrix_p1_r), FUNC(ojankohs_state::ojankoy_rombank_w));
|
||||
map(0x02, 0x02).rw(FUNC(ojankohs_state::keymatrix_p2_r), FUNC(ojankohs_state::ojankoy_coinctr_w));
|
||||
map(0x04, 0x04).w(FUNC(ojankohs_state::ojankohs_flipscreen_w));
|
||||
map(0x05, 0x05).w(FUNC(ojankohs_state::ojankohs_msm5205_w));
|
||||
map(0x00, 0x00).portr("system").w(FUNC(ojankoy_state::port_select_w));
|
||||
map(0x01, 0x01).rw(FUNC(ojankoy_state::keymatrix_p1_r), FUNC(ojankoy_state::rombank_w));
|
||||
map(0x02, 0x02).rw(FUNC(ojankoy_state::keymatrix_p2_r), FUNC(ojankoy_state::coinctr_w));
|
||||
map(0x04, 0x04).w(FUNC(ojankoy_state::flipscreen_w));
|
||||
map(0x05, 0x05).w(FUNC(ojankoy_state::msm5205_w));
|
||||
map(0x06, 0x06).r("aysnd", FUNC(ay8910_device::data_r));
|
||||
map(0x06, 0x07).w("aysnd", FUNC(ay8910_device::data_address_w));
|
||||
}
|
||||
|
||||
void ojankohs_state::ccasino_io_map(address_map &map)
|
||||
void ccasino_state::io_map(address_map &map)
|
||||
{
|
||||
map(0x00, 0x00).mirror(0xff00).portr("system").w(FUNC(ojankohs_state::port_select_w));
|
||||
map(0x01, 0x01).mirror(0xff00).rw(FUNC(ojankohs_state::keymatrix_p1_r), FUNC(ojankohs_state::ojankohs_rombank_w));
|
||||
map(0x02, 0x02).mirror(0xff00).rw(FUNC(ojankohs_state::keymatrix_p2_r), FUNC(ojankohs_state::ccasino_coinctr_w));
|
||||
map(0x03, 0x03).mirror(0xff00).r(FUNC(ojankohs_state::ccasino_dipsw3_r)).w(FUNC(ojankohs_state::ojankohs_adpcm_reset_w));
|
||||
map(0x04, 0x04).mirror(0xff00).r(FUNC(ojankohs_state::ccasino_dipsw4_r)).w(FUNC(ojankohs_state::ojankohs_flipscreen_w));
|
||||
map(0x05, 0x05).mirror(0xff00).w(FUNC(ojankohs_state::ojankohs_msm5205_w));
|
||||
map(0x00, 0x00).mirror(0xff00).portr("system").w(FUNC(ccasino_state::port_select_w));
|
||||
map(0x01, 0x01).mirror(0xff00).rw(FUNC(ccasino_state::keymatrix_p1_r), FUNC(ccasino_state::rombank_w));
|
||||
map(0x02, 0x02).mirror(0xff00).rw(FUNC(ccasino_state::keymatrix_p2_r), FUNC(ccasino_state::coinctr_w));
|
||||
map(0x03, 0x03).mirror(0xff00).r(FUNC(ccasino_state::dipsw3_r)).w(FUNC(ccasino_state::adpcm_reset_w));
|
||||
map(0x04, 0x04).mirror(0xff00).r(FUNC(ccasino_state::dipsw4_r)).w(FUNC(ccasino_state::flipscreen_w));
|
||||
map(0x05, 0x05).mirror(0xff00).w(FUNC(ccasino_state::msm5205_w));
|
||||
map(0x06, 0x06).mirror(0xff00).r("aysnd", FUNC(ay8910_device::data_r));
|
||||
map(0x06, 0x07).mirror(0xff00).w("aysnd", FUNC(ay8910_device::data_address_w));
|
||||
map(0x08, 0x0f).select(0xff00).w(FUNC(ojankohs_state::ccasino_palette_w)); // 16bit address access
|
||||
map(0x08, 0x0f).select(0xff00).w(FUNC(ccasino_state::palette_w)); // 16bit address access
|
||||
map(0x10, 0x11).mirror(0xff00).w("gga", FUNC(vsystem_gga_device::write));
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankoc_io_map(address_map &map)
|
||||
void ojankoc_state::io_map(address_map &map)
|
||||
{
|
||||
map.global_mask(0xff);
|
||||
map(0x00, 0x1f).w(FUNC(ojankohs_state::ojankoc_palette_w));
|
||||
map(0xf9, 0xf9).w(FUNC(ojankohs_state::ojankohs_msm5205_w));
|
||||
map(0xfb, 0xfb).w(FUNC(ojankohs_state::ojankoc_ctrl_w));
|
||||
map(0xfc, 0xfc).r(FUNC(ojankohs_state::ojankoc_keymatrix_p1_r));
|
||||
map(0xfd, 0xfd).r(FUNC(ojankohs_state::ojankoc_keymatrix_p2_r));
|
||||
map(0xfd, 0xfd).w(FUNC(ojankohs_state::port_select_w));
|
||||
map(0x00, 0x1f).w(FUNC(ojankoc_state::palette_w));
|
||||
map(0xf9, 0xf9).w(FUNC(ojankoc_state::msm5205_w));
|
||||
map(0xfb, 0xfb).w(FUNC(ojankoc_state::ctrl_w));
|
||||
map(0xfc, 0xfc).r(FUNC(ojankoc_state::keymatrix_p1_r));
|
||||
map(0xfd, 0xfd).r(FUNC(ojankoc_state::keymatrix_p2_r));
|
||||
map(0xfd, 0xfd).w(FUNC(ojankoc_state::port_select_w));
|
||||
map(0xfe, 0xff).w("aysnd", FUNC(ay8910_device::data_address_w));
|
||||
map(0xff, 0xff).r("aysnd", FUNC(ay8910_device::data_r));
|
||||
}
|
||||
@ -521,22 +520,23 @@ static INPUT_PORTS_START( ojankoc )
|
||||
PORT_DIPSETTING( 0x06, "1000")
|
||||
PORT_DIPSETTING( 0x04, "2000")
|
||||
PORT_DIPSETTING( 0x02, "3000")
|
||||
PORT_DIPSETTING( 0x00, "5000")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW1:4")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW1:5")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW1:6")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW1:7")
|
||||
PORT_DIPSETTING( 0x00, "5000") // dip sheet says 4000, but verified 5000 in game for all dumped sets
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW1:4") // marked as off in the dip sheet
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW1:5") // marked as off in the dip sheet
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW1:6") // marked as off in the dip sheet
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW1:7") // marked as off in the dip sheet
|
||||
PORT_SERVICE_DIPLOC(0x80, IP_ACTIVE_LOW, "DSW1:8")
|
||||
|
||||
PORT_START("dsw2")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW2:1")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW2:2")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW2:3")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW2:4")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW2:5")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW2:6")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW2:7")
|
||||
PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW2:8")
|
||||
PORT_START("dsw2") // dip sheet shows you have to turn all the dips off but the one that determines the difficulty you want
|
||||
PORT_DIPNAME(0xff, 0xef, DEF_STR( Difficulty )) PORT_DIPLOCATION("DSW2:1,2,3,4,5,6,7,8")
|
||||
PORT_DIPSETTING( 0xfe, "A (easiest)")
|
||||
PORT_DIPSETTING( 0xfd, "B")
|
||||
PORT_DIPSETTING( 0xfb, "C")
|
||||
PORT_DIPSETTING( 0xf7, "D")
|
||||
PORT_DIPSETTING( 0xef, "E")
|
||||
PORT_DIPSETTING( 0xdf, "F")
|
||||
PORT_DIPSETTING( 0xbf, "G")
|
||||
PORT_DIPSETTING( 0x7f, "H (most difficult)")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
@ -579,7 +579,7 @@ uint8_t ojankohs_state::keymatrix_p2_r()
|
||||
return data;
|
||||
}
|
||||
|
||||
uint8_t ojankohs_state::ojankoc_keymatrix_p1_r()
|
||||
uint8_t ojankoc_state::keymatrix_p1_r()
|
||||
{
|
||||
uint8_t data = 0x00;
|
||||
|
||||
@ -593,7 +593,7 @@ uint8_t ojankohs_state::ojankoc_keymatrix_p1_r()
|
||||
return data;
|
||||
}
|
||||
|
||||
uint8_t ojankohs_state::ojankoc_keymatrix_p2_r()
|
||||
uint8_t ojankoc_state::keymatrix_p2_r()
|
||||
{
|
||||
uint8_t data = 0x00;
|
||||
|
||||
@ -607,34 +607,34 @@ uint8_t ojankohs_state::ojankoc_keymatrix_p2_r()
|
||||
return data;
|
||||
}
|
||||
|
||||
uint8_t ojankohs_state::ojankohs_dipsw1_r()
|
||||
uint8_t ojankohs_state::dipsw1_r()
|
||||
{
|
||||
uint8_t data = m_dsw1->read();
|
||||
uint8_t data = m_dsw[0]->read();
|
||||
return bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
|
||||
}
|
||||
|
||||
uint8_t ojankohs_state::ojankohs_dipsw2_r()
|
||||
uint8_t ojankohs_state::dipsw2_r()
|
||||
{
|
||||
uint8_t data = m_dsw2->read();
|
||||
uint8_t data = m_dsw[1]->read();
|
||||
return bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
|
||||
}
|
||||
|
||||
uint8_t ojankohs_state::ccasino_dipsw3_r()
|
||||
uint8_t ccasino_state::dipsw3_r()
|
||||
{
|
||||
return m_dsw3->read() ^ 0xff;
|
||||
return m_extra_dsw[0]->read() ^ 0xff;
|
||||
}
|
||||
|
||||
uint8_t ojankohs_state::ccasino_dipsw4_r()
|
||||
uint8_t ccasino_state::dipsw4_r()
|
||||
{
|
||||
return m_dsw4->read() ^ 0xff;
|
||||
return m_extra_dsw[1]->read() ^ 0xff;
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankoy_coinctr_w(uint8_t data)
|
||||
void ojankoy_state::coinctr_w(uint8_t data)
|
||||
{
|
||||
machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
|
||||
}
|
||||
|
||||
void ojankohs_state::ccasino_coinctr_w(uint8_t data)
|
||||
void ccasino_state::coinctr_w(uint8_t data)
|
||||
{
|
||||
machine().bookkeeping().coin_counter_w(0, BIT(data, 1));
|
||||
}
|
||||
@ -652,10 +652,10 @@ static const gfx_layout ojankohs_bglayout =
|
||||
};
|
||||
|
||||
static GFXDECODE_START( gfx_ojankohs )
|
||||
GFXDECODE_ENTRY( "gfx1", 0, ojankohs_bglayout, 0, 64 )
|
||||
GFXDECODE_ENTRY( "gfx", 0, ojankohs_bglayout, 0, 64 )
|
||||
GFXDECODE_END
|
||||
|
||||
MACHINE_START_MEMBER(ojankohs_state,common)
|
||||
void ojankohs_state::common_state_saving()
|
||||
{
|
||||
save_item(NAME(m_gfxreg));
|
||||
save_item(NAME(m_flipscreen));
|
||||
@ -669,31 +669,24 @@ MACHINE_START_MEMBER(ojankohs_state,common)
|
||||
save_item(NAME(m_vclk_left));
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(ojankohs_state,ojankohs)
|
||||
|
||||
void ojankohs_state::machine_start()
|
||||
{
|
||||
uint8_t *ROM = memregion("maincpu")->base();
|
||||
uint8_t *rom = memregion("maincpu")->base();
|
||||
uint32_t banked_size = memregion("maincpu")->bytes();
|
||||
|
||||
membank("bank1")->configure_entries(0, 0x40, &ROM[0x10000], 0x4000);
|
||||
m_mainbank->configure_entries(0, banked_size / 0x4000, &rom[0x10000], 0x4000);
|
||||
|
||||
MACHINE_START_CALL_MEMBER(common);
|
||||
common_state_saving();
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(ojankohs_state,ojankoy)
|
||||
void ojankoc_state::machine_start()
|
||||
{
|
||||
uint8_t *ROM = memregion("maincpu")->base();
|
||||
uint8_t *rom = memregion("banked_roms")->base();
|
||||
|
||||
membank("bank1")->configure_entries(0, 0x20, &ROM[0x10000], 0x4000);
|
||||
m_mainbank->configure_entries(0, 0x10, &rom[0x0000], 0x8000);
|
||||
|
||||
MACHINE_START_CALL_MEMBER(common);
|
||||
}
|
||||
|
||||
MACHINE_START_MEMBER(ojankohs_state,ojankoc)
|
||||
{
|
||||
uint8_t *ROM = memregion("user1")->base();
|
||||
|
||||
membank("bank1")->configure_entries(0, 0x10, &ROM[0x0000], 0x8000);
|
||||
|
||||
MACHINE_START_CALL_MEMBER(common);
|
||||
common_state_saving();
|
||||
}
|
||||
|
||||
void ojankohs_state::machine_reset()
|
||||
@ -714,164 +707,149 @@ void ojankohs_state::machine_reset()
|
||||
|
||||
void ojankohs_state::ojankohs(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, 12000000/2); /* 6.00 MHz ? */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ojankohs_state::ojankohs_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &ojankohs_state::ojankohs_io_map);
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, 12'000'000 / 2); // 6.00 MHz ?
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ojankohs_state::map);
|
||||
m_maincpu->set_addrmap(AS_IO, &ojankohs_state::io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(ojankohs_state::irq0_line_hold));
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(ojankohs_state,ojankohs)
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(512, 512);
|
||||
m_screen->set_visarea(0, 288-1, 0, 224-1);
|
||||
m_screen->set_screen_update(FUNC(ojankohs_state::screen_update_ojankohs));
|
||||
m_screen->set_screen_update(FUNC(ojankohs_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ojankohs);
|
||||
PALETTE(config, m_palette).set_entries(1024);
|
||||
|
||||
VSYSTEM_GGA(config, "gga", XTAL(13'333'000)/2); // divider not verified
|
||||
VSYSTEM_GGA(config, "gga", XTAL(13'333'000) / 2); // divider not verified
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankohs)
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
ym2149_device &aysnd(YM2149(config, "aysnd", 12000000/6));
|
||||
aysnd.port_a_read_callback().set(FUNC(ojankohs_state::ojankohs_dipsw1_r));
|
||||
aysnd.port_b_read_callback().set(FUNC(ojankohs_state::ojankohs_dipsw2_r));
|
||||
ym2149_device &aysnd(YM2149(config, "aysnd", 12'000'000 / 6));
|
||||
aysnd.port_a_read_callback().set(FUNC(ojankohs_state::dipsw1_r));
|
||||
aysnd.port_b_read_callback().set(FUNC(ojankohs_state::dipsw2_r));
|
||||
aysnd.add_route(ALL_OUTPUTS, "mono", 0.15);
|
||||
|
||||
MSM5205(config, m_msm, 384000);
|
||||
m_msm->vck_legacy_callback().set(FUNC(ojankohs_state::ojankohs_adpcm_int)); /* IRQ handler */
|
||||
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */
|
||||
MSM5205(config, m_msm, 384'000);
|
||||
m_msm->vck_legacy_callback().set(FUNC(ojankohs_state::adpcm_int)); // IRQ handler
|
||||
m_msm->set_prescaler_selector(msm5205_device::S48_4B); // 8 KHz
|
||||
m_msm->add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankoy(machine_config &config)
|
||||
void ojankoy_state::ojankoy(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, 12000000/2); /* 6.00 MHz ? */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ojankohs_state::ojankoy_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &ojankohs_state::ojankoy_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(ojankohs_state::irq0_line_hold));
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(ojankohs_state,ojankoy)
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, 12'000'000 / 2); // 6.00 MHz ?
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ojankoy_state::map);
|
||||
m_maincpu->set_addrmap(AS_IO, &ojankoy_state::io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(ojankoy_state::irq0_line_hold));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(512, 512);
|
||||
m_screen->set_visarea(0, 288-1, 0, 224-1);
|
||||
m_screen->set_screen_update(FUNC(ojankohs_state::screen_update_ojankohs));
|
||||
m_screen->set_screen_update(FUNC(ojankoy_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ojankohs);
|
||||
PALETTE(config, m_palette, FUNC(ojankohs_state::ojankoy_palette), 1024);
|
||||
PALETTE(config, m_palette, FUNC(ojankoy_state::palette), 1024);
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoy)
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
ay8910_device &aysnd(AY8910(config, "aysnd", 12000000/8));
|
||||
ay8910_device &aysnd(AY8910(config, "aysnd", 12'000'000 / 8));
|
||||
aysnd.port_a_read_callback().set_ioport("dsw1");
|
||||
aysnd.port_b_read_callback().set_ioport("dsw2");
|
||||
aysnd.add_route(ALL_OUTPUTS, "mono", 0.15);
|
||||
|
||||
MSM5205(config, m_msm, 384000);
|
||||
m_msm->vck_legacy_callback().set(FUNC(ojankohs_state::ojankohs_adpcm_int)); /* IRQ handler */
|
||||
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */
|
||||
MSM5205(config, m_msm, 384'000);
|
||||
m_msm->vck_legacy_callback().set(FUNC(ojankoy_state::adpcm_int)); // IRQ handler
|
||||
m_msm->set_prescaler_selector(msm5205_device::S48_4B); // 8 KHz
|
||||
m_msm->add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
}
|
||||
|
||||
void ojankohs_state::ccasino(machine_config &config)
|
||||
void ccasino_state::ccasino(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, 12000000/2); /* 6.00 MHz ? */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ojankohs_state::ojankoy_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &ojankohs_state::ccasino_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(ojankohs_state::irq0_line_hold));
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(ojankohs_state,ojankohs)
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, 12'000'000 / 2); // 6.00 MHz ?
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ccasino_state::map);
|
||||
m_maincpu->set_addrmap(AS_IO, &ccasino_state::io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(ccasino_state::irq0_line_hold));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(512, 512);
|
||||
m_screen->set_visarea(0, 288-1, 0, 224-1);
|
||||
m_screen->set_screen_update(FUNC(ojankohs_state::screen_update_ojankohs));
|
||||
m_screen->set_screen_update(FUNC(ccasino_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
GFXDECODE(config, m_gfxdecode, m_palette, gfx_ojankohs);
|
||||
PALETTE(config, m_palette).set_entries(1024);
|
||||
|
||||
VSYSTEM_GGA(config, "gga", XTAL(13'333'000)/2); // divider not verified
|
||||
VSYSTEM_GGA(config, "gga", XTAL(13'333'000) / 2); // divider not verified
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ccasino)
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
ay8910_device &aysnd(AY8910(config, "aysnd", 12000000/8));
|
||||
ay8910_device &aysnd(AY8910(config, "aysnd", 12'000'000 / 8));
|
||||
aysnd.port_a_read_callback().set_ioport("dsw1");
|
||||
aysnd.port_b_read_callback().set_ioport("dsw2");
|
||||
aysnd.add_route(ALL_OUTPUTS, "mono", 0.15);
|
||||
|
||||
MSM5205(config, m_msm, 384000);
|
||||
m_msm->vck_legacy_callback().set(FUNC(ojankohs_state::ojankohs_adpcm_int)); /* IRQ handler */
|
||||
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */
|
||||
MSM5205(config, m_msm, 384'000);
|
||||
m_msm->vck_legacy_callback().set(FUNC(ccasino_state::adpcm_int)); // IRQ handler
|
||||
m_msm->set_prescaler_selector(msm5205_device::S48_4B); // 8 KHz
|
||||
m_msm->add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankoc(machine_config &config)
|
||||
void ojankoc_state::ojankoc(machine_config &config)
|
||||
{
|
||||
/* basic machine hardware */
|
||||
Z80(config, m_maincpu, 8000000/2); /* 4.00 MHz */
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ojankohs_state::ojankoc_map);
|
||||
m_maincpu->set_addrmap(AS_IO, &ojankohs_state::ojankoc_io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(ojankohs_state::irq0_line_hold));
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE(ojankohs_state,ojankoc)
|
||||
// basic machine hardware
|
||||
Z80(config, m_maincpu, 8_MHz_XTAL / 2); // 4.00 MHz
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &ojankoc_state::map);
|
||||
m_maincpu->set_addrmap(AS_IO, &ojankoc_state::io_map);
|
||||
m_maincpu->set_vblank_int("screen", FUNC(ojankoc_state::irq0_line_hold));
|
||||
|
||||
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
|
||||
|
||||
/* video hardware */
|
||||
// video hardware
|
||||
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
|
||||
m_screen->set_refresh_hz(60);
|
||||
m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0));
|
||||
m_screen->set_size(32*8, 32*8);
|
||||
m_screen->set_visarea(0, 256-1, 8, 248-1);
|
||||
m_screen->set_screen_update(FUNC(ojankohs_state::screen_update_ojankoc));
|
||||
m_screen->set_screen_update(FUNC(ojankoc_state::screen_update));
|
||||
m_screen->set_palette(m_palette);
|
||||
|
||||
PALETTE(config, m_palette).set_entries(16);
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(ojankohs_state,ojankoc)
|
||||
|
||||
/* sound hardware */
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
||||
ay8910_device &aysnd(AY8910(config, "aysnd", 8000000/4));
|
||||
ay8910_device &aysnd(AY8910(config, "aysnd", 8_MHz_XTAL / 4));
|
||||
aysnd.port_a_read_callback().set_ioport("dsw1");
|
||||
aysnd.port_b_read_callback().set_ioport("dsw2");
|
||||
aysnd.add_route(ALL_OUTPUTS, "mono", 0.15);
|
||||
|
||||
MSM5205(config, m_msm, 8000000/22);
|
||||
m_msm->vck_legacy_callback().set(FUNC(ojankohs_state::ojankohs_adpcm_int)); /* IRQ handler */
|
||||
m_msm->set_prescaler_selector(msm5205_device::S48_4B); /* 8 KHz */
|
||||
MSM5205(config, m_msm, 8_MHz_XTAL / 22);
|
||||
m_msm->vck_legacy_callback().set(FUNC(ojankoc_state::adpcm_int)); // IRQ handler
|
||||
m_msm->set_prescaler_selector(msm5205_device::S48_4B); // 8 KHz
|
||||
m_msm->add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
}
|
||||
|
||||
@ -882,7 +860,7 @@ ROM_START( ojankohs )
|
||||
ROM_LOAD( "5b", 0x10000, 0x80000, CRC(bd4fd0b6) SHA1(79e0937fdd34ec03b4b0a503efc1fa7c8f29e7cf) )
|
||||
ROM_LOAD( "6.6c", 0x90000, 0x08000, CRC(30772679) SHA1(8bc415da465faa70ec468a23b3528493849e83ee) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx1", 0 )
|
||||
ROM_REGION( 0x80000, "gfx", 0 )
|
||||
ROM_LOAD( "13b", 0x00000, 0x80000, CRC(bda30bfa) SHA1(c412e573c40816735f7e2d0600dd0d78ebce91dc) )
|
||||
ROM_END
|
||||
|
||||
@ -896,7 +874,7 @@ ROM_START( ojankoy )
|
||||
ROM_LOAD( "c-ic32.bin", 0x60000, 0x08000, CRC(d20de9b0) SHA1(bfec453a5e16bb3e1ffa454d6dad44e113a54968) )
|
||||
ROM_LOAD( "d-ic31.bin", 0x68000, 0x08000, CRC(b78e6913) SHA1(a0ebe0b29025beabe5609a5d1adecfd2565da623) )
|
||||
|
||||
ROM_REGION( 0x70000, "gfx1", 0 )
|
||||
ROM_REGION( 0x70000, "gfx", 0 )
|
||||
ROM_LOAD( "ic55.bin", 0x00000, 0x20000, CRC(586fb385) SHA1(cdf18f52ba8d25c740fc85a68505f102fe6ba208) )
|
||||
ROM_LOAD( "0-ic53.bin", 0x40000, 0x08000, CRC(db38c288) SHA1(8b98091eae9c22ade123a6f58c108f8e653d99c8) )
|
||||
ROM_LOAD( "1-ic52.bin", 0x48000, 0x08000, CRC(a8b4a10b) SHA1(fa44c52efd42a99e2d34c4785a09947523a8385a) )
|
||||
@ -920,7 +898,7 @@ ROM_START( ojanko2 )
|
||||
ROM_LOAD( "c-ic32.bin", 0x60000, 0x08000, CRC(5453b9de) SHA1(d9758c56cd65d65d0711368054fc0dfbb4b213ae) )
|
||||
ROM_LOAD( "d-ic31.bin", 0x68000, 0x08000, CRC(44cd5348) SHA1(a73a676fbca4678aef8066ad72ea22c6c4ca4b32) )
|
||||
|
||||
ROM_REGION( 0x70000, "gfx1", 0 )
|
||||
ROM_REGION( 0x70000, "gfx", 0 )
|
||||
ROM_LOAD( "ic55.bin", 0x00000, 0x20000, CRC(b058fb3d) SHA1(32b04405f218c1f9ca58f01dbadda3536df3d0b5) )
|
||||
ROM_LOAD( "0-ic53.bin", 0x40000, 0x08000, CRC(db38c288) SHA1(8b98091eae9c22ade123a6f58c108f8e653d99c8) )
|
||||
ROM_LOAD( "1-ic52.bin", 0x48000, 0x08000, CRC(49f2ca73) SHA1(387613fd886f3a4a569146aaec59ad15f13a8ea5) )
|
||||
@ -941,7 +919,7 @@ ROM_START( ccasino )
|
||||
ROM_LOAD( "g5.bin", 0x58000, 0x08000, CRC(8cfd60aa) SHA1(203789c58a9cbfbf37ad2a3dfcd86eefe406b2c7) )
|
||||
ROM_LOAD( "h5.bin", 0x60000, 0x08000, CRC(d20dfcf9) SHA1(83ca36f2e02bbada5b03734b5d92c5c860292db2) )
|
||||
|
||||
ROM_REGION( 0x60000, "gfx1", 0 )
|
||||
ROM_REGION( 0x60000, "gfx", 0 )
|
||||
ROM_LOAD( "r1.bin", 0x00000, 0x20000, CRC(407f77ca) SHA1(a65e5403fa84185d67d994acee6f32051991d546) )
|
||||
ROM_LOAD( "s1.bin", 0x20000, 0x20000, CRC(8572d156) SHA1(22f73bfb1419c3d467b4cd4ffaa6f1598f4ee4fa) )
|
||||
ROM_LOAD( "e1.bin", 0x40000, 0x08000, CRC(d78c3428) SHA1(b033a7aa3029b7a9ff836c5c737c07aaad5d7456) )
|
||||
@ -951,10 +929,10 @@ ROM_START( ccasino )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ojankoc )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* CPU */
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "c11.1p", 0x0000, 0x8000, CRC(cb3e900c) SHA1(95f0354f147e339a97368b5cc67200151cdfa0e9) )
|
||||
|
||||
ROM_REGION( 0x80000, "user1", 0 ) /* BANK */
|
||||
ROM_REGION( 0x80000, "banked_roms", 0 )
|
||||
ROM_LOAD( "1.1a", 0x00000, 0x8000, CRC(d40b17eb) SHA1(1e8c16e1562c112ca5150b3187a2d4aa22c1adf0) )
|
||||
ROM_LOAD( "2.1b", 0x08000, 0x8000, CRC(d181172a) SHA1(65d6710464a1f505df705c553558bbf22704359d) )
|
||||
ROM_LOAD( "3.1c", 0x10000, 0x8000, CRC(2e86d5bc) SHA1(0226eb81b31e43325f24b40ab51bce1729bf678c) )
|
||||
@ -968,10 +946,27 @@ ROM_START( ojankoc )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ojankoca )
|
||||
ROM_REGION( 0x10000, "maincpu", 0 ) /* CPU */
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "11.1p", 0x0000, 0x8000, CRC(0c552e32) SHA1(2a8714796b2c95a042d783aae79c135ba03d1958) )
|
||||
|
||||
ROM_REGION( 0x80000, "user1", 0 ) /* BANK */
|
||||
ROM_REGION( 0x80000, "banked_roms", 0 )
|
||||
ROM_LOAD( "1.1a", 0x00000, 0x8000, CRC(d40b17eb) SHA1(1e8c16e1562c112ca5150b3187a2d4aa22c1adf0) )
|
||||
ROM_LOAD( "2.1b", 0x08000, 0x8000, CRC(d181172a) SHA1(65d6710464a1f505df705c553558bbf22704359d) )
|
||||
ROM_LOAD( "3.1c", 0x10000, 0x8000, CRC(2e86d5bc) SHA1(0226eb81b31e43325f24b40ab51bce1729bf678c) )
|
||||
ROM_LOAD( "4.1e", 0x18000, 0x8000, CRC(00a780cb) SHA1(f0b4f6f0c58e9d069e0f6794243925679f220f35) )
|
||||
ROM_LOAD( "5.1f", 0x20000, 0x8000, CRC(f9885076) SHA1(ebf4c0769eab6545fd227eb9f4036af2472bcac3) )
|
||||
ROM_LOAD( "6.1h", 0x28000, 0x8000, CRC(42575d0c) SHA1(1f9c187b0c05179798cbdb28eb212202ffdc9fde) )
|
||||
ROM_LOAD( "7.1k", 0x30000, 0x8000, CRC(4d8d8928) SHA1(a5ccf4a1d84ef3a4966db01d66371de83e270701) )
|
||||
ROM_LOAD( "8.1l", 0x38000, 0x8000, CRC(534573b7) SHA1(ec53cad7d652c88508edd29c2412834920fe8ef6) )
|
||||
ROM_LOAD( "9.1m", 0x48000, 0x8000, CRC(2bf88eda) SHA1(55de96d057a0f35d9e74455444751f217aa4741e) )
|
||||
ROM_LOAD( "0.1n", 0x50000, 0x8000, CRC(5665016e) SHA1(0f7f0a8e55e93bcb3060c91d9704905a6e827250) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( ojankocb ) // VS6-0501 PCB, has a big metal box, under which there is supposed to be an input custom. It also has a 12 MHz XTAL near it.
|
||||
ROM_REGION( 0x10000, "maincpu", 0 )
|
||||
ROM_LOAD( "11.1p", 0x0000, 0x8000, CRC(a2739aad) SHA1(2d8c3809606a166bbd4ec7b28d7a6cf7dfce87a6) ) // sldh
|
||||
|
||||
ROM_REGION( 0x80000, "banked_roms", 0 )
|
||||
ROM_LOAD( "1.1a", 0x00000, 0x8000, CRC(d40b17eb) SHA1(1e8c16e1562c112ca5150b3187a2d4aa22c1adf0) )
|
||||
ROM_LOAD( "2.1b", 0x08000, 0x8000, CRC(d181172a) SHA1(65d6710464a1f505df705c553558bbf22704359d) )
|
||||
ROM_LOAD( "3.1c", 0x10000, 0x8000, CRC(2e86d5bc) SHA1(0226eb81b31e43325f24b40ab51bce1729bf678c) )
|
||||
@ -985,9 +980,10 @@ ROM_START( ojankoca )
|
||||
ROM_END
|
||||
|
||||
|
||||
GAME( 1986, ojankoc, 0, ojankoc, ojankoc, ojankoc_state, empty_init, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.3)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, ojankoca, ojankoc, ojankoc, ojankoc, ojankoc_state, empty_init, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, ojankoy, 0, ojankoy, ojankoy, ojankoy_state, empty_init, ROT0, "V-System Co.", "Ojanko Yakata (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1987, ojanko2, 0, ojankoy, ojankoy, ojankoy_state, empty_init, ROT0, "V-System Co.", "Ojanko Yakata 2bankan (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1987, ccasino, 0, ccasino, ccasino, ccasino_state, empty_init, ROT0, "V-System Co.", "Chinese Casino [BET] (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, ojankohs, 0, ojankohs, ojankohs, ojankohs_state, empty_init, ROT0, "V-System Co.", "Ojanko High School (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, ojankoc, 0, ojankoc, ojankoc, ojankoc_state, empty_init, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.3, set 1)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, ojankocb, ojankoc, ojankoc, ojankoc, ojankoc_state, empty_init, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.3, set 2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, ojankoca, ojankoc, ojankoc, ojankoc, ojankoc_state, empty_init, ROT0, "V-System Co.", "Ojanko Club (Japan, Program Ver. 1.2)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1986, ojankoy, 0, ojankoy, ojankoy, ojankoy_state, empty_init, ROT0, "V-System Co.", "Ojanko Yakata (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1987, ojanko2, 0, ojankoy, ojankoy, ojankoy_state, empty_init, ROT0, "V-System Co.", "Ojanko Yakata 2bankan (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1987, ccasino, 0, ccasino, ccasino, ccasino_state, empty_init, ROT0, "V-System Co.", "Chinese Casino [BET] (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1988, ojankohs, 0, ojankohs, ojankohs, ojankohs_state, empty_init, ROT0, "V-System Co.", "Ojanko High School (Japan)", MACHINE_SUPPORTS_SAVE )
|
||||
|
@ -23,9 +23,6 @@ public:
|
||||
{ }
|
||||
|
||||
void ojankohs(machine_config &config);
|
||||
void ccasino(machine_config &config);
|
||||
void ojankoc(machine_config &config);
|
||||
void ojankoy(machine_config &config);
|
||||
|
||||
protected:
|
||||
ojankohs_state(const machine_config &mconfig, device_type type, const char *tag, uint32_t vramsize, uint32_t pramsize) :
|
||||
@ -33,107 +30,85 @@ protected:
|
||||
m_videoram(*this, "videoram", vramsize, ENDIANNESS_LITTLE),
|
||||
m_colorram(*this, "colorram", 0x1000, ENDIANNESS_LITTLE),
|
||||
m_paletteram(*this, "paletteram", pramsize, ENDIANNESS_LITTLE),
|
||||
m_mainbank(*this, "mainbank"),
|
||||
m_maincpu(*this, "maincpu"),
|
||||
m_msm(*this, "msm"),
|
||||
m_gfxdecode(*this, "gfxdecode"),
|
||||
m_screen(*this, "screen"),
|
||||
m_palette(*this, "palette"),
|
||||
m_coin(*this, "coin"),
|
||||
m_inputs_p1(*this, {"p1_0", "p1_1", "p1_2", "p1_3"}),
|
||||
m_inputs_p2(*this, {"p2_0", "p2_1", "p2_2", "p2_3"}),
|
||||
m_inputs_p1(*this, "p1_%u", 0U),
|
||||
m_inputs_p2(*this, "p2_%u", 0U),
|
||||
m_inputs_p1_extra(*this, "p1_4"),
|
||||
m_inputs_p2_extra(*this, "p2_4"),
|
||||
m_dsw1(*this, "dsw1"), m_dsw2(*this, "dsw2"),
|
||||
m_dsw3(*this, "dsw3"), m_dsw4(*this, "dsw4")
|
||||
m_dsw(*this, "dsw%u", 1U)
|
||||
{ }
|
||||
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
/* memory pointers */
|
||||
void common_state_saving();
|
||||
|
||||
// memory pointers
|
||||
memory_share_creator<uint8_t> m_videoram;
|
||||
memory_share_creator<uint8_t> m_colorram;
|
||||
memory_share_creator<uint8_t> m_paletteram;
|
||||
required_memory_bank m_mainbank;
|
||||
|
||||
/* video-related */
|
||||
tilemap_t *m_tilemap;
|
||||
// video-related
|
||||
tilemap_t *m_tilemap;
|
||||
bitmap_ind16 m_tmpbitmap;
|
||||
int m_gfxreg;
|
||||
int m_flipscreen;
|
||||
int m_flipscreen_old;
|
||||
int m_scrollx;
|
||||
int m_scrolly;
|
||||
int m_screen_refresh;
|
||||
uint8_t m_gfxreg;
|
||||
uint8_t m_flipscreen;
|
||||
uint8_t m_flipscreen_old;
|
||||
int16_t m_scrollx;
|
||||
int16_t m_scrolly;
|
||||
uint8_t m_screen_refresh;
|
||||
|
||||
/* misc */
|
||||
uint8_t m_port_select;
|
||||
int m_adpcm_reset;
|
||||
int m_adpcm_data;
|
||||
int m_vclk_left;
|
||||
// misc
|
||||
uint8_t m_port_select;
|
||||
uint8_t m_adpcm_reset;
|
||||
int m_adpcm_data;
|
||||
uint8_t m_vclk_left;
|
||||
|
||||
/* devices */
|
||||
// devices
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<msm5205_device> m_msm;
|
||||
optional_device<gfxdecode_device> m_gfxdecode;
|
||||
required_device<screen_device> m_screen;
|
||||
required_device<palette_device> m_palette;
|
||||
|
||||
// I/O ports
|
||||
required_ioport m_coin;
|
||||
required_ioport_array<4> m_inputs_p1;
|
||||
required_ioport_array<4> m_inputs_p2;
|
||||
optional_ioport m_inputs_p1_extra;
|
||||
optional_ioport m_inputs_p2_extra;
|
||||
required_ioport m_dsw1;
|
||||
required_ioport m_dsw2;
|
||||
optional_ioport m_dsw3;
|
||||
optional_ioport m_dsw4;
|
||||
required_ioport_array<2> m_dsw;
|
||||
|
||||
void ojankohs_rombank_w(uint8_t data);
|
||||
void ojankoy_rombank_w(uint8_t data);
|
||||
void ojankohs_msm5205_w(uint8_t data);
|
||||
void ojankoc_ctrl_w(uint8_t data);
|
||||
|
||||
void rombank_w(uint8_t data);
|
||||
void msm5205_w(uint8_t data);
|
||||
void port_select_w(uint8_t data);
|
||||
uint8_t keymatrix_p1_r();
|
||||
uint8_t keymatrix_p2_r();
|
||||
uint8_t ojankoc_keymatrix_p1_r();
|
||||
uint8_t ojankoc_keymatrix_p2_r();
|
||||
uint8_t ccasino_dipsw3_r();
|
||||
uint8_t ccasino_dipsw4_r();
|
||||
void ojankoy_coinctr_w(uint8_t data);
|
||||
void ccasino_coinctr_w(uint8_t data);
|
||||
void ojankohs_palette_w(offs_t offset, uint8_t data);
|
||||
void ccasino_palette_w(offs_t offset, uint8_t data);
|
||||
void ojankoc_palette_w(offs_t offset, uint8_t data);
|
||||
void ojankohs_videoram_w(offs_t offset, uint8_t data);
|
||||
void ojankohs_colorram_w(offs_t offset, uint8_t data);
|
||||
void ojankohs_gfxreg_w(uint8_t data);
|
||||
void ojankohs_flipscreen_w(uint8_t data);
|
||||
void ojankoc_videoram_w(offs_t offset, uint8_t data);
|
||||
void ojankohs_adpcm_reset_w(uint8_t data);
|
||||
uint8_t ojankohs_dipsw1_r();
|
||||
uint8_t ojankohs_dipsw2_r();
|
||||
TILE_GET_INFO_MEMBER(ojankohs_get_tile_info);
|
||||
TILE_GET_INFO_MEMBER(ojankoy_get_tile_info);
|
||||
DECLARE_MACHINE_START(ojankohs);
|
||||
DECLARE_VIDEO_START(ojankohs);
|
||||
DECLARE_MACHINE_START(ojankoy);
|
||||
DECLARE_VIDEO_START(ojankoy);
|
||||
void ojankoy_palette(palette_device &palette) const;
|
||||
DECLARE_VIDEO_START(ccasino);
|
||||
DECLARE_MACHINE_START(ojankoc);
|
||||
DECLARE_VIDEO_START(ojankoc);
|
||||
DECLARE_MACHINE_START(common);
|
||||
uint32_t screen_update_ojankohs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
uint32_t screen_update_ojankoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void ojankoc_flipscreen(int data);
|
||||
DECLARE_WRITE_LINE_MEMBER(ojankohs_adpcm_int);
|
||||
void videoram_w(offs_t offset, uint8_t data);
|
||||
void colorram_w(offs_t offset, uint8_t data);
|
||||
void flipscreen_w(uint8_t data);
|
||||
void adpcm_reset_w(uint8_t data);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
DECLARE_WRITE_LINE_MEMBER(adpcm_int);
|
||||
|
||||
void ccasino_io_map(address_map &map);
|
||||
void ojankoc_io_map(address_map &map);
|
||||
void ojankoc_map(address_map &map);
|
||||
void ojankohs_io_map(address_map &map);
|
||||
void ojankohs_map(address_map &map);
|
||||
void ojankoy_io_map(address_map &map);
|
||||
void ojankoy_map(address_map &map);
|
||||
private:
|
||||
void palette_w(offs_t offset, uint8_t data);
|
||||
uint8_t dipsw1_r();
|
||||
uint8_t dipsw2_r();
|
||||
void gfxreg_w(uint8_t data);
|
||||
|
||||
void io_map(address_map &map);
|
||||
void map(address_map &map);
|
||||
};
|
||||
|
||||
class ojankoy_state : public ojankohs_state
|
||||
@ -142,14 +117,45 @@ public:
|
||||
ojankoy_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
ojankohs_state(mconfig, type, tag, 0x2000, 0x800)
|
||||
{ }
|
||||
|
||||
void ojankoy(machine_config &config);
|
||||
|
||||
protected:
|
||||
ojankoy_state(const machine_config &mconfig, device_type type, const char *tag, uint32_t vramsize, uint32_t pramsize) :
|
||||
ojankohs_state(mconfig, type, tag, vramsize, pramsize)
|
||||
{ }
|
||||
|
||||
virtual void video_start() override;
|
||||
|
||||
void map(address_map &map);
|
||||
|
||||
void rombank_w(uint8_t data);
|
||||
|
||||
private:
|
||||
void coinctr_w(uint8_t data);
|
||||
TILE_GET_INFO_MEMBER(get_tile_info);
|
||||
void palette(palette_device &palette) const;
|
||||
void io_map(address_map &map);
|
||||
};
|
||||
|
||||
class ccasino_state : public ojankohs_state
|
||||
class ccasino_state : public ojankoy_state
|
||||
{
|
||||
public:
|
||||
ccasino_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
ojankohs_state(mconfig, type, tag, 0x2000, 0x800)
|
||||
ojankoy_state(mconfig, type, tag, 0x2000, 0x800),
|
||||
m_extra_dsw(*this, "dsw%u", 3U)
|
||||
{ }
|
||||
|
||||
void ccasino(machine_config &config);
|
||||
|
||||
private:
|
||||
required_ioport_array<2> m_extra_dsw;
|
||||
|
||||
uint8_t dipsw3_r();
|
||||
uint8_t dipsw4_r();
|
||||
void coinctr_w(uint8_t data);
|
||||
void palette_w(offs_t offset, uint8_t data);
|
||||
void io_map(address_map &map);
|
||||
};
|
||||
|
||||
class ojankoc_state : public ojankohs_state
|
||||
@ -158,6 +164,23 @@ public:
|
||||
ojankoc_state(const machine_config &mconfig, device_type type, const char *tag) :
|
||||
ojankohs_state(mconfig, type, tag, 0x8000, 0x20)
|
||||
{ }
|
||||
|
||||
void ojankoc(machine_config &config);
|
||||
|
||||
protected:
|
||||
virtual void machine_start() override;
|
||||
virtual void video_start() override;
|
||||
|
||||
private:
|
||||
void ctrl_w(uint8_t data);
|
||||
uint8_t keymatrix_p1_r();
|
||||
uint8_t keymatrix_p2_r();
|
||||
void palette_w(offs_t offset, uint8_t data);
|
||||
void videoram_w(offs_t offset, uint8_t data);
|
||||
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
|
||||
void flipscreen(uint8_t data);
|
||||
void io_map(address_map &map);
|
||||
void map(address_map &map);
|
||||
};
|
||||
|
||||
#endif // MAME_INCLUDES_OJANKOHS_H
|
||||
|
@ -33203,6 +33203,7 @@ ccasino // [1987] V-System Co. (Japan)
|
||||
ojanko2 // [1987] V-System Co. (Japan)
|
||||
ojankoc // [1986] V-System Co. (Japan)
|
||||
ojankoca // [1986] V-System Co. (Japan)
|
||||
ojankocb // [1986] V-System Co. (Japan)
|
||||
ojankohs // [1988] V-System Co. (Japan)
|
||||
ojankoy // [1986] V-System Co. (Japan)
|
||||
|
||||
|
@ -19,18 +19,17 @@
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
void ojankohs_state::ojankoy_palette(palette_device &palette) const
|
||||
void ojankoy_state::palette(palette_device &palette) const
|
||||
{
|
||||
const uint8_t *color_prom = memregion("proms")->base();
|
||||
int bit0, bit1, bit2, bit3, bit4;
|
||||
|
||||
for (int i = 0; i < palette.entries(); i++)
|
||||
{
|
||||
bit0 = BIT(color_prom[0], 2);
|
||||
bit1 = BIT(color_prom[0], 3);
|
||||
bit2 = BIT(color_prom[0], 4);
|
||||
bit3 = BIT(color_prom[0], 5);
|
||||
bit4 = BIT(color_prom[0], 6);
|
||||
int bit0 = BIT(color_prom[0], 2);
|
||||
int bit1 = BIT(color_prom[0], 3);
|
||||
int bit2 = BIT(color_prom[0], 4);
|
||||
int bit3 = BIT(color_prom[0], 5);
|
||||
int bit4 = BIT(color_prom[0], 6);
|
||||
int const r = 0x08 * bit0 + 0x11 * bit1 + 0x21 * bit2 + 0x43 * bit3 + 0x82 * bit4;
|
||||
|
||||
bit0 = BIT(color_prom[palette.entries()], 5);
|
||||
@ -52,7 +51,7 @@ void ojankohs_state::ojankoy_palette(palette_device &palette) const
|
||||
}
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankohs_palette_w(offs_t offset, uint8_t data)
|
||||
void ojankohs_state::palette_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_paletteram[offset] = data;
|
||||
|
||||
@ -65,7 +64,7 @@ void ojankohs_state::ojankohs_palette_w(offs_t offset, uint8_t data)
|
||||
m_palette->set_pen_color(offset >> 1, pal5bit(r), pal5bit(g), pal5bit(b));
|
||||
}
|
||||
|
||||
void ojankohs_state::ccasino_palette_w(offs_t offset, uint8_t data)
|
||||
void ccasino_state::palette_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
offset = bitswap<11>(offset, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8);
|
||||
|
||||
@ -80,7 +79,7 @@ void ojankohs_state::ccasino_palette_w(offs_t offset, uint8_t data)
|
||||
m_palette->set_pen_color(offset >> 1, pal5bit(r), pal5bit(g), pal5bit(b));
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankoc_palette_w(offs_t offset, uint8_t data)
|
||||
void ojankoc_state::palette_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
if (m_paletteram[offset] != data)
|
||||
{
|
||||
@ -104,19 +103,19 @@ void ojankohs_state::ojankoc_palette_w(offs_t offset, uint8_t data)
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
void ojankohs_state::ojankohs_videoram_w(offs_t offset, uint8_t data)
|
||||
void ojankohs_state::videoram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_videoram[offset] = data;
|
||||
m_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankohs_colorram_w(offs_t offset, uint8_t data)
|
||||
void ojankohs_state::colorram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_colorram[offset] = data;
|
||||
m_tilemap->mark_tile_dirty(offset);
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankohs_gfxreg_w(uint8_t data)
|
||||
void ojankohs_state::gfxreg_w(uint8_t data)
|
||||
{
|
||||
if (m_gfxreg != data)
|
||||
{
|
||||
@ -125,7 +124,7 @@ void ojankohs_state::ojankohs_gfxreg_w(uint8_t data)
|
||||
}
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankohs_flipscreen_w(uint8_t data)
|
||||
void ojankohs_state::flipscreen_w(uint8_t data)
|
||||
{
|
||||
if (m_flipscreen != BIT(data, 0))
|
||||
{
|
||||
@ -146,7 +145,7 @@ void ojankohs_state::ojankohs_flipscreen_w(uint8_t data)
|
||||
}
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(ojankohs_state::ojankohs_get_tile_info)
|
||||
TILE_GET_INFO_MEMBER(ojankohs_state::get_tile_info)
|
||||
{
|
||||
int tile = m_videoram[tile_index] | ((m_colorram[tile_index] & 0x0f) << 8);
|
||||
int color = (m_colorram[tile_index] & 0xe0) >> 5;
|
||||
@ -160,7 +159,7 @@ TILE_GET_INFO_MEMBER(ojankohs_state::ojankohs_get_tile_info)
|
||||
tileinfo.set(0, tile, color, 0);
|
||||
}
|
||||
|
||||
TILE_GET_INFO_MEMBER(ojankohs_state::ojankoy_get_tile_info)
|
||||
TILE_GET_INFO_MEMBER(ojankoy_state::get_tile_info)
|
||||
{
|
||||
int tile = m_videoram[tile_index] | (m_videoram[tile_index + 0x1000] << 8);
|
||||
int color = m_colorram[tile_index] & 0x3f;
|
||||
@ -177,36 +176,33 @@ TILE_GET_INFO_MEMBER(ojankohs_state::ojankoy_get_tile_info)
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
void ojankohs_state::ojankoc_flipscreen(int data)
|
||||
void ojankoc_state::flipscreen(uint8_t data)
|
||||
{
|
||||
int x, y;
|
||||
uint8_t color1, color2;
|
||||
|
||||
m_flipscreen = BIT(data, 7);
|
||||
|
||||
if (m_flipscreen == m_flipscreen_old)
|
||||
return;
|
||||
|
||||
for (y = 0; y < 0x40; y++)
|
||||
for (int y = 0; y < 0x40; y++)
|
||||
{
|
||||
for (x = 0; x < 0x100; x++)
|
||||
for (int x = 0; x < 0x100; x++)
|
||||
{
|
||||
color1 = m_videoram[0x0000 + ((y * 256) + x)];
|
||||
color2 = m_videoram[0x3fff - ((y * 256) + x)];
|
||||
ojankoc_videoram_w(0x0000 + ((y * 256) + x), color2);
|
||||
ojankoc_videoram_w(0x3fff - ((y * 256) + x), color1);
|
||||
uint8_t color1 = m_videoram[0x0000 + ((y * 256) + x)];
|
||||
uint8_t color2 = m_videoram[0x3fff - ((y * 256) + x)];
|
||||
videoram_w(0x0000 + ((y * 256) + x), color2);
|
||||
videoram_w(0x3fff - ((y * 256) + x), color1);
|
||||
|
||||
color1 = m_videoram[0x4000 + ((y * 256) + x)];
|
||||
color2 = m_videoram[0x7fff - ((y * 256) + x)];
|
||||
ojankoc_videoram_w(0x4000 + ((y * 256) + x), color2);
|
||||
ojankoc_videoram_w(0x7fff - ((y * 256) + x), color1);
|
||||
videoram_w(0x4000 + ((y * 256) + x), color2);
|
||||
videoram_w(0x7fff - ((y * 256) + x), color1);
|
||||
}
|
||||
}
|
||||
|
||||
m_flipscreen_old = m_flipscreen;
|
||||
}
|
||||
|
||||
void ojankohs_state::ojankoc_videoram_w(offs_t offset, uint8_t data)
|
||||
void ojankoc_state::videoram_w(offs_t offset, uint8_t data)
|
||||
{
|
||||
m_videoram[offset] = data;
|
||||
|
||||
@ -245,22 +241,17 @@ void ojankohs_state::ojankoc_videoram_w(offs_t offset, uint8_t data)
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
VIDEO_START_MEMBER(ojankohs_state,ojankohs)
|
||||
void ojankohs_state::video_start()
|
||||
{
|
||||
m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ojankohs_state::ojankohs_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
|
||||
m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ojankohs_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(ojankohs_state,ojankoy)
|
||||
void ojankoy_state::video_start()
|
||||
{
|
||||
m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ojankohs_state::ojankoy_get_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
|
||||
m_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(*this, FUNC(ojankoy_state::get_tile_info)), TILEMAP_SCAN_ROWS, 8, 4, 64, 64);
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(ojankohs_state,ccasino)
|
||||
{
|
||||
VIDEO_START_CALL_MEMBER(ojankoy);
|
||||
}
|
||||
|
||||
VIDEO_START_MEMBER(ojankohs_state,ojankoc)
|
||||
void ojankoc_state::video_start()
|
||||
{
|
||||
m_screen->register_screen_bitmap(m_tmpbitmap);
|
||||
|
||||
@ -274,7 +265,7 @@ VIDEO_START_MEMBER(ojankohs_state,ojankoc)
|
||||
|
||||
******************************************************************************/
|
||||
|
||||
uint32_t ojankohs_state::screen_update_ojankohs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
uint32_t ojankohs_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
m_tilemap->set_scrollx(0, m_scrollx);
|
||||
m_tilemap->set_scrolly(0, m_scrolly);
|
||||
@ -283,16 +274,14 @@ uint32_t ojankohs_state::screen_update_ojankohs(screen_device &screen, bitmap_in
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t ojankohs_state::screen_update_ojankoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
uint32_t ojankoc_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
|
||||
{
|
||||
int offs;
|
||||
|
||||
if (m_screen_refresh)
|
||||
{
|
||||
/* redraw bitmap */
|
||||
for (offs = 0; offs < 0x8000; offs++)
|
||||
// redraw bitmap
|
||||
for (int offs = 0; offs < 0x8000; offs++)
|
||||
{
|
||||
ojankoc_videoram_w(offs, m_videoram[offs]);
|
||||
videoram_w(offs, m_videoram[offs]);
|
||||
}
|
||||
m_screen_refresh = 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user