Add support for Megumi Rescue Arcade (#124)

--Minor fix to button reading for Megumi Rescue and Riddle of Pythagoras.
This commit is contained in:
greyrogue
2022-06-01 04:43:32 -04:00
committed by GitHub
parent 57dba7bedd
commit 376228fade
4 changed files with 77 additions and 7 deletions

8
SMS.sv
View File

@@ -268,9 +268,9 @@ parameter CONF_STR = {
"-;",
"R0,Reset;",
"J1,Fire 1,Fire 2,Pause,Coin;",
"jn,A|P,B,Start,Coin;",
"jp,Y|P,A,Start,Coin;",
"J1,Fire 1,Fire 2,Pause,Coin,Arcade 3;",
"jn,A|P,B,Start,Coin,X;",
"jp,Y|P,A,Start,Coin,X;",
"V,v",`BUILD_DATE
};
@@ -629,6 +629,7 @@ system #(63) system
.j1_th(joya_th),
.j1_start(swap ? joy_1[11] : joy_0[11]),
.j1_coin(swap ? joy_1[10] : joy_0[10]),
.j1_a3(swap ? joy_1[8] : joy_0[8]),
.j2_up(joyb[3]),
.j2_down(joyb[2]),
@@ -640,6 +641,7 @@ system #(63) system
.pause(joya[6]&joyb[6]),
.j2_start(swap ? joy_0[11] : joy_1[11]),
.j2_coin(swap ? joy_0[10] : joy_1[10]),
.j2_a3(swap ? joy_0[8] : joy_1[8]),
.j1_tr_out(joya_tr_out),
.j1_th_out(joya_th_out),

View File

@@ -0,0 +1,62 @@
<misterromdescription>
<name>Megumi Rescue (Japan)</name>
<region>Japan</region>
<homebrew>no</homebrew>
<bootleg>no</bootleg>
<version></version>
<alternative></alternative>
<platform>Sega System E</platform>
<series></series>
<year>1987</year>
<manufacturer>Sega / Exa</manufacturer>
<category>Ball and Paddle</category>
<setname>megrescu</setname>
<parent>megrescu</parent>
<mameversion>0245</mameversion>
<rbf>SMS</rbf>
<about></about>
<resolution>15kHz</resolution>
<rotation>vertical (cw)</rotation>
<flip></flip>
<players>2</players>
<joystick>8-way</joystick>
<buttons names="Launch/Button1,Button2,Button3,-,-,-,Coin,Start,Pause" default="A,B,L,R,Start,Select" count="1"/>
<switches base="24" default="FF,FF,FF">
<!-- SWA -->
<!-- SWB -->
<dip name="Lives" bits="10,11" ids="Cheat,4,3,2"/>
<dip name="Cabinet" bits="12" ids="Upright,Cocktail"/>
<!-- SWC -->
<dip name="Service Toggle" bits="18" ids="On,Off"/>
<dip name="Service Mode" bits="19" ids="On,Off"/>
</switches>
<rom index="0" zip="megrescu.zip" type="merged" md5="31084284291fe1328d7963a3eda660fa">
<!-- banks, size: 0x40000 -->
<part crc="278CABA8" name="v10_30ic.5"/>
<part crc="BDA242D1" name="v10_30ic.4"/>
<part crc="56E36F85" name="v10_30ic.3"/>
<part crc="5B74C767" name="v10_30ic.2"/>
<part crc="278CABA8" name="v10_30ic.5"/>
<part crc="BDA242D1" name="v10_30ic.4"/>
<part crc="56E36F85" name="v10_30ic.3"/>
<part crc="5B74C767" name="v10_30ic.2"/>
<!-- maincpu, size: 0x8000 -->
<part crc="490d0059" name="v10_30ic.7"/>
</rom>
<rom index="4">
<part>04</part>
</rom>
<!--
<nvram index="4" size="3"/>
-->
<remark></remark>
<mratimestamp>20220531000000</mratimestamp>
</misterromdescription>

View File

@@ -27,6 +27,7 @@ entity io is
J1_th: in STD_LOGIC;
j1_start:in STD_LOGIC;
j1_coin: in STD_LOGIC;
j1_a3: in STD_LOGIC;
J2_up: in STD_LOGIC;
J2_down: in STD_LOGIC;
J2_left: in STD_LOGIC;
@@ -36,6 +37,7 @@ entity io is
J2_th: in STD_LOGIC;
j2_start:in STD_LOGIC;
j2_coin: in STD_LOGIC;
j2_a3: in STD_LOGIC;
Pause: in STD_LOGIC;
E0Type: in STD_LOGIC_VECTOR(1 downto 0);
E1Use: in STD_LOGIC;
@@ -194,16 +196,16 @@ begin
end if;
elsif analog_upper='1' then
if analog_player='0' then
D_out(7) <= '0';
D_out(7) <= J1_tl or J1_tr or J1_a3;
D_out(6) <= J1_tl;
D_out(5) <= J1_tr;
D_out(4) <= '0';--j1_middle;
D_out(4) <= J1_a3;--j1_middle;
D_out(3 downto 0) <= paddle(7 downto 4);
else
D_out(7) <= '0';
D_out(7) <= J1_tl or J1_tr or J1_a3;
D_out(6) <= J2_tl;
D_out(5) <= J2_tr;
D_out(4) <= '0';--j1_middle;
D_out(4) <= J2_a3;--j1_middle;
D_out(3 downto 0) <= paddle2(7 downto 4);
end if;
else

View File

@@ -41,6 +41,7 @@ entity system is
j1_th: in STD_LOGIC;
j1_start: in STD_LOGIC;
j1_coin: in STD_LOGIC;
j1_a3: in STD_LOGIC;
j2_up: in STD_LOGIC;
j2_down: in STD_LOGIC;
j2_left: in STD_LOGIC;
@@ -50,6 +51,7 @@ entity system is
j2_th: in STD_LOGIC;
j2_start: in STD_LOGIC;
j2_coin: in STD_LOGIC;
j2_a3: in STD_LOGIC;
pause: in STD_LOGIC;
E0Type: in STD_LOGIC_VECTOR(1 downto 0);
@@ -488,6 +490,7 @@ port map(
J1_th => j1_th,
J1_start => j1_start,
J1_coin => j1_coin,
J1_a3 => j1_a3,
J2_up => j2_up,
J2_down => j2_down,
J2_left => j2_left,
@@ -497,6 +500,7 @@ port map(
J2_th => j2_th,
J2_start => j2_start,
J2_coin => j2_coin,
J2_a3 => j2_a3,
Pause => pause,
E0Type => E0Type,
E1Use => E1Use,