3.6.2

From vice-emu
Jump to navigation Jump to search

Things we want to do for the 3.6.2 release:

  • put a version number into the config file, so we can warn when an old config file is being used
  • SDL1/2 joystick mapping improvements
    • Add 'clear all mappings' to the joystick mapping menus (it's annoying to have to unmap one by one) (Added in trunk)
    • 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
  • 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
  • Remove support for jpeg screenshots (and the dependency on libjpeg(turbo)) (fixed in trunk)
  • Remove the -kernalrev option from the emulators that use it: use proper ROMs for different revisions and remove the checksumming/patching of ROM files. (fixed in trunk)
  • Fix C128 cartridge system
  • GTK and SDL: it is not possible to reset hotkeys to default (via UI)
    • -default on cmdline should skip loading the custom hotkey file
    • -default on cmdline should skip loading system files such as kernal from ~/.local/share/vice/$EMU/.
    • "reset settings to defaults" should also reset the hotkeys to defaults
  • VSID improvements:
    • Playlist fixes:
      • Allow removing items from the playlist.
      • Allow loading and saving of playlists.
      • Skip to the next SID in the playlist after all tunes in the SID have played.
    • Hotkeys support, also for the controls and selecting items in the playlist.
On Windows we can't get, for example, GDK_KEY_KP_Home, we always get GDK_KEY_Home. Using certain bits in the scancode, we might be able to translate the keypad Home to its expected value (GDK_KEY_KP_Home, as we use it on Unix). If we could at least get the keypad fixed, we'd improve our keymaps a lot. See this post for more information. (fixed in trunk)
macOS testing WIP (fixed in trunk)
  • GTK: a mechanism must be made that makes it possible to "call" any "menu action" (actions that can be assigned to hotkeys)
    • when that is done, joystick buttons can be mapped to menu actions
    • an UI is needed for all that
  • GTK: Rework some of the settings dialogs:
    • Turn the drive type selection into a combo box to save space. (fixed in trunk)
    • Try to make the parallel cable settings take less space (perhaps move the labels to the left side of the combo boxes and remove bold?) (fixed in trunk)

buildsystem

  • The VICE version and release date is not automatically updated everywhere yet
    • The top line of README
    • In the second paragraph of the README ("This is version 3.6 of VICE")
  • 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
    • 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
  • 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
  • It would also be nice if the github action builds proper debian/ubuntu packages
  • cpu history should be enabled by default, optionally disabled (fixed in trunk)
  • Make sure the released binaries (Windows and macOS) use the same configuration
  • add checkstyle.sh (tabs and whitespace) to the GHA

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
    • ANDROID_COMPILE (the whole Android stuff in the tree) can likely be removed (waiting for reply from the C64.emu guy) (fixed in trunk)
    • various things from "lib.c" and "ioutil.c" should really live in arch/shared (fixed in trunk)
    • 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
    • rawnetarch.h should probably also live in src/arch/shared
    • the code in joystickdrv is used exclusively by the GTK3 port and should be moved into arch/gtk (fixed in trunk)
    • currently we have src/archapi.h AND src/<arch>/archdep.h, both of which contain prototypes for stuff that also has headers in src/arch/shared. this needs to be cleaned up so ideally we have exactly one header, which includes the headers from src/arch/shared (fixed in trunk)
    • src/arch/mingw32-pcap should probably live in src/lib (headers for 3rd party lib, this isnt really archdep code) (fixed in trunk) was removed, lib+headers are in msys2
    • AMIGA related stuff can be removed unless someone steps up real soon (fixed in trunk)
    • some directories contain arch specific "driver" stuff, which should live in src/arch/shared: gfxoutputdrv, hwsiddrv, mididrv, socketdrv, sounddrv, iodrv.
    • src/systemheaderoverride should be moved into src/arch and then a note should be added to coding-guidelines.txt which explains what this folder is for (fixed in trunk)
    • names used for defines used in makefiles and config.h should be unified, eg we have HEADLESS_COMPILE in makefiles and USE_HEADLESSUI in config.h - it should only use USE_HEADLESSUI for both (fixed in trunk)
    • in the source only one common define should be used, eg WIN32_COMPILE in favour of _WIN32. If it really means "compile for windows" and not "compile for 32bit windows", use WINDOWS_COMPILE instead (fixed in trunk: had to add WIN64_COMPILE for 64-bit Windows check)
    • Remove support for 'classic' BeOS, only support Haiku.
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
    • the remaining _MSC_VER can likely be removed (waiting for reply from Carlo Bramini) (fixed in trunk)
  • configure.ac
    • Go through all the options and check if they should be renamed or removed:
      • Change --enable-external-ffmpeg to --enable-ffmpeg, we only have one method of linking against ffmpeg left.
      • Change --enable-native-gtk3ui to --enable-gtk3ui.
      • Disable CatWeasel, SSI2001 and ParSID support by default.
    • !! Properly update the build instructions with the above changes and put these changes in the release notes.
  • split vice.texi into smaller files
  • split mouse.c into one file per mouse type
  • rename all ROM files. a good naming scheme would be as in kernal-901227-01.bin

3.6.1 feedback threads