[Emulação] Retroarch 1.13 – O Emulador dos Emuladores

Podcast NewsInside, siga e ouça mensalmente no Spotify:


O Retroarch

RetroArch é o frontend de referência para a API do libretro. Exemplos populares de implementações para essa API incluem emuladores de sistemas de videogame e mecanismos de jogos, bem como programas 3D mais generalizados. Esses programas são instanciados como bibliotecas dinâmicas. Nós nos referimos a eles como “núcleos de libretro”.

A LibRetro

libretro é uma API que expõe callbacks genéricos de áudio/vídeo/entrada. Um frontend para libretro (como RetroArch) lida com saída de vídeo, saída de áudio, entrada e ciclo de vida do aplicativo. Um núcleo de libretro escrito em C ou C++ portátil pode ser executado perfeitamente em muitas plataformas com muito pouco ou nenhum esforço de portabilidade.

Embora o RetroArch seja o frontend de referência para o libretro, vários outros projetos usaram a interface do libretro para incluir suporte para emuladores e/ou mecanismos de jogo. libretro é totalmente aberto e gratuito para qualquer um usar.

Atualmente suportando as seguintes plataformas:

  • DOS
  • Windows 11
  • Windows 10
  • Windows 8
  • Windows 7
  • Windows Vista
  • Windows XP
  • Windows Millennium
  • Windows 2000
  • Windows NT 3.5
  • Windows 98
  • Windows 95
  • Linux
  • Emscripten (WebAssembly and JavaScript)
  • FreeBSD
  • NetBSD
  • OpenBSD
  • Haiku
  • Solaris
  • Apple macOS (PPC, x86-32 and x86-64)
  • Apple iOS
  • Apple tvOS
  • Android (2.x to most recent version)
  • PlayStation 2
  • PlayStation 3
  • PlayStation Portable
  • PlayStation Vita
  • Original Microsoft Xbox
  • Microsoft Xbox 360 (Libxenon/XeXDK)
  • Microsoft Xbox One
  • Microsoft Xbox Series S/X
  • Nintendo GameCube
  • Nintendo Wii
  • Nintendo Wii U
  • Nintendo 3DS/2DS
  • Nintendo Switch
  • Nintendo NES/SNES Classic Edition
  • Raspberry Pi
  • Blackberry
  • OpenDingux
  • Miyoo
  • RS90
  • RetroFW

As mudanças podem ser vistas abaixo, para as pessoas mais curiosas e técnicas:

Retroarch 1.13 (Ingles)
  • 3DS: Remove debug button combo to shutdown RA
  • 3DS: Remove MaterialUI as per MrHuu recommendation
  • ANDROID: Enable ‘Vibrate On Key Press’ by default
  • ANDROID: Turn ‘Threaded Video’ off by default
  • CHEEVOS: Upgrade to rcheevos 10.5
  • COMPILATION: Fixed compiling with –disable-menu
  • CONFIG: Don’t show override notification with appendconfig alone
  • DATABASE/PLAYLISTS: Playlist + database changes – Cleanup ‘entry_slot’, fallback label + logging
  • FRONTEND: Fix default remaps folder for various cores: remap should be nested in config folder
  • GFX/VIDEO FILTERS: Prevent video filter init if game is not running
  • HOTKEYS: Fix shader toggle and add hotkey + sublabel
  • HOTKEYS: Cleanups and corrections – Keep hotkey pause and menu pause separate in order to not trigger unwanted pause when toggling menu regardless if menu will pause or not
  • HOTKEYS: Cleanups and corrections – Allow unpausing with Start (makes resuming more convenient after controller disconnect if menu does not pause)
  • IOS13+: Pointer movement accuracy. iPad Trackpad Pointer Movement Accuracy through absolute location (for iOS 13.4 and above)
  • IOS13+: Adds iPad Trackpad Support to iOS13 Project (for iOS 13.4 and above)
  • INPUT: Fixed the way devices were previously indexed. Input devices were only being indexed in order and would stop at the first time an input has no device connected to it. The problem is when a device gets disconnected, that input will have no devices connected to it, but the next input may still have a device connected. So, that makes changing the port of the currently connected devices impossible.
  • INPUT/AUTOCONFIG: Add option for pause on controller disconnect
  • INPUT/AUTOCONFIG: Driver independent disconnection notification. Should show disconnect notification now properly on Windows with XInput and/or DirectInput pads
  • INPUT/HID: Added usb hid controllers for the famous ZeroDelay encoder and also for “Kade: Kick Ass Dynamic Encoder” to be able to use some custom arcade sticks.
  • INPUT/OVERLAY: Add eightway area types.
  • INPUT/OVERLAY: Ignore hitboxes with zero area. I.e. Set ‘reach_x’ or ‘reach_y’ to zero to ensure no hitbox math is done. This simplifies designating animation-only descriptors (e.g. for eightway areas) or obsolete descriptors.
  • INPUT/OVERLAY: Add ‘reach’ and ‘exclusive’ for hitboxes. Allows stretching hitboxes and handling their overlap.
  • INPUT/OVERLAY: Fix overlay next_index for unnamed targets
  • INPUT/MENU: Addition to analog stick menu navigation
  • INPUT/MENU: Enable menu navigation also with right analog stick
  • INPUT/MENU: Add option for swapping menu scrolling buttons
  • LOCALIZATION: Updates
  • LOCALIZATION: Add Hungarian language option
  • MENU: Thumbnail fullscreen toggle behavior correction
  • MENU: Consistent left-right scrolling for Quick Menu items
  • MENU: Remove useless sublabel from System Information
  • MENU: Improve widget appearance with missing assets
  • MENU/QT/WIMP: Remove SSL/TLS check at startup
  • MENU/OZONE: Show metadata helper in footer only with second thumbnail
  • MENU/OZONE: Footer improvements – Add “Cycle thumbnails” helper when suitable
  • MENU/OZONE: Footer improvements – Show “Search” helper only when search function is enabled
  • MENU/OZONE: Footer improvements – Fix “Thumbnails available” helper for save states
  • MENU/OZONE: Footer improvements – Tighten padding between icon and title, and widen between helpers
  • MENU/OZONE: Launching anything from a View no longer throws Quick Menu off the screen
  • MENU/OZONE: Save state thumbnails in slot dropdown obeys fullscreen toggle properly when content launched via CLI
  • MENU/OZONE: Save state thumbnail dropdown won’t allow fullscreen toggle when it shouldn’t
  • MENU/OZONE: Selection position remembering in non-playlists won’t flash the first entry
  • MENU/OZONE: Remember selection per main tabs
  • MENU/OZONE: Remove incomplete assets warning
  • MENU/OZONE: Add option to adjust cursor memory when changing menu tabs
  • MENU/OZONE: Further extend texture support for Core Option categories
  • MENU/XMB: Remove incomplete assets warning
  • MENU/XMB: Add truncate playlist name option
  • MENU/XMB: Improve background image selector
  • MENU/XMB: Add option to adjust cursor memory when changing menu tabs
  • MENU/XMB: Further extend texture support for Core Option categories
  • MENU/MATERIALUI: Remove incomplete assets warning
  • OSX: Fixed Z/X keys not working on the macOS port
  • OSX: Fixed RETROK_LMETA not working on macOS port. The RETROK_LMETA key was not defined in the rarch_key_map_apple_hid
  • OSX: Fix broken fullscreen mode in macOS Ventura
  • PS2: Fix Error saving remaps and runtime logs
  • PS3: Fix Core Remap Overwrite Fail
  • QB: Don’t fail if OSDependent/OGLCompiler libraries are not present
  • SCANNER/PS1: Improved scanning of PS1 discs
  • SCANNER/PS2: Added serial scanning of PS2 discs – should now scan DVDs and other discs which were previously missed
  • THUMBNAIL: If you rename title, you cannot use the thumbnail image. because the thumbnail filename and the title must be the same. If there is no thumbnail with title, find the thumbnail image with rom-name. This has nothing to do with IME.
  • THREADED VIDEO/GLCORE: Fix regression ‘Shader presets dont load, when video driver is set to glcore’
  • VULKAN: Fix HDR inverse tonemapping. Only skip tonemapper if HDR10 is explicitly enabled by last shader pass. Otherwise, we are simply just inheriting the bit-depth of the swapchain.

Lembrando que o Retroarch para PS4 está em desenvolvimento final e será um dos mais completos para consoles no momento ;D

Se você preza pela ultima versão sempre pode baixar aqui, caso procure para uma plataforma especifica verifique aqui

[Emulação] Retroarch – O Emulador dos Emuladores

Podcast NewsInside, siga e ouça mensalmente no Spotify:


O Retroarch

RetroArch é o frontend de referência para a API do libretro. Exemplos populares de implementações para essa API incluem emuladores de sistemas de videogame e mecanismos de jogos, bem como programas 3D mais generalizados. Esses programas são instanciados como bibliotecas dinâmicas. Nós nos referimos a eles como “núcleos de libretro”.

A LibRetro

libretro é uma API que expõe callbacks genéricos de áudio/vídeo/entrada. Um frontend para libretro (como RetroArch) lida com saída de vídeo, saída de áudio, entrada e ciclo de vida do aplicativo. Um núcleo de libretro escrito em C ou C++ portátil pode ser executado perfeitamente em muitas plataformas com muito pouco ou nenhum esforço de portabilidade.

Embora o RetroArch seja o frontend de referência para o libretro, vários outros projetos usaram a interface do libretro para incluir suporte para emuladores e/ou mecanismos de jogo. libretro é totalmente aberto e gratuito para qualquer um usar.

Atualmente suportando as seguintes plataformas:

  • DOS
  • Windows 11
  • Windows 10
  • Windows 8
  • Windows 7
  • Windows Vista
  • Windows XP
  • Windows Millennium
  • Windows 2000
  • Windows NT 3.5
  • Windows 98
  • Windows 95
  • Linux
  • Emscripten (WebAssembly and JavaScript)
  • FreeBSD
  • NetBSD
  • OpenBSD
  • Haiku
  • Solaris
  • Apple macOS (PPC, x86-32 and x86-64)
  • Apple iOS
  • Apple tvOS
  • Android (2.x to most recent version)
  • PlayStation 2
  • PlayStation 3
  • PlayStation Portable
  • PlayStation Vita
  • Original Microsoft Xbox
  • Microsoft Xbox 360 (Libxenon/XeXDK)
  • Microsoft Xbox One
  • Microsoft Xbox Series S/X
  • Nintendo GameCube
  • Nintendo Wii
  • Nintendo Wii U
  • Nintendo 3DS/2DS
  • Nintendo Switch
  • Nintendo NES/SNES Classic Edition
  • Raspberry Pi
  • Blackberry
  • OpenDingux
  • Miyoo
  • RS90
  • RetroFW

Se você preza pela ultima versão sempre pode baixar aqui, caso procure para uma plataforma especifica verifique aqui

[Emulação] Retroarch 1.10.3

Siga o Podcast NewsInside


A ultima atualização do Retroarch chegou com melhorias no serviço de Inteligência Artificial, Bluetooth, mapeamento de botões, menus e entre outras, para vários consoles e dispositivos diferentes, confira o changelog abaixo:

[/su_spoiler title="Melhorias Retroarch 1.10.3 (Inglês)"]
  • ANDROID: Decouple Play Core dependency to bring app into compliance for F-Droid
  • ANDROID: Allow audio playback capture on android
  • AI/SERVICE: Disable AI Service setting by default
  • BLUETOOTH/LAKKA: bluetoothctl: add /000 modify pairing steps
  • CHEEVOS: Disallow manual frame delay setting in Hardcore Mode
  • DATABASE: Serial scanning for Wii now includes WBFS
  • INPUT: Allow proper descriptor declaration for analog triggers
  • INPUT/MAPPING: Fix offset + crash when clearing input port binds
  • INPUT/MAPPING: Fix saving of ‘Analog to Digital Type’ when configuration overrides are used
  • INPUT/MAPPING: Fix saving of ‘Analog to Digital Type’ when configuration overrides are used
  • LOCALIZATION: Add Valencian language option
  • LOCALIZATION: Updates
  • MENU/SETTINGS: Move ‘Show Menu Bar’ under ‘Windowed Mode’ settings
  • MENU/SETTINGS: Add sublabels for ‘Subsystems’ and ‘Input Deadzone/Sensitivity’
  • MENU/SETTINGS: Move ‘On-Screen Notifications’ to top
  • MENU/XMB: Unified the shadow alpha value to a slightly darker one for better readability
  • MENU/XMB: Corrected the option label and sublabel for actual behavior
  • MIYOO: Enable ALSA audio driver and default to it
  • PSP: Take out extra languages/localization, adds about 4/5MB to the binary, and RAM is limited on PSP (32MB and 64MB RAM models)
  • STATIC PLATFORMS: Populate all history list metadata when launching content from playlists
  • STEAM: Introduce Steam Rich Presence
  • VIDEO: Fast-Forward Frameskip improvement
  • VIDEO/THREADED: Stability fixes
  • WINDOWS/WINRAW: Fix multiple light guns
  • WIIU: Fix USB get_device_name(), don’t truncate to three chars
[/su_spoiler]

Downloads

[Emulação] Retroarch v1.10.1


Retroarch foi atualizado, agora foram várias correções e melhorias no NGC (Game Cube) e Wii (#13698), no momento está sendo focado apenas melhorias nestes dois retrocores

Em breve teremos mais guias de emulação, sendo Duckstation o próximo grande emulador a ser destrinchado do começo ao fim.

Melhorias e Correções
  • Support new elf2dol path in Makefile.griffin
  • Fix NULL pointer dereference when no core info is available
  • Fix double include of different versions of libogc
  • Move ngc and wii to Makefile.common

Resulting binary is 60K smaller. This is surprising but probably due to
less inlining happening

  • gx_gfx: Fix hang on gfx initialization
  • Remove sthread_isself on NGC/Wii

It relies on pthread_equal that is not there for either legacy pthreads
or normal pthreads on those platforms

  • Wii networking
  • Missing includes in split
  • Network fixes
  • Fix logging of non-format string as a format
  • Support for gx netlogger
  • Network fix
  • Network fixes
  • Network info
  • gx: Move config files to app directory

Otherwise it clashes between wiiU and vWii version with unpredictable
effects

Download

[Retroarch]Lançamento da Versão 1.9.13.1

Siga o NewsInside Podcast no Spotify AQUI, novos episódios mensais, gravações ao vivo na Twitch


Mais uma update do retroarch, você pode atualizar pelo próprio emulador os cores usados, ou caso seu console não suporte auto update baixe direto do site da libretro.
Por agora ainda estamos na espera da versão 2.0 que pode ocorrer nos próximos meses, trazendo versões prometidas a um bom tempo como a do PS4, uma melhoria significativa (ainda mais) na versão UWP (Xbox One, Xbox Series, Windows 10/Windows 11), PS2 e outras mais.

O Que Há De Novo?

Assim que o changelog sair, atualizo o post!

Download – Escolha a versão do seu console/arquitetura, se não possui na lista, ele simplesmente não existe ou foi removido.

[Retroarch] Lançamento da Versão 1.9.12[ Changelog atualziado]

Revisado por Mr. Madruga

Mais uma update do retroarch, você pode atualizar pelo próprio emulador os cores usados, ou caso seu console não suporte auto update baixe direto do site da libretro.
Por agora ainda estamos na espera da versão 2.0 que pode ocorrer nos próximos meses, trazendo versões prometidas a um bom tempo como a do PS4, uma melhoria significativa (ainda mais) na versão UWP (Xbox One, Xbox Series, Windows 10/Windows 11), PS2 e outras mais.

O Que Há De Novo?
  • 3DS: Ensure parallax barrier is disabled when ‘3DS Display Mode’ is ‘2D’
  • COMMAND: Command interface should work again
  • INPUT/HID: Rewrote the HID deregistration algorithm; it should no longer cause issues when dealing with multiple pads of the same HID/VID combo
  • INPUT/HID: Fix initialization bug that caused wiimotes to fail to register without an accessory attached
  • INPUT/HID: Fix Wiimote regression
  • INPUT/HID/MAC: Get Sony Sixaxis (DualShock 3) working on MacOS
  • INPUT/UDEV: Add extra abs check for dolphinbar
  • INPUT/UDEV: Add relative left mouse button when pointer device is not abs
  • INPUT/WAYLAND: Fix keyboard input on Wayland – fixes ‘Certain cores ignore user input’
  • NETPLAY: Improvements from Cthulhu
  • OPENDINGUX: Fix HAS_ANALOG/HAS_MENU_TOGGLE defines in sdl_dingux joypad driver
  • LIBRETRO: Enable SRAM for contentless cores
  • LIBRETRO: Add environment callback to get the rate retro_run is called – GET_THROTTLE_STATE and RETRO_THROTTLE_UNBLOCKED environment callback
  • LINUX: Update metadata manifest
  • MENU/OZONE: New themes – Solarized Light, Solarized Dark
  • WINDOWS/WIN9X: Fix non-ASCII text display in window title
  • New cores are on the verge of being approved on Steam. First out of the gates is Picodrive, a Sega Genesis/Master System/Sega CD/32X emulator. You can grab that for RetroArch right now here.

For version 1.9.11, we added support for Miyoo devices, such as the Pocket GO, PowKiddy Q90-V90 and New BitBoy. Back then, we only had one or two cores available.

Version 1.9.12 now comes with a whopping 28 cores – quite the improvement over 1.9.11.

List of all cores so far –

  • 81
  • CAP32
  • fMSX
  • FUSE
  • Gambatte
  • Genesis Plus GX
  • GW
  • Handy
  • LRMAME2003
  • LRMAME2003 Plus
  • Mednafen PCE Fast
  • Mednafen Wswan
  • mGBA
  • NXEngine
  • O2EM
  • Picodrive
  • PokeMini
  • Potator
  • PrBoom
  • Prosystem
  • QuickNES
  • RACE
  • Retro8
  • ScummVM
  • SMS Plus
  • Stella 2014
  • Theodore
  • Vecx

HID subsystem unification – improvements/bugfixes

1.9.11 added a new unified HID subsystem that works on both Mac and WiiU.

Version 1.9.12 features several crucial bugfixes and additions that were plaguing the initial implementation in 1.9.11. See the CHANGELOG at the end of this blog post for more details.

Increased backwards compatibility for macOS cores

Since the migration to our new infrastructure, the minimum OS requirements for macOS cores unintentionally went up. We have since taken steps to address this.

Here are the current minimum OS requirements:

  • 2048: 10.9
  • 81: 10.9
  • atari800: 10.9
  • bk: 10.1
  • blastem: 10.9
  • bluemsx: 10.9
  • bsnes2014_accuracy: 10.9
  • bsnes2014_balanced: 10.9
  • bsnes2014_performance: 10.9
  • bsnes_cplusplus98: 10.9
  • bsnes_hd_beta: 10.9
  • bsnes: 10.9
  • bsnes_mercury_accuracy: 10.9
  • bsnes_mercury_balanced: 10.9
  • bsnes_mercury_performance: 10.9
  • cannonball: 10.9
  • cap32: 10.9
  • craft: 10.7
  • crocods: 10.9
  • desmume: 10.7
  • dinothawr: 10.8
  • dosbox_core: 10.9
  • dosbox_pure: 10.9
  • dosbox_svn: 10.9
  • duckstation: 10.15
  • easyrpg: 10.9
  • ecwolf: 10.9
  • fbalpha2012_cps1: 10.9
  • fbalpha2012_cps2: 10.9
  • fbalpha2012_cps3: 10.9
  • fbalpha2012: 10.9
  • fbalpha2012_neogeo: 10.7
  • fbneo: 10.9
  • fceumm: 10.9
  • fixgb: 10.9
  • flycast: 10.9
  • fmsx: 10.9
  • freechaf: 10.9
  • freeintv: 10.9
  • frodo: 10.9
  • fuse: 10.9
  • gambatte: 10.9
  • gearboy: 10.9
  • gearcoleco: 10.9
  • gearsystem: 10.9
  • genesis_plus_gx: 10.9
  • genesis_plus_gx_wide: 10.9
  • gme: 10.9
  • gpsp: 10.1
  • gw: 10.9
  • handy: 10.9
  • hatari: 10.9
  • lowresnx: 10.9
  • lutro: 10.9
  • mame2000: 10.9
  • mame2003: 10.9
  • mame2003_plus: 10.9
  • mame2010: 10.9
  • mame: 10.9
  • mednafen_gba: 10.9
  • mednafen_lynx: 10.9
  • mednafen_ngp: 10.9
  • mednafen_pce_fast: 10.7
  • mednafen_pce: 10.7
  • mednafen_pcfx: 10.9
  • mednafen_psx: 10.9
  • mednafen_saturn: 10.9
  • mednafen_snes: 10.9
  • mednafen_supergrafx: 10.9
  • mednafen_vb: 10.9
  • mednafen_wswan: 10.7
  • melonds: 10.9
  • mesen-s: 10.9
  • mesen: 10.9
  • mgba: 10.9
  • mrboom: 10.9
  • mu: 10.9
  • nekop2: 10.9
  • neocd: 10.9
  • nestopia: 10.9
  • np2kai: 10.7
  • nxengine: 10.9
  • o2em: 10.9
  • oberon: 10.9
  • opera: 10.9
  • parallel_n64: 10.7
  • pcsx_rearmed: 10.9
  • picodrive: 10.6
  • play: 10.14
  • pocketcdg: 10.9
  • pokemini: 10.9
  • potator: 10.9
  • ppsspp: 10.9
  • prboom: 10.9
  • prosystem: 10.9
  • puae: 10.6
  • px68k: 10.7
  • quasi88: 10.9
  • quicknes: 10.9
  • race: 10.9
  • reminiscence: 10.9
  • retro8: 10.9
  • sameboy: 10.9
  • scummvm: 10.9
  • smsplus: 10.7
  • snes9x2002: 10.9
  • snes9x2005: 10.9
  • snes9x2005_plus: 10.9
  • snes9x2010: 10.9
  • snes9x: 10.9
  • squirreljme: 10.9
  • stella2014: 10.7
  • stella: 10.9
  • tgbdual: 10.7
  • theodore: 10.7
  • thepowdertoy: 10.15
  • tic80: 10.15
  • tyrquake: 10.9
  • uzem: 10.9
  • vba_next: 10.9
  • vbam: 10.9
  • vecx: 10.9
  • vemulator: 10.9
  • vice_x128: 10.9
  • vice_x64: 10.9
  • vice_x64sc: 10.9
  • vice_xcbm2: 10.9
  • vice_xcbm5x0: 10.9
  • vice_xpet: 10.9
  • vice_xplus4: 10.9
  • vice_xscpu64: 10.9
  • vice_xvic: 10.9
  • virtualjaguar: 10.9
  • vitaquake2: 10.9
  • x1: 10.9
  • xrick: 10.9
  • yabause: 10.9

We intend to drive down the requirements even lower in the coming months. For C++-based cores, the lowest we can go is 10.9. Going lower would require installing an older SDK version. For C-based cores, the lowest we can go is 10.4 for Intel-based architectures.

Project IO – Continued

You’ve read in our previous blog post that we were working on a long-term project to wrap/abstract all file system I/O in cores, and also correct and improve cores along the way. This work has continued for version 1.9.12, and we are happy to report that various cores have been improved substantially as a result.

Below are all the cores we managed to cover so far. The ones listed in bold are the new cores we have covered since 1.9.11.

Project IO – FCEUmm improvements

We replaced all direct file access in the core with VFS routines (libretro/RetroArch#12949)

In addition, it turned out that this core had been violating the libretro API for some time by setting need_fullpath = false but then requiring the content fullpath to detect the region of iNES v1.0 ROMs. This PR fixes the issue by setting need_fullpath = true by default, but then lifting this restriction for frontends that support the RETRO_ENVIRONMENT_SET_CONTENT_INFO_OVERRIDE environment callback (which allows a valid content name to be extracted even when using a frontend-provided data buffer)

Built-in Game Genie support

FCEUmm has long supported emulation of the Game Genie cartridge add-on, but this is currently unavailable in the libretro core. 1.9.12 wires up said functionality:

A new core option Game Genie Add-On (Restart) has been added (disabled by default)
In order for the option to apply, the Game Genie ROM file named gamegenie.nes must be present in the frontend system directory
Game Genie support is disabled for FDS and arcade content
Save states do not function (and are disabled) while the Game Genie boot screen is open
After enabling Game Genie Add-On (Restart), launching a game will cause the Game Genie boot screen to appear. Codes can be entered with the gamepad (as on real hardware): D-Pad to move, A to select, B to delete

Assim que o changelog sair, atualizo o post!

Download – Escolha a versão do seu console/arquitetura, se nçao possui na lista, ele simplesmente não existe ou foi removido.