{"id":16953979,"url":"https://github.com/amaiorano/vectrexy","last_synced_at":"2025-05-12T00:41:56.806Z","repository":{"id":42702541,"uuid":"54437508","full_name":"amaiorano/vectrexy","owner":"amaiorano","description":"A Vectrex emulator written in modern C++","archived":false,"fork":false,"pushed_at":"2024-12-05T03:39:55.000Z","size":1027,"stargazers_count":54,"open_issues_count":3,"forks_count":9,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-12T00:41:42.139Z","etag":null,"topics":["cpp","cpp17","emulator","graphics","vectrex"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amaiorano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-22T02:02:16.000Z","updated_at":"2025-01-05T15:03:34.000Z","dependencies_parsed_at":"2024-10-28T13:20:15.179Z","dependency_job_id":"4ad94262-0d93-42f2-8be7-1f3946be8966","html_url":"https://github.com/amaiorano/vectrexy","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amaiorano%2Fvectrexy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amaiorano%2Fvectrexy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amaiorano%2Fvectrexy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amaiorano%2Fvectrexy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amaiorano","download_url":"https://codeload.github.com/amaiorano/vectrexy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253655919,"owners_count":21943072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","cpp17","emulator","graphics","vectrex"],"created_at":"2024-10-13T22:08:26.948Z","updated_at":"2025-05-12T00:41:56.777Z","avatar_url":"https://github.com/amaiorano.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vectrexy\n\nVectrexy is a [Vectrex](https://en.wikipedia.org/wiki/Vectrex) emulator programmed in C++.\n\nThis project is open source and available on GitHub: https://github.com/amaiorano/vectrexy\n\n## Download Latest Build\n\n### Build status ![master branch status](https://github.com/amaiorano/vectrexy/actions/workflows/ci.yml/badge.svg?branch=master)\n\n* [Vectrexy for Windows 64-bit](https://dl.cloudsmith.io/public/vectrexy/vectrexy/raw/files/vectrexy-windows-x64.zip)\n\n* [Vectrexy for Windows 32-bit](https://dl.cloudsmith.io/public/vectrexy/vectrexy/raw/files/vectrexy-windows-x86.zip)\n\n* [Vectrexy for Linux 64-bit](https://dl.cloudsmith.io/public/vectrexy/vectrexy/raw/files/vectrexy-ubuntu-x64.zip)\n\n\\\n[![Hosted By: Cloudsmith](https://img.shields.io/badge/OSS%20hosting%20by-cloudsmith-blue?logo=cloudsmith\u0026style=flat-square)](https://cloudsmith.com)\n\nPackage repository hosting is graciously provided by  [Cloudsmith](https://cloudsmith.com).\nCloudsmith is the only fully hosted, cloud-native, universal package management solution, that\nenables your organization to create, store and share packages in any format, to any place, with total\nconfidence.\n\n## Twitch Development\n\nI regularly stream part of the development on Twitch [right here](https://www.twitch.tv/daroou2). Follow me to know when I'm streaming!\n\n## Compatibility\n\nSee the [Vectrexy Compatibility List](docs/vectrexy-compatilibity-list.md) for the list of games that Vectrexy can run.\n\n## Controls\n\n| Devices     | Player 1  | Player 2  |\n| ----------- | --------- | --------- |\n| No gamepads | Keyboard  | N/A       |\n| 1 gamepad   | Gamepad 1 | Keyboard  |\n| 2 gamepads  | Gamepad 1 | Gamepad 2 |\n\nKeyboard key bindings: ASDF + Arrow keys\n\n## Overlays\n\nThe Vectrex display is black \u0026 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 the `data/overlays` folder, 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).\n\n## What's a Vectrex and why did you write this emulator?\n\nThe 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 years old, and I still have it, and it's still awesome.\n\n## Credits\n\nAlthough 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.\n\n- Overlays: THK-Hyperspin, Gigapig-Hyperspin, Nosh01-GitHub, and other unknown authors.\n- FastBoot and SkipBoot bios roms: Franck Chevassu, author of the exellent Vectrex emulator, [ParaJVE](http://www.vectrex.fr/ParaJVE/)\n- SDL2: [SDL2 Credits](https://www.libsdl.org/credits.php)\n- GLEW: [GLEW authors](https://github.com/nigels-com/glew#authors)\n- GLM: [G-Truc Creations](http://www.g-truc.net/)\n- stb: [Sean Barrett (Nothings)](http://nothings.org/)\n- Dear ImGui: [omar (ocornut)](http://www.miracleworld.net/)\n- linenoise: [Salvatore Sanfilippo (antirez)](http://invece.org/)\n- noc: [Guillaume Chereau](https://blog.noctua-software.com/)\n\n## Building the code\n\n### Windows\n\nInstall:\n* [CMake](https://cmake.org/)\n* [Visual Studio](https://www.visualstudio.com/downloads/)\n\nClone and build vectrexy using CMake:\n```bash\ngit clone --recursive https://github.com/amaiorano/vectrexy.git\ncd vectrexy\nmkdir build \u0026\u0026 cd build\ncmake ..\ncmake --build .\n```\n\n### Ubuntu\n\nInstall:\n* [CMake](https://cmake.org/)\n* gcc 8 or higher\n\nInstall a compiler and some Linux-specific libs we depend on:\n```bash\nsudo apt-get install g++-8 libgtk2.0-dev\n```\n\nSDL2 has many dependencies, some of which you may need to install:\n```\n# SDL static lib dependencies (see https://hg.libsdl.org/SDL/file/default/docs/README-linux.md)\n# Alternatively, you can just 'apt-get libsdl2-dev' to build against the dynamic library\n\nsudo 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\n```\n\nClone and build vectrexy using CMake:\n```bash\ngit clone --recursive https://github.com/amaiorano/vectrexy.git\ncd vectrexy\nmkdir build \u0026\u0026 cd build\ncmake ..\ncmake --build .\n```\n\n### Extra CMake Build Args\n\nUse ```-D\u003cVAR_NAME\u003e=\u003cVALUE\u003e``` from the CMake CLI, or use cmake-gui to set these.\n\n#### BUILD_SHARED_LIBS=on|off (Default: off)\n\nIf enabled, builds a DLL/.so version.\n\n**NOTE**: On Windows, vcpkg's \"static\" triplets (e.g. x64-windows-static) create static libs that link against the static CRT (/MT), while CMake generates shared library builds that link against the dynamic CRT (/MD). Thus, when building, the linker will emit: `LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library`. You can ignore this for the most part; however, you can fix this warning by creating a custom vcpkg triplet, e.g. x64-windows-static-md.cmake, that is a copy of x64-windows-static.cmake, except with `set(VCPKG_CRT_LINKAGE dynamic)`. If you use this triplet to build dependencies with vcpkg, and specify it as CMake's `VCPKG_TARGET_TRIPLET`, all libraries will use the dynamic CRT, and no warning will be emitted by the linker.\n\n#### DEBUG_UI=on|off (Default: on)\n\nIf enabled, the in-game debug UI can be displayed. Mostly useful for development.\n\n#### ENGINE_TYPE=null|sdl (Default: sdl)\n\nThe type of engine to use. By default, SDL is used. If \"null\" is specified, the emulator will execute without any audio or visuals; however, the debugger will work, which can be useful for testing the emulator, or as a starting point for a new engine type.\n\n## Contributing\n\nAs 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](https://www.twitch.tv/daroou2) and make suggestions in chat instead.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famaiorano%2Fvectrexy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famaiorano%2Fvectrexy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famaiorano%2Fvectrexy/lists"}