MiSTer FPGA: Difference between revisions

From Zaparoo Wiki

No edit summary
m Text replacement - "TapScript" to "ZapScript"
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
[https://mister-devel.github.io/MkDocs_MiSTer/ MiSTer FPGA] is an open source project which emulates retro console, computers and arcade machines using an FPGA board called the DE10-Nano. MiSTer is fully supported by Zaparoo as a platform, and originally started as a project on MiSTer. Zaparoo has several [[ZapScript#MiSTer|MiSTer-exclusive commands]] because of this.
== Installation ==
== Installation ==
Download [https://github.com/wizzomafizzo/tapto/releases/latest/ TapTo] and copy it to the <code>Scripts</code> folder on your MiSTer's SD card.
Download [https://github.com/wizzomafizzo/tapto/releases/latest/ Zaparoo] and copy it to the <code>Scripts</code> folder on your MiSTer's SD card.


Once installed, run <code>tapto</code> from the MiSTer <code>Scripts</code> menu, a prompt will offer to enable TapTo as a startup service, then the service will be started in the background.
Once installed, run <code>tapto</code> from the MiSTer <code>Scripts</code> menu, a prompt will offer to enable Zaparoo as a startup service, then the service will be started in the background.


After the initial setup is complete, a status display will be shown. It's OK to exit this screen, the service will continue to run in the background.
After the initial setup is complete, a status display will be shown. It's OK to exit this screen, the service will continue to run in the background.


=== Downloader and Update All ===
=== Downloader and Update All ===
TapTo is available in [https://github.com/theypsilon/Update_All_MiSTer Update All] by enabling the <code>MiSTer Extensions</code> repository in the <code>Tools & Scripts</code> menu.
Zaparoo is available in [https://github.com/theypsilon/Update_All_MiSTer Update All] by enabling the <code>MiSTer Extensions</code> repository in the <code>Tools & Scripts</code> menu.


If you only want TapTo, add the following text to the <code>downloader.ini</code> file on your MiSTer:<syntaxhighlight lang="ini">
If you only want Zaparoo, add the following text to the <code>downloader.ini</code> file on your MiSTer's SD card root:<syntaxhighlight lang="ini">
[mrext/tapto]
[mrext/tapto]
db_url = https://github.com/wizzomafizzo/tapto/raw/main/scripts/mister/repo/tapto.json
db_url = https://github.com/ZaparooProject/tapto/raw/main/scripts/mister/repo/tapto.json
</syntaxhighlight>
</syntaxhighlight>
=== Main Alternative ===
An alternative version of the MiSTer Main application is also available by [https://aitorgomez.net/ spark2k06], which adds many great TapTo related features to the core of MiSTer. It's already being used by many people in the community, and is easy to install.


Features include:
== Known Issues ==
 
* Zaparoo can have conflicts with other devices that use serial USB connections such as the [https://github.com/venice1200/MiSTer_tty2oled tty2oled project] and anything else using an Arduino board. Current workaround is to disable [[Config File (tapto.ini)#Device Auto-detection (probe device)|probe_devices in the tapto.ini]] file and manually set the [[Config File (tapto.ini)#Manual Reader Connection (reader)|reader path]].
 
== Alternate Launchers ==
Zaparoo supports using an explicitly set alternate launcher (core) per token. At the end of a launch command, add the text: <code>?launcher=<launcher ID></code>


* Rich game loading screens, show cover art on screen when a game is launched.
Note that these cores are launched using their default paths as installed by Update All. They won't work if moved or renamed. These alternate launchers are supported:
* Custom TapTo standby screen when waiting for a token to be inserted.
{| class="wikitable"
* Detection of TapTo in settings and status icons of main menu.
|+
* TapTo integration with ao486 and PCXT cores.
!Type
* New MGL file tags for customising loading experience.
!Launcher IDs
!Notes
|-
|LLAPI
|LLAPIAtari2600, LLAPIAtari7800, LLAPIGameboy, LLAPIGBA, LLAPIMegaDrive, LLAPISMS, LLAPIMegaCD, LLAPINeoGeo, LLAPINES, LLAPINintendo64, LLAPI80MHzNintendo64, LLAPIPSX, LLAPIS32X, LLAPISuperGameboy, LLAPISaturn, LLAPISNES, LLAPITurboGrafx16
|Bliss-Box LLAPI cores. Alternate Arcade cores can be referenced directed with their .mra files.
|-
|PWM
|PWMNintendo64, PWM80MHzNintendo64, PWMPSX, PWM2XPSX, PWMSaturn
|24-bit video PWM cores.
|-
|Overclock
|80MHzNintendo64, 2XPSX
|Robert's experimental overclock cores.
|-
|Sinden
|SindenGenesis, SindenMegaDrive, SindenSMS, SindenMegaCD, SindenNES, SindenPSX, SindenSNES
|Sinden Lightgun cores. Cores must be moved to the <code>_Sinden</code> folder at the top of the SD card.
|}


Please check [https://github.com/spark2k06/Main_MiSTer spark2k06's repository] for more details.
== Main Alternatives ==


It can be installed and updated automatically through Downloader by changing the <code>[distribution_mister]</code> section of <code>downloader.ini</code> like this:<syntaxhighlight lang="ini">
=== aitorgomez ===
[distribution_mister]
[[File:GomezLoadingscreen.png|thumb|Example of Zaparoo features in fork]]
db_url = https://aitorgomez.net/static/mistermain/db.json.zip
An alternative version of MiSTer Main is available by [https://aitorgomez.net/ spark2k06], which adds many great Zaparoo related features to the core of MiSTer:
</syntaxhighlight>This will not affect any other system files besides the Main binary.


=== Hardware Setup ===
* Show status of connected reader as icon in top bar.
Your reader may work out of the box with no extra configuration. Run <code>tapto</code> from the <code>Scripts</code> menu, plug it in, and check if it shows as connected in the log view.
* Zaparoo standby screen.
* Box art on game load.
* Many additional MGL features.


If TapTo is unable to auto-detect your device, it may be necessary to manually configure the reader setting:<syntaxhighlight lang="ini">
Please check [https://github.com/spark2k06/Main_MiSTer spark2k06's repository] for more details.
[tapto]
reader="pn532_uart:/dev/ttyUSB0"
</syntaxhighlight>Be aware the ttyUSB0 part may be different if you have other devices connected such as [https://github.com/venice1200/MiSTer_tty2oled tty2oled]. For a list of possible devices try:


<code>ls /dev/serial/by-id</code> or <code>ls /dev | grep ttyUSB</code>
=== Insert-Coin ===
An alternative version of MiSTer Main is also available by [https://github.com/funkycochise funkycochise] as part of the [https://github.com/funkycochise/Insert-Coin Insert-Coin project]. This version includes a feature to hide the loading screen before cores start games, which works great with Zaparoo!


== Mappings Database ==
== Legacy Mappings Database ==
{{Warn|The nfc.csv is deprecated and will only ever be supported on the MiSTer platform. It will continue working for the immediate future, but it won't support any new mappings features. It's recommended to use the new mappings database instead.}}
{{Warn|The nfc.csv is deprecated and will only ever be supported on the MiSTer platform. It will continue working for the immediate future, but it won't support any new mappings features. It's recommended to use the new mappings database instead.}}
TapTo supports an <code>nfc.csv</code> file in the top of the SD card. This file can be used to override the text read from a tag and map it to a different text value. This is useful for mapping Amiibos which are read-only, testing text values before actually writing them, and is necessary for using the <code>command</code> custom command by default.
Zaparoo supports an <code>nfc.csv</code> file in the top of the SD card. This file can be used to override the text read from a tag and map it to a different text value. This is useful for mapping Amiibos which are read-only, testing text values before actually writing them, and is necessary for using the <code>command</code> custom command by default.
 
Create a file called <code>nfc.csv</code> in the top of the SD card, with this as the header: <code>match_uid,match_text,text</code>


Create a file called <code>nfc.csv</code> in the top of the SD card, with this as the header:
You'll then need to either power cycle your MiSTer or restart the Zaparoo service.
<code>match_uid,match_text,text</code>
You'll then need to either power cycle your MiSTer or restart the TapTo service.


After the file is created, the service will automatically reload it every time it's updated.
After the file is created, the service will automatically reload it every time it's updated.


Here's an example <code>nfc.csv</code> file that maps several Amiibos to different functions:
Here's an example <code>nfc.csv</code> file that maps several Amiibos to different functions:<syntaxhighlight>
<code>match_uid,match_text,text
match_uid,match_text,text
04e5c7ca024980,,**command:reboot
04e5c7ca024980,,**command:reboot
04078e6a724c80,,_#Favorites/Final Fantasy VII.mgl
04078e6a724c80,,_#Favorites/Final Fantasy VII.mgl
041e6d5a983c80,,_#Favorites/Super Metroid.mgl
041e6d5a983c80,,_#Favorites/Super Metroid.mgl
041ff6ea973c81,,_#Favorites/Legend of Zelda.mgl</code>
041ff6ea973c81,,_#Favorites/Legend of Zelda.mgl
Only one <code>match_</code> column is required for an entry, and the <code>match_uid</code> can include colons and uppercase characters. You can get the UID of a tag by checking the output in the <code>taptui</code> Script display or on your phone.
</syntaxhighlight>Only one <code>match_</code> column is required for an entry, and the <code>match_uid</code> can include colons and uppercase characters. You can get the UID of a tag by checking the output in the <code>taptui</code> Script display or on your phone.

Latest revision as of 00:12, 30 November 2024

MiSTer FPGA is an open source project which emulates retro console, computers and arcade machines using an FPGA board called the DE10-Nano. MiSTer is fully supported by Zaparoo as a platform, and originally started as a project on MiSTer. Zaparoo has several MiSTer-exclusive commands because of this.

Installation

Download Zaparoo and copy it to the Scripts folder on your MiSTer's SD card.

Once installed, run tapto from the MiSTer Scripts menu, a prompt will offer to enable Zaparoo as a startup service, then the service will be started in the background.

After the initial setup is complete, a status display will be shown. It's OK to exit this screen, the service will continue to run in the background.

Downloader and Update All

Zaparoo is available in Update All by enabling the MiSTer Extensions repository in the Tools & Scripts menu.

If you only want Zaparoo, add the following text to the downloader.ini file on your MiSTer's SD card root:

[mrext/tapto]
db_url = https://github.com/ZaparooProject/tapto/raw/main/scripts/mister/repo/tapto.json

Known Issues

Alternate Launchers

Zaparoo supports using an explicitly set alternate launcher (core) per token. At the end of a launch command, add the text: ?launcher=<launcher ID>

Note that these cores are launched using their default paths as installed by Update All. They won't work if moved or renamed. These alternate launchers are supported:

Type Launcher IDs Notes
LLAPI LLAPIAtari2600, LLAPIAtari7800, LLAPIGameboy, LLAPIGBA, LLAPIMegaDrive, LLAPISMS, LLAPIMegaCD, LLAPINeoGeo, LLAPINES, LLAPINintendo64, LLAPI80MHzNintendo64, LLAPIPSX, LLAPIS32X, LLAPISuperGameboy, LLAPISaturn, LLAPISNES, LLAPITurboGrafx16 Bliss-Box LLAPI cores. Alternate Arcade cores can be referenced directed with their .mra files.
PWM PWMNintendo64, PWM80MHzNintendo64, PWMPSX, PWM2XPSX, PWMSaturn 24-bit video PWM cores.
Overclock 80MHzNintendo64, 2XPSX Robert's experimental overclock cores.
Sinden SindenGenesis, SindenMegaDrive, SindenSMS, SindenMegaCD, SindenNES, SindenPSX, SindenSNES Sinden Lightgun cores. Cores must be moved to the _Sinden folder at the top of the SD card.

Main Alternatives

aitorgomez

Example of Zaparoo features in fork

An alternative version of MiSTer Main is available by spark2k06, which adds many great Zaparoo related features to the core of MiSTer:

  • Show status of connected reader as icon in top bar.
  • Zaparoo standby screen.
  • Box art on game load.
  • Many additional MGL features.

Please check spark2k06's repository for more details.

Insert-Coin

An alternative version of MiSTer Main is also available by funkycochise as part of the Insert-Coin project. This version includes a feature to hide the loading screen before cores start games, which works great with Zaparoo!

Legacy Mappings Database

The nfc.csv is deprecated and will only ever be supported on the MiSTer platform. It will continue working for the immediate future, but it won't support any new mappings features. It's recommended to use the new mappings database instead.

Zaparoo supports an nfc.csv file in the top of the SD card. This file can be used to override the text read from a tag and map it to a different text value. This is useful for mapping Amiibos which are read-only, testing text values before actually writing them, and is necessary for using the command custom command by default.

Create a file called nfc.csv in the top of the SD card, with this as the header: match_uid,match_text,text

You'll then need to either power cycle your MiSTer or restart the Zaparoo service.

After the file is created, the service will automatically reload it every time it's updated.

Here's an example nfc.csv file that maps several Amiibos to different functions:

match_uid,match_text,text
04e5c7ca024980,,**command:reboot
04078e6a724c80,,_#Favorites/Final Fantasy VII.mgl
041e6d5a983c80,,_#Favorites/Super Metroid.mgl
041ff6ea973c81,,_#Favorites/Legend of Zelda.mgl

Only one match_ column is required for an entry, and the match_uid can include colons and uppercase characters. You can get the UID of a tag by checking the output in the taptui Script display or on your phone.