Skip to content

Commit

Permalink
support two player with independent joy controls instead shared controls
Browse files Browse the repository at this point in the history
support two player with independent joy controls instead shared
  • Loading branch information
RndMnkIII committed Nov 14, 2023
1 parent 219343a commit 376a638
Show file tree
Hide file tree
Showing 11 changed files with 144 additions and 70 deletions.
Binary file modified .build/alphamission.rbf_r
Binary file not shown.
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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.
Expand Down
Binary file added pkg/pocket/Platforms/_images/alphamission.bin
Binary file not shown.
Binary file modified pkg/pocket/Platforms/_images/alphamission.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions platform/pocket/megafunctions/mf_audio_pll.ppf
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<pinplan
variation_name="mf_audio_pll"
megafunction_name="ALTERA_PLL"
intended_family="Cyclone V"
specifies="all_ports">
<global>
<pin name="refclk" direction="input" scope="external" />
<pin name="rst" direction="input" scope="external" />
<pin name="outclk_0" direction="output" scope="external" />
<pin name="outclk_1" direction="output" scope="external" />
<pin name="locked" direction="output" scope="external" />
</global>
</pinplan>
20 changes: 10 additions & 10 deletions platform/pocket/megafunctions/mf_audio_pll.qip
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
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"
set_global_assignment -entity "mf_audio_pll" -library "mf_audio_pll" -name IP_GENERATED_DEVICE_FAMILY "{Cyclone V}"
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"
Expand Down Expand Up @@ -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"
8 changes: 4 additions & 4 deletions platform/pocket/megafunctions/mf_audio_pll.v
Original file line number Diff line number Diff line change
@@ -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 (
Expand Down Expand Up @@ -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: <instance entity-name="altera_pll" version="17.1" >
// Retrieval info: <instance entity-name="altera_pll" version="18.0" >
// Retrieval info: <generic name="debug_print_output" value="false" />
// Retrieval info: <generic name="debug_use_rbc_taf_method" value="false" />
// Retrieval info: <generic name="device_family" value="Cyclone V" />
// Retrieval info: <generic name="device" value="5CEBA2F17A7" />
// Retrieval info: <generic name="gui_device_speed_grade" value="1" />
// Retrieval info: <generic name="gui_device_speed_grade" value="2" />
// Retrieval info: <generic name="gui_pll_mode" value="Fractional-N PLL" />
// Retrieval info: <generic name="gui_reference_clock_frequency" value="74.25" />
// Retrieval info: <generic name="gui_channel_spacing" value="0.0" />
Expand Down
71 changes: 65 additions & 6 deletions projects/alphamission_pocket.qsf
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -54,24 +54,83 @@ 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
# ==============================================================================
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
Loading

0 comments on commit 376a638

Please sign in to comment.