mirror of
https://github.com/Gehstock/Mist_FPGA.git
synced 2026-01-13 23:26:43 +00:00
Qbert: fix some DIPs, add Argus and Knightmare
This commit is contained in:
parent
82f7c9c441
commit
823e8ef78d
51
Arcade_MiST/Gottlieb Qbert/meta/Argus.mra
Normal file
51
Arcade_MiST/Gottlieb Qbert/meta/Argus.mra
Normal file
@ -0,0 +1,51 @@
|
||||
|
||||
<misterromdescription>
|
||||
<name>Argus</name>
|
||||
<mameversion>0228</mameversion>
|
||||
<setname>argusg</setname>
|
||||
<mratimestamp>20201231150731</mratimestamp>
|
||||
<year>1983</year>
|
||||
<manufacturer>Gottlieb</manufacturer>
|
||||
<category>Platform</category>
|
||||
<rbf>qbert</rbf>
|
||||
<buttons names="Service Select,Start 1P,Start 2P,Coin" default="A,Start,Select,R"/>
|
||||
<switches default="01" page_id="1" page_name="Switches" base="16">
|
||||
<dip bits="0" name="Demo Sounds" ids="On,Off"></dip>
|
||||
<dip bits="3" name="Free Play" ids="Off,On"></dip>
|
||||
<dip bits="6" name="Difficulty" ids="Normal,Hard"></dip>
|
||||
</switches>
|
||||
<rom index="1">
|
||||
<part>7</part>
|
||||
</rom>
|
||||
<rom index="0" zip="argusg.zip" md5="none">
|
||||
<!-- 4/5 roms, 8k each -->
|
||||
<part crc="e1906355" name="arg_rom0_2764.c11c12"/>
|
||||
<part crc="733d3d44" name="arg_rom1_2764.c12c13"/>
|
||||
<part crc="b5e9ee77" name="arg_rom2_2764.c13c14"/>
|
||||
<part crc="4dc2914c" name="arg_rom3_2764.c14c15"/>
|
||||
<part crc="2f48bd78" name="arg_rom4_2764.c16"/>
|
||||
|
||||
<!-- ram section used as rom -->
|
||||
<part crc="5d35b83e" name="arg_ram2_2732.c7"/>
|
||||
<part crc="7180e823" name="arg_ram4_2732.c9c10"/>
|
||||
|
||||
<!-- sound -->
|
||||
<part crc="3a6cf455" name="arg_snd1_2716.u5"/>
|
||||
<part crc="ddf32040" name="arg_snd2_2716.u6"/>
|
||||
<part crc="3a6cf455" name="arg_snd1_2716.u5"/>
|
||||
<part crc="ddf32040" name="arg_snd2_2716.u6"/>
|
||||
|
||||
<!-- no bg, used as ram -->
|
||||
<part repeat="8192">00</part>
|
||||
|
||||
<!-- foreground roms -->
|
||||
<part crc="cdb6e25c" name="arg_fg3_2764.k7k8"/>
|
||||
<part crc="cdb6e25c" name="arg_fg3_2764.k7k8"/>
|
||||
<part crc="f10af1be" name="arg_fg2_2764.k6"/>
|
||||
<part crc="f10af1be" name="arg_fg2_2764.k6"/>
|
||||
<part crc="5add96e5" name="arg_fg1_2764.k5"/>
|
||||
<part crc="5add96e5" name="arg_fg1_2764.k5"/>
|
||||
<part crc="5b7bd588" name="arg_fg0_2764.k4"/>
|
||||
<part crc="5b7bd588" name="arg_fg0_2764.k4"/>
|
||||
</rom>
|
||||
</misterromdescription>
|
||||
@ -10,9 +10,10 @@
|
||||
<rbf>qbert</rbf>
|
||||
<buttons names="Swing,Start 1P,Start 2P,Coin,Service Select,Bunt,Pitch Left,Pitch Right" default="A,Start,Select,R,L,X,B,Y"/>
|
||||
<switches default="01" page_id="1" page_name="Switches" base="16">
|
||||
<dip bits="3" name="2 player game" ids="1 credit,2 credits"></dip>
|
||||
<dip bits="5,6" name="Difficulty" ids="Easy,Hard,Medium,Vey Hard"></dip>
|
||||
<dip bits="2" name="Demo Sounds" ids="Off,On"></dip>
|
||||
<dip bits="0" name="Difficulty" ids="Easy,Hard"/>
|
||||
<dip bits="3" name="2 player game" ids="1 credit,2 credits"/>
|
||||
<dip bits="2" name="Demo Sounds" ids="Off,On"/>
|
||||
<dip bits="5" name="Coin Options" ids="Normal,French"/>
|
||||
</switches>
|
||||
<rom index="1">
|
||||
<part>4</part>
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<rbf>qbert</rbf>
|
||||
<buttons names="Service Select,Start 1P,Start 2P,Coin,Button 1,Button 2" default="L,Start,Select,R,A,B"/>
|
||||
<switches default="01" page_id="1" page_name="Switches" base="16">
|
||||
<dip bits="0" name="Bonus Life" ids="25k 75k every 50k,20k 90k every 60k"></dip>
|
||||
<dip bits="0" name="Bonus Life" ids="25k 75k/50k,20k 90k/60k"></dip>
|
||||
<dip bits="1" name="Demo Sounds" ids="Off,On"></dip>
|
||||
<dip bits="2" name="Demo Mode" ids="On,Off"></dip>
|
||||
<dip bits="3" name="Lives" ids="5,3"></dip>
|
||||
|
||||
73
Arcade_MiST/Gottlieb Qbert/meta/Knightmare.mra
Normal file
73
Arcade_MiST/Gottlieb Qbert/meta/Knightmare.mra
Normal file
@ -0,0 +1,73 @@
|
||||
<misterromdescription>
|
||||
<name>Knightmare</name>
|
||||
<region>USA</region>
|
||||
<homebrew>no</homebrew>
|
||||
<bootleg>no</bootleg>
|
||||
<version>Set 1</version>
|
||||
<alternative></alternative>
|
||||
<platform></platform>
|
||||
<series></series>
|
||||
<year>1982</year>
|
||||
<manufacturer>Gottlieb</manufacturer>
|
||||
<category>Platform - Climb</category>
|
||||
|
||||
<setname>kngtmare</setname>
|
||||
<parent>qbert</parent>
|
||||
<mameversion>0198</mameversion>
|
||||
<rbf>qbert</rbf>
|
||||
<about></about>
|
||||
|
||||
<resolution>15kHz</resolution>
|
||||
<rotation>vertical (ccw)</rotation>
|
||||
<flip>yes</flip>
|
||||
|
||||
<players>2 (alternating)</players>
|
||||
<joystick>4-way diagonal</joystick>
|
||||
<special_controls></special_controls>
|
||||
<num_buttons>0</num_buttons>
|
||||
<buttons default="A,Start,Select,R" names="Service Select,Start 1P,Start 2P,Coin"></buttons>
|
||||
|
||||
<switches default="00" page_id="1" page_name="Switches" base="16">
|
||||
<dip bits="5" ids="3,5" name="Lives"></dip>
|
||||
</switches>
|
||||
|
||||
<rom index="1">
|
||||
<part>8</part>
|
||||
</rom>
|
||||
|
||||
<rom index="0" md5="none" zip="kngtmare.zip">
|
||||
<!-- MAIN CPU ROM 48k -->
|
||||
<part crc="620dc629" name="gv112_rom0_2764.c11c12"></part>
|
||||
<part crc="5b340640" name="gv112_rom1_2764.c12c13"></part>
|
||||
<part crc="53e01f97" name="gv112_rom2_2764.c13c14"></part>
|
||||
<part crc="47351270" name="gv112_rom3_2764.c14c15"></part>
|
||||
<part repeat="16384">00</part>
|
||||
|
||||
<!-- SOUND CPU ROM 8k -->
|
||||
<!-- no sound dump -->
|
||||
<part repeat="8192">00</part>
|
||||
|
||||
<!-- Background ROMs 8k -->
|
||||
<part crc="a74591fd" name="gv112_bg0_2732.e11e12"></part>
|
||||
<part crc="5a226e6a" name="gv112_bg1_2732.e13"></part>
|
||||
|
||||
<!-- Foreground ROMs -->
|
||||
<part crc="d1886658" name="gv112_fg3_2764.k7k8"></part>
|
||||
<part crc="d1886658" name="gv112_fg3_2764.k7k8"></part>
|
||||
<part crc="e1c73f0c" name="gv112_fg2_2764.k6"></part>
|
||||
<part crc="e1c73f0c" name="gv112_fg2_2764.k6"></part>
|
||||
<part crc="724bc3ea" name="gv112_fg1_2764.k5"></part>
|
||||
<part crc="724bc3ea" name="gv112_fg1_2764.k5"></part>
|
||||
<part crc="0311bbd9" name="gv112_fg0_2764.k4"></part>
|
||||
<part crc="0311bbd9" name="gv112_fg0_2764.k4"></part>
|
||||
</rom>
|
||||
<rom index="2"></rom>
|
||||
<rom index="3"></rom>
|
||||
<rom index="4"></rom>
|
||||
|
||||
<nvram></nvram>
|
||||
|
||||
<remark></remark>
|
||||
|
||||
<mratimestamp>20210430005030</mratimestamp>
|
||||
</misterromdescription>
|
||||
@ -10,8 +10,11 @@
|
||||
<rbf>qbert</rbf>
|
||||
<buttons names="Service Select,Start 1P,Start 2P,Coin" default="A,Start,Select,R"/>
|
||||
<switches default="01" page_id="1" page_name="Switches" base="16">
|
||||
<dip bits="4" name="Demo Sounds" ids="On,Off"></dip>
|
||||
<dip bits="0" name="Demo Sounds" ids="On,Off"></dip>
|
||||
<dip bits="1" name="Difficulty" ids="Normal,Hard"></dip>
|
||||
<dip bits="3" name="Lives" ids="3,5"></dip>
|
||||
<dip bits="5" name="Hexagon" ids="Roving,Stationary"></dip>
|
||||
<dip bits="6,7" name="Bonus Life" ids="30k 80k/50k,30k 60k/30k,40k 90k/50k,50k 125k/75k"></dip>
|
||||
</switches>
|
||||
<rom index="1">
|
||||
<part>3</part>
|
||||
|
||||
@ -10,11 +10,10 @@
|
||||
<rbf>qbert</rbf>
|
||||
<buttons names="Service Select,Start 1P,Start 2P,Coin" default="A,Start,Select,R"/>
|
||||
<switches default="01" page_id="1" page_name="Switches" base="16">
|
||||
<dip bits="0" name="Demo Sounds" ids="On,Off"></dip>
|
||||
<dip bits="1" name="Kicker" ids="Off,On"></dip>
|
||||
<dip bits="3" name="Cabinet" ids="Upright,Cocktail"></dip>
|
||||
<dip bits="4" name="Demo Mode" ids="Off,On"></dip>
|
||||
<dip bits="5" name="Free Play" ids="Off,On"></dip>
|
||||
<dip bits="3" name="Demo Sounds" ids="On,Off"></dip>
|
||||
<dip bits="1" name="Bonus Life" ids="10000,15000"></dip>
|
||||
<dip bits="6" name="Extra Bonus Life" ids="20000,25000"></dip>
|
||||
<dip bits="7" name="Difficulty" ids="Normal,Hard"></dip>
|
||||
</switches>
|
||||
<rom index="1">
|
||||
<part>1</part>
|
||||
|
||||
@ -55,7 +55,7 @@ wire flip = status[7];
|
||||
wire service = status[8];
|
||||
wire diagonal = status[9];
|
||||
|
||||
wire [1:0] orientation = {flip, core_mod != mod_tylz && core_mod != mod_insector};
|
||||
wire [1:0] orientation = {flip, core_mod != mod_tylz && core_mod != mod_insector && core_mod != mod_kngtmare && core_mod != mod_argus};
|
||||
wire [7:0] dip_sw = status[23:16];
|
||||
|
||||
assign LED = ~ioctl_downl;
|
||||
@ -105,9 +105,12 @@ localparam mod_krull = 3;
|
||||
localparam mod_curvebal = 4;
|
||||
localparam mod_tylz = 5;
|
||||
localparam mod_insector = 6;
|
||||
localparam mod_argus = 7;
|
||||
localparam mod_kngtmare = 8;
|
||||
|
||||
wire [7:0] spinner_pos;
|
||||
wire spinner_reset;
|
||||
// Mad Planets spinner
|
||||
wire [7:0] spinner_pos;
|
||||
spinner spinner (
|
||||
.clock_40(clk_sys),
|
||||
.reset(spinner_reset),
|
||||
@ -117,14 +120,36 @@ spinner spinner (
|
||||
.spin_angle(spinner_pos)
|
||||
);
|
||||
|
||||
// Argus trackball
|
||||
wire [15:0] trackball_pos;
|
||||
spinner spinnerX (
|
||||
.clock_40(clk_sys),
|
||||
.reset(spinner_reset),
|
||||
.btn_left(m_left),
|
||||
.btn_right(m_right),
|
||||
.btn_acc(1'b1),
|
||||
.ctc_zc_to_2(vb),
|
||||
.spin_angle(trackball_pos[15:8])
|
||||
);
|
||||
|
||||
spinner spinnerY (
|
||||
.clock_40(clk_sys),
|
||||
.reset(spinner_reset),
|
||||
.btn_left(m_up),
|
||||
.btn_right(m_down),
|
||||
.btn_acc(1'b1),
|
||||
.ctc_zc_to_2(vb),
|
||||
.spin_angle(trackball_pos[7:0])
|
||||
);
|
||||
|
||||
reg [5:0] OP2720;
|
||||
reg [7:0] IP1710;
|
||||
reg [7:0] IP4740;
|
||||
reg [7:0] IPA1J2;
|
||||
reg [15:0] IPA1J2;
|
||||
|
||||
always @(*) begin
|
||||
|
||||
IPA1J2 = 8'd0;
|
||||
IPA1J2 = 16'd0;
|
||||
IP4740 = 8'd0;
|
||||
|
||||
IP1710 = {
|
||||
@ -193,7 +218,7 @@ always @(*) begin
|
||||
m_up
|
||||
};
|
||||
|
||||
IPA1J2 = spinner_pos;
|
||||
IPA1J2 = {spinner_pos, spinner_pos};
|
||||
end
|
||||
|
||||
mod_krull:
|
||||
@ -289,6 +314,48 @@ always @(*) begin
|
||||
m_up
|
||||
};
|
||||
end
|
||||
|
||||
mod_argus:
|
||||
begin
|
||||
IP1710 = { // IN1
|
||||
4'h0,
|
||||
m_coin2,
|
||||
m_coin1,
|
||||
m_fireA,
|
||||
~service
|
||||
};
|
||||
|
||||
IP4740 = { // IN4
|
||||
4'h0,
|
||||
m_fire2A,
|
||||
m_fire2B,
|
||||
m_fireA,
|
||||
m_fireB
|
||||
};
|
||||
IPA1J2 = trackball_pos;
|
||||
end
|
||||
|
||||
mod_kngtmare:
|
||||
begin
|
||||
IP1710 = { // IN1
|
||||
4'h0,
|
||||
m_coin2,
|
||||
m_coin1,
|
||||
2'b00
|
||||
};
|
||||
|
||||
IP4740 = { // IN4
|
||||
m_two_players,
|
||||
m_one_player,
|
||||
m_fireB,
|
||||
m_fireA,
|
||||
m_rightB | m_right2,
|
||||
m_left,
|
||||
m_leftB | m_left2,
|
||||
m_right
|
||||
};
|
||||
end
|
||||
|
||||
default:
|
||||
begin
|
||||
end
|
||||
@ -465,7 +532,7 @@ mylstar_board mylstar_board
|
||||
.rom_init_address(ioctl_addr),
|
||||
.rom_init_data(ioctl_dout),
|
||||
.nvram_data(ioctl_din),
|
||||
.bgram(core_mod == mod_krull),
|
||||
.bgram(core_mod == mod_krull || core_mod == mod_argus),
|
||||
|
||||
.vflip(flip),
|
||||
.hflip(flip),
|
||||
|
||||
@ -21,7 +21,7 @@ module mylstar_board
|
||||
|
||||
input [7:0] IP1710,
|
||||
input [7:0] IP4740,
|
||||
input [7:0] IPA1J2,
|
||||
input [15:0] IPA1J2,
|
||||
output [5:0] OP2720,
|
||||
output [4:0] OP3337,
|
||||
output [7:0] OP4740,
|
||||
@ -129,7 +129,8 @@ end
|
||||
// CPU/RAM/ROM //
|
||||
////////////////////////
|
||||
|
||||
wire [7:0] A1J2 = (trackball0_sel | trackball1_sel) ? IPA1J2 : 8'd0;
|
||||
wire [7:0] A1J2 = trackball0_sel ? IPA1J2[15:8] :
|
||||
trackball1_sel ? IPA1J2[7:0] : 8'd0;
|
||||
|
||||
wire [7:0] ram_dout = C5_Q | C6_Q | C7_Q | C9_10_Q | C8_9_Q | C10_11_Q;
|
||||
wire [7:0] rom_dout;
|
||||
|
||||
@ -36,8 +36,8 @@ begin
|
||||
if btn_left = '1' then spin_count <= spin_count - 3; end if; -- left
|
||||
if btn_right = '1' then spin_count <= spin_count + 3; end if; -- right
|
||||
else
|
||||
if btn_left = '1' then spin_count <= spin_count - 55; end if;
|
||||
if btn_right = '1' then spin_count <= spin_count + 55; end if;
|
||||
if btn_left = '1' then spin_count <= spin_count - 15; end if;
|
||||
if btn_right = '1' then spin_count <= spin_count + 15; end if;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user