-
Notifications
You must be signed in to change notification settings - Fork 4
/
README.txt
219 lines (190 loc) · 8.38 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
---------------------------------------------------------------------------------
-- Pooyan by Dar (darfpga@aol.fr) (29/10/2017)
-- http://darfpga.blogspot.fr
--
-- release rev 02 - (26/04/2020)
-- replace T80 version 247 by version 350: solve arrows collision error
-- fix line count and vblank
--
---------------------------------------------------------------------------------
-- gen_ram.vhd & io_ps2_keyboard
--------------------------------
-- Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com)
-- http://www.syntiac.com/fpga64.html
---------------------------------------------------------------------------------
-- T80/T80se - Version : 350
-----------------------------
-- Z80 compatible microprocessor core
-- Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org)
-- Version 350 Copyright (c) 2018 Sorgelig
---------------------------------------------------------------------------------
-- 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 :
-- TV 15KHz mode only (atm)
-- Coctail mode ok
-- Sound ok
-- No external RAM/SDRAM required
-- Use with MAME roms from pooyan.zip
--
-- Use make_pooyan_proms.bat to build vhd file from binaries
--
-- Pooyan Hardware caracteristics :
--
-- VIDEO : 1xZ80@3MHz CPU accessing its program rom, working ram,
-- sprite data ram, I/O, sound board register and trigger.
-- 32Kx8bits program rom
--
-- One char tile map 32x28
-- 8Kx16bits graphics rom 4bits/pixel
-- 16colors/16sets among 16 colors
--
-- 24 sprites with priorities and flip H/V
-- 16Kx16bits graphics rom 4bits/pixel
-- 15 colors/16sets among 16 colors (different of char colors).
--
-- Char/sprites color palette 2x16 colors among 256 colors
-- 3red 3green 2blue
--
-- Working ram : 4Kx8bits
-- Sprites data ram : 256x16bits
-- Sprites line buffer rams : 1 scan line delay flip/flop 2x256x4bits
-- SOUND : 1xZ80@1.79MHz CPU accessing its program rom, working ram, 2x-AY3-8910
-- 16Kx8bits program rom
--
-- 1xAY-3-8910
-- I/O noise input and command/trigger from video board.
-- 3 sound channels
--
-- 1xAY-3-8910
-- 3 sound channels
--
-- 6 RC filters with 4 states : transparent or cut 600Hz, 700Hz, 3.4KHz
--
---------------------------------------------------------------------------------
--
-- Uses 1 pll for 12MHz and 14MHz generation from 50MHz
--
-- Board key :
-- 0 : reset game
--
-- Keyboard players inputs :
--
-- F3 : Add coin
-- F2 : Start 2 players
-- F1 : Start 1 player
-- SPACE : Fire
-- RIGHT arrow : right
-- LEFT arrow : left
-- UP arrow : up
-- DOWN arrow : down
--
-- Other details : see pooyan.vhd
---------------------------------------------------------------------------------
-- Use pooyan_lite.sdc to compile (Timequest constraints)
-- /!\
-- Don't forget to set device configuration mode with memory initialization
-- (Assignments/Device/Pin options/Configuration mode)
---------------------------------------------------------------------------------
+----------------------------------------------------------------------------------+
; Fitter Summary ;
+------------------------------------+---------------------------------------------+
; Fitter Status ; Successful - Thu Nov 09 18:42:43 2017 ;
; Quartus Prime Version ; 16.1.0 Build 196 10/24/2016 SJ Lite Edition ;
; Revision Name ; pooyan_de10_lite ;
; Top-level Entity Name ; pooyan_de10_lite ;
; Family ; MAX 10 ;
; Device ; 10M50DAF484C6GES ;
; Timing Models ; Preliminary ;
; Total logic elements ; 6,223 / 49,760 ( 13 % ) ;
; Total combinational functions ; 5,992 / 49,760 ( 12 % ) ;
; Dedicated logic registers ; 1,578 / 49,760 ( 3 % ) ;
; Total registers ; 1578 ;
; Total pins ; 105 / 360 ( 29 % ) ;
; Total virtual pins ; 0 ;
; Total memory bits ; 507,904 / 1,677,312 ( 30 % ) ;
; Embedded Multiplier 9-bit elements ; 2 / 288 ( < 1 % ) ;
; Total PLLs ; 1 / 4 ( 25 % ) ;
; UFM blocks ; 0 / 1 ( 0 % ) ;
; ADC blocks ; 0 / 2 ( 0 % ) ;
+------------------------------------+---------------------------------------------+
---------------
VHDL File list
---------------
de_10/max10_pll_12M_14M.vhd Pll 12MHz and 14 MHz from 50MHz altera mf
rtl_dar/pooyan_de10_lite.vhd Top level for de10_lite board
rtl_dar/pooyan.vhd Main video board logic
rtl_dar/pooyan_sound_board.vhd Main sound board logic
rtl_mikej/YM2149_linmix_sep.vhd Copyright (c) MikeJ - Jan 2005
rtl_T80/T80se.vhdT80 Copyright (c) 2001-2002 Daniel Wallner (jesus@opencores.org)
rtl_T80/T80_Reg.vhd
rtl_T80/T80_Pack.vhd
rtl_T80/T80_MCode.vhd
rtl_T80/T80_ALU.vhd
rtl_T80/T80.vhd
rtl_dar/kbd_joystick.vhd Keyboard key to player/coin input
rtl_dar/io_ps2_keyboard.vhd Copyright 2005-2008 by Peter Wendrich (pwsoft@syntiac.com)
rtl_dar/gen_ram.vhd Generic RAM (Peter Wendrich + DAR Modification)
rtl_dar/decodeur_7_seg.vhd 7 segments display decoder
rtl_dar/proms/pooyan_prog.vhd PROMS
rtl_dar/proms/pooyan_sound_prog.vhd
rtl_dar/proms/pooyan_sprite_grphx2.vhd
rtl_dar/proms/pooyan_sprite_grphx1.vhd
rtl_dar/proms/pooyan_char_grphx2.vhd
rtl_dar/proms/pooyan_char_grphx1.vhd
rtl_dar/proms/pooyan_sprite_grphx.vhd
rtl_dar/proms/pooyan_sprite_color_lut.vhd
rtl_dar/proms/pooyan_palette.vhd
rtl_dar/proms/pooyan_char_color_lut.vhd
----------------------
Quartus project files
----------------------
de10_lite/pooyan_de10_lite.sdc Timequest constraints file
de10_lite/pooyan_de10_lite.qsf de10_lite settings (files,pins...)
de10_lite/pooyan_de10_lite.qpf de10_lite project
-----------------------------
Required ROMs (Not included)
-----------------------------
You need the following 13 ROMs binary files from pooyan.zip (MAME)
1.4a, 2.5a, 3.6a, 4.7a
xx.7a, xx.8a
6.9a, 5.8a, 8.10g, 7.9g
pooyan.pr1, pooyan.pr3, pooyan.pr2
------
Tools
------
You need to build vhdl files from the binary file :
- Unzip the roms file in the tools/pooyan_unzip directory
- Double click (execute) the script tools/make_pooyan_proms.bat to get the following files
pooyan_prog.vhd 1.4a + 2.5a + 3.6a + 4.7a
pooyan_sound_prog.vhd xx.7a + xx.8a
pooyan_sprite_grphx1.vhd 6.9a
pooyan_sprite_grphx2.vhd 5.8a
pooyan_char_grphx1.vhd 8.10g
pooyan_char_grphx2.vhd 7.9g
pooyan_palette.vhd pooyan.pr1
pooyan_char_color_lut.vhd pooyan.pr3
pooyan_sprite_color_lut.vhd pooyan.pr2
*DO NOT REDISTRIBUTE THESE FILES*
VHDL files are needed to compile and include roms into the project
The script make_pooyan_proms.bat uses make_vhdl_prom executables delivered both in linux and windows version. The script itself is delivered only in windows version (.bat) but should be easily ported to linux.
Source code of make_vhdl_prom.c is also delivered.
---------------------------------
Compiling for de10_lite
---------------------------------
You can build the project with ROM image embeded in the sof file.
*DO NOT REDISTRIBUTE THESE FILES*
3 steps
- put the VHDL ROM files (.vhd) into the rtl_dar directory
- build pooyan_de10_lite
- program pooyan_de10_lite.sof
------------------------
------------------------
End of file
------------------------