Qt-based Nintendo Entertaiment System emulator and NSF/NSF2/NSFe Music Player (Linux, FreeBSD, OpenBSD and Windows)
Find a file
2019-01-13 16:29:47 +01:00
m4 Rewritten the synchronization mechanism between audio and video. 2018-11-04 11:31:18 +01:00
misc convertito all'autotools il sistema di compilazione. 2015-09-22 22:18:50 +02:00
src Fixed a possible crash. 2019-01-13 16:29:47 +01:00
AUTHORS convertito all'autotools il sistema di compilazione. 2015-09-22 22:18:50 +02:00
autogen.sh Initial support for OpenBSD. 2018-08-19 19:18:51 +02:00
ChangeLog Updated Changelog. 2019-01-13 15:43:26 +01:00
configure.ac Added the support for the xdelta patch. 2018-12-24 10:10:46 +01:00
COPYING usero' la licenza GPLv2. 2015-09-27 17:21:57 +02:00
crowdin.yml Update Crowdin configuration file 2017-04-10 12:37:37 +02:00
INSTALL convertito all'autotools il sistema di compilazione. 2015-09-22 22:18:50 +02:00
Makefile.am Aggiunto nell'help della versione WIP il commit di compilazione. 2017-02-28 23:45:26 +01:00
NEWS convertito all'autotools il sistema di compilazione. 2015-09-22 22:18:50 +02:00
README.md Updated with instruction to compile on OpenBSD. 2018-11-13 18:41:00 +01:00

puNES

PayPal donate button

Description

Nintendo Entertaiment System emulator

WIP

always updated to the last commit:

How to Compile

Linux


Dependencies

  • Qt5 with OpenGL support (qtbase and qtsvg)
  • nvidia-cg
  • alsa

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.

OpenBSD


Dependencies

  • Qt5 with OpenGL support (qtbase and qtsvg)
  • sndio

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 (https://www.msys2.org/)
  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
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.11/5.11.2/submodules/qtbase-everywhere-src-5.11.2.zip
unzip qtbase-everywhere-src-5.11.2.zip
mv qtbase-everywhere-src-5.11.2 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.11.2/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.11/5.11.2/submodules/qtsvg-everywhere-src-5.11.2.zip
unzip qtsvg-everywhere-src-5.11.2.zip
mv qtsvg-everywhere-src-5.11.2 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 ..

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:

D3D9 version :
  • 7z.dl
  • cg.dll
  • cgD3D9.dll
  • libwinpthread-1.dll
OpenGL version :
  • 7z.dll
  • cg.dll
  • cgGL.dll
  • libwinpthread-1.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.