mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
0x6200 note, nw
This commit is contained in:
parent
0f81674c61
commit
bc09e31613
@ -1527,8 +1527,68 @@ dx dy | stat dist angle scale r34(r) r36 r38* r3a
|
||||
|
||||
0x00 0x00 | 0x0067 0x10 0x2d 0x0000 0x0001 0x0020 0xb5 0x0b50
|
||||
|
||||
|
||||
*same as 0x3bb0
|
||||
|
||||
command 0x6200
|
||||
raw angle|angle compare|angle mod value| res |
|
||||
---------|-------------|---------------|-----|
|
||||
0x00 **** 0x00 0x00
|
||||
0x00 0x00 0x20 0x00
|
||||
0x00 0x20 0x20 0x20
|
||||
0x00 0x40 0x20 0x20
|
||||
0x00 0x60 0x20 0x20
|
||||
0x00 0x80 0x20 0xe0
|
||||
0x00 0xa0 0x20 0xe0
|
||||
0x00 0xc0 0x20 0xe0
|
||||
0x00 0xe0 0x20 0xe0
|
||||
0x00 0x00 0x40 0x00
|
||||
0x00 0x20 0x40 0x20
|
||||
0x00 0x40 0x40 0x40
|
||||
0x00 0x60 0x40 0x40
|
||||
0x00 0x80 0x40 0xc0
|
||||
0x00 0xa0 0x40 0xc0
|
||||
0x00 0xc0 0x40 0xc0
|
||||
0x00 0xe0 0x40 0xe0
|
||||
0x00 0x00 0x60 0x00
|
||||
0x00 0x20 0x60 0x20
|
||||
0x00 0x40 0x60 0x60 *
|
||||
0x00 0x60 0x60 0x60
|
||||
0x00 0x80 0x60 0xa0
|
||||
0x00 0xa0 0x60 0xa0
|
||||
0x00 0xc0 0x60 0xc0
|
||||
0x00 0xe0 0x60 0xe0
|
||||
0x00 0x00 0x80 0x00
|
||||
0x00 0x20 0x80 0x80 *
|
||||
0x00 0x40 0x80 0x80 *
|
||||
0x00 0x60 0x80 0x80 *
|
||||
0x00 0x80 0x80 0x80 *
|
||||
0x00 0xa0 0x80 0x80
|
||||
0x00 0xc0 0x80 0x80
|
||||
0x00 0xe0 0x80 0x80
|
||||
0x00 0x00 0xa0 0x00
|
||||
0x00 0x20 0xa0 0x20
|
||||
0x00 0x40 0xa0 0xa0
|
||||
0x00 0x60 0xa0 0xa0
|
||||
0x00 0x80 0xa0 0x60
|
||||
0x00 0xa0 0xa0 0x60
|
||||
0x00 0xc0 0xa0 0x60
|
||||
0x00 0xe0 0xa0 0xe0
|
||||
0x00 0x00 0xc0 0x00
|
||||
0x00 0x20 0xc0 0x20
|
||||
0x00 0x40 0xc0 0xc0
|
||||
0x00 0x60 0xc0 ****
|
||||
0x00 0x80 0xc0 0x40
|
||||
0x00 0xa0 0xc0 ****
|
||||
0x00 0xc0 0xc0 0xc0
|
||||
0x00 0xe0 0xc0 0xe0
|
||||
0x00 0x00 0xe0 0x00
|
||||
0x00 0x20 0xe0 0x20
|
||||
0x00 0x40 0xe0 0xe0
|
||||
0x00 0x60 0xe0 0xe0
|
||||
0x00 0x80 0xe0 0x20
|
||||
0x00 0xa0 0xe0 0x20
|
||||
0x00 0xc0 0xe0 0xc0
|
||||
0x00 0xe0 0xe0 0xe0
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
@ -1868,7 +1928,7 @@ static UINT16 cop_hit_status;
|
||||
static INT16 cop_hit_val_x,cop_hit_val_y,cop_hit_val_z,cop_hit_val_unk;
|
||||
static UINT32 cop_sort_lookup,cop_sort_ram_addr,cop_sort_param;
|
||||
static INT8 cop_angle_compare;
|
||||
static UINT8 cop_angle_mod_val;
|
||||
static INT8 cop_angle_mod_val;
|
||||
static struct
|
||||
{
|
||||
int x,y;
|
||||
@ -2091,8 +2151,8 @@ static WRITE16_HANDLER( generic_cop_w )
|
||||
break;
|
||||
|
||||
/* triggered before 0x6200 in Seibu Cup, looks like an angle value ... */
|
||||
case (0x01c/2): cop_angle_compare = cop_mcu_ram[0x1c/2] & 0xff; break;
|
||||
case (0x01e/2): cop_angle_mod_val = cop_mcu_ram[0x1e/2] & 0xff; break;
|
||||
case (0x01c/2): cop_angle_compare = INT8(cop_mcu_ram[0x1c/2]); break;
|
||||
case (0x01e/2): cop_angle_mod_val = INT8(cop_mcu_ram[0x1e/2]); break;
|
||||
|
||||
case (0x08c/2): cop_sprite_dma_abs_y = (cop_mcu_ram[0x08c/2]); break;
|
||||
case (0x08e/2): cop_sprite_dma_abs_x = (cop_mcu_ram[0x08e/2]); break;
|
||||
@ -2658,28 +2718,32 @@ static WRITE16_HANDLER( generic_cop_w )
|
||||
{
|
||||
INT8 cur_angle;
|
||||
|
||||
cur_angle = space.read_byte(cop_register[0] + (0x34 ^ 3));
|
||||
cur_angle = INT8(space.read_byte(cop_register[0] + (0x34 ^ 3)));
|
||||
//space.write_byte(cop_register[0] + (0^3),space.read_byte(cop_register[0] + (0^3)) & 0xfb); //correct?
|
||||
/*
|
||||
0x00 0x00 0x60 0x00
|
||||
0x00 0x20 0x60 0x20
|
||||
0x00 0x40 0x60 0x60
|
||||
0x00 0x60 0x60 0x60
|
||||
0x00 0x80 0x60 0xa0
|
||||
0x00 0xa0 0x60 0xa0
|
||||
0x00 0xc0 0x60 0xc0
|
||||
0x00 0xe0 0x60 0xe0
|
||||
*/
|
||||
|
||||
if(cur_angle >= cop_angle_compare)
|
||||
if(cur_angle > cop_angle_compare)
|
||||
{
|
||||
cur_angle -= cop_angle_mod_val;
|
||||
|
||||
if(cur_angle <= cop_angle_compare)
|
||||
{
|
||||
if(cur_angle < cop_angle_compare)
|
||||
cur_angle = cop_angle_compare;
|
||||
//space.write_byte(cop_register[0] + (0^3),space.read_byte(cop_register[0] + (0^3)) | 2);
|
||||
}
|
||||
}
|
||||
else if(cur_angle <= cop_angle_compare)
|
||||
else if(cur_angle < cop_angle_compare)
|
||||
{
|
||||
cur_angle += cop_angle_mod_val;
|
||||
|
||||
if(cur_angle >= cop_angle_compare)
|
||||
{
|
||||
if(cur_angle > cop_angle_compare)
|
||||
cur_angle = cop_angle_compare;
|
||||
//space.write_byte(cop_register[0] + (0^3),space.read_byte(cop_register[0] + (0^3)) | 2);
|
||||
}
|
||||
}
|
||||
|
||||
space.write_byte(cop_register[0] + (0x34 ^ 3),cur_angle);
|
||||
|
Loading…
Reference in New Issue
Block a user