pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/emulators
Module Name: pkgsrc
Committed By: nia
Date: Thu Jul 16 11:03:33 UTC 2026
Modified Files:
pkgsrc/emulators: Makefile
Added Files:
pkgsrc/emulators/tsugaru: DESCR Makefile PLIST distinfo
pkgsrc/emulators/tsugaru/files: tsugaru.desktop
pkgsrc/emulators/tsugaru/patches: patch-src_cpu_i486.h
patch-src_cpu_i487.cpp patch-src_towns_highrespcm_highrespcm.cpp
Log Message:
tsugaru: Initial import.
Tsugaru is an emulator of the legendary Fujitsu FM TOWNS computer,
including the Marty video game console. It primarily targets emulating
Model II MX, including undocumented hardware features.
If you do not own your FM TOWNS hardware, you can use the following free
version of the ROM:
http://ysflight.com/FM/towns/FreeTOWNS/e.html
Editor's notes: the package name was chosen as tsugaru and not townsemu
(like the upstream repository) to match the few other package mangers
that package this software. Similarly, the program is installed as a
lowercase binary matching the package name to match Unix conventions.
As far as I can tell this software is developed for Windows and macOS;
it working on more traditional Unixes is a nice side effect.
This package was verified to build on macOS, CentOS 7, NetBSD.
To generate a diff of this commit:
cvs rdiff -u -r1.381 -r1.382 pkgsrc/emulators/Makefile
cvs rdiff -u -r0 -r1.1 pkgsrc/emulators/tsugaru/DESCR \
pkgsrc/emulators/tsugaru/Makefile pkgsrc/emulators/tsugaru/PLIST \
pkgsrc/emulators/tsugaru/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/emulators/tsugaru/files/tsugaru.desktop
cvs rdiff -u -r0 -r1.1 pkgsrc/emulators/tsugaru/patches/patch-src_cpu_i486.h \
pkgsrc/emulators/tsugaru/patches/patch-src_cpu_i487.cpp \
pkgsrc/emulators/tsugaru/patches/patch-src_towns_highrespcm_highrespcm.cpp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/emulators/Makefile
diff -u pkgsrc/emulators/Makefile:1.381 pkgsrc/emulators/Makefile:1.382
--- pkgsrc/emulators/Makefile:1.381 Mon Apr 27 10:23:49 2026
+++ pkgsrc/emulators/Makefile Thu Jul 16 11:03:32 2026
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.381 2026/04/27 10:23:49 adam Exp $
+# $NetBSD: Makefile,v 1.382 2026/07/16 11:03:32 nia Exp $
#
COMMENT= Emulators for other machines and systems
@@ -431,6 +431,7 @@ SUBDIR+= swarm
SUBDIR+= sys161
SUBDIR+= tcl-hp-15c
SUBDIR+= tme
+SUBDIR+= tsugaru
SUBDIR+= tuxnes
SUBDIR+= twin
SUBDIR+= uae
Added files:
Index: pkgsrc/emulators/tsugaru/DESCR
diff -u /dev/null pkgsrc/emulators/tsugaru/DESCR:1.1
--- /dev/null Thu Jul 16 11:03:33 2026
+++ pkgsrc/emulators/tsugaru/DESCR Thu Jul 16 11:03:32 2026
@@ -0,0 +1,8 @@
+Tsugaru is an emulator of the legendary Fujitsu FM TOWNS computer,
+including the Marty video game console. It primarily targets emulating
+Model II MX, including undocumented hardware features.
+
+If you do not own your FM TOWNS hardware, you can use the following free
+version of the ROM:
+
+http://ysflight.com/FM/towns/FreeTOWNS/e.html
Index: pkgsrc/emulators/tsugaru/Makefile
diff -u /dev/null pkgsrc/emulators/tsugaru/Makefile:1.1
--- /dev/null Thu Jul 16 11:03:33 2026
+++ pkgsrc/emulators/tsugaru/Makefile Thu Jul 16 11:03:32 2026
@@ -0,0 +1,58 @@
+# $NetBSD: Makefile,v 1.1 2026/07/16 11:03:32 nia Exp $
+
+DISTNAME= tsugaru-20260522
+CATEGORIES= emulators
+MASTER_SITES= ${MASTER_SITE_GITHUB:=captainys/}
+GITHUB_PROJECT= TOWNSEMU
+GITHUB_TAG= v${PKGVERSION_NOREV}
+
+# Should use the most recent commit at the time of when a new release is made.
+GITHUB_SUBMODULES+= captainys public 8cabce7e045b23ad68fdb8592aeacd8d9101e362 gui/src/public
+
+MAINTAINER= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= http://ysflight.in.coocan.jp/FM/towns/Tsugaru/e.html
+COMMENT= FM Towns emulator
+LICENSE= modified-bsd
+
+TOOL_DEPENDS+= ImageMagick-[0-9]*:../../graphics/ImageMagick
+
+USE_LANGUAGES= c c++
+
+USE_CXX_FEATURES+= c++17
+
+CMAKE_CONFIGURE_ARGS= ${WRKSRC}/gui/src
+
+CFLAGS.NetBSD+= -DEBADFD=EBADF
+CFLAGS.NetBSD+= -DESTRPIPE=EPIPE
+
+INSTALLATION_DIRS+= bin
+INSTALLATION_DIRS+= share/applications
+INSTALLATION_DIRS+= share/pixmaps
+
+pre-build:
+ ${PREFIX}/bin/magick ${WRKSRC}/src/resources/tsugaru_icon.ico \
+ ${WRKDIR}/${PKGBASE}.png
+
+.include "../../mk/bsd.fast.prefs.mk"
+
+do-install:
+.if ${OPSYS} != "Darwin"
+ ${INSTALL_PROGRAM} ${WRKSRC}/${CMAKE_BUILD_DIR}/main_gui/Tsugaru_GUI \
+ ${DESTDIR}${PREFIX}/bin/${PKGBASE}
+.else
+ ${INSTALL_PROGRAM} ${WRKSRC}/${CMAKE_BUILD_DIR}/main_gui/Tsugaru_GUI.app/Contents/MacOS/Tsugaru_GUI \
+ ${DESTDIR}${PREFIX}/bin/${PKGBASE}
+.endif
+ ${INSTALL_DATA} ${WRKDIR}/${PKGBASE}.png \
+ ${DESTDIR}${PREFIX}/share/pixmaps/${PKGBASE}.png
+ ${INSTALL_DATA} ${FILESDIR}/${PKGBASE}.desktop \
+ ${DESTDIR}${PREFIX}/share/applications
+
+.include "../../devel/cmake/build.mk"
+.if ${OPSYS} != "Darwin"
+. include "../../audio/alsa-lib/buildlink3.mk"
+.endif
+.include "../../graphics/glu/buildlink3.mk"
+.include "../../sysutils/desktop-file-utils/desktopdb.mk"
+.include "../../x11/libX11/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/emulators/tsugaru/PLIST
diff -u /dev/null pkgsrc/emulators/tsugaru/PLIST:1.1
--- /dev/null Thu Jul 16 11:03:33 2026
+++ pkgsrc/emulators/tsugaru/PLIST Thu Jul 16 11:03:32 2026
@@ -0,0 +1,4 @@
+@comment $NetBSD: PLIST,v 1.1 2026/07/16 11:03:32 nia Exp $
+bin/tsugaru
+share/applications/tsugaru.desktop
+share/pixmaps/tsugaru.png
Index: pkgsrc/emulators/tsugaru/distinfo
diff -u /dev/null pkgsrc/emulators/tsugaru/distinfo:1.1
--- /dev/null Thu Jul 16 11:03:33 2026
+++ pkgsrc/emulators/tsugaru/distinfo Thu Jul 16 11:03:32 2026
@@ -0,0 +1,11 @@
+$NetBSD: distinfo,v 1.1 2026/07/16 11:03:32 nia Exp $
+
+BLAKE2s (captainys-public-8cabce7e045b23ad68fdb8592aeacd8d9101e362.tar.gz) = c3140ec02976f33c588de97ab2a8dac7774e294a6f1c31f446a22cddb4d2aabb
+SHA512 (captainys-public-8cabce7e045b23ad68fdb8592aeacd8d9101e362.tar.gz) =
946768d7993bb73dc536ef0d5194f8e233e4c0d1a5c94f7a55370673c065b8fe3cc46d68155595e24b3b1fef722b05781019ed44b75d5fc73e14de99d3fad179
+Size (captainys-public-8cabce7e045b23ad68fdb8592aeacd8d9101e362.tar.gz) = 6718947 bytes
+BLAKE2s (tsugaru-20260522.tar.gz) = 92c87f04cba95d41db55d02f205ebe06a273289a897da4079e9ced0df2392ba0
+SHA512 (tsugaru-20260522.tar.gz) = 82f2e2a76519f5e2e6926ed626cf10d4b0a337accb5154e1bcfc3fb1bfd1591cd9ef7cb8cea55dcbbcba38149b1f35ec336ccc8065471ac818f7a2884131dcf1
+Size (tsugaru-20260522.tar.gz) = 2704445 bytes
+SHA1 (patch-src_cpu_i486.h) = 6dda3d114a6f2ce86599f3f697838ee12a66610f
+SHA1 (patch-src_cpu_i487.cpp) = 8cbac1850f479fc6cd6faa4e0501b854aceb556a
+SHA1 (patch-src_towns_highrespcm_highrespcm.cpp) = 508b77fc15b54898db695bf616b214b3a8bdab81
Index: pkgsrc/emulators/tsugaru/files/tsugaru.desktop
diff -u /dev/null pkgsrc/emulators/tsugaru/files/tsugaru.desktop:1.1
--- /dev/null Thu Jul 16 11:03:33 2026
+++ pkgsrc/emulators/tsugaru/files/tsugaru.desktop Thu Jul 16 11:03:32 2026
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+Name=Tsugaru
+GenericName=FM Towns Emulator
+Comment=Run old FM Towns applications
+Icon=tsugaru
+Exec=tsugaru
+Terminal=false
+Categories=Game;Emulator;
Index: pkgsrc/emulators/tsugaru/patches/patch-src_cpu_i486.h
diff -u /dev/null pkgsrc/emulators/tsugaru/patches/patch-src_cpu_i486.h:1.1
--- /dev/null Thu Jul 16 11:03:33 2026
+++ pkgsrc/emulators/tsugaru/patches/patch-src_cpu_i486.h Thu Jul 16 11:03:33 2026
@@ -0,0 +1,29 @@
+$NetBSD: patch-src_cpu_i486.h,v 1.1 2026/07/16 11:03:33 nia Exp $
+
+Hack around C++ math namespacing problems.
+
+--- src/cpu/i486.h.orig 2026-07-15 23:27:06.185045081 +0000
++++ src/cpu/i486.h
+@@ -16,12 +16,12 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ #define I486_IS_INCLUDED
+ /* { */
+
++#include <cmath>
+ #include <cstdint>
+ #include <iostream>
+ #include <map>
+ #include <string>
+ #include <type_traits>
+-#include <math.h>
+
+ #include "cpu.h"
+ #include "ramrom.h"
+@@ -654,7 +654,7 @@ class i486DXCommon : public CPU (public)
+ SRC=0.0;
+ }
+ statusWord&=~(STATUS_C0|STATUS_C2|STATUS_C3);
+- if(true==isnan(ST) || true==isnan(SRC))
++ if(true==std::isnan(ST) || true==std::isnan(SRC))
+ {
+ statusWord=(STATUS_C0|STATUS_C2|STATUS_C3);
+ }
Index: pkgsrc/emulators/tsugaru/patches/patch-src_cpu_i487.cpp
diff -u /dev/null pkgsrc/emulators/tsugaru/patches/patch-src_cpu_i487.cpp:1.1
--- /dev/null Thu Jul 16 11:03:33 2026
+++ pkgsrc/emulators/tsugaru/patches/patch-src_cpu_i487.cpp Thu Jul 16 11:03:33 2026
@@ -0,0 +1,51 @@
+$NetBSD: patch-src_cpu_i487.cpp,v 1.1 2026/07/16 11:03:33 nia Exp $
+
+Hack around C++ math namespacing problems.
+
+--- src/cpu/i487.cpp.orig 2026-07-15 23:27:25.456268838 +0000
++++ src/cpu/i487.cpp
+@@ -14,7 +14,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+ << LICENSE */
+ #include "i486.h"
+ #include <algorithm>
+-#include <math.h>
++#include <cmath>
+ #include <stdint.h>
+
+
+@@ -29,7 +29,7 @@ void i486DXCommon::FPUState::BreakOnNan(i486DXCommon &
+
+ void i486DXCommon::FPUState::BreakOnNan(i486DXCommon &cpu,double value)
+ {
+- if(nullptr!=cpu.debuggerPtr && true==isnan(value))
++ if(nullptr!=cpu.debuggerPtr && true==std::isnan(value))
+ {
+ cpu.debuggerPtr->ExternalBreak("FPU: NaN detected.");
+ }
+@@ -124,7 +124,7 @@ void i486DXCommon::FPUState::BreakOnNan(i486DXCommon &
+ value80[0]=0;
+ return;
+ }
+- else if(isnan(src))
++ else if(std::isnan(src))
+ {
+ value80[9]=0x7F;
+ value80[8]=0xFF;
+@@ -1857,7 +1857,7 @@ unsigned int i486DXCommon::FPUState::FPTAN(i486DXCommo
+
+ auto &ST=this->ST(cpu);
+ auto t=tan(ST.value);
+- if(true==isnan(t))
++ if(true==std::isnan(t))
+ {
+ statusWord|=STATUS_C2;
+ }
+@@ -2136,7 +2136,7 @@ unsigned int i486DXCommon::FPUState::FXAM(i486DXCommon
+ {
+ statusWord|=STATUS_C1;
+ }
+- if(isnan(st.value))
++ if(std::isnan(st.value))
+ {
+ // Nan C3,C2,C0=001
+ statusWord|=STATUS_C0;
Index: pkgsrc/emulators/tsugaru/patches/patch-src_towns_highrespcm_highrespcm.cpp
diff -u /dev/null pkgsrc/emulators/tsugaru/patches/patch-src_towns_highrespcm_highrespcm.cpp:1.1
--- /dev/null Thu Jul 16 11:03:33 2026
+++ pkgsrc/emulators/tsugaru/patches/patch-src_towns_highrespcm_highrespcm.cpp Thu Jul 16 11:03:33 2026
@@ -0,0 +1,11 @@
+$NetBSD: patch-src_towns_highrespcm_highrespcm.cpp,v 1.1 2026/07/16 11:03:33 nia Exp $
+
+Need to include <cmath> for std::isnan.
+
+--- src/towns/highrespcm/highrespcm.cpp.orig 2026-07-15 23:26:49.212335569 +0000
++++ src/towns/highrespcm/highrespcm.cpp
+@@ -1,3 +1,4 @@
++#include <cmath>
+ #include <stdint.h>
+ #include "highrespcm.h"
+ #include "towns.h"
Home |
Main Index |
Thread Index |
Old Index