Previous 199869 Revisions Next

r18193 Friday 28th September, 2012 at 15:45:35 UTC by Angelo Salese
Ported Palette brightness effects to Raiden 2 HW, used by Zero Team and X Se Dae [Angelo Salese]
[src/mame/drivers]raiden2.c
[src/mame/includes]raiden2.h

trunk/src/mame/includes/raiden2.h
r18192r18193
2121   DECLARE_WRITE16_MEMBER( cop_dma_dst_w );
2222   DECLARE_READ16_MEMBER( cop_dma_mode_r );
2323   DECLARE_WRITE16_MEMBER( cop_dma_mode_w );
24   DECLARE_WRITE16_MEMBER( cop_pal_brightness_val_w );
2425   DECLARE_READ16_MEMBER ( cop_reg_high_r );
2526   DECLARE_WRITE16_MEMBER( cop_reg_high_w );
2627   DECLARE_READ16_MEMBER ( cop_reg_low_r );
r18192r18193
8990   UINT8 cop_itoa_digits[10];
9091   UINT16 cop_dma_mode, cop_dma_src[0x200], cop_dma_dst[0x200], cop_dma_size[0x200], cop_dma_v1, cop_dma_v2, cop_dma_adr_rel;
9192   UINT16 sprites_cur_start;
93   UINT16 pal_brightness_val;
9294
9395   UINT16 cop_func_trigger[0x100/8];      /* function trigger */
9496   UINT16 cop_func_value[0x100/8];         /* function value (?) */
trunk/src/mame/drivers/raiden2.c
r18192r18193
294294   COMBINE_DATA(&cop_dma_size[cop_dma_mode]);
295295}
296296
297WRITE16_MEMBER(raiden2_state::cop_pal_brightness_val_w)
298{
299   COMBINE_DATA(&pal_brightness_val);
300}
301
302/* RE from Seibu Cup Soccer bootleg */
303static const UINT8 fade_table(int v)
304{
305    int low  = v & 0x001f;
306    int high = v & 0x03e0;
307
308    return (low * (high | (high >> 5)) + 0x210) >> 10;
309}
310
297311WRITE16_MEMBER(raiden2_state::cop_dma_trigger_w)
298312{
299313   //  logerror("COP DMA mode=%x adr=%x size=%x vals=%x %x %x\n", cop_dma_mode, cop_dma_src[cop_dma_mode], cop_dma_size[cop_dma_mode], cop_dma_v1[cop_dma_mode], cop_dma_v2[cop_dma_mode], cop_dma_dst[cop_dma_mode]);
r18192r18193
321335      UINT32 src,dst,size;
322336      int i;
323337
324      src = (cop_dma_src[cop_dma_mode] << 6) + (cop_dma_adr_rel * 0x400);
338      src = (cop_dma_src[cop_dma_mode] << 6);
325339      dst = (cop_dma_dst[cop_dma_mode] << 6);
326340      size = ((cop_dma_size[cop_dma_mode] << 5) - (cop_dma_dst[cop_dma_mode] << 6) + 0x20)/2;
327341
328342      //printf("%08x %08x %08x\n",src,dst,size);
329      /* TODO: palette brightness */
330343
331344      for(i = 0;i < size;i++)
332345      {
333         space.write_word(dst, space.read_word(src));
346         UINT16 pal_val;
347         int r,g,b;
348         int rt,gt,bt;
349
350         bt = (space.read_word(src + (cop_dma_adr_rel * 0x400)) & 0x7c00) >> 5;
351         bt = fade_table(bt|(pal_brightness_val ^ 0));
352         b = ((space.read_word(src)) & 0x7c00) >> 5;
353         b = fade_table(b|(pal_brightness_val ^ 0x1f));
354         pal_val = ((b + bt) & 0x1f) << 10;
355         gt = (space.read_word(src + (cop_dma_adr_rel * 0x400)) & 0x03e0);
356         gt = fade_table(gt|(pal_brightness_val ^ 0));
357         g = ((space.read_word(src)) & 0x03e0);
358         g = fade_table(g|(pal_brightness_val ^ 0x1f));
359         pal_val |= ((g + gt) & 0x1f) << 5;
360         rt = (space.read_word(src + (cop_dma_adr_rel * 0x400)) & 0x001f) << 5;
361         rt = fade_table(rt|(pal_brightness_val ^ 0));
362         r = ((space.read_word(src)) & 0x001f) << 5;
363         r = fade_table(r|(pal_brightness_val ^ 0x1f));
364         pal_val |= ((r + rt) & 0x1f);
365
366         space.write_word(dst, pal_val);
334367         src+=2;
335368         dst+=2;
336369      }
r18192r18193
13701403   AM_RANGE(0x00454, 0x00455) AM_WRITE(cop_sort_lookup_hi_w)
13711404   AM_RANGE(0x00456, 0x00457) AM_WRITE(cop_sort_lookup_lo_w)
13721405   AM_RANGE(0x00458, 0x00459) AM_WRITE(cop_sort_param_w)
1373   AM_RANGE(0x0045a, 0x0045b) AM_WRITENOP //palette DMA brightness val, used by X Se Dae / Zero Team
1406   AM_RANGE(0x0045a, 0x0045b) AM_WRITE(cop_pal_brightness_val_w) //palette DMA brightness val, used by X Se Dae / Zero Team
13741407   AM_RANGE(0x0045c, 0x0045d) AM_WRITENOP //palette DMA brightness mode, used by X Se Dae / Zero Team (sets to 5)
13751408   AM_RANGE(0x00470, 0x00471) AM_READWRITE(cop_tile_bank_2_r,cop_tile_bank_2_w)
13761409

Previous 199869 Revisions Next


© 1997-2024 The MAME Team