Skip to content

Added Analogizer, VRC7 and PAL ROM support #56

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

RndMnkIII
Copy link

@RndMnkIII RndMnkIII commented Mar 11, 2025

Hi, this huge PR contains several commits. Basically, the core is pre-prepared for Analogizer support (enable/disable dejitter, and native Zapper support). Once this is done, Analogizer's own features are added, and the PLL needs to be modified to add a new clock output for Analogizer and the Y/C module. A later commit adds Chip32 support and adds a number of parameters to control which modules are added to the core in the bitstream, this reduction in logic resources per bitstream allows to enable the VRC7 mapper. During this process, it is also necessary to reduce the logical resource consumption to make room for all the necessary functionality. Finally, some corrections need to be made to the Analogizer video YC module, a refactored parameterized PLL module and a script needs to be added to generate output files from the command line with quartus_sh. A final modification was added to interact.json to enable/disable Analogizer globally.

This changes are made to allow to use some special features relevant for Analogizer: native Zapper Lightgun, Enable/Disable DeJitter timing and use additional clock for video DAC.
At the end I'm forced to change some things in the Analogizer side to leave some logic resources shifting to BRAM when is possible. Also I've shorten the vector width in case sentences to the minimal. the last thing was to remove synchronizer for the interact.json settings, only keep sync the external_reset signal to avoid glitches on this vital signal.
I have further reduced the resources consumed by the Analogizer framework by taking advantage of the fact that the video output is 18bits instead of 24bits. I have also added a TCL script and the Windows Powershell launcher file to generate the different bitstreams from the command line. The PLL used for NTSC/PAL timing is the same (nes_pll) but the clock speed settings are adjusted based on a parameter (USE_PAL_PLL). See the build_and_install_instructions.txt file for more information on this and the generate.tcl script.
… Core Menu

Fixed Analogizer Y/C and added Enable Analogizer global switch to the Core Menu
@RndMnkIII RndMnkIII changed the title Added Analogizer and PAL ROM support Added Analogizer, VRC7 and PAL ROM support Mar 11, 2025
added bitstreams files
fix bridge address for Analogizer enable option
fixed interact.json
Added new behavior when Analogizer is disabled globally, SNAC controller selection settings are ignored and the Pocket's default controls are assigned (either the Pocket's own controls or controllers connected via the Dock).
Added support for regional settings from analogizer.bin
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant