eighttails / pc6001vx Goto Github PK
View Code? Open in Web Editor NEWCross platform version of NEC PC-6001 emulator based on PC6001V
License: GNU Lesser General Public License v2.1
Cross platform version of NEC PC-6001 emulator based on PC6001V
License: GNU Lesser General Public License v2.1
Hi!
First of all, thank you for your work!
I'm making russian localization for this emulator, and, when I'm trying to test it, locale stay the same.
After research I found the point of plugging the locale files:
if(locale.language() != QLocale::Japanese){
qDebug() << "LANG = " << locale;
if (myappTranslator.load(":/translation/PC6001VX_en")) {
app.installTranslator(&myappTranslator);
}
It is possible to change it for more than one locale support?
4.0.0 で追加された [環境設定]→[基本]→[CMT]の「ストップビット数」の値を変更しても
実際の設定や ~/.pc6001vx4/pc6001vx.ini
の設定に反映されないようです。
遠い記憶を呼び起こして https://gist.github.com/tsutsui/be54f9bda8c0ae51e73f85f7775c1aa4 とかを見ると
PC6001VX/src/Qt/configdialog.cpp
Lines 149 to 151 in 6e20e9c
diff --git a/src/Qt/configdialog.cpp b/src/Qt/configdialog.cpp
index 050bdca..6613b81 100644
--- a/src/Qt/configdialog.cpp
+++ b/src/Qt/configdialog.cpp
@@ -159,6 +159,9 @@ void ConfigDialog::readConfig()
// BoostUp 最大倍率(N60m/N66モード)
ui->spinBoxBoost66->setValue(qMin(qMax(1, config->GetValue(CV_MaxBoost62)), 100));
+ // ストップビット数
+ ui->spinBoxStopBit->setValue(qMin(qMax(2, config->GetValue(CV_StopBit)), 10));
+
// 内蔵互換ROM使用
const bool CompatibleRomMode = P6VPATH2QSTR(config->GetValue(CF_RomPath)).startsWith(":");
ui->checkBoxCompatibleRomMode->setChecked(CompatibleRomMode);
@@ -419,6 +422,9 @@ void ConfigDialog::writeConfig()
// BoostUp 最大倍率(N60m/N66モード)
config->SetValue(CV_MaxBoost62, ui->spinBoxBoost66->value());
+ // ストップビット数
+ config->SetValue(CV_StopBit, ui->spinBoxStopBit->value());
+
// 拡張カートリッジ
config->SetValue(CV_ExCartridge, int(extCartIds[ui->comboBoxExtCartridge->currentIndex()]));
(これだけならプルリクでもいいかと思いましたが、 Qt のことはよくわかっていないので……)
👋 trying to build the latest release, but run into some build issue. The error log is as below:
compiling ../src/Qt/p6vxapp.cpp
../src/Qt/p6vxapp.cpp: In member function ‘void P6VXApp::inhibitScreenSaver()’:
../src/Qt/p6vxapp.cpp:1226:76: error: ‘QX11Application’ is not a member of ‘QNativeInterface’; did you mean ‘QWaylandApplication’?
1226 | if (auto *x11App = qApp->nativeInterface<QNativeInterface::QX11Application>()){
| ^~~~~~~~~~~~~~~
| QWaylandApplication
../src/Qt/p6vxapp.cpp:1226:92: error: no matching function for call to ‘QApplication::nativeInterface<<expression error> >()’
1226 | if (auto *x11App = qApp->nativeInterface<QNativeInterface::QX11Application>()){
In file included from /home/linuxbrew/.linuxbrew/Cellar/qt/6.5.1_3/include/QtCore/qcoreapplication.h:16,
from /home/linuxbrew/.linuxbrew/Cellar/qt/6.5.1_3/include/QtCore/qapplicationstatic.h:9,
from /home/linuxbrew/.linuxbrew/Cellar/qt/6.5.1_3/include/QtCore/QtCore:26,
from /home/linuxbrew/.linuxbrew/Cellar/qt/6.5.1_3/include/QtWidgets/QtWidgetsDepends:3,
from /home/linuxbrew/.linuxbrew/Cellar/qt/6.5.1_3/include/QtWidgets/QtWidgets:3,
from ../src/Qt/p6vxapp.cpp:1:
/home/linuxbrew/.linuxbrew/Cellar/qt/6.5.1_3/include/QtCore/qnativeinterface.h:136:22: note: candidate: ‘template<class NativeInterface, class TypeInfo, class BaseType, typename std::enable_if<TypeInfo::isCompatibleWith<QApplication>, bool>::type <anonymous> > NativeInterface* QApplication::nativeInterface() const’
136 | NativeInterface *nativeInterface() const \
| ^~~~~~~~~~~~~~~
/home/linuxbrew/.linuxbrew/Cellar/qt/6.5.1_3/include/QtWidgets/qapplication.h:125:5: note: in expansion of macro ‘QT_DECLARE_NATIVE_INTERFACE_ACCESSOR’
125 | QT_DECLARE_NATIVE_INTERFACE_ACCESSOR(QApplication)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/linuxbrew/.linuxbrew/Cellar/qt/6.5.1_3/include/QtCore/qnativeinterface.h:136:22: note: template argument deduction/substitution failed:
136 | NativeInterface *nativeInterface() const \
| ^~~~~~~~~~~~~~~
/home/linuxbrew/.linuxbrew/Cellar/qt/6.5.1_3/include/QtWidgets/qapplication.h:125:5: note: in expansion of macro ‘QT_DECLARE_NATIVE_INTERFACE_ACCESSOR’
125 | QT_DECLARE_NATIVE_INTERFACE_ACCESSOR(QApplication)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/Qt/p6vxapp.cpp:1226:92: error: template argument 1 is invalid
1226 | if (auto *x11App = qApp->nativeInterface<QNativeInterface::QX11Application>()){
make: *** [Makefile:3112: p6vxapp.o] Error 1
full build log, https://github.com/Homebrew/homebrew-core/actions/runs/6066130537/job/16456391906
relates to Homebrew/homebrew-core#139879
At homebrew-core
we are seeing a recurring test issue with PC6001VX
where we cannot run the application twice in a row, if it is quit using "SIGTERM", or similar kill
commands.
I can replicate this by running the built binary on my machine, forcefully quitting it (without responding to the config prompts that show on first start), and then trying to run the binary again (it will crash immediately). If I restart my machine and try again the binary then functions.
Here is a link to our current test
for reference: https://github.com/Homebrew/homebrew-core/blob/900d197baaaf7ea18a89ba06a76c0ed5f9144e97/Formula/p/pc6001vx.rb#L38-L52
It may be that QT is not setup to gracefully handle unix's SIGTERM or SIGHUP commands.
https://doc.qt.io/qt-6/unix-signals.html
PC6001VX 4.2.4 において Android 13.0 Pixel 4a でタッチ位置の検出が意図どおりになっていないように見えます。
詳細は添付動画を見ていただくとして、以下が意図通りでないように見えます。
なお、仮想キーボード消去後の横画面でのタッチ範囲のズレについては 4.2.3でも同様だったと思います。
👋 happy new year, I have just ran into another issue of launching PC6001VX 4.2.5 on a 14-arm machine (while it does work for 13-arm machine)
$ lldb /opt/homebrew/Cellar/pc6001vx/4.2.5/bin/PC6001VX
(lldb) target create "/opt/homebrew/Cellar/pc6001vx/4.2.5/bin/PC6001VX"
error: '/opt/homebrew/Cellar/pc6001vx/4.2.5/bin/PC6001VX' doesn't contain any 'host' platform architectures: arm64, armv7, armv7f, armv7k, armv7s, armv7m, armv7em, armv6m, armv6, armv5, armv4, arm, thumbv7, thumbv7k, thumbv7s, thumbv7f, thumbv7m, thumbv7em, thumbv6m, thumbv6, thumbv5, thumbv4t, thumb, x86_64, x86_64, arm64, arm64e, arm64, arm64e
this is the working snapshot for 13-arm
Let me know if you need more info. Thanks!
PC6001VX 4.2.4 works n NetBSD/i386 10.0 + pkgsrc-2024Q1 (with Qt 6.6.2), but after updating Qt to 6.7.1 (from pkgsrc -current) PC6001VX 4.2.4 gets SIGSEGV on startup:
GDB backtrace shows:
Reading symbols from work.i386/PC6001VX_4.2.4_src/PC6001VX...
(gdb) run
Starting program: /usr/pkgsrc/emulators/PC6001VX/work.i386/PC6001VX_4.2.4_src/PC6001VX
[New LWP 17147 of process 10970]
[New process 10970]
[New LWP 1848 of process 10970]
[New LWP 457 of process 10970]
[New LWP 6877 of process 10970]
[New LWP 22793 of process 10970]
Thread 1 "" received signal SIGSEGV, Segmentation fault.
0xac1abed1 in QObject::deleteLater() () from /usr/pkg/qt6/lib/libQt6Core.so.6
(gdb) bt
#0 0xac1abed1 in QObject::deleteLater() () from /usr/pkg/qt6/lib/libQt6Core.so.6
#1 0x00682d67 in P6VXApp::executeEmulation (this=<optimized out>) at src/Qt/p6vxapp.cpp:829
#2 0x00734b9b in P6VXApp::qt_static_metacall (_o=0xbfb58d88, _c=QMetaObject::InvokeMetaMethod, _id=18, _a=0xa64a0d8c) at moc_p6vxapp.cpp:280
#3 0xac1a9db9 in QMetaCallEvent::placeMetaCall(QObject*) () from /usr/pkg/qt6/lib/libQt6Core.so.6
#4 0xac1aeb44 in QObject::event(QEvent*) () from /usr/pkg/qt6/lib/libQt6Core.so.6
#5 0xac1745b3 in QCoreApplication::event(QEvent*) () from /usr/pkg/qt6/lib/libQt6Core.so.6
#6 0xac9e97f5 in QGuiApplication::event(QEvent*) () from /usr/pkg/qt6/lib/libQt6Gui.so.6
#7 0xad2cf99a in QApplication::event(QEvent*) () from /usr/pkg/qt6/lib/libQt6Widgets.so.6
#8 0xad2c8e5b in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/pkg/qt6/lib/libQt6Widgets.so.6
#9 0xad2d1816 in QApplication::notify(QObject*, QEvent*) () from /usr/pkg/qt6/lib/libQt6Widgets.so.6
#10 0x00688026 in P6VXApp::notify (this=0xbfb58d88, receiver=0xbfb58d88, event=0xa64a0d60) at src/Qt/p6vxapp.cpp:1193
#11 0xac174368 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/pkg/qt6/lib/libQt6Core.so.6
#12 0xac174600 in QCoreApplication::sendEvent(QObject*, QEvent*) () from /usr/pkg/qt6/lib/libQt6Core.so.6
#13 0xac1780b4 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/pkg/qt6/lib/libQt6Core.so.6
#14 0xac178326 in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/pkg/qt6/lib/libQt6Core.so.6
#15 0xac39e142 in ?? () from /usr/pkg/qt6/lib/libQt6Core.so.6
#16 0xaa362665 in g_main_dispatch () from /usr/pkg/lib/libglib-2.0.so.0
#17 0xaa3652e9 in g_main_context_iterate_unlocked.constprop () from /usr/pkg/lib/libglib-2.0.so.0
#18 0xaa3659d4 in g_main_context_iteration () from /usr/pkg/lib/libglib-2.0.so.0
#19 0xac39d919 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/pkg/qt6/lib/libQt6Core.so.6
#20 0xa657974f in ?? () from /usr/pkg/qt6/lib/libQt6XcbQpa.so.6
#21 0xac17f4dd in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/pkg/qt6/lib/libQt6Core.so.6
#22 0xac17d108 in QCoreApplication::exec() () from /usr/pkg/qt6/lib/libQt6Core.so.6
#23 0xac9de712 in QGuiApplication::exec() () from /usr/pkg/qt6/lib/libQt6Gui.so.6
#24 0xad2c8dd4 in QApplication::exec() () from /usr/pkg/qt6/lib/libQt6Widgets.so.6
#25 0x0075235f in main (argc=<optimized out>, argv=0xbfb58e64) at src/Qt/pc6001v.cpp:83
(gdb)
I'm not sure if this is environment dependent, but I'd like to know if 6.7.1 is tested on other platforms.
Version 3.3.1 windows 10. I receive an error ?SN Error in 40704 when trying to load and run game Vital Lamp (5, page 2) and get errors with other games also when using real bios for 6001mk2 or 6601 instead of built in compatible rom. I first ran the game with no problem using the built in bios set to 6601 as the model and the game worked. I then tried to unselect use the built in compatible rom and selected 6001mkII as the model. I have the bios roms in the rom directory, set the subdirectory for rom and set the rom to BASICROM.62 in that directory. It boots ok to say pc-6001 mk2 basic, I can select the 5 n60m basic and then page 2. Added the vital lamp tape in right click menu, cload worked but next when I typed run I get a ?SN Error in 40704. So not sure what is wrong as that did not happen with built in bios. Same error occurs if I try 6601 bios not built in and selecting BASICROM.66 from the rom directory and PC-6601 as the model with built in rom unselected, but works if I use built in rom. I then tried several bios rom sets also including this set as an example that works fine in another emulator so I dont think it is the bios unless it needs a different name. https://mega.nz/#!yugQDCqY!KZSDhtveWfBtMtP8Qx8s-GudQO7hdkIxOciNmjjuX7c
The free game appears to be in this collection https://archive.org/details/Neo_Kobe_NEC_PC-6001_2016-02-25 Twinkle stars (5,2) also had a similar problem as another example giving a ?SN Error in 36352 on the run command using the non built in bios.
I just noticed a new release and congratulations.
By the way, there's a chance that the new version (2.2) perceived older than the previous version (2.11) since 2 is numerically lower than 11. Considering many package managers, including Homebrew, follow numerical comparison rather than lexical, we'd better not make unnecessary confusion here. Semantic versioning might be a good reference.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.