90 likes | 270 Views
democoding made easy. What is RetroArch. Crossplatform emulator/game/demo platform (well we can abuse it :D). What is RetroArch. Has tons of features like Custom Cg-based pixel shader support Audio DSP support Fast forward/rewind Rock solid GUI system Netplay
E N D
What is RetroArch • Crossplatform emulator/game/demo platform (well we can abuse it :D)
What is RetroArch • Has tons of features like • Custom Cg-based pixel shader support • Audio DSP support • Fast forward/rewind • Rock solid GUI system • Netplay • FFmpeg based recording (RIP kkapture)\ • And tons more…
RetroArch’s API • Libretro: the base of it all • C based • Easy to implement • Straightforward • Allows for blitting to 2D surfaces (as well as FBO’s ;) )
Implementing our demo • We need to implement as a DLL/SO/etc • Needs certain amount of exports: see demo sourcecode for example. • Think about crossplatform calls (stdlib?) • OpenGL 2/3/ES (non fixed function) is the key, unless you wanna go software or make your software not run on mobile systems. • We run per frame, not all at once. • Libretro treats top-left as origin. Be mindful! • YMMV with MSVC
Summary • Cuts out the middleman (SDL, GLFW, etc) • Leaves you to code your prod • Dead simple to implement • Potential to easily target plenty of platforms • Fully open source
Resources Website: www.libretro.org • Demo featured in this seminar: https://github.com/mudlord/bund (fixed function, code horrors beware!) • Emulators: https://github.com/libretro • Model viewer: https://github.com/libretro/modelviewer-libretro • Coding in OpenGL doc by Themaister: https://github.com/libretro/libretro.github.com/raw/master/documents/libretro-gl.pdf
Resources • Doc on using the libretro API: https://github.com/libretro/libretro.github.com/raw/master/documents/libretro.pdf • Paper on Cg/HLSL shaders and game/demo aware shading: https://github.com/libretro/libretro.github.com/raw/master/documents/libretro-shader.pdf