** Qt porting and FM-7/77/AV/AV40/EX for Common Source Code Project **
- August 19, 2016
+ January 13, 2019
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_20160819
+
+ https://github.com/Artanejp/common_source_project-fm7/releases/tag/SNAPSHOT_20190113
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/
-Changes:
+Upstream (Takeda Toshiya San's original code):
-* SNAPSHOT August 19, 2016
- * Upstream 2016-04-13
- * [WIN32] Replace libICU to homebrew, fix not starting.
- * [OSD/MOVIE_SAVER] Fix frames to enqueue to MOVIUE_SAVER, as if VIDEO FPS >= RECORD FPS.
- * [MOVIE_LOADER] Sync A/V on playing MOVIE.
- * Built with GIT 77380a77b25ca06965b912c84509e5c91085aeb1 (or later) .
-
--- Aug 19, 2016 23:12:36 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
-
-* SNAPSHOT August 15, 2016
- * Upstream 2016-04-13
- * [OSD][MOVIE_SAVER] Maybe correctness frame(s) counting with 60fps ヽ(=´▽=)ノ
- * [MOVIE_SAVER] Fix sometimes crashing when stop to save movie.
- * [PX7/MOVIE_LOADER] Sound Laser Disc, but not be smooth.
- * [MOVIE_SAVER][PC8801][PC9801] Adjust sound frequency when OVERRIDE_48000Hz , still choppy.
- * Built with GIT 3f4c809912dc92cdeb34d8ecdebe0087aa7f37b3 (or later) .
-
--- Aug 16, 2016 02:40:55 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
-
-* SNAPSHOT August 09, 2016
- * Upstream 2016-04-13
- * [PX7] Add movie loader for LD, but not tested enough yet.
- * [MOVIE_SAVER/OpenGL] Add locking around drawing buffer.
- * [BUILD] Update FFMPEG to 3.1.1 .
- * [FFMPEG/LINUX] Enable OpenCL for ffmpeg @linux.You need libOpenCL.so.1 to use homebrew build.
- * [FFMPEG/WIN32] Enable DXVA2 for video-decoding accelerator.
- * [MOVIE_SAVER] Synchronous OPEN->ENCODEING->CLOSING.
- * [UI/MOVIE_SAVER] DO NOT change state of "Save as movie" without *real* starting/stopping.
- * [Draw/OpenGL] Optimize GLSL's by https://github.com/aras-p/glsl-optimizer .
- * Built with GIT fc7a03a9337287414e00777464ab273c4f44ea44 (or later) .
-
--- Aug 10, 2016 01:42:51 +0900 K.Ohta <whatisthis.sowhat@gmail.com>
+ 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 .
+ Developers of Ootake, give hints of emuPCEngine (from source code).
+
+Changes:
+
+* To see older changes, read ChangeLog and 000_gitlog.txt.
+
+* SNAPSHOT January 13, 2019
+ * Upstream 2019-01-11 .
+ * [UI/Qt] OSD: Joystick-To-Keyboard: Add "1235" feature.Useful for DELPHIS (for FM-8/7) etc.
+ * [UI/Qt] OSD: Apply "Joystick to Keyboard" feature.
+ * [BUILD] Separate threads definition for LTO.
+ * [WIN32] Update DLLS.Now using Qt5.12 and FFMpeg 4.1 and X264 157 API.
+ * [VM/I386][NEWDEV] Update to upsteream.
+ * [VM/PC8001] Load "FONT.ROM" as fallback, if "KANJI1.ROM" don't exists.
+ * [NOTE] Now implementing FM-Towns, but still not buildable.
+ * Built with c2d34b15d4c1d374e61a3ab8f66e1cca2ac926bd (or later).
+
+-- January 13, 2019 01:55:36 +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.
+
+1/11/2019
+
+[PC8001] support NEC PC-8001
+[PC8001] support NEC PC-8001mkII
+[PC8801] support NEC PC-8801
+[PC8801] support NEC PC-8801mkII
+
+
+12/28/2018
+
+[EMU] support to insert blank 2D/2DD/2HD disk image
+
+
+12/27/2018
+
+[PC6001/PSUB] improve keyboard irq
+[PC8801/PC88] improve initial memory map when CD BIOS is loaded
+[PC8801/PC88] support CD-DA fade in/out
+
+
+12/18/2018
+
+[VM/I386] improve i386 core based on MAME 0.204
+[VM/SCSI_CDROM] improve vendor specific command for NEC CD-ROM^2
+[VM/SCSI_DEV] fix to write buffer when current command is not WRITE6/10/12
+[VM/SCSI_DEV] fix Request Sense command to get correct data length
+[VM/SCSI_HDD] fix not to write buffer when current command is not WRITE6/10/12
+
+[PC8801/PC88] improve initial memory map when CD BIOS is loaded
+[PC8801/PC88] revert screen renderer fixes in 12/1/2018 except scanline issues
+[PC8801/PC88] fix dmac registers to clear higher 16bits of pair32_t
+[PC8801/PC88] fix dmac to read i/o in verify mode
-----