diff --git a/cores/MasterSystem/src/sms_rgb_zxuno_Ap.ucf b/cores/MasterSystem/src/sms_rgb_zxuno_Ap.ucf
index d39ec1b..6e2051e 100644
--- a/cores/MasterSystem/src/sms_rgb_zxuno_Ap.ucf
+++ b/cores/MasterSystem/src/sms_rgb_zxuno_Ap.ucf
@@ -18,9 +18,9 @@ NET NTSC LOC="P51" | IOSTANDARD = LVCMOS33;
NET PAL LOC="P50" | IOSTANDARD = LVCMOS33;
# Sound input/output
-NET "audio_l" LOC="P98" | IOSTANDARD = LVCMOS33;
-NET "audio_r" LOC="P99" | IOSTANDARD = LVCMOS33;
-#NET "ear" LOC="P1" | IOSTANDARD = LVCMOS33;
+NET "audio_l" LOC="P98" | IOSTANDARD = LVCMOS33;
+NET "audio_r" LOC="P99" | IOSTANDARD = LVCMOS33;
+#NET "ear" LOC="P1" | IOSTANDARD = LVCMOS33;
# Keyboard and mouse
#NET "clkps2" LOC="P143" | IOSTANDARD = LVCMOS33 | PULLUP;
diff --git a/cores/MasterSystem/src/sms_rgb_zxuno_v2.ucf b/cores/MasterSystem/src/sms_rgb_zxuno_v2.ucf
index 06c336c..aa74be8 100644
--- a/cores/MasterSystem/src/sms_rgb_zxuno_v2.ucf
+++ b/cores/MasterSystem/src/sms_rgb_zxuno_v2.ucf
@@ -3,23 +3,23 @@ NET CLK LOC="P55" | IOSTANDARD = LVCMOS33 | PERIOD=20.0ns;
NET "led" LOC="P10" | IOSTANDARD = LVCMOS33;
# Video output
-NET "red(2)" LOC="P93" | IOSTANDARD = LVCMOS33;
-NET "red(1)" LOC="P92" | IOSTANDARD = LVCMOS33;
-NET "red(0)" LOC="P88" | IOSTANDARD = LVCMOS33;
-NET "green(2)" LOC="P84" | IOSTANDARD = LVCMOS33;
-NET "green(1)" LOC="P83" | IOSTANDARD = LVCMOS33;
-NET "green(0)" LOC="P82" | IOSTANDARD = LVCMOS33;
-NET "blue(2)" LOC="P81" | IOSTANDARD = LVCMOS33;
-NET "blue(1)" LOC="P80" | IOSTANDARD = LVCMOS33;
-NET "blue(0)" LOC="P79" | IOSTANDARD = LVCMOS33;
-NET "hsync" LOC="P87" | IOSTANDARD = LVCMOS33;
-NET "vsync" LOC="P85" | IOSTANDARD = LVCMOS33;
+NET "red(2)" LOC="P93" | IOSTANDARD = LVCMOS33;
+NET "red(1)" LOC="P92" | IOSTANDARD = LVCMOS33;
+NET "red(0)" LOC="P88" | IOSTANDARD = LVCMOS33;
+NET "green(2)" LOC="P84" | IOSTANDARD = LVCMOS33;
+NET "green(1)" LOC="P83" | IOSTANDARD = LVCMOS33;
+NET "green(0)" LOC="P82" | IOSTANDARD = LVCMOS33;
+NET "blue(2)" LOC="P81" | IOSTANDARD = LVCMOS33;
+NET "blue(1)" LOC="P80" | IOSTANDARD = LVCMOS33;
+NET "blue(0)" LOC="P79" | IOSTANDARD = LVCMOS33;
+NET "hsync" LOC="P87" | IOSTANDARD = LVCMOS33;
+NET "vsync" LOC="P85" | IOSTANDARD = LVCMOS33;
NET NTSC LOC="P67" | IOSTANDARD = LVCMOS33;
NET PAL LOC="P66" | IOSTANDARD = LVCMOS33;
# Sound input/output
-NET "audio_l" LOC="P8" | IOSTANDARD=LVCMOS33;
-NET "audio_r" LOC="P9" | IOSTANDARD=LVCMOS33;
+NET "audio_l" LOC="P8" | IOSTANDARD = LVCMOS33;
+NET "audio_r" LOC="P9" | IOSTANDARD = LVCMOS33;
#NET "ear" LOC="P105" | IOSTANDARD = LVCMOS33;
# Keyboard and mouse
@@ -83,7 +83,7 @@ NET "j1_left" LOC="P2" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "j1_right" LOC="P5" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "j1_tr" LOC="P143" | IOSTANDARD = LVCMOS33 | PULLUP;
NET "j1_tl" LOC="P6" | IOSTANDARD = LVCMOS33 | PULLUP;
-#NET "joyfire3" LOC="P7" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "joyfire3" LOC="P7" | IOSTANDARD = LVCMOS33 | PULLUP;
diff --git a/cores/MasterSystem/src/sms_rgb_zxuno_v3.ucf b/cores/MasterSystem/src/sms_rgb_zxuno_v3.ucf
index c529d61..41efd6c 100644
--- a/cores/MasterSystem/src/sms_rgb_zxuno_v3.ucf
+++ b/cores/MasterSystem/src/sms_rgb_zxuno_v3.ucf
@@ -18,8 +18,8 @@ NET NTSC LOC="P67" | IOSTANDARD = LVCMOS33;
NET PAL LOC="P66" | IOSTANDARD = LVCMOS33;
# Sound input/output
-NET "audio_l" LOC="P8" | IOSTANDARD = LVCMOS33;
-NET "audio_r" LOC="P9" | IOSTANDARD = LVCMOS33;
+NET "audio_l" LOC="P8" | IOSTANDARD = LVCMOS33;
+NET "audio_r" LOC="P9" | IOSTANDARD = LVCMOS33;
#NET "ear" LOC="P105" | IOSTANDARD = LVCMOS33;
# Keyboard and mouse
@@ -71,10 +71,10 @@ NET ram_WE_n LOC="P118" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
#NET "flash_ext2" LOC="P61" | IOSTANDARD = LVCMOS33;
# SD/MMC
-NET "spi_cs_n" LOC="P59" | IOSTANDARD=LVCMOS33 | DRIVE=8 | SLEW=FAST;
-NET "spi_sclk" LOC="P75" | IOSTANDARD=LVCMOS33 | DRIVE=8 | SLEW=FAST;
-NET "spi_di" LOC="P74" | IOSTANDARD=LVCMOS33 | DRIVE=8 | SLEW=FAST;
-NET "spi_do" LOC="P78" | IOSTANDARD=LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "spi_cs_n" LOC="P59" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "spi_sclk" LOC="P75" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "spi_di" LOC="P74" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "spi_do" LOC="P78" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
# JOYSTICK
NET "j1_up" LOC="P1" | IOSTANDARD = LVCMOS33 | PULLUP;
@@ -89,3 +89,6 @@ NET "j1_tr" LOC="P39" | IOSTANDARD = LVCMOS33 | PULLUP;
+
+
+
diff --git a/cores/MasterSystem/src/sms_rgb_zxuno_v4.ucf b/cores/MasterSystem/src/sms_rgb_zxuno_v4.ucf
index 84b51be..39fd8b8 100644
--- a/cores/MasterSystem/src/sms_rgb_zxuno_v4.ucf
+++ b/cores/MasterSystem/src/sms_rgb_zxuno_v4.ucf
@@ -18,8 +18,8 @@ NET NTSC LOC="P66" | IOSTANDARD = LVCMOS33;
NET PAL LOC="P67" | IOSTANDARD = LVCMOS33;
# Sound input/output
-NET "audio_l" LOC="P10" | IOSTANDARD = LVCMOS33;
-NET "audio_r" LOC="P9" | IOSTANDARD = LVCMOS33;
+NET "audio_l" LOC="P10" | IOSTANDARD = LVCMOS33;
+NET "audio_r" LOC="P9" | IOSTANDARD = LVCMOS33;
#NET "ear" LOC="P94" | IOSTANDARD = LVCMOS33;
# Keyboard and mouse
@@ -71,10 +71,10 @@ NET ram_WE_n LOC="P121" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
#NET "flash_ext2" LOC="P61" | IOSTANDARD = LVCMOS33;
# SD/MMC
-NET "spi_cs_n" LOC="P59" | IOSTANDARD=LVCMOS33 | DRIVE=8 | SLEW=FAST;
-NET "spi_sclk" LOC="P75" | IOSTANDARD=LVCMOS33 | DRIVE=8 | SLEW=FAST;
-NET "spi_di" LOC="P74" | IOSTANDARD=LVCMOS33 | DRIVE=8 | SLEW=FAST;
-NET "spi_do" LOC="P78" | IOSTANDARD=LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "spi_cs_n" LOC="P59" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "spi_sclk" LOC="P75" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "spi_di" LOC="P74" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "spi_do" LOC="P78" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
# JOYSTICK
NET "j1_up" LOC="P1" | IOSTANDARD = LVCMOS33 | PULLUP;
diff --git a/cores/NES/src/ZXUNO_NES_v2.ucf b/cores/NES/src/ZXUNO_NES_v2.ucf
deleted file mode 100644
index 08114a2..0000000
--- a/cores/NES/src/ZXUNO_NES_v2.ucf
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-NET "vga_b[0]" LOC = P79;
-NET "vga_b[0]" IOSTANDARD = LVCMOS33;
-NET "vga_b[1]" LOC = P80;
-NET "vga_b[1]" IOSTANDARD = LVCMOS33;
-NET "vga_b[2]" LOC = P81;
-NET "vga_b[2]" IOSTANDARD = LVCMOS33;
-NET "vga_g[0]" LOC = P82;
-NET "vga_g[0]" IOSTANDARD = LVCMOS33;
-NET "vga_g[1]" LOC = P83;
-NET "vga_g[1]" IOSTANDARD = LVCMOS33;
-NET "vga_g[2]" LOC = P84;
-NET "vga_g[2]" IOSTANDARD = LVCMOS33;
-NET "vga_r[0]" LOC = P88;
-NET "vga_r[0]" IOSTANDARD = LVCMOS33;
-NET "vga_r[1]" LOC = P92;
-NET "vga_r[1]" IOSTANDARD = LVCMOS33;
-NET "vga_r[2]" LOC = P93;
-NET "vga_r[2]" IOSTANDARD = LVCMOS33;
-NET "CLOCK_50" LOC = P55;
-NET "CLOCK_50" IOSTANDARD = LVCMOS33;
-
-NET "vga_v" LOC = P85;
-NET "vga_v" IOSTANDARD = LVCMOS33;
-NET "vga_h" LOC = P87;
-NET "vga_h" IOSTANDARD = LVCMOS33;
-NET "led" LOC = P10;
-NET "led" IOSTANDARD = LVCMOS33;
-NET "AUDIO_L" LOC = P8;
-NET "AUDIO_L" IOSTANDARD = LVCMOS33;
-NET "AUDIO_R" LOC = P9;
-NET "AUDIO_R" IOSTANDARD = LVCMOS33;
-
-#NET "UART_RXD" LOC = P12 | IOSTANDARD=LVCMOS33; #ext36 mas exterior
-#NET "UART_TXD" LOC = P15 | IOSTANDARD=LVCMOS33; #ext35
-
-NET ram_a(0) LOC="P115" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR0
-NET ram_a(1) LOC="P116" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR1
-NET ram_a(2) LOC="P117" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR2
-NET ram_a(3) LOC="P119" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR3
-NET ram_a(4) LOC="P120" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR4
-NET ram_a(5) LOC="P123" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR5
-NET ram_a(6) LOC="P126" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR6
-NET ram_a(7) LOC="P131" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR7
-NET ram_a(8) LOC="P127" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR8
-NET ram_a(9) LOC="P124" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR9
-NET ram_a(10) LOC="P118" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR10
-NET ram_a(11) LOC="P121" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR11
-NET ram_a(12) LOC="P133" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR12
-NET ram_a(13) LOC="P132" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR13
-NET ram_a(14) LOC="P137" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR14
-NET ram_a(15) LOC="P140" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR15
-NET ram_a(16) LOC="P139" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR16
-NET ram_a(17) LOC="P141" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR17
-NET ram_a(18) LOC="P138" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR18
-
-NET ram_d(0) LOC="P114" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA0
-NET ram_d(1) LOC="P112" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA1
-NET ram_d(2) LOC="P111" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA2
-NET ram_d(3) LOC="P99" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA3
-NET ram_d(4) LOC="P100" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA4
-NET ram_d(5) LOC="P101" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA5
-NET ram_d(6) LOC="P102" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA6
-NET ram_d(7) LOC="P104" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA7
-
-NET ram_WE_n LOC="P134" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # nWE
-
-NET "P_A" LOC = P143;
-NET "P_A" IOSTANDARD = LVCMOS33;
-NET "P_A" PULLUP;
-NET "P_D" LOC = P1;
-NET "P_D" IOSTANDARD = LVCMOS33;
-NET "P_D" PULLUP;
-NET "P_L" LOC = P2;
-NET "P_L" IOSTANDARD = LVCMOS33;
-NET "P_L" PULLUP;
-NET "P_R" LOC = P5;
-NET "P_R" IOSTANDARD = LVCMOS33;
-NET "P_R" PULLUP;
-NET "P_U" LOC = P142;
-NET "P_U" IOSTANDARD = LVCMOS33;
-NET "P_U" PULLUP;
-NET "P_tr" LOC = P6;
-NET "P_tr" IOSTANDARD = LVCMOS33;
-NET "P_tr" PULLUP;
-
-
-NET "PS2_CLK" LOC = P98;
-NET "PS2_CLK" IOSTANDARD = LVCMOS33;
-NET "PS2_CLK" PULLUP;
-NET "PS2_DAT" LOC = P97;
-NET "PS2_DAT" IOSTANDARD = LVCMOS33;
-NET "PS2_DAT" PULLUP;
-
-
-NET "SPI_MOSI" LOC = P74;
-NET "SPI_MOSI" IOSTANDARD = LVCMOS33;
-NET "SPI_MOSI" DRIVE = 8;
-NET "SPI_MOSI" SLEW = FAST;
-NET "SPI_MISO" LOC = P78;
-NET "SPI_MISO" IOSTANDARD = LVCMOS33;
-NET "SPI_MISO" DRIVE = 8;
-NET "SPI_MISO" SLEW = FAST;
-NET "SPI_CLK" LOC = P75;
-NET "SPI_CLK" IOSTANDARD = LVCMOS33;
-NET "SPI_CLK" DRIVE = 8;
-NET "SPI_CLK" SLEW = FAST;
-NET "SPI_CS" LOC = P59;
-NET "SPI_CS" IOSTANDARD = LVCMOS33;
-NET "SPI_CS" DRIVE = 8;
-NET "SPI_CS" SLEW = FAST;
-
-
-#NET "PAL" LOC = P66;
-#NET "PAL" IOSTANDARD = LVCMOS33;
-#NET "NTSC" LOC = P67;
-#NET "NTSC" IOSTANDARD = LVCMOS33;
-
-
-#DEBUG
-#NET "sseg_an[0]" LOC = P11 | IOSTANDARD=LVCMOS33;
-#NET "sseg_an[1]" LOC = P16 | IOSTANDARD=LVCMOS33;
-#NET "sseg_an[2]" LOC = P58 | IOSTANDARD=LVCMOS33;
-#NET "sseg_an[3]" LOC = P51 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[3]" LOC = P44 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[0]" LOC = P40 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[1]" LOC = P21 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[2]" LOC = P33 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[4]" LOC = P47 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[5]" LOC = P24 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[6]" LOC = P29 | IOSTANDARD=LVCMOS33;
-#NET "reset" LOC = P56 | IOSTANDARD=LVCMOS33;
-#NET "set" LOC = P48 | IOSTANDARD=LVCMOS33;
diff --git a/cores/NES/src/ZXUNO_NES_v3.ucf b/cores/NES/src/ZXUNO_NES_v3.ucf
deleted file mode 100644
index 4597fc3..0000000
--- a/cores/NES/src/ZXUNO_NES_v3.ucf
+++ /dev/null
@@ -1,134 +0,0 @@
-
-
-NET "vga_b[0]" LOC = P79;
-NET "vga_b[0]" IOSTANDARD = LVCMOS33;
-NET "vga_b[1]" LOC = P80;
-NET "vga_b[1]" IOSTANDARD = LVCMOS33;
-NET "vga_b[2]" LOC = P81;
-NET "vga_b[2]" IOSTANDARD = LVCMOS33;
-NET "vga_g[0]" LOC = P82;
-NET "vga_g[0]" IOSTANDARD = LVCMOS33;
-NET "vga_g[1]" LOC = P83;
-NET "vga_g[1]" IOSTANDARD = LVCMOS33;
-NET "vga_g[2]" LOC = P84;
-NET "vga_g[2]" IOSTANDARD = LVCMOS33;
-NET "vga_r[0]" LOC = P88;
-NET "vga_r[0]" IOSTANDARD = LVCMOS33;
-NET "vga_r[1]" LOC = P92;
-NET "vga_r[1]" IOSTANDARD = LVCMOS33;
-NET "vga_r[2]" LOC = P93;
-NET "vga_r[2]" IOSTANDARD = LVCMOS33;
-NET "CLOCK_50" LOC = P55;
-NET "CLOCK_50" IOSTANDARD = LVCMOS33;
-
-NET "vga_v" LOC = P85;
-NET "vga_v" IOSTANDARD = LVCMOS33;
-NET "vga_h" LOC = P87;
-NET "vga_h" IOSTANDARD = LVCMOS33;
-NET "led" LOC = P10;
-NET "led" IOSTANDARD = LVCMOS33;
-NET "AUDIO_L" LOC = P8;
-NET "AUDIO_L" IOSTANDARD = LVCMOS33;
-NET "AUDIO_R" LOC = P9;
-NET "AUDIO_R" IOSTANDARD = LVCMOS33;
-
-# NET "UART_RXD" LOC = P12 | IOSTANDARD=LVCMOS33; #ext36 mas exterior
-# NET "UART_TXD" LOC = P15 | IOSTANDARD=LVCMOS33; #ext35
-
-NET ram_a(0) LOC="P143" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR0
-NET ram_a(1) LOC="P142" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR1
-NET ram_a(2) LOC="P141" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR2
-NET ram_a(3) LOC="P140" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR3
-NET ram_a(4) LOC="P139" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR4
-NET ram_a(5) LOC="P104" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR5
-NET ram_a(6) LOC="P102" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR6
-NET ram_a(7) LOC="P101" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR7
-NET ram_a(8) LOC="P100" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR8
-NET ram_a(9) LOC="P99" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR9
-NET ram_a(10) LOC="P112" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR10
-NET ram_a(11) LOC="P114" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR11
-NET ram_a(12) LOC="P115" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR12
-NET ram_a(13) LOC="P116" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR13
-NET ram_a(14) LOC="P117" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR14
-NET ram_a(15) LOC="P131" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR15
-NET ram_a(16) LOC="P133" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR16
-NET ram_a(17) LOC="P134" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR17
-NET ram_a(18) LOC="P137" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # ADDR18
-
-NET ram_d(0) LOC="P132" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA0
-NET ram_d(1) LOC="P126" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA1
-NET ram_d(2) LOC="P123" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA2
-NET ram_d(3) LOC="P120" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA3
-NET ram_d(4) LOC="P119" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA4
-NET ram_d(5) LOC="P121" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA5
-NET ram_d(6) LOC="P124" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA6
-NET ram_d(7) LOC="P127" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # DATA7
-
-NET ram_WE_n LOC="P118" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # nWE
-
-NET "P_A" LOC = P39;
-NET "P_A" IOSTANDARD = LVCMOS33;
-NET "P_A" PULLUP;
-NET "P_D" LOC = P5;
-NET "P_D" IOSTANDARD = LVCMOS33;
-NET "P_D" PULLUP;
-NET "P_L" LOC = P6;
-NET "P_L" IOSTANDARD = LVCMOS33;
-NET "P_L" PULLUP;
-NET "P_R" LOC = P7;
-NET "P_R" IOSTANDARD = LVCMOS33;
-NET "P_R" PULLUP;
-NET "P_U" LOC = P1;
-NET "P_U" IOSTANDARD = LVCMOS33;
-NET "P_U" PULLUP;
-NET "P_tr" LOC = P2;
-NET "P_tr" IOSTANDARD = LVCMOS33;
-NET "P_tr" PULLUP;
-
-
-NET "PS2_CLK" LOC = P98;
-NET "PS2_CLK" IOSTANDARD = LVCMOS33;
-NET "PS2_CLK" PULLUP;
-NET "PS2_DAT" LOC = P97;
-NET "PS2_DAT" IOSTANDARD = LVCMOS33;
-NET "PS2_DAT" PULLUP;
-
-
-NET "SPI_MOSI" LOC = P74;
-NET "SPI_MOSI" IOSTANDARD = LVCMOS33;
-NET "SPI_MOSI" DRIVE = 8;
-NET "SPI_MOSI" SLEW = FAST;
-NET "SPI_MISO" LOC = P78;
-NET "SPI_MISO" IOSTANDARD = LVCMOS33;
-NET "SPI_MISO" DRIVE = 8;
-NET "SPI_MISO" SLEW = FAST;
-NET "SPI_CLK" LOC = P75;
-NET "SPI_CLK" IOSTANDARD = LVCMOS33;
-NET "SPI_CLK" DRIVE = 8;
-NET "SPI_CLK" SLEW = FAST;
-NET "SPI_CS" LOC = P59;
-NET "SPI_CS" IOSTANDARD = LVCMOS33;
-NET "SPI_CS" DRIVE = 8;
-NET "SPI_CS" SLEW = FAST;
-
-
-#NET "PAL" LOC = P66;
-#NET "PAL" IOSTANDARD = LVCMOS33;
-#NET "NTSC" LOC = P67;
-#NET "NTSC" IOSTANDARD = LVCMOS33;
-
-
-#DEBUG
-#NET "sseg_an[0]" LOC = P11 | IOSTANDARD=LVCMOS33;
-#NET "sseg_an[1]" LOC = P16 | IOSTANDARD=LVCMOS33;
-#NET "sseg_an[2]" LOC = P58 | IOSTANDARD=LVCMOS33;
-#NET "sseg_an[3]" LOC = P51 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[3]" LOC = P44 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[0]" LOC = P40 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[1]" LOC = P21 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[2]" LOC = P33 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[4]" LOC = P47 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[5]" LOC = P24 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[6]" LOC = P29 | IOSTANDARD=LVCMOS33;
-#NET "reset" LOC = P56 | IOSTANDARD=LVCMOS33;
-#NET "set" LOC = P48 | IOSTANDARD=LVCMOS33;
\ No newline at end of file
diff --git a/cores/NES/src/ZXUNO_NES_v4.ucf b/cores/NES/src/ZXUNO_NES_v4.ucf
deleted file mode 100644
index d069707..0000000
--- a/cores/NES/src/ZXUNO_NES_v4.ucf
+++ /dev/null
@@ -1,134 +0,0 @@
-#PIN "clock_21mhz/clkout3_buf.O" CLOCK_DEDICATED_ROUTE = FALSE;
-
-NET "vga_r[0]" LOC = P79;
-NET "vga_r[0]" IOSTANDARD = LVCMOS33;
-NET "vga_r[1]" LOC = P80;
-NET "vga_r[1]" IOSTANDARD = LVCMOS33;
-NET "vga_r[2]" LOC = P81;
-NET "vga_r[2]" IOSTANDARD = LVCMOS33;
-NET "vga_g[0]" LOC = P82;
-NET "vga_g[0]" IOSTANDARD = LVCMOS33;
-NET "vga_g[1]" LOC = P83;
-NET "vga_g[1]" IOSTANDARD = LVCMOS33;
-NET "vga_g[2]" LOC = P84;
-NET "vga_g[2]" IOSTANDARD = LVCMOS33;
-NET "vga_b[0]" LOC = P88;
-NET "vga_b[0]" IOSTANDARD = LVCMOS33;
-NET "vga_b[1]" LOC = P92;
-NET "vga_b[1]" IOSTANDARD = LVCMOS33;
-NET "vga_b[2]" LOC = P93;
-NET "vga_b[2]" IOSTANDARD = LVCMOS33;
-NET "CLOCK_50" LOC = P55;
-NET "CLOCK_50" IOSTANDARD = LVCMOS33;
-
-NET "vga_v" LOC = P85;
-NET "vga_v" IOSTANDARD = LVCMOS33;
-NET "vga_h" LOC = P87;
-NET "vga_h" IOSTANDARD = LVCMOS33;
-NET "led" LOC = P11;
-NET "led" IOSTANDARD = LVCMOS33;
-NET "AUDIO_L" LOC = P10;
-NET "AUDIO_L" IOSTANDARD = LVCMOS33;
-NET "AUDIO_R" LOC = P9;
-NET "AUDIO_R" IOSTANDARD = LVCMOS33;
-
-# NET "UART_RXD" LOC = P12 | IOSTANDARD=LVCMOS33; #ext36 mas exterior
-# NET "UART_TXD" LOC = P15 | IOSTANDARD=LVCMOS33; #ext35
-NET "ram_a<0>" LOC="P141" | IOSTANDARD = LVCMOS33;
-NET "ram_a<1>" LOC="P139" | IOSTANDARD = LVCMOS33;
-NET "ram_a<2>" LOC="P137" | IOSTANDARD = LVCMOS33;
-NET "ram_a<3>" LOC="P134" | IOSTANDARD = LVCMOS33;
-NET "ram_a<4>" LOC="P133" | IOSTANDARD = LVCMOS33;
-NET "ram_a<5>" LOC="P120" | IOSTANDARD = LVCMOS33;
-NET "ram_a<6>" LOC="P118" | IOSTANDARD = LVCMOS33;
-NET "ram_a<7>" LOC="P116" | IOSTANDARD = LVCMOS33;
-NET "ram_a<8>" LOC="P114" | IOSTANDARD = LVCMOS33;
-NET "ram_a<9>" LOC="P112" | IOSTANDARD = LVCMOS33;
-NET "ram_a<10>" LOC="P104" | IOSTANDARD = LVCMOS33;
-NET "ram_a<11>" LOC="P102" | IOSTANDARD = LVCMOS33;
-NET "ram_a<12>" LOC="P101" | IOSTANDARD = LVCMOS33;
-NET "ram_a<13>" LOC="P100" | IOSTANDARD = LVCMOS33;
-NET "ram_a<14>" LOC="P111" | IOSTANDARD = LVCMOS33;
-NET "ram_a<15>" LOC="P131" | IOSTANDARD = LVCMOS33;
-NET "ram_a<16>" LOC="P138" | IOSTANDARD = LVCMOS33;
-NET "ram_a<17>" LOC="P140" | IOSTANDARD = LVCMOS33;
-NET "ram_a<18>" LOC="P142" | IOSTANDARD = LVCMOS33;
-#NET "ram_a<19>" LOC="P105" | IOSTANDARD = LVCMOS33;
-#NET "ram_a<20>" LOC="P143" | IOSTANDARD = LVCMOS33;
-
-NET "ram_d<0>" LOC="P132" | IOSTANDARD = LVCMOS33;
-NET "ram_d<1>" LOC="P127" | IOSTANDARD = LVCMOS33;
-NET "ram_d<2>" LOC="P124" | IOSTANDARD = LVCMOS33;
-NET "ram_d<3>" LOC="P123" | IOSTANDARD = LVCMOS33;
-NET "ram_d<4>" LOC="P115" | IOSTANDARD = LVCMOS33;
-NET "ram_d<5>" LOC="P117" | IOSTANDARD = LVCMOS33;
-NET "ram_d<6>" LOC="P119" | IOSTANDARD = LVCMOS33;
-NET "ram_d<7>" LOC="P126" | IOSTANDARD = LVCMOS33;
-
-NET ram_WE_n LOC="P121" | IOSTANDARD=LVCMOS33 | SLEW=FAST; # nWE
-
-NET "P_A" LOC = P8;
-NET "P_A" IOSTANDARD = LVCMOS33;
-NET "P_A" PULLUP;
-NET "P_D" LOC = P5;
-NET "P_D" IOSTANDARD = LVCMOS33;
-NET "P_D" PULLUP;
-NET "P_L" LOC = P6;
-NET "P_L" IOSTANDARD = LVCMOS33;
-NET "P_L" PULLUP;
-NET "P_R" LOC = P7;
-NET "P_R" IOSTANDARD = LVCMOS33;
-NET "P_R" PULLUP;
-NET "P_U" LOC = P1;
-NET "P_U" IOSTANDARD = LVCMOS33;
-NET "P_U" PULLUP;
-NET "P_tr" LOC = P2;
-NET "P_tr" IOSTANDARD = LVCMOS33;
-NET "P_tr" PULLUP;
-
-
-NET "PS2_CLK" LOC = P99;
-NET "PS2_CLK" IOSTANDARD = LVCMOS33;
-NET "PS2_CLK" PULLUP;
-NET "PS2_DAT" LOC = P98;
-NET "PS2_DAT" IOSTANDARD = LVCMOS33;
-NET "PS2_DAT" PULLUP;
-
-
-NET "SPI_MOSI" LOC = P74;
-NET "SPI_MOSI" IOSTANDARD = LVCMOS33;
-NET "SPI_MOSI" DRIVE = 8;
-NET "SPI_MOSI" SLEW = FAST;
-NET "SPI_MISO" LOC = P78;
-NET "SPI_MISO" IOSTANDARD = LVCMOS33;
-NET "SPI_MISO" DRIVE = 8;
-NET "SPI_MISO" SLEW = FAST;
-NET "SPI_CLK" LOC = P75;
-NET "SPI_CLK" IOSTANDARD = LVCMOS33;
-NET "SPI_CLK" DRIVE = 8;
-NET "SPI_CLK" SLEW = FAST;
-NET "SPI_CS" LOC = P59;
-NET "SPI_CS" IOSTANDARD = LVCMOS33;
-NET "SPI_CS" DRIVE = 8;
-NET "SPI_CS" SLEW = FAST;
-
-#NET "PAL" LOC = P67;
-#NET "PAL" IOSTANDARD = LVCMOS33;
-#NET "NTSC" LOC = P66;
-#NET "NTSC" IOSTANDARD = LVCMOS33;
-
-
-#DEBUG
-#NET "sseg_an[0]" LOC = P11 | IOSTANDARD=LVCMOS33;
-#NET "sseg_an[1]" LOC = P16 | IOSTANDARD=LVCMOS33;
-#NET "sseg_an[2]" LOC = P58 | IOSTANDARD=LVCMOS33;
-#NET "sseg_an[3]" LOC = P51 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[3]" LOC = P44 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[0]" LOC = P40 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[1]" LOC = P21 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[2]" LOC = P33 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[4]" LOC = P47 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[5]" LOC = P24 | IOSTANDARD=LVCMOS33;
-#NET "sseg_a_to_dp[6]" LOC = P29 | IOSTANDARD=LVCMOS33;
-#NET "reset" LOC = P56 | IOSTANDARD=LVCMOS33;
-#NET "set" LOC = P48 | IOSTANDARD=LVCMOS33;
\ No newline at end of file
diff --git a/cores/NES/src/nes_zxuno_Ap.ucf b/cores/NES/src/nes_zxuno_Ap.ucf
new file mode 100644
index 0000000..0db2a3b
--- /dev/null
+++ b/cores/NES/src/nes_zxuno_Ap.ucf
@@ -0,0 +1,105 @@
+#UCF para el ZX-UNO
+NET "CLOCK_50" LOC="P55" | IOSTANDARD = LVCMOS33 | PERIOD=20.0ns;
+NET "led" LOC="P2" | IOSTANDARD = LVCMOS33;
+
+# Video output
+NET "vga_r[2]" LOC="P97" | IOSTANDARD = LVCMOS33;
+NET "vga_r[1]" LOC="P95" | IOSTANDARD = LVCMOS33;
+NET "vga_r[0]" LOC="P94" | IOSTANDARD = LVCMOS33;
+NET "vga_g[2]" LOC="P88" | IOSTANDARD = LVCMOS33;
+NET "vga_g[1]" LOC="P87" | IOSTANDARD = LVCMOS33;
+NET "vga_g[0]" LOC="P85" | IOSTANDARD = LVCMOS33;
+NET "vga_b[2]" LOC="P84" | IOSTANDARD = LVCMOS33;
+NET "vga_b[1]" LOC="P83" | IOSTANDARD = LVCMOS33;
+NET "vga_b[0]" LOC="P82" | IOSTANDARD = LVCMOS33;
+NET "vga_h" LOC="P93" | IOSTANDARD = LVCMOS33;
+NET "vga_v" LOC="P92" | IOSTANDARD = LVCMOS33;
+#NET "NTSC" LOC="P51" | IOSTANDARD = LVCMOS33;
+#NET "PAL" LOC="P50" | IOSTANDARD = LVCMOS33;
+
+# Sound input/output
+NET "AUDIO_L" LOC="P98" | IOSTANDARD = LVCMOS33;
+NET "AUDIO_R" LOC="P99" | IOSTANDARD = LVCMOS33;
+#NET "ear" LOC="P1" | IOSTANDARD = LVCMOS33;
+
+# Keyboard and mouse
+NET "PS2_CLK" LOC="P143" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "PS2_DAT" LOC="P142" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "mouseclk" LOC="P57" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "mousedata" LOC="P56" | IOSTANDARD = LVCMOS33 | PULLUP;
+
+# SRAM
+NET ram_a(0) LOC="P115" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(1) LOC="P116" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(2) LOC="P117" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(3) LOC="P119" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(4) LOC="P120" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(5) LOC="P123" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(6) LOC="P126" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(7) LOC="P131" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(8) LOC="P127" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(9) LOC="P124 | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(10) LOC="P118" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(11) LOC="P121" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(12) LOC="P133" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(13) LOC="P132" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(14) LOC="P137" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(15) LOC="P140" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(16) LOC="P139" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(17) LOC="P141" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(18) LOC="P138" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+#NET "sram_addr<19>" LOC="P105" | IOSTANDARD = LVCMOS33;
+#NET "sram_addr<20>" LOC="P143" | IOSTANDARD = LVCMOS33;
+
+NET ram_d(0) LOC="P114" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(1) LOC="P112" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(2) LOC="P111" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(3) LOC="P105" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(4) LOC="P104" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(5) LOC="P102" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(6) LOC="P101" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(7) LOC="P100" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+
+NET ram_WE_n LOC="P134" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+
+# SPI Flash
+#NET "flash_cs_n" LOC="P38" | IOSTANDARD = LVCMOS33;
+#NET "flash_clk" LOC="P70" | IOSTANDARD = LVCMOS33;
+#NET "flash_mosi" LOC="P64" | IOSTANDARD = LVCMOS33;
+#NET "flash_miso" LOC="P65" | IOSTANDARD = LVCMOS33;
+#NET "flash_ext1" LOC="P62" | IOSTANDARD = LVCMOS33;
+#NET "flash_ext2" LOC="P61" | IOSTANDARD = LVCMOS33;
+
+# SD/MMC
+NET "SPI_CS" LOC="P78" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_CLK" LOC="P80" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_MOSI" LOC="P79" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_MISO" LOC="P81" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+
+# JOYSTICK
+NET "P_U" LOC="P74" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_D" LOC="P67" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_L" LOC="P59" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_R" LOC="P58" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_tr" LOC="P75" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_A" LOC="P8" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "joyfire3" LOC="P39" | IOSTANDARD = LVCMOS33 | PULLUP;
+
+
+#DEBUG
+# NET "UART_RXD" LOC = P12 | IOSTANDARD=LVCMOS33; #ext36 mas exterior
+# NET "UART_TXD" LOC = P15 | IOSTANDARD=LVCMOS33; #ext35
+
+#NET "sseg_an[0]" LOC = P11 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[1]" LOC = P16 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[2]" LOC = P58 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[3]" LOC = P51 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[3]" LOC = P44 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[0]" LOC = P40 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[1]" LOC = P21 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[2]" LOC = P33 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[4]" LOC = P47 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[5]" LOC = P24 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[6]" LOC = P29 | IOSTANDARD=LVCMOS33;
+#NET "reset" LOC = P56 | IOSTANDARD=LVCMOS33;
+#NET "set" LOC = P48 | IOSTANDARD=LVCMOS33;
diff --git a/cores/NES/src/nes_zxuno_v2.ucf b/cores/NES/src/nes_zxuno_v2.ucf
new file mode 100644
index 0000000..a513f9b
--- /dev/null
+++ b/cores/NES/src/nes_zxuno_v2.ucf
@@ -0,0 +1,105 @@
+#UCF para el ZX-UNO
+NET "CLOCK_50" LOC="P55" | IOSTANDARD = LVCMOS33 | PERIOD=20.0ns;
+NET "led" LOC="P10" | IOSTANDARD = LVCMOS33;
+
+# Video output
+NET "vga_r[2]" LOC="P93" | IOSTANDARD = LVCMOS33;
+NET "vga_r[1]" LOC="P92" | IOSTANDARD = LVCMOS33;
+NET "vga_r[0]" LOC="P88" | IOSTANDARD = LVCMOS33;
+NET "vga_g[2]" LOC="P84" | IOSTANDARD = LVCMOS33;
+NET "vga_g[1]" LOC="P83" | IOSTANDARD = LVCMOS33;
+NET "vga_g[0]" LOC="P82" | IOSTANDARD = LVCMOS33;
+NET "vga_b[2]" LOC="P81" | IOSTANDARD = LVCMOS33;
+NET "vga_b[1]" LOC="P80" | IOSTANDARD = LVCMOS33;
+NET "vga_b[0]" LOC="P79" | IOSTANDARD = LVCMOS33;
+NET "vga_h" LOC="P87" | IOSTANDARD = LVCMOS33;
+NET "vga_v" LOC="P85" | IOSTANDARD = LVCMOS33;
+#NET "NTSC" LOC="P67" | IOSTANDARD = LVCMOS33;
+#NET "PAL" LOC="P66" | IOSTANDARD = LVCMOS33;
+
+# Sound input/output
+NET "AUDIO_L" LOC="P8" | IOSTANDARD = LVCMOS33;
+NET "AUDIO_R" LOC="P9" | IOSTANDARD = LVCMOS33;
+#NET "ear" LOC="P105" | IOSTANDARD = LVCMOS33;
+
+# Keyboard and mouse
+NET "PS2_CLK" LOC="P98" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "PS2_DAT" LOC="P97" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "mouseclk" LOC="P94" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "mousedata" LOC="P95" | IOSTANDARD = LVCMOS33 | PULLUP;
+
+# SRAM
+NET ram_a(0) LOC="P115" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(1) LOC="P116" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(2) LOC="P117" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(3) LOC="P119" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(4) LOC="P120" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(5) LOC="P123" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(6) LOC="P126" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(7) LOC="P131" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(8) LOC="P127" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(9) LOC="P124" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(10) LOC="P118" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(11) LOC="P121" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(12) LOC="P133" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(13) LOC="P132" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(14) LOC="P137" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(15) LOC="P140" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(16) LOC="P139" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(17) LOC="P141" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(18) LOC="P138" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+#NET "sram_addr<19>" LOC="P111" | IOSTANDARD = LVCMOS33;
+#NET "sram_addr<20>" LOC="P138" | IOSTANDARD = LVCMOS33;
+
+NET ram_d(0) LOC="P114" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(1) LOC="P112" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(2) LOC="P111" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(3) LOC="P99" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(4) LOC="P100" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(5) LOC="P101" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(6) LOC="P102" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(7) LOC="P104" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+
+NET ram_WE_n LOC="P134" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+
+# SPI Flash
+#NET "flash_cs_n" LOC="P38" | IOSTANDARD = LVCMOS33;
+#NET "flash_clk" LOC="P70" | IOSTANDARD = LVCMOS33;
+#NET "flash_mosi" LOC="P64" | IOSTANDARD = LVCMOS33;
+#NET "flash_miso" LOC="P65" | IOSTANDARD = LVCMOS33;
+#NET "flash_ext1" LOC="P62" | IOSTANDARD = LVCMOS33;
+#NET "flash_ext2" LOC="P61" | IOSTANDARD = LVCMOS33;
+
+# SD/MMC
+NET "SPI_CS" LOC="P59" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_CLK" LOC="P75" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_MOSI" LOC="P74" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_MISO" LOC="P78" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+
+# JOYSTICK
+NET "P_U" LOC="P142" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_D" LOC="P1" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_L" LOC="P2" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_R" LOC="P5" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_A" LOC="P143" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_tr" LOC="P6" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "joyfire3" LOC="P7" | IOSTANDARD = LVCMOS33 | PULLUP;
+
+
+#DEBUG
+#NET "UART_RXD" LOC = P12 | IOSTANDARD=LVCMOS33; #ext36 mas exterior
+#NET "UART_TXD" LOC = P15 | IOSTANDARD=LVCMOS33; #ext35
+
+#NET "sseg_an[0]" LOC = P11 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[1]" LOC = P16 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[2]" LOC = P58 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[3]" LOC = P51 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[3]" LOC = P44 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[0]" LOC = P40 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[1]" LOC = P21 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[2]" LOC = P33 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[4]" LOC = P47 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[5]" LOC = P24 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[6]" LOC = P29 | IOSTANDARD=LVCMOS33;
+#NET "reset" LOC = P56 | IOSTANDARD=LVCMOS33;
+#NET "set" LOC = P48 | IOSTANDARD=LVCMOS33;
diff --git a/cores/NES/src/nes_zxuno_v3.ucf b/cores/NES/src/nes_zxuno_v3.ucf
new file mode 100644
index 0000000..2d09355
--- /dev/null
+++ b/cores/NES/src/nes_zxuno_v3.ucf
@@ -0,0 +1,105 @@
+#UCF para el ZX-UNO
+NET "CLOCK_50" LOC="P55" | IOSTANDARD = LVCMOS33 | PERIOD=20.0ns;
+NET "led" LOC="P10" | IOSTANDARD = LVCMOS33;
+
+# Video output
+NET "vga_r[2]" LOC="P93" | IOSTANDARD = LVCMOS33;
+NET "vga_r[1]" LOC="P92" | IOSTANDARD = LVCMOS33;
+NET "vga_r[0]" LOC="P88" | IOSTANDARD = LVCMOS33;
+NET "vga_g[2]" LOC="P84" | IOSTANDARD = LVCMOS33;
+NET "vga_g[1]" LOC="P83" | IOSTANDARD = LVCMOS33;
+NET "vga_g[0]" LOC="P82" | IOSTANDARD = LVCMOS33;
+NET "vga_b[2]" LOC="P81" | IOSTANDARD = LVCMOS33;
+NET "vga_b[1]" LOC="P80" | IOSTANDARD = LVCMOS33;
+NET "vga_b[0]" LOC="P79" | IOSTANDARD = LVCMOS33;
+NET "vga_h" LOC="P87" | IOSTANDARD = LVCMOS33;
+NET "vga_v" LOC="P85" | IOSTANDARD = LVCMOS33;
+#NET "NTSC" LOC="P67" | IOSTANDARD = LVCMOS33;
+#NET "PAL" LOC="P66" | IOSTANDARD = LVCMOS33;
+
+# Sound input/output
+NET "AUDIO_L" LOC="P8" | IOSTANDARD = LVCMOS33;
+NET "AUDIO_R" LOC="P9" | IOSTANDARD = LVCMOS33;
+#NET "ear" LOC="P105" | IOSTANDARD = LVCMOS33;
+
+# Keyboard and mouse
+NET "PS2_CLK" LOC="P98" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "PS2_DAT" LOC="P97" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "mouseclk" LOC="P94" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "mousedata" LOC="P95" | IOSTANDARD = LVCMOS33 | PULLUP;
+
+# SRAM
+NET ram_a(0) LOC="P143" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(1) LOC="P142" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(2) LOC="P141" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(3) LOC="P140" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(4) LOC="P139" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(5) LOC="P104" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(6) LOC="P102" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(7) LOC="P101" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(8) LOC="P100" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(9) LOC="P99" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(10) LOC="P112" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(11) LOC="P114" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(12) LOC="P115" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(13) LOC="P116" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(14) LOC="P117" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(15) LOC="P131" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(16) LOC="P133" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(17) LOC="P134" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(18) LOC="P137" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+#NET "sram_addr<19>" LOC="P111" | IOSTANDARD = LVCMOS33;
+#NET "sram_addr<20>" LOC="P138" | IOSTANDARD = LVCMOS33;
+
+NET ram_d(0) LOC="P132" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(1) LOC="P126" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(2) LOC="P123" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(3) LOC="P120" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(4) LOC="P119" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(5) LOC="P121" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(6) LOC="P124" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(7) LOC="P127" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+
+NET ram_WE_n LOC="P118" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+
+# SPI Flash
+#NET "flash_cs_n" LOC="P38" | IOSTANDARD = LVCMOS33;
+#NET "flash_clk" LOC="P70" | IOSTANDARD = LVCMOS33;
+#NET "flash_mosi" LOC="P64" | IOSTANDARD = LVCMOS33;
+#NET "flash_miso" LOC="P65" | IOSTANDARD = LVCMOS33;
+#NET "flash_ext1" LOC="P62" | IOSTANDARD = LVCMOS33;
+#NET "flash_ext2" LOC="P61" | IOSTANDARD = LVCMOS33;
+
+# SD/MMC
+NET "SPI_CS" LOC="P59" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_CLK" LOC="P75" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_MOSI" LOC="P74" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_MISO" LOC="P78" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+
+# JOYSTICK
+NET "P_U" LOC="P1" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_D" LOC="P5" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_L" LOC="P6" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_R" LOC="P7" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_tr" LOC="P2" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "joyfire2" LOC="P8" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_A" LOC="P39" | IOSTANDARD = LVCMOS33 | PULLUP;
+
+
+#DEBUG
+# NET "UART_RXD" LOC = P12 | IOSTANDARD=LVCMOS33; #ext36 mas exterior
+# NET "UART_TXD" LOC = P15 | IOSTANDARD=LVCMOS33; #ext35
+
+#NET "sseg_an[0]" LOC = P11 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[1]" LOC = P16 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[2]" LOC = P58 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[3]" LOC = P51 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[3]" LOC = P44 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[0]" LOC = P40 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[1]" LOC = P21 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[2]" LOC = P33 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[4]" LOC = P47 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[5]" LOC = P24 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[6]" LOC = P29 | IOSTANDARD=LVCMOS33;
+#NET "reset" LOC = P56 | IOSTANDARD=LVCMOS33;
+#NET "set" LOC = P48 | IOSTANDARD=LVCMOS33;
diff --git a/cores/NES/src/nes_zxuno_v4.ucf b/cores/NES/src/nes_zxuno_v4.ucf
new file mode 100644
index 0000000..5ac500c
--- /dev/null
+++ b/cores/NES/src/nes_zxuno_v4.ucf
@@ -0,0 +1,105 @@
+#UCF para el ZX-UNO
+NET "CLOCK_50" LOC="P55" | IOSTANDARD = LVCMOS33 | PERIOD=20.0ns;
+NET "led" LOC="P11" | IOSTANDARD = LVCMOS33;
+
+# Video output
+NET "vga_r[2]" LOC="P81" | IOSTANDARD = LVCMOS33;
+NET "vga_r[1]" LOC="P80" | IOSTANDARD = LVCMOS33;
+NET "vga_r[0]" LOC="P79" | IOSTANDARD = LVCMOS33;
+NET "vga_g[2]" LOC="P84" | IOSTANDARD = LVCMOS33;
+NET "vga_g[1]" LOC="P83" | IOSTANDARD = LVCMOS33;
+NET "vga_g[0]" LOC="P82" | IOSTANDARD = LVCMOS33;
+NET "vga_b[2]" LOC="P93" | IOSTANDARD = LVCMOS33;
+NET "vga_b[1]" LOC="P92" | IOSTANDARD = LVCMOS33;
+NET "vga_b[0]" LOC="P88" | IOSTANDARD = LVCMOS33;
+NET "vga_h" LOC="P87" | IOSTANDARD = LVCMOS33;
+NET "vga_v" LOC="P85" | IOSTANDARD = LVCMOS33;
+#NET "NTSC" LOC="P67" | IOSTANDARD = LVCMOS33;
+#NET "PAL" LOC="P66" | IOSTANDARD = LVCMOS33;
+
+# Sound input/output
+NET "AUDIO_L" LOC="P10" | IOSTANDARD = LVCMOS33;
+NET "AUDIO_R" LOC="P9" | IOSTANDARD = LVCMOS33;
+#NET "ear" LOC="P94" | IOSTANDARD = LVCMOS33;
+
+# Keyboard and mouse
+NET "PS2_CLK" LOC="P98" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "PS2_DAT" LOC="P97" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "mouseclk" LOC="P95" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "mousedata" LOC="P97" | IOSTANDARD = LVCMOS33 | PULLUP;
+
+# SRAM
+NET ram_a(0) LOC="P141" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(1) LOC="P139" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(2) LOC="P137" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(3) LOC="P134" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(4) LOC="P133" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(5) LOC="P120" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(6) LOC="P118" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(7) LOC="P116" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(8) LOC="P114" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(9) LOC="P112 | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(10) LOC="P104" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(11) LOC="P102" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(12) LOC="P101" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(13) LOC="P100" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(14) LOC="P111" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(15) LOC="P131" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(16) LOC="P138" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(17) LOC="P140" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_a(18) LOC="P142" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+#NET "sram_addr<19>" LOC="P105" | IOSTANDARD = LVCMOS33;
+#NET "sram_addr<20>" LOC="P143" | IOSTANDARD = LVCMOS33;
+
+NET ram_d(0) LOC="P132" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(1) LOC="P127" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(2) LOC="P124" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(3) LOC="P123" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(4) LOC="P115" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(5) LOC="P117" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(6) LOC="P119" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+NET ram_d(7) LOC="P126" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+
+NET ram_WE_n LOC="P121" | IOSTANDARD = LVCMOS33 | SLEW=FAST;
+
+# SPI Flash
+#NET "flash_cs_n" LOC="P38" | IOSTANDARD = LVCMOS33;
+#NET "flash_clk" LOC="P70" | IOSTANDARD = LVCMOS33;
+#NET "flash_mosi" LOC="P64" | IOSTANDARD = LVCMOS33;
+#NET "flash_miso" LOC="P65" | IOSTANDARD = LVCMOS33;
+#NET "flash_ext1" LOC="P62" | IOSTANDARD = LVCMOS33;
+#NET "flash_ext2" LOC="P61" | IOSTANDARD = LVCMOS33;
+
+# SD/MMC
+NET "SPI_CS" LOC="P59" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_CLK" LOC="P75" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_MOSI" LOC="P74" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+NET "SPI_MISO" LOC="P78" | IOSTANDARD = LVCMOS33 | DRIVE=8 | SLEW=FAST;
+
+# JOYSTICK
+NET "P_U" LOC="P1" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_D" LOC="P5" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_L" LOC="P6" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_R" LOC="P7" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_tr" LOC="P2" | IOSTANDARD = LVCMOS33 | PULLUP;
+NET "P_A" LOC="P8" | IOSTANDARD = LVCMOS33 | PULLUP;
+#NET "joyfire3" LOC="P39" | IOSTANDARD = LVCMOS33 | PULLUP;
+
+
+#DEBUG
+# NET "UART_RXD" LOC = P12 | IOSTANDARD=LVCMOS33; #ext36 mas exterior
+# NET "UART_TXD" LOC = P15 | IOSTANDARD=LVCMOS33; #ext35
+
+#NET "sseg_an[0]" LOC = P11 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[1]" LOC = P16 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[2]" LOC = P58 | IOSTANDARD=LVCMOS33;
+#NET "sseg_an[3]" LOC = P51 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[3]" LOC = P44 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[0]" LOC = P40 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[1]" LOC = P21 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[2]" LOC = P33 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[4]" LOC = P47 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[5]" LOC = P24 | IOSTANDARD=LVCMOS33;
+#NET "sseg_a_to_dp[6]" LOC = P29 | IOSTANDARD=LVCMOS33;
+#NET "reset" LOC = P56 | IOSTANDARD=LVCMOS33;
+#NET "set" LOC = P48 | IOSTANDARD=LVCMOS33;
diff --git a/cores/NES/xilinx/NES_ZXUNO.prj b/cores/NES/xilinx/NES_ZXUNO.prj
new file mode 100644
index 0000000..85ea51e
--- /dev/null
+++ b/cores/NES/xilinx/NES_ZXUNO.prj
@@ -0,0 +1,23 @@
+vhdl work "ipcore_dir/nes_clk.vhd"
+vhdl work "ipcore_dir/ram8k.vhd"
+vhdl work "ipcore_dir/ram2k.vhd"
+vhdl work "ipcore_dir/DualPortRAM_Block.vhd"
+vhdl work "ipcore_dir/fifo_loader.vhd"
+vhdl work "../src/CtrlModule/ZPUFlex/RTL/zpupkg.vhd"
+vhdl work "../src/CtrlModule/CtrlModule/CharROM/CharROM_ROM.vhd"
+verilog work "../src/compat.v"
+vhdl work "../src/CtrlModule/ZPUFlex/RTL/zpu_core_flex.vhd"
+vhdl work "../src/CtrlModule/CtrlModule/RTL/spi.vhd"
+vhdl work "../src/CtrlModule/CtrlModule/RTL/OnScreenDisplay.vhd"
+vhdl work "../src/CtrlModule/CtrlModule/RTL/io_ps2_com.vhd"
+vhdl work "../src/CtrlModule/CtrlModule/RTL/interrupt_controller.vhd"
+vhdl work "../src/CtrlModule/CtrlModule/Firmware/CtrlROM_ROM.vhd"
+verilog work "../src/vga.v"
+verilog work "../src/sigma_delta_dac.v"
+verilog work "../src/nes.v"
+verilog work "../src/memorycontroller.v"
+verilog work "../src/hq2x.v"
+verilog work "../src/GameLoader.v"
+vhdl work "../src/CtrlModule/CtrlModule/RTL/OSD_Overlay.vhd"
+vhdl work "../src/CtrlModule/CtrlModule/RTL/CtrlModule.vhd"
+verilog work "../src/NES_ZXUNO.v"
diff --git a/cores/NES/xilinx/NES_ZXUNO.ut b/cores/NES/xilinx/NES_ZXUNO.ut
new file mode 100644
index 0000000..dfd4060
--- /dev/null
+++ b/cores/NES/xilinx/NES_ZXUNO.ut
@@ -0,0 +1,30 @@
+-w
+-g Binary:no
+-g Compress
+-g CRC:Enable
+-g Reset_on_err:No
+-g ConfigRate:2
+-g ProgPin:PullUp
+-g TckPin:PullUp
+-g TdiPin:PullUp
+-g TdoPin:PullUp
+-g TmsPin:PullUp
+-g UnusedPin:PullDown
+-g UserID:0xFFFFFFFF
+-g ExtMasterCclk_en:No
+-g SPI_buswidth:1
+-g TIMER_CFG:0xFFFF
+-g multipin_wakeup:No
+-g StartUpClk:CClk
+-g DONE_cycle:4
+-g GTS_cycle:5
+-g GWE_cycle:6
+-g LCK_cycle:NoWait
+-g Security:None
+-g DonePipe:Yes
+-g DriveDone:No
+-g en_sw_gsr:No
+-g drive_awake:No
+-g sw_clk:Startupclk
+-g sw_gwe_cycle:5
+-g sw_gts_cycle:4
diff --git a/cores/NES/xilinx/NES_ZXUNO.xst b/cores/NES/xilinx/NES_ZXUNO.xst
new file mode 100644
index 0000000..4ccf3f5
--- /dev/null
+++ b/cores/NES/xilinx/NES_ZXUNO.xst
@@ -0,0 +1,53 @@
+set -tmpdir "projnav.tmp"
+set -xsthdpdir "xst"
+run
+-ifn NES_ZXUNO.prj
+-ofn NES_ZXUNO
+-ofmt NGC
+-p xc6slx9-2-tqg144
+-top NES_ZXUNO
+-opt_mode Speed
+-opt_level 1
+-power NO
+-iuc NO
+-keep_hierarchy No
+-netlist_hierarchy As_Optimized
+-rtlview Yes
+-glob_opt AllClockNets
+-read_cores YES
+-sd {"ipcore_dir" }
+-write_timing_constraints NO
+-cross_clock_analysis NO
+-hierarchy_separator /
+-bus_delimiter <>
+-case Maintain
+-slice_utilization_ratio 100
+-bram_utilization_ratio 100
+-dsp_utilization_ratio 100
+-lc Auto
+-reduce_control_sets Auto
+-fsm_extract YES -fsm_encoding Auto
+-safe_implementation No
+-fsm_style LUT
+-ram_extract Yes
+-ram_style Auto
+-rom_extract Yes
+-shreg_extract YES
+-rom_style Auto
+-auto_bram_packing NO
+-resource_sharing YES
+-async_to_sync NO
+-shreg_min_size 2
+-use_dsp48 Auto
+-iobuf YES
+-max_fanout 100000
+-bufg 16
+-register_duplication YES
+-register_balancing No
+-optimize_primitives NO
+-use_clock_enable Auto
+-use_sync_set Auto
+-use_sync_reset Auto
+-iob Auto
+-equivalent_register_removal YES
+-slice_utilization_ratio_maxmargin 5
diff --git a/cores/NES/xilinx/ipcore_dir/_xmsgs/pn_parser.xmsgs b/cores/NES/xilinx/ipcore_dir/_xmsgs/pn_parser.xmsgs
deleted file mode 100644
index abb142b..0000000
--- a/cores/NES/xilinx/ipcore_dir/_xmsgs/pn_parser.xmsgs
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-Parsing VHDL file "P:/ZXUNO/cores/nes_v2_spartan6/test1_v4/xilinx/ipcore_dir/nes_clk.vhd" into library work
-
-
-
-
diff --git a/cores/NES/xilinx/ipcore_dir/fifo_loader.xise b/cores/NES/xilinx/ipcore_dir/fifo_loader.xise
deleted file mode 100644
index ffa6eb2..0000000
--- a/cores/NES/xilinx/ipcore_dir/fifo_loader.xise
+++ /dev/null
@@ -1,402 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/cores/NES/xilinx/ipcore_dir/nes_clk.xise b/cores/NES/xilinx/ipcore_dir/nes_clk.xise
deleted file mode 100644
index 7cb76d2..0000000
--- a/cores/NES/xilinx/ipcore_dir/nes_clk.xise
+++ /dev/null
@@ -1,403 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-