blob: 5952773326e461616731e0e33113216a4069dd1e (
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
typedef void (*tgp_func)(running_machine &machine);
enum {FIFO_SIZE = 256};
enum {MAT_STACK_SIZE = 32};
class model1_state : public driver_device
{
public:
model1_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag) { }
struct view *m_view;
struct point *m_pointdb;
struct point *m_pointpt;
struct quad_m1 *m_quaddb;
struct quad_m1 *m_quadpt;
struct quad_m1 **m_quadind;
int m_sound_irq;
int m_to_68k[8];
int m_fifo_wptr;
int m_fifo_rptr;
int m_last_irq;
UINT16 *m_mr;
UINT16 *m_mr2;
int m_dump;
UINT16 *m_display_list0;
UINT16 *m_display_list1;
UINT16 *m_color_xlat;
offs_t m_pushpc;
int m_fifoin_rpos;
int m_fifoin_wpos;
UINT32 m_fifoin_data[FIFO_SIZE];
int m_swa;
int m_fifoin_cbcount;
tgp_func m_fifoin_cb;
INT32 m_fifoout_rpos;
INT32 m_fifoout_wpos;
UINT32 m_fifoout_data[FIFO_SIZE];
UINT32 m_list_length;
float m_cmat[12];
float m_mat_stack[MAT_STACK_SIZE][12];
float m_mat_vector[21][12];
INT32 m_mat_stack_pos;
float m_acc;
float m_tgp_vf_xmin;
float m_tgp_vf_xmax;
float m_tgp_vf_zmin;
float m_tgp_vf_zmax;
float m_tgp_vf_ygnd;
float m_tgp_vf_yflr;
float m_tgp_vf_yjmp;
float m_tgp_vr_circx;
float m_tgp_vr_circy;
float m_tgp_vr_circrad;
float m_tgp_vr_cbox[12];
int m_tgp_vr_select;
UINT16 m_ram_adr;
UINT16 m_ram_latch[2];
UINT16 m_ram_scanadr;
UINT32 *m_ram_data;
float m_tgp_vr_base[4];
int m_puuu;
int m_ccount;
UINT32 m_copro_r;
UINT32 m_copro_w;
int m_copro_fifoout_rpos;
int m_copro_fifoout_wpos;
UINT32 m_copro_fifoout_data[FIFO_SIZE];
int m_copro_fifoout_num;
int m_copro_fifoin_rpos;
int m_copro_fifoin_wpos;
UINT32 m_copro_fifoin_data[FIFO_SIZE];
int m_copro_fifoin_num;
UINT32 m_vr_r;
UINT32 m_vr_w;
UINT16 m_listctl[2];
UINT16 *m_glist;
int m_render_done;
UINT16 *m_tgp_ram;
UINT16 *m_paletteram16;
UINT32 *m_poly_rom;
UINT32 *m_poly_ram;
};
/*----------- defined in machine/model1.c -----------*/
extern const mb86233_cpu_core model1_vr_tgp_config;
READ16_HANDLER( model1_tgp_copro_r );
WRITE16_HANDLER( model1_tgp_copro_w );
READ16_HANDLER( model1_tgp_copro_adr_r );
WRITE16_HANDLER( model1_tgp_copro_adr_w );
READ16_HANDLER( model1_tgp_copro_ram_r );
WRITE16_HANDLER( model1_tgp_copro_ram_w );
READ16_HANDLER( model1_vr_tgp_r );
WRITE16_HANDLER( model1_vr_tgp_w );
READ16_HANDLER( model1_tgp_vr_adr_r );
WRITE16_HANDLER( model1_tgp_vr_adr_w );
READ16_HANDLER( model1_vr_tgp_ram_r );
WRITE16_HANDLER( model1_vr_tgp_ram_w );
ADDRESS_MAP_EXTERN( model1_vr_tgp_map, 32 );
MACHINE_START( model1 );
void model1_vr_tgp_reset( running_machine &machine );
void model1_tgp_reset(running_machine &machine, int swa);
/*----------- defined in video/model1.c -----------*/
VIDEO_START(model1);
SCREEN_UPDATE(model1);
SCREEN_EOF(model1);
READ16_HANDLER( model1_listctl_r );
WRITE16_HANDLER( model1_listctl_w );
|