This core is a analog GPU for CRTs aiming for very low subframe latency
- Very low latency (~3ms tested with GILT on GroovyMAME with frame delay 8)
- RGB888/RGB565/RGBA888 blitting
- Switch all modes (progressive/interlaced) reprogramming pll according to modeline
- Connect with GB ethernet (direct connection recommended)
- Audio stream
- Inputs stream (keyboard, mouse, 2 joypads)
- Native LZ4 uncompress on FPGA
- History
- Copy MiSTer_groovy to /media/fat
- Copy Groovy.rbf to /media/fat/_Utility
- Edit MiSTer.ini and add custom binary at end of file
[Groovy]
main=MiSTer_groovy
- Replace kernel: zImage_dtb file on /media/fat/linux (is same kernel with some patches for eth0 driver and builded with CONFIG_XDP_SOCKETS=Y)
- Save groovy_xdp_kern.o to /usr/lib/arm-linux-gnueabihf/bpf (this program will be injected on eth while xdp is running)
- Save libelf.so.1 on /usr/lib (library requiered)
- On MiSTer.ini change binary from MiSTer_groovy to MiSTer_groovy_XDP
MAME fork by @Calamity, download mame_mister.ini and rename to mame.ini
-video mister
-aspect 4:3
-switchres
-monitor arcade_15
-mister_window
-mister_ip "192.x.x.x"
-mister_compression lz4
-skip_gameinfo
-syncrefresh
-nothrottle
-nomister_interlaced_fb (from 0.264)
-joystickprovider mister (from 0.264, analog joysticks from 0.266)
-keyboardprovider mister (from 0.266)
-mouseprovider mister (from 0.266)
*Automatic frame delay is applied with frame delay 0
-mister_fd_margin 1.5/2.0/3.0 (applies a safe margin with ms to auto frame delay)
*Change "uifont default" to "uifont uismall.bdf" on mame.ini for pixel perfect menu
*autosync 0 on mame.ini for menu (60hz)
*MAC builds from https://github.com/djfumberger/GroovyMAME/releases/tag/2024Jan19
Mednafen fork, on mednafen.cfg set:
mister.host 192.x.x.x
mister.lz4 1 (0-raw, 1-lz4, 2-lz4hc, 3-lz4 adaptative)
mister.vsync 0 (0 for automatic frame delay or line do you want to sync)
mister.mtu 1500 (3800 for jumbo frames)
mister.interlaced_fb 1 (0 for force progressive framebuffer with interlaced modes)
video.resolution_switch mister
Retroarch fork, on retroarch.cfg set (note: these lines has to exists on retroarch.cfg):
mister_ip = "192.x.x.x"
mister_lz4 = "1" (0-raw, 1-lz4, 2-lz4hc, 3-adaptative)
crt_switch_resolution = "4" (switchres.ini custom file)
crt_switch_resolution_super = "0"
aspect_ratio_index = "22" (core provided)
video_mister_enable = "true"
video_vsync = "false"
mister_scanlines = "true"
mister_force_rgb565 = "false" (activate it when bandwidth problems)
mister_interlaced_fb = "true"
input_driver = "mister" (for input keyboard/mouse connected on MiSTer)
input_joypad_driver = "mister" (for input controllers connected on MiSTer)
menu_driver = "rgui" (it's the only menu supported)
vrr_runloop_enable = "true" (better performance for flycast)
audio_sync = "false" (better performance for flycast)
mister_mtu = "1500" (for enable jumbo frame, 3800 is allowed)
*Automatic frame delay for best results on latency options
*For dosbox core, set 60fps on core options.
*Hardware cores only works with glcore/vulkan (framebuffer for flycast is recommended on core options)
*For run a core from command line -> retroach.exe -L cores/xxxx.dll file
86box4crt fork, on 86box.cfg set:
vid_mister = 1
vid_mister_ip = 192.x.x.x
joystick_0_nr = #number of joystick connected. MiSTer joysticks have numbers after PC ones.
vid_mister_lz4 = 1 (default)
vid_mister_interlaced_fb = 0 (default)
vid_mister_mtu = 0 (default, 1 for jumbo)
*Tested with arcade_15 monitor on switchres.ini (use scandoubler for a 31khz monitor)
*Hacked mode 13h to get sync with 60hz instead of 70hz (no tearing)
*For see a log file, run with >log.txt
New submenu of graphics options. After emulators starts gamepads from MiSTer can be mapped.
Thanks to @Shane for this great windows utility to mirror desktop.
@Calamity for hard testing core and implement GroovyMAME for it
@sorgelig, for developing and maintaining MiSTer.
@jotego, for analog adjustment module.
GroovyArcade Discord #nogpu
MiSTer Discord #dev-talk
@alanswx for their lessons
@wickerwaka for their tips using ddr
@coolbho3k for their overclock
@Emulators teams: Mednafen, MAME and Retroarch
@alexxnr for testing it and encourage me in the project