diff options
author | Angelo Salese <angelosa@users.noreply.github.com> | 2014-06-09 00:05:17 +0000 |
---|---|---|
committer | Angelo Salese <angelosa@users.noreply.github.com> | 2014-06-09 00:05:17 +0000 |
commit | 878e004fc97ef2642768a20ecc096febfaf71c17 (patch) | |
tree | 7346894322e5a8ce7c25658bd13604dae416ebf1 /src | |
parent | f3b2146a994c83931fa52d01d3f932d6d49e1c00 (diff) |
Added Vertical Display bit in Magic Card, nw
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/magicard.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/mame/drivers/magicard.c b/src/mame/drivers/magicard.c index bd9f485963e..4e7e0f5ecff 100644 --- a/src/mame/drivers/magicard.c +++ b/src/mame/drivers/magicard.c @@ -187,6 +187,7 @@ public: m_scc68070_dma_ch2_regs(*this, "scc_dma2_regs"), m_scc68070_mmu_regs(*this, "scc_mmu_regs"), m_maincpu(*this, "maincpu"), + m_screen(*this, "screen"), m_palette(*this, "palette") { } required_shared_ptr<UINT16> m_magicram; @@ -224,6 +225,7 @@ public: UINT32 screen_update_magicard(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(magicard_irq); required_device<cpu_device> m_maincpu; + required_device<screen_device> m_screen; required_device<palette_device> m_palette; }; @@ -503,8 +505,13 @@ READ16_MEMBER(magicard_state::philips_66470_r) { switch(offset) { -// case 0/2: -// return machine().rand(); //TODO + case 0/2: + { + UINT8 vdisp; + vdisp = m_screen->vpos() < 256; + + return (m_pcab_vregs[offset] & 0xff7f) | vdisp<<7; //TODO + } } //printf("[%04x]\n",offset*2); @@ -651,7 +658,7 @@ WRITE16_MEMBER(magicard_state::scc68070_mmu_w) static ADDRESS_MAP_START( magicard_mem, AS_PROGRAM, 16, magicard_state ) // ADDRESS_MAP_GLOBAL_MASK(0x1fffff) - AM_RANGE(0x00000000, 0x0017ffff) AM_MIRROR(0x7fe00000) AM_RAM AM_SHARE("magicram") /*only 0-7ffff accessed in Magic Card*/ + AM_RANGE(0x00000000, 0x001ffbff) AM_MIRROR(0x7fe00000) AM_RAM AM_SHARE("magicram") /*only 0-7ffff accessed in Magic Card*/ AM_RANGE(0x00180000, 0x001ffbff) AM_MIRROR(0x7fe00000) AM_RAM AM_REGION("maincpu", 0) /* 001ffc00-001ffdff System I/O */ AM_RANGE(0x001ffc00, 0x001ffc01) AM_MIRROR(0x7fe00000) AM_READ(test_r) @@ -717,7 +724,7 @@ static MACHINE_CONFIG_START( magicard, magicard_state ) MCFG_CPU_VBLANK_INT_DRIVER("screen", magicard_state, magicard_irq) /* no interrupts? (it erases the vectors..) */ MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(60) + MCFG_SCREEN_REFRESH_RATE(50) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE(400, 300) MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) //dynamic resolution,TODO |