1
0
mirror of https://github.com/Gehstock/Mist_FPGA.git synced 2026-01-20 09:44:38 +00:00

Segasys1: controls for Water Match

This commit is contained in:
Gyorgy Szombathelyi 2020-11-13 23:59:11 +01:00
parent 8ad920fb32
commit 6e4c37faae
2 changed files with 24 additions and 14 deletions

View File

@ -7,14 +7,16 @@
<manufacturer>Sega</manufacturer>
<category>Sport</category>
<rbf>segasys1</rbf>
<switches default="FF,7E" base="8">
<dip bits="9,10" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="11,13" name="Bonus at" ids="Never,90k,80k,70k,60k,50k,40k,30k"/>
<switches default="FF,7E" base="8">
<dip bits="8" name="Cabinet" ids="Upright,Cocktail"/>
<dip bits="9" name="Demo Sounds" ids="On,Off"/>
<dip bits="10,11" name="Time" ids="Fastest,Faster,Fast,Normal"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>06</part>
<part>0E</part>
</rom>
<rom index="0" zip="wmatch.zip" md5="08e27ac5ddafccaccaef721cdade2ec2" type="merged|nonmerged|split">
<rom index="0" zip="wmatch.zip" md5="1b67822537b11d05b6252d118ffbf985" type="merged|nonmerged|split">
<part name="wm.129"/>
<part name="wm.130"/>
<part name="wm.131"/>

View File

@ -46,17 +46,23 @@ wire rotate = status[2];
wire [1:0] scanlines = status[4:3];
wire blend = status[5];
wire [7:0] INP0 = ~{m_left, m_right,m_up, m_down,1'b0,m_fireB,m_fireA,m_fireC};
wire [7:0] INP1 = ~{m_left2,m_right2,m_up2, m_down2,1'b0,m_fire2B,m_fire2A,m_fire2C};
wire [7:0] INP2 = ~{2'b00,m_two_players, m_one_player,3'b000, m_coin1};
//WaterMatch
//wire [7:0] INP0 = ~{m_left, m_right,m_up, m_down,m_left2, m_right2,m_up2, m_down2};
//wire [7:0] INP1 = ~{m_left3, m_right3,m_up3, m_down3,m_left4, m_right4,m_up4, m_down4};
//wire [7:0] INP2 = ~{m_fire2C,m_fireC,m_two_players, m_one_player,3'b000, m_coin1};
reg [7:0] INP0, INP1, INP2;
always @(*) begin
INP0 = ~{m_left, m_right,m_up, m_down,1'b0,m_fireB,m_fireA,m_fireC};
INP1 = ~{m_left2,m_right2,m_up2, m_down2,1'b0,m_fire2B,m_fire2A,m_fire2C};
INP2 = ~{2'b00,m_two_players, m_one_player,3'b000, m_coin1};
if (core_mod[3]) begin
//WaterMatch
INP0 = ~{m_left, m_right, m_up, m_down, m_left2,m_right2,m_up2,m_down2};
INP1 = ~{m_left3,m_right3,m_up3,m_down3,m_left4,m_right4,m_up4,m_down4};
INP2 = ~{m_fire3A | m_fire4A,m_fireA | m_fire2A,m_two_players, m_one_player,3'b000, m_coin1};
end
end
wire [7:0] DSW0 = status[15: 8];
wire [7:0] DSW1 = status[23:16];
wire [6:0] core_mod; // [0]=SYS1/SYS2,[1]=H/V,[2]=H256/H240
wire [6:0] core_mod; // [0]=SYS1/SYS2,[1]=H/V,[2]=H256/H240,[3]=4controllers
wire [1:0] orientation = { 1'b0, core_mod[1] };
assign LED = ~ioctl_downl;
@ -78,6 +84,8 @@ wire [1:0] buttons;
wire [1:0] switches;
wire [7:0] joystick_0;
wire [7:0] joystick_1;
wire [7:0] joystick_2;
wire [7:0] joystick_3;
wire key_pressed;
wire key_strobe;
wire [7:0] key_code;
@ -295,7 +303,7 @@ arcade_inputs inputs (
.rotate ( rotate ),
.orientation ( orientation ),
.joyswap ( 1'b0 ),
.oneplayer ( 1'b1 ),
.oneplayer ( ~core_mod[3]),
.controls ( {m_tilt, m_coin4, m_coin3, m_coin2, m_coin1, m_four_players, m_three_players, m_two_players, m_one_player} ),
.player1 ( {m_fireF, m_fireE, m_fireD, m_fireC, m_fireB, m_fireA, m_up, m_down, m_left, m_right} ),
.player2 ( {m_fire2F, m_fire2E, m_fire2D, m_fire2C, m_fire2B, m_fire2A, m_up2, m_down2, m_left2, m_right2} ),