diff --git a/.build/alphamission.rbf_r b/.build/alphamission.rbf_r index 515bb2f..428359e 100644 Binary files a/.build/alphamission.rbf_r and b/.build/alphamission.rbf_r differ diff --git a/README.md b/README.md index 6deee0a..768bbfe 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,12 @@ -# SNK Triple Z80 Compatible Gateware IP Core (WIP) +# SNK ASO/Alpha Mission Compatible Gateware IP Core Follow any core updates and news on my Twitter acount [@RndMnkIII](https://twitter.com/RndMnkIII). this project is a hobby but it requires investing in arcade game boards and specific tools, so any donation is welcome: [https://ko-fi.com/rndmnkiii](https://ko-fi.com/rndmnkiii). ## About -This core originated from the core project for __SNK's__ __Alpha__ __Mission__ arcade game. In the end, it has become a multigame project where new games will be added, encompassed in the so-called __"SNK Triple Z80"__ platform, this groups together several games that were developed by SNK around the mid-1980s using a similar hardware architecture. For a complete reference of the list of games consult +This core originated from the core project for __SNK's__ __Alpha__ __Mission__ arcade game. Encompass the __"SNK Triple Z80"__ platform, this groups together several games that were developed by SNK around the mid-1980s using a similar hardware architecture. For a complete reference of the list of games consult [https://github.com/mamedev/mame/blob/master/src/mame/drivers/snk.cpp](https://github.com/mamedev/mame/blob/master/src/mame/drivers/snk.cpp). -I am currently making the core of other of these games, as I develop them I will incorporate modular features to use certain hardware parts depending on the game that is loaded in the core. The idea is to use a single core for all these games or try to modularize it as much as possible. Next games that I've planned to incorporate: Ikari Warriors, T.N.K. III, Psycho Soldier and more. - -While it is in this development process, it will be appreciated that parallel developments of these games are not made to those of the author based on the code of this project or my previous project for the Alpha Mission standalone game core, although I think it is good that it is ported to other platforms apart from MiSTer. Respecting that if I would like to receive suggestions or advice from other developers or users about this core. - ## Compatible Games > __ROMs NOT INCLUDED:__ By using this core you agree to provide your own roms. We do not condone or support the unauthorized use or distribution of copyrighted or other intellectual property-protected materials @@ -22,6 +18,10 @@ While it is in this development process, it will be appreciated that parallel de | Arian Mission | ✅ | ## Credits and acknowledgment +* First of all I want to thank __Marcus Jordan / Boogermann__ [@marcusjordan](https://twitter.com/marcusjordan) for his help, without which this port would not have been possible and for making it easier for the developers to port cores to the Analogue Pocket using the [Gateman Pocket](https://github.com/opengateware/gateman-pocket) tool. + +* __Adam Gastineau__ for his support of the [OpenFPGA](https://www.analogue.co/developer/docs/overview) initiative by publishing information and tools to facilitate the development/port of cores on the Analogue Pocket platform: https://github.com/agg23/analogue-pocket-utils + * To all Ko-fi contributors for supporting this project: __@bdlou__, __Peter Bray__, __Nat__, __Funkycochise__, __David__, __Kevin Coleman__, __Denymetanol__, __Schermobianco__, __TontonKaloun__, __Wark91__, __Dan__, __Beaps__. * __@caiusarcade__ for their assistance in using files and converting PLD files. diff --git a/pkg/pocket/Platforms/_images/alphamission.bin b/pkg/pocket/Platforms/_images/alphamission.bin new file mode 100644 index 0000000..8d01c3d Binary files /dev/null and b/pkg/pocket/Platforms/_images/alphamission.bin differ diff --git a/pkg/pocket/Platforms/_images/alphamission.png b/pkg/pocket/Platforms/_images/alphamission.png index 65a084d..6abb299 100644 Binary files a/pkg/pocket/Platforms/_images/alphamission.png and b/pkg/pocket/Platforms/_images/alphamission.png differ diff --git a/platform/pocket/megafunctions/mf_audio_pll.ppf b/platform/pocket/megafunctions/mf_audio_pll.ppf new file mode 100644 index 0000000..ebfd931 --- /dev/null +++ b/platform/pocket/megafunctions/mf_audio_pll.ppf @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/platform/pocket/megafunctions/mf_audio_pll.qip b/platform/pocket/megafunctions/mf_audio_pll.qip index efec938..743ba6c 100644 --- a/platform/pocket/megafunctions/mf_audio_pll.qip +++ b/platform/pocket/megafunctions/mf_audio_pll.qip @@ -1,5 +1,5 @@ set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_TOOL_NAME "altera_pll" -set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_TOOL_VERSION "17.1" +set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_TOOL_VERSION "18.0" set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_TOOL_ENV "mwpim" set_global_assignment -library "mf_audio_pll" -name MISC_FILE [file join $::quartus(qip_path) "mf_audio_pll.cmp"] set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_TARGETED_DEVICE_FAMILY "Cyclone V" @@ -7,19 +7,19 @@ set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_GE set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_QSYS_MODE "UNKNOWN" set_global_assignment -name SYNTHESIS_ONLY_QIP ON set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_NAME "bWZfYXVkaW9fcGxs" -set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_DISPLAY_NAME "QWx0ZXJhIFBMTA==" +set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_DISPLAY_NAME "UExMIEludGVsIEZQR0EgSVA=" set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_REPORT_HIERARCHY "Off" set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_INTERNAL "Off" -set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_AUTHOR "QWx0ZXJhIENvcnBvcmF0aW9u" -set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_VERSION "MTcuMQ==" -set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_DESCRIPTION "QWx0ZXJhIFBoYXNlLUxvY2tlZCBMb29wIChBTFRFUkFfUExMKQ==" +set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_AUTHOR "SW50ZWwgQ29ycG9yYXRpb24=" +set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_VERSION "MTguMA==" +set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_COMPONENT_DESCRIPTION "SW50ZWwgUGhhc2UtTG9ja2VkIExvb3A=" set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_NAME "bWZfYXVkaW9fcGxsXzAwMDI=" -set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_DISPLAY_NAME "QWx0ZXJhIFBMTA==" +set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_DISPLAY_NAME "UExMIEludGVsIEZQR0EgSVA=" set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_REPORT_HIERARCHY "Off" set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_INTERNAL "Off" -set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_AUTHOR "QWx0ZXJhIENvcnBvcmF0aW9u" -set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_VERSION "MTcuMQ==" -set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_DESCRIPTION "QWx0ZXJhIFBoYXNlLUxvY2tlZCBMb29wIChBTFRFUkFfUExMKQ==" +set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_AUTHOR "SW50ZWwgQ29ycG9yYXRpb24=" +set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_VERSION "MTguMA==" +set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_DESCRIPTION "SW50ZWwgUGhhc2UtTG9ja2VkIExvb3A=" set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_PARAMETER "ZGVidWdfcHJpbnRfb3V0cHV0::ZmFsc2U=::ZGVidWdfcHJpbnRfb3V0cHV0" set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_PARAMETER "ZGVidWdfdXNlX3JiY190YWZfbWV0aG9k::ZmFsc2U=::ZGVidWdfdXNlX3JiY190YWZfbWV0aG9k" set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_COMPONENT_PARAMETER "ZGV2aWNl::NUNFQkEyRjE3QTc=::ZGV2aWNl" @@ -333,5 +333,5 @@ set_global_assignment -library "mf_audio_pll" -name VERILOG_FILE [file join $::q set_global_assignment -library "mf_audio_pll" -name QIP_FILE [file join $::quartus(qip_path) "mf_audio_pll/mf_audio_pll_0002.qip"] set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_TOOL_NAME "altera_pll" -set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_TOOL_VERSION "17.1" +set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_TOOL_VERSION "18.0" set_global_assignment -entity "mf_audio_pll_0002" -library "mf_audio_pll" -name IP_TOOL_ENV "mwpim" diff --git a/platform/pocket/megafunctions/mf_audio_pll.v b/platform/pocket/megafunctions/mf_audio_pll.v index 6633406..ebd2ac8 100644 --- a/platform/pocket/megafunctions/mf_audio_pll.v +++ b/platform/pocket/megafunctions/mf_audio_pll.v @@ -1,8 +1,8 @@ -// megafunction wizard: %Altera PLL v17.1% +// megafunction wizard: %PLL Intel FPGA IP v18.0% // GENERATION: XML // mf_audio_pll.v -// Generated using ACDS version 17.1 590 +// Generated using ACDS version 18.0 614 `timescale 1 ps / 1 ps module mf_audio_pll ( @@ -48,12 +48,12 @@ endmodule // their respective licensors. No other licenses, including any licenses // needed under any third party's intellectual property, are provided herein. //--> -// Retrieval info: +// Retrieval info: // Retrieval info: // Retrieval info: // Retrieval info: // Retrieval info: -// Retrieval info: +// Retrieval info: // Retrieval info: // Retrieval info: // Retrieval info: diff --git a/projects/alphamission_pocket.qsf b/projects/alphamission_pocket.qsf index 349c275..ad9cea4 100644 --- a/projects/alphamission_pocket.qsf +++ b/projects/alphamission_pocket.qsf @@ -10,7 +10,7 @@ # Project-Wide Assignments # ============================================================================== set_global_assignment -name ORIGINAL_QUARTUS_VERSION 17.0.0 -set_global_assignment -name LAST_QUARTUS_VERSION "18.1.0 Lite Edition" +set_global_assignment -name LAST_QUARTUS_VERSION "18.0.0 Lite Edition" set_global_assignment -name PROJECT_OUTPUT_DIRECTORY output_files set_global_assignment -name TOP_LEVEL_ENTITY apf_top @@ -54,19 +54,14 @@ set_global_assignment -name ROUTER_LCELL_INSERTION_AND_LOGIC_DUPLICATION ON # ============================================================================== # Pin & Location Assignments # ============================================================================== -set_global_assignment -name SOURCE_TCL_SCRIPT_FILE ../platform/pocket/bsp/pocket/sys_assign.tcl # ============================================================================== # Platform Modules, Constrains and Chain Description File # ============================================================================== -set_global_assignment -name QIP_FILE alphamission_pocket.qip -set_global_assignment -name SDC_FILE alphamission_pocket.sdc -set_global_assignment -name CDF_FILE alphamission_pocket.cdf # ============================================================================== # Core RTL Assignments # ============================================================================== -set_global_assignment -name QIP_FILE ../rtl/index.qip # ============================================================================== # Incremental Compilation Assignments @@ -74,4 +69,68 @@ set_global_assignment -name QIP_FILE ../rtl/index.qip set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top +set_global_assignment -name SOURCE_TCL_SCRIPT_FILE ../platform/pocket/bsp/pocket/sys_assign.tcl +set_global_assignment -name SOURCE_TCL_SCRIPT_FILE ../platform/pocket/bsp/setup.tcl +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/bsp/pocket/apf_top.sv +set_global_assignment -name SDC_FILE ../platform/pocket/bsp/pocket/sys_constr.sdc +set_global_assignment -name SOURCE_TCL_SCRIPT_FILE ../platform/pocket/pkgIndex.tcl +set_global_assignment -name VERILOG_FILE ../platform/pocket/megafunctions/mf_audio_pll.BAK.v +set_global_assignment -name VERILOG_FILE ../platform/pocket/megafunctions/mf_audio_pll.v +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/audio_fifo.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/audio_mixer.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/pocket_i2s.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/filters/arcade_filters.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/filters/audio_filters.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/filters/audio_mix.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/filters/dc_blocker.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/filters/filters_rom.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/filters/filter_loader.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/filters/iir_filter.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/audio/filters/iir_filter_tap.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/video/scanlines.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/video/scanlines_generator.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/video/shadowmask.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/video/video_mixer.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/analog2dpad.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/data_loader.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/data_unloader.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/gamepad.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/interact.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/joypad.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/pause_crtl.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/usb_mouse.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/keyboard/apf2hid.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/keyboard/hid2ps2_key.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/keyboard/hid2ps2_mod.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/keyboard/kb_fifo.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/keyboard/key_arbiter.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/keyboard/key_ctl.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/keyboard/key_mgr.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/interface/keyboard/usb_keyboard.sv +set_global_assignment -name VERILOG_FILE ../platform/pocket/megafunctions/mf_datatable.v +set_global_assignment -name VERILOG_FILE ../platform/pocket/megafunctions/mf_ddio_bidir_12.v +set_global_assignment -name QIP_FILE ../platform/pocket/megafunctions/mf_audio_pll.qip +set_global_assignment -name QIP_FILE ../platform/pocket/megafunctions/mf_datatable.qip +set_global_assignment -name QIP_FILE ../platform/pocket/megafunctions/mf_ddio_bidir_12.qip +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/memory/dpram_hs.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/memory/spram_hs.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/memory/sram.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/peripherals/core_bridge_cmd.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/peripherals/io_bridge_peripheral.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/peripherals/io_pad_controller.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/support/autofire.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/support/data_io.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/support/hiscore.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/support/hiscore_io.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/support/nvram.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/support/save_io.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/helpers/synch_2.sv +set_global_assignment -name SYSTEMVERILOG_FILE ../platform/pocket/helpers/synch_3.sv +set_global_assignment -name QIP_FILE ../target/pocket/core.qip +set_global_assignment -name QIP_FILE ../target/pocket/core_pll/core_pll.qip +set_global_assignment -name SOURCE_TCL_SCRIPT_FILE ../platform/pocket/bsp/pocket/pinouts/system.tcl +set_global_assignment -name QIP_FILE alphamission_pocket.qip +set_global_assignment -name SDC_FILE alphamission_pocket.sdc +set_global_assignment -name CDF_FILE alphamission_pocket.cdf +set_global_assignment -name QIP_FILE ../rtl/index.qip set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file diff --git a/target/pocket/core_pll/core_pll.qip b/target/pocket/core_pll/core_pll.qip index 96c8c2c..de5abee 100644 --- a/target/pocket/core_pll/core_pll.qip +++ b/target/pocket/core_pll/core_pll.qip @@ -1,5 +1,5 @@ set_global_assignment -entity "core_pll" -library "core_pll" -name IP_TOOL_NAME "altera_pll" -set_global_assignment -entity "core_pll" -library "core_pll" -name IP_TOOL_VERSION "17.1" +set_global_assignment -entity "core_pll" -library "core_pll" -name IP_TOOL_VERSION "18.0" set_global_assignment -entity "core_pll" -library "core_pll" -name IP_TOOL_ENV "mwpim" set_global_assignment -library "core_pll" -name MISC_FILE [file join $::quartus(qip_path) "core_pll.cmp"] set_global_assignment -entity "core_pll" -library "core_pll" -name IP_TARGETED_DEVICE_FAMILY "Cyclone V" @@ -7,22 +7,23 @@ set_global_assignment -entity "core_pll" -library "core_pll" -name IP_GENERATED_ set_global_assignment -entity "core_pll" -library "core_pll" -name IP_QSYS_MODE "UNKNOWN" set_global_assignment -name SYNTHESIS_ONLY_QIP ON set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_NAME "Y29yZV9wbGw=" -set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_DISPLAY_NAME "QWx0ZXJhIFBMTA==" +set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_DISPLAY_NAME "UExMIEludGVsIEZQR0EgSVA=" set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_REPORT_HIERARCHY "Off" set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_INTERNAL "Off" -set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_AUTHOR "QWx0ZXJhIENvcnBvcmF0aW9u" -set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_VERSION "MTcuMQ==" -set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_DESCRIPTION "QWx0ZXJhIFBoYXNlLUxvY2tlZCBMb29wIChBTFRFUkFfUExMKQ==" +set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_AUTHOR "SW50ZWwgQ29ycG9yYXRpb24=" +set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_VERSION "MTguMA==" +set_global_assignment -entity "core_pll" -library "core_pll" -name IP_COMPONENT_DESCRIPTION "SW50ZWwgUGhhc2UtTG9ja2VkIExvb3A=" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_NAME "Y29yZV9wbGxfMDAwMg==" -set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_DISPLAY_NAME "QWx0ZXJhIFBMTA==" +set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_DISPLAY_NAME "UExMIEludGVsIEZQR0EgSVA=" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_REPORT_HIERARCHY "Off" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_INTERNAL "Off" -set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_AUTHOR "QWx0ZXJhIENvcnBvcmF0aW9u" -set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_VERSION "MTcuMQ==" -set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_DESCRIPTION "QWx0ZXJhIFBoYXNlLUxvY2tlZCBMb29wIChBTFRFUkFfUExMKQ==" +set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_AUTHOR "SW50ZWwgQ29ycG9yYXRpb24=" +set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_VERSION "MTguMA==" +set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_DESCRIPTION "SW50ZWwgUGhhc2UtTG9ja2VkIExvb3A=" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "ZGVidWdfcHJpbnRfb3V0cHV0::ZmFsc2U=::ZGVidWdfcHJpbnRfb3V0cHV0" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "ZGVidWdfdXNlX3JiY190YWZfbWV0aG9k::ZmFsc2U=::ZGVidWdfdXNlX3JiY190YWZfbWV0aG9k" -set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "ZGV2aWNl::NUNFQkEyRjE3QTc=::ZGV2aWNl" +set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "ZGV2aWNl::VW5rbm93bg==::ZGV2aWNl" +set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX2RldmljZV9zcGVlZF9ncmFkZQ==::Mg==::RGV2aWNlIFNwZWVkIEdyYWRl" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BsbF9tb2Rl::RnJhY3Rpb25hbC1OIFBMTA==::UExMIE1vZGU=" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "ZnJhY3Rpb25hbF92Y29fbXVsdGlwbGllcg==::dHJ1ZQ==::ZnJhY3Rpb25hbF92Y29fbXVsdGlwbGllcg==" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX3JlZmVyZW5jZV9jbG9ja19mcmVxdWVuY3k=::NzQuMjU=::UmVmZXJlbmNlIENsb2NrIEZyZXF1ZW5jeQ==" @@ -79,9 +80,9 @@ set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPO set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX2Nhc2NhZGVfY291bnRlcjM=::ZmFsc2U=::TWFrZSB0aGlzIGEgY2FzY2FkZSBjb3VudGVy" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX291dHB1dF9jbG9ja19mcmVxdWVuY3kz::MTQuMA==::RGVzaXJlZCBGcmVxdWVuY3k=" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX2RpdmlkZV9mYWN0b3JfYzM=::MQ==::RGl2aWRlIEZhY3RvciAoQy1Db3VudGVyKQ==" -set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Iz::MjA=::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg==" -set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjM=::NDAxNDQxMDQ4OA==::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ==" -set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMw==::MTEx::QWN0dWFsIERpdmlkZSBGYWN0b3I=" +set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9tdWx0aXBseV9mYWN0b3Iz::MQ==::QWN0dWFsIE11bHRpcGx5IEZhY3Rvcg==" +set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9mcmFjX211bHRpcGx5X2ZhY3RvcjM=::MQ==::QWN0dWFsIEZyYWN0aW9uYWwgTXVsdGlwbHkgRmFjdG9yIChLKQ==" +set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9kaXZpZGVfZmFjdG9yMw==::MQ==::QWN0dWFsIERpdmlkZSBGYWN0b3I=" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX2FjdHVhbF9vdXRwdXRfY2xvY2tfZnJlcXVlbmN5Mw==::MCBNSHo=::QWN0dWFsIEZyZXF1ZW5jeQ==" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BzX3VuaXRzMw==::cHM=::UGhhc2UgU2hpZnQgdW5pdHM=" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_COMPONENT_PARAMETER "Z3VpX3BoYXNlX3NoaWZ0Mw==::MA==::UGhhc2UgU2hpZnQ=" @@ -333,5 +334,5 @@ set_global_assignment -library "core_pll" -name VERILOG_FILE [file join $::quart set_global_assignment -library "core_pll" -name QIP_FILE [file join $::quartus(qip_path) "core_pll/core_pll_0002.qip"] set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_TOOL_NAME "altera_pll" -set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_TOOL_VERSION "17.1" +set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_TOOL_VERSION "18.0" set_global_assignment -entity "core_pll_0002" -library "core_pll" -name IP_TOOL_ENV "mwpim" diff --git a/target/pocket/core_pll/core_pll.v b/target/pocket/core_pll/core_pll.v index 1cfe998..4adaf1f 100644 --- a/target/pocket/core_pll/core_pll.v +++ b/target/pocket/core_pll/core_pll.v @@ -1,8 +1,8 @@ -// megafunction wizard: %Altera PLL v17.1% +// megafunction wizard: %PLL Intel FPGA IP v18.0% // GENERATION: XML // core_pll.v -// Generated using ACDS version 17.1 590 +// Generated using ACDS version 18.0 614 `timescale 1 ps / 1 ps module core_pll ( @@ -50,12 +50,12 @@ endmodule // their respective licensors. No other licenses, including any licenses // needed under any third party's intellectual property, are provided herein. //--> -// Retrieval info: +// Retrieval info: // Retrieval info: // Retrieval info: // Retrieval info: -// Retrieval info: -// Retrieval info: +// Retrieval info: +// Retrieval info: // Retrieval info: // Retrieval info: // Retrieval info: diff --git a/target/pocket/core_top.sv b/target/pocket/core_top.sv index 498e6a4..abb63c3 100644 --- a/target/pocket/core_top.sv +++ b/target/pocket/core_top.sv @@ -54,7 +54,7 @@ module core_top parameter MUTE_PAUSE = 1, //! Mute Audio on Pause // Gamepad/Joystick parameter JOY_PADS = 2, //! Total Number of Gamepads - parameter JOY_ALT = 1, //! 2 Players Alternate + parameter JOY_ALT = 0, //! 2 Players Alternate // Data I/O - [MPU -> FPGA] parameter DIO_MASK = 4'h0, //! Upper 4 bits of address parameter DIO_AW = 27, //! Address Width @@ -821,9 +821,8 @@ module core_top wire p1_btn_r1, p1_btn_r2, p1_btn_r3; wire p1_select, p1_start; // - Analog - //Not used by ASO - // wire j1_up, j1_down, j1_left, j1_right; - // wire [7:0] j1_lx, j1_ly, j1_rx, j1_ry; + wire j1_up, j1_down, j1_left, j1_right; + wire [7:0] j1_lx, j1_ly, j1_rx, j1_ry; // Player 2 // - DPAD @@ -833,9 +832,8 @@ module core_top wire p2_btn_r1, p2_btn_r2, p2_btn_r3; wire p2_select, p2_start; // - Analog - ////Not used by ASO - // wire j2_up, j2_down, j2_left, j2_right; - // wire [7:0] j2_lx, j2_ly, j2_rx, j2_ry; + wire j2_up, j2_down, j2_left, j2_right; + wire [7:0] j2_lx, j2_ly, j2_rx, j2_ry; // Single Player or Alternate 2 Players for Arcade wire m_start1, m_start2; @@ -861,14 +859,14 @@ module core_top .p1_l2 ( p1_btn_l2 ), .p1_r2 ( p1_btn_r2 ), .p1_l3 ( p1_btn_l3 ), .p1_r3 ( p1_btn_r3 ), .p1_se ( p1_select ), .p1_st ( p1_start ), - // .j1_up ( j1_up ), .j1_down ( j1_down ), - // .j1_left ( j1_left ), .j1_right ( j1_right ), - // .j1_lx ( j1_lx ), .j1_ly ( j1_ly ), - // .j1_rx ( j1_rx ), .j1_ry ( j1_ry ), - .j1_up ( {1'b0}), .j1_down ( {1'b0} ), - .j1_left ( {1'b0}), .j1_right ( {1'b0} ), - .j1_lx ( {1'b0}), .j1_ly ( {1'b0} ), - .j1_rx ( {1'b0}), .j1_ry ( {1'b0} ), + .j1_up ( j1_up ), .j1_down ( j1_down ), + .j1_left ( j1_left ), .j1_right ( j1_right ), + .j1_lx ( j1_lx ), .j1_ly ( j1_ly ), + .j1_rx ( j1_rx ), .j1_ry ( j1_ry ), + // .j1_up ( {1'b0}), .j1_down ( {1'b0} ), + // .j1_left ( {1'b0}), .j1_right ( {1'b0} ), + // .j1_lx ( {1'b0}), .j1_ly ( {1'b0} ), + // .j1_rx ( {1'b0}), .j1_ry ( {1'b0} ), //Player 2 .p2_up ( p2_up ), .p2_down ( p2_down ), .p2_left ( p2_left ), .p2_right ( p2_right ), @@ -878,14 +876,14 @@ module core_top .p2_l2 ( p2_btn_l2 ), .p2_r2 ( p2_btn_r2 ), .p2_l3 ( p2_btn_l3 ), .p2_r3 ( p2_btn_r3 ), .p2_se ( p2_select ), .p2_st ( p2_start ), - // .j2_up ( j2_up ), .j2_down ( j2_down ), - // .j2_left ( j2_left ), .j2_right ( j2_right ), - // .j2_lx ( j2_lx ), .j2_ly ( j2_ly ), - // .j2_rx ( j2_rx ), .j2_ry ( j2_ry ), - .j2_up ( {1'b0}), .j2_down ( {1'b0}), - .j2_left ( {1'b0}), .j2_right ( {1'b0}), - .j2_lx ( {1'b0}), .j2_ly ( {1'b0}), - .j2_rx ( {1'b0}), .j2_ry ( {1'b0}), + .j2_up ( j2_up ), .j2_down ( j2_down ), + .j2_left ( j2_left ), .j2_right ( j2_right ), + .j2_lx ( j2_lx ), .j2_ly ( j2_ly ), + .j2_rx ( j2_rx ), .j2_ry ( j2_ry ), + // .j2_up ( {1'b0}), .j2_down ( {1'b0}), + // .j2_left ( {1'b0}), .j2_right ( {1'b0}), + // .j2_lx ( {1'b0}), .j2_ly ( {1'b0}), + // .j2_rx ( {1'b0}), .j2_ry ( {1'b0}), // Single Player or Alternate 2 Players for Arcade .m_coin ( m_coin ), // Coinage P1 or P2 .m_up ( m_up ), .m_down ( m_down ), // Up/Down @@ -980,8 +978,10 @@ module core_top //! ------------------------------------------------------------------------ wire [3:0] R,G,B; - wire [15:0] PLAYER1 = ~{2'b00, m_up, m_down, m_right, m_left , svc_sw, 4'b0000, m_btn3, m_btn2, m_btn1, m_start1, m_coin}; - wire [15:0] PLAYER2 = ~{2'b00, m_up, m_down, m_right, m_left , svc_sw, 4'b0000, m_btn3, m_btn2, m_btn1, m_start2, m_coin}; + // wire [15:0] PLAYER1 = ~{2'b00, m_up, m_down, m_right, m_left , svc_sw, 4'b0000, m_btn3, m_btn2, m_btn1, m_start1, m_coin}; + // wire [15:0] PLAYER2 = ~{2'b00, m_up, m_down, m_right, m_left , svc_sw, 4'b0000, m_btn3, m_btn2, m_btn1, m_start2, m_coin}; + wire [15:0] PLAYER1 = ~{2'b00, p1_up, p1_down, p1_right, p1_left , svc_sw, 4'b0000, p1_btn_a, p1_btn_b, p1_btn_y, p1_start, p1_select}; + wire [15:0] PLAYER2 = ~{2'b00, p2_up, p2_down, p2_right, p2_left , svc_sw, 4'b0000, p2_btn_a, p2_btn_b, p2_btn_y, p2_start, p2_select}; //To enter service mode: //tnk3: keep 1 pressed during boot