blob: 5da4c16879f5d0f9a32a679cb95f6c31692c1b9a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
/**
* @file namcos21.h
*/
#define NAMCOS21_POLY_FRAME_WIDTH 496
#define NAMCOS21_POLY_FRAME_HEIGHT 480
#define WINRUN_MAX_POLY_PARAM (1+256*3)
#define DSP_BUF_MAX (4096*12)
struct dsp_state
{
unsigned masterSourceAddr;
UINT16 slaveInputBuffer[DSP_BUF_MAX];
unsigned slaveBytesAvailable;
unsigned slaveBytesAdvertised;
unsigned slaveInputStart;
UINT16 slaveOutputBuffer[DSP_BUF_MAX];
unsigned slaveOutputSize;
UINT16 masterDirectDrawBuffer[256];
unsigned masterDirectDrawSize;
int masterFinished;
int slaveActive;
};
class namcos21_state : public driver_device
{
public:
namcos21_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
UINT8 *m_videoram;
UINT16 *m_winrun_dspbios;
UINT16 *m_winrun_dspcomram;
UINT16 m_winrun_poly_buf[WINRUN_MAX_POLY_PARAM];
int m_winrun_poly_index;
UINT32 m_winrun_pointrom_addr;
UINT16 *m_winrun_polydata;
int m_winrun_dsp_alive;
UINT16 *m_winrun_gpucomram;
UINT16 m_winrun_dspcomram_control[8];
UINT16 m_video_enable;
UINT8 *m_pointram;
int m_pointram_idx;
UINT16 *m_dspram16;
UINT16 *m_mpDataROM;
UINT16 *m_mpSharedRAM1;
UINT8 *m_mpDualPortRAM;
UINT16 m_pointram_control;
dsp_state *m_mpDspState;
int m_mbNeedsKickstart;
UINT16 *m_master_dsp_code;
UINT32 m_pointrom_idx;
UINT8 m_mPointRomMSB;
int m_mbPointRomDataAvailable;
int m_irq_enable;
UINT8 m_depthcue[2][0x400];
UINT16 *m_mpPolyFrameBufferPens;
UINT16 *m_mpPolyFrameBufferZ;
UINT16 *m_mpPolyFrameBufferPens2;
UINT16 *m_mpPolyFrameBufferZ2;
UINT16 m_winrun_color;
UINT16 m_winrun_gpu_register[0x10/2];
};
/*----------- defined in video/namcos21.c -----------*/
extern void namcos21_ClearPolyFrameBuffer( running_machine &machine );
extern void namcos21_DrawQuad( running_machine &machine, int sx[4], int sy[4], int zcode[4], int color );
extern READ16_HANDLER(winrun_gpu_color_r);
extern WRITE16_HANDLER(winrun_gpu_color_w);
extern READ16_HANDLER(winrun_gpu_videoram_r);
extern WRITE16_HANDLER(winrun_gpu_videoram_w);
extern READ16_HANDLER(winrun_gpu_register_r);
extern WRITE16_HANDLER(winrun_gpu_register_w);
extern VIDEO_START( namcos21 ) ;
extern SCREEN_UPDATE( namcos21 );
|