1
0
mirror of https://github.com/Gehstock/Mist_FPGA.git synced 2026-05-18 04:18:41 +00:00

Merge pull request #131 from gyurco/master

Some fixes + new games
This commit is contained in:
Marcel
2022-02-16 15:27:21 +01:00
committed by GitHub
82 changed files with 3847 additions and 1376 deletions

View 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>

View File

@@ -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>

View File

@@ -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>

View 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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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),

View File

@@ -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;

View File

@@ -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;

View File

@@ -35,4 +35,20 @@
<part name="gr1-3.3m"/>
<part name="gr1-6.4c"/>
</rom>
<switches base="8" default="00,00,00">
<!-- DSW0 -->
<!-- dip name="Cabinet" bits="14" ids="Cocktail,Upright"/-->
<dip name="Service Mode" bits="15" ids="Off,On"/>
<!-- DSW1 -->
<dip name="Coin A" bits="1,3" ids="1/3,1/4,1/2,1/1,2/1,2/3,3/1,4/1"/>
<dip name="Coin B" bits="4,6" ids="1/3,1/4,1/2,1/1,2/1,2/3,3/1,4/1"/>
<dip name="Freeze" bits="7" ids="Off,On"/>
<!-- DSW2 -->
<dip name="Lives" bits="16,17" ids="3,1,2,5"/>
<dip name="Difficulty" bits="18,19" ids="Rank A,Rank B,Rank C,Rank D"/>
<dip name="Demo Sounds" bits="20" ids="On,Off"/>
<dip name="Level Select" bits="21" ids="On,Off"/>
<dip name="Bonus Life" bits="22,23" ids="10k,None,10k/30k,10k/50k/50k"/>
</switches>
</misterromdescription>

View File

@@ -8,7 +8,7 @@
<rbf>druaga</rbf>
<mratimestamp>20210326</mratimestamp>
<rom index="1">
<part>05</part>
<part>07</part>
</rom>
<rom index="0" zip="pacnpal.zip" md5="None">
<!-- CPU ROM set for the original Pac & Pal.
@@ -56,7 +56,7 @@
<dip bits="16,18" name="Coin A" ids="1 Coin 1 Credit ,1 Coin 2 Credits,1 Coin 3 Credits,1 Coin 6 Credits,1 Coin 7 Credits,2 Coins 1 Credit ,2 Coins 3 Credits,3 Coins 1 Credit "/>
<dip bits="0,1" name="Coin B" ids="1 Coin 1 Credit ,1 Coin 2 Credits,2 Coins 1 Credit ,2 Coins 3 Credits"/>
<dip bits="22,23" name="Lives" ids="1,2,3,5"/>
<dip bits="19,21" name="Bonus Life" ids="No Bonus,20k/70k/ev.70k,30k/80k/ev.80k,20k/70k,30k/70k,30k/80k,30k/100k"/>
<dip bits="19,21" name="Bonus Life" ids="Never,30k/80k/80k,40k/100k/100k,30k/80k,30k/100k,40k/120k,30k"/>
<dip bits="15" name="Service Mode" ids="Off,On"></dip>
<!-- dip bits="14" name="Cabinet" ids="Upright,Cocktail"></dip -->
</switches>

View File

@@ -8,7 +8,7 @@
<rbf>druaga</rbf>
<mratimestamp>20210326</mratimestamp>
<rom index="1">
<part>05</part>
<part>07</part>
</rom>
<rom index="0" zip="pacnpal.zip" md5="None">
<!-- main CPU -->
@@ -44,7 +44,7 @@
<dip bits="16,18" name="Coin A" ids="1 Coin 1 Credit ,1 Coin 2 Credits,1 Coin 3 Credits,1 Coin 6 Credits,1 Coin 7 Credits,2 Coins 1 Credit ,2 Coins 3 Credits,3 Coins 1 Credit "/>
<dip bits="0,1" name="Coin B" ids="1 Coin 1 Credit ,1 Coin 2 Credits,2 Coins 1 Credit ,2 Coins 3 Credits"/>
<dip bits="22,23" name="Lives" ids="1,2,3,5"/>
<dip bits="19,21" name="Bonus Life" ids="No Bonus,20k/70k/ev.70k,30k/80k/ev.80k,20k/70k,30k/70k,30k/80k,30k/100k"/>
<dip bits="19,21" name="Bonus Life" ids="Never,30k/80k/80k,40k/100k/100k,30k/80k,30k/100k,40k/120k,30k"/>
<dip bits="15" name="Service Mode" ids="Off,On"></dip>
<!-- dip bits="14" name="Cabinet" ids="Upright,Cocktail"></dip -->
</switches>

View File

@@ -66,7 +66,7 @@ always @(*) begin
DSW2 = 0;
case (core_mod)
7'h0, 7'h1, 7'h3, 7'h6: // DRUAGA, DIGDUG2, GROBDA
7'h0, 7'h1, 7'h3: // DRUAGA, DIGDUG2
begin
DSW0 = status[15:8];
DSW1 = status[23:16];
@@ -78,6 +78,13 @@ always @(*) begin
DSW1 = status[23:16];
DSW2 = { {2{status[27:24]}} };
end
7'h6: // GROBDA
begin
DSW0 = status[15:8];
DSW1 = {status[23:22], m_fire2B, m_fireB, status[19:16]};
DSW2 = status[31:24];
end
default:
begin
DSW0 = status[15:8];
@@ -113,8 +120,6 @@ wire key_strobe;
wire key_pressed;
wire [7:0] key_code;
// assign core_mod=7'd5;
user_io #(.STRLEN($size(CONF_STR)>>3))user_io(
.clk_sys (clock_48 ),
.conf_str (CONF_STR ),

View File

@@ -28,8 +28,7 @@ module DRUAGA_SPRITE
input FLIP_SCREEN
);
parameter [2:0] SUPERPAC=3'd5;
parameter [2:0] GROBDA=3'd6;
`include "param.v"
reg [9:0] CLT1_A;
wire [3:0] CLT1_D;
@@ -92,7 +91,7 @@ always @(*) begin
(ox[1:0]==2'b01) ? { pn, SPCO[14], SPCO[10], SPCO[6], SPCO[2] } :
(ox[1:0]==2'b10) ? { pn, SPCO[13], SPCO[ 9], SPCO[5], SPCO[1] } :
{ pn, SPCO[12], SPCO[ 8], SPCO[4], SPCO[0] } ;
if( MODEL == SUPERPAC || MODEL == GROBDA) begin // 2bpp
if( MODEL == SUPERPAC || MODEL == GROBDA || MODEL == PACNPAL) begin // 2bpp
CLT1_A[9:2]= { 2'd0, CLT1_A[9:4] };
end
end

View File

@@ -35,8 +35,7 @@ module DRUAGA_VIDEO
input FLIP_SCREEN
);
parameter [2:0] SUPERPAC=3'd5;
parameter [2:0] GROBDA=3'd6;
`include "param.v"
wire [8:0] HPOS = PH-8'd16;
wire [8:0] VPOS = PV;
@@ -91,11 +90,11 @@ always @ ( posedge VCLKx8 ) begin
end
assign CLT0_A = BGPN ^ ( (MODEL==SUPERPAC || MODEL==GROBDA) ? 8'h0 : 8'h03 );
assign VRAM_A = VRAMADRS & ( (MODEL==SUPERPAC || MODEL==GROBDA) ? 11'h3FF : 11'h7FF );
assign CLT0_A = BGPN ^ ( (MODEL==SUPERPAC || MODEL==GROBDA || MODEL==PACNPAL) ? 8'h0 : 8'h03 );
assign VRAM_A = VRAMADRS & ( (MODEL==SUPERPAC || MODEL==GROBDA || MODEL==PACNPAL) ? 11'h3FF : 11'h7FF );
wire BGHI = BGH & (CLT0_D!=4'd15);
wire [4:0] BGCOL = { 1'b1, ((MODEL==SUPERPAC || MODEL==GROBDA) ? ~CLT0_D :CLT0_D) };
wire [4:0] BGCOL = { 1'b1, ((MODEL==SUPERPAC || MODEL==GROBDA || MODEL==PACNPAL) ? ~CLT0_D :CLT0_D) };
always @(*) begin
COL = HPOS[8:3] ^ {5{FLIP_SCREEN}};
@@ -103,7 +102,7 @@ always @(*) begin
// rather than the original circuit count.
ROW = (VPOS[8:3] + 6'h2) ^ {5{FLIP_SCREEN}};
if( MODEL==SUPERPAC || MODEL==GROBDA ) begin
if( MODEL==SUPERPAC || MODEL==GROBDA || MODEL==PACNPAL) begin
VRAMADRS = { 1'b0,
COL[5] ? {COL[4:0], ROW[4:0]} :
{ROW[4:0], COL[4:0]}
@@ -119,7 +118,7 @@ end
//----------------------------------------
wire [4:0] SPCOL;
DRUAGA_SPRITE #(.SUPERPAC(SUPERPAC)) spr
DRUAGA_SPRITE spr
(
VCLKx8, VCLK_EN,
HPOS, VPOS, oHB,

View File

@@ -41,8 +41,6 @@ module fpga_druaga
input FLIP_SCREEN
);
parameter [2:0] SUPERPAC=3'd5;
// Clock Generator
reg [4:0] CLKS;
@@ -79,7 +77,7 @@ wire [10:0] vram_a;
wire [15:0] vram_d;
wire [6:0] spra_a;
wire [23:0] spra_d;
MEMS #(.SUPERPAC(SUPERPAC)) mems
MEMS mems
(
MCLK,
CLKCPUx2,
@@ -101,7 +99,7 @@ wire SCPU_IRQ, SCPU_IRQEN;
wire SCPU_RESET, IO_RESET;
wire PSG_ENABLE;
REGS #(.SUPERPAC(SUPERPAC)) regs
REGS regs
(
CLKCPUx2, RESET, oVB,
MCPU_ADRS, MCPU_VMA, MCPU_WE,
@@ -117,7 +115,7 @@ REGS #(.SUPERPAC(SUPERPAC)) regs
// I/O Controler
wire IsMOTOS;
IOCTRL #(.SUPERPAC(SUPERPAC)) ioctrl(
IOCTRL ioctrl(
CLKCPUx2, oVB, IO_RESET, MCPU_CS_IO, MCPU_WE, MCPU_ADRS[5:0],
MCPU_DO,
IO_O,
@@ -241,8 +239,7 @@ module MEMS
input [2:0] MODEL
);
parameter [2:0] SUPERPAC=3'd5;
parameter [2:0] GROBDA=3'd6;
`include "param.v"
wire [7:0] mrom_d, srom_d;
//DLROM #(15,8) mcpui( CPUCLKx2, MCPU_ADRS[14:0], mrom_d, ROMCL,ROMAD[14:0],ROMDT,ROMEN & (ROMAD[16:15]==2'b0_0));
@@ -266,7 +263,7 @@ wire mrom_cs = ( MCPU_ADRS[15] ) & MCPU_VMA; // $8000-$FFFF
always @(*) begin
cram_ad = mram_ad;
if( MODEL == SUPERPAC || MODEL == GROBDA) begin
if( MODEL == SUPERPAC || MODEL == GROBDA || MODEL == PACNPAL) begin
mram_cs0 = ( MCPU_ADRS[15:10] == 6'b000000 ) && MCPU_VMA; // $0000-$03FF
mram_cs1 = ( MCPU_ADRS[15:10] == 6'b000001 ) && MCPU_VMA; // $0400-$07FF
mram_cs2 = ( MCPU_ADRS[15:11] == 5'b00001 ) && MCPU_VMA; // $1000-$17FF
@@ -352,16 +349,14 @@ module REGS
input [2:0] MODEL
);
parameter [2:0] SUPERPAC=3'd5;
parameter [2:0] GROBDA=3'd6;
`include "param.v"
// BG Scroll Register
wire MCPU_SCRWE = ( ( MCPU_ADRS[15:11] == 5'b00111 ) & MCPU_VMA & MCPU_WE );
always @ ( negedge MCPU_CLK or posedge RESET ) begin
if ( RESET ) SCROLL <= 8'h0;
else begin
if( MODEL==SUPERPAC || MODEL==GROBDA)
if( MODEL==SUPERPAC || MODEL==GROBDA || MODEL==PACNPAL)
SCROLL <= 8'd0;
else if ( MCPU_SCRWE )
SCROLL <= MCPU_ADRS[10:3];

View File

@@ -42,13 +42,12 @@ reg [9:0] pSTKTRG12;
reg [2:0] pCSTART12;
reg bUpdate;
reg bIOMode;
parameter [2:0] SUPERPAC=3'd5;
reg [1:0] bIOMode;
`include "param.v"
assign OUT = { 4'b1111, outr };
assign IsMOTOS = bIOMode;
assign IsMOTOS = bIOMode == 1;
// Detect falling edges:
wire [11:0] iSTKTRG12 = ( STKTRG12 ^ pSTKTRG12 ) & STKTRG12;
@@ -60,13 +59,13 @@ BCDCONV creditsBCD( credits, CREDIT_ONES, CREDIT_TENS );
always @ ( posedge CLK ) begin
if ( ENABLE ) begin
if ( ADRS[5] ) begin
if ( WR ) memc[ADRS[4:0]] <= IN;
if ( WR ) memc[ADRS[4:0]] <= IN[3:0];
outr <= memc[ADRS[4:0]];
end else if ( ADRS[4] ) begin
if ( WR ) memb[ADRS[3:0]] <= IN;
if ( WR ) memb[ADRS[3:0]] <= IN[3:0];
outr <= memb[ADRS[3:0]];
end else begin
if ( WR ) mema[ADRS[3:0]] <= IN;
if ( WR ) mema[ADRS[3:0]] <= IN[3:0];
outr <= mema[ADRS[3:0]];
end
end
@@ -78,14 +77,28 @@ always @ ( posedge CLK ) begin
credits <= 0;
end else begin
if ( UPDATE & (~bUpdate) ) begin
if ( mema[4'h8] == 4'h8 || MODEL==SUPERPAC )
bIOMode <= 1'b1; // Is running "Motos" ?
if (MODEL == PACNPAL)
bIOMode <= 2'd3;
else if (MODEL == GROBDA)
bIOMode <= 2'd2;
else if ( mema[4'h8] == 4'h8 || MODEL==SUPERPAC)
bIOMode <= 2'd1; // Is running "Motos" ?
if ( bIOMode ) begin
`include "ioctrl_1.v"
if ( bIOMode == 3) begin
`include "ioctrl_1a.v"
`include "ioctrl_2b.v"
end
else if ( bIOMode == 2) begin
`include "ioctrl_0a.v"
`include "ioctrl_1b.v"
end
else if ( bIOMode == 1) begin
`include "ioctrl_1a.v"
`include "ioctrl_1b.v"
end
else begin
`include "ioctrl_0.v"
`include "ioctrl_0a.v"
`include "ioctrl_0b.v"
end
pCSTART12 <= CSTART12;

View File

@@ -12,21 +12,21 @@
if ( iCSTART12[2] & ( credits < 99 ) ) begin
credit_add = 8'h01;
credits = credits + 1;
credits = credits + 1'd1;
end
if ( mema[4'h9] == 0 ) begin
if ( ( credits >= 2 ) & iCSTART12[1] ) begin
credit_sub = 8'h02;
credits = credits - 2;
credits = credits - 2'd2;
end else if ( ( credits >= 1 ) & iCSTART12[0] ) begin
credit_sub = 8'h01;
credits = credits - 1;
credits = credits - 1'd1;
end
end
mema[4'h0] <= credit_add;
mema[4'h1] <= credit_sub | {7'd0,CSTART12[0]};
mema[4'h1] <= credit_sub | {3'd0,CSTART12[0]};
mema[4'h2] <= CREDIT_TENS;
mema[4'h3] <= CREDIT_ONES;
mema[4'h4] <= STKTRG12[3:0];
@@ -60,48 +60,3 @@
default:;
endcase
case ( memb[4'h8] )
4'h1,4'h3: begin
memb[4'h0] <= 0;
memb[4'h1] <= 0;
memb[4'h2] <= 0;
memb[4'h3] <= 0;
memb[4'h4] <= 0;
memb[4'h5] <= 0;
memb[4'h6] <= 0;
memb[4'h7] <= 0;
end
4'h4: begin
memb[4'h0] <= DIPSW[11: 8]; // (P0) DSW1 Mappy
memb[4'h1] <= DIPSW[15:12];
memb[4'h2] <= DIPSW[ 3: 0]; // (P1) DSW0
memb[4'h4] <= DIPSW[ 7: 4];
memb[4'h5] <={DIPSW[15:14],STKTRG12[ 5],iSTKTRG12[ 5]}; // (P2) DSW1 Druaga/DigDug2
memb[4'h6] <= DIPSW[23:20]; // IsMappy ? DIPSW[19:16] : DIPSW[11:8]
memb[4'h7] <={DIPSW[19:18],STKTRG12[11],iSTKTRG12[11]}; // (P3) DSW2
memb[4'h3] <= 0;
end
4'h5: begin
memb[4'h0] <= 4'h0;
memb[4'h1] <= 4'h8;
memb[4'h2] <= 4'h4;
memb[4'h3] <= 4'h6;
memb[4'h4] <= 4'hE;
memb[4'h5] <= 4'hD;
memb[4'h6] <= 4'h9;
memb[4'h7] <= 4'hD;
end
default:;
endcase

View File

@@ -0,0 +1,49 @@
//------------------------------------------
// I/O Chip for "Mappy/Druaga/DigDug2"
//
// Copyright (c) 2007,19 MiSTer-X
//------------------------------------------
case ( memb[4'h8] )
4'h1,4'h3: begin
memb[4'h0] <= 0;
memb[4'h1] <= 0;
memb[4'h2] <= 0;
memb[4'h3] <= 0;
memb[4'h4] <= 0;
memb[4'h5] <= 0;
memb[4'h6] <= 0;
memb[4'h7] <= 0;
end
4'h4: begin
memb[4'h0] <= DIPSW[11: 8]; // (P0) DSW1 Mappy
memb[4'h1] <= DIPSW[15:12];
memb[4'h2] <= DIPSW[ 3: 0]; // (P1) DSW0
memb[4'h4] <= DIPSW[ 7: 4];
memb[4'h5] <={DIPSW[15:14],STKTRG12[ 5],iSTKTRG12[ 5]}; // (P2) DSW1 Druaga/DigDug2
memb[4'h6] <= DIPSW[23:20]; // IsMappy ? DIPSW[19:16] : DIPSW[11:8]
memb[4'h7] <={DIPSW[19:18],STKTRG12[11],iSTKTRG12[11]}; // (P3) DSW2
memb[4'h3] <= 0;
end
4'h5: begin
memb[4'h0] <= 4'h0;
memb[4'h1] <= 4'h8;
memb[4'h2] <= 4'h4;
memb[4'h3] <= 4'h6;
memb[4'h4] <= 4'hE;
memb[4'h5] <= 4'hD;
memb[4'h6] <= 4'h9;
memb[4'h7] <= 4'hD;
end
default:;
endcase

View File

@@ -25,21 +25,21 @@
if ( iCSTART12[2] & ( credits < 99 ) ) begin
credit_add = 8'h01;
credits = credits + 1;
credits = credits + 1'd1;
end
if ( mema[4'h9] == 0 ) begin
if ( ( credits >= 2 ) && iCSTART12[1] ) begin
credit_sub = 8'h02;
credits = credits - 2;
credits = credits - 2'd2;
end else if ( ( credits >= 1 ) && iCSTART12[0] ) begin
credit_sub = 8'h01;
credits = credits - 1;
credits = credits - 1'd1;
end
end
mema[4'h0] <= credit_add;
mema[4'h1] <= credit_sub | {7'd0,CSTART12[0]};
mema[4'h1] <= credit_sub | {3'd0,CSTART12[0]};
mema[4'h2] <= CREDIT_TENS;
mema[4'h3] <= CREDIT_ONES;
mema[4'h4] <= STKTRG12[3:0];
@@ -57,28 +57,3 @@
default:;
endcase
case ( memb[4'h8] )
4'h8: begin
memb[4'h0] <= 4'h6;
memb[4'h1] <= 4'h9;
end
4'h9: begin
memb[4'h2] <= DIPSW[3:0];
memb[4'h4] <= DIPSW[7:4];
memb[4'h6] <= DIPSW[15:12];
memb[4'h0] <= 0;
memb[4'h1] <= 0;
memb[4'h3] <= 0;
memb[4'h5] <= 0;
memb[4'h7] <= 0;
end
default:;
endcase

View File

@@ -0,0 +1,29 @@
//------------------------------------------
// I/O Chip for "Motos"
// Namco 56xx
//
// Copyright (c) 2007,19 MiSTer-X
//------------------------------------------
case ( memb[4'h8] )
4'h8: begin
memb[4'h0] <= 4'h6;
memb[4'h1] <= 4'h9;
end
4'h9: begin
memb[4'h2] <= DIPSW[3:0];
memb[4'h4] <= DIPSW[7:4];
memb[4'h6] <= DIPSW[15:12];
memb[4'h0] <= DIPSW[19:16];
memb[4'h1] <= DIPSW[23:20];
memb[4'h3] <= 0;
memb[4'h5] <= 0;
memb[4'h7] <= 0;
end
default:;
endcase

View File

@@ -0,0 +1,25 @@
//------------------------------------------
// I/O Chip for "Pac & Pal"
// Namco 59xx
//
// Copyright (c) 2007,19 MiSTer-X
// Copyright (c) 2022 Slingshot
//------------------------------------------
case ( memb[4'h8] )
4'h3: begin
memb[4'h4] <= DIPSW[3:0]; //0
memb[4'h5] <= DIPSW[23:20]; //2
memb[4'h6] <= DIPSW[19:16]; //1
memb[4'h7] <= DIPSW[15:12]; //3
memb[4'h0] <= 0;
memb[4'h1] <= 0;
memb[4'h2] <= 0;
memb[4'h3] <= 0;
end
default:;
endcase

View File

@@ -0,0 +1,3 @@
localparam [2:0] SUPERPAC=3'd5;
localparam [2:0] GROBDA=3'd6;
localparam [2:0] PACNPAL=3'd7;

View File

@@ -18,7 +18,9 @@
-- Left Ctrl : Trig1
-- Left Alt : Trig2
-- SPACE : Trig3
--
---------------------------------------------------------------------------------
-- Original by:
--
-- Arcade: SEGA System 1 for MiSTer by MiSTer-X
-- 07 January 2020
@@ -30,48 +32,50 @@
-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org)
---------------------------------------------------------------------------------
--
-- Keyboard inputs :
-- System2 based on the work of Blackwine
--
-- F2 : Coin + Start 2 players
-- F1 : Coin + Start 1 player
-- UP,DOWN,LEFT,RIGHT arrows : Movements
-- SPACE : Trig1
-- CTRL : Trig2
-- ALT : Trig3
--
-- MAME/IPAC/JPAC Style Keyboard inputs:
-- 5 : Coin 1
-- 6 : Coin 2
-- 1 : Start 1 Player
-- 2 : Start 2 Players
-- R,F,D,G : Player 2 Movements
-- A : Player 2 Trig1
-- S : Player 2 Trig2
-- Q : Player 2 Trig3
-- Games currently supported:
--
-- Joystick support.
-- SYSTEM1
-- -------
--
---------------------------------------------------------------------------------
-- 2020/01/08 Impl. Trigger 3 (for SEGA Ninja)
---------------------------------------------------------------------------------
*** Attention ***
ROM is not included. In order to use this arcade, you need to provide a correct ROM file.
Find this zip file somewhere. You need to find the file exactly as required.
Do not rename other zip files even if they also represent the same game - they are not compatible!
The name of zip is taken from M.A.M.E. project, so you can get more info about
hashes and contained files there.
How to install:
0. Update MiSTer binary to v200106 or later
1. copy releases/*.mra to /media/fat/_Arcade
2. copy releases/*.rbf to /media/fat/_Arcade/cores
3. copy ROM zip files to /media/fat/_Arcade/mame
Be sure to use the MRA file in "releases" of this repository.
It does not guarantee the operation when using other MRA files.
-- 4-D Warriors
-- Block Gal
-- Brain
-- Bullfight
-- Flicky
-- Gardia
-- Heavy Metal
-- I'm Sorry
-- Mister Viking
-- My Hero
-- Pitfall II
-- Rafflesia
-- Regulus
-- Sega Ninja
-- Spatter
-- Star Jacker
-- SWAT
-- TeddyBoy Blues
-- Up'n Down
-- Water Match
-- Wonder Boy
--
-- SYSTEM2
-- -------
--
-- Choplifter
-- Toki no Senshi - Chrono Soldier
-- Ufo Senshi Yohko Chan
-- Wonder Boy in Monster Land
--
--
-- Currently not supported:
--
-- Noboranka / Zippy Bug (bootleg)
-- DakkoChan House
-- 119
-- Senryaku Game Bopeep
-- Shooting Master
-- Warball

View File

@@ -41,7 +41,7 @@
# ========================
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL
set_global_assignment -name LAST_QUARTUS_VERSION "13.1 SP4.26"
set_global_assignment -name LAST_QUARTUS_VERSION 13.1
set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:rtl/build_id.tcl"
# Pin & Location Assignments
@@ -154,7 +154,7 @@ set_global_assignment -name USE_CONFIGURATION_DEVICE OFF
# SignalTap II Assignments
# ========================
set_global_assignment -name ENABLE_SIGNALTAP OFF
set_global_assignment -name USE_SIGNALTAP_FILE output_files/dect.stp
set_global_assignment -name USE_SIGNALTAP_FILE output_files/dect2.stp
# Power Estimation Assignments
# ============================
@@ -224,6 +224,9 @@ set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
# ------------------------
set_global_assignment -name TIMEQUEST_MULTICORNER_ANALYSIS ON
set_global_assignment -name SMART_RECOMPILE ON
set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION ON
set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC_FOR_AREA ON
set_global_assignment -name PHYSICAL_SYNTHESIS_MAP_LOGIC_TO_MEMORY_FOR_AREA ON
set_global_assignment -name SYSTEMVERILOG_FILE rtl/Segasys1_MiST.sv
set_global_assignment -name VERILOG_FILE rtl/HVGEN.v
set_global_assignment -name VERILOG_FILE rtl/SEGASYS1.v
@@ -233,6 +236,7 @@ set_global_assignment -name VERILOG_FILE rtl/SEGASYS1_SOUND.v
set_global_assignment -name VERILOG_FILE rtl/SEGASYS1_PRGDEC.v
set_global_assignment -name VERILOG_FILE rtl/SEGASYS1_MAIN.v
set_global_assignment -name VERILOG_FILE rtl/parts.v
set_global_assignment -name VERILOG_FILE rtl/MC8123.v
set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv
set_global_assignment -name VERILOG_FILE rtl/pll_mist.v
set_global_assignment -name VERILOG_FILE rtl/z80ip.v
@@ -244,7 +248,5 @@ set_global_assignment -name QIP_FILE ../../common/mist/mist.qip
set_global_assignment -name SIGNALTAP_FILE output_files/bg.stp
set_global_assignment -name SIGNALTAP_FILE output_files/spr.stp
set_global_assignment -name SIGNALTAP_FILE output_files/dect.stp
set_global_assignment -name PHYSICAL_SYNTHESIS_REGISTER_DUPLICATION ON
set_global_assignment -name PHYSICAL_SYNTHESIS_COMBO_LOGIC_FOR_AREA ON
set_global_assignment -name PHYSICAL_SYNTHESIS_MAP_LOGIC_TO_MEMORY_FOR_AREA ON
set_global_assignment -name SIGNALTAP_FILE output_files/dect2.stp
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top

View File

@@ -1,63 +0,0 @@
<misterromdescription>
<name>4D Warriors</name>
<mameversion>0216</mameversion>
<setname>4dwarrio</setname>
<mratimestamp>202001100000</mratimestamp>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<category>Shmup</category>
<rbf>segasys1</rbf>
<switches default="FF,FF" base="8">
<dip bits="9,10" name="Lives" ids="Free Play,5,4,3"/>
<dip bits="11,13" name="Bonus at" ids="Never,90k,80k,70k,60k,50k,40k,30k"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>04</part>
</rom>
<rom index="0" zip="4dwarrio.zip" md5="3d4c746696e10b81c35b7aa0f0578bd4" type="merged|nonmerged|split">
<part name="4d.116"/>
<part name="4d.109"/>
<part name="4d.96"/>
<part name="4d.120"/>
<part name="4d.120"/>
<part name="4d.117"/>
<part name="4d.04"/>
<part name="4d.110"/>
<part name="4d.05"/>
<interleave output="32">
<part name="4d.62" map="0001"/>
<part name="4d.64" map="0010"/>
<part name="4d.66" map="0100"/>
<part name="4d.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="4d.61" map="0001"/>
<part name="4d.63" map="0010"/>
<part name="4d.65" map="0100"/>
<part name="4d.65" map="1000"/>
</interleave>
<part name="pr5317.76"/>
<part>
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0C
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,113 @@
<misterromdescription>
<name>4-D Warriors (315-5162)</name>
<setname>4dwarrio</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1985</year>
<manufacturer>Coreland / Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>horizontal</rotation>
<region>World</region>
<buttons names="Leg Weapon,Arm Beam,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,FE">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Lives" bits="9,10" ids="Infinite,5,4,3"/>
<dip name="Bonus Life" bits="11,13" ids="None,90k,80k,70k,60k,50k,40k,30k"/>
<dip name="Difficulty" bits="14" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>04</part>
</rom>
<rom index="0" zip="4dwarrio.zip" type="merged" md5="922fddc7d30c73ae84f64cd5b84c1222">
<!-- soundcpu, size: 0x8000 -->
<part crc="5241c009" name="4d.120"/>
<part crc="5241c009" name="4d.120"/>
<part crc="5241c009" name="4d.120"/>
<part crc="5241c009" name="4d.120"/>
<!-- maincpu, size: 0x18000 -->
<part crc="546d1bc7" name="4d.116"/>
<part crc="f1074ec3" name="4d.109"/>
<part crc="387c1e8f" name="4d.96"/>
<part crc="387c1e8f" name="4d.96"/>
<part crc="387c1e8f" name="4d.96"/>
<part crc="387c1e8f" name="4d.96"/>
<!-- sprites, size: 0x20000 -->
<part crc="436e4141" name="4d.117"/>
<part crc="8b7cecef" name="4d.04"/>
<part crc="6ec5990a" name="4d.110"/>
<part crc="f31a1e6a" name="4d.05"/>
<part crc="436e4141" name="4d.117"/>
<part crc="8b7cecef" name="4d.04"/>
<part crc="6ec5990a" name="4d.110"/>
<part crc="f31a1e6a" name="4d.05"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part crc="f31b2e09" name="4d.62"/>
<part crc="9f442351" name="4d.64"/>
<part crc="52bfa2ed" name="4d.66"/>
<part crc="52bfa2ed" name="4d.66"/>
</interleave>
<interleave output="32">
<part crc="5430e925" name="4d.61"/>
<part crc="633232bd" name="4d.63"/>
<part crc="e9ba4658" name="4d.65"/>
<part crc="e9ba4658" name="4d.65"/>
</interleave>
<interleave output="32">
<part crc="f31b2e09" name="4d.62"/>
<part crc="9f442351" name="4d.64"/>
<part crc="52bfa2ed" name="4d.66"/>
<part crc="52bfa2ed" name="4d.66"/>
</interleave>
<interleave output="32">
<part crc="5430e925" name="4d.61"/>
<part crc="633232bd" name="4d.63"/>
<part crc="e9ba4658" name="4d.65"/>
<part crc="e9ba4658" name="4d.65"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr5317.76"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5162 -->
<part>
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 0a
0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0b
0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0c
</part>
</rom>
<rom index="3" md5="none">
<part>
00 00 00 00 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 D3 00 00 A0 00 20 00 00 C0 17 00 03 00 02
</part>
</rom>
<mratimestamp>20210629000000</mratimestamp>
</misterromdescription>

View File

@@ -0,0 +1,98 @@
<misterromdescription>
<name>Block Gal (MC-8123B, 317-0029)</name>
<setname>blockgal</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1987</year>
<manufacturer>Sega / Vic Tokai</manufacturer>
<players>2</players>
<joystick>4-way</joystick>
<rotation>vertical/cw</rotation>
<region>World</region>
<buttons names="Launch,Fast-Move,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,CE">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Demo Sounds" bits="9" ids="Off,On"/>
<dip name="Lives" bits="11" ids="3,2"/>
<dip name="Bonus Life" bits="12" ids="30/5/1/2/300k,10/3/6/1/150k"/>
<dip name="Allow Continue" bits="13" ids="Yes,No"/>
<dip name="Service Mode" bits="15" ids="On,Off"/>
</switches>
<rom index="0" zip="blockgal.zip" type="merged" md5="987e7e3b5d4b3d2060776e0482f6ac57">
<!-- soundcpu, size: 0x8000 -->
<part crc="d848faff" name="bg.120"/>
<part crc="d848faff" name="bg.120"/>
<part crc="d848faff" name="bg.120"/>
<part crc="d848faff" name="bg.120"/>
<!-- maincpu, size: 0x18000 -->
<part crc="a99b231a" name="bg.116"/>
<part crc="a6b573d5" name="bg.109"/>
<part repeat="0x10000">00</part>
<!-- sprites, size: 0x20000 -->
<part crc="e99cc920" name="bg.117"/>
<part crc="213057f8" name="bg.04"/>
<part crc="064c812c" name="bg.110"/>
<part crc="02e0b040" name="bg.05"/>
<part crc="e99cc920" name="bg.117"/>
<part crc="213057f8" name="bg.04"/>
<part crc="064c812c" name="bg.110"/>
<part crc="02e0b040" name="bg.05"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part crc="7e3ea4eb" name="bg.62"/>
<part crc="17368663" name="bg.64"/>
<part crc="2b7dc4fa" name="bg.66"/>
<part crc="2b7dc4fa" name="bg.66"/>
</interleave>
<interleave output="32">
<part crc="4dd3d39d" name="bg.61"/>
<part crc="0c8bc404" name="bg.63"/>
<part crc="ed121306" name="bg.65"/>
<part crc="ed121306" name="bg.65"/>
</interleave>
<interleave output="32">
<part crc="7e3ea4eb" name="bg.62"/>
<part crc="17368663" name="bg.64"/>
<part crc="2b7dc4fa" name="bg.66"/>
<part crc="2b7dc4fa" name="bg.66"/>
</interleave>
<interleave output="32">
<part crc="4dd3d39d" name="bg.61"/>
<part crc="0c8bc404" name="bg.63"/>
<part crc="ed121306" name="bg.65"/>
<part crc="ed121306" name="bg.65"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr5317.76"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<part repeat="0x1C00">00</part>
<!-- decryption key, size: 0x2000 -->
<part name="317-0029.key"/>
</rom>
<rom index="1">
<part>32</part>
</rom>
<rom index="3" md5="none">
<part>
00 00 00 00 00 FF 00 02
00 02 00 01 00 FF 00 00
00 00 C0 62 00 03 00 01
</part>
</rom>
<nvram index="4" size="3"/>
</misterromdescription>

View File

@@ -0,0 +1,70 @@
<misterromdescription>
<name>Brain</name>
<mameversion>0229</mameversion>
<setname>brain</setname>
<mratimestamp>20210629000000</mratimestamp>
<year>1986</year>
<manufacturer>Coreland / Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>horizontal</rotation>
<category>Shooter</category>
<rbf>segasys1</rbf>
<buttons names="Shoot,Bomb,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,Start,Select,R,C"/>
<switches base="8" default="FF,7C">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="12,13" name="Extend" ids="90000,70000,50000,30000"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" md5="none" zip="brain.zip">
<!-- soundcpu, size: 0x8000 -->
<part crc="c7e50278" name="brain.120"/>
<!-- maincpu, size: 0x18000 -->
<part crc="2d2aec31" name="brain.1"/>
<part crc="810a8ab5" name="brain.2"/>
<part crc="9a225634" name="brain.3"/>
<!-- sprites, size: 0x20000 -->
<part crc="92ff71a4" name="brain.117"/>
<part crc="a1b847ec" name="brain.110"/>
<part crc="fd2ea53b" name="brain.4"/>
<part repeat="0x8000">ff</part>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part crc="7dce2302" name="brain.62"/>
<part crc="7ce03fd3" name="brain.64"/>
<part crc="ea54323f" name="brain.66"/>
<part crc="ea54323f" name="brain.66"/>
</interleave>
<interleave output="32">
<part crc="7dce2302" name="brain.62"/>
<part crc="7ce03fd3" name="brain.64"/>
<part crc="ea54323f" name="brain.66"/>
<part crc="ea54323f" name="brain.66"/>
</interleave>
<!-- lookup_proms, size: 0x0100 -->
<part crc="648350b8" name="pr5317.76"/>
<!-- color_proms, size: 0x0300 -->
<part crc="8eee0f72" name="bprom.3"/>
<part crc="3e7babd7" name="bprom.2"/>
<part crc="371c44a6" name="bprom.1"/>
<!-- encryption_device: none -->
<part repeat="0x100">00</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,120 @@
<misterromdescription>
<name>Bullfight (315-5065)</name>
<setname>bullfgt</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1984</year>
<manufacturer>Coreland / Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>horizontal</rotation>
<region>World</region>
<switches base="8" default="FF,FC">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Demo Sounds" bits="9" ids="On,Off"/>
<dip name="Lives" bits="10,11" ids="Infinite,5,4,3"/>
<dip name="Bonus Life" bits="12,13" ids="None,70k,50k,30k"/>
</switches>
<buttons names="Sword,Cape,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<rom index="0" zip="bullfgt.zip" type="merged" md5="2b9ee07a90e03469d7834c0c9b456176">
<!-- soundcpu, size: 0x8000 -->
<part crc="02a37602" name="epr-6077.120"/>
<part crc="02a37602" name="epr-6077.120"/>
<part crc="02a37602" name="epr-6077.120"/>
<part crc="02a37602" name="epr-6077.120"/>
<!-- maincpu, size: 0x18000 -->
<part crc="29f19156" name="epr-.129"/>
<part crc="e37d2b95" name="epr-.130"/>
<part crc="eaf5773d" name="epr-.131"/>
<part crc="72c3c712" name="epr-.132"/>
<part crc="7d9fa4cd" name="epr-.133"/>
<part crc="061f2797" name="epr-.134"/>
<part crc="7d9fa4cd" name="epr-.133"/>
<part crc="061f2797" name="epr-.134"/>
<part crc="7d9fa4cd" name="epr-.133"/>
<part crc="061f2797" name="epr-.134"/>
<part crc="7d9fa4cd" name="epr-.133"/>
<part crc="061f2797" name="epr-.134"/>
<!-- sprites, size: 0x20000 -->
<part crc="fe691e41" name="epr-6069.86"/>
<part crc="34f080df" name="epr-6070.93"/>
<part crc="fe691e41" name="epr-6069.86"/>
<part crc="34f080df" name="epr-6070.93"/>
<part crc="fe691e41" name="epr-6069.86"/>
<part crc="34f080df" name="epr-6070.93"/>
<part crc="fe691e41" name="epr-6069.86"/>
<part crc="34f080df" name="epr-6070.93"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-.82" map="0001"/>
<part name="epr-6087.81" map="0010"/>
<part name="epr-6085.80" map="0100"/>
<part name="epr-6085.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-.65" map="0001"/>
<part name="epr-.64" map="0010"/>
<part name="epr-.63" map="0100"/>
<part name="epr-.63" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-.82" map="0001"/>
<part name="epr-6087.81" map="0010"/>
<part name="epr-6085.80" map="0100"/>
<part name="epr-6085.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-.65" map="0001"/>
<part name="epr-.64" map="0010"/>
<part name="epr-.63" map="0100"/>
<part name="epr-.63" map="1000"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.106"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5056 -->
<part>
a0 a8 20 28 80 a0 00 20
20 28 00 08 20 28 00 08
a0 a8 20 28 08 28 00 20
88 08 a8 28 88 08 a8 28
a0 a8 20 28 20 28 00 08
28 a8 20 a0 20 28 00 08
a0 a8 20 28 08 28 00 20
88 08 a8 28 88 08 a8 28
28 a8 20 a0 a0 a8 20 28
88 08 a8 28 80 a0 00 20
28 a8 20 a0 08 28 00 20
28 a8 20 a0 80 a0 00 20
20 28 00 08 20 28 00 08
88 08 a8 28 20 28 00 08
08 28 00 20 80 a0 00 20
08 28 00 20 88 08 a8 28
</part>
</rom>
<rom index="1">
<part>00</part>
</rom>
<rom index="3" md5="none">
<part>
00 00 00 00 00 FF 00 02
00 02 00 01 00 FF 00 00
00 00 D3 00 00 3C 00 49
00 00 C0 14 00 03 00 02
</part>
</rom>
<nvram index="4" size="63"/>
</misterromdescription>

View File

@@ -1,61 +0,0 @@
<misterromdescription>
<name>Bull Fight (315-5065)</name>
<mameversion>0217</mameversion>
<setname>bullfgt</setname>
<mratimestamp>202001070000</mratimestamp>
<year>1984</year>
<manufacturer>Coreland / Sega</manufacturer>
<category>Sport</category>
<rbf>segasys1</rbf>
<switches default="FF,7E" base="8">
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="12,13" name="Extend" ids="None,70000,50000,30000"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" zip="bullfgt.zip" md5="ea1314a026a422e747d3891087a63d84" type="merged|nonmerged|split">
<part name="epr-.129"/>
<part name="epr-.130"/>
<part name="epr-.131"/>
<part name="epr-.132"/>
<part name="epr-.133"/>
<part name="epr-.134"/>
<part name="epr-6077.120"/>
<part name="epr-6077.120"/>
<part name="epr-6069.86"/>
<part name="epr-6070.93"/>
<part name="epr-6069.86"/>
<part name="epr-6070.93"/>
<interleave output="32">
<part name="epr-.82" map="0001"/>
<part name="epr-6087.81" map="0010"/>
<part name="epr-6085.80" map="0100"/>
<part name="epr-6085.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-.65" map="0001"/>
<part name="epr-.64" map="0010"/>
<part name="epr-.63" map="0100"/>
<part name="epr-.63" map="1000"/>
</interleave>
<part name="pr-5317.106"/>
<part>
a0 a8 20 28 80 a0 00 20 20 28 00 08 20 28 00 08
a0 a8 20 28 08 28 00 20 88 08 a8 28 88 08 a8 28
a0 a8 20 28 20 28 00 08 28 a8 20 a0 20 28 00 08
a0 a8 20 28 08 28 00 20 88 08 a8 28 88 08 a8 28
28 a8 20 a0 a0 a8 20 28 88 08 a8 28 80 a0 00 20
28 a8 20 a0 08 28 00 20 28 a8 20 a0 80 a0 00 20
20 28 00 08 20 28 00 08 88 08 a8 28 20 28 00 08
08 28 00 20 80 a0 00 20 08 28 00 20 88 08 a8 28
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,74 @@
<misterromdescription>
<name>Choplifter (unprotected)</name>
<mameversion>0229</mameversion>
<setname>chopliftu</setname>
<mratimestamp>20210706000000</mratimestamp>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<category>Shooter</category>
<rbf>segasys1</rbf>
<switches base="8" default="DE,FF">
<!-- SWA -->
<dip name="Coin A" bits="8,11" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="12,15" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip bits="0" name="Cabinet" ids="Upright,Cocktail"/>
-->
<dip bits="1" name="Demo Sound" ids="On,Off"/>
<dip bits="2,3" name="Lives" ids="Infinite,4,2,3"/>
<dip bits="4" name="Extend" ids="50k 100k 150k 200k,20k 70k 120k 170k"/>
<dip bits="5" name="Difficulty" ids="Hard,Easy"/>
</switches>
<buttons names="Shoot,Direction Change,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,Start,Select,R,L"/>
<rom index="1">
<part>41</part>
</rom>
<rom index="0" md5="e7ac2ede600034deb6a2c2e3151828d0" zip="choplift.zip">
<!-- soundcpu, size: 0x8000 -->
<part crc="346af118" name="epr-7130.ic126"/>
<!-- maincpu, size: 0x18000 -->
<part crc="fe49d83e" name="epr-7152.ic90"/>
<part crc="48697666" name="epr-7153.ic91"/>
<part crc="56d6222a" name="epr-7154.ic92"/>
<!-- sprites, size: 0x20000 -->
<part crc="f2b88f73" name="epr-7121.ic87"/>
<part crc="517d7fd3" name="epr-7120.ic86"/>
<part crc="8f16a303" name="epr-7123.ic89"/>
<part crc="7c93f160" name="epr-7122.ic88"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part crc="1e708f6d" name="epr-7127.ic4"/>
<part crc="b922e787" name="epr-7128.ic5"/>
<part crc="bd3b6e6e" name="epr-7129.ic6"/>
<part crc="bd3b6e6e" name="epr-7129.ic6"/>
</interleave>
<!-- lookup_proms, size: 0x0100 -->
<part crc="648350b8" name="pr5317.ic28"/>
<!-- color_proms, size: 0x0300 -->
<part crc="b2a8260f" name="pr7119.ic20"/>
<part crc="693e20c7" name="pr7118.ic14"/>
<part crc="4124307e" name="pr7117.ic8"/>
<part repeat="0x100">00</part>
<!-- plds, size: 0x0618 -->
<!--
<part crc="2c9229b4" name="315-5152.bin"/>
<part crc="dd223015" name="315-5138.bin"/>
-->
<!-- no dump -->
<!--
<part name="315-5139.bin"/>
<part name="315-5025.bin"/>
<part name="315-5025.bin"/>
<part name="315-5025.bin"/>
-->
</rom>
</misterromdescription>

View File

@@ -0,0 +1,114 @@
<misterromdescription>
<name>Flicky (128k Version, 315-5051)</name>
<setname>flicky</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1984</year>
<manufacturer>Sega</manufacturer>
<players>2</players>
<joystick>4-way</joystick>
<rotation>horizontal</rotation>
<region>World</region>
<buttons names="Flap,-,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="1"/>
<switches base="8" default="FF,FE">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Lives" bits="10,11" ids="Infinite,5,4,3"/>
<dip name="Bonus Life" bits="12,13" ids="40/140/280k,40/120/240k,30/100/200k,30/80/160k"/>
<dip name="Difficulty" bits="14" ids="Hard,Easy"/>
</switches>
<rom index="0" zip="flicky.zip" type="merged" md5="f1c3018664bda33e11cb2ab50320587e">
<!-- soundcpu, size: 0x8000 -->
<part crc="6d220d4e" name="epr-5869.120"/>
<part crc="6d220d4e" name="epr-5869.120"/>
<part crc="6d220d4e" name="epr-5869.120"/>
<part crc="6d220d4e" name="epr-5869.120"/>
<!-- maincpu, size: 0x18000 -->
<part crc="296f1492" name="epr-5978a.116"/>
<part crc="64b03ef9" name="epr-5979a.109"/>
<part repeat="0x10000">00</part>
<!-- sprites, size: 0x20000 -->
<part crc="b5f894a1" name="epr-5855.117"/>
<part crc="266af78f" name="epr-5856.110"/>
<part crc="b5f894a1" name="epr-5855.117"/>
<part crc="266af78f" name="epr-5856.110"/>
<part crc="b5f894a1" name="epr-5855.117"/>
<part crc="266af78f" name="epr-5856.110"/>
<part crc="b5f894a1" name="epr-5855.117"/>
<part crc="266af78f" name="epr-5856.110"/>
<!-- tiles, size: 0x20000 -->
<interleave output="32">
<part name="epr-5868.62" map="0001"/>
<part name="epr-5866.64" map="0010"/>
<part name="epr-5864.66" map="0100"/>
<part name="epr-5864.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5867.61" map="0001"/>
<part name="epr-5865.63" map="0010"/>
<part name="epr-5863.65" map="0100"/>
<part name="epr-5863.65" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5868.62" map="0001"/>
<part name="epr-5866.64" map="0010"/>
<part name="epr-5864.66" map="0100"/>
<part name="epr-5864.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5868.62" map="0001"/>
<part name="epr-5866.64" map="0010"/>
<part name="epr-5864.66" map="0100"/>
<part name="epr-5864.66" map="1000"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.76"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5051 -->
<part>
08 88 00 80 a0 80 a8 88
80 00 a0 20 88 80 08 00
a0 80 a8 88 28 08 20 00
28 08 20 00 a0 80 a8 88
08 88 00 80 80 00 a0 20
80 00 a0 20 88 80 08 00
28 08 20 00 28 08 20 00
28 08 20 00 88 80 08 00
08 88 00 80 a8 88 28 08
a8 88 28 08 80 00 a0 20
28 08 20 00 88 80 08 00
a8 88 28 08 88 80 08 00
08 88 00 80 80 00 a0 20
a8 88 28 08 80 00 a0 20
28 08 20 00 28 08 20 00
08 88 00 80 88 80 08 00
</part>
</rom>
<rom index="1">
<part>00</part>
</rom>
<rom index="3" md5="none">
<part>
00 8F FF FF 00 FF 00 02
00 02 00 01 00 FF 00 00
00 00 E7 00 00 31 00 41
00 00 C0 D5 00 03 00 00
</part>
</rom>
<nvram index="4" size="52"/>
</misterromdescription>

View File

@@ -1,59 +0,0 @@
<misterromdescription>
<name>Flicky (128k Version, 315-5051)</name>
<mameversion>0217</mameversion>
<setname>flicky</setname>
<mratimestamp>202001070000</mratimestamp>
<year>1984</year>
<manufacturer>Sega</manufacturer>
<category>Maze / Cat and Mouse</category>
<category>Platform</category>
<rbf>segasys1</rbf>
<switches default="FF,7C" base="8">
<dip bits="10,11" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="12,13" name="Extend" ids="40k 140k 280k,40k 120k 240k,30k 100k 200k,30k 80k 160k"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" zip="flicky.zip" md5="1d3e6b48d8123a56b9b579dfba94704b" type="merged|nonmerged|split">
<!-- Main CPU -->
<part name="epr-5978a.116"/>
<part name="epr-5979a.109"/>
<part name="epr-5979a.109"/>
<!-- Sound CPU -->
<part name="epr-5869.120"/>
<part name="epr-5869.120"/>
<!-- Sprites -->
<part name="epr-5855.117"/>
<part name="epr-5856.110"/>
<part name="epr-5855.117"/>
<part name="epr-5856.110"/>
<!-- Tiles -->
<interleave output="32">
<part name="epr-5868.62" map="0001"/>
<part name="epr-5866.64" map="0010"/>
<part name="epr-5864.66" map="0100"/>
<part name="epr-5864.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5867.61" map="0001"/>
<part name="epr-5865.63" map="0010"/>
<part name="epr-5863.65" map="0100"/>
<part name="epr-5863.65" map="1000"/>
</interleave>
<!-- CLUT -->
<part name="pr-5317.76"/>
<part>
08 88 00 80 a0 80 a8 88 80 00 a0 20 88 80 08 00
a0 80 a8 88 28 08 20 00 28 08 20 00 a0 80 a8 88
08 88 00 80 80 00 a0 20 80 00 a0 20 88 80 08 00
28 08 20 00 28 08 20 00 28 08 20 00 88 80 08 00
08 88 00 80 a8 88 28 08 a8 88 28 08 80 00 a0 20
28 08 20 00 88 80 08 00 a8 88 28 08 88 80 08 00
08 88 00 80 80 00 a0 20 a8 88 28 08 80 00 a0 20
28 08 20 00 28 08 20 00 08 88 00 80 88 80 08 00
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,89 @@
<misterromdescription>
<name>Gardia (317-0006)</name>
<mameversion>0229</mameversion>
<setname>gardia</setname>
<year>1986</year>
<manufacturer>Coreland / Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>vertical</rotation>
<category>Shooter</category>
<rbf>segasys1</rbf>
<switches base="8" default="FF,7C">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="12,13" name="Bonus Life" ids="None,15k 30k and 60k,10k 25k and 50k,5k 20k and 30k"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
</switches>
<buttons names="Shoot,Bomb,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,Start,Select,R,C"/>
<rom index="1">
<part>02</part>
</rom>
<rom index="0" md5="53b40f6cde7fe2b20d3eda9f262754e2" zip="gardia.zip" type="merged">
<!-- soundcpu, size: 0x8000 -->
<part crc="87220660" name="epr-10243.120"/>
<part repeat="0x4000">ff</part>
<!-- maincpu, size: 0x18000 -->
<part crc="89282a6b" name="epr-10255.1"/>
<part crc="2826b6d8" name="epr-10254.2"/>
<part crc="7911260f" name="epr-10253.3"/>
<!-- sprites, size: 0x20000 -->
<part crc="8a6aed33" name="epr-10234.117"/>
<part crc="c52784d3" name="epr-10233.110"/>
<part crc="b35ab227" name="epr-10236.04"/>
<part crc="006a3151" name="epr-10235.5"/>
<!-- tiles, size: 0x20000 -->
<interleave output="32">
<part crc="4e0ad0f2" name="epr-10249.61"/>
<part crc="3515d124" name="epr-10248.64"/>
<part crc="541e1555" name="epr-10247.66"/>
<part crc="541e1555" name="epr-10247.66"/>
</interleave>
<interleave output="32">
<part crc="4e0ad0f2" name="epr-10249.61"/>
<part crc="3515d124" name="epr-10248.64"/>
<part crc="541e1555" name="epr-10247.66"/>
<part crc="541e1555" name="epr-10247.66"/>
</interleave>
<!-- lookup_proms, size: 0x0100 -->
<part crc="648350b8" name="pr5317.4"/>
<!-- color_proms, size: 0x0300 -->
<part crc="8eee0f72" name="pr-7345.3"/>
<part crc="3e7babd7" name="pr-7344.2"/>
<part crc="371c44a6" name="pr-7343.1"/>
<!-- encryption_device: 317-0006 -->
<part>
44 14 15 15 51 41 41 14 10 50 15 55 54 05 04 41
51 01 05 10 55 51 05 05 54 11 45 05 04 14 10 55
01 41 51 05 55 04 45 41 55 14 45 10 04 45 55 50
40 00 11 45 15 00 01 00 40 00 01 45 11 00 45 00
44 54 40 04 05 15 15 10 15 04 01 05 50 11 00 44
44 04 04 01 50 05 51 00 45 44 50 15 54 40 41 45
40 10 14 15 40 51 50 50 45 00 10 15 05 51 50 44
01 15 40 04 01 44 50 44 50 50 50 10 44 04 40 04
0c 01 12 0b 08 17 15 11 00 17 16 00 15 0f 0d 13
15 14 14 0c 0d 0a 14 00 0e 12 06 12 03 05 05 14
14 0d 08 00 14 12 04 0e 08 05 11 06 16 0a 00 15
00 01 06 0b 11 09 11 03 09 15 00 04 10 01 0d 11
15 05 03 07 02 10 12 0d 06 13 0b 17 03 14 03 02
12 0a 12 17 13 17 03 0f 00 0a 05 0c 00 00 0b 16
08 0e 08 06 01 0f 07 0b 02 11 0a 0f 08 15 0a 00
02 06 01 01 03 01 0c 12 10 05 00 0f 11 0f 0a 14
</part>
</rom>
<mratimestamp>20210629000000</mratimestamp>
</misterromdescription>

View File

@@ -0,0 +1,85 @@
<misterromdescription>
<name>Heavy Metal (315-5135)</name>
<mameversion>0229</mameversion>
<setname>hvymetal</setname>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>horizontal</rotation>
<category>Shooter</category>
<rbf>segasys1</rbf>
<buttons names="Shoot,Bomb,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,Start,Select,R,C"/>
<switches base="8" default="FF,7C">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="12,13" name="Bonus Life" ids="100k,70k 150k,60k 120k,50k 100k"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
<dip bits="15" name="Allow Continue" ids="Yes,No"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" md5="746022eb13498170e91ce1ea05d51e60" zip="hvymetal.zip">
<!-- soundcpu, size: 0x8000 -->
<part crc="b64ac7f0" name="epr-6787.120"/>
<!-- maincpu, size: 0x18000 -->
<part crc="59195bb9" name="epr-6790a.1"/>
<part crc="83e1d18a" name="epr-6789a.2"/>
<part crc="6ecefd57" name="epr-6788a.3"/>
<!-- sprites, size: 0x20000 -->
<part crc="0af61aee" name="epr-6778.117"/>
<part crc="91d7a197" name="epr-6777.110"/>
<part crc="55b31df5" name="epr-6780.4"/>
<part crc="e03a2b28" name="epr-6779.5"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part crc="58a3d038" name="epr-6795.62"/>
<part crc="487407c2" name="epr-6793.64"/>
<part crc="a7dcd042" name="epr-6791.66"/>
<part crc="a7dcd042" name="epr-6791.66"/>
</interleave>
<interleave output="32">
<part crc="d8b08a55" name="epr-6796.61"/>
<part crc="89eb3793" name="epr-6794.63"/>
<part crc="d0be5e33" name="epr-6792.65"/>
<part crc="d0be5e33" name="epr-6792.65"/>
</interleave>
<!-- lookup_proms, size: 0x0100 -->
<part crc="648350b8" name="pr5317.4"/>
<!-- color_proms, size: 0x0300 -->
<part crc="146f16fb" name="pr7036.3"/>
<part crc="50b201ed" name="pr7035.2"/>
<part crc="dfb5f139" name="pr7034.1"/>
<!-- encryption_device: 315-5135 -->
<part>
88 a8 80 a0 a0 80 a8 88 88 a8 80 a0 88 80 08 00
a0 80 a8 88 88 a8 80 a0 88 a8 80 a0 88 80 08 00
a0 80 a8 88 88 80 08 00 88 80 08 00 88 80 08 00
a0 80 a8 88 88 80 08 00 88 80 08 00 28 08 a8 88
a0 20 a8 28 88 a8 80 a0 a0 20 a8 28 88 a8 80 a0
a0 20 a8 28 88 a8 80 a0 88 a8 80 a0 28 08 a8 88
28 a8 08 88 a0 20 a8 28 a0 20 a8 28 28 a8 08 88
28 a8 08 88 a0 20 a8 28 28 08 a8 88 28 a8 08 88
</part>
<!-- skip self test (jp $4ab6) -->
<!--
<patch offset="0x8005">9e</patch>
-->
</rom>
<mratimestamp>20210623000000</mratimestamp>
</misterromdescription>

View File

@@ -0,0 +1,122 @@
<misterromdescription>
<name>I'm Sorry (315-5110, US)</name>
<region>USA</region>
<homebrew>no</homebrew>
<bootleg>no</bootleg>
<version>315-5110</version>
<alternative></alternative>
<platform>Sega System 1</platform>
<series></series>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<category>Maze</category>
<setname>imsorry</setname>
<parent>imsorry</parent>
<mameversion>0229</mameversion>
<rbf>segasys1</rbf>
<about author="MrX-8B" source="https://github.com/MiSTer-devel/Arcade-SEGASYS1_MiSTer" twitter="@MrX_8B" webpage="https://patreon.com/MrX_8B"></about>
<resolution>15kHz</resolution>
<rotation>horizontal</rotation>
<flip></flip>
<players>2 (alternating)</players>
<joystick>8-way</joystick>
<special_controls></special_controls>
<num_buttons>2</num_buttons>
<buttons default="A,B,Start,Select,R,C"
names="Punch,Jump,-,-,-,Start 1P,Start 2P,Coin,Pause"/>
<switches base="8" default="FF,7E">
<dip bits="9" ids="On,Off" name="Demo Sound"></dip>
<dip bits="10,11" ids="Infinite,5,4,3" name="Lives"></dip>
<dip bits="12,13" ids="None,70000,50000,30000" name="Extend"></dip>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" md5="959afa6b2cc2546ca2c45595f40d5045" zip="imsorry.zip">
<!-- soundcpu, size: 0x8000 -->
<part crc="25e3d685" name="epr-6656.120"/>
<part crc="25e3d685" name="epr-6656.120"/>
<part crc="25e3d685" name="epr-6656.120"/>
<part crc="25e3d685" name="epr-6656.120"/>
<!-- maincpu, size: 0x18000 -->
<part crc="eb087d7f" name="epr-6676.116"/>
<part crc="bd244bee" name="epr-6677.109"/>
<part crc="2e16b9fd" name="epr-6678.96"/>
<part crc="2e16b9fd" name="epr-6678.96"/>
<part crc="2e16b9fd" name="epr-6678.96"/>
<part crc="2e16b9fd" name="epr-6678.96"/>
<!-- sprites, size: 0x20000 -->
<part crc="1ba167ee" name="epr-6645.117"/>
<part crc="edda7ad6" name="epr-6646.04"/>
<part crc="1ba167ee" name="epr-6645.117"/>
<part crc="edda7ad6" name="epr-6646.04"/>
<part crc="1ba167ee" name="epr-6645.117"/>
<part crc="edda7ad6" name="epr-6646.04"/>
<part crc="1ba167ee" name="epr-6645.117"/>
<part crc="edda7ad6" name="epr-6646.04"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-6684.62" map="0001"/>
<part name="epr-6682.64" map="0010"/>
<part name="epr-6680.66" map="0100"/>
<part name="epr-6680.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6683.61" map="0001"/>
<part name="epr-6681.63" map="0010"/>
<part name="epr-6674.65" map="0100"/>
<part name="epr-6674.65" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6684.62" map="0001"/>
<part name="epr-6682.64" map="0010"/>
<part name="epr-6680.66" map="0100"/>
<part name="epr-6680.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6683.61" map="0001"/>
<part name="epr-6681.63" map="0010"/>
<part name="epr-6674.65" map="0100"/>
<part name="epr-6674.65" map="1000"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.76"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5110 -->
<part>
88 08 80 00 00 20 80 a0 00 20 80 a0 88 08 80 00
88 08 a8 28 00 20 80 a0 00 20 80 a0 88 08 a8 28
00 20 80 a0 08 00 88 80 00 20 80 a0 20 28 a0 a8
20 28 a0 a8 00 20 80 a0 20 28 a0 a8 88 08 a8 28
88 08 80 00 08 00 88 80 08 00 88 80 88 08 80 00
08 28 00 20 08 28 00 20 88 08 80 00 08 28 00 20
08 28 00 20 08 00 88 80 08 28 00 20 20 28 a0 a8
20 28 a0 a8 08 28 00 20 20 28 a0 a8 08 28 00 20
</part>
</rom>
<rom index="2"></rom>
<rom index="3" md5="none">
<part>
00 1F FF FF 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 C0 17 00 03 00 02 00 00 D3 00 00 A0 00 20
</part>
</rom>
<rom index="4"></rom>
<nvram index="4" size="163"></nvram>
<remark></remark>
<mratimestamp>20210430005030</mratimestamp>
</misterromdescription>

View File

@@ -1,55 +0,0 @@
<misterromdescription>
<name>I'm Sorry (315-5110, US)</name>
<mameversion>0217</mameversion>
<setname>imsorry</setname>
<mratimestamp>202001070000</mratimestamp>
<year>1985</year>
<manufacturer>Coreland / Sega</manufacturer>
<category>Maze</category>
<rbf>segasys1</rbf>
<switches default="FF,7E" base="8">
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="12,13" name="Extend" ids="None,70000,50000,30000"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" zip="imsorry.zip" md5="f8c20005acedc939c0a56623189b2b35" type="merged|nonmerged|split">
<part name="epr-6676.116"/>
<part name="epr-6677.109"/>
<part name="epr-6678.96"/>
<part name="epr-6656.120"/>
<part name="epr-6656.120"/>
<part name="epr-6645.117"/>
<part name="epr-6646.04"/>
<part name="epr-6645.117"/>
<part name="epr-6646.04"/>
<interleave output="32">
<part name="epr-6684.62" map="0001"/>
<part name="epr-6682.64" map="0010"/>
<part name="epr-6680.66" map="0100"/>
<part name="epr-6680.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6683.61" map="0001"/>
<part name="epr-6681.63" map="0010"/>
<part name="epr-6674.65" map="0100"/>
<part name="epr-6674.65" map="1000"/>
</interleave>
<part name="pr-5317.76"/>
<part>
88 08 80 00 00 20 80 a0 00 20 80 a0 88 08 80 00
88 08 a8 28 00 20 80 a0 00 20 80 a0 88 08 a8 28
00 20 80 a0 08 00 88 80 00 20 80 a0 20 28 a0 a8
20 28 a0 a8 00 20 80 a0 20 28 a0 a8 88 08 a8 28
88 08 80 00 08 00 88 80 08 00 88 80 88 08 80 00
08 28 00 20 08 28 00 20 88 08 80 00 08 28 00 20
08 28 00 20 08 00 88 80 08 28 00 20 20 28 a0 a8
20 28 a0 a8 08 28 00 20 20 28 a0 a8 08 28 00 20
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,122 @@
<misterromdescription>
<name>Mister Viking (315-5041)</name>
<setname>mrviking</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1984</year>
<manufacturer>Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>vertical/ccw</rotation>
<region>World</region>
<buttons names="Arrow,Bomb,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,CE">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Maximum Credits" bits="9" ids="99,9"/>
<dip name="Lives" bits="10,11" ids="Infinite,5,4,3"/>
<dip name="Bonus Life" bits="12,13" ids="40k/30k,30k/30k/20k,40k/30k/10k,30k/30k"/>
<dip name="Difficulty" bits="14" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="mrviking.zip" type="merged" md5="f4429c4573b2b3d465950f89341170ae">
<!-- soundcpu, size: 0x8000 -->
<part crc="d712280d" name="epr-5763.3"/>
<part crc="d712280d" name="epr-5763.3"/>
<part crc="d712280d" name="epr-5763.3"/>
<part crc="d712280d" name="epr-5763.3"/>
<!-- maincpu, size: 0x18000 -->
<part crc="14d21624" name="epr-5873.129"/>
<part crc="6df7de87" name="epr-5874.130"/>
<part crc="ac226100" name="epr-5875.131"/>
<part crc="e77db1dc" name="epr-5876.132"/>
<part crc="edd62ae1" name="epr-5755.133"/>
<part crc="11974040" name="epr-5756.134"/>
<part crc="edd62ae1" name="epr-5755.133"/>
<part crc="11974040" name="epr-5756.134"/>
<part crc="edd62ae1" name="epr-5755.133"/>
<part crc="11974040" name="epr-5756.134"/>
<part crc="edd62ae1" name="epr-5755.133"/>
<part crc="11974040" name="epr-5756.134"/>
<!-- sprites, size: 0x20000 -->
<part crc="e24682cd" name="epr-5749.86"/>
<part crc="6564d1ad" name="epr-5750.93"/>
<part crc="e24682cd" name="epr-5749.86"/>
<part crc="6564d1ad" name="epr-5750.93"/>
<part crc="e24682cd" name="epr-5749.86"/>
<part crc="6564d1ad" name="epr-5750.93"/>
<part crc="e24682cd" name="epr-5749.86"/>
<part crc="6564d1ad" name="epr-5750.93"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-5762.82" map="0001"/>
<part name="epr-5760.81" map="0010"/>
<part name="epr-5758.80" map="0100"/>
<part name="epr-5758.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5761.65" map="0001"/>
<part name="epr-5759.64" map="0010"/>
<part name="epr-5757.63" map="0100"/>
<part name="epr-5757.63" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5762.82" map="0001"/>
<part name="epr-5760.81" map="0010"/>
<part name="epr-5758.80" map="0100"/>
<part name="epr-5758.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5761.65" map="0001"/>
<part name="epr-5759.64" map="0010"/>
<part name="epr-5757.63" map="0100"/>
<part name="epr-5757.63" map="1000"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.106"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5041 -->
<part>
28 a8 08 88 88 80 08 00
88 08 80 00 88 80 08 00
28 08 a8 88 28 a8 08 88
88 08 80 00 88 08 80 00
28 08 a8 88 88 80 08 00
88 80 08 00 28 a8 08 88
a0 80 a8 88 28 08 a8 88
a0 80 a8 88 a0 80 a8 88
88 80 08 00 88 80 08 00
88 08 80 00 88 80 08 00
a0 80 20 00 28 08 a8 88
a0 80 20 00 88 08 80 00
28 08 a8 88 a0 80 20 00
a0 80 20 00 a0 80 20 00
a0 80 a8 88 28 08 a8 88
a0 80 20 00 a0 80 a8 88
</part>
</rom>
<rom index="3" md5="none">
<part>
00 00 00 FF 00 FF 00 02
00 02 00 01 00 FF 00 00
00 00 D4 2C 00 15 59 47
00 00 D3 00 00 15 00 01
00 00 C0 86 00 03 00 02
</part>
</rom>
<nvram index="4" size="45"/>
</misterromdescription>

View File

@@ -1,59 +0,0 @@
<misterromdescription>
<name>Mister Viking (315-5041)</name>
<mameversion>0217</mameversion>
<setname>mrviking</setname>
<mratimestamp>202001070000</mratimestamp>
<year>1984</year>
<manufacturer>Sega</manufacturer>
<category>Fighter / Warriors</category>
<rbf>segasys1</rbf>
<switches default="FF,7E" base="8">
<dip bits="9" name="Maximum Credits" ids="99,9"/>
<dip bits="10,11" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="12,13" name="Extend" ids="40k ev.30k,30k ev.30k,20k 40k ev.30k,10k 30k ev.30k"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="mrviking.zip" md5="cfbeafcd3f71d2045f81e0401afdc11c" type="merged|nonmerged|split">
<part name="epr-5873.129"/>
<part name="epr-5874.130"/>
<part name="epr-5875.131"/>
<part name="epr-5876.132"/>
<part name="epr-5755.133"/>
<part name="epr-5756.134"/>
<part name="epr-5763.3"/>
<part name="epr-5763.3"/>
<part name="epr-5749.86"/>
<part name="epr-5750.93"/>
<part repeat="0x8000">FF</part>
<interleave output="32">
<part name="epr-5762.82" map="0001"/>
<part name="epr-5760.81" map="0010"/>
<part name="epr-5758.80" map="0100"/>
<part name="epr-5758.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5761.65" map="0001"/>
<part name="epr-5759.64" map="0010"/>
<part name="epr-5757.63" map="0100"/>
<part name="epr-5757.63" map="1000"/>
</interleave>
<part name="pr-5317.106"/>
<part>
28 a8 08 88 88 80 08 00 88 08 80 00 88 80 08 00
28 08 a8 88 28 a8 08 88 88 08 80 00 88 08 80 00
28 08 a8 88 88 80 08 00 88 80 08 00 28 a8 08 88
a0 80 a8 88 28 08 a8 88 a0 80 a8 88 a0 80 a8 88
88 80 08 00 88 80 08 00 88 08 80 00 88 80 08 00
a0 80 20 00 28 08 a8 88 a0 80 20 00 88 08 80 00
28 08 a8 88 a0 80 20 00 a0 80 20 00 a0 80 20 00
a0 80 a8 88 28 08 a8 88 a0 80 20 00 a0 80 a8 88
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,116 @@
<misterromdescription>
<name>My Hero</name>
<region>USA</region>
<homebrew>no</homebrew>
<bootleg>no</bootleg>
<version>not Encrypted</version>
<alternative></alternative>
<platform>Sega System 1</platform>
<series></series>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<category>Platform</category>
<setname>myhero</setname>
<parent>myhero</parent>
<mameversion>0229</mameversion>
<rbf>segasys1</rbf>
<about author="MrX-8B" source="https://github.com/MiSTer-devel/Arcade-SEGASYS1_MiSTer" twitter="@MrX_8B" webpage="https://patreon.com/MrX_8B"></about>
<resolution>15kHz</resolution>
<rotation>horizontal</rotation>
<flip></flip>
<players>2 (alternating)</players>
<joystick>8-way</joystick>
<special_controls></special_controls>
<num_buttons>2</num_buttons>
<buttons default="A,B,Start,Select,R,C" names="Punch,Kick,-,-,-,Start 1P,Start 2P,Coin,Pause"></buttons>
<switches base="8" default="FF,7E">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<dip bits="9" ids="On,Off" name="Demo Sound"></dip>
<dip bits="10,11" ids="Infinite,5,4,3" name="Lives"></dip>
<dip bits="12,13" ids="90000,70000,50000,30000" name="Extend"></dip>
<dip bits="14" ids="Hard,Easy" name="Difficulty"></dip>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" md5="a0d0417be4d6889f28adfb85b463fb3a" type="merged" zip="myhero.zip">
<!-- soundcpu, size: 0x8000 -->
<part crc="0039e1e9" name="epr-69xx.120"/>
<part crc="0039e1e9" name="epr-69xx.120"/>
<part crc="0039e1e9" name="epr-69xx.120"/>
<part crc="0039e1e9" name="epr-69xx.120"/>
<!-- maincpu, size: 0x18000 -->
<part crc="4daf89d4" name="epr-6963b.116"/>
<part crc="c26188e5" name="epr-6964a.109"/>
<part crc="3cbbaf64" name="epr-6927.96"/>
<part crc="3cbbaf64" name="epr-6927.96"/>
<part crc="3cbbaf64" name="epr-6927.96"/>
<part crc="3cbbaf64" name="epr-6927.96"/>
<!-- sprites, size: 0x20000 -->
<part crc="f19e05a1" name="epr-6921.117"/>
<part crc="7988adc3" name="epr-6923.04"/>
<part crc="37f77a78" name="epr-6922.110"/>
<part crc="42bdc8f6" name="epr-6924.05"/>
<part crc="f19e05a1" name="epr-6921.117"/>
<part crc="7988adc3" name="epr-6923.04"/>
<part crc="37f77a78" name="epr-6922.110"/>
<part crc="42bdc8f6" name="epr-6924.05"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-6966.62" map="0001"/>
<part name="epr-6960.64" map="0010"/>
<part name="epr-6958.66" map="0100"/>
<part name="epr-6958.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6961.61" map="0001"/>
<part name="epr-6959.63" map="0010"/>
<part name="epr-6957.65" map="0100"/>
<part name="epr-6957.65" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6966.62" map="0001"/>
<part name="epr-6960.64" map="0010"/>
<part name="epr-6958.66" map="0100"/>
<part name="epr-6958.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6961.61" map="0001"/>
<part name="epr-6959.63" map="0010"/>
<part name="epr-6957.65" map="0100"/>
<part name="epr-6957.65" map="1000"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.76"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: none -->
<part repeat="0x100">00</part>
</rom>
<rom index="2"></rom>
<rom index="3" md5="none">
<part>
00 00 00 00 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 D3 00 00 3C 00 49 00 00 C0 17 00 03 00 00
</part>
</rom>
<rom index="4"></rom>
<nvram index="4" size="63"></nvram>
<remark></remark>
<mratimestamp>20210430005030</mratimestamp>
</misterromdescription>

View File

@@ -1,56 +0,0 @@
<misterromdescription>
<name>My Hero (US, not encrypted)</name>
<mameversion>0217</mameversion>
<setname>myhero</setname>
<mratimestamp>202001060000</mratimestamp>
<year>1985</year>
<manufacturer>Coreland / Sega</manufacturer>
<category>Fighter / Hero</category>
<rbf>segasys1</rbf>
<switches default="FF,7E" base="8">
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="12,13" name="Extend" ids="90000,70000,50000,30000"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" zip="myhero.zip" md5="08d9e275da478606db8cdeae79b92b5c" type="merged|nonmerged|split">
<part name="epr-6963b.116"/>
<part name="epr-6964a.109"/>
<part name="epr-6927.96"/>
<part name="epr-69xx.120"/>
<part name="epr-69xx.120"/>
<part name="epr-6921.117"/>
<part name="epr-6923.04"/>
<part name="epr-6922.110"/>
<part name="epr-6924.05"/>
<interleave output="32">
<part name="epr-6966.62" map="0001"/>
<part name="epr-6960.64" map="0010"/>
<part name="epr-6958.66" map="0100"/>
<part name="epr-6958.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6961.61" map="0001"/>
<part name="epr-6959.63" map="0010"/>
<part name="epr-6957.65" map="0100"/>
<part name="epr-6957.65" map="1000"/>
</interleave>
<part name="pr-5317.76"/>
<part>
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
</part>
</rom>
</misterromdescription>

View File

@@ -1,57 +1,104 @@
<misterromdescription>
<name>Pitfall II</name>
<mameversion>0216</mameversion>
<name>Pitfall II (315-5093)</name>
<setname>pitfall2</setname>
<mratimestamp>202001100000</mratimestamp>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<category>Maze / Extra</category>
<rbf>segasys1</rbf>
<switches default="FF,DF" base="8">
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="12" name="Bonus at" ids="30000 70000,20000 50000"/>
<dip bits="13" name="Allow Continue" ids="Yes,No"/>
<dip bits="14" name="Time" ids="2 Minutes,3 Minutes"/>
</switches>
<players>2</players>
<joystick>8-way</joystick>
<rotation>horizontal</rotation>
<region>World</region>
<rom index="0" zip="pitfall2.zip" type="merged" md5="37d37eed5b1efe1372942dfca5172be9">
<!-- soundcpu - starts at 0xC000 -->
<part name="epr-6462.120" crc="86bb9185"/>
<part name="epr-6462.120" crc="86bb9185"/>
<part name="epr-6462.120" crc="86bb9185"/>
<part name="epr-6462.120" crc="86bb9185"/>
<!-- maincpu, size: 0x18000 -->
<part name="epr-6456a.116" crc="bcc8406b"/>
<part name="epr-6457a.109" crc="a016fd2a"/>
<part name="epr-6458a.96" crc="5c30b3e8"/>
<part name="epr-6458a.96" crc="5c30b3e8"/>
<part name="epr-6458a.96" crc="5c30b3e8"/>
<part name="epr-6458a.96" crc="5c30b3e8"/>
<!-- sprites, size: 0x20000 -->
<part name="epr-6454a.117" crc="a5d96780"/>
<part name="epr-6455.05" crc="32ee64a1"/>
<part name="epr-6454a.117" crc="a5d96780"/>
<part name="epr-6455.05" crc="32ee64a1"/>
<part name="epr-6454a.117" crc="a5d96780"/>
<part name="epr-6455.05" crc="32ee64a1"/>
<part name="epr-6454a.117" crc="a5d96780"/>
<part name="epr-6455.05" crc="32ee64a1"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-6474a.62" crc="9f1711b9"/>
<part name="epr-6472a.64" crc="e0f34a11"/>
<part name="epr-6470a.66" crc="1439729f"/>
<part name="epr-6470a.66" crc="1439729f"/>
</interleave>
<interleave output="32">
<part name="epr-6473a.61" crc="8e53b8dd"/>
<part name="epr-6471a.63" crc="d5bc805c"/>
<part name="epr-6469a.65" crc="e4ac6921"/>
<part name="epr-6469a.65" crc="e4ac6921"/>
</interleave>
<interleave output="32">
<part name="epr-6474a.62" crc="9f1711b9"/>
<part name="epr-6472a.64" crc="e0f34a11"/>
<part name="epr-6470a.66" crc="1439729f"/>
<part name="epr-6470a.66" crc="1439729f"/>
</interleave>
<interleave output="32">
<part name="epr-6473a.61" crc="8e53b8dd"/>
<part name="epr-6471a.63" crc="d5bc805c"/>
<part name="epr-6469a.65" crc="e4ac6921"/>
<part name="epr-6469a.65" crc="e4ac6921"/>
</interleave>
<!-- lookup_proms - starts at 0x22000 -->
<part name="pr-5317.76" crc="648350b8"/>
<!-- color proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5093 -->
<part>
a0 80 a8 88 a0 80 a8 88 08 88 28 a8 28 a8 20 a0
a0 80 a8 88 a0 80 a8 88 a0 a8 20 28 a0 a8 20 28
a0 80 a8 88 20 00 a0 80 28 a8 20 a0 20 00 a0 80
a0 a8 20 28 a0 a8 20 28 28 a8 20 a0 a0 a8 20 28
20 00 a0 80 80 88 a0 a8 80 88 a0 a8 80 88 a0 a8
a0 a8 20 28 a0 80 a8 88 80 88 a0 a8 28 a8 20 a0
20 00 a0 80 80 88 a0 a8 80 88 a0 a8 20 00 a0 80
a0 a8 20 28 a0 80 a8 88 80 88 a0 a8 28 a8 20 a0
</part>
</rom>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" zip="pitfall2.zip" md5="07b1a752e7bf1bf17ae773d1b6977bf1" type="merged|nonmerged|split">
<part name="epr-6456a.116"/>
<part name="epr-6457a.109"/>
<part name="epr-6458a.96"/>
<part name="epr-6462.120"/>
<part name="epr-6462.120"/>
<part name="epr-6454a.117"/>
<part name="epr-6455.05"/>
<part name="epr-6454a.117"/>
<part name="epr-6455.05"/>
<interleave output="32">
<part name="epr-6474a.62" map="0001"/>
<part name="epr-6472a.64" map="0010"/>
<part name="epr-6470a.66" map="0100"/>
<part name="epr-6470a.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6473a.61" map="0001"/>
<part name="epr-6471a.63" map="0010"/>
<part name="epr-6469a.65" map="0100"/>
<part name="epr-6469a.65" map="1000"/>
</interleave>
<part name="pr-5317.76"/>
<rom index="3" md5="none">
<part>
a0 80 a8 88 a0 80 a8 88 08 88 28 a8 28 a8 20 a0
a0 80 a8 88 a0 80 a8 88 a0 a8 20 28 a0 a8 20 28
a0 80 a8 88 20 00 a0 80 28 a8 20 a0 20 00 a0 80
a0 a8 20 28 a0 a8 20 28 28 a8 20 a0 a0 a8 20 28
20 00 a0 80 80 88 a0 a8 80 88 a0 a8 80 88 a0 a8
a0 a8 20 28 a0 80 a8 88 80 88 a0 a8 28 a8 20 a0
20 00 a0 80 80 88 a0 a8 80 88 a0 a8 20 00 a0 80
a0 a8 20 28 a0 80 a8 88 80 88 a0 a8 28 a8 20 a0
00 00 00 00 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 D3 00 00 38 00 41 00 00 C0 00 00 04 00 00
</part>
</rom>
</rom>
<nvram index="4" size="60"/>
<switches base="8" default="FF,DC">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
<dip name="Demo Sounds" bits="9" ids="On,Off"/>
<dip name="Lives" bits="10,11" ids="Infinite,5,4,3"/>
<dip name="Bonus Life" bits="12" ids="30k/70k,20k/50k"/>
<dip name="Allow Continue" bits="13" ids="Yes,No"/>
<dip name="Time" bits="14" ids="2 Minutes,3 Minutes"/>
</switches>
<buttons names="Jump,-,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="1"/>
</misterromdescription>

View File

@@ -0,0 +1,116 @@
<misterromdescription>
<name>Rafflesia (315-5162)</name>
<setname>raflesia</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1986</year>
<manufacturer>Coreland / Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>vertical/ccw</rotation>
<region>World</region>
<buttons names="Single Shot,Rapid Shot,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,FC">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Demo Sounds" bits="9" ids="On,Off"/>
<dip name="Lives" bits="10,11" ids="Infinite,5,4,3"/>
<dip name="Bonus Life" bits="12,13" ids="None,50k,100k/200k,30k,80k/150k,20k,70k/120k"/>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="raflesia.zip" type="merged" md5="5876854279f4286aa9faddcaa04be390">
<!-- soundcpu, size: 0x10000 -->
<part crc="14387666" name="epr-7420.120"/>
<part crc="14387666" name="epr-7420.120"/>
<part crc="14387666" name="epr-7420.120"/>
<part crc="14387666" name="epr-7420.120"/>
<!-- maincpu, size: 0x10000 -->
<part crc="88a0c6c6" name="epr-7411.116"/>
<part crc="d3b8cddf" name="epr-7412.109"/>
<part crc="b7e688b3" name="epr-7413.96"/>
<part crc="b7e688b3" name="epr-7413.96"/>
<part crc="b7e688b3" name="epr-7413.96"/>
<part crc="b7e688b3" name="epr-7413.96"/>
<!-- sprites, size: 0x20000 -->
<part crc="f09fc057" name="epr-7407.117"/>
<part crc="819fedb8" name="epr-7409.04"/>
<part crc="3189f33c" name="epr-7408.110"/>
<part crc="ced74789" name="epr-7410.05"/>
<part crc="f09fc057" name="epr-7407.117"/>
<part crc="819fedb8" name="epr-7409.04"/>
<part crc="3189f33c" name="epr-7408.110"/>
<part crc="ced74789" name="epr-7410.05"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part crc="bfd5f34c" name="epr-7419.62"/>
<part crc="e63501bc" name="epr-7417.64"/>
<part crc="1a8d6bd6" name="epr-7415.66"/>
<part crc="1a8d6bd6" name="epr-7415.66"/>
</interleave>
<interleave output="32">
<part crc="f8cbc9b6" name="epr-7418.61"/>
<part crc="093e5693" name="epr-7416.63"/>
<part crc="5d20f218" name="epr-7414.65"/>
<part crc="5d20f218" name="epr-7414.65"/>
</interleave>
<interleave output="32">
<part crc="bfd5f34c" name="epr-7419.62"/>
<part crc="e63501bc" name="epr-7417.64"/>
<part crc="1a8d6bd6" name="epr-7415.66"/>
<part crc="1a8d6bd6" name="epr-7415.66"/>
</interleave>
<interleave output="32">
<part crc="f8cbc9b6" name="epr-7418.61"/>
<part crc="093e5693" name="epr-7416.63"/>
<part crc="5d20f218" name="epr-7414.65"/>
<part crc="5d20f218" name="epr-7414.65"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.76"/>
<!-- color proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5162 -->
<part>
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 0a
0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0b
0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0b 0c
</part>
</rom>
<rom index="3" md5="none">
<part>
00 00 00 00 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 D3 00 00 50 00 4A 00 00 C0 17 00 03 00 02
</part>
</rom>
<nvram index="4" size="83"/>
</misterromdescription>

View File

@@ -1,63 +0,0 @@
<misterromdescription>
<name>Rafflesia</name>
<mameversion>0216</mameversion>
<setname>raflesia</setname>
<mratimestamp>202001100000</mratimestamp>
<year>1986</year>
<manufacturer>Sega</manufacturer>
<category>Shmup</category>
<rbf>segasys1</rbf>
<switches default="FF,FC" base="8">
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="Free Play,5,4,3"/>
<dip bits="12,13" name="Bonus at" ids="Never,50k 100k 200k,30k 80k 150k,20k 70k 120k"/>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="raflesia.zip" md5="96d903a327f9ec40ded22754011dee89" type="merged|nonmerged|split">
<part name="epr-7411.116"/>
<part name="epr-7412.109"/>
<part name="epr-7413.96"/>
<part name="epr-7420.120"/>
<part name="epr-7420.120"/>
<part name="epr-7407.117"/>
<part name="epr-7409.04"/>
<part name="epr-7408.110"/>
<part name="epr-7410.05"/>
<interleave output="32">
<part name="epr-7419.62" map="0001"/>
<part name="epr-7417.64" map="0010"/>
<part name="epr-7415.66" map="0100"/>
<part name="epr-7415.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-7418.61" map="0001"/>
<part name="epr-7416.63" map="0010"/>
<part name="epr-7414.65" map="0100"/>
<part name="epr-7414.65" map="1000"/>
</interleave>
<part name="pr-5317.76"/>
<part>
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
40 10 50 04 44 14 54 01 41 11 51 05 45 15 55 00
04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 06
06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 07
07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 08
08 08 08 08 08 08 08 08 08 08 08 08 08 08 08 09
09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 0A
0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0B
0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0C
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,114 @@
<misterromdescription>
<name>Regulus (315-5033, Rev A.)</name>
<setname>regulus</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1983</year>
<manufacturer>Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>vertical/ccw</rotation>
<region>World</region>
<buttons names="Fire,Bomb,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,7E">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Lives" bits="10,11" ids="Infinite,5,4,3"/>
<dip name="Difficulty" bits="14" ids="Hard,Easy"/>
<dip name="Allow Continue" bits="15" ids="Yes,No"/>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="regulus.zip" type="merged" md5="1472c1ca44a7f89deb82ed3c14b71649">
<!-- soundcpu, size: 0x8000 -->
<part name="epr-5652.3" crc="74edcb98"/>
<part name="epr-5652.3" crc="74edcb98"/>
<part name="epr-5652.3" crc="74edcb98"/>
<part name="epr-5652.3" crc="74edcb98"/>
<!-- maincpu, size: 0x18000 -->
<part crc="dafb1528" name="epr-5640a.129"/>
<part crc="0fcc850e" name="epr-5641a.130"/>
<part crc="4feffa17" name="epr-5642a.131"/>
<part crc="b8ac7eb4" name="epr-5643a.132"/>
<part crc="ffd05b7d" name="epr-5644.133"/>
<part crc="6b4bf77c" name="epr-5645a.134"/>
<part crc="ffd05b7d" name="epr-5644.133"/>
<part crc="6b4bf77c" name="epr-5645a.134"/>
<part crc="ffd05b7d" name="epr-5644.133"/>
<part crc="6b4bf77c" name="epr-5645a.134"/>
<part crc="ffd05b7d" name="epr-5644.133"/>
<part crc="6b4bf77c" name="epr-5645a.134"/>
<!-- sprites, size: 0x20000 -->
<part crc="617363dd" name="epr-5638.86"/>
<part crc="a4ec5131" name="epr-5639.93"/>
<part crc="617363dd" name="epr-5638.86"/>
<part crc="a4ec5131" name="epr-5639.93"/>
<part crc="617363dd" name="epr-5638.86"/>
<part crc="a4ec5131" name="epr-5639.93"/>
<part crc="617363dd" name="epr-5638.86"/>
<part crc="a4ec5131" name="epr-5639.93"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part crc="f07f3e82" name="epr-5651.82"/>
<part crc="6774c895" name="epr-5649.81"/>
<part crc="9330f7b5" name="epr-5647.80"/>
<part crc="9330f7b5" name="epr-5647.80"/>
</interleave>
<interleave output="32">
<part crc="84c1baa2" name="epr-5650.65"/>
<part crc="0c69e92a" name="epr-5648.64"/>
<part crc="4dfacbbc" name="epr-5646.63"/>
<part crc="4dfacbbc" name="epr-5646.63"/>
</interleave>
<interleave output="32">
<part crc="f07f3e82" name="epr-5651.82"/>
<part crc="6774c895" name="epr-5649.81"/>
<part crc="9330f7b5" name="epr-5647.80"/>
<part crc="9330f7b5" name="epr-5647.80"/>
</interleave>
<interleave output="32">
<part crc="84c1baa2" name="epr-5650.65"/>
<part crc="0c69e92a" name="epr-5648.64"/>
<part crc="4dfacbbc" name="epr-5646.63"/>
<part crc="4dfacbbc" name="epr-5646.63"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part name="pr-5317.106" crc="648350b8"/>
<!-- color proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5033 -->
<part>
28 08 a8 88 88 80 08 00 28 08 a8 88 28 a8 08 88
88 80 08 00 88 08 80 00 88 08 80 00 28 a8 08 88
28 08 a8 88 88 80 08 00 88 80 08 00 88 80 08 00
88 08 80 00 88 08 80 00 a0 80 a8 88 a0 80 a8 88
80 a0 00 20 28 08 a8 88 28 a8 08 88 28 08 a8 88
80 a0 00 20 80 a0 00 20 28 a8 08 88 80 a0 00 20
a0 80 a8 88 28 08 a8 88 80 a0 00 20 a0 80 a8 88
a0 80 a8 88 80 a0 00 20 a0 80 a8 88 a0 80 a8 88
</part>
</rom>
<rom index="3" md5="none">
<part>
00 00 00 00 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 CE 40 00 1E 41 4A 00 00 C0 E1 00 03 00 00
00 00 CD 01 00 1E 00 00
</part>
</rom>
<nvram index="4" size="63"/>
</misterromdescription>

View File

@@ -1,57 +0,0 @@
<misterromdescription>
<name>Regulus</name>
<mameversion>0216</mameversion>
<setname>regulus</setname>
<mratimestamp>202001100000</mratimestamp>
<year>1983</year>
<manufacturer>Sega</manufacturer>
<category>Shmup</category>
<rbf>segasys1</rbf>
<switches default="FF,7F" base="8">
<dip bits="10,11" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
<dip bits="15" name="Allow Continue" ids="Yes,No"/>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="regulus.zip" md5="69bf2d45b0a5e13df70d60ba6505dfad" type="merged|nonmerged|split">
<part name="epr-5640a.129"/>
<part name="epr-5641a.130"/>
<part name="epr-5642a.131"/>
<part name="epr-5643a.132"/>
<part name="epr-5644.133"/>
<part name="epr-5645a.134"/>
<part name="epr-5652.3"/>
<part name="epr-5652.3"/>
<part name="epr-5638.86"/>
<part name="epr-5639.93"/>
<part name="epr-5638.86"/>
<part name="epr-5639.93"/>
<interleave output="32">
<part name="epr-5651.82" map="0001"/>
<part name="epr-5649.81" map="0010"/>
<part name="epr-5647.80" map="0100"/>
<part name="epr-5647.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5650.65" map="0001"/>
<part name="epr-5648.64" map="0010"/>
<part name="epr-5646.63" map="0100"/>
<part name="epr-5646.63" map="1000"/>
</interleave>
<part name="pr-5317.106"/>
<part>
28 08 a8 88 88 80 08 00 28 08 a8 88 28 a8 08 88
88 80 08 00 88 08 80 00 88 08 80 00 28 a8 08 88
28 08 a8 88 88 80 08 00 88 80 08 00 88 80 08 00
88 08 80 00 88 08 80 00 a0 80 a8 88 a0 80 a8 88
80 a0 00 20 28 08 a8 88 28 a8 08 88 28 08 a8 88
80 a0 00 20 80 a0 00 20 28 a8 08 88 80 a0 00 20
a0 80 a8 88 28 08 a8 88 80 a0 00 20 a0 80 a8 88
a0 80 a8 88 80 a0 00 20 a0 80 a8 88 a0 80 a8 88
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,117 @@
<misterromdescription>
<name>Sega Ninja (315-5102)</name>
<setname>seganinj</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>horizontal</rotation>
<region>World</region>
<buttons names="8-Way Shuriken,Shuriken,Disappear,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="3"/>
<switches base="8" default="FF,DC">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Demo Sounds" bits="9" ids="On,Off"/>
<dip name="Lives" bits="10,11" ids="240,4,2,3"/>
<dip name="Bonus Life" bits="12" ids="50/100/150/200k,20/70/120/170k"/>
<dip name="Allow Continue" bits="13" ids="Yes,No"/>
<dip name="Difficulty" bits="14" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" zip="seganinj.zip" type="merged" md5="afca084e4186428d56bf36f6d5428498">
<!-- soundcpu, size: 0x10000 -->
<part crc="5a1570ee" name="epr-6559.120"/>
<part crc="5a1570ee" name="epr-6559.120"/>
<part crc="5a1570ee" name="epr-6559.120"/>
<part crc="5a1570ee" name="epr-6559.120"/>
<!-- maincpu, size: 0x10000 -->
<part crc="a5d0c9d0" name="epr-6594a.116"/>
<part crc="b9e6775c" name="epr-6595a.109"/>
<part crc="f2eeb0d8" name="epr-6596a.96"/>
<part crc="f2eeb0d8" name="epr-6596a.96"/>
<part crc="f2eeb0d8" name="epr-6596a.96"/>
<part crc="f2eeb0d8" name="epr-6596a.96"/>
<!-- sprites, size: 0x20000 -->
<part crc="a4785692" name="epr-6546.117"/>
<part crc="bdf278c1" name="epr-6548.04"/>
<part crc="34451b08" name="epr-6547.110"/>
<part crc="7c51488c" name="epr-6549a.05"/>
<part crc="a4785692" name="epr-6546.117"/>
<part crc="bdf278c1" name="epr-6548.04"/>
<part crc="34451b08" name="epr-6547.110"/>
<part crc="7c51488c" name="epr-6549a.05"/>
<!-- tiles, size: 0xc000 -->
<interleave output="32">
<part name="epr-6558.62" map="0001"/>
<part name="epr-6556.64" map="0010"/>
<part name="epr-6554.66" map="0100"/>
<part name="epr-6554.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6592.61" map="0001"/>
<part name="epr-6590.63" map="0010"/>
<part name="epr-6588.65" map="0100"/>
<part name="epr-6588.65" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6558.62" map="0001"/>
<part name="epr-6556.64" map="0010"/>
<part name="epr-6554.66" map="0100"/>
<part name="epr-6554.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6592.61" map="0001"/>
<part name="epr-6590.63" map="0010"/>
<part name="epr-6588.65" map="0100"/>
<part name="epr-6588.65" map="1000"/>
</interleave>
<!-- lookup_proms, size: 0x0100 -->
<part crc="648350b8" name="pr-5317.76"/>
<!-- color proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5102 -->
<part>
88 a8 80 a0 88 08 80 00
28 a8 08 88 a0 a8 80 88
a8 a0 28 20 a8 a0 28 20
28 a8 08 88 a0 a8 80 88
28 08 a8 88 28 08 a8 88
28 a8 08 88 88 08 80 00
28 08 a8 88 28 08 a8 88
28 a8 08 88 a8 a0 28 20
88 08 80 00 88 a8 80 a0
a0 a8 80 88 28 a8 08 88
a8 a0 28 20 88 a8 80 a0
a8 a0 28 20 28 a8 08 88
28 08 a8 88 88 a8 80 a0
28 08 a8 88 28 08 a8 88
88 a8 80 a0 88 a8 80 a0
a8 a0 28 20 28 08 a8 88
</part>
</rom>
<rom index="3" md5="none">
<part>
00 00 00 00 00 FF 00 02
00 02 00 01 00 FF 00 00
00 00 EF 00 00 31 00 43
</part>
</rom>
<nvram index="4" size="49"/>
</misterromdescription>

View File

@@ -1,56 +0,0 @@
<misterromdescription>
<name>Sega Ninja (315-5102)</name>
<mameversion>0217</mameversion>
<setname>seganinj</setname>
<mratimestamp>20200107000000</mratimestamp>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<category>Fighter / Asian</category>
<rbf>segasys1</rbf>
<switches default="FF,7E" base="8">
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="240,4,2,3"/>
<dip bits="12" name="Extend" ids="50k 100k 150k 200k,20k 70k 120k 170k"/>
<dip bits="13" name="Allow Continue" ids="No,Yes"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" zip="seganinj.zip" md5="2ab698c59d739fdbfc7a267ace9df24f" type="merged|nonmerged|split">
<part name="epr-6594a.116"/>
<part name="epr-6595a.109"/>
<part name="epr-6596a.96"/>
<part name="epr-6559.120"/>
<part name="epr-6559.120"/>
<part name="epr-6546.117"/>
<part name="epr-6548.04"/>
<part name="epr-6547.110"/>
<part name="epr-6549a.05"/>
<interleave output="32">
<part name="epr-6558.62" map="0001"/>
<part name="epr-6556.64" map="0010"/>
<part name="epr-6554.66" map="0100"/>
<part name="epr-6554.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6592.61" map="0001"/>
<part name="epr-6590.63" map="0010"/>
<part name="epr-6588.65" map="0100"/>
<part name="epr-6588.65" map="1000"/>
</interleave>
<part name="pr-5317.76"/>
<part>
88 a8 80 a0 88 08 80 00 28 a8 08 88 a0 a8 80 88
a8 a0 28 20 a8 a0 28 20 28 a8 08 88 a0 a8 80 88
28 08 a8 88 28 08 a8 88 28 a8 08 88 88 08 80 00
28 08 a8 88 28 08 a8 88 28 a8 08 88 a8 a0 28 20
88 08 80 00 88 a8 80 a0 a0 a8 80 88 28 a8 08 88
a8 a0 28 20 88 a8 80 a0 a8 a0 28 20 28 a8 08 88
28 08 a8 88 88 a8 80 a0 28 08 a8 88 28 08 a8 88
88 a8 80 a0 88 a8 80 a0 a8 a0 28 20 28 08 a8 88
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,106 @@
<misterromdescription>
<name>Spatter (315-5xxx)</name>
<setname>spatter</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1984</year>
<manufacturer>Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>horizontal</rotation>
<region>World</region>
<buttons names="Jump,-,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,FC">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Demo Sounds" bits="9" ids="On,Off"/>
<dip name="Lives" bits="10,11" ids="Infinite,4,2,3"/>
<dip name="Bonus Life" bits="12,13" ids="None,100k,50/200k,40/120k/480k"/>
<dip name="Reset Timer/Objects" bits="14" ids="Yes,No"/>
</switches>
<rom index="1">
<part>04</part>
</rom>
<rom index="0" zip="spatter.zip" type="merged" md5="bedaca41ba5153f4990c470757827f0f">
<!-- soundcpu, size: 0x8000 -->
<part crc="1df95511" name="epr-6316.120"/>
<part crc="1df95511" name="epr-6316.120"/>
<part crc="1df95511" name="epr-6316.120"/>
<part crc="1df95511" name="epr-6316.120"/>
<!-- maincpu, size: 0x18000 -->
<part crc="329b4506" name="epr-6392.116"/>
<part crc="3b56e25f" name="epr-6393.109"/>
<part crc="647c1301" name="epr-6394.96"/>
<part crc="647c1301" name="epr-6394.96"/>
<part crc="647c1301" name="epr-6394.96"/>
<part crc="647c1301" name="epr-6394.96"/>
<!-- sprites, size: 0x20000 -->
<part crc="e871e132" name="epr-6306.04"/>
<part crc="99c2d90e" name="epr-6308.117"/>
<part crc="0a5ad543" name="epr-6307.05"/>
<part crc="7423ad98" name="epr-6309.110"/>
<part crc="e871e132" name="epr-6306.04"/>
<part crc="99c2d90e" name="epr-6308.117"/>
<part crc="0a5ad543" name="epr-6307.05"/>
<part crc="7423ad98" name="epr-6309.110"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-6328.62" map="0001"/>
<part name="epr-6326.64" map="0010"/>
<part name="epr-6324.66" map="0100"/>
<part name="epr-6324.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6397.61" map="0001"/>
<part name="epr-6396.63" map="0010"/>
<part name="epr-6395.65" map="0100"/>
<part name="epr-6395.65" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6328.62" map="0001"/>
<part name="epr-6326.64" map="0010"/>
<part name="epr-6324.66" map="0100"/>
<part name="epr-6324.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6397.61" map="0001"/>
<part name="epr-6396.63" map="0010"/>
<part name="epr-6395.65" map="0100"/>
<part name="epr-6395.65" map="1000"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.106"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-spat -->
<part>
88 08 80 00 00 08 20 28 28 a8 08 88 28 a8 08 88
28 20 a8 a0 28 20 a8 a0 88 08 80 00 88 08 80 00
00 08 20 28 88 08 80 00 a0 80 20 00 80 88 00 08
88 08 80 00 a0 80 20 00 88 08 80 00 28 20 a8 a0
28 a8 08 88 80 88 00 08 80 88 00 08 00 08 20 28
28 20 a8 a0 28 a8 08 88 00 08 20 28 80 a0 88 a8
80 88 00 08 a0 80 20 00 80 a0 88 a8 a0 80 20 00
a0 80 20 00 80 a0 88 a8 28 20 a8 a0 00 08 20 28
</part>
</rom>
<rom index="3" md5="none">
<part>
00 00 00 00 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 EF 00 00 31 00 52 00 00 C0 0B 00 03 00 00
00 00 C0 0C 00 01 10 10
</part>
</rom>
<nvram index="4" size="53"/>
</misterromdescription>

View File

@@ -1,56 +0,0 @@
<misterromdescription>
<name>Spatter (315-5xxx)</name>
<mameversion>0217</mameversion>
<setname>spatter</setname>
<mratimestamp>202001070000</mratimestamp>
<year>1984</year>
<manufacturer>Sega</manufacturer>
<category>Maze / Extra</category>
<rbf>segasys1</rbf>
<switches default="FF,7E" base="8">
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="Infinite,4,2,3"/>
<dip bits="12,13" name="Extend" ids="None,100k only,50k 200k,40k 120k 480k"/>
<dip bits="14" name="Reset Timer &amp; Objects" ids="Yes,No"/>
</switches>
<rom index="1">
<part>04</part>
</rom>
<rom index="0" zip="spatter.zip" md5="4e3dd2f53b76da95ff2c22c42e77d22d" type="merged|nonmerged|split">
<part name="epr-6392.116"/>
<part name="epr-6393.109"/>
<part name="epr-6394.96"/>
<part name="epr-6316.120"/>
<part name="epr-6316.120"/>
<part name="epr-6306.04"/>
<part name="epr-6308.117"/>
<part name="epr-6307.05"/>
<part name="epr-6309.110"/>
<interleave output="32">
<part name="epr-6328.62" map="0001"/>
<part name="epr-6326.64" map="0010"/>
<part name="epr-6324.66" map="0100"/>
<part name="epr-6324.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6397.61" map="0001"/>
<part name="epr-6396.63" map="0010"/>
<part name="epr-6395.65" map="0100"/>
<part name="epr-6395.65" map="1000"/>
</interleave>
<part name="pr-5317.106"/>
<part>
88 08 80 00 00 08 20 28 28 a8 08 88 28 a8 08 88
28 20 a8 a0 28 20 a8 a0 88 08 80 00 88 08 80 00
00 08 20 28 88 08 80 00 a0 80 20 00 80 88 00 08
88 08 80 00 a0 80 20 00 88 08 80 00 28 20 a8 a0
28 a8 08 88 80 88 00 08 80 88 00 08 00 08 20 28
28 20 a8 a0 28 a8 08 88 00 08 20 28 80 a0 88 a8
80 88 00 08 a0 80 20 00 80 a0 88 a8 a0 80 20 00
a0 80 20 00 80 a0 88 a8 28 20 a8 a0 00 08 20 28
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,126 @@
<misterromdescription>
<name>Star Jacker</name>
<region></region>
<homebrew>no</homebrew>
<bootleg>no</bootleg>
<version>Alt</version>
<alternative>Star Jacker</alternative>
<platform>Sega System 1</platform>
<series></series>
<year>1983</year>
<manufacturer>Sega</manufacturer>
<manufacturer2>Stern</manufacturer2>
<category>Shooter - Vertical</category>
<setname>starjacks</setname>
<parent>starjack</parent>
<mameversion>0216</mameversion>
<rbf>segasys1</rbf>
<about author="MrX-8B" source="https://github.com/MiSTer-devel/Arcade-SEGASYS1_MiSTer" twitter="@MrX_8B" webpage="https://patreon.com/MrX_8B"></about>
<resolution>15kHz</resolution>
<rotation>vertical (ccw)</rotation>
<flip>no</flip>
<players>2 (alternating)</players>
<joystick>8-way</joystick>
<special_controls></special_controls>
<num_buttons>2</num_buttons>
<buttons default="B,A,Start,Select,R,C" names="Fire 1,Fire 2,-,-,-,Start 1P,Start 2P,Coin,Pause"></buttons>
<switches base="8" default="FF,BE">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<dip bits="9,10" ids="Infinite,5,4,3" name="Lives"></dip>
<dip bits="11" ids="Multi,Single" name="Ship"></dip>
<dip bits="12,13" ids="60k +every 70k,50k +every 60k,40k +every 50k,30k +every 40k" name="Bonus at"></dip>
<dip bits="14,15" ids="Hardest,Hard,Medium,Easy" name="Difficulty"></dip>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" md5="none" type="merged" zip="starjack.zip">
<!-- soundcpu, size: 0x8000 -->
<part crc="7a72ab3d" name="star_jacker_a1_ic3.3"/>
<part repeat="0x6000">00</part>
<!-- maincpu, size: 0x18000 -->
<part crc="59a22a1f" name="star_jacker_a1_ic29.129"/>
<part crc="7f4597dc" name="star_jacker_a1_ic30.130"/>
<part crc="6074c046" name="star_jacker_a1_ic31.131"/>
<part crc="1c48a3fa" name="star_jacker_a1_ic32.132"/>
<part crc="7598bd51" name="star_jacker_a1_ic33.133"/>
<part crc="f66fa604" name="star_jacker_a1_ic34.134"/>
<part crc="7598bd51" name="star_jacker_a1_ic33.133"/>
<part crc="f66fa604" name="star_jacker_a1_ic34.134"/>
<part crc="7598bd51" name="star_jacker_a1_ic33.133"/>
<part crc="f66fa604" name="star_jacker_a1_ic34.134"/>
<part crc="7598bd51" name="star_jacker_a1_ic33.133"/>
<part crc="f66fa604" name="star_jacker_a1_ic34.134"/>
<!-- sprites, size: 0x20000 -->
<part crc="6f2e1fd3" name="star_jacker_a1_ic86.86"/>
<part crc="07987244" name="epr-5446.93"/>
<part crc="6f2e1fd3" name="star_jacker_a1_ic86.86"/>
<part crc="07987244" name="epr-5446.93"/>
<part crc="6f2e1fd3" name="star_jacker_a1_ic86.86"/>
<part crc="07987244" name="epr-5446.93"/>
<part crc="6f2e1fd3" name="star_jacker_a1_ic86.86"/>
<part crc="07987244" name="epr-5446.93"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part crc="251d898f" name="star_jacker_a1_ic82.82"/>
<part crc="3e8bcaed" name="epr-5456.81"/>
<part crc="79e92cb1" name="epr-5454.80"/>
<part crc="79e92cb1" name="epr-5454.80"/>
</interleave>
<interleave output="32">
<part crc="0ab1893c" name="star_jacker_a1_ic65.65"/>
<part crc="7f628ae6" name="epr-5455.64"/>
<part crc="5bcb253e" name="epr-5453.63"/>
<part crc="5bcb253e" name="epr-5453.63"/>
</interleave>
<interleave output="32">
<part crc="251d898f" name="star_jacker_a1_ic82.82"/>
<part crc="3e8bcaed" name="epr-5456.81"/>
<part crc="79e92cb1" name="epr-5454.80"/>
<part crc="79e92cb1" name="epr-5454.80"/>
</interleave>
<interleave output="32">
<part crc="0ab1893c" name="star_jacker_a1_ic65.65"/>
<part crc="7f628ae6" name="epr-5455.64"/>
<part crc="5bcb253e" name="epr-5453.63"/>
<part crc="5bcb253e" name="epr-5453.63"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.106"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: none -->
<part repeat="0x100">00</part>
</rom>
<rom index="2"></rom>
<rom index="3" md5="none">
<part>
01 0F FF FF 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 C1 02 00 23 00 52 00 00 C0 FB 00 04 00 00
</part>
</rom>
<rom index="4"></rom>
<nvram></nvram>
<remark></remark>
<mratimestamp>20210629000000</mratimestamp>
</misterromdescription>

View File

@@ -0,0 +1,101 @@
<misterromdescription>
<name>Star Jacker (Sega)</name>
<setname>starjack</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1983</year>
<manufacturer>Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>vertical/ccw</rotation>
<region>World</region>
<about author="MrX-8B" source="https://github.com/MiSTer-devel/Arcade-SEGASYS1_MiSTer" twitter="@MrX_8B" webpage="https://patreon.com/MrX_8B"></about>
<buttons names="Fire,Bomb,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,FE">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Lives" bits="9,10" ids="Infinite,5,4,3"/>
<dip name="Bonus Life" bits="11,13" ids="50k/60k/50k,40k/50k/40k,30k/40k/30k,20k/30k/20k"/>
<dip name="Difficulty" bits="14,15" ids="Hardest,Hard,Medium,Easy"/>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="starjack.zip" type="merged" md5="5b2d71ec04e80ccdf291c7411479eaba">
<!-- soundcpu, size: 0x8000 -->
<part name="epr-5332.3" crc="7a72ab3d"/>
<part repeat="0x6000">00</part>
<!-- maincpu, size: 0x18000 -->
<part name="epr-5320b.129" crc="7ab72ecd"/>
<part name="epr-5321a.130" crc="38b99050"/>
<part name="epr-5322a.131" crc="103a595b"/>
<part name="epr-5323.132" crc="46af0d58"/>
<part name="epr-5324.133" crc="1e89efe2"/>
<part name="epr-5325.134" crc="d6e379a1"/>
<part name="epr-5324.133" crc="1e89efe2"/>
<part name="epr-5325.134" crc="d6e379a1"/>
<part name="epr-5324.133" crc="1e89efe2"/>
<part name="epr-5325.134" crc="d6e379a1"/>
<part name="epr-5324.133" crc="1e89efe2"/>
<part name="epr-5325.134" crc="d6e379a1"/>
<!-- sprites, size: 0x20000 -->
<part name="epr-5318.86" crc="6f2e1fd3"/>
<part name="epr-5319.93" crc="ebee4999"/>
<part name="epr-5318.86" crc="6f2e1fd3"/>
<part name="epr-5319.93" crc="ebee4999"/>
<part name="epr-5318.86" crc="6f2e1fd3"/>
<part name="epr-5319.93" crc="ebee4999"/>
<part name="epr-5318.86" crc="6f2e1fd3"/>
<part name="epr-5319.93" crc="ebee4999"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-5331.82" crc="251d898f"/>
<part name="epr-5329.81" crc="3e8bcaed"/>
<part name="epr-5327.80" crc="79e92cb1"/>
<part name="epr-5327.80" crc="79e92cb1"/>
</interleave>
<interleave output="32">
<part name="epr-5330.65" crc="eb048745"/>
<part name="epr-5328.64" crc="9ed7849f"/>
<part name="epr-5326.63" crc="ba7e2b47"/>
<part name="epr-5326.63" crc="ba7e2b47"/>
</interleave>
<interleave output="32">
<part name="epr-5331.82" crc="251d898f"/>
<part name="epr-5329.81" crc="3e8bcaed"/>
<part name="epr-5327.80" crc="79e92cb1"/>
<part name="epr-5327.80" crc="79e92cb1"/>
</interleave>
<interleave output="32">
<part name="epr-5330.65" crc="eb048745"/>
<part name="epr-5328.64" crc="9ed7849f"/>
<part name="epr-5326.63" crc="ba7e2b47"/>
<part name="epr-5326.63" crc="ba7e2b47"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.76"/>
<!-- color proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: none -->
<part repeat="0x100">00</part>
</rom>
<rom index="3" md5="none">
<part>
01 0F FF FF 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 C0 E1 00 1E 00 52 00 00 C0 DB 00 03 00 03
</part>
</rom>
<nvram index="4" size="33"/>
<mratimestamp>20210629000000</mratimestamp>
</misterromdescription>

View File

@@ -1,60 +0,0 @@
<misterromdescription>
<name>Star Jacker</name>
<mameversion>0216</mameversion>
<setname>starjack</setname>
<mratimestamp>202001100000</mratimestamp>
<year>1983</year>
<manufacturer>Sega</manufacturer>
<category>Shmup</category>
<rbf>segasys1</rbf>
<switches default="FF,BF" base="8">
<dip bits="9,10" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="11,13" name="Bonus at" ids="50k +every 60k,40k +every 50k,30k +every 40k,20k +every 30k,Every 50k,Every 40k,Every 30k,Every 20k"/>
<dip bits="14,15" name="Difficulty" ids="Hardest,Hard,Medium,Easy"/>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="starjack.zip" md5="406ae0d7a61a6a09deaef8a3a8b6d67f" type="merged|nonmerged|split">
<part name="epr-5320b.129"/>
<part name="epr-5321a.130"/>
<part name="epr-5322a.131"/>
<part name="epr-5323.132"/>
<part name="epr-5324.133"/>
<part name="epr-5325.134"/>
<part name="epr-5332.3"/>
<part name="epr-5332.3"/>
<part name="epr-5318.86"/>
<part name="epr-5319.93"/>
<part name="epr-5318.86"/>
<part name="epr-5319.93"/>
<interleave output="32">
<part name="epr-5331.82" map="0001"/>
<part name="epr-5329.81" map="0010"/>
<part name="epr-5327.80" map="0100"/>
<part name="epr-5327.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5330.65" map="0001"/>
<part name="epr-5328.64" map="0010"/>
<part name="epr-5326.63" map="0100"/>
<part name="epr-5326.63" map="1000"/>
</interleave>
<part name="pr-5317.106"/>
<part>
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,107 @@
<misterromdescription>
<name>SWAT (315-5048)</name>
<setname>swat</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1984</year>
<manufacturer>Coreland / Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>vertical/ccw</rotation>
<region>World</region>
<buttons names="Fire,Bomb,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,FE">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Lives" bits="9,10" ids="Infinite,5,4,3"/>
<dip name="Bonus Life" bits="11,13" ids="None,90k,80k,70k,60k,50k,40k,30k"/>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="swat.zip" type="merged" md5="a2efaabfe3ff8b973720781a26791e8f">
<!-- soundcpu, size: 0x8000 -->
<part crc="f6afd0fd" name="epr-5819.3"/>
<part repeat="0x6000">00</part>
<!-- maincpu, size: 0x18000 -->
<part crc="93db9c9f" name="epr5807b.129"/>
<part crc="67116665" name="epr-5808.130"/>
<part crc="fd792fc9" name="epr-5809.131"/>
<part crc="dc2b279d" name="epr-5810.132"/>
<part crc="093e3ab1" name="epr-5811.133"/>
<part crc="5bfd692f" name="epr-5812.134"/>
<part crc="093e3ab1" name="epr-5811.133"/>
<part crc="5bfd692f" name="epr-5812.134"/>
<part crc="093e3ab1" name="epr-5811.133"/>
<part crc="5bfd692f" name="epr-5812.134"/>
<part crc="093e3ab1" name="epr-5811.133"/>
<part crc="5bfd692f" name="epr-5812.134"/>
<!-- sprites, size: 0x20000 -->
<part crc="5a732865" name="epr-5805.86"/>
<part crc="26ac258c" name="epr-5806.93"/>
<part crc="5a732865" name="epr-5805.86"/>
<part crc="26ac258c" name="epr-5806.93"/>
<part crc="5a732865" name="epr-5805.86"/>
<part crc="26ac258c" name="epr-5806.93"/>
<part crc="5a732865" name="epr-5805.86"/>
<part crc="26ac258c" name="epr-5806.93"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-5818.82" map="0001"/>
<part name="epr-5816.81" map="0010"/>
<part name="epr-5814.80" map="0100"/>
<part name="epr-5814.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5817.65" map="0001"/>
<part name="epr-5815.64" map="0010"/>
<part name="epr-5813.63" map="0100"/>
<part name="epr-5813.63" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5818.82" map="0001"/>
<part name="epr-5816.81" map="0010"/>
<part name="epr-5814.80" map="0100"/>
<part name="epr-5814.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5817.65" map="0001"/>
<part name="epr-5815.64" map="0010"/>
<part name="epr-5813.63" map="0100"/>
<part name="epr-5813.63" map="1000"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part name="pr-5317.106" crc="648350b8"/>
<!-- color proms - size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5048 -->
<part>
88 08 80 00 a0 a8 80 88 88 08 80 00 88 a8 80 a0
a0 80 20 00 88 08 80 00 a0 a8 80 88 88 08 80 00
28 20 a8 a0 a0 a8 80 88 88 a8 80 a0 28 20 a8 a0
a0 80 20 00 a0 a8 80 88 28 20 a8 a0 a0 a8 80 88
a0 80 20 00 a0 80 20 00 a0 20 80 00 88 a8 80 a0
a0 20 80 00 a0 20 80 00 a0 20 80 00 a0 20 80 00
a0 80 20 00 a0 80 20 00 88 a8 80 a0 28 20 a8 a0
a0 a8 80 88 a0 80 20 00 28 20 a8 a0 a0 a8 80 88
</part>
</rom>
<rom index="3" md5="none">
<part>
00 00 00 00 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 D3 00 00 3C 00 49 00 00 C0 14 00 03 00 02
</part>
</rom>
<nvram index="4" size="63"/>
</misterromdescription>

View File

@@ -1,60 +0,0 @@
<misterromdescription>
<name>Swat (315-5048)</name>
<mameversion>0217</mameversion>
<setname>swat</setname>
<mratimestamp>202001070000</mratimestamp>
<year>1984</year>
<manufacturer>Coreland / Sega</manufacturer>
<category>Shooter</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>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="swat.zip" md5="692cf43b6f18dd8aa75c287293257830" type="merged|nonmerged|split">
<part name="epr5807b.129"/>
<part name="epr-5808.130"/>
<part name="epr-5809.131"/>
<part name="epr-5810.132"/>
<part name="epr-5811.133"/>
<part name="epr-5812.134"/>
<part name="epr-5819.3"/>
<part name="epr-5819.3"/>
<part name="epr-5805.86"/>
<part name="epr-5806.93"/>
<part name="epr-5805.86"/>
<part name="epr-5806.93"/>
<interleave output="32">
<part name="epr-5818.82" map="0001"/>
<part name="epr-5816.81" map="0010"/>
<part name="epr-5814.80" map="0100"/>
<part name="epr-5814.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5817.65" map="0001"/>
<part name="epr-5815.64" map="0010"/>
<part name="epr-5813.63" map="0100"/>
<part name="epr-5813.63" map="1000"/>
</interleave>
<part name="pr-5317.106"/>
<part>
88 08 80 00 a0 a8 80 88 88 08 80 00 88 a8 80 a0
a0 80 20 00 88 08 80 00 a0 a8 80 88 88 08 80 00
28 20 a8 a0 a0 a8 80 88 88 a8 80 a0 28 20 a8 a0
a0 80 20 00 a0 a8 80 88 28 20 a8 a0 a0 a8 80 88
a0 80 20 00 a0 80 20 00 a0 20 80 00 88 a8 80 a0
a0 20 80 00 a0 20 80 00 a0 20 80 00 a0 20 80 00
a0 80 20 00 a0 80 20 00 88 a8 80 a0 28 20 a8 a0
a0 a8 80 88 a0 80 20 00 28 20 a8 a0 a0 a8 80 88
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,109 @@
<misterromdescription>
<name>TeddyBoy Blues (315-5115, New Ver.)</name>
<setname>teddybb</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>horizontal</rotation>
<region>World</region>
<buttons names="Machine-Gun,Jump,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,FE">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Demo Sounds" bits="9" ids="Off,On"/>
<dip name="Lives" bits="10,11" ids="252,4,2,3"/>
<dip name="Bonus Life" bits="12,13" ids="600k,400k 800k,200k 600k,100k 400k"/>
<dip name="Difficulty" bits="14" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" zip="teddybb.zip" type="merged" md5="c9614c0cac152d12b8f6e29bf66175aa">
<!-- soundcpu, size: 0x8000 -->
<part crc="c2a1b89d" name="epr6748x.120"/>
<part crc="c2a1b89d" name="epr6748x.120"/>
<part crc="c2a1b89d" name="epr6748x.120"/>
<part crc="c2a1b89d" name="epr6748x.120"/>
<!-- maincpu, size: 0x18000 -->
<part crc="5939817e" name="epr-6768.116"/>
<part crc="14a98ddd" name="epr-6769.109"/>
<part crc="67b0c7c2" name="epr-6770.96"/>
<part crc="67b0c7c2" name="epr-6770.96"/>
<part crc="67b0c7c2" name="epr-6770.96"/>
<part crc="67b0c7c2" name="epr-6770.96"/>
<!-- sprites, size: 0x20000 -->
<part crc="1be35a97" name="epr-6735.117"/>
<part crc="6b53aa7a" name="epr-6737.04"/>
<part crc="565c25d0" name="epr-6736.110"/>
<part crc="e116285f" name="epr-6738.05"/>
<part crc="1be35a97" name="epr-6735.117"/>
<part crc="6b53aa7a" name="epr-6737.04"/>
<part crc="565c25d0" name="epr-6736.110"/>
<part crc="e116285f" name="epr-6738.05"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-6747.62" map="0001"/>
<part name="epr-6745.64" map="0010"/>
<part name="epr-6743.66" map="0100"/>
<part name="epr-6743.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6746.61" map="0001"/>
<part name="epr-6744.63" map="0010"/>
<part name="epr-6742.65" map="0100"/>
<part name="epr-6742.65" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6747.62" map="0001"/>
<part name="epr-6745.64" map="0010"/>
<part name="epr-6743.66" map="0100"/>
<part name="epr-6743.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6746.61" map="0001"/>
<part name="epr-6744.63" map="0010"/>
<part name="epr-6742.65" map="0100"/>
<part name="epr-6742.65" map="1000"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.76"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5115 -->
<part>
20 28 00 08 80 00 a0 20 20 28 00 08 a0 a8 20 28
28 08 a8 88 a0 80 a8 88 a0 a8 20 28 a0 80 a8 88
20 28 00 08 28 08 a8 88 a0 a8 20 28 a0 a8 20 28
a0 80 a8 88 28 08 a8 88 a0 a8 20 28 28 08 a8 88
80 00 a0 20 80 00 a0 20 a0 20 a8 28 a0 a8 20 28
a0 20 a8 28 a0 80 a8 88 a0 80 a8 88 a0 80 a8 88
80 00 a0 20 20 28 00 08 a0 a8 20 28 a0 20 a8 28
80 00 a0 20 a0 80 a8 88 a0 a8 20 28 a0 20 a8 28
</part>
<!-- jp $3e67 at PC=$0001 to skip self test -->
<!-- patch offset="0x8001">63 9e e7</patch -->
</rom>
<rom index="3" md5="none">
<part>
55 00 00 00 00 FF 00 02
00 02 00 01 00 FF 00 00
00 00 C5 78 00 03 00 00
00 00 EF 03 00 31 00 49
</part>
</rom>
<nvram index="4" size="52"/>
</misterromdescription>

View File

@@ -1,55 +0,0 @@
<misterromdescription>
<name>TeddyBoy Blues (315-5115, New Ver.)</name>
<mameversion>0217</mameversion>
<setname>teddybb</setname>
<mratimestamp>202001070000</mratimestamp>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<category>Platform</category>
<rbf>segasys1</rbf>
<switches default="FF,7E" base="8">
<dip bits="9" name="Demo Sound" ids="Off,On"/>
<dip bits="10,11" name="Lives" ids="252,4,2,3"/>
<dip bits="12,13" name="Extend" ids="600k,400k 800k,200k 600k,100k 400k"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" zip="teddybb.zip" md5="74c131009ccc5d58133c0ebe73a4668c" type="merged|nonmerged|split">
<part name="epr-6768.116"/>
<part name="epr-6769.109"/>
<part name="epr-6770.96"/>
<part name="epr6748x.120"/>
<part name="epr6748x.120"/>
<part name="epr-6735.117"/>
<part name="epr-6737.04"/>
<part name="epr-6736.110"/>
<part name="epr-6738.05"/>
<interleave output="32">
<part name="epr-6747.62" map="0001"/>
<part name="epr-6745.64" map="0010"/>
<part name="epr-6743.66" map="0100"/>
<part name="epr-6743.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-6746.61" map="0001"/>
<part name="epr-6744.63" map="0010"/>
<part name="epr-6742.65" map="0100"/>
<part name="epr-6742.65" map="1000"/>
</interleave>
<part name="pr-5317.76"/>
<part>
20 28 00 08 80 00 a0 20 20 28 00 08 a0 a8 20 28
28 08 a8 88 a0 80 a8 88 a0 a8 20 28 a0 80 a8 88
20 28 00 08 28 08 a8 88 a0 a8 20 28 a0 a8 20 28
a0 80 a8 88 28 08 a8 88 a0 a8 20 28 28 08 a8 88
80 00 a0 20 80 00 a0 20 a0 20 a8 28 a0 a8 20 28
a0 20 a8 28 a0 80 a8 88 a0 80 a8 88 a0 80 a8 88
80 00 a0 20 20 28 00 08 a0 a8 20 28 a0 20 a8 28
80 00 a0 20 a0 80 a8 88 a0 a8 20 28 a0 20 a8 28
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,61 @@
<misterromdescription>
<name>Toki no Senshi - Chrono Soldier (MC-8123, 317-0040)</name>
<mameversion>0229</mameversion>
<setname>tokisens</setname>
<mratimestamp>20210706000000</mratimestamp>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<category>Shooter</category>
<rbf>segasys1</rbf>
<switches base="8" default="DE,FF">
<!-- SWA -->
<dip name="Coin A" bits="8,11" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="12,15" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip bits="0" name="Cabinet" ids="Upright,Cocktail"/>
-->
<dip bits="1" name="Demo Sound" ids="On,Off"/>
<dip bits="2,3" name="Lives" ids="1,4,2,3"/>
</switches>
<buttons names="Shoot,Direction Change,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,Start,Select,R,L"/>
<rom index="1">
<part>13</part>
</rom>
<rom index="0" md5="faa4d7445cd80ba9db5493ee33ed23a3" zip="tokisens.zip">
<!-- soundcpu, size: 0x8000 -->
<part name="epr-10967.ic126"/>
<!-- maincpu, size: 0x18000 -->
<part name="epr-10961.ic90"/>
<part name="epr-10962.ic91"/>
<part name="epr-10963.ic92"/>
<!-- sprites, size: 0x20000 -->
<part name="epr-10958.ic87"/>
<part name="epr-10957.ic86"/>
<part name="epr-10960.ic89"/>
<part name="epr-10959.ic88"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-10964.ic4"/>
<part name="epr-10965.ic5"/>
<part name="epr-10966.ic6"/>
<part name="epr-10966.ic6"/>
</interleave>
<!-- lookup_proms, size: 0x0100 -->
<part name="pr-5317.ic28"/>
<!-- color_proms, size: 0x0300 -->
<part name="pr10956.ic20"/>
<part name="pr10955.ic14"/>
<part name="pr10954.ic8"/>
<part repeat="0x1C00">00</part>
<!-- decryption key, size: 0x2000 -->
<part name="317-0040.key"/>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,63 @@
<misterromdescription>
<name>Ufo Senshi Yohko Chan (MC-8123, 317-0064)</name>
<mameversion>0229</mameversion>
<setname>ufosensi</setname>
<mratimestamp>20210706000000</mratimestamp>
<year>1985</year>
<manufacturer>Sega</manufacturer>
<category>Shooter</category>
<rbf>segasys1</rbf>
<switches base="8" default="DE,FF">
<!-- SWA -->
<dip name="Coin A" bits="8,11" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="12,15" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip bits="4" name="Cabinet" ids="Upright,Cocktail"/>
-->
<dip bits="0,1" name="Difficulty" ids="Easy,Normal,Hard,Hardest"/>
<dip bits="2,3" name="Lives" ids="5,4,4,3"/>
<dip bits="5" name="Allow Continue" ids="Yes,No"/>
<dip bits="7" name="Invulnerability" ids="On,Off"/>
</switches>
<buttons names="Shoot,Direction Change,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,Start,Select,R,L"/>
<rom index="1">
<part>01</part>
</rom>
<rom index="0" md5="6e7e495f76cf1cd342918c427b9b4d8a" zip="ufosensi.zip">
<!-- soundcpu, size: 0x8000 -->
<part name="epr-11667.126"/>
<!-- maincpu, size: 0x18000 -->
<part name="epr-11661.90"/>
<part name="epr-11662.91"/>
<part name="epr-11663.92"/>
<!-- sprites, size: 0x20000 -->
<part name="epr-11658.87"/>
<part name="epr-11657.86"/>
<part name="epr-11660.89"/>
<part name="epr-11659.88"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-11664.4"/>
<part name="epr-11665.5"/>
<part name="epr-11666.6"/>
<part name="epr-11666.6"/>
</interleave>
<!-- lookup_proms, size: 0x0100 -->
<part name="pr5317.28"/>
<!-- color_proms, size: 0x0300 -->
<part name="pr11656.20"/>
<part name="pr11655.14"/>
<part name="pr11654.8"/>
<part repeat="0x1C00">00</part>
<!-- decryption key, size: 0x2000 -->
<part name="317-0064.key"/>
</rom>
</misterromdescription>

View File

@@ -1,41 +1,64 @@
<misterromdescription>
<name>Up'n Down</name>
<mameversion>0216</mameversion>
<name>Up'n Down (315-5030)</name>
<setname>upndown</setname>
<mratimestamp>202001100000</mratimestamp>
<year>1984</year>
<manufacturer>Sega</manufacturer>
<category>Shmup</category>
<rbf>segasys1</rbf>
<switches default="FF,BF" base="8">
<dip bits="9,10" name="Lives" ids="Infinite,5,4,3"/>
<dip bits="11,13" name="Bonus at" ids="Never,70k,60k,50k,40k,30k,20k,10k"/>
<dip bits="14,15" name="Difficulty" ids="Hardest,Hard,Medium,Easy"/>
</switches>
<rom index="1">
<part>06</part>
</rom>
<rom index="0" zip="upndown.zip" md5="013c5bfc7a9a7a68e3eeb12c8ce37e8e" type="merged|nonmerged|split">
<part name="epr5516a.129"/>
<part name="epr5517a.130"/>
<part name="epr-5518.131"/>
<part name="epr-5519.132"/>
<part name="epr-5520.133"/>
<part name="epr-5521.134"/>
<part name="epr-5535.3"/>
<part name="epr-5535.3"/>
<part name="epr-5514.86"/>
<part name="epr-5515.93"/>
<part name="epr-5514.86"/>
<part name="epr-5515.93"/>
<mameversion>0229</mameversion>
<year>1983</year>
<manufacturer>Sega</manufacturer>
<players>2</players>
<joystick>8-way</joystick>
<rotation>vertical/ccw</rotation>
<region>World</region>
<rom index="0" zip="upndown.zip" type="merged" md5="dd117de01b1a03b0061d7215a208a20d">
<!-- soundcpu, size: 0x8000 -->
<part crc="cf4e4c45" name="epr-5535.3"/>
<part crc="cf4e4c45" name="epr-5535.3"/>
<part crc="cf4e4c45" name="epr-5535.3"/>
<part crc="cf4e4c45" name="epr-5535.3"/>
<!-- maincpu, size: 0x18000 -->
<part crc="038c82da" name="epr5516a.129"/>
<part crc="6930e1de" name="epr5517a.130"/>
<part crc="2a370c99" name="epr-5518.131"/>
<part crc="9d664a58" name="epr-5519.132"/>
<part crc="208dfbdf" name="epr-5520.133"/>
<part crc="e7b8d87a" name="epr-5521.134"/>
<part crc="208dfbdf" name="epr-5520.133"/>
<part crc="e7b8d87a" name="epr-5521.134"/>
<part crc="208dfbdf" name="epr-5520.133"/>
<part crc="e7b8d87a" name="epr-5521.134"/>
<part crc="208dfbdf" name="epr-5520.133"/>
<part crc="e7b8d87a" name="epr-5521.134"/>
<!-- sprites, size: 0x20000 -->
<part crc="fcc0a88b" name="epr-5514.86"/>
<part crc="60908838" name="epr-5515.93"/>
<part crc="fcc0a88b" name="epr-5514.86"/>
<part crc="60908838" name="epr-5515.93"/>
<part crc="fcc0a88b" name="epr-5514.86"/>
<part crc="60908838" name="epr-5515.93"/>
<part crc="fcc0a88b" name="epr-5514.86"/>
<part crc="60908838" name="epr-5515.93"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-5527.82" map="0001"/>
<part name="epr-5525.81" map="0010"/>
<part name="epr-5523.80" map="0100"/>
<part name="epr-5523.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5526.65" map="0001"/>
<part name="epr-5524.64" map="0010"/>
<part name="epr-5522.63" map="0100"/>
<part name="epr-5522.63" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5527.82" map="0001"/>
<part name="epr-5525.81" map="0010"/>
<part name="epr-5523.80" map="0100"/>
<part name="epr-5523.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-5526.65" map="0001"/>
<part name="epr-5524.64" map="0010"/>
@@ -43,16 +66,45 @@
<part name="epr-5522.63" map="1000"/>
</interleave>
<part name="pr-5317.106"/>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.106"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5030 -->
<part>
08 88 00 80 a0 20 80 00 a8 a0 28 20 88 a8 80 a0
88 80 08 00 28 08 a8 88 88 a8 80 a0 28 08 a8 88
88 a8 80 a0 a0 20 80 00 a8 a0 28 20 a8 a0 28 20
88 80 08 00 88 a8 80 a0 88 a8 80 a0 88 a8 80 a0
a0 20 80 00 a0 20 80 00 08 88 00 80 28 08 a8 88
88 a8 80 a0 88 80 08 00 88 a8 80 a0 28 08 a8 88
88 a8 80 a0 88 a8 80 a0 88 a8 80 a0 88 a8 80 a0
88 80 08 00 88 80 08 00 08 88 00 80 28 08 a8 88
08 88 00 80 a0 20 80 00 a8 a0 28 20 88 a8 80 a0
88 80 08 00 28 08 a8 88 88 a8 80 a0 28 08 a8 88
88 a8 80 a0 a0 20 80 00 a8 a0 28 20 a8 a0 28 20
88 80 08 00 88 a8 80 a0 88 a8 80 a0 88 a8 80 a0
a0 20 80 00 a0 20 80 00 08 88 00 80 28 08 a8 88
88 a8 80 a0 88 80 08 00 88 a8 80 a0 28 08 a8 88
88 a8 80 a0 88 a8 80 a0 88 a8 80 a0 88 a8 80 a0
88 80 08 00 88 80 08 00 08 88 00 80 28 08 a8 88
</part>
</rom>
<rom index="1">
<part>06</part>
</rom>
<rom index="3" md5="none">
<part>
00 0F FF FF 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 C9 3F 00 3F 01 00
</part>
</rom>
<nvram index="4" size="63"/>
<switches base="8" default="FF,FE">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Lives" bits="9,10" ids="Infinite,5,4,3"/>
<dip name="Bonus Life" bits="11,13" ids="None,70k,60k,50k,40k,30k,20k,10k"/>
<dip name="Difficulty" bits="14,15" ids="Hardest,Hard,Medium,Easy"/>
</switches>
<buttons names="Jump,-,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="1"/>
</misterromdescription>

View File

@@ -0,0 +1,103 @@
<misterromdescription>
<name>Water Match (315-5064)</name>
<setname>wmatch</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1984</year>
<manufacturer>Sega</manufacturer>
<players>2</players>
<joystick>4-way</joystick>
<rotation>vertical/ccw</rotation>
<region>World</region>
<buttons names="Right,Left,Down,Up,Dive,Start 1P,Start 2P,Coin,Pause" default="A,B,X,Y,R,L,Start,Select" count="5"/>
<switches base="8" default="FF,FC">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Demo Sounds" bits="9" ids="On,Off"/>
<dip name="Time" bits="10,11" ids="Fastest,Faster,Fast,Normal"/>
<dip name="Difficulty" bits="14" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>0E</part>
</rom>
<rom index="0" zip="wmatch.zip" type="merged" md5="9538465256bf999f34b70f5ecbfcff09">
<!-- soundcpu, size: 0x8000 -->
<part crc="50d2afb7" name="wm.3"/>
<part crc="50d2afb7" name="wm.3"/>
<part crc="50d2afb7" name="wm.3"/>
<part crc="50d2afb7" name="wm.3"/>
<!-- maincpu, size: 0x18000 -->
<part crc="b6db4442" name="wm.129"/>
<part crc="59a0a7a0" name="wm.130"/>
<part crc="4cb3856a" name="wm.131"/>
<part crc="e2e44b29" name="wm.132"/>
<part crc="43a36445" name="wm.133"/>
<part crc="5624794c" name="wm.134"/>
<part crc="43a36445" name="wm.133"/>
<part crc="5624794c" name="wm.134"/>
<part crc="43a36445" name="wm.133"/>
<part crc="5624794c" name="wm.134"/>
<part crc="43a36445" name="wm.133"/>
<part crc="5624794c" name="wm.134"/>
<!-- sprites, size: 0x20000 -->
<part crc="238ae0e5" name="wm.86"/>
<part crc="a2f19170" name="wm.93"/>
<part crc="238ae0e5" name="wm.86"/>
<part crc="a2f19170" name="wm.93"/>
<part crc="238ae0e5" name="wm.86"/>
<part crc="a2f19170" name="wm.93"/>
<part crc="238ae0e5" name="wm.86"/>
<part crc="a2f19170" name="wm.93"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="wm.82" map="0001"/>
<part name="wm.81" map="0010"/>
<part name="wm.80" map="0100"/>
<part name="wm.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="wm.65" map="0001"/>
<part name="wm.64" map="0010"/>
<part name="wm.63" map="0100"/>
<part name="wm.63" map="1000"/>
</interleave>
<interleave output="32">
<part name="wm.82" map="0001"/>
<part name="wm.81" map="0010"/>
<part name="wm.80" map="0100"/>
<part name="wm.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="wm.65" map="0001"/>
<part name="wm.64" map="0010"/>
<part name="wm.63" map="0100"/>
<part name="wm.63" map="1000"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part crc="648350b8" name="pr-5317.106"/>
<!-- color_proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5064 -->
<part>
88 a8 80 a0 a0 80 20 00 08 88 00 80 88 a8 80 a0
20 00 a0 80 20 28 a0 a8 20 28 a0 a8 a0 80 20 00
a8 28 88 08 a8 28 88 08 08 88 00 80 a8 28 88 08
a8 28 88 08 20 28 a0 a8 a8 28 88 08 a8 28 88 08
20 28 a0 a8 88 a8 80 a0 88 a8 80 a0 20 28 a0 a8
20 28 a0 a8 a0 80 20 00 20 28 a0 a8 20 28 a0 a8
20 00 a0 80 20 28 a0 a8 a8 28 88 08 a0 80 20 00
20 28 a0 a8 20 28 a0 a8 a8 28 88 08 a8 28 88 08
</part>
</rom>
</misterromdescription>

View File

@@ -1,62 +0,0 @@
<misterromdescription>
<name>Water Match (315-5064)</name>
<mameversion>0217</mameversion>
<setname>wmatch</setname>
<mratimestamp>202001070000</mratimestamp>
<year>1984</year>
<manufacturer>Sega</manufacturer>
<category>Sport</category>
<rbf>segasys1</rbf>
<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>0E</part>
</rom>
<rom index="0" zip="wmatch.zip" md5="1b67822537b11d05b6252d118ffbf985" type="merged|nonmerged|split">
<part name="wm.129"/>
<part name="wm.130"/>
<part name="wm.131"/>
<part name="wm.132"/>
<part name="wm.133"/>
<part name="wm.134"/>
<part name="wm.3"/>
<part name="wm.3"/>
<part name="wm.86"/>
<part name="wm.93"/>
<part name="wm.86"/>
<part name="wm.93"/>
<interleave output="32">
<part name="wm.82" map="0001"/>
<part name="wm.81" map="0010"/>
<part name="wm.80" map="0100"/>
<part name="wm.80" map="1000"/>
</interleave>
<interleave output="32">
<part name="wm.65" map="0001"/>
<part name="wm.64" map="0010"/>
<part name="wm.63" map="0100"/>
<part name="wm.63" map="1000"/>
</interleave>
<part name="pr-5317.106"/>
<part>
88 a8 80 a0 a0 80 20 00 08 88 00 80 88 a8 80 a0
20 00 a0 80 20 28 a0 a8 20 28 a0 a8 a0 80 20 00
a8 28 88 08 a8 28 88 08 08 88 00 80 a8 28 88 08
a8 28 88 08 20 28 a0 a8 a8 28 88 08 a8 28 88 08
20 28 a0 a8 88 a8 80 a0 88 a8 80 a0 20 28 a0 a8
20 28 a0 a8 a0 80 20 00 20 28 a0 a8 20 28 a0 a8
20 00 a0 80 20 28 a0 a8 a8 28 88 08 a0 80 20 00
20 28 a0 a8 20 28 a0 a8 a8 28 88 08 a8 28 88 08
</part>
</rom>
</misterromdescription>

View File

@@ -0,0 +1,115 @@
<misterromdescription>
<name>Wonder Boy (set 1, 315-5177)</name>
<setname>wboy</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1986</year>
<manufacturer>Escape (Sega license)</manufacturer>
<players>2</players>
<joystick>4-way</joystick>
<rotation>horizontal</rotation>
<region>World</region>
<buttons names="Action/Run,Jump,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,FC">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Demo Sounds" bits="9" ids="On,Off"/>
<dip name="Lives" bits="10,11" ids="Free Play,5,4,3"/>
<dip name="Bonus Life" bits="12" ids="30/120/210/300k,30/100/170/240k"/>
<dip name="Allow Continue" bits="13" ids="No,Yes"/>
<dip name="Difficulty" bits="14" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>04</part>
</rom>
<rom index="0" zip="wboy.zip" type="merged" md5="ad4204a5e3232a5836e47ca967bfcaf6">
<!-- soundcpu, size: 0x8000 -->
<part name="epr-7498.120" crc="78ae1e7b"/>
<part name="epr-7498.120" crc="78ae1e7b"/>
<part name="epr-7498.120" crc="78ae1e7b"/>
<part name="epr-7498.120" crc="78ae1e7b"/>
<!-- maincpu, size: 0x18000 -->
<part name="epr-7489.116" crc="130f4b70"/>
<part name="epr-7490.109" crc="9e656733"/>
<part name="epr-7491.96" crc="1f7d0efe"/>
<part name="epr-7491.96" crc="1f7d0efe"/>
<part name="epr-7491.96" crc="1f7d0efe"/>
<part name="epr-7491.96" crc="1f7d0efe"/>
<!-- sprites, size: 0x20000 -->
<part name="epr-7485.117" crc="c2891722"/>
<part name="epr-7487.04" crc="2d3a421b"/>
<part name="epr-7486.110" crc="8d622c50"/>
<part name="epr-7488.05" crc="007c2f1b"/>
<part name="epr-7485.117" crc="c2891722"/>
<part name="epr-7487.04" crc="2d3a421b"/>
<part name="epr-7486.110" crc="8d622c50"/>
<part name="epr-7488.05" crc="007c2f1b"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-7497.62" crc="08d609ca"/>
<part name="epr-7495.64" crc="6a0d2c2d"/>
<part name="epr-7493.66" crc="89305df4"/>
<part name="epr-7493.66" crc="89305df4"/>
</interleave>
<interleave output="32">
<part name="epr-7496.61" crc="6f61fdf1"/>
<part name="epr-7494.63" crc="a8e281c7"/>
<part name="epr-7492.65" crc="60f806b1"/>
<part name="epr-7492.65" crc="60f806b1"/>
</interleave>
<interleave output="32">
<part name="epr-7497.62" crc="08d609ca"/>
<part name="epr-7495.64" crc="6a0d2c2d"/>
<part name="epr-7493.66" crc="89305df4"/>
<part name="epr-7493.66" crc="89305df4"/>
</interleave>
<interleave output="32">
<part name="epr-7496.61" crc="6f61fdf1"/>
<part name="epr-7494.63" crc="a8e281c7"/>
<part name="epr-7492.65" crc="60f806b1"/>
<part name="epr-7492.65" crc="60f806b1"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part name="pr-5317.76" crc="648350b8"/>
<!-- color proms, size: 0x300 -->
<part repeat="0x300">00</part>
<!-- encryption_device: 315-5177 -->
<part>
04 54 51 15 40 44 01 51 55 10 44 41 05 55 50 14
41 45 00 50 54 11 45 40 04 54 51 15 40 44 01 51
55 10 44 41 05 55 50 14 41 45 00 50 54 11 45 40
04 54 51 15 40 44 01 51 55 10 44 41 05 55 50 14
04 54 51 15 40 44 01 51 55 10 44 41 05 55 50 14
41 45 00 50 54 11 45 40 04 54 51 15 40 44 01 51
55 10 44 41 05 55 50 14 41 45 00 50 54 11 45 40
04 54 51 15 40 44 01 51 55 10 44 41 05 55 50 14
00 00 00 00 01 01 01 01 01 02 02 02 02 02 03 03
03 03 04 04 04 04 04 05 05 05 05 05 06 06 06 06
06 07 07 07 07 07 08 08 08 08 09 09 09 09 09 0a
0a 0a 0a 0a 0b 0b 0b 0b 0b 0c 0c 0c 0c 0c 0d 0d
08 08 08 08 09 09 09 09 09 0a 0a 0a 0a 0a 0b 0b
0b 0b 0c 0c 0c 0c 0c 0d 0d 0d 0d 0d 0e 0e 0e 0e
0e 0f 0f 0f 0f 0f 10 10 10 10 11 11 11 11 11 12
12 12 12 12 13 13 13 13 13 14 14 14 14 14 15 15
</part>
</rom>
<rom index="3" md5="none">
<part>
00 0F FF FF 00 FF 00 02 00 02 00 01 00 FF 00 00
00 00 C1 00 01 40 20 20 00 00 E8 56 00 0F 01 10
</part>
</rom>
<nvram index="4" size="335"/>
</misterromdescription>

View File

@@ -0,0 +1,67 @@
<misterromdescription>
<name>Wonder Boy in Monster Land (Japan New Ver., MC-8123, 317-0043)</name>
<setname>wbml</setname>
<rbf>segasys1</rbf>
<mameversion>0229</mameversion>
<year>1986</year>
<manufacturer>Escape (Sega license)</manufacturer>
<players>2</players>
<joystick>4-way</joystick>
<rotation>horizontal</rotation>
<region>World</region>
<buttons names="Action/Run,Jump,-,-,-,Start 1P,Start 2P,Coin,Pause" default="A,B,X,R,L,Start,Select" count="2"/>
<switches base="8" default="FF,FC">
<!-- SWA -->
<dip name="Coin A" bits="0,3" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<dip name="Coin B" bits="4,7" ids="1/1,1/1 2/3,1/1 4/5,1/1 5/6,2/1 4/3,2/1 5/3 6/4,2/3,4/1,3/1,2/1,1/6,1/5,1/4,1/3,1/2,1/1"/>
<!-- SWB -->
<!--
<dip name="Cabinet" bits="8" ids="Upright,Cocktail"/>
-->
<dip name="Demo Sounds" bits="9" ids="On,Off"/>
<dip name="Lives" bits="10,11" ids="Free Play,5,4,3"/>
<dip name="Bonus Life" bits="12" ids="30/120/210/300k,30/100/170/240k"/>
<dip name="Allow Continue" bits="13" ids="No,Yes"/>
<dip name="Difficulty" bits="14" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>05</part>
</rom>
<rom index="0" zip="wbml.zip" type="merged" md5="ad4204a5e3232a5836e47ca967bfcaf6">
<!-- soundcpu, size: 0x8000 -->
<part name="epr-11037.126"/>
<!-- maincpu, size: 0x18000 -->
<part name="epr-11031a.90"/>
<part name="epr-11032.91"/>
<part name="epr-11033.92"/>
<!-- sprites, size: 0x20000 -->
<part name="epr-11028.87"/>
<part name="epr-11027.86"/>
<part name="epr-11030.89"/>
<part name="epr-11029.88"/>
<!-- tiles, size: 0x18000 -->
<interleave output="32">
<part name="epr-11034.4"/>
<part name="epr-11035.5"/>
<part name="epr-11036.6"/>
<part name="epr-11036.6"/>
</interleave>
<!-- lookup_proms, size: 0x100 -->
<part name="pr5317.37"/>
<!-- color proms, size: 0x300 -->
<part name="pr11026.20"/>
<part name="pr11025.14"/>
<part name="pr11024.8"/>
<part repeat="0x1C00">00</part>
<!-- decryption key, size: 0x2000 -->
<part name="317-0043.key"/>
</rom>
</misterromdescription>

View File

@@ -1,63 +0,0 @@
<misterromdescription>
<name>Wonder Boy (set 1, 315-5177)</name>
<mameversion>0217</mameversion>
<setname>wboy</setname>
<mratimestamp>20200107000000</mratimestamp>
<year>1986</year>
<manufacturer>Escape (Sega license)</manufacturer>
<category>Platform / Extra</category>
<rbf>segasys1</rbf>
<switches default="FF,7E" base="8">
<dip bits="9" name="Demo Sound" ids="On,Off"/>
<dip bits="10,11" name="Lives" ids="Free Play,5,4,3"/>
<dip bits="12" name="Extend" ids="30k 120k 210k 300k,30k 100k 170k 240k"/>
<dip bits="13" name="Allow Continue" ids="No,Yes"/>
<dip bits="14" name="Difficulty" ids="Hard,Easy"/>
</switches>
<rom index="1">
<part>00</part>
</rom>
<rom index="0" zip="wboy.zip" md5="7cc14dd978cab8fbf13dd4120692086f" type="merged|nonmerged|split">
<part name="epr-7489.116"/>
<part name="epr-7490.109"/>
<part name="epr-7491.96"/>
<part name="epr-7498.120"/>
<part name="epr-7498.120"/>
<part name="epr-7485.117"/>
<part name="epr-7487.04"/>
<part name="epr-7486.110"/>
<part name="epr-7488.05"/>
<interleave output="32">
<part name="epr-7497.62" map="0001"/>
<part name="epr-7495.64" map="0010"/>
<part name="epr-7493.66" map="0100"/>
<part name="epr-7493.66" map="1000"/>
</interleave>
<interleave output="32">
<part name="epr-7496.61" map="0001"/>
<part name="epr-7494.63" map="0010"/>
<part name="epr-7492.65" map="0100"/>
<part name="epr-7492.65" map="1000"/>
</interleave>
<part name="pr-5317.76"/>
<part>
04 54 51 15 40 44 01 51 55 10 44 41 05 55 50 14
41 45 00 50 54 11 45 40 04 54 51 15 40 44 01 51
55 10 44 41 05 55 50 14 41 45 00 50 54 11 45 40
04 54 51 15 40 44 01 51 55 10 44 41 05 55 50 14
04 54 51 15 40 44 01 51 55 10 44 41 05 55 50 14
41 45 00 50 54 11 45 40 04 54 51 15 40 44 01 51
55 10 44 41 05 55 50 14 41 45 00 50 54 11 45 40
04 54 51 15 40 44 01 51 55 10 44 41 05 55 50 14
00 00 00 00 01 01 01 01 01 02 02 02 02 02 03 03
03 03 04 04 04 04 04 05 05 05 05 05 06 06 06 06
06 07 07 07 07 07 08 08 08 08 09 09 09 09 09 0a
0a 0a 0a 0a 0b 0b 0b 0b 0b 0c 0c 0c 0c 0c 0d 0d
08 08 08 08 09 09 09 09 09 0a 0a 0a 0a 0a 0b 0b
0b 0b 0c 0c 0c 0c 0c 0d 0d 0d 0d 0d 0e 0e 0e 0e
0e 0f 0f 0f 0f 0f 10 10 10 10 11 11 11 11 11 12
12 12 12 12 13 13 13 13 13 14 14 14 14 14 15 15
</part>
</rom>
</misterromdescription>

View File

@@ -6,9 +6,9 @@ module HVGEN
output [8:0] VPOS,
input CLK,
input PCLK_EN,
input [14:0] iRGB,
input [11:0] iRGB,
output reg [14:0] oRGB,
output reg [11:0] oRGB,
output reg HBLK = 1,
output reg VBLK = 1,
output reg HSYN = 1,

View File

@@ -0,0 +1,327 @@
// Copyright 2021 by blackwine
// decryption algorithm based on MAME sources
module MC8123_rom_decrypt
(
input clk,
// connect to CPU
input m1,
input [15:0] a,
output reg [7:0] d,
// connect to program ROM
input [7:0] prog_d,
// connect to cpu decryption key ROM
output [12:0] key_a,
input [7:0] key_d
);
assign key_a = {~m1,a[15:10],a[8],a[6],a[4],a[2:0]};
wire [7:0] key = ~key_d;
wire [2:0] decrypt_type = {key[4]^key[5],
key[0]^key[1]^key[2]^key[4],
key[0]^key[2]^~m1};
wire [1:0] swap = {key[2]^key[3],
key[0]^key[1]};
wire [3:0] param = {key[1]^key[6]^key[7],
key[0]^key[1]^key[6],
key[0]^key[2]^key[3],
key[0]^~m1};
always @( negedge clk ) begin
case (decrypt_type)
0: d <= decrypt_type_0 (prog_d, param, swap);
1: d <= decrypt_type_0 (prog_d, param, swap);
2: d <= decrypt_type_1a(prog_d, param, swap);
3: d <= decrypt_type_1b(prog_d, param, swap);
4: d <= decrypt_type_2a(prog_d, param, swap);
5: d <= decrypt_type_2b(prog_d, param, swap);
6: d <= decrypt_type_3a(prog_d, param, swap);
7: d <= decrypt_type_3b(prog_d, param, swap);
endcase
end
`define bitswap8(a,b,c,d,e,f,g,h) {v[a],v[b],v[c],v[d],v[e],v[f],v[g],v[h]}
reg [7:0] v;
reg s;
reg t;
function [7:0] decrypt_type_0;
input [7:0] value;
input [3:0] p; // param
input [1:0] swap;
v = value;
case (swap)
0: v = `bitswap8(7,5,3,1,2,0,6,4);
1: v = `bitswap8(5,3,7,2,1,0,4,6);
2: v = `bitswap8(0,3,4,6,7,1,5,2);
3: v = `bitswap8(0,7,3,2,6,4,1,5);
endcase
s = p[3] & v[7];
t = p[2] & v[6];
v = {
v[7] ^ t ^ v[6] ^ p[1],
v[6] ^ (p[1] & (v[7] ^ t ^ v[6])) ^ p[1],
v[5] ^ s ^ v[2] ^ t ^ p[2] ^ p[0],
~v[4],
~v[3] ^ s,
v[2] ^ t ^ p[2],
~v[1] ^ t,
v[0] ^ s ^ v[2] ^ t ^ p[2] ^ p[0]
};
decrypt_type_0 = p[0] ? `bitswap8(7,6,5,1,4,3,2,0) : v;
endfunction
// decrypt type 1a
function [7:0] decrypt_type_1a;
input [7:0] value;
input [3:0] p; // param
input [1:0] swap;
v = value;
case (swap)
0: v = `bitswap8(4,2,6,5,3,7,1,0);
1: v = `bitswap8(6,0,5,4,3,2,1,7);
2: v = `bitswap8(2,3,6,1,4,0,7,5);
3: v = `bitswap8(6,5,1,3,2,7,0,4);
endcase
v = p[2] ? `bitswap8(7,6,1,5,3,2,4,0) : v;
v = {
v[7] ^ v[4] ^ p[3],
~v[6] ^ v[7] ^ v[2] ^ v[4] ^ p[1],
v[5],
v[4] ^ v[7] ^ v[2],
~v[3] ^ v[7] ^ v[6] ^ v[2] ^ p[1],
v[2] ^ v[4] ^ p[3],
~v[1] ^ v[2],
~v[0] ^ v[1]
};
decrypt_type_1a = p[0] ? `bitswap8(7,6,1,4,3,2,5,0) : v;
endfunction
// decrypt type 1b
function [7:0] decrypt_type_1b;
input [7:0] value;
input [3:0] p; // param
input [1:0] swap;
v = value;
case (swap)
0: v = `bitswap8(1,0,3,2,5,6,4,7);
1: v = `bitswap8(2,0,5,1,7,4,6,3);
2: v = `bitswap8(6,4,7,2,0,5,1,3);
3: v = `bitswap8(7,1,3,6,0,2,5,4);
endcase
s = v[2] & v[0];
v = {
v[7] ^ s ^ v[5] ^ v[3] ^ p[2],
~v[6] ^ v[4] ^ s ^ v[0] ^ v[3] ^ p[2] ^ p[0],
v[5] ^ v[4] ^ s ^ v[1],
~v[4] ^ s ^ p[3] ^ p[1],
v[3] ^ p[1] ^ p[2],
v[2] ^ v[7] ^ s ^ v[5] ^ v[0] ^ v[3] ^ p[0],
v[1] ^ v[6] ^ v[0] ^ v[3] ^ p[3] ^ p[0],
~v[0] ^ v[3] ^ p[0] ^ p[2]
};
decrypt_type_1b = v;
endfunction
// decrypt type 2a
function [7:0] decrypt_type_2a;
input [7:0] value;
input [3:0] p; // param
input [1:0] swap;
v = value;
case (swap)
0: v = `bitswap8(0,1,4,3,5,6,2,7);
1: v = `bitswap8(6,3,0,5,7,4,1,2);
2: v = `bitswap8(1,6,4,5,0,3,7,2);
3: v = `bitswap8(4,6,7,5,2,3,1,0);
endcase
v = (v[3] || (p[1] & v[2])) ? `bitswap8(6,0,7,4,3,2,1,5) : v;
v = {
~v[7] ^ v[5],
~v[6] ^ v[0],
~v[5] ^ v[6],
~v[4] ^ p[2],
v[3] ^ v[4] ^ p[2],
v[2] ^ v[1] ^ p[2],
~v[1] ^ p[2],
v[0] ^ v[4] ^ p[2]
};
case({p[3],p[0]})
1: v = `bitswap8(7,6,5,2,1,3,4,0);
2: v = `bitswap8(7,6,5,1,2,4,3,0);
3: v = `bitswap8(7,6,5,3,4,1,2,0);
default:;
endcase
decrypt_type_2a = v;
endfunction
// decrypt type 2b
function [7:0] decrypt_type_2b;
input [7:0] value;
input [3:0] p; // param
input [1:0] swap;
v = value;
case (swap)
0: v = `bitswap8(1,3,4,6,5,7,0,2);
1: v = `bitswap8(0,1,5,4,7,3,2,6);
2: v = `bitswap8(3,5,4,1,6,2,0,7);
3: v = `bitswap8(5,2,3,0,4,7,6,1);
endcase
s = v[7] & v[3];
v = {
v[7] ^ v[5] ^ s ^ v[4],
v[6] ^ s,
v[5] ^ v[1] ^ s ^ v[4],
v[4] ^ s,
v[3] ^ v[5] ^ s ^ v[4],
v[2] ^ v[7],
v[1] ^ s ^ v[4],
v[0] ^ s
};
s = v[5] & (v[7] ^ v[1]);
v = {
~v[7] ^ v[6] ^ v[3] ^ p[2] ^ p[1],
v[6] ^ v[3] ^ p[3] ^ p[2],
v[5] ^ v[6] ^ v[3] ^ p[2] ^ p[0],
v[4] ^ s,
~v[3] ^ v[2] ^ p[3] ^ p[2],
~v[2] ^ p[2] ^ p[0],
~v[1] ^ v[3] ^ v[2] ^ p[3] ^ p[2],
v[0] ^ s
};
decrypt_type_2b = v;
endfunction
// decrypt type 3a
function [7:0] decrypt_type_3a;
input [7:0] value;
input [3:0] p; // param
input [1:0] swap;
v = value;
case (swap)
0: v = `bitswap8(5,3,1,7,0,2,6,4);
1: v = `bitswap8(3,1,2,5,4,7,0,6);
2: v = `bitswap8(5,6,1,2,7,0,4,3);
3: v = `bitswap8(5,6,7,0,4,2,1,3);
endcase
v = {
v[7] ^ v[2],
v[6],
v[5] ^ v[2],
v[4] ^ v[2],
v[3],
v[2],
v[1],
v[0] ^ v[3]
};
v = p[0] ? `bitswap8(7,2,5,4,3,1,0,6) : v;
v = {
v[7],
v[6] ^ v[1],
v[5],
v[4] ^ v[3] ^ p[3],
v[3] ^ p[3],
v[2] ^ v[3],
v[1] ^ v[3],
v[0] ^ v[1]
};
v = v[3] ? `bitswap8(5,6,7,4,3,2,1,0) : v;
v = {
v[7] ^ p[2],
~v[6],
~v[5],
~v[4] ^ p[1],
~v[3],
v[2] ^ v[5],
v[1] ^ v[5],
v[0] ^ p[0]
};
decrypt_type_3a = v;
endfunction
// decrypt type 3b
function [7:0] decrypt_type_3b;
input [7:0] value;
input [3:0] p; // param
input [1:0] swap;
v = value;
case (swap)
0: v = `bitswap8(3,7,5,4,0,6,2,1);
1: v = `bitswap8(7,5,4,6,1,2,0,3);
2: v = `bitswap8(7,4,3,0,5,1,6,2);
3: v = `bitswap8(2,6,4,1,3,7,0,5);
endcase
v = (v[2] ^ v[7]) ? `bitswap8(7,6,3,4,5,2,1,0) : v;
s = v[2] ^ p[3];
t = v[4] ^ v[1];
v = {
v[7] ^ s ^ p[3],
v[6] ^ t,
v[5],
v[4] ^ v[1],
v[3],
v[2] ^ v[1],
v[1] ^ ((v[7] ^ s) & (v[6] ^ t) ^ v[7] ^ s),
v[0] ^ p[2]
};
v = p[3] ? `bitswap8(4,6,3,2,5,0,1,7) : v;
v = {
v[7] ^ p[1],
v[6],
~v[5],
v[4] ^ v[5],
~v[3] ^ p[0],
~v[2] ^ v[7],
v[1] ^ v[4],
v[0]
};
decrypt_type_3b = v;
endfunction
endmodule

View File

@@ -14,19 +14,21 @@ module SEGASYSTEM1
input [7:0] DSW0,
input [7:0] DSW1,
input SYSTEM2,
input SYSTEM2_ROWSCROLL,
input [8:0] PH, // PIXEL H
input [8:0] PV, // PIXEL V
output PCLK_EN,
output [7:0] POUT, // PIXEL OUT
output [11:0] POUT, // PIXEL OUT
output [15:0] SOUT, // Sound Out (PCM)
output [15:0] cpu_rom_addr,
output [16:0] cpu_rom_addr,
input [7:0] cpu_rom_do,
output [12:0] snd_rom_addr,
output [14:0] snd_rom_addr,
input [7:0] snd_rom_do,
output [13:0] tile_rom_addr,
output [14:0] tile_rom_addr,
input [31:0] tile_rom_do,
output [17:0] spr_rom_addr,
input [7:0] spr_rom_do,
@@ -39,7 +41,7 @@ module SEGASYSTEM1
// CPU
wire [15:0] CPUAD;
wire [7:0] CPUDO,VIDDO,SNDNO,VIDMD;
wire [7:0] CPUDO,VIDDO,SNDNO,VIDMD,SNDCTL;
wire CPUWR,VIDCS,VBLK;
wire SNDRQ;
@@ -47,24 +49,28 @@ SEGASYS1_MAIN Main (
.RESET(reset),
.INP0(INP0),.INP1(INP1),.INP2(INP2),
.DSW0(DSW0),.DSW1(DSW1),
.SYSTEM2(SYSTEM2),
.CLK40M(clk40M),
.CPUAD(CPUAD),.CPUDO(CPUDO),.CPUWR(CPUWR),
.VBLK(VBLK),.VIDCS(VIDCS),.VIDDO(VIDDO),
.SNDRQ(SNDRQ),.SNDNO(SNDNO),
.VIDMD(VIDMD),
.VIDMD(VIDMD),.SNDCTL(SNDCTL),
.cpu_rom_addr(cpu_rom_addr),
.cpu_rom_do(cpu_rom_do),
.ROMCL(ROMCL),.ROMAD(ROMAD),.ROMDT(ROMDT),.ROMEN(ROMEN)
);
// Video
wire [7:0] OPIX;
wire [11:0] OPIX;
SEGASYS1_VIDEO Video (
.RESET(reset),.VCLKx8(clk40M),
.PH(PH),.PV(PV),.VFLP(VIDMD[7]),
.VBLK(VBLK),.PCLK_EN(PCLK_EN),.RGB8(OPIX),.PALDSW(1'b0),
.VBLK(VBLK),.PCLK_EN(PCLK_EN),.RGB(OPIX),
.VRAM_BANK(SYSTEM2 ? SNDCTL[2:1] : 2'b00),
.SYSTEM2(SYSTEM2),.SYSTEM2_ROWSCROLL(SYSTEM2_ROWSCROLL),
.PALDSW(1'b0),
.cpu_ad(CPUAD),.cpu_wr(CPUWR),.cpu_dw(CPUDO),
.cpu_rd(VIDCS),.cpu_dr(VIDDO),
@@ -73,7 +79,7 @@ SEGASYS1_VIDEO Video (
.ROMCL(ROMCL),.ROMAD(ROMAD),.ROMDT(ROMDT),.ROMEN(ROMEN)
);
assign POUT = VIDMD[4] ? 8'd0 : OPIX;
assign POUT = VIDMD[4] ? 12'd0 : OPIX;
// Sound

View File

@@ -1,7 +1,8 @@
// Copyright (c) 2017,19 MiSTer-X
`define EN_MCPU0 (ROMAD[17:15]==3'b00_0 )
`define EN_MCPU8 (ROMAD[17:14]==4'b00_10)
`define EN_MCPU0_PRG (ROMAD[18:15]==4'b000_1) // $08000-$0ffff
`define EN_MCPU8_PRG (ROMAD[18:16]==3'b001) // $10000-$1ffff
`define EN_KEY (ROMAD[18:13]==6'b110_001) // $62000-$63fff
module SEGASYS1_MAIN
(
@@ -15,6 +16,7 @@ module SEGASYS1_MAIN
input [7:0] DSW0,
input [7:0] DSW1,
input SYSTEM2,
input VBLK,
input VIDCS,
@@ -28,8 +30,9 @@ module SEGASYS1_MAIN
output reg [7:0] SNDNO,
output reg [7:0] VIDMD,
output reg [7:0] SNDCTL,
output [15:0] cpu_rom_addr,
output [16:0] cpu_rom_addr,
input [7:0] cpu_rom_do,
input ROMCL, // Downloaded ROM image
@@ -84,46 +87,71 @@ SEGASYS1_IPORT port(CPUAD,cpu_iorq, INP0,INP1,INP2, DSW0,DSW1, cpu_cs_port,cpu_r
// Program ROM
wire cpu_cs_mrom0 = (CPUAD[15] == 1'b0 ) & cpu_mreq;
wire cpu_cs_mrom1 = (CPUAD[15:14] == 2'b10) & cpu_mreq;
wire [7:0] cpu_rd_mrom0;
wire [7:0] cpu_rd_mrom1;
wire cpu_cs_mrom0 = (CPUAD[15] == 1'b0 ) & cpu_mreq;
wire cpu_cs_mrom8 = (CPUAD[15:14] == 2'b10) & cpu_mreq;
wire [7:0] cpu_rd_mrom0_prg;
wire [7:0] cpu_rd_mrom8;
wire [7:0] cpu_rd_mc8123;
wire [14:0] rad;
wire [7:0] rdt;
wire [12:0] key_a;
wire [7:0] key_d;
SEGASYS1_PRGDEC decr(CLK40M,cpu_m1,CPUAD,cpu_rd_mrom0, rad,rdt, ROMCL,ROMAD,ROMDT,ROMEN);
assign cpu_rom_addr = CPUAD[15] ? CPUAD[15:0] : {1'b0, rad};
assign cpu_rom_addr = CPUAD[15] ? {3'd2 + cpu_bank, CPUAD[13:0]} : {1'b0, has_mc8123_key ? CPUAD[14:0] : rad};
assign rdt = cpu_rom_do;
assign cpu_rd_mrom1 = cpu_rom_do;
assign cpu_rd_mrom8 = cpu_rom_do;
//DLROM #(15,8) rom0(AXSCL, rad, rdt, ROMCL,ROMAD,ROMDT,ROMEN & `EN_MCPU0); // ($0000-$7FFF encrypted)
//DLROM #(14,8) rom1(CPUCLn,CPUAD,cpu_rd_mrom1, ROMCL,ROMAD,ROMDT,ROMEN & `EN_MCPU8); // ($8000-$BFFF non-encrypted)
// CPU Region $0000-$7fff ROM
//DLROM #(15,8) rom0_prg(CLK40M, has_mc8123_key ? CPUAD : rad, rdt, ROMCL,ROMAD,ROMDT,ROMEN & `EN_MCPU0_PRG);
// CPU Region $8000-$bfff, 4 ROM banks
// No BRAM for separate opcode memory banks, they may be not needed though
wire [1:0] cpu_bank = {SYSTEM2 ? VIDMD[3] : VIDMD[6], VIDMD[2]};
//DLROM #(16,8) rom8_prg(CLK40M, {cpu_bank,CPUAD[13:0]}, cpu_rd_mrom8, ROMCL,ROMAD,ROMDT,ROMEN & `EN_MCPU8_PRG);
// 315-5xxx CPU decryption for selected SEGA System 1 titles
SEGASYS1_PRGDEC decr(CLK40M,cpu_m1,CPUAD,cpu_rd_mrom0_prg, rad,rdt, ROMCL,ROMAD,ROMDT,ROMEN);
// MC-8123 CPU decryption for selected SEGA System 2 titles
MC8123_rom_decrypt mc8123_decrypt(CLK40M, cpu_m1, CPUAD, cpu_rd_mc8123,
!CPUAD[15] ? rdt : cpu_rd_mrom8, key_a, key_d);
DLROM #(13,8) rom_keys(CLK40M, key_a, key_d,
ROMCL, ROMAD, ROMDT, ROMEN & `EN_KEY);
// Detect if we have mc8123 keys or opcode roms
//reg has_opcode_roms = 0;
reg has_mc8123_key = 0;
always @(posedge CLK40M) begin
if (ROMEN & `EN_KEY)
has_mc8123_key <= has_mc8123_key | ~(!ROMDT);
end
// Work RAM
wire [7:0] cpu_rd_mram;
wire cpu_cs_mram = (CPUAD[15:12] == 4'b1100) & cpu_mreq;
wire [7:0] cpu_rd_mram;
wire cpu_cs_mram = (CPUAD[15:12] == 4'b1100) & cpu_mreq;
SRAM_4096 mainram(CLK40M, CPUAD[11:0], cpu_rd_mram, cpu_cs_mram & CPUWR, CPUDO );
// Video mode latch & Sound Request
wire cpu_cs_sreq = ((CPUAD[7:0] == 8'h14)|(CPUAD[7:0] == 8'h18)) & cpu_iorq;
wire cpu_cs_vidm = ((CPUAD[7:0] == 8'h15)|(CPUAD[7:0] == 8'h19)) & cpu_iorq;
wire cpu_cs_sctl = (CPUAD[7:0] == 8'h16) & cpu_iorq;
wire cpu_wr_sreq = cpu_cs_sreq & _cpu_wr;
wire cpu_wr_vidm = cpu_cs_vidm & _cpu_wr;
wire cpu_wr_sctl = cpu_cs_sctl & _cpu_wr;
always @(posedge CLK40M or posedge RESET) begin
if (RESET) begin
VIDMD <= 0;
SNDRQ <= 0;
SNDNO <= 0;
SNDCTL <= 0;
end
else begin
if (cpu_wr_vidm) VIDMD <= CPUDO;
if (cpu_wr_sctl) SNDCTL <= CPUDO;
if (cpu_wr_sreq) begin SNDNO <= CPUDO; SNDRQ <= 1'b1; end else SNDRQ <= 1'b0;
end
end
@@ -132,10 +160,11 @@ end
// CPU data selector
assign CPUDI = (VIDCS & cpu_mreq) ? VIDDO :
cpu_cs_vidm ? VIDMD :
cpu_cs_sctl ? SNDCTL :
cpu_cs_port ? cpu_rd_port :
cpu_cs_mram ? cpu_rd_mram :
cpu_cs_mrom0 ? cpu_rd_mrom0 :
cpu_cs_mrom1 ? cpu_rd_mrom1 : 8'hFF;
cpu_cs_mrom0 ? (has_mc8123_key ? cpu_rd_mc8123 : cpu_rd_mrom0_prg) :
cpu_cs_mrom8 ? (has_mc8123_key ? cpu_rd_mc8123 : cpu_rd_mrom8) : 8'hFF;
endmodule

View File

@@ -1,11 +1,11 @@
// Copyright (c) 2017,19 MiSTer-X
`define DECTBLADRS (25'h30100)
`define DECTBLADRS (25'h60400)
`define EN_DEC1TBL (ROMAD[17:7]==11'b11_0000_0001_0) // $30100
`define EN_DEC1TBL (ROMAD[18:7]==12'b110_0000_0100_0) // $60400
`define EN_DEC2XOR (ROMAD[17:7]==11'b11_0000_0001_0) // $30100
`define EN_DEC2SWP (ROMAD[17:7]==11'b11_0000_0001_1) // $30180
`define EN_DEC2XOR (ROMAD[18:7]==12'b110_0000_0100_0) // $60400
`define EN_DEC2SWP (ROMAD[18:7]==12'b110_0000_0100_1) // $60480
module SEGASYS1_PRGDEC
@@ -45,7 +45,6 @@ always @(posedge ROMCL) begin
end
end
end
assign mrom_dt = (cnt0>=128) ? rdt : (cnt2>=128) ? od1 : od0;
endmodule

View File

@@ -1,6 +1,6 @@
// Copyright (c) 2017,19 MiSTer-X
`define EN_SCPU (ROMAD[17:13]==5'b00_110) // $0C000-$0DFFF
`define EN_SCPU (ROMAD[18:15]==4'b000_0) // $0-$7fff
module SEGASYS1_SOUND
(
@@ -12,7 +12,7 @@ module SEGASYS1_SOUND
output [15:0] sndout,
output [12:0] snd_rom_addr,
output [14:0] snd_rom_addr,
input [7:0] snd_rom_do
);
@@ -24,7 +24,7 @@ wire clk8M_en,clk4M_en,clk2M_en;
SndClkGen clkgen(clk40M,clk8M_en,clk4M_en,clk2M_en);
//----------------------------------
// Z80 (1.5625MHz)
// Z80 (4MHz)
//----------------------------------
wire [15:0] cpu_ad;
wire [7:0] cpu_di, cpu_do;
@@ -59,7 +59,7 @@ wire [7:0] rom_dt; // ROM
wire [7:0] ram_do; // RAM
wire [7:0] comlatch; // Sound Command Latch
assign snd_rom_addr = cpu_ad[12:0];
assign snd_rom_addr = cpu_ad[14:0];
assign rom_dt = snd_rom_do;
//DLROM #(13,8) subir( cpuclkx2, cpu_ad[12:0], rom_dt, ROMCL,ROMAD,ROMDT,ROMEN & `EN_SCPU );

View File

@@ -8,6 +8,8 @@ module SEGASYS1_SPRITE
input VCLKx4_EN,
input VCLK_EN,
input SYSTEM2,
input [8:0] PH,
input [8:0] PV,
@@ -147,7 +149,7 @@ always @ ( posedge VCLKx8 ) if (VCLKx4_EN) begin
// get yofs/xpos/bank
2: begin
yofs <= hitsprvps[hitr];
xpos <= ((sprdt[8:0]+1)>>1) + 8'd14;
xpos <= ((sprdt[8:0]+1)>>1) + (SYSTEM2 ? 8'd22 : 8'd14);
bank <= { sprdt[13], sprdt[14], sprdt[15] };
spr_ofs <= 2;
phaseHD <= 3;

View File

@@ -1,15 +1,15 @@
// Copyright (c) 2017,19 MiSTer-X
`define EN_SPRITE (ROMAD[17:16]==2'b01) // $10000-$1FFFF
`define EN_SPRITE (ROMAD[18:17]==2'b01) // $20000-$3FFFF
`define EN_TILE00 (ROMAD[17:13]==5'b10_000) // $20000-$21FFF
`define EN_TILE01 (ROMAD[17:13]==5'b10_001) // $22000-$23FFF
`define EN_TILE02 (ROMAD[17:13]==5'b10_010) // $24000-$25FFF
`define EN_TILE10 (ROMAD[17:13]==5'b10_100) // $28000-$29FFF
`define EN_TILE11 (ROMAD[17:13]==5'b10_101) // $2A000-$2BFFF
`define EN_TILE12 (ROMAD[17:13]==5'b10_110) // $2C000-$2DFFF
`define EN_TILE00 (ROMAD[18:14]==6'b100_00) // $40000-$43FFF
`define EN_TILE10 (ROMAD[18:14]==6'b100_01) // $44000-$47FFF
`define EN_TILE01 (ROMAD[18:14]==6'b100_10) // $48000-$4bFFF
`define EN_TILE11 (ROMAD[18:14]==6'b100_11) // $4c000-$4fFFF
`define EN_TILE02 (ROMAD[18:14]==6'b101_00) // $50000-$53FFF
`define EN_TILE12 (ROMAD[18:14]==6'b101_01) // $54000-$57FFF
`define EN_CLUT (ROMAD[17:8]==10'b11_0000_0000) // $30000-$300FF
`define EN_CLUT (ROMAD[18:8]==11'b110_0000_0000) // $60000-$600FF
module SEGASYS1_VIDEO
@@ -25,7 +25,11 @@ module SEGASYS1_VIDEO
output VBLK,
output PCLK,
output PCLK_EN,
output [7:0] RGB8,
output [11:0] RGB,
input [1:0] VRAM_BANK,
input SYSTEM2,
input SYSTEM2_ROWSCROLL,
input PALDSW,
@@ -35,7 +39,7 @@ module SEGASYS1_VIDEO
output cpu_rd,
output [7:0] cpu_dr,
output reg [13:0] tile_rom_addr,
output reg [14:0] tile_rom_addr,
input [31:0] tile_rom_do,
output [17:0] spr_rom_addr,
input [7:0] spr_rom_do,
@@ -63,9 +67,9 @@ wire [7:0] palout;
wire [9:0] sprad;
wire [15:0] sprdt;
wire [9:0] vram0ad;
wire [12:0] vram0ad;
wire [15:0] vram0dt;
wire [9:0] vram1ad;
wire [12:0] vram1ad;
wire [15:0] vram1dt;
wire [5:0] mixcoll_ad;
@@ -75,11 +79,13 @@ wire sprcoll;
wire [15:0] scrx;
wire [7:0] scry;
wire [11:0] bg_pages;
VIDCPUINTF intf(
RESET,
VCLKx8,
PH, PV,
cpu_ad, cpu_wr, cpu_dw,
cpu_rd, cpu_dr,
@@ -87,9 +93,12 @@ VIDCPUINTF intf(
sprad, sprdt,
vram0ad, vram0dt,
vram1ad, vram1dt,
VRAM_BANK,
mixcoll_ad, mixcoll,
sprcoll_ad, sprcoll,
scrx, scry
scrx, scry,
SYSTEM2, SYSTEM2_ROWSCROLL,
bg_pages
);
@@ -98,6 +107,7 @@ wire [8:0] HPOS, VPOS;
wire [8:0] BG0HP, BG0VP;
wire [8:0] BG1HP, BG1VP;
VIDHVGEN hv(
SYSTEM2,
PH, PV,
scrx, scry,
HPOS, VPOS,
@@ -119,6 +129,7 @@ SEGASYS1_SPRITE sprite(
.VCLKx8(VCLKx8),
.VCLKx4(VCLKx4),.VCLK(VCLK),
.VCLKx4_EN(VCLKx4_EN), .VCLK_EN(VCLK_EN),
.SYSTEM2(SYSTEM2),
.PH(HPOS),.PV(VPOS),
.sprad(sprad),.sprdt(sprdt),
.sprchad(sprchad),.sprchdt(sprchdt),
@@ -129,40 +140,73 @@ SEGASYS1_SPRITE sprite(
// BG Scanline Generator
wire [10:0] BG0PX, BG1PX;
wire [13:0] tile0ad, tile1ad, tilead;
reg [23:0] tile0dt, tile1dt, tile0dt_r;
wire [14:0] tile0ad, tile1ad;
wire [14:0] tilead_fg = SYSTEM2 ? tile0ad : tile1ad;
wire [14:0] tilead_bg = SYSTEM2 ? tile1ad : tile0ad;
reg [14:0] tilead;
reg [23:0] tiledt_fg, tiledt_bg, tiledt_r;
wire [23:0] tile0dt = SYSTEM2 ? tiledt_fg : tiledt_bg;
wire [23:0] tile1dt = SYSTEM2 ? tiledt_bg : tiledt_fg;
always @(posedge VCLKx8) begin
if (VCLK_EN) begin
if (HPOS[2:0] == 3'b000) begin
tile_rom_addr <= tile0ad;
tile1dt <= tile_rom_do[23:0];
tile0dt <= tile0dt_r;
tile_rom_addr <= tilead_bg;
tiledt_fg <= tile_rom_do[23:0];
tiledt_bg <= tiledt_r;
end
if (HPOS[2:0] == 3'b100) begin
tile_rom_addr <= tile1ad;
tile0dt_r <= tile_rom_do[23:0];
tile_rom_addr <= tilead_fg;
tiledt_r <= tile_rom_do[23:0];
end
end
end
BGGEN bg0(VCLKx8,VCLK_EN,BG0HP,BG0VP,vram0ad,vram0dt,tile0ad,tile0dt,BG0PX);
BGGEN bg1(VCLKx8,VCLK_EN,BG1HP,BG1VP,vram1ad,vram1dt,tile1ad,tile1dt,BG1PX);
wire [11:0] pages = !SYSTEM2 ? 12'b001001001001 : bg_pages;
BGGEN bg0(VCLKx8,VCLK_EN,BG0HP,BG0VP,0, vram0ad,vram0dt,tile0ad,tile0dt,BG0PX);
BGGEN bg1(VCLKx8,VCLK_EN,BG1HP,BG1VP,pages,vram1ad,vram1dt,tile1ad,tile1dt,BG1PX);
// Color Mixer & RGB Output
wire [7:0] cltidx,cltval;
wire [7:0] color;
DLROM #(8,8) clut(VCLKx8, cltidx, cltval, ROMCL,ROMAD,ROMDT,ROMEN & `EN_CLUT );
COLMIX cmix(
VCLKx8, VCLK_EN,
BG0PX, BG1PX, SPRPX,
SYSTEM2 ? BG1PX : BG0PX,
SYSTEM2 ? BG0PX : BG1PX,
SPRPX,
PALDSW, HPOS, VPOS,
cltidx, cltval,
mixcoll, mixcoll_ad,
palno, palout,
RGB8
color
);
// Palette
`define EN_PALR (ROMAD[18:8]==11'b110_0000_0001) // $60100
`define EN_PALG (ROMAD[18:8]==11'b110_0000_0010) // $60200
`define EN_PALB (ROMAD[18:8]==11'b110_0000_0011) // $60300
wire [3:0] r,g,b;
DLROM #(8,8) pal_r(VCLKx8, color, r, ROMCL,ROMAD,ROMDT,ROMEN & `EN_PALR );
DLROM #(8,8) pal_g(VCLKx8, color, g, ROMCL,ROMAD,ROMDT,ROMEN & `EN_PALG );
DLROM #(8,8) pal_b(VCLKx8, color, b, ROMCL,ROMAD,ROMDT,ROMEN & `EN_PALB );
// detect color proms while transfering them
reg has_color_prom = 0;
always @(posedge ROMCL)
if (ROMEN)
if(`EN_PALR | `EN_PALG | `EN_PALB)
has_color_prom <= has_color_prom | ~(!ROMDT);
assign RGB = has_color_prom ? {b,g,r} :
{color[7:6], color[7:6],
color[5:3], color[5],
color[2:0], color[2]};
endmodule
@@ -174,6 +218,8 @@ module VIDCPUINTF
input RESET,
input clk,
input [8:0] PH,
input [8:0] PV,
input [15:0] cpu_ad,
input cpu_wr,
input [7:0] cpu_dw,
@@ -186,12 +232,14 @@ module VIDCPUINTF
input [9:0] sprad,
output [15:0] sprdt,
input [9:0] vram0ad,
input [12:0] vram0ad,
output [15:0] vram0dt,
input [9:0] vram1ad,
input [12:0] vram1ad,
output [15:0] vram1dt,
input [1:0] vram_bank,
input [5:0] mixcoll_ad,
input mixcoll,
@@ -199,7 +247,10 @@ module VIDCPUINTF
input sprcoll,
output reg [15:0] scrx,
output reg [7:0] scry
output reg [7:0] scry,
input SYSTEM2,
input SYSTEM2_ROWSCROLL,
output [11:0] bg_pages
);
// CPU Address Decoders
@@ -207,8 +258,7 @@ wire cpu_cs_palram;
wire cpu_cs_spram;
wire cpu_cs_mixcoll;
wire cpu_cs_sprcoll;
wire cpu_cs_vram0;
wire cpu_cs_vram1;
wire cpu_cs_vram;
wire cpu_wr_palram;
wire cpu_wr_spram;
@@ -216,9 +266,10 @@ wire cpu_wr_mixcoll;
wire cpu_wr_mixcollclr;
wire cpu_wr_sprcoll;
wire cpu_wr_sprcollclr;
wire cpu_wr_vram0;
wire cpu_wr_vram1;
wire cpu_wr_scrreg;
wire cpu_wr_vram;
wire cpu_wr_scrreg1;
wire cpu_wr_scrreg0;
wire cpu_wr_bgpage;
VIDADEC adecs(
cpu_ad,
@@ -228,8 +279,7 @@ VIDADEC adecs(
cpu_cs_spram,
cpu_cs_mixcoll,
cpu_cs_sprcoll,
cpu_cs_vram0,
cpu_cs_vram1,
cpu_cs_vram,
cpu_wr_palram,
cpu_wr_spram,
@@ -237,27 +287,47 @@ VIDADEC adecs(
cpu_wr_mixcollclr,
cpu_wr_sprcoll,
cpu_wr_sprcollclr,
cpu_wr_vram0,
cpu_wr_vram1,
cpu_wr_scrreg,
cpu_wr_vram,
cpu_wr_scrreg0,
cpu_wr_scrreg1,
cpu_wr_bgpage,
cpu_rd
);
// Scroll Register
reg [7:0] scrx_row[64];
reg [2:0] bg_page[4];
assign bg_pages = {bg_page[3],bg_page[2],bg_page[1],bg_page[0]};
// Scroll and background plane registers
always @ ( posedge clk or posedge RESET) begin
if (RESET) begin
scrx <= 0;
scry <= 0;
end
else begin
if (cpu_wr_scrreg) begin
case(cpu_ad[7:0])
8'hBD: scry <= cpu_dw;
8'hFC: scrx[ 7:0] <= cpu_dw;
8'hFD: scrx[15:8] <= cpu_dw;
default:;
endcase
if (SYSTEM2) begin
if (cpu_wr_bgpage & !vram_bank)
bg_page[cpu_ad[2:1]] <= cpu_dw[2:0];
else if (cpu_wr_scrreg0 & !vram_bank) begin
if (cpu_ad[6])
scrx_row[cpu_ad[5:0]] <= cpu_dw;
else if (cpu_ad[7:0] == 8'hba)
scry <= cpu_dw;
end
if (SYSTEM2_ROWSCROLL)
scrx <= {scrx_row[{PV[7:3],1'b1}],scrx_row[{PV[7:3],1'b0}]};
else
scrx <= {scrx_row[1],scrx_row[0]};
end else begin
if (cpu_wr_scrreg1) begin
case(cpu_ad[7:0])
8'hBD: scry <= cpu_dw;
8'hFC: scrx[ 7:0] <= cpu_dw;
8'hFD: scrx[15:8] <= cpu_dw;
default:;
endcase
end
end
end
end
@@ -290,21 +360,15 @@ COLLRAM_S sprc(
);
// VRAM
wire [7:0] cpu_rd_vram0, cpu_rd_vram1;
VRAM vram0(
clk, cpu_ad[10:0], cpu_rd_vram0, cpu_dw, cpu_wr_vram0,
clk, vram0ad, vram0dt
wire [7:0] cpu_rd_vram;
VRAM vram(
clk, {vram_bank, cpu_ad[11:0]}, cpu_rd_vram, cpu_dw, cpu_wr_vram,
vram0ad, vram0dt, vram1ad, vram1dt
);
VRAM vram1(
clk, cpu_ad[10:0], cpu_rd_vram1, cpu_dw, cpu_wr_vram1,
clk, vram1ad, vram1dt
);
// CPU Read Data Selector
assign cpu_dr = cpu_cs_palram ? cpu_rd_palram :
cpu_cs_vram0 ? cpu_rd_vram0 :
cpu_cs_vram1 ? cpu_rd_vram1 :
cpu_cs_vram ? cpu_rd_vram :
cpu_cs_spram ? cpu_rd_spram :
cpu_cs_sprcoll ? cpu_rd_sprcoll :
cpu_cs_mixcoll ? cpu_rd_mixcoll : 8'hFF;
@@ -316,6 +380,7 @@ endmodule
//----------------------------------
module VIDHVGEN
(
input SYSTEM2,
input [8:0] PH,
input [8:0] PV,
@@ -339,14 +404,14 @@ assign VBLK = (PV == 9'd224) & (PH <= 9'd64);
assign HPOS = PH+1'd1;
assign VPOS = PV;
wire [7:0] BGHSCR = scrx[9:1]+4'd14;
wire [7:0] BGHSCR = scrx[8:1];
wire [7:0] BGVSCR = scry;
assign BG0HP = (HPOS-BGHSCR)+8'd3;
assign BG0VP = (VPOS+BGVSCR);
assign BG0HP = SYSTEM2 ? HPOS : (HPOS-BGHSCR-4'd14)+4'd3;
assign BG0VP = SYSTEM2 ? VPOS : (VPOS+BGVSCR);
assign BG1HP = HPOS+8'd3;
assign BG1VP = VPOS;
assign BG1HP = SYSTEM2 ? HPOS-BGHSCR-4'd4 : HPOS+4'd3;
assign BG1VP = SYSTEM2 ? (VPOS+BGVSCR) : VPOS;
endmodule
@@ -356,57 +421,56 @@ endmodule
//----------------------------------
module VIDADEC
(
input [15:0] cpu_ad,
input cpu_wr,
input [15:0] cpu_ad,
input cpu_wr,
output cpu_cs_palram,
output cpu_cs_spram,
output cpu_cs_mixcoll,
output cpu_cs_sprcoll,
output cpu_cs_vram0,
output cpu_cs_vram1,
output cpu_wr_palram,
output cpu_wr_spram,
output cpu_wr_mixcoll,
output cpu_wr_mixcollclr,
output cpu_wr_sprcoll,
output cpu_wr_sprcollclr,
output cpu_wr_vram0,
output cpu_wr_vram1,
output cpu_wr_scrreg,
output cpu_cs_palram,
output cpu_cs_spram,
output cpu_cs_mixcoll,
output cpu_cs_sprcoll,
output cpu_cs_vram,
output cpu_rd
output cpu_wr_palram,
output cpu_wr_spram,
output cpu_wr_mixcoll,
output cpu_wr_mixcollclr,
output cpu_wr_sprcoll,
output cpu_wr_sprcollclr,
output cpu_wr_vram,
output cpu_wr_scrreg0,
output cpu_wr_scrreg1,
output cpu_wr_bgpage,
output cpu_rd
);
assign cpu_cs_palram = (cpu_ad[15:11] == 5'b1101_1 );
assign cpu_cs_spram = (cpu_ad[15:11] == 5'b1101_0 );
assign cpu_cs_mixcoll = (cpu_ad[15:10] == 6'b1111_00 );
wire cpu_cs_mixcollclr = (cpu_ad[15:10] == 6'b1111_01 );
assign cpu_cs_sprcoll = (cpu_ad[15:10] == 6'b1111_10 );
wire cpu_cs_sprcollclr = (cpu_ad[15:10] == 6'b1111_11 );
assign cpu_cs_vram0 = (cpu_ad[15:11] == 5'b1110_0 );
assign cpu_cs_vram1 = (cpu_ad[15:11] == 5'b1110_1 );
wire cpu_cs_scrreg = (cpu_ad[15: 8] == 8'b1110_1111);
assign cpu_cs_palram = (cpu_ad[15:11] == 5'b1101_1);
assign cpu_cs_spram = (cpu_ad[15:11] == 5'b1101_0);
assign cpu_cs_mixcoll = (cpu_ad[15:10] == 6'b1111_00);
wire cpu_cs_mixcollclr = (cpu_ad[15:10] == 6'b1111_01);
assign cpu_cs_sprcoll = (cpu_ad[15:10] == 6'b1111_10);
wire cpu_cs_sprcollclr = (cpu_ad[15:10] == 6'b1111_11);
assign cpu_cs_vram = (cpu_ad[15:12] == 4'b1110);
wire cpu_cs_scrreg0 = (cpu_ad[15: 7] == 9'b1110_0111_1);
wire cpu_cs_scrreg1 = (cpu_ad[15: 8] == 8'b1110_1111);
wire cpu_cs_bgpage = (cpu_ad[15: 3] == 13'b1110_0111_0100_0) & !cpu_ad[0];
assign cpu_wr_palram = cpu_cs_palram & cpu_wr;
assign cpu_wr_spram = cpu_cs_spram & cpu_wr;
assign cpu_wr_palram = cpu_cs_palram & cpu_wr;
assign cpu_wr_spram = cpu_cs_spram & cpu_wr;
assign cpu_wr_mixcoll = cpu_cs_mixcoll & cpu_wr;
assign cpu_wr_mixcollclr = cpu_cs_mixcollclr & cpu_wr;
assign cpu_wr_sprcoll = cpu_cs_sprcoll & cpu_wr;
assign cpu_wr_sprcollclr = cpu_cs_sprcollclr & cpu_wr;
assign cpu_wr_vram0 = cpu_cs_vram0 & cpu_wr;
assign cpu_wr_vram1 = cpu_cs_vram1 & cpu_wr;
assign cpu_wr_scrreg = cpu_cs_scrreg & cpu_wr;
assign cpu_wr_scrreg0 = cpu_cs_scrreg0 & cpu_wr;
assign cpu_wr_scrreg1 = cpu_cs_scrreg1 & cpu_wr;
assign cpu_wr_bgpage = cpu_cs_bgpage & cpu_wr;
assign cpu_wr_vram = cpu_cs_vram & cpu_wr;
assign cpu_rd = cpu_cs_palram |
cpu_cs_vram0 |
cpu_cs_vram1 |
cpu_cs_spram |
cpu_cs_sprcoll |
cpu_cs_mixcoll ;
cpu_cs_vram |
cpu_cs_spram |
cpu_cs_sprcoll |
cpu_cs_mixcoll;
endmodule
@@ -421,17 +485,21 @@ module BGGEN
input [8:0] HP,
input [8:0] VP,
input [11:0] BG_PAGES,
output [9:0] VRAMAD,
input [15:0] VRAMDT,
output [12:0] VRAMAD,
input [15:0] VRAMDT,
output [13:0] TILEAD,
input [23:0] TILEDT,
output [14:0] TILEAD,
input [23:0] TILEDT,
output [10:0] OPIX
);
assign VRAMAD = { VP[7:3], HP[7:3] };
assign VRAMAD = {VP[8] ? (HP[8] ? BG_PAGES[8:6] : BG_PAGES[11:9])
: (HP[8] ? BG_PAGES[2:0] : BG_PAGES[5:3]),
VP[7:3], HP[7:3]};
assign TILEAD = { VRAMDT[15], VRAMDT[10:0], VP[2:0] };
reg [31:0] BGREG;
@@ -482,7 +550,7 @@ module COLMIX
output [10:0] palno,
input [7:0] palout,
output reg [7:0] RGB8
output reg [7:0] color
);
assign cltidx = { 1'b0,
@@ -504,7 +572,7 @@ wire [10:0] palno_d = {HPOS[7],VPOS[7:2],HPOS[6:3]};
assign palno = PALDSW ? palno_d : palno_i;
always @(posedge CLK ) if (VCLK_EN) RGB8 <= palout;
always @(posedge CLK ) if (VCLK_EN) color <= palout;
endmodule

View File

@@ -32,6 +32,7 @@ module Segasys1_MiST(
`include "rtl/build_id.v"
`define CORE_NAME "FLICKY"
localparam CONF_STR = {
`CORE_NAME,";ROM;",
"O2,Rotate Controls,Off,On;",
@@ -51,6 +52,12 @@ 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[5]) begin
// Block Gal
INP0 = ~spin[8:1];
INP1 = ~spin[8:1];
INP2 = ~{m_fire2A | |mouse_flags[2:0], m_fireA | |mouse_flags[2:0], m_two_players, m_one_player, 2'b00, m_coin2, m_coin1};
end else
if (core_mod[3]) begin
//WaterMatch
INP0 = ~{m_left, m_right, m_up, m_down, m_left2,m_right2,m_up2,m_down2};
@@ -59,11 +66,22 @@ always @(*) begin
end
end
wire signed [8:0] spin;
wire signed [8:0] spin_next = spin + mouse_x;
always @(posedge clk_sys) begin
if (mouse_strobe) begin
if (spin[8] != mouse_x[8] || spin[8] == spin_next[8])
spin <= spin_next;
else
spin <= {spin[8], {8{~spin[8]}}};
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,[3]=4controllers
wire [1:0] orientation = { 1'b0, core_mod[1] };
wire [6:0] core_mod; // [0]=SYS1/SYS2,[1]=H/V,[2]=H256/H240,[3]=4controllers,[4]=CW/CCW,[5]=spinner,[6]=SYS2 rowscroll,
wire [1:0] orientation = { core_mod[4], core_mod[1] };
assign LED = ~ioctl_downl;
assign SDRAM_CLK = sdram_clk;
@@ -89,6 +107,10 @@ wire [7:0] joystick_3;
wire key_pressed;
wire key_strobe;
wire [7:0] key_code;
wire signed [8:0] mouse_x;
wire signed [8:0] mouse_y;
wire [7:0] mouse_flags;
wire mouse_strobe;
wire scandoublerD;
wire ypbpr;
wire no_csync;
@@ -111,19 +133,23 @@ user_io(
.key_strobe (key_strobe ),
.key_pressed (key_pressed ),
.key_code (key_code ),
.mouse_strobe (mouse_strobe ),
.mouse_x (mouse_x ),
.mouse_y (mouse_y ),
.mouse_flags (mouse_flags ),
.joystick_0 (joystick_0 ),
.joystick_1 (joystick_1 ),
.status (status )
);
wire [15:0] audio;
wire [15:0] rom_addr;
wire [15:0] rom_do;
wire [15:0] spr_rom_addr;
wire [16:0] cpu_rom_addr;
wire [15:0] cpu_rom_do;
wire [16:0] spr_rom_addr;
wire [15:0] spr_rom_do;
wire [12:0] snd_rom_addr;
wire [14:0] snd_rom_addr;
wire [15:0] snd_rom_do;
wire [13:0] tile_rom_addr;
wire [15:0] tile_rom_addr;
wire [23:0] tile_rom_do;
wire ioctl_downl;
wire [7:0] ioctl_index;
@@ -144,7 +170,7 @@ data_io data_io(
);
reg port1_req, port2_req;
wire [24:0] tl_ioctl_addr = ioctl_addr - 18'h20000;
wire [24:0] tl_ioctl_addr = ioctl_addr - 20'h40000;
sdram #(80) sdram(
.*,
.init_n ( pll_locked ),
@@ -159,11 +185,11 @@ sdram #(80) sdram(
.port1_d ( {ioctl_dout, ioctl_dout} ),
.port1_q ( ),
.cpu1_addr ( ioctl_downl ? 16'hffff : {1'b0, rom_addr[15:1]}), // offset 0
.cpu1_q ( rom_do ),
.cpu2_addr ( ioctl_downl ? 16'hffff : (16'h6000 + snd_rom_addr[12:1]) ), // offset c000
.cpu1_addr ( ioctl_downl ? 17'h1ffff : (17'h4000 + cpu_rom_addr[16:1]) ), // offset 8000h
.cpu1_q ( cpu_rom_do ),
.cpu2_addr ( ioctl_downl ? 17'h1ffff : snd_rom_addr[14:1] ), // offset 0
.cpu2_q ( snd_rom_do ),
.cpu3_addr ( ioctl_downl ? 16'hffff : (16'h8000 + spr_rom_addr[15:1]) ), // offset 10000
.cpu3_addr ( ioctl_downl ? 17'h1ffff : (17'h10000 + spr_rom_addr[16:1]) ), // offset 20000h
.cpu3_q ( spr_rom_do ),
// port2 for backround tiles
@@ -175,7 +201,7 @@ sdram #(80) sdram(
.port2_d ( {ioctl_dout, ioctl_dout} ),
.port2_q ( ),
.sp_addr ( ioctl_downl ? 15'h7fff : tile_rom_addr ),
.sp_addr ( ioctl_downl ? 16'hffff : tile_rom_addr ),
.sp_q ( tile_rom_do )
);
@@ -210,13 +236,17 @@ SEGASYSTEM1 System1_Top(
.DSW0(DSW0),
.DSW1(DSW1),
.SYSTEM2(core_mod[0]),
.SYSTEM2_ROWSCROLL(core_mod[6]),
.PH(HPOS),
.PV(VPOS),
.PCLK_EN(PCLK_EN),
.POUT(POUT),
.cpu_rom_addr(rom_addr),
.cpu_rom_do( rom_addr[0] ? rom_do[15:8] : rom_do[7:0] ),
.cpu_rom_addr(cpu_rom_addr),
.cpu_rom_do(cpu_rom_addr[0] ? cpu_rom_do[15:8] : cpu_rom_do[7:0] ),
.snd_rom_addr(snd_rom_addr),
.snd_rom_do(snd_rom_addr[0] ? snd_rom_do[15:8] : snd_rom_do[7:0] ),
@@ -228,20 +258,19 @@ SEGASYSTEM1 System1_Top(
.tile_rom_do(tile_rom_do),
.ROMCL(clk_sys),
.ROMAD(ioctl_addr[17:0]),
.ROMDT( ioctl_dout ),
.ROMEN( ioctl_wr ),
.ROMAD(ioctl_addr),
.ROMDT(ioctl_dout),
.ROMEN(ioctl_wr),
.SOUT(audio)
);
wire PCLK_EN;
wire [8:0] HPOS,VPOS;
wire [7:0] POUT;
wire [11:0] POUT;
wire [7:0] HOFFS = 8'd2;
wire [7:0] VOFFS = 8'd2;
wire hs, vs;
wire [2:0] g, r;
wire [1:0] b;
wire [3:0] b, g, r;
HVGEN hvgen
(
@@ -250,14 +279,14 @@ HVGEN hvgen
.H240(core_mod[2]),.HOFFS(HOFFS),.VOFFS(VOFFS)
);
mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(10)) mist_video(
mist_video #(.COLOR_DEPTH(4), .SD_HCNT_WIDTH(10)) mist_video(
.clk_sys ( clk_sys ),
.SPI_SCK ( SPI_SCK ),
.SPI_SS3 ( SPI_SS3 ),
.SPI_DI ( SPI_DI ),
.R ( r ),
.G ( g ),
.B ( {b, b[1]} ),
.B ( b ),
.HSync ( hs ),
.VSync ( vs ),
.VGA_R ( VGA_R ),
@@ -267,7 +296,7 @@ mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(10)) mist_video(
.VGA_HS ( VGA_HS ),
.ce_divider ( 1'b0 ),
.blend ( blend ),
.rotate ( {1'b0, rotate} ),
.rotate ( {core_mod[4], rotate} ),
.scandoubler_disable(scandoublerD ),
.scanlines ( scanlines ),
.ypbpr ( ypbpr ),

View File

@@ -155,52 +155,66 @@ endmodule
//----------------------------------
module VRAMs
(
input clk0,
input [9:0] adr0,
output reg [7:0] dat0,
input [7:0] dtw0,
input wen0,
input clk,
input [12:0] adr0,
output reg [7:0] dat0,
input [7:0] dtw0,
input wen0,
input clk1,
input [9:0] adr1,
output reg [7:0] dat1
input [12:0] adr1,
output reg [7:0] dat1,
input [12:0] adr2,
output reg [7:0] dat2
);
reg [7:0] core [0:1023];
reg [7:0] core ['h2000];
always @( posedge clk0 ) begin
reg sel;
reg [12:0] adr;
reg [7:0] dat;
always @( posedge clk ) begin
if (wen0) core[adr0] <= dtw0;
else dat0 <= core[adr0];
dat0 <= core[adr0];
adr <= sel ? adr1 : adr2;
dat <= core[adr];
end
always @( posedge clk1 ) begin
dat1 <= core[adr1];
always @( posedge clk ) begin
sel <= ~sel;
if (sel) dat1 <= dat; else dat2 <= dat;
end
endmodule
module VRAM
(
input clk0,
input [10:0] adr0,
output [7:0] dat0,
input [7:0] dtw0,
input wen0,
input clk,
input [13:0] adr0,
output [7:0] dat0,
input [7:0] dtw0,
input wen0,
input clk1,
input [9:0] adr1,
output [15:0] dat1
input [12:0] adr1,
output [15:0] dat1,
input [12:0] adr2,
output [15:0] dat2
);
wire even = ~adr0[0];
wire odd = adr0[0];
wire [7:0] do00, do01, do10, do11;
VRAMs ram0( clk0, adr0[10:1], do00, dtw0, wen0 & even, clk1, adr1, do10 );
VRAMs ram1( clk0, adr0[10:1], do01, dtw0, wen0 & odd, clk1, adr1, do11 );
wire [7:0] do00, do01, do10, do11, do20, do21;
VRAMs ram0(clk, adr0[13:1], do00, dtw0, wen0 & even,
adr1, do10, adr2, do20);
VRAMs ram1(clk, adr0[13:1], do01, dtw0, wen0 & odd,
adr1, do11, adr2, do21);
assign dat0 = adr0[0] ? do01 : do00;
assign dat0 = odd ? do01 : do00;
assign dat1 = { do11, do10 };
assign dat2 = { do21, do20 };
endmodule

View File

@@ -46,11 +46,11 @@ module sdram (
input [15:0] port1_d,
output reg [15:0] port1_q,
input [16:1] cpu1_addr,
input [17:1] cpu1_addr,
output reg [15:0] cpu1_q,
input [16:1] cpu2_addr,
input [17:1] cpu2_addr,
output reg [15:0] cpu2_q,
input [16:1] cpu3_addr,
input [17:1] cpu3_addr,
output reg [15:0] cpu3_q,
input port2_req,
@@ -61,7 +61,7 @@ module sdram (
input [15:0] port2_d,
output reg [31:0] port2_q,
input [16:2] sp_addr,
input [17:2] sp_addr,
output reg [31:0] sp_q
);
@@ -156,8 +156,8 @@ assign SDRAM_nWE = sd_cmd[0];
reg [24:1] addr_latch[3];
reg [24:1] addr_latch_next[2];
reg [16:1] addr_last[4];
reg [16:2] addr_last2[2];
reg [17:1] addr_last[4];
reg [17:2] addr_last2[2];
reg [15:0] din_latch[2];
reg [1:0] oe_latch;
reg [1:0] we_latch;
@@ -190,13 +190,13 @@ always @(*) begin
addr_latch_next[0] = { 1'b0, port1_a };
end else if (cpu1_addr != addr_last[PORT_CPU1]) begin
next_port[0] = PORT_CPU1;
addr_latch_next[0] = { 8'd0, cpu1_addr };
addr_latch_next[0] = { 7'd0, cpu1_addr };
end else if (cpu2_addr != addr_last[PORT_CPU2]) begin
next_port[0] = PORT_CPU2;
addr_latch_next[0] = { 8'd0, cpu2_addr };
addr_latch_next[0] = { 7'd0, cpu2_addr };
end else if (cpu3_addr != addr_last[PORT_CPU3]) begin
next_port[0] = PORT_CPU3;
addr_latch_next[0] = { 8'd0, cpu3_addr };
addr_latch_next[0] = { 7'd0, cpu3_addr };
end else begin
next_port[0] = PORT_NONE;
addr_latch_next[0] = addr_latch[0];
@@ -210,7 +210,7 @@ always @(*) begin
addr_latch_next[1] = { 1'b1, port2_a };
end else if (sp_addr != addr_last2[PORT_SP]) begin
next_port[1] = PORT_SP;
addr_latch_next[1] = { 1'b1, 7'd0, sp_addr, 1'b0 };
addr_latch_next[1] = { 1'b1, 6'd0, sp_addr, 1'b0 };
end else begin
next_port[1] = PORT_NONE;
addr_latch_next[1] = addr_latch[1];
@@ -257,7 +257,7 @@ always @(posedge clk) begin
sd_cmd <= CMD_ACTIVE;
SDRAM_A <= addr_latch_next[0][22:10];
SDRAM_BA <= addr_latch_next[0][24:23];
addr_last[next_port[0]] <= addr_latch_next[0][16:1];
addr_last[next_port[0]] <= addr_latch_next[0][17:1];
if (next_port[0] == PORT_REQ) begin
{ oe_latch[0], we_latch[0] } <= { ~port1_we, port1_we };
ds[0] <= port1_ds;
@@ -281,7 +281,7 @@ always @(posedge clk) begin
sd_cmd <= CMD_ACTIVE;
SDRAM_A <= addr_latch_next[1][22:10];
SDRAM_BA <= addr_latch_next[1][24:23];
addr_last2[next_port[1]] <= addr_latch_next[1][16:2];
addr_last2[next_port[1]] <= addr_latch_next[1][17:2];
if (next_port[1] == PORT_REQ) begin
{ oe_latch[1], we_latch[1] } <= { ~port1_we, port1_we };
ds[1] <= port2_ds;

View File

@@ -41,7 +41,7 @@
# ========================
set_global_assignment -name ORIGINAL_QUARTUS_VERSION "12.1 SP1"
set_global_assignment -name PROJECT_CREATION_TIME_DATE "09:07:52 FEBRUARY 01, 2013"
set_global_assignment -name LAST_QUARTUS_VERSION "13.1 SP4.26"
set_global_assignment -name LAST_QUARTUS_VERSION 13.1
set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files
set_global_assignment -name SMART_RECOMPILE ON
set_global_assignment -name PRE_FLOW_SCRIPT_FILE "quartus_sh:rtl/build_id.tcl"
@@ -222,6 +222,7 @@ set_global_assignment -name ENABLE_SIGNALTAP OFF
set_global_assignment -name USE_SIGNALTAP_FILE output_files/mrdo.stp
set_global_assignment -name SYSTEMVERILOG_FILE rtl/MrDo_mist.sv
set_global_assignment -name SYSTEMVERILOG_FILE rtl/MrDo_top.sv
set_global_assignment -name VERILOG_FILE rtl/secret_pal.v
set_global_assignment -name VERILOG_FILE rtl/video_timing.v
set_global_assignment -name VERILOG_FILE rtl/ram_dp_1k.v
set_global_assignment -name VERILOG_FILE rtl/cpu_ram.v

View File

@@ -37,6 +37,5 @@
<part crc="16ee4ca2" name="f10--1.bin"/>
<part crc="ff7fe284" name="j10--4.bin"/>
<part crc="badf5876" name="j2-u001.bin"/>
<patch offset="0x049a"> 00 </patch>
</rom>
</misterromdescription>

View File

@@ -37,6 +37,5 @@
<part crc="16ee4ca2" name="f10--1.bin"/>
<part crc="ff7fe284" name="j10--4.bin"/>
<part crc="badf5876" name="j2-u001.bin"/>
<patch offset="0x049a"> 00 </patch>
</rom>
</misterromdescription>

View File

@@ -678,13 +678,8 @@ reg [15:0] unhandled_addr ;
always @ (posedge clk_20M ) begin
if ( rd_n == 0 ) begin
// read program rom
if (cpu_addr == 16'h049a ) begin
// patch rom to bypass "secret" pal protection
// cpu tries to read val from 0x9803 which is state machine pal
// written to on all tile ram access. should try converting pal logic to verilog.
cpu_din <= 0;
end else if ( cpu_addr >= 16'h0000 && cpu_addr < 16'h8000 ) begin
// read program rom
if ( cpu_addr >= 16'h0000 && cpu_addr < 16'h8000 ) begin
cpu_din <= rom_do; // 0x0000
end else if ( cpu_addr >= 16'h8000 && cpu_addr < 16'h8400 ) begin
cpu_din <= bg_ram0_data;
@@ -695,7 +690,7 @@ always @ (posedge clk_20M ) begin
end else if ( cpu_addr >= 16'h8c00 && cpu_addr < 16'h9000 ) begin
cpu_din <= fg_ram1_data;
end else if ( cpu_addr == 16'h9803 ) begin
cpu_din <= 0;
cpu_din <= u001_dout;
end else if ( cpu_addr == 16'ha000 ) begin
cpu_din <= p1;
end else if ( cpu_addr == 16'ha001 ) begin
@@ -755,6 +750,24 @@ always @ (posedge clk_20M ) begin
end
end
// u001 "secret" pal protection
// cpu tries to read val from 0x9803 which is state machine pal
// written to on all tile ram access..
wire [7:0] u001_dout ;
reg gfx_ram_wr_old;
always @(posedge clk_20M) gfx_ram_wr_old <= gfx_fg_ram0_wr | gfx_fg_ram1_wr;
wire secret_pal_clk_en = ~gfx_ram_wr_old & (gfx_fg_ram0_wr | gfx_fg_ram1_wr);
secret_pal u001
(
.clk( clk_20M ),
.clk_en( secret_pal_clk_en ),
.din( cpu_dout ),
.dout( u001_dout )
);
// first 256 bytes are attribute data
// bit 7 of attr == MSB of tile
// bit 6 tile flip

View File

@@ -0,0 +1,79 @@
// PAL16R6 (IC U001)
// no feedback used so a 128 byte lookup table could work too.
module secret_pal
(
input clk,
input clk_en,
input [7:0] din,
output [7:0] dout
);
wire [9:2] i ;
reg [19:12] r ;
// data bus d7 (msb) is pin 2 so reverse input bit order
assign i = {din[0],din[1],din[2],din[3],din[4],din[5],din[6],din[7]};
assign dout = r ;
wire t1 = i[2] & ~i[3] & i[4] & ~i[5] & ~i[6] & ~i[8] & i[9] ;
wire t2 = ~i[2] & ~i[3] & i[4] & i[5] & ~i[6] & i[8] & ~i[9] ;
wire t3 = i[2] & i[3] & ~i[4] & ~i[5] & i[6] & ~i[8] & i[9] ;
wire t4 = ~i[2] & i[3] & i[4] & ~i[5] & i[6] & i[8] & i[9] ;
always @(posedge clk) begin
if (clk_en) begin
// pal output is registered clocked by pin 1 connected to (TRAM WE) $8800-$8fff
// pal OE is enabled by reading address $9803 (SECRE)
r[12] <= 0;
// /rf13 := i2 & /i3 & i4 & /i5 & /i6 & /i8 & i9
r[13] <= ~ ( t1 );
// /rf14 := /i2 & /i3 & i4 & i5 & /i6 & i8 & /i9 + i2 & /i3 & i4 & /i5 & /i6 & /i8 & i9
r[14] <= ~ ( t2 | t1 );
// /rf15 := i2 & i3 & /i4 & /i5 & i6 & /i8 & i9 + i2 & /i3 & i4 & /i5 & /i6 & /i8 & i9
r[15] <= ~ ( t3 | t1 );
// /rf16 := i2 & /i3 & i4 & /i5 & /i6 & /i8 & i9
r[16] <= ~ ( t1 );
// /rf17 := i2 & i3 & /i4 & /i5 & i6 & /i8 & i9 + i2 & /i3 & i4 & /i5 & /i6 & /i8 & i9
r[17] <= ~ ( t3 | t1 );
// /rf18 := /i2 & i3 & i4 & /i5 & i6 & i8 & i9 + i2 & i3 & /i4 & /i5 & i6 & /i8 & i9
r[18] <= ~ ( t4 | t3 );
r[19] <= 0;
end
end
endmodule
/*
/rf13 := i2 & /i3 & i4 & /i5 & /i6 & /i8 & i9
rf13.oe = OE
/rf14 := /i2 & /i3 & i4 & i5 & /i6 & i8 & /i9 + i2 & /i3 & i4 & /i5 & /i6 & /i8 & i9
rf14.oe = OE
/rf15 := i2 & i3 & /i4 & /i5 & i6 & /i8 & i9 + i2 & /i3 & i4 & /i5 & /i6 & /i8 & i9
rf15.oe = OE
/rf16 := i2 & /i3 & i4 & /i5 & /i6 & /i8 & i9
rf16.oe = OE
/rf17 := i2 & i3 & /i4 & /i5 & i6 & /i8 & i9 + i2 & /i3 & i4 & /i5 & /i6 & /i8 & i9
rf17.oe = OE
/rf18 := /i2 & i3 & i4 & /i5 & i6 & i8 & i9 + i2 & i3 & /i4 & /i5 & i6 & /i8 & i9
rf18.oe = OE
*/