Download Latest Version Arcade-_NB_WIP_01.zip (20.9 kB)
Email in envelope

Get an email when there's a new version of DarFPGA

Home / Software VHDL / sky_skipper
Name Modified Size InfoDownloads / Week
Parent folder
README.txt 2020-01-28 9.2 kB
vhdl_sky_skipper_rev_01_2020_01_28.zip 2020-01-28 268.8 kB
vhdl_sky_skipper_rev_00_2020_01_18.zip 2020-01-18 266.2 kB
Totals: 3 Items   544.1 kB 0
---------------------------------------------------------------------------------
-- DE10_lite Top level for Sky skipper by Dar (darfpga@aol.fr) (26/12/2019)
-- http://darfpga.blogspot.fr
---------------------------------------------------------------------------------
--
-- release rev 01 : few change but hardware description
--  (27/01/2020)
--
-- release rev -- : rev 00 release
--  (18/01/2020)
--
-- release rev -- : beta release
--  (12/01/2020)
--
---------------------------------------------------------------------------------
-- Educational use only
-- Do not redistribute synthetized file with roms
-- Do not redistribute roms whatever the form
-- Use at your own risk
---------------------------------------------------------------------------------
-- Use sky_skipper_de10_lite.sdc to compile (Timequest constraints)
-- /!\
-- Don't forget to set device configuration mode with memory initialization 
--  (Assignments/Device/Pin options/Configuration mode)
---------------------------------------------------------------------------------
--
-- Main features :
--  PS2 keyboard input @gpio pins 35/34 (beware voltage translation/protection) 
--  Audio pwm output   @gpio pins 1/3 (beware voltage translation/protection) 
--
--  Video         : VGA 31kHz/60Hz progressive and TV 15kHz interlaced
--  Cocktail mode : NO
--  Sound         : OK
-- 
-- For hardware schematic see my other project : NES
--
-- Uses 1 pll 40MHz from 50MHz to make 20MHz and 8Mhz 
--
-- Board key :
--   0 : reset game
--
-- Keyboard players inputs :
--
--   F1 : Add coin1
--   F2 : Add coin2
--   F3 : Start 1 player
--   F4 : Start 2 players

--   F7 : Service mode
--   F8 : 15kHz interlaced / 31 kHz progressive

--   SPACE  : fire1 (speed up plane)
--   F      : fire2 (bomb)

--   RIGHT arrow : move right
--   LEFT  arrow : move left
--   UP    arrow : up stairs
--   DOWN  arrow : down stairs
--
-- Other details : see sky skipper.vhd
-- For USB inputs and SGT5000 audio output see my other project: xevious_de10_lite
---------------------------------------------------------------------------------

+----------------------------------------------------------------------------------+
; Fitter Summary                                                                   ;
+------------------------------------+---------------------------------------------+
; Fitter Status                      ; Successful - Tue Jan 21 20:02:20 2020       ;
; Quartus Prime Version              ; 18.1.0 Build 625 09/12/2018 SJ Lite Edition ;
; Revision Name                      ; sky_skipper_de10_lite                       ;
; Top-level Entity Name              ; sky_skipper_de10_lite                       ;
; Family                             ; MAX 10                                      ;
; Device                             ; 10M50DAF484C6GES                            ;
; Timing Models                      ; Preliminary                                 ;
; Total logic elements               ; 3,458 / 49,760 ( 7 % )                      ;
;     Total combinational functions  ; 3,343 / 49,760 ( 7 % )                      ;
;     Dedicated logic registers      ; 890 / 49,760 ( 2 % )                        ;
; Total registers                    ; 890                                         ;
; Total pins                         ; 121 / 360 ( 34 % )                          ;
; Total virtual pins                 ; 0                                           ;
; Total memory bits                  ; 465,408 / 1,677,312 ( 28 % )                ;
; Embedded Multiplier 9-bit elements ; 0 / 288 ( 0 % )                             ;
; Total PLLs                         ; 1 / 4 ( 25 % )                              ;
; UFM blocks                         ; 0 / 1 ( 0 % )                               ;
; ADC blocks                         ; 0 / 2 ( 0 % )                               ;
+------------------------------------+---------------------------------------------+

---------------------------------------------------------------------------------
-- Sky skipper by Dar (darfpga@aol.fr) (12/01/2020)
-- http://darfpga.blogspot.fr
---------------------------------------------------------------------------------
--
-- release rev 01 : few change but hardware description
--  (27/01/2020)
--
-- release rev 00 : rev 00 release
--  (18/01/2020)
--
-- release rev -- : beta release
--  (12/01/2020)
--
---------------------------------------------------------------------------------
-- gen_ram.vhd & io_ps2_keyboard
-------------------------------- 
-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com)
-- http://www.syntiac.com/fpga64.html
---------------------------------------------------------------------------------
-- T80/T80se - Version : 304
-----------------------------
-- Z80 compatible microprocessor core
-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org)
---------------------------------------------------------------------------------
-- YM2149 (AY-3-8910)
-- Copyright (c) MikeJ - Jan 2005
---------------------------------------------------------------------------------
-- Educational use only
-- Do not redistribute synthetized file with roms
-- Do not redistribute roms whatever the form
-- Use at your own risk
---------------------------------------------------------------------------------

--  Features :
--   Video        : VGA 31kHz/60Hz progressive and TV 15kHz interlaced
--   Coctail mode : NO
--   Sound        : OK

--  Use with MAME roms from skyskipr.zip
--
--  Use make_sky_skipper_proms.bat to build vhd file from binaries
--  (CRC list included)

--  Sky skipper Hardware caracteristics : TODO
--
---------------------------------------------------------------------------------
--  Sky skipper Hardware caracteristics:
--  
--  Sky skipper uses a hardware PCB close to Popeye PCB schematics TPP2. Indeed no 
--  schematic is available for Sky skipper. Difference between Popeye and Sky 
--  skipper comes from MAME source code.
--
--  Please read my Popeye.vhd hardware description which is almost the same as Sky
--  skipper. Below main differences are highlighted when needed.
--
--		Video  quartz	is 20.16MHz.
--
--	   Display is 512x448 pixels (video 640 pixels x 256 interlaced lines @ 10.08MHz).
--
--    Original interlaced timings :
--      640/10.08e6  = 63.49us per line  (15.750kHz).
--      63.49*256 = 16.254ms per frame (61.52Hz).
--
--    VHDL 60Hz Adapted interlaced timings (263 lines instead of 256):
--      640/10.08e6  = 63.49us per line  (15.750kHz).
--      63.49*263 = 16.70ms per frame (59.89Hz).
-- 
--    VHDL 60Hz Adapted progressive timings (526 lines instead of 512):
--      640/20.16e6  = 31.75us per line  (31.50kHz).
--      31.75*526 = 16.70ms per frame (59.89Hz).
--   
--    Char tile map and color are the same as Popeye.
--
--    Sprites are the same as Popeye except for color palette:
--      Only 1 global color bit is used and drives 2 address bits of color 
--      palette. last bit of color palette is stucked to '0'.
--
--    Program rom is 4x8Kx8bits addressed as 32Kx8bits (only 28K used):
--      addresses are bits swapped and xored w.r.t cpu addresses.
--      data      are bits swapped w.r.t cpu data.
--      Swap order and xor differs from Popeye ones.
--      
--    Working ram is split in two non consecutives parts:
--      2Kx8bits (low part) + 1Kx8bits (high part)
--      High part is addressed by cpu and by sprite data dma.
--
--    The most important difference is in the background management. Popeye
--    doesn't use H scroll and only little V scroll. In the opposite Sky skipper
--    make a large use of H/V scrolling.
--
--    It's not know if Sky skipper uses or not low/high nibble mecanism. Anyway
--    the total amount of bitmap ram is the same as Popeye one and is accessed
--    by CPU as 2 bank of 4Kx4bits. The bank selection is made by using bit 7 
--    of the data to be written. Data bits 0 to 3 only are written to ram and
--    are used as the individual bitmap bloc color.
--
--    Sky skipper background bitmap is 128(H)x64(V) blocs of 4x4 dots (bg dot is 
--    2 pixels x 2 lines).
--
--                                | #Y bloc position | #X bloc position  |
--                                |      63 to 0     |     127 to 0      |
--      bg ram address by cpu:    |      A(11-6)     |    D(7)-A(5-0)    |
--      bg ram address by video:  | V: 64*4*2 lines  | H: 128*4*2 pixels |
--
--
--      One bloc has a single color and is 8 pixels x 8 lines.
--      Total playground is 1024 pixels x 512 lines.
--
--    Sky skipper required one additionnal bit to allow H scroll to go from 0 to
--    511 (0-1022 pixels since H scroll has a 2 pixels resolution). In original
--    hardware this bit comes from sprite data buffer. In VHDL code it is latched
--    directly from cpu write to working ram (@8C02) 
--
---------------------------------------------------------------------------------
Source: README.txt, updated 2020-01-28