3.7.1: Difference between revisions
Jump to navigation
Jump to search
m (→cleanup) |
mNo edit summary |
||
Line 11: | Line 11: | ||
** -default on cmdline should skip loading system files such as kernal from <tt>~/.local/share/vice/$EMU/</tt>. | ** -default on cmdline should skip loading system files such as kernal from <tt>~/.local/share/vice/$EMU/</tt>. | ||
* Add some simple checksum algorithm to common code (CRC32 is probably fine) - right now eg the kernal loading uses simple additive checksum, which is really bad :) | * Add some simple checksum algorithm to common code (CRC32 is probably fine) - right now eg the kernal loading uses simple additive checksum, which is really bad :) | ||
Line 149: | Line 102: | ||
** decide if we really need that message in the log, perhaps it can be surrounded with <tt>#ifdef DEBUG / #endif</tt> so the messages are only shown when compiling with <tt>--enable-debug</tt>? | ** decide if we really need that message in the log, perhaps it can be surrounded with <tt>#ifdef DEBUG / #endif</tt> so the messages are only shown when compiling with <tt>--enable-debug</tt>? | ||
** also check disabled (commented-out) <tt>printf/log_debug</tt> calls, will we ever need them again? | ** also check disabled (commented-out) <tt>printf/log_debug</tt> calls, will we ever need them again? | ||
==== Resources ==== | |||
There are a bunch of resources that have different names in SDL or GTK3 UIs, or which are specific to one of them. We should name those that do the same thing the same, and - as far as possible - get rid of the specific ones (by implementing the same feature in the other UI) | |||
** the same applies to the related commandline options, of course | |||
** NOTE: <CHIP>xyz resources should be registered in video-resources.c and the related variables go into the video_render_config_s struct (unless they fit into the video_resources_s struct) | |||
<pre> | |||
GTK3 | |||
(FullscreenEnable should use <CHIP>Fullscreen instead (per video chip)) | |||
Implemented in trunk: FullscreenEnable has been removed (it controlled whether to enable fullscreen on boot) and | |||
<CHIP>Fullscreen resources have been added as well as enabling [-+]<CHIP>full command line options for the Gtk3 UI. | |||
KeepAspectRatio, TrueAspectRatio rework into one resource <CHIP>AspectMode | |||
(0: off, 1: custom 2: true) like in SDL | |||
GTKFilter rename to "<CHIP>GLFilter" | |||
<CHIP>AspectRatio to be implemented, should be (used with "custom" mode, see above) | |||
JoyMapFile, JoyThreshold, JoyFuzz use these when implementing the joystick mapping stuff | |||
<CHIP>ShowStatusbar [implemented], show the statusbar if enabled | |||
<CHIP>FlipX to be implemented | |||
<CHIP>FlipY to be implemented | |||
the following don't exist in SDL for good reasons, but naming is OK: | |||
AutostartOnDoubleclick, PauseOnSettings, Window0Xpos, Window0Ypos, KeepMonitorOpen, MonitorXPos, MonitorYPos, MonitorWidth, MonitorHeight, MonitorFont, MonitorFG, MonitorBG, FullscreenDecorations | |||
</pre> | |||
<pre> | |||
SDL | |||
AspectRatio rename to <CHIP>AspectRatio | |||
SDLGLAspectMode rename to <CHIP>AspectMode | |||
SDLGLFlipX rename to <CHIP>FlipX | |||
SDLGLFlipY rename to <CHIP>FlipY | |||
SDLGLFilter rename to <CHIP>GLFilter | |||
SDLStatusbar rename to <CHIP>ShowStatusbar | |||
JoyMapFile, JoyThreshold, JoyFuzz, <CHIP>Fullscreen | |||
the following don't exist in GTK3 for good reasons: | |||
MenuKey<XYZ>, JoyMenuControl, <CHIP>FullscreenMode, SDLBitdepth, SDL2Renderer, DualWindow | |||
SDLCustomWidth rename to "<CHIP>FullscreenCustomWidth" | |||
SDLCustomHeight rename to "<CHIP>FullscreenCustomHeight" | |||
</pre> | |||
==== docs ==== | ==== docs ==== |
Revision as of 18:41, 22 December 2022
Things we want to do for the 3.7.1 release:
- Fix C128 cartridge system
- snapshots are not supported yet
- cartridges that work in C64 _and_ C128 mode are not supported yet
- comal80 does not work correctly
it is not possible to reset hotkeys to default (via UI)(fixed in trunk)- -default on cmdline should skip loading system files such as kernal from ~/.local/share/vice/$EMU/.
- Add some simple checksum algorithm to common code (CRC32 is probably fine) - right now eg the kernal loading uses simple additive checksum, which is really bad :)
- DTV should use different flash images for PAL, NTSC, Hummer
Joystick
The joystick system needs to be modified/extended to properly support custom button mappings.
- Change the resources "JoyDevice{N}" to use strings with device identifiers instead of an index of the predefined and connected devices. So for example a Logitech F710 controller would be "001:006:046d:c21f" (usb-bus 1, device-no 6, vendor-Id 046d, product-Id c21f). We'll need archdep code to translate the strings into something the underlying arch driver can use, so at least handlers for Windows, MacOS, Linux and the various BSDs.
- Provide a joymap file per device identifier that can be loaded/edited/deleted, perhaps auto-load when JoyDevice{N} contains such an identifier.
- Make the joymap files use (UI) action identifiers instead of the "menu paths" SDL does.
- Make the joymap files human-readable by not doing what SDL does: for example: don't use 0-3 for input type, use ["axis", "button", "hat", "ball"], don't use 0-6 for the 'action' row, use "none" (or leave it out)", "joystick", "keyboard", "ui-action, "pot".
- Dialogs need to written to handle all of this.
SDL UI
- the SDL "menu actions" should use fixed numeric IDs for the mapping to keys/joystick instead of "menu pathes" which break when the menu is rearranged
- SDL1/2 joystick mapping improvements
- Make the 'extra joystick options' menu show what they are already mapped to
- Add menu joystick actions mapping support to the 'extra joystick options' menu
GTK UI
- add feature that allows to hide (only) the statusbar (use <CHIP>ShowStatusbar resource)
- Added in trunk, with command line options -<CHIP>showstatusbar and +<CHIP>showstatusbar. Needs more work to properly handle the window resizing when toggling the visibility of the status bar.
- add missing $VICERES comments in the UI files, so ./gtk3-resources.py list-missing keeps working
buildsystem
- README is currently updated from the same rule that generates infocontrib.h, this should be done in a different way
- there are some more problems in the buildystem:
according to src/arch/Makefile.am it looks like the "mingw32-pcap" dir is never used right now, check and fix this :)(fixed in trunk)- a proper configure check that defines HAVE_PCAP must be added, some ifdefs added at least to the windows rawnetarch_win32.c , and compiling all UIs tested with it (configure checks are in trunk and work)
in some makefiles it checks for USE_SDLUI and there is no check for USE_SDL2UI, that means eg bindist might be broken after configuring for SDL2(fixed in trunk: USE_SDLUI has changed from meaning any SDL version to SDL 1.2, while USE_SDL2UI means SDL 2.x. Additionally USE_HEADLESSUI is now specifically checked for and no longer randomly lobbed in with GTK3 or SDL in else branches.- make bindist is currently broken for USE_HEADLESSUI. (fixed only for Windows/msys2)
- Too many files are installed in $PREFIX/share/doc/vice when doing make install (example from Linux):
CIA-README.txt coding-guidelines.txt Documentation-Howto.txt Doxygen-Howto.txt FreeBSD-GTK3-Howto.txt GTK3-cross-build-setup.md GTK3-debian-frankenvice.md GTK3-Fedora-cross-build-setup.md iec-bus.txt Linux-GTK3-Howto.txt macOS-Distribution-Howto.txt macOS-Howto.txt macOS-Xcode-Howto.txt NetBSD-GTK3-Howto.txt NetBSD-howto.txt OpenBSD-GTK3-Howto.txt Readme-SDL2.txt Readme-SDL.txt Release-Howto.txt SDL-Howto.txt vice.texi Windows-MinGW-GTK3-Howto.txt
- Perhaps something to look at after the xmas release.
github actions
The github "snapshot" action should also build a release tarball so we can see if that actually works, and it needs to check if a gtk3ui configure generated tarball can compile sdl2 and vice versa(fixed in trunk: A workflow 'Weekly Check Dist' has been added that creates tarballs configured for headless, sdl2 and gtk3, and then uses those to configure for headless, sdl2 and gtk3 and does a make && make install. This job runs every week at Monday 06:00 UTC and reports any failures on #vice-dev)- It would also be nice if the github action builds proper debian/ubuntu packages
- Added in trunk for development releases: a .deb is generated for headless, sdl2 and gtk3 (both amd64), with non-stripped binaries. Still TODO is adding FFMPEG to the builds,
and building point release packages with stripped binaries.
- Added in trunk for development releases: a .deb is generated for headless, sdl2 and gtk3 (both amd64), with non-stripped binaries. Still TODO is adding FFMPEG to the builds,
cleanup
- archdep cleanup
- there are still various bits of archdep things dangling around in common code (and some newly added *sigh*) - use ./src/findhacks.sh archdep to find such code - a lot of this (if not all) should live in arch/shared
- remaining cases should always come with a comment telling why there is archdep stuff and why it has to be in common code
- the functions in src/arch/macOS-util.c should be renamed to archdep_... instead of vice_macos..., empty functions created for non macos, header renamed to archdep_... , and then called unconditionally from common code
- Remove support for 'classic' BeOS, only support Haiku.
- there are still various bits of archdep things dangling around in common code (and some newly added *sigh*) - use ./src/findhacks.sh archdep to find such code - a lot of this (if not all) should live in arch/shared
- Change the make bindist method for Haiku into make install.
- compiler depended ifdefs cleanup
- use ./src/findhacks.sh ccarchdep to find such code, most things should be removed
- remaining cases should always come with a comment telling why there has to be compiler specific stuff
- use ./src/findhacks.sh ccarchdep to find such code, most things should be removed
- debug and log messages cleanup: We have a lot of noise on the terminal, it might be a good idea to clean that up.
- use ./src/findhacks.sh printf to find printf calls that need to turned into log_debug calls (log_debug adds a newline, keep that in mind to avoid lots of empty lines in the log when changing printf to log_debug!).
- decide if we really need that message in the log, perhaps it can be surrounded with #ifdef DEBUG / #endif so the messages are only shown when compiling with --enable-debug?
- also check disabled (commented-out) printf/log_debug calls, will we ever need them again?
Resources
There are a bunch of resources that have different names in SDL or GTK3 UIs, or which are specific to one of them. We should name those that do the same thing the same, and - as far as possible - get rid of the specific ones (by implementing the same feature in the other UI)
- the same applies to the related commandline options, of course
- NOTE: <CHIP>xyz resources should be registered in video-resources.c and the related variables go into the video_render_config_s struct (unless they fit into the video_resources_s struct)
GTK3 (FullscreenEnable should use <CHIP>Fullscreen instead (per video chip)) Implemented in trunk: FullscreenEnable has been removed (it controlled whether to enable fullscreen on boot) and <CHIP>Fullscreen resources have been added as well as enabling [-+]<CHIP>full command line options for the Gtk3 UI. KeepAspectRatio, TrueAspectRatio rework into one resource <CHIP>AspectMode (0: off, 1: custom 2: true) like in SDL GTKFilter rename to "<CHIP>GLFilter" <CHIP>AspectRatio to be implemented, should be (used with "custom" mode, see above) JoyMapFile, JoyThreshold, JoyFuzz use these when implementing the joystick mapping stuff <CHIP>ShowStatusbar [implemented], show the statusbar if enabled <CHIP>FlipX to be implemented <CHIP>FlipY to be implemented the following don't exist in SDL for good reasons, but naming is OK: AutostartOnDoubleclick, PauseOnSettings, Window0Xpos, Window0Ypos, KeepMonitorOpen, MonitorXPos, MonitorYPos, MonitorWidth, MonitorHeight, MonitorFont, MonitorFG, MonitorBG, FullscreenDecorations
SDL AspectRatio rename to <CHIP>AspectRatio SDLGLAspectMode rename to <CHIP>AspectMode SDLGLFlipX rename to <CHIP>FlipX SDLGLFlipY rename to <CHIP>FlipY SDLGLFilter rename to <CHIP>GLFilter SDLStatusbar rename to <CHIP>ShowStatusbar JoyMapFile, JoyThreshold, JoyFuzz, <CHIP>Fullscreen the following don't exist in GTK3 for good reasons: MenuKey<XYZ>, JoyMenuControl, <CHIP>FullscreenMode, SDLBitdepth, SDL2Renderer, DualWindow SDLCustomWidth rename to "<CHIP>FullscreenCustomWidth" SDLCustomHeight rename to "<CHIP>FullscreenCustomHeight"
docs
- split vice.texi into smaller files
data
- rename all ROM files. a good naming scheme would be as in kernal-901227-01.bin (
C128,C64,C64DTV,CBM-II,DRIVES, PET,PLUS4,PRINTER,SCPU64,VIC20)- FIXME: could not identify some C128 ROMs: kernalfi, kernalfr, kernalit, kernalno
- when ROMs have been identified, fix the code/checksums in c128rom.h/.c
- FIXME: could not identify some Printer ROMs: mps801.bin, mps803.bin, nl10.bin
- FIXME: could not identify SCPU ROM: scpu64 (wanted is the part number of the actual SCPU ROM / what is written on the sticker)
- FIXME: could not identiffy some PET ROMs: chargen.de
- FIXME: could not identify some C128 ROMs: kernalfi, kernalfr, kernalit, kernalno