From 17c2294238cc5beb76609086a895c8f51c98f841 Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Sun, 6 Jul 2008 06:25:38 +0000 Subject: [PATCH] From: naibo zhang [mailto:naibo_zhang@hotmail.com] Sent: Saturday, July 05, 2008 4:46 PM To: submit@mamedev.org Subject: An improved namcos21 driver with DRIVER'S EYES works(0125u9) 2008/06/11, by Naibo(translated to English by Mameplus team) Driver's Eyes works, -the communication work between CPU and 3D DSP should be limited to the master M68000, if the address mapping is done in the shared memory, master CPU would be disturbed by the slave one. -DIP Switches DIP3 ON for Screen on the left DIP4 ON for Screen on the right should not toggle on both -The left, center and right screens have separate programs and boards, each would work independantly. About projection angles of left and right screen, the angle is correct on 'DRIVER'S EYES' title screen, however in the tracks of demo mode it doesn't seem correct. -On demo screen, should fog effects be turned off? -The game also features a pretty nice 2D sprite layer, which still doesn't show up yet. it is known that the CPU does constantly feed the 2D video memory some meaningful and logical data. Naibo --- src/mame/drivers/namcos21.c | 31 +++++++++++++++++++++++++------ src/mame/video/namcos21.c | 12 ++++++++++-- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c index 624477c94ca..809ad4d3c3d 100644 --- a/src/mame/drivers/namcos21.c +++ b/src/mame/drivers/namcos21.c @@ -1,4 +1,22 @@ /** +2008/06/11, by Naibo(translated to English by Mameplus team): +Driver's Eyes works, + -the communication work between CPU and 3D DSP should be limited to the master M68000, + if the address mapping is done in the shared memory, master CPU would be disturbed by the slave one. + + -DIP Switches + DIP3 ON for Screen on the left + DIP4 ON for Screen on the right + should not toggle on both + + -The left, center and right screens have separate programs and boards, each would work independantly. + About projection angles of left and right screen, the angle is correct on "DRIVER'S EYES" title screen, however in the tracks of demo mode it doesn't seem correct. + + -On demo screen, should fog effects be turned off? + + -The game also features a pretty nice 2D sprite layer, which still doesn't show up yet. + it is known that the CPU does constantly feed the 2D video memory some meaningful and logical data. + Namco System 21 Winning Run @@ -1450,6 +1468,13 @@ static ADDRESS_MAP_START( driveyes_68k_master, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0x100000, 0x10ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) /* private work RAM */ AM_RANGE(0x180000, 0x183fff) AM_READ(NAMCOS2_68K_eeprom_R) AM_WRITE(NAMCOS2_68K_eeprom_W)// AM_BASE(&namcos2_eeprom) AM_SIZE(&namcos2_eeprom_size) AM_RANGE(0x1c0000, 0x1fffff) AM_READ(namcos2_68k_master_C148_r) AM_WRITE(namcos2_68k_master_C148_w) + + AM_RANGE(0x250000, 0x25ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE( &winrun_polydata ) + AM_RANGE(0x280000, 0x281fff) AM_WRITE(winrun_dspbios_w) AM_BASE(&winrun_dspbios) + AM_RANGE(0x380000, 0x38000f) AM_READ(winrun_dspcomram_control_r) AM_WRITE(winrun_dspcomram_control_w) + AM_RANGE(0x3c0000, 0x3c1fff) AM_READ(winrun_68k_dspcomram_r) AM_WRITE(winrun_68k_dspcomram_w) + AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w) + AM_RANGE(0x440000, 0x440001) AM_READ(pointram_data_r) AM_WRITE(pointram_data_w) ADDRESS_MAP_END static ADDRESS_MAP_START( driveyes_68k_slave, ADDRESS_SPACE_PROGRAM, 16 ) @@ -1459,12 +1484,6 @@ static ADDRESS_MAP_START( driveyes_68k_slave, ADDRESS_SPACE_PROGRAM, 16 ) ADDRESS_MAP_END static ADDRESS_MAP_START( driveyes_68k_common, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x250000, 0x25ffff) AM_READ(SMH_RAM) AM_WRITE(SMH_RAM) AM_BASE( &winrun_polydata ) - AM_RANGE(0x280000, 0x281fff) AM_WRITE(winrun_dspbios_w) AM_BASE(&winrun_dspbios) - AM_RANGE(0x380000, 0x38000f) AM_READ(winrun_dspcomram_control_r) AM_WRITE(winrun_dspcomram_control_w) - AM_RANGE(0x3c0000, 0x3c1fff) AM_READ(winrun_68k_dspcomram_r) AM_WRITE(winrun_68k_dspcomram_w) - AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w) - AM_RANGE(0x440000, 0x440001) AM_READ(pointram_data_r) AM_WRITE(pointram_data_w) AM_RANGE(0x700000, 0x71ffff) AM_READ(namco_obj16_r) AM_WRITE(namco_obj16_w) AM_RANGE(0x720000, 0x720007) AM_READ(namco_spritepos16_r) AM_WRITE(namco_spritepos16_w) AM_RANGE(0x740000, 0x75ffff) AM_READ(paletteram16_r ) AM_WRITE(paletteram16_w) AM_BASE(&paletteram16) diff --git a/src/mame/video/namcos21.c b/src/mame/video/namcos21.c index 3cee3ec1519..158608bdce8 100644 --- a/src/mame/video/namcos21.c +++ b/src/mame/video/namcos21.c @@ -298,6 +298,11 @@ renderscanline_flat( const edge *e1, const edge *e2, int sy, unsigned color, int depth = (zz>>10)*0x100; pen += depth; } + else if( namcos2_gametype == NAMCOS21_DRIVERS_EYES ) + { + depth = (zz>>10)*0x100; + pen -= depth; + } else { depth = (zz>>11)*0x200; @@ -443,11 +448,14 @@ namcos21_DrawQuad( int sx[4], int sy[4], int zcode[4], int color ) 0x4000..0x5fff polygon palette bank1 (0x10 sets of 0x200 colors or 0x20 sets of 0x100 colors) 0x6000..0x7fff polygon palette bank2 (0x10 sets of 0x200 colors or 0x20 sets of 0x100 colors) */ - if( namcos2_gametype == NAMCOS21_WINRUN91 || - namcos2_gametype == NAMCOS21_DRIVERS_EYES ) + if( namcos2_gametype == NAMCOS21_WINRUN91 ) { color = 0x4000|(color&0xff); } + else if ( namcos2_gametype == NAMCOS21_DRIVERS_EYES ) + { + color = 0x3f00|(color&0xff); + } else { /* map color code to hardware pen */ int code = color>>8;