Hooked temp drawing functions

This commit is contained in:
Angelo Salese 2012-07-16 03:44:19 +00:00
parent d1aa8374fe
commit 83e51e293f

View File

@ -11,16 +11,7 @@
Thanks to palindrome for PCB scans.
4e226
2bfb8 <- 0x109a7c / 0x109a84 VRAM DATA ROM
0x4e5f6
0x4ef08
0x10a1d4
...
0x55e42
0x38606
*/
#include "emu.h"
@ -39,7 +30,7 @@ public:
m_vram(*this, "vram")
{ }
optional_shared_ptr<UINT8> m_vram;
optional_shared_ptr<UINT32> m_vram;
DECLARE_READ32_MEMBER(eeprom_r);
DECLARE_WRITE32_MEMBER(eeprom_w);
DECLARE_WRITE8_MEMBER(kongambl_ff_w);
@ -64,6 +55,41 @@ static VIDEO_START(kongambl)
static SCREEN_UPDATE_IND16(kongambl)
{
#if CUSTOM_DRAW
kongambl_state *state = screen.machine().driver_data<kongambl_state>();
const gfx_element *gfx = screen.machine().gfx[0];
UINT32 count;
count = 0;
for (int y=0;y<64;y++)
{
for (int x=0;x<128;x++)
{
UINT32 tile = state->m_vram[count] & 0xffff;
if(screen.machine().primary_screen->visible_area().contains(x*8, y*8))
drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8);
count++;
}
}
count = 0x8000/4;
for (int y=0;y<64;y++)
{
for (int x=0;x<128;x++)
{
UINT32 tile = state->m_vram[count] & 0xffff;
if(screen.machine().primary_screen->visible_area().contains(x*8, y*8))
drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8,0);
count++;
}
}
#else
device_t *k056832 = screen.machine().device("k056832");
@ -112,6 +138,11 @@ static READ32_HANDLER( test_r )
return -1;//space->machine().rand();
}
static READ32_HANDLER( rng_r )
{
return space->machine().rand();
}
WRITE8_MEMBER(kongambl_state::kongambl_ff_w)
{
/* enables thru 0->1 */
@ -162,11 +193,14 @@ static ADDRESS_MAP_START( kongambl_map, AS_PROGRAM, 32, kongambl_state )
AM_RANGE(0x4d0000, 0x4d0003) AM_WRITE8(kongambl_ff_w,0xff000000)
AM_RANGE(0x500380, 0x500383) AM_READ_LEGACY(test_r)
AM_RANGE(0x500400, 0x500403) AM_NOP //dual port?
AM_RANGE(0x500420, 0x500423) AM_NOP //dual port?
AM_RANGE(0x500500, 0x500503) AM_NOP // reads sound ROM in here, polled from m68k?
AM_RANGE(0x500000, 0x5007ff) AM_RAM
// AM_RANGE(0x500400, 0x500403) AM_NOP //dual port?
// AM_RANGE(0x500420, 0x500423) AM_NOP //dual port?
// AM_RANGE(0x500500, 0x500503) AM_NOP // reads sound ROM in here, polled from m68k?
AM_RANGE(0x580000, 0x580007) AM_READ_LEGACY(test_r)
AM_RANGE(0x600000, 0x60000f) AM_READ_LEGACY(test_r)
AM_RANGE(0x700000, 0x700003) AM_READ(eeprom_r)
AM_RANGE(0x700004, 0x700007) AM_READ_PORT("IN1")
AM_RANGE(0x700008, 0x70000b) AM_READ_PORT("IN3")
@ -221,10 +255,10 @@ static INPUT_PORTS_START( kongambl )
PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) // "RESET SIGNAL"
PORT_DIPNAME( 0x04, 0x00, "Reset Backup RAM" )
PORT_DIPSETTING( 0x00, DEF_STR( Yes ) )
PORT_DIPSETTING( 0x04, DEF_STR( No ) )
PORT_DIPNAME( 0x08, 0x08, "Reset Signal" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) )
@ -244,22 +278,22 @@ static INPUT_PORTS_START( kongambl )
PORT_DIPNAME( 0x01, 0x00, "SYSB" )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x01, DEF_STR( On ) )
PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) // "NO BATTERY"
PORT_DIPNAME( 0x02, 0x02, "No Battery - 1" ) // "NO BATTERY"
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x02, DEF_STR( On ) )
PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) // "NO BATTERY"
PORT_DIPNAME( 0x04, 0x04, "No Battery - 2" ) // "NO BATTERY"
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x04, DEF_STR( On ) )
PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x08, DEF_STR( On ) )
PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) // IFU
PORT_DIPNAME( 0x10, 0x00, "IFU signal" ) // IFU
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x10, DEF_STR( On ) )
PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) // LCU
PORT_DIPNAME( 0x20, 0x00, "LCU signal" ) // LCU
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x20, DEF_STR( On ) )
PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) // VSB
PORT_DIPNAME( 0x40, 0x00, "VSB signal" ) // VSB
PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
PORT_DIPSETTING( 0x40, DEF_STR( On ) )
PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) )
@ -546,7 +580,7 @@ static TIMER_DEVICE_CALLBACK( kongambl_vblank )
kongambl_state *state = timer.machine().driver_data<kongambl_state>();
int scanline = param;
if(scanline == 256)
if(scanline == 512)
device_set_input_line(state->m_maincpu, 1, HOLD_LINE); // vblank?
if(scanline == 0)
@ -567,8 +601,8 @@ static MACHINE_CONFIG_START( kongambl, kongambl_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(64*8, 32*8+16)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
MCFG_SCREEN_SIZE(96*8, 64*8+16)
MCFG_SCREEN_VISIBLE_AREA(0*8, 80*8-1, 0*8, 64*8-1)
MCFG_SCREEN_UPDATE_STATIC(kongambl)
MCFG_PALETTE_LENGTH(0x8000)