The Windows updater is dead - moving to bundled Windows builds

We’ve discussed a bit, and it’s time for the updater to go. It’s Windows only (bad) and noone seems to care about keeping it up to date because it’s a gigantic maintenance burden.

In addition, a much larger part of the userbase is now able to compile stuff for themselves and share builds which makes the updater almost negative in terms of usefulness as it only creates confusion.

I’ve compiled together a “megapack” of sorts which should make it far simpler to start using RetroArch. Ideally, you should be able to select core, Load Game, and done.

  • Phoenix is removed and dead. Get over it. The updater aspect of it is gone, xinput binding is broken, and the few important features missing from RGUI were always covered by CLI for now.
  • libretro cores are bundled. I added the cores which built successfully from libretro-super.
  • Shaders from common-shaders are bundled.
  • The default config file is set up to be more friendly. libretro cores, system dir, autoconfig dir etc is all preconfigured to respective folders.
  • bSNES chip roms are bundled in system/ folder. (Place your BIOSes here).
  • Built from configswap branch, so config swapping in RGUI is supported.

Win32 megapack (20130927): http://themaister.net/retroarch-dl/RetroArch-20130927-Win32-megapack.zip Win64 megapack (20130927): http://themaister.net/retroarch-dl/RetroArch-20130927-Win64-megapack.zip

Here’s the README.txt included.


===================================
RetroArch Windows megapack 20130927
Built from configswap branch
===================================

*Seriously* avoid these things:
- bSNES CPU filters (cannot be set from RGUI).
- XML shaders (cannot be set from RGUI).
- Phoenix GUI (deprecated, it should die).

If you absolutely *must* use these, you can set CPU filters and XML shaders in config.
They are very troublesome and ugly features.
They will not be supported in RGUI.

Phoenix GUI is not included. It is deprecated, breaks with xinput and should in general be avoided.
All config options are still available obviously. See retroarch.cfg. If retroarch.cfg gets overwritten, see retroarch.cfg.clean for the default skeleton config. All relevant config options are explained.

All Phoenix features have their equivalent in either command line or config. It's just a launcher, it doesn't to anything magical.
See retroarch.exe --help.
Some RetroArch features like special ROM loading, netplay and ffmpeg recording are all accessible from CLI.
These features will probably eventually be added to RGUI, but it's not top priority.

===============
libretro cores
===============

I've included all cores which built from libretro-super as of 20130927 with MinGW-w64 4.8.1 POSIX thread.
They're placed in libretro/ directory.

Note that many of these cores are WIP-quality.

=========
Shaders
=========

I've bundled all shaders from common-shaders/ repo.

=======
Input
=======

If you have an xinput-supported gamepad, you should not need to configure input at all. It should work as expected.
If you want to configure input for obscure systems which don't map well to the RetroPad,
it is recommended you create an autoconfig for your device.

    retroarch-joyconfig.exe -a autoconfig/yourpad.cfg

Follow the instructions on-screen.
You can also configure input directly and update retroarch.cfg, but this is not recommended.

   retroarch-joyconfig.exe -i retroarch.cfg -o retroarch.cfg

To configure some of the most relevant hotkeys (save state/load state/RGUI menu toggle), add --misc.
If you don't want to configure certain binds, there is no way to "skip" a config. A workaround for this is to use the --timeout option.
See retroarch-joyconfig.exe --help for more information.

=========
Logging
=========

To get logging in terminal:
    retroarch.exe -v --menu

Dump log to a file:
    retroarch.exe -v --menu 2>log.txt

================
Custom configs
================

The configswap branch has support for changing config within RGUI.
You can also create new configs for near-complete flexibility.

If you want to go completely nuts with custom input autoconfig dirs, history lists, etc per config, you'll have to hack in the config. As always, see retroarch.cfg.clean for reference.

=================
Notes on config
=================

I've set libretro config, system directory, shader directory and config directory.
Note that I've used ":/libretro/". The : prefix is a special prefix which means relative to the retroarch.exe.
Relative paths would normally work fine, but in case the working dir is ever changed, it would break this.
When the config is saved back, it'll probably have the actual full path, so beware of that.

config_save_on_exit = true
is also set, so the config will automatically be saved on exit by default.

==========================
System directory / BIOS
==========================
System directory is ./system/. I've put bSNES stuff in there. Provide your own BIOSes as needed.


Good news and with phoenix dead probably someone will come up with a frontend for PC

Ah, glad someone told me about this, I thought there was something wrong on my end ROFL :stuck_out_tongue:

Edit: WTF? RetoArch keep resetting the ROM directory despite specifying it in the config file >:(

In the Phoenix GUI, I was able to map buttons on my controller to fast forward and rewind. Now, I don’t know how to do that anymore.

Is there a doc or a wiki or something I could look at?

retroarch-joyconfig should be in the tools folder. in linux it is automatically installed and you can read its man page for full details, not sure if windows even has man pages but I doubt it. It is a command line tool but actually quite easy to use. Here is its man page should work the same in windows just cd to that directory and create an autoconfig file or else it will print to the console and you can copy and paste into your config file.


RETROARCH-JOYCONFIG(1)                                                                                         System Manager's Manual: retroarch-joyconfig                                                                                        RETROARCH-JOYCONFIG(1)

NAME
       retroarch-joyconfig - Tool to configure joypad bindings for retroarch.

SYNOPSIS
       retroarch-joyconfig [OPTIONS]...

DESCRIPTION
       retroarch-joyconfig is a simple tool that allows updating or creating a configuration file for retroarch.  It reads in necessary joypad bindings for a certain player and joypad.

EXAMPLE COMMANDLINES
       retroarch-joyconfig -p 1 -j 0

       retroarch-joyconfig -j 0 -a ~/.config/retroarch/autoconfig/pad.cfg

GENERAL OPTIONS
       --player PLAYER, -p PLAYER
              Configuration will be done for the SNES player PLAYER. This can be from 1 up to and including 5 (multitap).  Default is configuration for player 1.

       --joypad PAD, -j PAD
              Which joypad to use when configuring. Use a numeric indexing. Default here is 0 (first joypad).

       --driver DRIVER, -d DRIVER
              Uses a particular joypad driver instead of the first available one.

       --input PATH, -i PATH
              Use config file found in PATH as a base. Old configuration values can be overwritten by new values when configuring binds. If not used, an empty config file will be used as a base. Using this option only does not update the file found in PATH.

       --output PATH, -o PATH
              Writes the final config to a file, rather than stdout. If -i and -o point to the same file, the file found in PATH will simply be updated with the new configs.

       -a PATH, --autoconfig PATH
              Also writes an autoconfigure file for the joypad which was configured. It can be used by RetroArch to automatically configure a joypad when it's plugged in.

       --misc, -m
              Also configure some binds that aren't directly related to RetroPad, such as save states, RGUI menu toggle, etc.  Only configures some of the most useful binds.

       --allmisc, -M
              Same as --misc, but goes through every bind available (40+). Very exhaustive.

       -t SECONDS, --timeout SECONDS
              Adds a timeout of N seconds to each bind. If timed out, the bind will not be used.

       --help, -h
              Prints help message.

Figured it out! Thank you for posting that!

The command for mapping it should be C:\ (wherever you place the emulator )\retroarch-joyconfig -m -t 10

Worked like a charm :slight_smile: but the question now is where did it save the config to? Would I need to change the CL to \retroarch-joyconfig -m -t 10 -o PATH? Tried to use that, didn’t save the config.

Edit: \retroarch-joyconfig -m -t 10 -o C:\RetroArch\configs ame.cfg works now

to have it create an autosave config that retroarch will attempt to load automatically if it is setup to do so in config file use “retroarch-joyconfig -a /path/to/file-you-want-to-create” arguement or you can do the same with the “-o” arguement to just print the output to a file but it won’t be loaded unless you copy that output to your retroarch.cfg

Right, and I did manage to create a file, but it wasn’t an autoconfig file (named it Snes.cfg) but RetroArch doesn’t even load it. Does that need to be in the configs folder as well or somewhere else? How do I tell the emulator to load a specific controller config profile, and the controls I use for one core I use for Genesis, NES, Snes, GBA, so nothing with odd controls.

looks closer Ah, so I need to copy and paste the output to the main config file?

Summary: So yeah, I got the output with the hotkeys as needed after some trial and error (not used to CLI) I need to paste the output somewhere in the main config. Got it.

Edit: Wow, just found out what was causing the issue…ugh, PEBKAC lol! There was a conflict between the new version and the old GUI :smiley:

Does the system folder contain the two .ini files needed for N64 emulation? If not, they should.

Forgot about those, ye. :V EDIT: Snuck in the ini files into the zip :3

About joyconfig. Did anyone actually read the README?


=======
Input
=======

If you have an xinput-supported gamepad, you should not need to configure input at all. It should work as expected.
If you want to configure input for obscure systems which don't map well to the RetroPad,
it is recommended you create an autoconfig for your device.

    retroarch-joyconfig.exe -a autoconfig/yourpad.cfg

Follow the instructions on-screen.
You can also configure input directly and update retroarch.cfg, but this is not recommended.

   retroarch-joyconfig.exe -i retroarch.cfg -o retroarch.cfg

To configure some of the most relevant hotkeys (save state/load state/RGUI menu toggle), add --misc.
If you don't want to configure certain binds, there is no way to "skip" a config. A workaround for this is to use the --timeout option.
See retroarch-joyconfig.exe --help for more information.

Sure did. Got all the hotkeys configured on my Xbox 360 controller using the right command switches. Dead easy once you get the hang of it (not used to CLI to be honest), but I’m acclimating to it and what commands need to be used, etc. :stuck_out_tongue:

Typed in : C:RetroArch\retroarch-joyconfig -m -t 10 -o C:\RetroArch\configs ame.cfg then copied and pasted the output to the appropriate file. Works perfectly :smiley:

Edit: For some reason the fast forward key never takes effect even after mapping it…WTF?

I’m going to miss the updater. How often will the megapacks be updated with new cores?

Dang, the fast forward key never works despite being mapped to the 360 controller :confused:

hello

i’m french user and i’m talking about retroarch on board french . http://forum.shmup.com/viewtopic.php?f=7&t=17720

phoenix is a good gui , and now retroarch is not user friendly :frowning: specially for input gamepad …

I keep phoenix with a newbuild for configuration input pad because the “retroarch-joyconfig” is not practice … L3 an R3 not supported my gamepad … (hori fighting pad) i don’t understand how to configure for each system (genesis,snes, …)

On my PC , i use several folder retroarch for each system because it is really convenient :slight_smile:

We need two interface or configure the input in the R-GUI (two interface is better). thank you for the work accomplished and sorry for my bad english .

I’m sick of Phoenix. It needs to die. Yes, we’re in a transition phase where some functionality is missing from RGUI (joypad config is the big thing here). Please give it time.

i understand , I don’t pressed . thanks for explication :slight_smile:

As far as I know, dosbox does not work in Win64. Mednafen GBA does not work at all.

They shouldn’t be included.

The next megapack should include MAME 0.150 and Picodrive. Those are harder to compile; I can’t do either with the portable mingw64 from the dev board.

For those wanting to play on the bleeding edge, here are my compiles of MAME 0.150 and Picodrive, these are Win 7 x64, and please don’t ask for Win32 builds: http://www.filefactory.com/file/o13mqahlz11/n/mame_libretro.dll http://www.filefactory.com/file/2lybvx489319/n/picodrive_retro.dll

Great news. Great decision to let Phoenix die :cool: