libretro / libretro/RetroArch

Cores with straight stdio file I/O

Open
#12,949 11 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

core optimization
Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

These cores will need to have straight libc file I/O calls replaced with libretro-common VFS equivalents:

  • 2048 - Uses straight file I/O for creating a save file (.srm file) - we should perhaps do this in memory completely
  • 81
  • Atari800
  • Beetle PCE
  • Beetle PCE Fast
  • Beetle PCFX
  • Beetle PSX (only straight file I/O used in lightning libjit in one or two files - uses fopen append)
  • Beetle bsnes
  • Beetle Supafaust
  • Beetle Supergrafx
  • Beetle Saturn
  • Beetle Wonderswan
  • Beetle NGPC
  • Beetle VB
  • BlastEm
  • BlueMSX
  • Cannonball
  • Cap32
  • Chailove
  • Citra
  • Citra 2018
  • DeSmuME
  • DeSmuME 2015
  • Dinothawr
  • Dolphin
  • ECWolf
  • FBA2012 CPS1
  • FBA2012 CPS2
  • FBA2012 Neo
  • FBNeo
  • FCEUmm
  • FreeChaf
  • fixNES
  • fixGB
  • fMSX
  • Frodo
  • FUSE
  • Gambatte
  • Gearboy
  • Gearsystem
  • Genesis Plus GX
  • Genesis Plus GX Wide
  • gpSP
  • GME/Game Music Emu
  • GW
  • Handy
  • Kronos
  • MAME 2000
  • MAME 2003
  • MAME 2010
  • MAME
  • MelonDS
  • Mesen
  • Mesen-S
  • Minivmac
  • mGBA
  • Mupen64Plus Next
  • Mr. Boom
  • NeoCD
  • Nestopia
  • Nxengine
  • Opera
  • O2EM
  • PicoDrive
  • PocketCDG
  • Pokemini
  • Prosystem
  • PPSSPP
  • PCSX ReARMed
  • PCSX2
  • Prboom (except for d_deh.c)
  • Potator
  • PX68K
  • Quasi88
  • QuickNES
  • Race
  • Reminiscence
  • SameBoy
  • ScummVM
  • SMS Plus (seems to use no direct file I/O for files compiled in for libretro core)
  • SquirrelJME
  • Snes9x 2002
  • Snes9x 2005
  • Snes9x 2010
  • Snes9x
  • Stella
  • Stella 2014
  • SwanStation
  • TGB Dual
  • TIC80
  • TyrQuake
  • The Powder Toy
  • Vecx
  • VitaQuake 2
  • VitaQuake 3
  • VirtualJaguar
  • xRick
  • VEmulator
  • VBA Next

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by choosing one unchecked core from the issue’s checklist and locate its direct libc file-I/O calls. Read the relevant core sources and the libretro-common VFS interfaces, then replace the calls with VFS equivalents and verify that the selected core no longer uses straight file I/O.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
operating-systems
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.