** Qt porting and FM-7/77/AV/AV40/EX for Common Source Code Project **
- July 25, 2016
+ September 30, 2018
K.Ohta (whatisthis.sowhat _at_ gmail.com)
1.About
and built with Qt5, for Windows, built with MinGW(32bit).
Source Code:
- https://github.com/Artanejp/common_source_project-fm7/releases/tag/SNAPSHOT_20160725
+
+ https://github.com/Artanejp/common_source_project-fm7/releases/tag/SNAPSHOT_20180930
Additional INFO:
- Binaries will be available, distibute from osdn.jp.
- See, https://osdn.jp/projects/csp-qt/ and
- https://osdn.jp/projects/csp-qt/releases/ .
+
+ Binaries will be available, distibute from osdn.net.
+
+ See, https://osdn.net/projects/csp-qt/ and
+ https://osdn.net/projects/csp-qt/releases/ .
+
Released at:
2.Background
+
Common Source Code Project (CSP) is good emulator writing.
It also distributed with GPLv2, this is good for me.
+
But codes are specified to M$ Visual C.
I'm using GNU/Linux, and I starting to apply FM-7(or later).
+
So, I start to port to GNU/Linux and using Qt4/Qt5.
What you need at least:
-a. Qt5 (neither Qt3 and Qt4) toolkit.
+
+a. Qt5 (neither Qt3 and Qt4) toolkit: Qt5.3 or later.
+
b. Some OpenGL implementation, maybe at leaset OpenGL v2.x .
-c. gcc / g++ (4.7 or later? ) or llvm clang / clang++ (3.5 or later?) toolchain.
+
+c. gcc / g++ (5.0 or later? ) or llvm clang / clang++ (3.5 or later?) toolchain.
+
d. SDL2 (not SDL1.x).
+
e. CMake 2.8 or later.
- * TIPS: If emufoo.exe don't show screen drawing, set environment
- variable QT_OPENGL to software (i.e. Using Windows as VirtualBox's gueat OS).
+f. Needs ffmpeg.See https://ffmpeg.org/ .
+
+g. FFMpeg has bundled only for Win32.Please install for other OSs if not working.
+
+h. Built with Qt5.5 (for Ubuntu 16.04LTS) or Qt 5.10 (for Win32 and Debian/Sid).
+
+i. Now, changed default drawing infrastructure to OpenGL ES2.You can change --opengl option via comman line (or GUI).
+
+* TIPS: If emufoo.exe don't show screen drawing, set environment variable QT_OPENGL to software (i.e. Using Windows as VirtualBox's gueat OS).
3.How to build:
+
After extracting (or git pulled) sourcecodes:
+
$ cd {srctop}/source/build-cmake/{Machine name}/
+
$ mkdir build
+
$ cd build
To configure:
+
$ cmake ..
+
or
+
$ ccmake ..
To build:
+
$ make
To install:
+
$ sudo make install
4.Qt specified notice:
-・Place R@Ms under $HOME/emu{Machine Name}/ , this directory has made
-after first using.
-・Config file, {foo}.ini is writteon on $HOME/.config/emu{Machine Name}/ .
-
+
+ ・Config file (scancode.cfg and foo.ini) has placed (moved) to
+ "~/.config/CommonSourceCodeProject/emufoo/"
+ (for Windows, ".\CommonSourceCodeProject\emudfoo\" ).
+
+ ・BIOS, WAVS, BINS and SAVED STATES have placed (moved) to
+ "~/CommonSourceCodeProject/emufoo/"
+ (for Windows, ".\CommonSourceCodeProject\emudfoo\" ).
+
+ ・All of recorded products (PNG Screenshots, MOVIES, SOUNDS)
+ have *temporally* written to "~/.config/CommonSourceCodeProject/emufoo/"
+ (for Windows, ".\CommonSourceCodeProject\emudfoo\" ).
+
+ ・Added ToolTips and Japanese translations.(2017-01-24)
+
+ ・Place R@Ms under $HOME/CommonSourceCodeProject/emu{Machine Name}/ , this directory has made
+ after first using.
+
+ ・Config file, {foo}.ini is written on $HOME/.config/CommonSourceCodeProject/emu{Machine Name}/ .
+
+ ・Saved state file, {foo}.sta is written on $HOME/CommonSourceCodeProject/emu{Machine Name}/ .
+
+ ・Key code conversion file is written on $HOME/.config/CommonSourceCodeProject/emu{Machine Name}/scancode.cfg .
+
+ This file contains comma separated fields, written at hex-decimal (not decimal),
+ first is M$ Virtual Key Code,
+ second is Qt's scan code.
+
+ ・Common UI components (at src/qt/gui ) are moved to shared lib. libCSPgui.so .
+
+ ・Installer (bash) script is available now; src/tool/installer_unix.sh .
+
+ ・When you place specified WAV files(differ per VM) same directory as ROMs, you can sound sounds: i.e. FDD seek, CMT relay and buttons.
+
5.Status
-a. I tested to build only under Debian GNU/Linux "sid".
+
+a. I tested to build only under Debian GNU/Linux "sid",Ubuntu Linux 16.04LTS "Xenial" for AMD64 (x86_64)
+and MinGW with GCC6 (Windows 32bit).
+
But, perhaps, will succed to build another GNU/Linux OSs or BSD OS variants.
+
* On windows, using MinGW is already okay, but not tested drawing.
+
* Cross building with GNU/Linux's MinGW32 and Qt5.5.1 (for MinGW) is available.
Modify and use build-cmake/config_build_cross_win32.sh and related *.cmake files.
+
* And, you can also build with M$ Visual Studio 2013 or 2015.
-b. Now, I using Qt5 as toolkit, because authors of Qt announced
- "Qt4 is obsolete, will be updated no longer".
+b. Now, I using Qt5 as toolkit, because authors of Qt announced "Qt4 is obsolete, will be updated no longer".
+
+c. All of virtual machines are already ported to Qt (On Oct 29, 2015).
-c. All of virtual machines are already ported to Qt (On Oct 29, 2015):
d. Now using GCC-6.1 with Link Time Optimize to build for distrubuted binaries.
-Upstream repositry:
-https://github.com/Artanejp/common_source_project-fm7
+e. Implemented socket, networking for MZ-2500, but, not tested yet (;´Д`)
+
+Repositry:
+
+ https://github.com/Artanejp/common_source_project-fm7
+
+ https://osdn.net/projects/csp-qt/scm/git/common_source_project-fm7
+
Project Page:
-https://osdn.jp/projects/csp-qt/
-Upstream (Takeda Toshiya San's original code)
-http://homepage3.nifty.com/takeda-toshiya/
+ https://osdn.jp/projects/csp-qt/
+Upstream (Takeda Toshiya San's original code):
+
+ http://takeda-toshiya.my.coocan.jp/
+
+Special thanks to:
+ Ryu Takegami-san, to assist debugging FM-7/77/AV/40/EX .
+ Haserin-san, to assist debugging FM-7/77/AV/40/EX .
+
Changes:
-* SNAPSHOT July 25, 2016
- * Upstream 2016-04-13
- * Bugfix only.
- * [Win32] Build with Qt5.7.0 and GCC-6.1 (cross).
- * [MOVIE_SAVER/OSD] Fix wrong framerate when recording ; this is related by frame skipping. Maybe fixed (3) of http://hanabi.2ch.net/test/read.cgi/i4004/1430836648/705
- * [MOVIE_SAVER/Qt] Fix duplicate opening before closing. Maybe fixed (5) of http://hanabi.2ch.net/test/read.cgi/i4004/1430836648/708 .
- * Build with 8265a0a859ac69ef7c17548851902eab2de6f7f4 (or later).
-
--- Jul 25, 2016 21:59:41 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
-
-* SNAPSHOT June 29, 2016
- * Upstream 2016-04-13
- * Build with FFMPEG 3.0.2 supported libmp3lame.
- * [MOVIE_SAVER/Win32] Fix wrong value of left frames for audio when stopping to record.
- * [OSD/Qt] Fix wrong FPS with not drawing.
- * Build with 3752c12b4b08f9910f3e3b6ad6f7dfbd76342cbb (or later).
-
--- Jun 29, 2016 13:05:15 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
-
-* SNAPSHOT June 21, 2016
- * Upstream 2016-04-13
- * Build with FFMPEG 3.0.2 supported libmp3lame.
- * [Linux] Build with qt.io's official Qt 5.3.1 expect to work with
- Ubuntu 16.04 LTS and Debian 8 "Jessie".
- * [MOVIE_SAVER] (Maybe mostly?) Fix asynchronous both video and audio.
- * [MOVIE_SAVER] Add libmp3lame and vorbis (disable from UI) for audio codec.
- * [Qt] Not linking config and using_flags directly from libCSPgui , libCSPavio and libCSPosd .
- * [MOVIE_SAVER][EMU] Fix stop/restart recording movie when changing/ejecting CARTRIDGEs.
- Now, don't stop when changing/eject cartridge.
- See, http://hanabi.2ch.net/test/read.cgi/i4004/1430836648/699 .
- * [MOVIE_SAVER] Re-enable (and selectable) H.264 for video codec.
- * Build with 85c331b7635ca713e819218b86d65a877b7478f3 (or later).
-
--- Jun 21, 2016 01:07:44 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
-
-* SNAPSHOT June 18, 2016
- * Upstream 2016-04-13 .
- * Build with FFMPEG 3.0.2 .
- * [MOVIE_SAVER] More safer open/close.
- * [MOVIE_SAVER] Fix deadlock when closing movie.
- * [MOVIE_SAVER] Selectable both MPEG4v1 and H.264(libx264) for video codec.
- * [MOVIE_SAVER][Qt] Temporally set video-codec to MPEG4 (not AVC).
- This is issue of discard frames with libx264 by ffmpeg's libavcodec/libavformat.
- This seems to be ffmpeg's issue, not my program.
- * Build with 629f7d70816c04b38c3ab8cc277147a6bd2c2d2a (or later).
-
--- Jun 18, 2016 03:32:06 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
+* To see older changes, read ChangeLog and 000_gitlog.txt.
+* SNAPSHOT September 30, 2018
+ * Upstream 2018-09-30 .
+ * [General/I18N] Update Japanese translations.
+ * [FMGEN] Initial implementation of OPN2 (YM2612) from OPNA.
+ * [VM/FMTOWNS] WORKING IN PROGRESS, WILL NOT BUILD due to still implement partly.
+ * Built with 699bbf012e9670269c408925525a5b4ea27dd418 (or later).
-* SNAPSHOT June 11, 2016
- * Upstream 2016-04-13 .
- * Use osdn.jp to distibute binaries.
- https://osdn.jp/projects/csp-qt .
- * [MOVIE_SAVER] Use ffmpeg internal aac codec, because faac or fdk_aac are not *Free* .
- * [VM/MOVIE_SAVER] Fix stopping when changing cartridge, now refer to upstream (split movies).
- * [Qt/Win32] Fix not work with WindowsXP, using homebrew version of ffmpeg-2.8.7.
- * Build with 89d31ce8daa733ea4a0c38f0a1890d3a0fcfce38 (or later).
-
--- Jun 11, 2016 05:09:55 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
-
-* SNAPSHOT June 09, 2016
- * Upstream 2016-04-13 .
- * Now, all of binaries are built with ffmpeg-2.8.7 at GNU/Linux, with ffmpeg-3.0 at Windows.
- * Please read README.ffmpeg.txt .
- * [FM7/Disk] Add exceptions for Xanadu Scenario 2, this has not booted with changes 49dceaca9401d3c6037cb51ec013ca032ff0e83c .
- * Build with 64df71cd492be91289f883224640f42cace090ed (or later).
-
--- Jun 09, 2016 05:50:50 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
-
-* SNAPSHOT June 08, 2016
- * Upstream 2016-04-13 .
- * Add movie saver, using libav with x264.
- * Now, all of binaries are built with ffmpeg-3.0.
- * Build with 2142d5c7426e21cfeedbaea0450f238f8b4d7d38 (or later).
-
--- Jun 08, 2016 07:34:45 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
-
-* SNAPSHOT May 23-2, 2016
- * Win32 binary only RELEASE
- * Fix unable to run with some natibve Windows environment.
- * Build with c1448dc84f5439c7c8931614a8397dbefb6383da .
-
--- May 24, 2016 22:42:00 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
-
-* SNAPSHOT May 23, 2016
- * Upstream 2016-04-13 .
- * [Win32] Now built with -msse -msse2 . You can run only later than Pentium4 .
- * Move FILEIO:: FIFO:: COMMON:: to libCSPemu_utils .
- * Make OSD:: to inherited by OSD_BASE:: .
- * [Win32] Disable LINKFLAGS with "-static-libgcc -static-libstdc++" to reduce size of executions, now, bundled libstc++ is for gcc-5 .
- * [Win32/Build] Support build with MSYS2 (but not display because MSYS2's Qt was build without OpenGL).
- * [Linux] Build shared libraries with Link-Time-Optimize, reduce size of libs.
- * [X1/VM] Configurable buttons for X1/Turbo/Turbo Z.
- * [FM7/FDC] Set MB8877_NO_BUSY_AFTER_SEEK. Fixed unable to boot OS0. Thanks to Anna_Wu.
- * [FM77AV/MB61VH010] ALULINE: Reduce CPU usage (at delta X > delta Y).
- * [UI/Qt/DRAW] Fix crash sometimes when exit emulator.
- * Build with 1c1ddc85dfa7456b1ce48662c2e2930dcc4fc9d8 (or later).
-
--- May 23, 2016 02:22:07 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
+-- September 30, 2018 15:50:18 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
Upstream changes:
------
-4/13/2016
-
-[WINMAIN] improve auto key for the case to switch upper/lowercase with capslock
-[EMU/DEBUGGER] fix issue that u command may cause the infinite loop
-
-[VM/DATAREC] support to detect the frequency of signal
-[VM/DATAREC] fix to always adjust zero position of wave signal
-[VM/UPD1990A] fix not to check clk signal is low when stb signal is raised
-[VM/UPD7810] support debugger
-[VM/UPD7810] support MOV A,S opecode
-[VM/UPD7810] fix not to change V register (thanks PockEmul)
-
-[PC2001] support NEC PC-2001
-[PC2001] fix cpu clock
-[PC2001] support beep sound
-[PC2001/IO] support rtc control signals
-[YALKY] support Yuasa Kyouiku System YALKY
-[YALKY/IO] improve data recorder controller
+* To see older upstream's changes, read history.txt.
+
+9/30/2018
+
+[COMMON/FILEIO] improve Fseek for compressed file by gzip
+[EMU] improve to mount/unmount hard disk image in reset() if not hot swappable
+[EMU/DEBUGGER] add commands for checkpoint
+[EMU/DEBUGGER] improve to read/write files in initial current directory
+
+[VM/DISK] improve for case 2D disk is inserted to 2DD drive (thanks Mr.Sato)
+[VM/HARDDISK] support Virtual98 hdd image
+[VM/HARDDISK] improve for solid image file
+[VM/IO] improve debug log
+[VM/MSM58321] fix pulse event (thanks Mr.Artane.)
+[VM/SCSI_DEV] add is_hot_swappable
+[VM/SCSI_HDD] improve to mount/unmount image in reset() if not hot swappable
+[VM/SASI_HDD] support SASI hard disk drive
+[VM/SN76489AN] fix save/load state function
+[VM/UPD71071] fix verify command
+
+[FM77L4] add eFM77L4 codes (thanks Mr.Artane.)
+[MZ80A] improve to switch 2D/2DD drive type
+[MZ80B] improve to switch 2D/2DD drive type
+[MZ1500] improve to switch 2D/2DD drive type
+[MZ2500] improve to switch 2D/2DD drive type
+[MZ2800/FLOPPY] improve to switch 2D/2DD drive type
+[MZ2800/SASI] support SASI I/F and HDD (partial)
+[PC98XA] support NEC PC-98XA
+[PC9801/MEMBUS] fix save/load state function
+[X1TURBO/FLOPPY] improve to switch 2D/2DD drive type (thanks Mr.Sato)
-----