Previous 199869 Revisions Next

r32148 Wednesday 17th September, 2014 at 10:53:41 UTC by David Haywood
by request, save states (nw)
[src/mame/drivers]raiden2.c
[src/mame/includes]raiden2.h
[src/mame/machine]raiden2cop.c

trunk/src/mame/machine/raiden2cop.c
r32147r32148
1212
1313raiden2cop_device::raiden2cop_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
1414   : device_t(mconfig, RAIDEN2COP, "RAIDEN2COP", tag, owner, clock, "raiden2cop", __FILE__),
15   cop_dma_v1(0),
16   cop_dma_v2(0),
17   cop_dma_mode(0),
18   cop_dma_adr_rel(0),
19   pal_brightness_val(0),
20   pal_brightness_mode(0),
1521   m_videoramout_cb(*this),
1622   m_palette(*this, ":palette")
1723{
24     memset(cop_dma_src, 0, sizeof(UINT16)*(0x200));
25     memset(cop_dma_dst, 0, sizeof(UINT16)*(0x200));
26     memset(cop_dma_size, 0, sizeof(UINT16)*(0x200));
1827}
1928
2029
r32147r32148
2332//-------------------------------------------------
2433void raiden2cop_device::device_start()
2534{
35   save_item(NAME(cop_dma_v1));
36   save_item(NAME(cop_dma_v2));
37   save_item(NAME(cop_dma_mode));
38   save_item(NAME(cop_dma_adr_rel));
39   save_item(NAME(pal_brightness_val));
40   save_item(NAME(pal_brightness_mode));
41
42   save_item(NAME(cop_dma_src));
43   save_item(NAME(cop_dma_dst));
44   save_item(NAME(cop_dma_size));
45
2646   m_videoramout_cb.resolve_safe();
2747}
2848
trunk/src/mame/includes/raiden2.h
r32147r32148
1717        m_seibu_sound(*this, "seibu_sound"),
1818        m_gfxdecode(*this, "gfxdecode"),
1919        m_palette(*this, "palette"),
20     
21        bg_bank(0),
22        fg_bank(0),
23        mid_bank(0),
24        raiden2_tilemap_enable(0),
25        prg_bank(0),
26        cop_bank(0),
27        cop_itoa(0),
28        cop_status(0),
29        cop_scale(0),
30        cop_itoa_digit_count(0),
31        cop_angle(0),
32        cop_dist(0),
33        cop_latch_addr(0),
34        cop_latch_trigger(0),
35        cop_latch_value(0),
36        cop_latch_mask(0),
37        cop_angle_target(0),
38        cop_angle_step(0),
39        sprite_prot_x(0),
40        sprite_prot_y(0),
41        dst1(0),
42        cop_spr_maxx(0),
43        cop_spr_off(0),
44        cop_hit_status(0),
45        cop_hit_baseadr(0),
46        cop_hit_val_x(0),
47        cop_hit_val_y(0),
48        cop_hit_val_z(0),
49        cop_hit_val_unk(0),
50        cop_sort_ram_addr(0),
51        cop_sort_lookup(0),
52        cop_sort_param(0),
2053        tile_buffer(320, 256),
2154        sprite_buffer(320, 256),
2255        m_raiden2cop(*this, "raiden2cop")
23   { }
56   {
57        memset(scrollvals, 0, sizeof(UINT16)*6);
58        memset(cop_regs, 0, sizeof(UINT32)*8);
59        memset(cop_itoa_digits, 0, sizeof(UINT8)*10);
2460
25   UINT16 *back_data, *fore_data, *mid_data, *text_data;
61        memset(cop_func_trigger, 0, sizeof(UINT16)*(0x100/8));
62        memset(cop_func_value, 0, sizeof(UINT16)*(0x100/8));
63        memset(cop_func_mask, 0, sizeof(UINT16)*(0x100/8));
64        memset(cop_program, 0, sizeof(UINT16)*(0x100));
65        memset(sprite_prot_src_addr, 0, sizeof(UINT16)*2);
66        memset(cop_collision_info, 0, sizeof(colinfo)*2);
67   }
68
69   UINT16 *back_data, *fore_data, *mid_data, *text_data; // private buffers, allocated in init
2670   required_shared_ptr<UINT16> sprites;
2771   required_device<cpu_device> m_maincpu;
2872   required_device<seibu_sound_device> m_seibu_sound;
r32147r32148
95139   static UINT16 const xsedae_blended_colors[];
96140   static UINT16 const zeroteam_blended_colors[];
97141
98   bool blend_active[0x800];
142   bool blend_active[0x800]; // cfg
99143
100144   tilemap_t *background_layer,*midground_layer,*foreground_layer,*text_layer;
145   
146   
101147   int bg_bank, fg_bank, mid_bank;
102148   UINT16 raiden2_tilemap_enable;
103   UINT8 prg_bank,prot_data;
149   UINT8 prg_bank;
104150   UINT16 cop_bank;
105151
106152   UINT16 scrollvals[6];
r32147r32148
116162   UINT16 cop_angle_target;
117163   UINT16 cop_angle_step;
118164
119   bitmap_ind16 tile_buffer, sprite_buffer;
120165
121166   DECLARE_WRITE16_MEMBER( sprite_prot_x_w );
122167   DECLARE_WRITE16_MEMBER( sprite_prot_y_w );
r32147r32148
133178   UINT16 sprite_prot_x,sprite_prot_y,dst1,cop_spr_maxx,cop_spr_off;
134179   UINT16 sprite_prot_src_addr[2];
135180
136   struct {
181   struct colinfo {
137182      int x, y, z;
138183      int min_x, min_y, min_z, max_x, max_y, max_z;
139   } cop_collision_info[2];
184   };
140185
186   colinfo cop_collision_info[2];
187
141188   UINT16 cop_hit_status, cop_hit_baseadr;
142189   INT16 cop_hit_val_x, cop_hit_val_y, cop_hit_val_z, cop_hit_val_unk;
143190
r32147r32148
156203
157204   UINT32 cop_sort_ram_addr, cop_sort_lookup;
158205   UINT16 cop_sort_param;
159   const int *cur_spri;
206   const int *cur_spri; // cfg
160207
161208   DECLARE_DRIVER_INIT(raidendx);
162209   DECLARE_DRIVER_INIT(xsedae);
r32147r32148
183230
184231   void init_blending(const UINT16 *table);
185232
233   bitmap_ind16 tile_buffer, sprite_buffer;
186234   required_device<raiden2cop_device> m_raiden2cop;
187235
188
236protected:
237   virtual void machine_start();
189238};
190239
191240/*----------- defined in machine/r2crypt.c -----------*/
trunk/src/mame/drivers/raiden2.c
r32147r32148
164164#include "includes/raiden2.h"
165165#include "video/seibu_crtc.h"
166166
167
168void raiden2_state::machine_start()
169{
170   save_item(NAME(bg_bank));
171   save_item(NAME(fg_bank));
172   save_item(NAME(mid_bank));
173   save_item(NAME(raiden2_tilemap_enable));
174   save_item(NAME(prg_bank));
175   save_item(NAME(cop_bank));
176   save_item(NAME(cop_itoa));
177   save_item(NAME(cop_status));
178   save_item(NAME(cop_scale));
179   save_item(NAME(cop_itoa_digit_count));
180   save_item(NAME(cop_angle));
181   save_item(NAME(cop_dist));
182   save_item(NAME(cop_latch_addr));
183   save_item(NAME(cop_latch_trigger));
184   save_item(NAME(cop_latch_value));
185   save_item(NAME(cop_latch_mask));
186   save_item(NAME(cop_angle_target));
187   save_item(NAME(cop_angle_step));
188   save_item(NAME(sprite_prot_x));
189   save_item(NAME(sprite_prot_y));
190   save_item(NAME(dst1));
191   save_item(NAME(cop_spr_maxx));
192   save_item(NAME(cop_spr_off));
193   save_item(NAME(cop_hit_status));
194   save_item(NAME(cop_hit_baseadr));
195   save_item(NAME(cop_hit_val_x));
196   save_item(NAME(   cop_hit_val_y));
197   save_item(NAME(cop_hit_val_z));
198   save_item(NAME(cop_hit_val_unk));
199   save_item(NAME(cop_sort_ram_addr));
200   save_item(NAME(cop_sort_lookup));
201   save_item(NAME(cop_sort_param));
202   
203   save_item(NAME(scrollvals));
204   save_item(NAME(cop_regs));
205   save_item(NAME(cop_itoa_digits));
206   save_item(NAME(cop_func_trigger));
207   save_item(NAME(cop_func_value));
208   save_item(NAME(cop_func_mask));
209   save_item(NAME(cop_program));
210   save_item(NAME(sprite_prot_src_addr));
211
212//   save_pointer(NAME(cop_collision_info), sizeof(colinfo)*2); // this is illegal
213   save_item(NAME(cop_collision_info[0].x));
214   save_item(NAME(cop_collision_info[0].y));
215   save_item(NAME(cop_collision_info[0].z));
216
217   save_item(NAME(cop_collision_info[0].min_x));
218   save_item(NAME(cop_collision_info[0].min_y));
219   save_item(NAME(cop_collision_info[0].min_z));
220
221   save_item(NAME(cop_collision_info[0].max_x));
222   save_item(NAME(cop_collision_info[0].max_y));
223   save_item(NAME(cop_collision_info[0].max_z));
224
225   save_item(NAME(cop_collision_info[1].x));
226   save_item(NAME(cop_collision_info[1].y));
227   save_item(NAME(cop_collision_info[1].z));
228
229   save_item(NAME(cop_collision_info[1].min_x));
230   save_item(NAME(cop_collision_info[1].min_y));
231   save_item(NAME(cop_collision_info[1].min_z));
232
233   save_item(NAME(cop_collision_info[1].max_x));
234   save_item(NAME(cop_collision_info[1].max_y));
235   save_item(NAME(cop_collision_info[1].max_z));
236
237//   save_item(NAME(tile_buffer));
238//   save_item(NAME(sprite_buffer));
239}
240
167241UINT16 raiden2_state::rps()
168242{
169243   return m_maincpu->state_int(NEC_CS);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team