All Projects → kivutar → rombundler

kivutar / rombundler

Licence: BSD-3-Clause license
A tiny libretro frontend to release homebrews as executables

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to rombundler

webretro
RetroArch in your browser
Stars: ✭ 38 (-22.45%)
Mutual labels:  emulator, libretro
Vba M Nx
WIP full featured port of VBA-M for Nintendo Switch
Stars: ✭ 11 (-77.55%)
Mutual labels:  emulator, homebrew
first nes
Create your own games for the Nintendo Entertainment System! This "starter" game is easily extensible for your own projects. Includes references.
Stars: ✭ 94 (+91.84%)
Mutual labels:  emulator, rom
Gearnes
NES / Famicom emulator for iOS, Mac, Raspberry Pi, Windows, Linux and RetroArch.
Stars: ✭ 23 (-53.06%)
Mutual labels:  emulator, libretro
Vgmusicstudio
🎵 A program that lets you listen to the music from popular video game formats. 🎵
Stars: ✭ 142 (+189.8%)
Mutual labels:  emulator, rom
Medguireborn
MedGui Reborn is a frontend/launcher (GUI) for Mednafen multi emulator, written in VB .Net with Microsoft Visual Studio Community
Stars: ✭ 40 (-18.37%)
Mutual labels:  emulator, rom
Octo
A Chip8 IDE
Stars: ✭ 419 (+755.1%)
Mutual labels:  emulator, homebrew
Nesicide
Integrated Development Environment for the 8-bit Nintendo Entertainment System
Stars: ✭ 244 (+397.96%)
Mutual labels:  emulator, homebrew
Ia Rcade
Use MAME with roms from archive.org
Stars: ✭ 87 (+77.55%)
Mutual labels:  emulator, rom
Desmume Psp
A Nintendo DS emulator for PlayStation Portable.
Stars: ✭ 72 (+46.94%)
Mutual labels:  emulator, homebrew
Not64
Experimental modification of Mupen64GC using devkitRice.
Stars: ✭ 180 (+267.35%)
Mutual labels:  emulator, homebrew
kpspemu
PSP Emulator written in Kotlin for JVM, JS and Native. Can work as PWA.
Stars: ✭ 57 (+16.33%)
Mutual labels:  emulator, homebrew
RAEmus
RetroAchievements.org standalone emulators
Stars: ✭ 58 (+18.37%)
Mutual labels:  emulator
ibrew
🍻Interactive CLI for Homebrew – the missing package manager for macOS.
Stars: ✭ 33 (-32.65%)
Mutual labels:  homebrew
6502-emulator
An Understandable 6502 Emulator
Stars: ✭ 26 (-46.94%)
Mutual labels:  emulator
mamesaver
Mamesaver is a mame emulated screensaver - get all the good ol' games playing their demo modes while you procrastinate and enjoy!
Stars: ✭ 26 (-46.94%)
Mutual labels:  emulator
epicedit
Epic Edit, Track Editor for Super Mario Kart (SNES)
Stars: ✭ 30 (-38.78%)
Mutual labels:  rom
worldwide
A toy GameBoy Color emulator written in golang.
Stars: ✭ 563 (+1048.98%)
Mutual labels:  emulator
awesome-n64-development
A curated list of Nintendo 64 development resources including toolchains, documentation, emulators, example code, and more
Stars: ✭ 210 (+328.57%)
Mutual labels:  rom
hUGEDriver
An easy-to-use, fast, tracker-based, public domain sound driver for Game Boy homebrew
Stars: ✭ 26 (-46.94%)
Mutual labels:  homebrew

ROMBundler

ROMBundler is a way to release your homebrew retro game as an executable.

It is based on this example libretro frontend https://github.com/heuripedes/nanoarch

The main differences are that the frontend is controlled by an ini file instead of command line flags to make it easier to bundle ROMs. Also we use glad instead of glew, added openal for cross platform audio, and will add joypad support and maybe a few shaders.

Compiling

Dependencies are:

  • GLFW 3
  • OpenAL
  • OpenGL 2.1

See our Github Action config files for detailed instructions on how to setup dependencies per OS.

To compile:

make

Usage

You don't need to compile rombundler if you just want to use it, you can get one of the binary releases here

Then modify the config.ini to fit your needs:

title = Shrine Maiden Shizuka Demo 2
core = ./blastem_libretro.dylib
rom = ./Shrine Maiden Shizuka Demo 2.md
swap_interval = 1
full_screen = false
hide_cursor = false
map_analog_to_dpad = true
window_width = 800
window_height = 600
aspect_ratio = 1.333333

You can download libretro cores from http://buildbot.libretro.com/nightly/ and place it in the same folder, as well as your ROM. (But make sure to comply to the core license).

For Windows, the core need to be a .DLL, for OSX it needs to be a .dylib, and for Linux a .so. ROMBundler releases are for 64bit systems only for now.

Place your ROM in the same folder. And set the ROM name in your config.ini.

ROMBundler will read the ini file, load the emulator and the ROM and the game will start.

You can then rename rombundler with the name of your game, change it's icon, and distribute this as a zip.

Inputs configuration

You can choose what kind of device is plugged in the console ports in the config.ini:

port0 = 3
port1 = 1

The identifiers can be found in the libretro.h:

#define RETRO_DEVICE_NONE         0
#define RETRO_DEVICE_JOYPAD       1
#define RETRO_DEVICE_MOUSE        2
#define RETRO_DEVICE_KEYBOARD     3
#define RETRO_DEVICE_LIGHTGUN     4
#define RETRO_DEVICE_ANALOG       5
#define RETRO_DEVICE_POINTER      6

Emulator configuration

If you need special options for the emulator, you can set them by creating a options.ini file like this:

fceumm_sndvolume = 7
fceumm_palette = default
fceumm_ntsc_filter = composite

Shaders

In the config.ini, you can specify a single pass shader. For example:

shader = zfast-crt
filter = linear

Default values are

shader = default
filter = nearest

For now available shaders are:

  • default
  • zfast-crt
  • zfast-lcd

We recommand using the linear filter with the CRT and LCD shaders.

TODO

  • Provide an OSX .app
  • Static linking for Linux
  • Switch full screen / windowed
  • Multitap option

Known working cores

  • lutro_libretro
  • fceumm_libretro
  • blastem_libretro
  • bluemsx_libretro
  • snes9x_libretro
  • genesis_plus_gx_libretro
  • nes_libretro
  • mesen_libretro
  • mesen-s_libretro
  • dosbox_pure_libretro
  • mgba_libretro
  • gambatte_libretro
  • gearsystem_libretro
  • mednafen_psx_libretro
  • pcsx_rearmed_libretro
  • melonds_libretro
  • swanstation_libretro
  • duckstation_libretro
  • fbneo_libretro

Not yet compatible:

  • md_libretro (input issues)
  • sameboy_libretro (audio issues)
  • mupen64plus_next_libretro (various issues)
  • parallel_n64_libretro (various issues)
  • ppsspp_libretro (GL issues)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].