youheiogino / vectrexy

A Vectrex emulator written in modern C++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vectrexy

Vectrexy is a Vectrex emulator programmed in C++.

This project is open source and available on GitHub: https://github.com/amaiorano/vectrexy

Download Latest Build

Windows Build status

Linux Build Status

Twitch Development

I regularly stream part of the development on Twitch right here. Follow me to know when I'm streaming!

Controls

Devices Player 1 Player 2
No gamepads Keyboard N/A
1 gamepad Gamepad 1 Keyboard
2 gamepads Gamepad 1 Gamepad 2

Keyboard key bindings: ASDF + Arrow keys

Overlays

The Vectrex display is black & white, so to add color, each game cartridge came with a transparent colored overlay that would be slotted in front of the screen. For emulation purposes, you should be able to find png files for these overlays. If you place these png file in a folder named "overlays", Vectrexy will attempt to match the rom's file name to the overlay name using "fuzzy" string matching (in other words, the file names do not need to match exactly).

What's a Vectrex and why did you write this emulator?

The Vectrex is a really cool and unique video game console that was released in 1982. What made it unique was that it came with its own screen and displayed vector-based graphics, rather than the typical sprite/raster based graphics of most game consoles. My uncle had gotten me a Vectrex when I was only 8 or so years old, and I still have it, and it's still awesome :)

Credits

Altough the emulator core is written by me, Antonio Maiorano (daroou2), it makes use of third party libraries, and is packaged with overlays created by other people. I hope I've got everyone covered here; if not, please let me know and I'll be happy to correct this list.

Building the code

Windows

Install:

Install dependent packages with vcpkg:

vcpkg install sdl2:x64-windows-static sdl2-net:x64-windows-static glew:x64-windows-static glm:x64-windows-static stb:x64-windows-static imgui:x64-windows-static

Clone and build vectrexy using CMake:

git clone --recursive https://github.com/amaiorano/vectrexy.git
cd vectrexy
mkdir build && cd build
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=C:/code/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static ..
vectrexy.sln ..

Ubuntu

Install:

  • gcc 8 or higher
  • CMake
  • vcpkg

Install some Linux-specific libs we depend on:

sudo apt-get install g++-8 libgtk2.0-dev

# SDL static lib dependencies (see https://hg.libsdl.org/SDL/file/default/docs/README-linux.md)
# Alternatively, you can just 'apt-get libsdl2-dev' to build against the dynamic library
sudo apt-get install build-essential mercurial make cmake autoconf automake libtool libasound2-dev libpulse-dev libaudio-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev libxss-dev libgl1-mesa-dev libesd0-dev libdbus-1-dev libudev-dev libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libibus-1.0-dev fcitx-libs-dev libsamplerate0-dev libsndio-dev

Install the rest of the dependencies through vcpkg:

cd ~/vcpkg
./vcpkg install sdl2 sdl2-net glew glm stb imgui

Clone and build vectrexy using CMake:

git clone --recursive https://github.com/amaiorano/vectrexy.git
cd vectrexy
mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=~/vcpkg/scripts/buildsystems/vcpkg.cmake ..
make

Contributing

As the emulator is still in early stages of development, I generally won't be looking at or accepting pull requests. Once the project has matured enough, this will likely change. If you wish, follow my stream and make suggestions in chat instead.

About

A Vectrex emulator written in modern C++

License:MIT License


Languages

Language:C++ 93.6%Language:CMake 5.0%Language:GLSL 1.0%Language:Batchfile 0.2%Language:Shell 0.2%Language:C 0.0%