democoding made easy. what is retroarch crossplatform emulator/game/demo platform (well we can abuse...

9
democoding democoding made easy made easy

Upload: louise-chandler

Post on 25-Dec-2015

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Democoding made easy. What is RetroArch Crossplatform emulator/game/demo platform (well we can abuse it :D) Crossplatform emulator/game/demo platform

democoding democoding made easymade easy

Page 2: Democoding made easy. What is RetroArch Crossplatform emulator/game/demo platform (well we can abuse it :D) Crossplatform emulator/game/demo platform

What is RetroArchWhat is RetroArch

Crossplatform emulator/game/demo Crossplatform emulator/game/demo platform (well we can abuse it :D)platform (well we can abuse it :D)

Page 3: Democoding made easy. What is RetroArch Crossplatform emulator/game/demo platform (well we can abuse it :D) Crossplatform emulator/game/demo platform

What is RetroArchWhat is RetroArch

Has tons of features likeHas tons of features like- Custom Cg-based pixel shader supportCustom Cg-based pixel shader support- Audio DSP supportAudio DSP support- Fast forward/rewindFast forward/rewind- Rock solid GUI systemRock solid GUI system- NetplayNetplay- FFmpeg based recording (RIP FFmpeg based recording (RIP

kkapture)\kkapture)\- And tons more…And tons more…

Page 4: Democoding made easy. What is RetroArch Crossplatform emulator/game/demo platform (well we can abuse it :D) Crossplatform emulator/game/demo platform

RetroArch’s APIRetroArch’s API

Libretro: the base of it allLibretro: the base of it all• C basedC based• Easy to implementEasy to implement• StraightforwardStraightforward• Allows for blitting to 2D surfaces (as Allows for blitting to 2D surfaces (as

well as FBO’s ;) )well as FBO’s ;) )

Page 5: Democoding made easy. What is RetroArch Crossplatform emulator/game/demo platform (well we can abuse it :D) Crossplatform emulator/game/demo platform

Implementing our demoImplementing our demo We need to implement as a DLL/SO/etcWe need to implement as a DLL/SO/etc Needs certain amount of exports: see demo Needs certain amount of exports: see demo

sourcecode for example.sourcecode for example. Think about crossplatform calls (stdlib?)Think about crossplatform calls (stdlib?) OpenGL 2/3/ES (non fixed function) is the OpenGL 2/3/ES (non fixed function) is the

key, unless you wanna go software or make key, unless you wanna go software or make your software not run on mobile systems.your software not run on mobile systems.

We run per frame, not all at once.We run per frame, not all at once. Libretro treats top-left as origin. Be Libretro treats top-left as origin. Be

mindful!mindful! YMMV with MSVCYMMV with MSVC

Page 6: Democoding made easy. What is RetroArch Crossplatform emulator/game/demo platform (well we can abuse it :D) Crossplatform emulator/game/demo platform

Our prodOur prod

Page 7: Democoding made easy. What is RetroArch Crossplatform emulator/game/demo platform (well we can abuse it :D) Crossplatform emulator/game/demo platform

SummarySummary

• Cuts out the middleman (SDL, Cuts out the middleman (SDL, GLFW, etc)GLFW, etc)

• Leaves you to code your prodLeaves you to code your prod• Dead simple to implementDead simple to implement• Potential to easily target plenty of Potential to easily target plenty of

platformsplatforms• Fully open sourceFully open source

Page 8: Democoding made easy. What is RetroArch Crossplatform emulator/game/demo platform (well we can abuse it :D) Crossplatform emulator/game/demo platform

ResourcesResources

Website: www.libretro.orgWebsite: www.libretro.org Demo featured in this seminar: Demo featured in this seminar:

https://github.com/mudlord/bundhttps://github.com/mudlord/bund (fixed function, code horrors beware!)(fixed function, code horrors beware!) Emulators: Emulators: https://github.com/libretrohttps://github.com/libretro Model viewer: Model viewer:

https://github.com/libretro/modelviewer-librhttps://github.com/libretro/modelviewer-libretroetro

Coding in OpenGL doc by Themaister: Coding in OpenGL doc by Themaister: https://github.com/libretro/https://github.com/libretro/

libretro.github.com/raw/master/libretro.github.com/raw/master/documents/libretro-gl.pdfdocuments/libretro-gl.pdf

Page 9: Democoding made easy. What is RetroArch Crossplatform emulator/game/demo platform (well we can abuse it :D) Crossplatform emulator/game/demo platform

ResourcesResources

Doc on using the libretro API:Doc on using the libretro API:

https://github.com/libretro/https://github.com/libretro/libretro.github.com/raw/master/libretro.github.com/raw/master/documents/libretro.pdfdocuments/libretro.pdf

• Paper on Cg/HLSL shaders and Paper on Cg/HLSL shaders and game/demo aware shading:game/demo aware shading:

https://github.com/libretro/https://github.com/libretro/libretro.github.com/raw/master/libretro.github.com/raw/master/documents/libretro-shader.pdfdocuments/libretro-shader.pdf