mirror of
https://github.com/Gehstock/Mist_FPGA.git
synced 2026-01-15 15:56:41 +00:00
Update Ninjakun, add MRA
This commit is contained in:
parent
ff870c29b2
commit
426ea2e809
@ -0,0 +1,78 @@
|
||||
<misterromdescription>
|
||||
<name>Ninjakun Majou no Bouken</name>
|
||||
<region></region>
|
||||
<homebrew>no</homebrew>
|
||||
<bootleg>no</bootleg>
|
||||
<version></version>
|
||||
<alternative></alternative>
|
||||
<platform></platform>
|
||||
<series></series>
|
||||
<year>1984</year>
|
||||
<manufacturer>UPL</manufacturer>
|
||||
<manufacturer>Taito</manufacturer>
|
||||
<category>Platform - Climb</category>
|
||||
|
||||
<setname>ninjakun</setname>
|
||||
<parent>ninjakun</parent>
|
||||
<mameversion>0220</mameversion>
|
||||
<rbf>ninjakun</rbf>
|
||||
<about author="MrX-8B" source="https://github.com/MiSTer-devel/Arcade-NinjaKun_MiSTer" twitter="@MrX_8B" webpage="https://patreon.com/MrX_8B"></about>
|
||||
|
||||
<resolution>15kHz</resolution>
|
||||
<rotation>horizontal</rotation>
|
||||
<flip></flip>
|
||||
|
||||
<players>2 (alternating)</players>
|
||||
<joystick>2-way horizontal</joystick>
|
||||
<special_controls></special_controls>
|
||||
<num_buttons>2</num_buttons>
|
||||
<button_names></button_names>
|
||||
|
||||
<switches default="FC,C7" base="8" page_id="1" page_name="Switches">
|
||||
<dip bits="0" name="Cabinet" ids="Upright,Cocktail"/>
|
||||
<dip bits="1,2" name="Lives" ids="5,2,3,4"/>
|
||||
<dip bits="3" name="First Bonus" ids="40000,30000"/>
|
||||
<dip bits="4,5" name="Second Bonus" ids="No Bonus,Every 90000,Every 70000,Every 50000"/>
|
||||
<dip bits="6" name="Demo Sounds" ids="Yes,No"/>
|
||||
<dip bits="7" name="Difficulty" ids="Hard,Normal"/>
|
||||
<dip bits="11" name="High Score Names" ids="3 Letters,8 Letters"/>
|
||||
<dip bits="12" name="Allow Continue" ids="Yes,No"/>
|
||||
<dip bits="14" name="Free Play" ids="Yes,No"/>
|
||||
<dip bits="15" name="Infinite Lives" ids="Yes,No"/>
|
||||
</switches>
|
||||
|
||||
<rom index="1"></rom>
|
||||
<rom index="0" zip="ninjakun.zip" md5="99e80f22f7a77cf1d574ce89486b385f">
|
||||
<part crc="a74c4297" name="ninja-6.7n"/>
|
||||
<part crc="53a72039" name="ninja-7.7p"/>
|
||||
<part crc="4a99d857" name="ninja-8.7s"/>
|
||||
<part crc="dede49e4" name="ninja-9.7t"/>
|
||||
<part crc="0d55664a" name="ninja-10.2c"/>
|
||||
<part crc="12ff9597" name="ninja-11.2d"/>
|
||||
<part crc="e9b75807" name="ninja-12.4c"/>
|
||||
<part crc="1760ed2c" name="ninja-13.4d"/>
|
||||
<part crc="1c1dc141" name="ninja-1.7a"/>
|
||||
<part crc="39cc7d37" name="ninja-2.7b"/>
|
||||
<part crc="d542bfe3" name="ninja-3.7d"/>
|
||||
<part crc="a57385c6" name="ninja-4.7e"/>
|
||||
<part crc="164a42c4" name="ninja-5.7h"/>
|
||||
<part crc="39cc7d37" name="ninja-2.7b"/>
|
||||
<part crc="d542bfe3" name="ninja-3.7d"/>
|
||||
<part crc="a57385c6" name="ninja-4.7e"/>
|
||||
</rom>
|
||||
<rom index="2"></rom>
|
||||
<rom index="3" md5="none">
|
||||
<part>
|
||||
17 00 00 00 00 FF 00 02 00 02 00 01 00 FF 00 00
|
||||
00 00 E0 A3 00 37 00 20
|
||||
00 00 C0 8C 00 07 22 10
|
||||
</part>
|
||||
</rom>
|
||||
<rom index="4"></rom>
|
||||
|
||||
<nvram index="4" size="62"/>
|
||||
|
||||
<remark></remark>
|
||||
|
||||
<mratimestamp>20210430005030</mratimestamp>
|
||||
</misterromdescription>
|
||||
@ -30,19 +30,11 @@ module NinjaKun_MiST (
|
||||
`include "rtl\build_id.v"
|
||||
|
||||
localparam CONF_STR = {
|
||||
"NINJAKUN;ROM;",
|
||||
"NINJAKUN;;",
|
||||
"O2,Rotate Controls,Off,On;",
|
||||
"O34,Scandoubler Fx,None,HQ2x,CRT 25%,CRT 50%;",
|
||||
"O34,Scandoubler Fx,None,CRT 25%,CRT 50%,CRT 75%;",
|
||||
"O5,Blend,Off,On;",
|
||||
"O8,Difficulty,Normal,Hard;",
|
||||
"O9A,Lives,4,3,2,5;",
|
||||
"OB,1st Extra,30000,40000;",
|
||||
"OCD,2nd Extra (Every),50000,70000,90000,None;",
|
||||
"OF,Allow Continue,No,Yes;",
|
||||
"OG,Free Play,No,Yes;",
|
||||
"OH,Endless(If Free Play),No,Yes;",
|
||||
"OE,Demo Sound,Off,On;",
|
||||
"OI,Name Letters,8,3;",
|
||||
"DIP;",
|
||||
"T0,Reset;",
|
||||
"V,v1.00.",`BUILD_DATE
|
||||
};
|
||||
@ -52,6 +44,10 @@ assign AUDIO_R = AUDIO_L;
|
||||
assign SDRAM_CLK = CLOCK_48;
|
||||
assign SDRAM_CKE = 1;
|
||||
|
||||
wire rotate = status[2];
|
||||
wire [1:0] scanlines = status[4:3];
|
||||
wire blend = status[5];
|
||||
|
||||
wire CLOCK_48, pll_locked;
|
||||
pll pll(
|
||||
.inclk0(CLOCK_27),
|
||||
@ -66,6 +62,7 @@ wire [7:0] joystick_0;
|
||||
wire [7:0] joystick_1;
|
||||
wire scandoublerD;
|
||||
wire ypbpr;
|
||||
wire no_csync;
|
||||
wire [15:0] audio;
|
||||
wire hs, vs;
|
||||
wire [3:0] r, g, b;
|
||||
@ -178,10 +175,10 @@ wire [11:0] POUT;
|
||||
ninjakun_top ninjakun_top(
|
||||
.RESET(reset),
|
||||
.MCLK(CLOCK_48),
|
||||
.CTR1(~{2'b11, btn_one_player, 1'b0, m_fire, m_bomb, m_right, m_left }),
|
||||
.CTR2(~{~btn_coin, 1'b1, btn_two_players, 1'b0, m_fire, m_bomb, m_right, m_left }),
|
||||
.DSW1({~status[8], ~status[14], ~status[13:12], ~status[11], ~status[10:9], 1'b0}),
|
||||
.DSW2({~status[17], ~status[16], 1'b0, ~status[15], ~status[18], 3'b111}),
|
||||
.CTR1(~{2'b11, m_one_player, 1'b0, m_fireA, m_fireB, m_right, m_left }),
|
||||
.CTR2(~{~(m_coin1 | m_coin2), 1'b1, m_two_players, 1'b0, m_fireB, m_fire2B, m_right2, m_left2 }),
|
||||
.DSW1(status[15:8]),
|
||||
.DSW2(status[23:16]),
|
||||
.PH(HPOS),
|
||||
.PV(VPOS),
|
||||
.PCLK_EN(PCLK_EN),
|
||||
@ -229,12 +226,13 @@ mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(11)) mist_video(
|
||||
.VGA_B ( VGA_B ),
|
||||
.VGA_VS ( VGA_VS ),
|
||||
.VGA_HS ( VGA_HS ),
|
||||
.rotate ( {1'b1,status[2]} ),
|
||||
.ce_divider ( 1'b1 ),
|
||||
.blend ( status[5] ),
|
||||
.rotate ( { 1'b1, rotate } ),
|
||||
.ce_divider ( 1'b1 ),
|
||||
.blend ( blend ),
|
||||
.scandoubler_disable( scandoublerD ),
|
||||
.scanlines ( status[4:3] ),
|
||||
.ypbpr ( ypbpr )
|
||||
.scanlines ( scanlines ),
|
||||
.ypbpr ( ypbpr ),
|
||||
.no_csync ( no_csync )
|
||||
);
|
||||
|
||||
user_io #(.STRLEN(($size(CONF_STR)>>3)))user_io(
|
||||
@ -248,6 +246,7 @@ user_io #(.STRLEN(($size(CONF_STR)>>3)))user_io(
|
||||
.switches (switches ),
|
||||
.scandoubler_disable (scandoublerD ),
|
||||
.ypbpr (ypbpr ),
|
||||
.no_csync (no_csync ),
|
||||
.key_strobe (key_strobe ),
|
||||
.key_pressed (key_pressed ),
|
||||
.key_code (key_code ),
|
||||
@ -262,41 +261,25 @@ dac #(.C_bits(16))dac(
|
||||
.dac_i(audio),
|
||||
.dac_o(AUDIO_L)
|
||||
);
|
||||
// Rotated Normal
|
||||
//wire m_up = ~status[2] ? btn_left | joystick_0[1] | joystick_1[1] : btn_up | joystick_0[3] | joystick_1[3];
|
||||
//wire m_down = ~status[2] ? btn_right | joystick_0[0] | joystick_1[0] : btn_down | joystick_0[2] | joystick_1[2];
|
||||
wire m_left = status[2] ? btn_down | joystick_0[2] | joystick_1[2] : btn_left | joystick_0[1] | joystick_1[1];
|
||||
wire m_right = status[2] ? btn_up | joystick_0[3] | joystick_1[3] : btn_right | joystick_0[0] | joystick_1[0];
|
||||
wire m_fire = btn_fire1 | joystick_0[4] | joystick_1[4];
|
||||
wire m_bomb = btn_fire2 | joystick_0[5] | joystick_1[5];
|
||||
|
||||
reg btn_one_player = 0;
|
||||
reg btn_two_players = 0;
|
||||
reg btn_left = 0;
|
||||
reg btn_right = 0;
|
||||
reg btn_down = 0;
|
||||
reg btn_up = 0;
|
||||
reg btn_fire1 = 0;
|
||||
reg btn_fire2 = 0;
|
||||
//reg btn_fire3 = 0;
|
||||
reg btn_coin = 0;
|
||||
|
||||
always @(posedge CLOCK_48) begin
|
||||
if(key_strobe) begin
|
||||
case(key_code)
|
||||
'h75: btn_up <= key_pressed; // up
|
||||
'h72: btn_down <= key_pressed; // down
|
||||
'h6B: btn_left <= key_pressed; // left
|
||||
'h74: btn_right <= key_pressed; // right
|
||||
'h76: btn_coin <= key_pressed; // ESC
|
||||
'h05: btn_one_player <= key_pressed; // F1
|
||||
'h06: btn_two_players <= key_pressed; // F2
|
||||
// 'h14: btn_fire3 <= key_pressed; // ctrl
|
||||
'h11: btn_fire2 <= key_pressed; // alt
|
||||
'h29: btn_fire1 <= key_pressed; // Space
|
||||
endcase
|
||||
end
|
||||
end
|
||||
wire m_up, m_down, m_left, m_right, m_fireA, m_fireB, m_fireC, m_fireD, m_fireE, m_fireF;
|
||||
wire m_up2, m_down2, m_left2, m_right2, m_fire2A, m_fire2B, m_fire2C, m_fire2D, m_fire2E, m_fire2F;
|
||||
wire m_tilt, m_coin1, m_coin2, m_coin3, m_coin4, m_one_player, m_two_players, m_three_players, m_four_players;
|
||||
|
||||
arcade_inputs inputs (
|
||||
.clk ( CLOCK_48 ),
|
||||
.key_strobe ( key_strobe ),
|
||||
.key_pressed ( key_pressed ),
|
||||
.key_code ( key_code ),
|
||||
.joystick_0 ( joystick_0 ),
|
||||
.joystick_1 ( joystick_1 ),
|
||||
.rotate ( rotate ),
|
||||
.orientation ( 2'b10 ),
|
||||
.joyswap ( 1'b0 ),
|
||||
.oneplayer ( 1'b1 ),
|
||||
.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} )
|
||||
);
|
||||
|
||||
endmodule
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user