All Projects → punesemu → Punes

punesemu / Punes

Licence: gpl-2.0
Nintendo Entertaiment System emulator and NSF/NSFe Music Player (Linux, FreeBSD, OpenBSD and Windows)

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Punes

Nes
A Javascript NES Emulator
Stars: ✭ 168 (-22.58%)
Mutual labels:  nes, 6502, emulator, emulation
Jsnes
A JavaScript NES emulator.
Stars: ✭ 5,354 (+2367.28%)
Mutual labels:  nes, 6502, emulator, emulation
Anese
Another NES Emulator - written for fun & learning - first implementation of wideNES
Stars: ✭ 323 (+48.85%)
Mutual labels:  nes, 6502, emulator, emulation
js-nes-emulator
NES emulator in javascript.
Stars: ✭ 12 (-94.47%)
Mutual labels:  emulator, emulation, nes, 6502
retro-computing
🤓🕹💾 This hobby project contains software implementations of old microprocessors and complete computer systems. I'm very interested in retrocomputing and this is how I learn about the inner workings of these old, classic and amazing computers and game consoles.
Stars: ✭ 15 (-93.09%)
Mutual labels:  emulator, emulation, 6502
Thistle
6502 based architecture for OpenComputers
Stars: ✭ 26 (-88.02%)
Mutual labels:  emulator, emulation, 6502
Gearnes
NES / Famicom emulator for iOS, Mac, Raspberry Pi, Windows, Linux and RetroArch.
Stars: ✭ 23 (-89.4%)
Mutual labels:  emulator, nes, 6502
Provenance
iOS & tvOS multi-emulator frontend, supporting various Atari, Bandai, NEC, Nintendo, Sega, SNK and Sony console systems… Get Started: https://wiki.provenance-emu.com |
Stars: ✭ 4,732 (+2080.65%)
Mutual labels:  nes, emulator, emulation
Jsnes Web
A browser UI for JSNES, a JavaScript NES emulator
Stars: ✭ 398 (+83.41%)
Mutual labels:  nes, emulator, emulation
Embeddednes
A portable NES simulator for embedded processors
Stars: ✭ 26 (-88.02%)
Mutual labels:  nes, 6502, emulator
Nsfplay
Nintendo NES sound file NSF music player
Stars: ✭ 155 (-28.57%)
Mutual labels:  nes, emulator, emulation
Objfw
[Official Mirror] A portable framework for the Objective-C language.
Stars: ✭ 161 (-25.81%)
Mutual labels:  freebsd, openbsd
Py65
Emulate 6502-based microcomputer systems in Python
Stars: ✭ 162 (-25.35%)
Mutual labels:  6502, emulator
Millfork
Millfork: a middle-level programming language targeting 6502- and Z80-based microcomputers and home consoles
Stars: ✭ 163 (-24.88%)
Mutual labels:  nes, 6502
Flownes
🎮 An NES emulator written in ES2015+ with flowtype
Stars: ✭ 160 (-26.27%)
Mutual labels:  nes, emulator
Bsnes Plus
debug-oriented fork of bsnes
Stars: ✭ 209 (-3.69%)
Mutual labels:  emulator, emulation
Pcjs
The original IBM PC and other machine emulations in JavaScript
Stars: ✭ 171 (-21.2%)
Mutual labels:  6502, emulator
Rust64
Commodore 64 emulator written in Rust
Stars: ✭ 176 (-18.89%)
Mutual labels:  emulator, emulation
Vaporboy
Gameboy / Gameboy Color Emulator PWA built with Preact. ⚛️ Powered by wasmBoy. 🎮Themed with VaporWave. 🌴🐬
Stars: ✭ 182 (-16.13%)
Mutual labels:  emulator, emulation
Durden
Desktop Environment for Arcan
Stars: ✭ 158 (-27.19%)
Mutual labels:  freebsd, openbsd

puNES

Gentoo package AUR package SlackBuilds package Rosa 2019.1 package LiGurOS stable package Wikidata package

Description

Nintendo Entertaiment System emulator

WIP Builds GitHub code size in bytes CodeFactor Build status

always updated to the last commit:

Note : 32 bit versions are Windows XP compatible.

Support:

If you want pay a beer : Beerpay or PayPal donate button

How to Compile

Linux

Dependencies

Compilation of puNES

git clone https://github.com/punesemu/punes
cd punes
./autogen.sh
./configure
make

the executable punes is in the src directory.

Linux Debug version

If you need the debug version then you need to replace the ./configure command of the previous examples with the following:

CFLAGS="-g -DDEBUG" CXXFLAGS="-g -DDEBUG" ./configure --disable-release [...]

where [...] are the other necessary options.

Example on how to compile on Ubuntu 20.10

sudo apt-get install git cmake autotools-dev autoconf build-essential pkg-config libasound2-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev nvidia-cg-toolkit
sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev
git clone https://github.com/punesemu/puNES
cd puNES
./autogen.sh
./configure
make

to start the emulator

./src/punes

FreeBSD

Dependencies

  • Qt5 with OpenGL support (qtbase, qtsvg and qttools)
  • sndio
  • cmake
  • (optional) ffmpeg libraries >= 4.0 if you want video and audio recording support (libavcodec, libavformat, libavutil, libswresample and libswscale). See notes.

Compilation of puNES

git clone https://github.com/punesemu/punes
cd punes
./autogen.sh
CC=cc CXX=c++ ./configure
make

the executable punes is in the src directory.

FreeBSD Debug version

If you need the debug version then you need to replace the ./configure command of the previous examples with the following:

CFLAGS="-g -DDEBUG" CXXFLAGS="-g -DDEBUG" CC=cc CXX=c++ ./configure --disable-release [...]

where [...] are the other necessary options.

OpenBSD

Dependencies

  • Qt5 with OpenGL support (qtbase, qtsvg and qttools)
  • sndio
  • cmake
  • (optional) ffmpeg libraries >= 4.0 if you want video and audio recording support (libavcodec, libavformat, libavutil, libswresample and libswscale). See notes.

Compilation of puNES

git clone https://github.com/punesemu/punes
cd punes
./autogen.sh
CC=cc CXX=c++ ./configure
make

the executable punes is in the src directory.

OpenBSD Debug version

If you need the debug version then you need to replace the ./configure command of the previous examples with the following:

CFLAGS="-g -DDEBUG" CXXFLAGS="-g -DDEBUG" CC=cc CXX=c++ ./configure --disable-release [...]

where [...] are the other necessary options.

Windows

Dependencies

  • Qt5 with OpenGL support (5.6.3 is the last if you want the support for Windows XP)

Development Environment installation

  1. install MSYS2
  2. open "MSYS2 MinGW 64-bit" shell (or 32 bit if you want compile the 32 bit version of puNES)
pacman -Syu
  1. close the MSYS2 window and run it again from Start menu
pacman -Su
pacman -S base-devel git wget p7zip unzip mingw-w64-i686-cmake mingw-w64-x86_64-cmake
pacman -S perl ruby python2 mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain
exit
  1. open a new MSYS2 shell and build the necessary libraries

Compilation of the Qt5 libraries

  1. download and unzip the sources
wget http://download.qt.io/archive/qt/5.15/5.15.0/submodules/qtbase-everywhere-src-5.15.0.zip
unzip qtbase-everywhere-src-5.15.0.zip
mv qtbase-everywhere-src-5.15.0 qt5

the renaming of the directory is necessary to not generate a compile-time error caused by the 255 characters maximum path length limitation on Windows, This is the typical error message you might encounter:

"../../../../include/QtEventDispatcherSupport/5.15.0/QtEventDispatcherSupport/private/qwindowsguieventdispatcher_p.h:1:10: fatal error: ../../../../../src/platformsupport/eventdispatchers/qwindowsguieventdispatcher_p.h: No such file or directory"
  1. compile the libraries
cd qt5
echo -e "QMAKE_LFLAGS += -static -static-libgcc\nDEFINES += QT_STATIC_BUILD\n" >> mkspecs/win32-g++/qmake.conf
./configure.bat -prefix $MINGW_PREFIX -extprefix $MINGW_PREFIX -bindir $MINGW_PREFIX/lib/qt5/bin -headerdir $MINGW_PREFIX/include/qt5 -libdir $MINGW_PREFIX/lib/qt5 -archdatadir $MINGW_PREFIX/lib/qt5 -plugindir $MINGW_PREFIX/lib/qt5/plugins -libexecdir $MINGW_PREFIX/lib/qt5/bin -datadir $MINGW_PREFIX/share/qt5 -docdir $MINGW_PREFIX/share/doc/qt5 -translationdir $MINGW_PREFIX/share/qt5/translations -sysconfdir $MINGW_PREFIX/etc/xdg -examplesdir $MINGW_PREFIX/share/qt5/examples -testsdir $MINGW_PREFIX/share/qt5/tests -platform win32-g++ -nomake examples -nomake tests -nomake tools -no-compile-examples -release -opensource -confirm-license -static -c++std c++11 -sse2 -static-runtime -make libs -no-ltcg -no-dbus -no-accessibility -no-inotify -no-iconv -no-icu -no-openssl -no-system-proxies -no-cups -no-fontconfig -opengl desktop -no-angle -gif -ico -qt-libpng -qt-libjpeg -qt-pcre -qt-zlib -qt-freetype
make
  1. and finally install them
make install
sed -i -e s,Qt5OpenGLd,Qt5OpenGL,g -e s,Qt5OpenGLExtensionsd,Qt5OpenGLExtensions,g -e s,Qt5Concurrentd,Qt5Concurrent,g -e s,Qt5Cored,Qt5Core,g -e s,Qt5Guid,Qt5Gui,g -e s,Qt5Networkd,Qt5Network,g -e s,Qt5PrintSupportd,Qt5PrintSupport,g -e s,Qt5Sqld,Qt5Sql,g -e s,Qt5Testd,Qt5Test,g -e s,Qt5Widgetsd,Qt5Widgets,g -e s,Qt5Xmld,Qt5Xml,g -e s,libqtpcre2d,libqtpcre2,g -e s,libqtlibpngd,libqtlibpng,g -e s,libqtharfbuzzd,libqtharfbuzz,g $MINGW_PREFIX/lib/qt5/pkgconfig/*
cp -v $MINGW_PREFIX/lib/qt5/pkgconfig/* $MINGW_PREFIX/lib/pkgconfig/.
cd ..
  1. now it's time for the SVG module...
wget http://download.qt.io/archive/qt/5.15/5.15.0/submodules/qtsvg-everywhere-src-5.15.0.zip
unzip qtsvg-everywhere-src-5.15.0.zip
mv qtsvg-everywhere-src-5.15.0 qt5svg
cd qt5svg
$MINGW_PREFIX/lib/qt5/bin/qmake
make
make install
sed -i -e s,Qt5Svgd,Qt5Svg,g -e s,Qt5Cored,Qt5Core,g -e s,Qt5Guid,Qt5Gui,g -e s,Qt5Widgetsd,Qt5Widgets,g $MINGW_PREFIX/lib/qt5/pkgconfig/*
cp -v $MINGW_PREFIX/lib/qt5/pkgconfig/* $MINGW_PREFIX/lib/pkgconfig/.
cd ..
  1. ...and for the tools
wget http://download.qt.io/archive/qt/5.15/5.15.0/submodules/qttools-everywhere-src-5.15.0.zip
unzip qttools-everywhere-src-5.15.0.zip
mv qttools-everywhere-src-5.15.0 qt5tools
cd qt5tools
$MINGW_PREFIX/lib/qt5/bin/qmake
make
make install
cd ..

Compilation of puNES

  1. Now you have everything you need to compile correctly puNES
git clone https://github.com/punesemu/punes
cd punes
./autogen.sh

if you want D3D9 version :

./configure --with-d3d9
make

otherwise :

./configure --with-opengl
make

The executable punes.exe is in the src directory but in order to run it you need the following dlls:

  • 7z.dl
  • avcodec-58.dll
  • avformat-58.dll
  • avutil-56.dll
  • cg.dll
  • cgD3D9.dll (only for D3D9 version)
  • cgGL.dll (only for OpenGL version)
  • libwinpthread-1.dll
  • swresample-3.dll
  • swscale-5.dll

that you can download here : 64bit version or 32bit version.

Windows Debug version

If you need the debug version then you need to replace the ./configure command of the previous examples with the following:

CFLAGS="-g -DDEBUG" CXXFLAGS="-g -DDEBUG" ./configure --disable-release [...]

where [...] are the other necessary options.


FFmpeg

It is always possible to disable audio/video recording support by specifying the configure parameter --without-ffmpeg. If the installed version is lower than 4.0 the support will be disabled automatically.

Supported audio recording formats:

  • WAV Audio
  • MP3 Audio (lame) (*)
  • AAC Audio
  • Flac Audio
  • Ogg Audio (vorbis) (*)

Supported video recording formats:

  • MPEG 1 Video
  • MPEG 2 Video
  • MPEG 4 Video
  • MPEG H264 Video (libx264) (*)
  • High Efficiency Video Codec (libx265) (*)
  • WebM Video (libvpx) (*)
  • Windows Media Video
  • AVI FF Video
  • AVI Video

(*) if compiled in FFmpeg.

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].