Commit Graph

11016 Commits

Author SHA1 Message Date
David Korth
a5a6d140c1 rom-properties 2.3 2024-03-03 13:25:30 -05:00
David Korth
fcd37b4d19 [debian] control: Use "<< 2.3", not "< 2.3".
Due to historical reasons, "<" is actually "<=".

Reference: https://web.mit.edu/ebj/Desktop/ebj/MacData/afs/sipb/project/debathena/lintian/www/tags/obsolete-relation-form.html
2024-03-03 13:24:43 -05:00
David Korth
b4c8e753e0 [cmake] cmake_uninstall.cmake.in: Use EXECUTE_PROCESS() instead of EXEC_PROGRAM().
EXECUTE_PROCESS() has been around since at least 3.0, and EXEC_PROGRAM()
is deprecated as of 3.28:

CMake Warning (dev) at cmake/cmake_uninstall.cmake:12 (EXEC_PROGRAM):
  Policy CMP0153 is not set: The exec_program command should not be called.
  Run "cmake --help-policy CMP0153" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  Use execute_process() instead.
2024-03-03 12:51:03 -05:00
David Korth
3fee9e5e09 [kde] RomDataViewPrivate::createOptionsButton(): Use HelpRole for the Options button.
On Qt4 and Qt5, we could add a stretch layout item to the
QDialogButtonBox's layout directly. On Qt6, this doesn't seem
to work properly, since a bunch of internals were changed.

Using HelpRole instead of ActionRole seems to provide the same effect
on Qt6, and I tested that it works on Qt5 as well, so it will probably
work on Qt4. (TODO: Test it.)

Note that since the button has HelpRole, it might cause the
QDialogButotnBox to emit the helpRequested() signal. Nothing appears
to connect to this signal by default, so it's not an issue.
2024-03-03 01:29:02 -05:00
David Korth
d0a91c881e [libromdata] Intellivision: FIXME: 0x5E and 0x5F are arrows, similar to PETSCII. 2024-03-02 23:41:50 -05:00
David Korth
13a95183eb [libromdata] Intellivision: Initial Intellivision ROM image parser.
There's a bit of weirdness with Intellivision due to its unusual word
size. The General Instrument CP1610 is a 16-bit CPU, but uses 10-bit
opcodes. Because of this, Mattel used 10-bit ROMs. Some of the fields
in the ROM header use 16-bit addresses, split up into two 10-bit words.
The ROM file uses 16-bit big-endian for words, so in order to decode
these addresses, we have to take two 16-bit big-endian values, read
the low 8 bits of each, and combine it into a 16-bit value.

NOTE: ROM images must have a .int or .itv file extension, since the
Intellivision ROM header doesn't have a magic number.
2024-03-02 16:47:14 -05:00
David Korth
77c7f7fada [libromdata] ColecoVision.cpp: s/ColecoVisoin/ColecoVision/ 2024-03-02 16:07:37 -05:00
David Korth
3fea77c1c0 [libromdata] colecovision_structs.h -> cv_structs.h
Also, remove an Atari 7800 comment left over from when I created
the ColecoVision class by copying the Atari7800 class.
2024-03-02 15:57:30 -05:00
David Korth
81c505cca6 [libwin32common] ComBase.hpp: Add NOVTABLE to the base class definitions.
The base classes are never used directly, so we don't need MSVC to emit
vtables for them.

Code size difference: (64-bit Windows 7, MSVC 2022 17.6.5, release build, with LTO)

   text    data     bss     dec     hex filename
1606944   14976       0 1621920  18bfa0 romdata-4.dll [before]
1606628   14976       0 1621604  18be64 romdata-4.dll [after]
   -316       0       0    -316    -13c Difference

   text    data     bss     dec     hex filename
 532639    7776       0  540415   83eff rom-properties.dll [before]
 529255    7776       0  537031   831c7 rom-properties.dll [after]
  -3384       0       0   -3384    -d38 Difference
2024-03-02 15:38:35 -05:00
David Korth
c2865a2088 README.md: Mention ColecoVision for v2.3. 2024-03-02 14:29:22 -05:00
David Korth
3a4a8a75f7 [kde] ITab: De-virtualize hasDefaults().
Make it a non-virtual function that returns a new member variable
m_hasDefaults. This variable is initialized in the ITab constructor
using an optional parameter, which defaults to true.

This does increase the class size slightly (by 1 or 4 bytes), but
the overall code size is decreased due to the removal of a virtual
function.

Code size difference: (64-bit Gentoo Linux, gcc-13.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
 584571   22016      80  606667   941cb rom-properties-kf5.so [before]
 584499   22016      80  606595   94183 rom-properties-kf5.so [after]
    -72       0       0     -72     -48 Difference

   text    data     bss     dec     hex filename
 597810   29384      80  627274   9924a rom-properties-kf6.so [before]
 597758   29384      80  627222   99216 rom-properties-kf6.so [after]
    -52       0       0     -52     -34 Difference

NOTE: Can't do this for the GTK version because glib interfaces don't
allow storing any data. (C++ doesn't really have "interfaces"...)

The Win32 version uses messages to enable/disable the "Defaults"
button instead of a variable or virtual function.
2024-03-02 02:36:17 -05:00
David Korth
c3410e7d97 [kde] Pass QSize by value instead of by const ref.
QSize contains two 32-bit int values, which can be passed in a single
64-bit register (or two 32-bit registers). Doing so reduces memory
accesses and pointer indirections.

Code size difference: (64-bit Gentoo Linux, gcc-13.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
 584587   22016      80  606683   941db rom-properties-kf5.so [before]
 584571   22016      80  606667   941cb rom-properties-kf5.so [after]
    -16       0       0     -16     -10 Difference

   text    data     bss     dec     hex filename
 597810   29384      80  627274   9924a rom-properties-kf6.so
 597810   29384      80  627274   9924a rom-properties-kf6.so
      0       0       0       0

TODO: Find more small Qt structs that are currently being passed by
const ref and change them to be passed by value.
2024-03-02 02:16:08 -05:00
David Korth
7e403afb10 [librptexture] rp_image::unswizzle_AExp(): Zero out the alpha channel in the sBIT metadata.
AExp uses the alpha channel as a scaling value for RGB.

The alpha channel is set to 255 after decoding, so the image
effectively has no alpha channel. (fully opaque)
2024-03-01 21:13:28 -05:00
David Korth
d638c4aa86 [cmake] gcc.cmake: Specify -fno-math-errno.
We don't need to check errno for any math functions, and this prevents
certain inlining optimizations. In particular, lrintf() can't be inlined
if we don't specify this, even though glibc's documentation says that
its lrintf() implementation doesn't set errno.

Assembly comparison of manual truncation vs. lrintf() with
-fno-math-errno:

amd64:
- Manual:   cvttss2si
- lrintf(): cvtss2si (note the single t)

i386 with SSE disabled:
- Manual:   fistp with control word manipulation
- lrintf(): fistp without control word manipulation

Presumably the control word on manipulation changes the rounding mode.
lrintf() without errno doesn't change the rounding mode and relies on
the default rounding, which matches amd64.

TODO: MSVC equivalent, if available.
2024-03-01 20:29:11 -05:00
David Korth
b464888faa [librptexture] rp_image_ops.cpp: Use lrintf() to explicitly round floats to int.
Casting to uint8_t has different behavior on 64-bit amd64 compared to
32-bit i386, since i386 defaults to x87 math.

NOTE: Specifying -mfpmath=sse on i386 results in the same behavior as
amd64, but we can't rely on that.

On amd64: (Gentoo Linux)
- 0.235294 * 255.0f -> 60.000000

On i386: (Ubuntu 16.04)
- 0.235294 * 255.0f -> 59.999996

This broke the YCoCg image tests. With lrintf() and re-generated YCoCg
images, it now passes on both amd64 and i386.

NOTE: Simply using lrintf() without re-generating the YCoCg images
doesn't work, since the truncation results didn't always match how
lrintf() handles values. However, lrintf() is consistent across
CPU architectures, so this fixes things everywhere.

NOTE: AppVeyor uses Ubuntu 18.04, which might explain why it isn't
failing there...
2024-03-01 20:10:52 -05:00
David Korth
c9e049cb2d [kde] Set CMAKE_AUTOMOC=ON in the base kde directory.
It seems to be on by default for KF5 and KF6, but let's explicitly
turn it on anyway.

[kde4] Removed CMAKE_AUTOMOC=ON, since it's now in the base kde directory.
2024-03-01 19:16:40 -05:00
David Korth
6d22d28dc7 [kde/tests] Create separate kde4, kf5, and kf6 subdirectories.
The subdirectories are needed in order to prevent collisions with e.g.
different versions of automoc.

When building for KDE4 and KF5 on Ubuntu 16.04, with tests enabled,
this happened:

[ 81%] Building CXX object src/kde/tests/CMakeFiles/ListDataSortProxyModelTest_kf5.dir/ListDataSortProxyModelTest_kf5_automoc.cpp.o
In file included from src/kde/tests/ListDataSortProxyModelTest_kf5_automoc.cpp:2:0:
src/kde/tests/moc_ListDataModel.cpp:13:2: error: #error "This file was generated using the moc from 4.8.7. It"
.#error "This file was generated using the moc from 4.8.7. It"
  ^
src/kde/tests/moc_ListDataModel.cpp:14:2: error: #error "cannot be used with the include files from this version of Qt."
.#error "cannot be used with the include files from this version of Qt."
  ^
src/kde/tests/moc_ListDataModel.cpp:15:2: error: #error "(The moc has changed too much.)"
.#error "(The moc has changed too much.)"
  ^

Using subdirectories fixes this.

kde/tests/kde4: Set CMAKE_AUTOMOC=ON, since it defaults to OFF for
some reason. (TODO: Do this in the base kde directory?)
2024-03-01 19:13:49 -05:00
David Korth
e5adc1a218 [win32] rp-it_IT.rc: Update some control sizes for the Italian translations. 2024-03-01 19:00:37 -05:00
David Korth
5dceb1514c [libwin32darkmode] DarkModeCtrl.hpp: #include <assert.h>, not <cassert>.
This file is included by svrplus.c, so we can't use C++ namespace headers.
Otherwise, we end up with a wacky error:

MSVC\14.36.32532\include\yvals_core.h(28): STL1003: Unexpected compiler, expected C++ compiler.
MSVC\14.36.32532\include\yvals_core.h(29,1): fatal  error C1189: #error:  Error in C++ Standard Library usage
2024-03-01 18:55:55 -05:00
David Korth
9ae0e2ada1 [locale] Add more Italian translations from MaRod92.
Includes an svrplus .rc file.

TODO: Adjust the .rc files for dialog sizing if necessary.
2024-03-01 18:38:18 -05:00
David Korth
990bc18c04 [kde] Some more PluginFactory cleanups.
- KDE4: Remove the `QT_VERSION < 0x050000` check. This is a remnant
  from a while back when I attempted to use the same file for both
  versions, which didn't work.

See commit 4c5122d7de.
(Added preliminary KDE5 support.)
2024-03-01 18:30:29 -05:00
David Korth
b229f2a196 [librpfile] RecursiveScan_posix.cpp: Allow .jxl files.
We're not using JPEG-XL right now, but I'm thinking of maybe adding
support for JPEG-XL at some point.
2024-03-01 18:25:43 -05:00
David Korth
e9a4c8092f [thumbnailer-dbus] rp-thumbnailer-dbus.c: Reduce struct size and other fixes.
- struct _RpThumbnailer: Rearrange fields to reduce the struct size.
  On 64-bit, reduced from 104 bytes to 96 bytes.

- Use G_DEFINE_TYPE_EXTENDED() instead of manually defining types. There
  was a comment saying we couldn't do this because G_DEFINE_DYNAMIC_TYPE()
  requires a GTypeModule, but we don't need to use the dynamic version.

  - The class_init and init functions lose their data parameters when
    using G_DEFINE_TYPE_EXTENDED(). We weren't using those parameters
    anyway, so that's not a problem.

- rp_thumbnailer_process(): Use g_strdup_printf() instead of the
  complex and potentially error-prone manual calculation. It might use
  some more memory and CPU cycles due to two strings (dir and filename),
  but is likely to be more stable (and is definitely more readable).
2024-03-01 18:21:54 -05:00
David Korth
72238fb034 [cmake] Set -Werror=strict-aliasing to prevent strict aliasing errors.
[libromdata] Nintendo3DSFirm: Fix a strict aliasing error on Ubuntu 16.04. (gcc-5.4.0)

In file included from src/libromdata/stdafx.h:62:0,
                 from src/libromdata/Handheld/Nintendo3DSFirm.cpp:9:
src/libromdata/Handheld/Nintendo3DSFirm.cpp: In member function ‘virtual int LibRomData::Nintendo3DSFirm::loadFieldData()’:
src/libromdata/Handheld/Nintendo3DSFirm.cpp:369:97: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
   const uint32_t first4 = be32_to_cpu(*(reinterpret_cast<const uint32_t*>(firmHeader->signature)));
                                                                                                 ^
src/libromdata/../librpcpu/byteswap_rp.h:63:52: note: in definition of macro ‘__swab32’
 #  define __swab32(x) ((uint32_t)__builtin_bswap32(x))
                                                    ^
src/libromdata/Handheld/Nintendo3DSFirm.cpp:369:27: note: in expansion of macro ‘be32_to_cpu’
   const uint32_t first4 = be32_to_cpu(*(reinterpret_cast<const uint32_t*>(firmHeader->signature)));
                           ^
cc1plus: some warnings being treated as errors
2024-03-01 18:04:12 -05:00
David Korth
1a6a7bb80c [librpbase] RpPngWriter: Reset the file pointer on error.
Otherwise, we can end up with a valid file (isOpen() returns true),
but a NULL png_ptr, resulting in assertions or bogus errors.

This happened when $HOME wasn't writable due to the bad AppArmor profile.
2024-03-01 02:29:28 -05:00
David Korth
ff6c90736d [rpcli] Disable the AppArmor profile for now.
It's not allowing writes to the user's home directory, which prevents
extracting images.

TODO: Get it working...

The rp-download profile is still enabled, since it's only allowed to
write to the cache directory.
2024-03-01 02:25:04 -05:00
David Korth
baa576f932 [kf5] Install KDE service menus in ${SERVICES_INSTALL_DIR} if older than KF5 5.85.
The path was changed to a common KIO directory in 5.85.

rom-properties-kf5.install: Add the ${SERVICES_INSTALL_DIR} entry, and
also remove the KIO install entry, since that was split out into the
rom-properties-kio-servicemenus package.

TODO: Don't install rom-properties-kio-servicemenus if KF5 is earlier
than 5.85, or install it anyway for forward compatibility?

[kf5] On Ubuntu 16.04, ${SERVICES_INSTALL_DIR} is incorrectly set to
the KDE4 directory. Not usre if it's because kdelibs5 for KDE4 is also
installed... As a workaround, if ${SERVICES_INSTALL_DIR} contains kde4,
change it to "share/kservices5".
2024-03-01 01:37:59 -05:00
David Korth
3a78005d99 [kde] rp-convert-to-png.desktop: Add "ServiceTypes" and "Encoding".
ServiceTypes is likely only used by KF5. (Unsure when it was switched
from X-KDE-ServiceTypes to ServiceTypes.)

KF6 does not use either ServiceTypes key.
2024-03-01 01:22:27 -05:00
David Korth
5f4ac1ea0f [librptexture] ImageDecoder_ASTC, ImageDecoder_Linear: gcc <9.x throws an error if certain const pointers are marked as shared. (OpenMP)
Only mark them as shared if _OPENMP >= 201511.

TODO: Verify MSVC.
2024-03-01 01:21:54 -05:00
David Korth
eaaed5e3bb [kde4,kf5] PluginFactory(KDE4|KF5).cpp: The registerPlugin<> parameters aren't needed here.
They were deprecated in KF5 5.89, but it turns out they weren't actually
needed in KDE4 either:

- Keyword is defaulted to QString() in older versions. In newer
  versions, there's an overload that doesn't take a keyword.

- Instantiation is done based on inheritance.

Tested on Ubuntu 16.04 with dolphin-15.12.3 and KF5 5.18.0.

TODO: Verify that this works on KDE4.
2024-03-01 00:07:58 -05:00
David Korth
443cb500d3 [rp-download] rp-download.cpp: time() is needed on 32-bit Ubuntu 16.04. 2024-03-01 00:07:33 -05:00
David Korth
82bf55e5fa [kde] XAttrView: s/Reomve/Remove/ 2024-02-29 23:37:35 -05:00
David Korth
99aed172ac [kf5] XAttrViewPluginFactoryKF5: Fix XAttrView on KF5 older than 5.89.0.
The registerPlugin<> call incorrectly specified XAttrViewPropertiesDialogFactory
instead of XAttrViewPropertiesDialogPlugin.
2024-02-29 23:36:43 -05:00
David Korth
b408e8c5f8 [debian] Install xattrview-(kde4|kf5).desktop. 2024-02-29 23:27:54 -05:00
David Korth
92c911d253 [kde4] CMakeLists.txt: Install xattrview-kde4.desktop. 2024-02-29 23:26:45 -05:00
David Korth
be1361ec2c [amiibo-data] amiiboc.cpp: fgets() on Ubuntu 16.04 (glibc-2.23) uses mmap() for some reason.
Allow mmap(), mmap2(), and munmap().
2024-02-29 23:11:15 -05:00
David Korth
1cf9342205 [kde] Moved the plugin interface code to a subdirectory, plugins/.
This has the separate ExtractorPlugin and OverlayIconPlugin,
as well as RomPropertiesDialogPlugin and RomThumbCreator.
2024-02-29 22:37:19 -05:00
David Korth
c72c148883 [kde] Don't use a forwarder plugin for OverlayIconPlugin anymore.
Same changes that were done for ExtractorPlugin.

Code size difference: (64-bit Gentoo Linux, gcc-13.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
 588702   22272      80  611054   952ee rom-properties-kf5.so [before]
 584587   22016      80  606683   941db rom-properties-kf5.so [after]
  -4115    -256       0   -4371   -1113 Difference

   text    data     bss     dec     hex filename
  17374    1088      48   18510    484e overlayiconplugin_rom-properties-kf5.so [before]
  26116    1424      48   27588    6bc4 overlayiconplugin_rom-properties-kf5.so [after]
  +8742    +336       0   -9078   -2376 Difference

Code size difference: (64-bit Gentoo Linux, gcc-13.2.0, release build, with LTO)

   text    data     bss     dec     hex filename
 535457   22224      72  557753   882b9 rom-properties-kf5.so [before]
 532309   22000      72  554381   8758d rom-properties-kf5.so [after]
  -3148    -224       0   -3372    -d2c Difference

   text    data     bss     dec     hex filename
  17314    1088      40   18442    480a overlayiconplugin_rom-properties-kf5.so [before]
  25327    1424      40   26791    68a7 overlayiconplugin_rom-properties-kf5.so [after]
  +8013    -336       0   -8349   -209d Difference

The size increase in overlayiconplugin is more than double the decrease
in the main plugin this time, even with LTO...
2024-02-29 22:20:24 -05:00
David Korth
fcf81108e1 [kde] Don't use a forwarder plugin for ExtractorPlugin anymore.
Metadata extraction was originally added in v1.4, but the shared
libromdata.so wasn't implemented until v2.0. The forwarder plugin
made sense then, since otherwise we'd need to statically link the
full libromdata.a, but now that it's a shared library, we can just
link libromdata.so and avoid the forwarder nonsense.

ExtractorPlugin no longer needs libdl, since it doesn't use dlopen().
Likewise, the factory method has been removed, since it was only used
by the forwarder plugin.

The ExtractorPlugin shared library now has two .cpp files:
- ExtractorPlugin.cpp
- RpQUrl.cpp

RpQUrl is normally in rom-properties-(kde4|kf5|kf6), but it's small
enough that we can compile it for the plugin separately and statically
link it in without too much overhead.

Split the RomPropertiesKDE namespace redefinition macros into RpQtNS.hpp.
This lets us include it without including the whole RpQt.hpp.
(RpQt.hpp includes RpQtNS.hpp for compatibility purposes.)

TODO: Do the same for OverlayIconPlugin.
Also, verify plugin size differences.

NOTE: Conditional inclusion for Qt5 vs. Qt6 JSON doesn't work properly.
Automoc complains, and the build fails:

AutoMoc warning:
  "src/kde/ExtractorPlugin.hpp"
Could not find dependency file "kf6/ExtractorPlugin.json"

To fix this, we need separate header files for KF5 and KF6.
Hence, ExtractorPluginKF5.hpp and ExtractorPluginKF6.hpp.

Add #include <QtCore/QObject> to the ExtractorPlugin*.hpp files,
since the KF6 build is complaining that QObject isn't defined.
(This replaces the qglobal.h include.)

Code size difference: (64-bit Gentoo Linux, gcc-13.2.0, release build, no LTO)

   text    data     bss     dec     hex filename
 595596   22584      80  618260   96f14 rom-properties-kf5.so [before]
 588702   22272      80  611054   952ee rom-properties-kf5.so [after]
  -6894    -312       0   -7206   -1c26 Difference

   text    data     bss     dec     hex filename
  15925    1088      48   17061    42a5 kfilemetadata_rom-properties-kf5.so [before]
  29230    1600      48   30878    789e kfilemetadata_rom-properties-kf5.so [after]
 +13305    +512       0  +13817   +35f9 Difference

Code size difference: (64-bit Gentoo Linux, gcc-13.2.0, release build, with LTO)

   text    data     bss     dec     hex filename
 542255   22568      64  564887   89e97 rom-properties-kf5.so [before]
 535457   22224      72  557753   882b9 rom-properties-kf5.so [after]
  -6798    -344      +8   -7134   -1bde Difference

   text    data     bss     dec     hex filename
  15853    1088      40   16981    4255 kfilemetadata_rom-properties-kf5.so [before]
  27856    1576      40   29472    7320 kfilemetadata_rom-properties-kf5.so [after]
 +12003    +488       0  +12491   +30cb Difference

Not sure why the size increase in the kfilemetadata plugin is almost
double the decrease in the main plugin... (LTO might help?)
2024-02-29 21:53:11 -05:00
David Korth
5f50391a07 [kde] Move openQUrl() from RpQt.cpp to RpQUrl.cpp.
I'm planning on reworking the "forwarder" plugins to not be forwarders,
since libromdata.so makes that unnecessary. openQUrl() is needed by the
two plugins, so move it to RpQUrl.cpp to reduce the number of files
that will be needed in the plugins.
2024-02-29 21:25:02 -05:00
David Korth
28e8b3ee60 [libromdata] CBMDOS: Show the disk name as the Title in metadata properties. 2024-02-29 21:14:15 -05:00
David Korth
ddb9af4452 [libromdata] CBMDOS: Read the disk BAM/header in the constructor.
loadFieldData(), and later loadMetaData(), will make use of the
already-loaded BAM/header instead of loading it again.

remove_A0_padding(): Don't write to `buf` anymore. Instead, return the
actual string length without the A0 padding. This allows us to use the
function without modifying the stored BAM/header.
2024-02-29 20:09:46 -05:00
David Korth
bc116f592d [libromdata] CBMDOS: remove_A0_padding() is supposed to be part of the private class.
Also, mark it as static.
2024-02-29 19:56:53 -05:00
David Korth
25053d274a [kf6] Remove .desktop and .desktop.in files.
These aren't used in KF6 (and in later versions of KF5).
The KF6 CMakeLists.txt file doesn't reference these at all.
2024-02-29 19:34:53 -05:00
David Korth
4377ba36b7 [kf6] *.json, *.json.in: Remove ServiceTypes.
KF6 no longer uses ServiceTypes. Instead, the service type is implied
by the plugin's directory.
2024-02-29 02:00:26 -05:00
David Korth
26e0287972 [libromdata] CBMDOS: Use application/x-cbm-* instead of application/x-*.
TODO: Maybe we should switch to application/vnd.commodore.* ?

[xdg] rom-properties.xml: Remove a duplicate D71 definition.
Added aliases for the old MIME types, plus:
- application/x-c64-datadisk (D64)
- application/x-c64-rawdisk (G64)
2024-02-28 18:34:30 -05:00
David Korth
b9ef78b66e Merge branch 'feature/ColecoVision' 2024-02-27 22:48:40 -05:00
David Korth
1ea9eb036a [win32] RP_ContextMenu: Missed a few get()s. 2024-02-27 22:47:52 -05:00
David Korth
55e1464fc0 NEWS.md, README.md: Mention ColecoVision. 2024-02-27 19:45:17 -05:00
David Korth
90ff512ec5 [libromdata] ColecoVisionPrivate::addField_z80vec(): Added some more opcodes.
Ignoring the NZ flag for JR NZ, dd.

Not adding some opcodes that make no sense for an interrupt vector, e.g.
Blockade Runner (NA) has "F5 C5 D5" (PUSH AF; PUSH BC; PUSH DE).
2024-02-27 19:41:16 -05:00