mirror of
https://github.com/Gehstock/Mist_FPGA.git
synced 2026-01-20 01:34:38 +00:00
Spy Hunter: add MRA, no built-in ROMs
This commit is contained in:
parent
5bf298591d
commit
9a3bb64765
@ -3,8 +3,10 @@
|
||||
-- Arcade: Spy Hunter port to MiST by Gehstock
|
||||
-- 16 November 2019
|
||||
--
|
||||
|
||||
SHUNTER.ROM is required at the root of the SD-Card.
|
||||
-- Usage:
|
||||
-- Create ROM file from MRA file and MAME spyhunt.zip file using the MRA utility
|
||||
-- Copy the ROM and the RBF to the SD Card
|
||||
-- MRA utility: https://github.com/sebdel/mra-tools-c
|
||||
|
||||
Controls
|
||||
Joy Keyboard
|
||||
@ -14,9 +16,9 @@ left left : Left
|
||||
right right : Right
|
||||
ESC : Coin
|
||||
start TAB,LShift : VAN
|
||||
A Space : Gun
|
||||
A LCtrl : Gun
|
||||
B LAlt : Missle
|
||||
C LCtrl : Shift
|
||||
C SPACE : Shift
|
||||
X Z : Oil
|
||||
Y X : Smoke
|
||||
|
||||
|
||||
@ -229,10 +229,8 @@ set_global_assignment -name VHDL_FILE rtl/spy_hunter_sound_board.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/spy_hunter_control.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/YM2149_linmix_sep.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/gen_ram.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/dpram.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/cmos_ram.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/spy_hunter_bg_bits_2.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/spy_hunter_bg_bits_1.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/spy_hunter_ch_bits.vhd
|
||||
set_global_assignment -name VHDL_FILE rtl/rom/midssio_82s123.vhd
|
||||
set_global_assignment -name SYSTEMVERILOG_FILE rtl/sdram.sv
|
||||
set_global_assignment -name VHDL_FILE rtl/pll_mist.vhd
|
||||
@ -242,5 +240,4 @@ set_global_assignment -name VHDL_FILE ../../../common/IO/pia6821.vhd
|
||||
set_global_assignment -name QIP_FILE ../../../common/CPU/68000/FX68k/fx68k.qip
|
||||
set_global_assignment -name QIP_FILE ../../../common/CPU/T80/T80.qip
|
||||
set_global_assignment -name QIP_FILE ../../../common/mist/mist.qip
|
||||
set_global_assignment -name SIGNALTAP_FILE output_files/csd.stp
|
||||
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top
|
||||
@ -0,0 +1,38 @@
|
||||
<misterromdescription>
|
||||
<name>Spy Hunter</name>
|
||||
<mameversion>0216</mameversion>
|
||||
<mratimestamp>201912310000</mratimestamp>
|
||||
<manufacturer>Bally Midway</manufacturer>
|
||||
<setname>spyhunt</setname>
|
||||
<rom index="0" zip="spyhunt.zip" md5="83494589c7ec76729e0d776d999e3a70" type="merged|nonmerged">
|
||||
<part name="spy-hunter_cpu_pg0_2-9-84.6d"/>
|
||||
<part name="spy-hunter_cpu_pg1_2-9-84.7d"/>
|
||||
<part name="spy-hunter_cpu_pg2_2-9-84.8d"/>
|
||||
<part name="spy-hunter_cpu_pg3_2-9-84.9d"/>
|
||||
<part name="spy-hunter_cpu_pg4_2-9-84.10d"/>
|
||||
<part name="spy-hunter_cpu_pg5_2-9-84.11d"/>
|
||||
|
||||
<part name="spy-hunter_snd_0_sd_11-18-83.a7"/>
|
||||
<part name="spy-hunter_snd_1_sd_11-18-83.a8"/>
|
||||
|
||||
<part name="spy-hunter_cs_deluxe_u17_b_11-18-83.u17"/>
|
||||
<part name="spy-hunter_cs_deluxe_u18_d_11-18-83.u18"/>
|
||||
<part name="spy-hunter_cs_deluxe_u7_a_11-18-83.u7"/>
|
||||
<part name="spy-hunter_cs_deluxe_u8_c_11-18-83.u8"/>
|
||||
|
||||
<part name="spy-hunter_video_1fg_11-18-83.a7"/>
|
||||
<part name="spy-hunter_video_0fg_11-18-83.a8"/>
|
||||
<part name="spy-hunter_video_3fg_11-18-83.a5"/>
|
||||
<part name="spy-hunter_video_2fg_11-18-83.a6"/>
|
||||
<part name="spy-hunter_video_5fg_11-18-83.a3"/>
|
||||
<part name="spy-hunter_video_4fg_11-18-83.a4"/>
|
||||
<part name="spy-hunter_video_7fg_11-18-83.a1"/>
|
||||
<part name="spy-hunter_video_6fg_11-18-83.a2"/>
|
||||
|
||||
<part name="spy-hunter_cpu_bg0_11-18-83.3a"/>
|
||||
<part name="spy-hunter_cpu_bg1_11-18-83.4a"/>
|
||||
<part name="spy-hunter_cpu_bg2_11-18-83.5a"/>
|
||||
<part name="spy-hunter_cpu_bg3_11-18-83.6a"/>
|
||||
<part name="spy-hunter_cpu_alpha-n_11-18-83"/>
|
||||
</rom>
|
||||
</misterromdescription>
|
||||
@ -48,7 +48,7 @@ module SpyHunter_MiST(
|
||||
`include "rtl/build_id.v"
|
||||
|
||||
localparam CONF_STR = {
|
||||
"SHUNTER;;",
|
||||
"SPYHUNT;;",
|
||||
"O2,Rotate Controls,Off,On;",
|
||||
"O5,Blend,Off,On;",
|
||||
"O6,Service,Off,On;",
|
||||
@ -85,14 +85,32 @@ wire [15:0] joystick_0;
|
||||
wire [15:0] joystick_1;
|
||||
wire scandoublerD;
|
||||
wire ypbpr;
|
||||
wire [15:0] audio_l, audio_r;
|
||||
wire [9:0] csd_audio;
|
||||
wire hs, vs, cs;
|
||||
wire blankn;
|
||||
wire [2:0] g, r, b;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
wire no_csync;
|
||||
wire key_pressed;
|
||||
wire [7:0] key_code;
|
||||
wire key_strobe;
|
||||
|
||||
user_io #(
|
||||
.STRLEN(($size(CONF_STR)>>3)))
|
||||
user_io(
|
||||
.clk_sys (clk_sys ),
|
||||
.conf_str (CONF_STR ),
|
||||
.SPI_CLK (SPI_SCK ),
|
||||
.SPI_SS_IO (CONF_DATA0 ),
|
||||
.SPI_MISO (SPI_DO ),
|
||||
.SPI_MOSI (SPI_DI ),
|
||||
.buttons (buttons ),
|
||||
.switches (switches ),
|
||||
.scandoubler_disable (scandoublerD ),
|
||||
.ypbpr (ypbpr ),
|
||||
.no_csync (no_csync ),
|
||||
.key_strobe (key_strobe ),
|
||||
.key_pressed (key_pressed ),
|
||||
.key_code (key_code ),
|
||||
.joystick_0 (joystick_0 ),
|
||||
.joystick_1 (joystick_1 ),
|
||||
.status (status )
|
||||
);
|
||||
|
||||
wire [15:0] rom_addr;
|
||||
wire [15:0] rom_do;
|
||||
@ -125,12 +143,16 @@ data_io data_io(
|
||||
// 0000 - DFFF - Main ROM (8 bit)
|
||||
// E000 - FFFF - Super Sound board ROM (8 bit)
|
||||
// 10000 - 17FFF - CSD ROM (16 bit)
|
||||
// 18000 - Sprite ROMs (32 bit)
|
||||
// 18000 - 37FFF - Sprite ROMs (32 bit)
|
||||
// 38000 - 3FFFF - BG
|
||||
// 40000 - 40FFF - Char
|
||||
|
||||
// spy-hunter_cpu_pg0_2-9-84.6d spy-hunter_cpu_pg1_2-9-84.7d spy-hunter_cpu_pg2_2-9-84.8d spy-hunter_cpu_pg3_2-9-84.9d spy-hunter_cpu_pg4_2-9-84.10d spy-hunter_cpu_pg5_2-9-84.11d
|
||||
// spy-hunter_snd_0_sd_11-18-83.a7 spy-hunter_snd_1_sd_11-18-83.a8
|
||||
// spy-hunter_cs_deluxe_u17_b_11-18-83.u17 spy-hunter_cs_deluxe_u18_d_11-18-83.u18 spy-hunter_cs_deluxe_u7_a_11-18-83.u7 spy-hunter_cs_deluxe_u8_c_11-18-83.u8
|
||||
// spy-hunter_video_1fg_11-18-83.a7 spy-hunter_video_0fg_11-18-83.a8 spy-hunter_video_3fg_11-18-83.a5 spy-hunter_video_2fg_11-18-83.a6 spy-hunter_video_5fg_11-18-83.a3 spy-hunter_video_4fg_11-18-83.a4 spy-hunter_video_7fg_11-18-83.a1 spy-hunter_video_6fg_11-18-83.a2
|
||||
// spy-hunter_cpu_bg0_11-18-83.3a spy-hunter_cpu_bg1_11-18-83.4a spy-hunter_cpu_bg2_11-18-83.5a spy-hunter_cpu_bg3_11-18-83.6a
|
||||
// spy-hunter_cpu_alpha-n_11-18-83
|
||||
|
||||
wire [24:0] rom_ioctl_addr = ~ioctl_addr[16] ? ioctl_addr : // 8 bit ROMs
|
||||
{ioctl_addr[24:16], ioctl_addr[15], ioctl_addr[13:0], ioctl_addr[14]}; // 16 bit ROM
|
||||
@ -162,7 +184,7 @@ sdram sdram(
|
||||
// port2 for sprite graphics
|
||||
.port2_req ( port2_req ),
|
||||
.port2_ack ( ),
|
||||
.port2_a ( {sp_ioctl_addr[14:0], sp_ioctl_addr[16]} ), // merge sprite roms to 32-bit wide words
|
||||
.port2_a ( {sp_ioctl_addr[23:17], sp_ioctl_addr[14:0], sp_ioctl_addr[16]} ), // merge sprite roms to 32-bit wide words
|
||||
.port2_ds ( {sp_ioctl_addr[15], ~sp_ioctl_addr[15]} ),
|
||||
.port2_we ( ioctl_downl ),
|
||||
.port2_d ( {ioctl_dout, ioctl_dout} ),
|
||||
@ -202,6 +224,12 @@ always @(posedge clk_sys) begin
|
||||
|
||||
end
|
||||
|
||||
wire [15:0] audio_l, audio_r;
|
||||
wire [9:0] csd_audio;
|
||||
wire hs, vs, cs;
|
||||
wire blankn;
|
||||
wire [2:0] g, r, b;
|
||||
|
||||
spy_hunter_control spy_hunter_control(
|
||||
.clock_40(clk_sys),
|
||||
.reset(reset),
|
||||
@ -250,13 +278,16 @@ spy_hunter spy_hunter(
|
||||
.csd_rom_addr ( csd_addr ),
|
||||
.csd_rom_do ( csd_do ),
|
||||
.sp_addr ( sp_addr ),
|
||||
.sp_graphx32_do ( sp_do )
|
||||
.sp_graphx32_do ( sp_do ),
|
||||
.dl_addr ( ioctl_addr[18:0]),
|
||||
.dl_data ( ioctl_dout ),
|
||||
.dl_wr ( ioctl_wr )
|
||||
);
|
||||
|
||||
wire vs_out;
|
||||
wire hs_out;
|
||||
assign VGA_VS = scandoublerD | vs_out;
|
||||
assign VGA_HS = scandoublerD ? cs : hs_out;
|
||||
assign VGA_HS = ((~no_csync & scandoublerD) || ypbpr)? cs : hs_out;
|
||||
assign VGA_VS = ((~no_csync & scandoublerD) || ypbpr)? 1'b1 : vs_out;
|
||||
|
||||
mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(10)) mist_video(
|
||||
.clk_sys ( clk_sys ),
|
||||
@ -281,27 +312,6 @@ mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(10)) mist_video(
|
||||
.ypbpr ( ypbpr )
|
||||
);
|
||||
|
||||
user_io #(
|
||||
.STRLEN(($size(CONF_STR)>>3)))
|
||||
user_io(
|
||||
.clk_sys (clk_sys ),
|
||||
.conf_str (CONF_STR ),
|
||||
.SPI_CLK (SPI_SCK ),
|
||||
.SPI_SS_IO (CONF_DATA0 ),
|
||||
.SPI_MISO (SPI_DO ),
|
||||
.SPI_MOSI (SPI_DI ),
|
||||
.buttons (buttons ),
|
||||
.switches (switches ),
|
||||
.scandoubler_disable (scandoublerD ),
|
||||
.ypbpr (ypbpr ),
|
||||
.key_strobe (key_strobe ),
|
||||
.key_pressed (key_pressed ),
|
||||
.key_code (key_code ),
|
||||
.joystick_0 (joystick_0 ),
|
||||
.joystick_1 (joystick_1 ),
|
||||
.status (status )
|
||||
);
|
||||
|
||||
dac #(
|
||||
.C_bits(16))
|
||||
dac_l(
|
||||
|
||||
81
Arcade_MiST/Midway MCR Scroll/SpyHunter_MiST/rtl/dpram.vhd
Normal file
81
Arcade_MiST/Midway MCR Scroll/SpyHunter_MiST/rtl/dpram.vhd
Normal file
@ -0,0 +1,81 @@
|
||||
-- -----------------------------------------------------------------------
|
||||
--
|
||||
-- Syntiac's generic VHDL support files.
|
||||
--
|
||||
-- -----------------------------------------------------------------------
|
||||
-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com)
|
||||
-- http://www.syntiac.com/fpga64.html
|
||||
--
|
||||
-- Modified April 2016 by Dar (darfpga@aol.fr)
|
||||
-- http://darfpga.blogspot.fr
|
||||
-- Remove address register when writing
|
||||
--
|
||||
-- -----------------------------------------------------------------------
|
||||
--
|
||||
-- dpram.vhd
|
||||
--
|
||||
-- -----------------------------------------------------------------------
|
||||
--
|
||||
-- generic ram.
|
||||
--
|
||||
-- -----------------------------------------------------------------------
|
||||
|
||||
library IEEE;
|
||||
use IEEE.STD_LOGIC_1164.ALL;
|
||||
use IEEE.numeric_std.ALL;
|
||||
|
||||
-- -----------------------------------------------------------------------
|
||||
|
||||
entity dpram is
|
||||
generic (
|
||||
dWidth : integer := 8;
|
||||
aWidth : integer := 10
|
||||
);
|
||||
port (
|
||||
clk_a : in std_logic;
|
||||
we_a : in std_logic := '0';
|
||||
addr_a : in std_logic_vector((aWidth-1) downto 0);
|
||||
d_a : in std_logic_vector((dWidth-1) downto 0) := (others => '0');
|
||||
q_a : out std_logic_vector((dWidth-1) downto 0);
|
||||
|
||||
clk_b : in std_logic;
|
||||
we_b : in std_logic := '0';
|
||||
addr_b : in std_logic_vector((aWidth-1) downto 0);
|
||||
d_b : in std_logic_vector((dWidth-1) downto 0) := (others => '0');
|
||||
q_b : out std_logic_vector((dWidth-1) downto 0)
|
||||
);
|
||||
end entity;
|
||||
|
||||
-- -----------------------------------------------------------------------
|
||||
|
||||
architecture rtl of dpram is
|
||||
subtype addressRange is integer range 0 to ((2**aWidth)-1);
|
||||
type ramDef is array(addressRange) of std_logic_vector((dWidth-1) downto 0);
|
||||
signal ram: ramDef;
|
||||
signal addr_a_reg: std_logic_vector((aWidth-1) downto 0);
|
||||
signal addr_b_reg: std_logic_vector((aWidth-1) downto 0);
|
||||
begin
|
||||
|
||||
-- -----------------------------------------------------------------------
|
||||
process(clk_a)
|
||||
begin
|
||||
if rising_edge(clk_a) then
|
||||
if we_a = '1' then
|
||||
ram(to_integer(unsigned(addr_a))) <= d_a;
|
||||
end if;
|
||||
q_a <= ram(to_integer(unsigned(addr_a)));
|
||||
end if;
|
||||
end process;
|
||||
|
||||
process(clk_b)
|
||||
begin
|
||||
if rising_edge(clk_b) then
|
||||
if we_b = '1' then
|
||||
ram(to_integer(unsigned(addr_b))) <= d_b;
|
||||
end if;
|
||||
q_b <= ram(to_integer(unsigned(addr_b)));
|
||||
end if;
|
||||
end process;
|
||||
|
||||
end architecture;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,278 +0,0 @@
|
||||
library ieee;
|
||||
use ieee.std_logic_1164.all,ieee.numeric_std.all;
|
||||
|
||||
entity spy_hunter_ch_bits is
|
||||
port (
|
||||
clk : in std_logic;
|
||||
addr : in std_logic_vector(11 downto 0);
|
||||
data : out std_logic_vector(7 downto 0)
|
||||
);
|
||||
end entity;
|
||||
|
||||
architecture prom of spy_hunter_ch_bits is
|
||||
type rom is array(0 to 4095) of std_logic_vector(7 downto 0);
|
||||
signal rom_data: rom := (
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"3F",X"3F",X"0C",X"0C",X"3F",X"FF",X"3F",X"FF",X"3F",X"FF",X"0C",X"0C",X"3F",X"3F",
|
||||
X"00",X"00",X"3F",X"3F",X"0C",X"0C",X"3F",X"FF",X"3F",X"FF",X"3F",X"FF",X"0C",X"0C",X"3F",X"3F",
|
||||
X"00",X"00",X"3F",X"FC",X"C0",X"03",X"CC",X"33",X"CC",X"33",X"CF",X"F3",X"C0",X"03",X"3F",X"FC",
|
||||
X"33",X"00",X"3F",X"FC",X"00",X"00",X"03",X"FC",X"3F",X"0C",X"33",X"0C",X"3F",X"FC",X"00",X"00",
|
||||
X"00",X"0C",X"3F",X"FC",X"00",X"00",X"00",X"0C",X"00",X"0C",X"3F",X"FC",X"00",X"00",X"3F",X"FC",
|
||||
X"00",X"00",X"F0",X"00",X"0F",X"C0",X"00",X"3F",X"3C",X"00",X"0F",X"FC",X"3C",X"00",X"00",X"0C",
|
||||
X"00",X"00",X"3F",X"FC",X"00",X"00",X"3F",X"FC",X"0C",X"00",X"03",X"00",X"0C",X"00",X"3F",X"FC",
|
||||
X"00",X"0C",X"00",X"30",X"00",X"0C",X"3F",X"F0",X"00",X"00",X"0F",X"F0",X"30",X"0C",X"3F",X"FC",
|
||||
X"0F",X"FC",X"3C",X"00",X"00",X"00",X"3F",X"FC",X"33",X"00",X"3F",X"FC",X"00",X"00",X"3F",X"F0",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"3C",X"00",
|
||||
X"15",X"54",X"00",X"00",X"15",X"54",X"10",X"44",X"15",X"44",X"00",X"00",X"15",X"54",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"15",X"54",X"11",X"04",X"11",X"04",X"00",X"00",X"15",X"54",X"11",X"04",
|
||||
X"00",X"00",X"00",X"00",X"2A",X"A0",X"A0",X"28",X"80",X"08",X"A0",X"28",X"2A",X"A8",X"0A",X"A0",
|
||||
X"00",X"00",X"00",X"00",X"00",X"08",X"00",X"08",X"AA",X"A8",X"2A",X"A8",X"08",X"08",X"00",X"08",
|
||||
X"00",X"00",X"00",X"00",X"28",X"08",X"AA",X"08",X"A2",X"88",X"80",X"A8",X"A0",X"A8",X"A0",X"28",
|
||||
X"00",X"00",X"00",X"00",X"00",X"A8",X"A8",X"A8",X"82",X"88",X"82",X"08",X"A0",X"28",X"A0",X"28",
|
||||
X"00",X"00",X"00",X"00",X"AA",X"A8",X"AA",X"A8",X"02",X"80",X"A2",X"80",X"2A",X"80",X"02",X"80",
|
||||
X"00",X"00",X"00",X"00",X"80",X"A8",X"82",X"A8",X"82",X"08",X"82",X"08",X"AA",X"08",X"AA",X"08",
|
||||
X"00",X"00",X"00",X"00",X"20",X"A8",X"82",X"88",X"82",X"08",X"A2",X"08",X"2A",X"A8",X"0A",X"A8",
|
||||
X"00",X"00",X"00",X"00",X"A8",X"00",X"AA",X"00",X"82",X"80",X"80",X"A0",X"80",X"28",X"A0",X"08",
|
||||
X"00",X"00",X"00",X"00",X"28",X"A8",X"AA",X"A8",X"82",X"08",X"AA",X"08",X"2A",X"A8",X"00",X"A8",
|
||||
X"00",X"00",X"00",X"00",X"2A",X"A0",X"AA",X"A8",X"82",X"08",X"82",X"80",X"AA",X"80",X"2A",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"F0",X"00",X"FC",X"00",X"FF",X"00",X"0F",X"C0",X"00",X"F0",X"00",X"03",X"00",X"0F",X"00",X"00",
|
||||
X"FF",X"FF",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"FF",X"FF",
|
||||
X"C0",X"00",X"C0",X"00",X"C0",X"00",X"C0",X"00",X"C0",X"00",X"C0",X"00",X"C0",X"00",X"FF",X"FF",
|
||||
X"FF",X"FF",X"C0",X"00",X"C0",X"00",X"C0",X"00",X"C0",X"00",X"C0",X"00",X"C0",X"00",X"FF",X"FF",
|
||||
X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"C0",X"03",X"FF",X"FF",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"FC",X"00",X"0F",X"C0",X"00",X"FC",X"00",X"0F",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"3F",X"F0",X"F0",X"3C",X"C0",X"0C",X"F0",X"3C",X"3F",X"FC",X"0F",X"F0",
|
||||
X"00",X"00",X"00",X"00",X"00",X"0C",X"00",X"0C",X"FF",X"FC",X"3F",X"FC",X"0C",X"0C",X"00",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"3C",X"0C",X"FF",X"0C",X"F3",X"CC",X"C0",X"FC",X"F0",X"FC",X"F0",X"3C",
|
||||
X"00",X"00",X"00",X"00",X"00",X"FC",X"FC",X"FC",X"C3",X"CC",X"C3",X"0C",X"F0",X"3C",X"F0",X"3C",
|
||||
X"00",X"00",X"00",X"00",X"FF",X"FC",X"FF",X"FC",X"03",X"C0",X"F3",X"C0",X"3F",X"C0",X"03",X"C0",
|
||||
X"00",X"00",X"00",X"00",X"C0",X"FC",X"C3",X"FC",X"C3",X"0C",X"C3",X"0C",X"FF",X"0C",X"FF",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"30",X"FC",X"C3",X"CC",X"C3",X"0C",X"F3",X"0C",X"3F",X"FC",X"0F",X"FC",
|
||||
X"00",X"00",X"00",X"00",X"FC",X"00",X"FF",X"00",X"C3",X"C0",X"C0",X"F0",X"C0",X"3C",X"F0",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"3C",X"FC",X"FF",X"FC",X"C3",X"0C",X"FF",X"0C",X"3F",X"FC",X"00",X"FC",
|
||||
X"00",X"00",X"00",X"00",X"3F",X"F0",X"FF",X"FC",X"C3",X"0C",X"C3",X"C0",X"FF",X"C0",X"3F",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",X"00",
|
||||
X"3F",X"FF",X"30",X"03",X"33",X"33",X"33",X"33",X"33",X"33",X"33",X"F3",X"30",X"03",X"3F",X"FF",
|
||||
X"00",X"00",X"00",X"0C",X"3F",X"FC",X"F0",X"C0",X"C0",X"C0",X"FF",X"FC",X"3F",X"FC",X"00",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"FC",X"FC",X"FF",X"FC",X"C3",X"0C",X"FF",X"FC",X"FF",X"FC",X"C0",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"30",X"3C",X"C0",X"0C",X"C0",X"0C",X"F0",X"3C",X"3F",X"FC",X"0F",X"F0",
|
||||
X"00",X"00",X"00",X"00",X"3F",X"F0",X"F0",X"3C",X"C0",X"0C",X"FF",X"FC",X"FF",X"FC",X"C0",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"F0",X"3C",X"C0",X"0C",X"CF",X"0C",X"FF",X"FC",X"FF",X"FC",X"C0",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"F0",X"00",X"C0",X"00",X"CF",X"0C",X"FF",X"FC",X"FF",X"FC",X"C0",X"0C",
|
||||
X"00",X"00",X"00",X"C0",X"30",X"FC",X"C0",X"CC",X"C0",X"0C",X"F0",X"3C",X"3F",X"FC",X"0F",X"F0",
|
||||
X"00",X"00",X"C0",X"00",X"FF",X"FC",X"0F",X"00",X"0F",X"00",X"FF",X"FC",X"FF",X"FC",X"C0",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"00",X"0C",X"C0",X"0C",X"FF",X"FC",X"FF",X"FC",X"C0",X"0C",X"00",X"0C",
|
||||
X"00",X"00",X"C0",X"00",X"FF",X"FC",X"C0",X"3C",X"C0",X"0C",X"00",X"0C",X"00",X"FC",X"00",X"F0",
|
||||
X"00",X"00",X"F0",X"0C",X"FC",X"3C",X"0C",X"F0",X"03",X"00",X"FF",X"FC",X"FF",X"FC",X"C0",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"00",X"3C",X"00",X"0C",X"C0",X"0C",X"FF",X"FC",X"FF",X"FC",X"C0",X"00",
|
||||
X"00",X"00",X"C0",X"0C",X"FF",X"FC",X"3C",X"00",X"0F",X"00",X"3C",X"00",X"FF",X"FC",X"FF",X"FC",
|
||||
X"00",X"00",X"C0",X"00",X"FF",X"FC",X"00",X"F0",X"0F",X"00",X"3C",X"00",X"FF",X"FC",X"FF",X"FC",
|
||||
X"00",X"00",X"00",X"00",X"3F",X"F0",X"F0",X"3C",X"C0",X"0C",X"F0",X"3C",X"3F",X"FC",X"0F",X"F0",
|
||||
X"00",X"00",X"00",X"00",X"3F",X"C0",X"F3",X"C0",X"C0",X"C0",X"FF",X"FC",X"FF",X"FC",X"C0",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"3F",X"CC",X"F0",X"30",X"C0",X"CC",X"F0",X"0C",X"3F",X"FC",X"0F",X"F0",
|
||||
X"00",X"00",X"00",X"0C",X"FC",X"3C",X"CF",X"F0",X"C3",X"C0",X"FF",X"FC",X"FF",X"FC",X"C0",X"0C",
|
||||
X"00",X"00",X"00",X"00",X"30",X"F0",X"C3",X"FC",X"C3",X"0C",X"FF",X"0C",X"FF",X"3C",X"3C",X"3C",
|
||||
X"00",X"00",X"00",X"00",X"F0",X"00",X"C0",X"00",X"FF",X"FC",X"FF",X"FC",X"C0",X"0C",X"F0",X"00",
|
||||
X"00",X"00",X"C0",X"00",X"FF",X"FC",X"00",X"0C",X"00",X"0C",X"FF",X"FC",X"FF",X"FC",X"C0",X"00",
|
||||
X"00",X"00",X"C0",X"00",X"FC",X"00",X"0F",X"F0",X"00",X"3C",X"0F",X"FC",X"FF",X"C0",X"F0",X"00",
|
||||
X"00",X"00",X"F0",X"00",X"3F",X"FC",X"00",X"3C",X"03",X"F0",X"00",X"3C",X"FF",X"FC",X"F0",X"00",
|
||||
X"00",X"00",X"C0",X"00",X"F0",X"0C",X"3F",X"3C",X"03",X"C0",X"0F",X"F0",X"FC",X"3C",X"F0",X"0C",
|
||||
X"00",X"00",X"C0",X"00",X"FF",X"00",X"03",X"FC",X"03",X"FC",X"FF",X"00",X"FF",X"00",X"F0",X"00",
|
||||
X"00",X"00",X"F0",X"00",X"FC",X"0C",X"CF",X"0C",X"C3",X"CC",X"C0",X"FC",X"F0",X"3C",X"00",X"0C",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"00",X"00",X"00",X"08",X"2A",X"A8",X"A0",X"80",X"80",X"80",X"AA",X"A8",X"2A",X"A8",X"00",X"08",
|
||||
X"00",X"00",X"00",X"00",X"A8",X"A8",X"AA",X"A8",X"82",X"08",X"AA",X"A8",X"AA",X"A8",X"80",X"08",
|
||||
X"00",X"00",X"00",X"00",X"20",X"28",X"80",X"08",X"80",X"08",X"A0",X"28",X"2A",X"A8",X"0A",X"A0",
|
||||
X"00",X"00",X"00",X"00",X"2A",X"A0",X"A0",X"28",X"80",X"08",X"AA",X"A8",X"AA",X"A8",X"80",X"08",
|
||||
X"00",X"00",X"00",X"00",X"A0",X"28",X"80",X"08",X"8A",X"08",X"AA",X"A8",X"AA",X"A8",X"80",X"08",
|
||||
X"00",X"00",X"00",X"00",X"A0",X"00",X"80",X"00",X"8A",X"08",X"AA",X"A8",X"AA",X"A8",X"80",X"08",
|
||||
X"00",X"00",X"00",X"80",X"20",X"A8",X"80",X"88",X"80",X"08",X"A0",X"28",X"2A",X"A8",X"0A",X"A0",
|
||||
X"00",X"00",X"80",X"00",X"AA",X"A8",X"0A",X"00",X"0A",X"00",X"AA",X"A8",X"AA",X"A8",X"80",X"08",
|
||||
X"00",X"00",X"00",X"00",X"00",X"08",X"80",X"08",X"AA",X"A8",X"AA",X"A8",X"80",X"08",X"00",X"08",
|
||||
X"00",X"00",X"80",X"00",X"AA",X"A8",X"80",X"28",X"80",X"08",X"00",X"08",X"00",X"A8",X"00",X"A0",
|
||||
X"00",X"00",X"A0",X"08",X"A8",X"28",X"08",X"A0",X"02",X"00",X"AA",X"A8",X"AA",X"A8",X"80",X"08",
|
||||
X"00",X"00",X"00",X"00",X"00",X"28",X"00",X"08",X"80",X"08",X"AA",X"A8",X"AA",X"A8",X"80",X"00",
|
||||
X"00",X"00",X"80",X"08",X"AA",X"A8",X"28",X"00",X"0A",X"00",X"28",X"00",X"AA",X"A8",X"AA",X"A8",
|
||||
X"00",X"00",X"80",X"00",X"AA",X"A8",X"00",X"A0",X"0A",X"00",X"28",X"00",X"AA",X"A8",X"AA",X"A8",
|
||||
X"00",X"00",X"00",X"00",X"2A",X"A0",X"A0",X"28",X"80",X"08",X"A0",X"28",X"2A",X"A8",X"0A",X"A0",
|
||||
X"00",X"00",X"00",X"00",X"2A",X"80",X"A2",X"80",X"80",X"80",X"AA",X"A8",X"AA",X"A8",X"80",X"08",
|
||||
X"00",X"00",X"00",X"00",X"2A",X"88",X"A0",X"20",X"80",X"88",X"A0",X"08",X"2A",X"A8",X"0A",X"A0",
|
||||
X"00",X"00",X"00",X"08",X"A8",X"28",X"8A",X"A0",X"82",X"80",X"AA",X"A8",X"AA",X"A8",X"80",X"08",
|
||||
X"00",X"00",X"00",X"00",X"20",X"A0",X"82",X"A8",X"82",X"08",X"AA",X"08",X"AA",X"28",X"28",X"28",
|
||||
X"00",X"00",X"00",X"00",X"A0",X"00",X"80",X"00",X"AA",X"A8",X"AA",X"A8",X"80",X"08",X"A0",X"00",
|
||||
X"00",X"00",X"80",X"00",X"AA",X"A8",X"00",X"08",X"00",X"08",X"AA",X"A8",X"AA",X"A8",X"80",X"00",
|
||||
X"00",X"00",X"80",X"00",X"A8",X"00",X"0A",X"A0",X"00",X"28",X"0A",X"A8",X"AA",X"80",X"A0",X"00",
|
||||
X"00",X"00",X"A0",X"00",X"2A",X"A8",X"00",X"28",X"02",X"A0",X"00",X"28",X"AA",X"A8",X"A0",X"00",
|
||||
X"00",X"00",X"80",X"00",X"A0",X"08",X"2A",X"28",X"02",X"80",X"0A",X"A0",X"A8",X"28",X"A0",X"08",
|
||||
X"00",X"00",X"80",X"00",X"AA",X"00",X"02",X"A8",X"02",X"A8",X"AA",X"00",X"AA",X"00",X"A0",X"00",
|
||||
X"00",X"00",X"A0",X"00",X"A8",X"08",X"8A",X"08",X"82",X"88",X"80",X"A8",X"A0",X"28",X"00",X"08",
|
||||
X"00",X"00",X"2A",X"2A",X"08",X"08",X"2A",X"AA",X"2A",X"AA",X"2A",X"AA",X"08",X"08",X"2A",X"2A",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",
|
||||
X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF",X"FF");
|
||||
begin
|
||||
process(clk)
|
||||
begin
|
||||
if rising_edge(clk) then
|
||||
data <= rom_data(to_integer(unsigned(addr)));
|
||||
end if;
|
||||
end process;
|
||||
end architecture;
|
||||
@ -180,7 +180,12 @@ port(
|
||||
csd_rom_addr : out std_logic_vector(14 downto 1);
|
||||
csd_rom_do : in std_logic_vector(15 downto 0);
|
||||
sp_addr : out std_logic_vector(14 downto 0);
|
||||
sp_graphx32_do : in std_logic_vector(31 downto 0);
|
||||
sp_graphx32_do : in std_logic_vector(31 downto 0);
|
||||
-- internal ROM download
|
||||
dl_addr : in std_logic_vector(18 downto 0);
|
||||
dl_data : in std_logic_vector(7 downto 0);
|
||||
dl_wr : in std_logic;
|
||||
|
||||
dbg_cpu_addr : out std_logic_vector(15 downto 0)
|
||||
);
|
||||
end spy_hunter;
|
||||
@ -335,7 +340,11 @@ architecture struct of spy_hunter is
|
||||
signal lamp_van : std_logic;
|
||||
signal lamp_smoke : std_logic;
|
||||
signal lamp_gun : std_logic;
|
||||
|
||||
|
||||
signal bg_graphics_1_we : std_logic;
|
||||
signal bg_graphics_2_we : std_logic;
|
||||
signal ch_graphics_we : std_logic;
|
||||
|
||||
type texte is array(0 to 31) of std_logic_vector(7 downto 0);
|
||||
signal lamp_text: texte := (
|
||||
x"00", x"49", x"48", x"00", -- hi/lo
|
||||
@ -1028,28 +1037,46 @@ port map(
|
||||
);
|
||||
|
||||
-- char graphics ROM 10G
|
||||
ch_graphics : entity work.spy_hunter_ch_bits
|
||||
ch_graphics : entity work.dpram
|
||||
generic map( dWidth => 8, aWidth => 12)
|
||||
port map(
|
||||
clk => clock_vidn,
|
||||
addr => ch_code_line,
|
||||
data => ch_graphx_do
|
||||
clk_a => clock_vidn,
|
||||
addr_a => ch_code_line,
|
||||
q_a => ch_graphx_do,
|
||||
clk_b => clock_vid,
|
||||
we_b => ch_graphics_we,
|
||||
addr_b => dl_addr(11 downto 0),
|
||||
d_b => dl_data
|
||||
);
|
||||
ch_graphics_we <= '1' when dl_addr(18 downto 12) = "1000000" and dl_wr = '1' else '0'; -- 40000 - 40FFF
|
||||
|
||||
-- background graphics ROM 3A/4A
|
||||
bg_graphics_1 : entity work.spy_hunter_bg_bits_1
|
||||
bg_graphics_1 : entity work.dpram
|
||||
generic map( dWidth => 8, aWidth => 14)
|
||||
port map(
|
||||
clk => clock_vidn,
|
||||
addr => bg_code_line,
|
||||
data => bg_graphx1_do
|
||||
clk_a => clock_vidn,
|
||||
addr_a => bg_code_line,
|
||||
q_a => bg_graphx1_do,
|
||||
clk_b => clock_vid,
|
||||
we_b => bg_graphics_1_we,
|
||||
addr_b => dl_addr(13 downto 0),
|
||||
d_b => dl_data
|
||||
);
|
||||
bg_graphics_1_we <= '1' when dl_addr(18 downto 14) = "01110" and dl_wr = '1' else '0'; -- 38000 - 3BFFF
|
||||
|
||||
-- background graphics ROM 5A/6A
|
||||
bg_graphics_2 : entity work.spy_hunter_bg_bits_2
|
||||
bg_graphics_2 : entity work.dpram
|
||||
generic map( dWidth => 8, aWidth => 14)
|
||||
port map(
|
||||
clk => clock_vidn,
|
||||
addr => bg_code_line,
|
||||
data => bg_graphx2_do
|
||||
clk_a => clock_vidn,
|
||||
addr_a => bg_code_line,
|
||||
q_a => bg_graphx2_do,
|
||||
clk_b => clock_vid,
|
||||
we_b => bg_graphics_2_we,
|
||||
addr_b => dl_addr(13 downto 0),
|
||||
d_b => dl_data
|
||||
);
|
||||
bg_graphics_2_we <= '1' when dl_addr(18 downto 14) = "01111" and dl_wr = '1' else '0'; -- 3C000 - 3FFFF
|
||||
|
||||
-- sprite graphics ROM A7-A8/A5-A6/A3-A4/A1-A2
|
||||
--sprite_graphics : entity work.timber_sp_bits -- full size sprite rom
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user