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
This commit is contained in:
Aaron Giles 2008-07-06 06:25:38 +00:00
parent 50c5ee82e5
commit 17c2294238
2 changed files with 35 additions and 8 deletions

View File

@ -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)

View File

@ -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;