• Stars
    star
    109
  • Rank 319,077 (Top 7 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created about 3 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tool for installing and updating MiSTer cores and other files

MiSTer Downloader

This tool installs and updates all the cores and other extra files for your MiSTer. It also updates the menu core, the MiSTer firmware and the Linux system. The source for all downloads is the MiSTer Distribution repository.

Setup and Usage

Download this ZIP file and extract downloader.sh to your /Scripts folder on your primary SD card (create that folder if it doesn't exist). You only need to perform this operation once, since this tool self-updates itself.

To use it, on your MiSTer main menu, go to the Scripts screen, and select downloader.

Options

You may create a /media/fat/downloader.ini file to tweak some parameters.

Here you can see the default parameters and the options that you may change:

[MiSTer]
; storage_priority defines how this tool will use external storage during the installation
;         of files that are designed for external locations (usually games & docs files).
;         
;         * Examples of external storage are USB Drives or CIFS partitions detected by MiSTer.
;
;         * When you have more than one external storage, the one used will be determined
;           by the first path match following the path priority described here:
;             https://mister-devel.github.io/MkDocs_MiSTer/cores/paths/
;
; Options:
;   'prefer_sd' -> This tool will install new files on a external location if a parent folder
;                  is present. (Parent folder examples: games/NES, docs/AO486)
;
;   'prefer_external' -> This tool will always install new files on a external location
;                        even if no parent folders are present.
;
;   'off' -> Disables this feature. Affected files will always be installed in your SD.
storage_priority = 'prefer_sd'

; allow_delete options:
;   0 -> Don't allow this tool to delete anything at all.
;   1 -> Allow this tool to delete any old file from previous updates.
;   2 -> Allow this tool to delete only old cores that receive a new version.
allow_delete = 1

; allow_reboot options:
;   0 -> Don't allow this tool to ever reboot automatically.
;   1 -> Allow this tool to reboot the system after any system file has been updated.
;   2 -> Allow this tool to reboot the system only after Linux has been updated.
allow_reboot = 1

; update_linux options:
;   true -> Updates Linux when there is a new update (very recommended).
;   false -> Doesn't update Linux.
update_linux = true

; minimum_system_free_space_mb: Fee space needed to install files with Downloader
;   This minimum applies solely to the system partition (SD card).
;   Reducing this value is not advised.
minimum_system_free_space_mb = 512

; minimum_external_free_space_mb: Free space needed to install files in external storages
;   This minimum applies to all external storages (USBs & CIFS).
;   Reducing this value is not advised.
minimum_external_free_space_mb = 128

; downloader_timeout: Can be tweaked to increase the timeout time in seconds
;   It is useful to increase this value for users with slow connections.
downloader_timeout = 300

; downloader_retries: Can be tweaked to increase the retries per failed download
;   It is useful to increase this value for users with very unstable connections.
downloader_retries = 3

; verbose: when true, will make Downloader output to display additional debug information
;   This is also necessary to be active to display benchmark information.
verbose = false

Roadmap

  • Initial Release
  • Cheats fetching
  • First-run optimisations
  • Configurable custom download filters
  • Storage Priority Resolution for auto-detecting connected drives
  • Free space check
  • Uninstall database feature
  • Integration with MiSTer binary

Check the CHANGELOG for more information about past releases.

PC Launcher (for Windows, Mac, and Linux)

With this different launcher you'll be able to install all MiSTer files without using a MiSTer. This is especially useful if your MiSTer can't access the internet.

Learn how to use the PC Launcher here.

Custom Download Filters

With download filters, users will be able to opt-out from installing files that they don't want in their system, like for example, cheats or readme files.

Example:

This filter will only install console cores, while avoiding all related cheats and documentation files.

More information about Download Filters here.

Custom Databases

Custom Databases give users the ability to download more file collections.

NOTE: If you manually add custom databases, you might want to make sure that you also have a [distribution_mister] section. That way you'll still be downloading the content from MiSTer Distribution together with the content from the custom database/s that you introduced.

Custom INI file

You can use a different INI file by renaming the launcher downloader.sh to your preferred name. After renaming the launcher, it will use an INI file with the same name but with the .ini extension. For instance, if you rename the launcher to /media/fat/Scripts/my_custom_name.sh, it will use the INI file /media/fat/my_custom_name.ini instead of /media/fat/downloader.ini.

This flexibility allows for various use cases, such as running a specific database in isolation.

How to avoid executing remote code altogether

If you're concerned about executing a build that the launcher fetches from the web, you can avoid this by manually installing the latest version of Downloader's build. Just get this file and save it at /media/fat/Scripts/.config/downloader/downloader_latest.zip (remember to rename the file as instructed). You can verify the file's integrity using the provided MD5 checksum here.

If not done manually, the launcher will automatically install that build on its first run. This auto-installation occurs only once and is designed to be secure.

Supporters+ shout-out!

Daniel Tarsky, James D Eberhart, Koala Koa, MiSTerFPGA.co.uk, Tony Escobar, turbochop3300 and Wayne Booker

Thank you so much for supporting this project! If you would like to show up here, join us as Supporter+ on Patreon:

More Repositories

1

Main_MiSTer

Main MiSTer binary and Wiki
C
2,805
star
2

ao486_MiSTer

ao486 port for MiSTer
Verilog
264
star
3

mr-fusion

Mr. Fusion - Universal MiSTer SD card image
Shell
263
star
4

PSX_MiSTer

PSX for MiSTer
VHDL
212
star
5

SNES_MiSTer

SNES for MiSTer
VHDL
196
star
6

Hardware_MiSTer

Daughter boards
HTML
191
star
7

NES_MiSTer

SystemVerilog
169
star
8

NeoGeo_MiSTer

NeoGeo for MiSTer
Verilog
145
star
9

GBA_MiSTer

GBA for MiSTer
VHDL
144
star
10

Minimig-AGA_MiSTer

Verilog
121
star
11

Genesis_MiSTer

Sega Genesis for MiSTer
Verilog
118
star
12

Wiki_MiSTer

115
star
13

Gameboy_MiSTer

Gameboy for MiSTer
Verilog
103
star
14

TurboGrafx16_MiSTer

TurboGrafx-16 CD / PC Engine CD for MiSTer
VHDL
94
star
15

C64_MiSTer

SystemVerilog
93
star
16

Distribution_MiSTer

This repository contains all the files that you'll want in your MiSTer
Shell
90
star
17

Arcade-Cave_MiSTer

MiSTer arcade core for Cave 68K arcade classics.
Verilog
77
star
18

Template_MiSTer

Template with latest framework for MiSTer
Verilog
75
star
19

Updater_script_MiSTer

Bash script for updating MiSTer
Shell
75
star
20

SD-Installer-Win64_MiSTer

MiSTer SD card installer (Windows 64bit)
72
star
21

Scripts_MiSTer

Miscellaneous Bash scripts for MiSTer
Shell
63
star
22

X68000_MiSTer

Sharp X68000 for MiSTer
VHDL
56
star
23

MegaCD_MiSTer

Mega CD for MiSTer
Verilog
56
star
24

S32X_MiSTer

Sega 32X implementation for MiSTer
SystemVerilog
54
star
25

Saturn_MiSTer

Sega Saturn for MiSTer
SystemVerilog
54
star
26

MkDocs_MiSTer

MiSTer FPGA Documentation site built using Material for MkDocs.
HTML
53
star
27

MegaDrive_MiSTer

Sega Megadrive for MiSTer
Verilog
46
star
28

MiSTerLaggy_MiSTer

A display latency measurement tool
Verilog
44
star
29

C128_MiSTer

Verilog
42
star
30

SMS_MiSTer

Sega Master System for MiSTer
VHDL
40
star
31

N64_MiSTer

VHDL
38
star
32

Menu_MiSTer

Verilog
37
star
33

Apple-II_MiSTer

Apple II+ for MiSTer
VHDL
36
star
34

Filters_MiSTer

Custom Filters for MiSTer's HDMI Scaler
MATLAB
35
star
35

MSX_MiSTer

MSX for MiSTer
VHDL
35
star
36

Fonts_MiSTer

Fonts for MiSTer
Python
34
star
37

MacPlus_MiSTer

Macintosh Plus for MiSTer
SystemVerilog
32
star
38

Atari2600_MiSTer

Atari 2600 for MiSTer
VHDL
31
star
39

AtariST_MiSTer

Atari ST/STe for MiSTer
Verilog
27
star
40

ZXNext_MISTer

VHDL
27
star
41

Atari800_MiSTer

Atari 800XL/65XE/130XE for MiSTer
VHDL
24
star
42

Archie_MiSTer

Acorn Archimedes for MiSTer
Verilog
21
star
43

Amstrad_MiSTer

Amstrad CPC 6128 for MiSTer
VHDL
21
star
44

TI-99_4A_MiSTer

Texas Instrument 99/4A Home Computer
VHDL
20
star
45

Arcade-Pacman_MiSTer

Arcade: Pacman for MiSTer
VHDL
20
star
46

MemTest_MiSTer

Verilog
19
star
47

Arcade-DonkeyKong_MiSTer

Arcade: Donkey Kong for MiSTer
VHDL
19
star
48

PC88_MiSTer

NEC PC8801 MKII SR For MiSTer
VHDL
19
star
49

BBCMicro_MiSTer

BBC Micro B and Master 128K for MiSTer
VHDL
19
star
50

PDP1_MiSTer

PDP-1 for MiSTer
Verilog
18
star
51

Arcade-IremM92_MiSTer

VHDL
17
star
52

MSX1_MiSTer

Computer MSX1
VHDL
17
star
53

Linux_Image_creator_MiSTer

Shell
17
star
54

TRS-80_MiSTer

Tandy TRS-80 Model I (port of HT1080Z to MiSTer)
VHDL
16
star
55

ShadowMasks_MiSTer

HDMI Shadow Masks
16
star
56

Arcade-IremM72_MiSTer

C++
15
star
57

Arcade-GnG_MiSTer

Arcade Ghosts'n Goblins for MiSTer
Verilog
15
star
58

Arcade-Raizing_MiSTer

Bakraid, Batrider, Garegga, Kingdom Grandprix & Sorcer Striker MiSTer Cores
Verilog
15
star
59

VIC20_MiSTer

Commodore VIC-20 for MiSTer
VHDL
14
star
60

N64_ROM_Database

A database of rom metadata for properly handling N64 games.
13
star
61

AtariLynx_MiSTer

VHDL
13
star
62

Linux-Kernel_MiSTer

C
12
star
63

C16_MiSTer

Commodore C16 and Plus/4 for MiSTer
SystemVerilog
12
star
64

GnW_MiSTer

MiSTer Port of Game and Watch Games
Verilog
12
star
65

Presets_MiSTer

A collection of preset video configurations for MiSTer.
12
star
66

Arcade-Galaga_MiSTer

Arcade: Galaga for MiSTer
VHDL
12
star
67

WonderSwan_MiSTer

WonderSwan Color for MiSTer
VHDL
12
star
68

Arduboy_MiSTer

Arduboy core for MiSTer, based on Iulian Gheorghiu's atmega core.
Verilog
12
star
69

Arcade-Tecmo_MiSTer

MiSTer arcade core for Tecmo arcade classics: Rygar (1986), Gemini Wing (1987), and Silkworm (1988).
VHDL
12
star
70

Intv_MiSTer

Intellivision for MiSTer
VHDL
11
star
71

Vectrex_MiSTer

Vectrex for MiSTer
VHDL
11
star
72

QL_MiSTer

Sinclair QL for MiSTer
VHDL
11
star
73

CoCo3_MiSTer

CoCo3FPGA port to MiSTer
VHDL
11
star
74

Arcade-Centipede_MiSTer

Arcade: Centipede
C++
11
star
75

EDSAC_MiSTer

FPGA Verilog implementation of 1949 EDSAC Computer with animated tape reader, panel, teleprinter and CRT scope
Verilog
11
star
76

Arcade-Galaxian_MiSTer

Arcade: Galaxian for MiSTer
VHDL
11
star
77

PET2001_MiSTer

Commodore PET for MiSTer
Verilog
10
star
78

MultiComp_MiSTer

Port of Grant Searle's MultiComp to the MiSTer
Assembly
10
star
79

AliceMC10_MiSTer

Matra-Hachette Alice MC-10 for MiSTer FPGA
Verilog
10
star
80

Arcade-TaitoSystemSJ_MiSTer

Taito System SJ Arcade Core
VHDL
9
star
81

Apple-I_MiSTer

Apple I for MiSTer
Verilog
9
star
82

Arcade-1943_MiSTer

CAPCOM's 1943 arcade clone. (port of JT1943 core)
Verilog
9
star
83

Arcade-Scramble_MiSTer

Arcade: Scramble for MiSTer
VHDL
9
star
84

Arcade-IremM62_MiSTer

Irem62 from pace, and mist including Lode Runner, etc
VHDL
9
star
85

Hardware_alternative

128MB sdram module, horizontal. Fits on official IO addon
9
star
86

SD-InstallTool_Win_MiSTer

SD Card preparation tool for MiSTer FPGA project
C#
9
star
87

SharpMZ_MiSTer

Sharp MZ Series Personal/Business Computer Emulator for FPGA
VHDL
8
star
88

Arcade-BurgerTime_MiSTer

Arcade: Burger Time for MiSTer
Verilog
8
star
89

Arcade-Defender_MiSTer

Arcade: Defender for MiSTer
VHDL
8
star
90

MRA-Alternatives_MiSTer

Alternative (hacks, other versions) MRA files for arcade cores
8
star
91

Amstrad-PCW_MiSTer

Amstrad PCW MiSTer core
Verilog
8
star
92

Arcade-BombJack_MiSTer

Arcade: Bomb Jack for MiSTer
VHDL
8
star
93

xow_MiSTer

Linux driver for the Xbox One wireless dongle compiled for MiSTer
Shell
8
star
94

Life_MiSTer

Conway's Game of Life for MiSTer
Verilog
7
star
95

AY-3-8500-MiSTer

Port of AY-3-8500 to MiSTer
Verilog
7
star
96

Chess_MiSTer

VHDL
7
star
97

Arcade-SEGASYS1_MiSTer

Sega System 1 for MiSTer
Verilog
7
star
98

BK0011M_MiSTer

Verilog
7
star
99

ColecoVision_MiSTer

ColecoVision for MiSTer
VHDL
7
star
100

Arcade-MrDo_MiSTer

Mr. Do! Universal 1982
Verilog
7
star