Developer log old

From vice-emu
Revision as of 22:18, 26 November 2016 by Blackystardust (talk | contribs)
Jump to: navigation, search

This page contains all old (done) items from the Developer_log Page.


  • Config split
    • Datadir uses machine_name as before, config/hotkeys/fliplist/etc (should) use machine_get_name() instead
    • Use "VSID" for vsid
      • Due to the config split, it is finally possible to have VSID config/hotkeys/etc
    • Use "C64SC" for x64sc
      • NOTE: data/C64 is still used for x64sc
      • TODO: check config/etc file names/usage for: win32 (especially if the shared C64/win_shortcuts.vsc is problematic)
    • Use "CBM-II-5x0" for xcbm2 -model 510
      • Should get rid of segfaults when using different models with same config
      • TODO: check config/etc file names/usage for: win32 (especially if the shared CBM-II/win_shortcuts.vsc is problematic)
  • chris/v2.1-quicktime [2.1.2]
    • NEW: added QuickTime movie exporter (on Mac OS X for now)
    • API: introduced new soundmovie.c sound exporter
    • API: gfxoutput.h: extended interace of gfxoutputdrv_t
gfxoutputdrv_format_t *formatlist; // optional format list for exporter
void (*shutdown)(void);
int (*resources_init)(void);
int (*cmdline_options_init)(void);
    • Tested: Mac+Cocoa, Mac+Gtk, Mac+Xaw
    • Open: Adapted all UIs to use generic formatlist from extended gfxoutput_drv interface
  • soundrework.
    • oversampling setting removed. Oversampling is a bad, mostly unused solution for slightly improved audio quality. We can just do proper resamplers for machines that need it.
    • shorter sound buffer requires using audio buffers to their capacity. Some drivers may exhibit bugs with bufferspace() hook when audio buffer gets completely filled. These should be identified by bad behaviour on low latency setting such as 50 ms, while other sound drivers on same system might still work.

2.1.11 (r20774)

  • Userport Joystick Interface support (r20807)
    • NEW: 2 new virtual joysticks
    • API: joystick_port_map[] (arch/*/joy.[ch]) size changed from 2 to 4 (JOYSTICK_NUM, joystick.h)
    • Resource: ExtraJoy (toggle) and ExtraJoyType see src/userport/userport_joystick.h for the types.
    • NOTE: Network code uses the new size; this may be a problem.

2.1.13 (r20920)

  • Plus4 SID cart add-ons support (20977)
    • Resource: DIGIBLASTER (toggle) for the digibooster add-on and SIDCartJoy (toggle) for the joystick port on the sidcart.

2.1.14 (r21002)

  • xvic cartridge system rewrite (21222)
    • NEW: Rewritten modular cartridge emulation similar to that of x64.
    • NEW: Mega-Cart emulation
    • Resource: CartridgeType (enum, see cartridge.h)
    • Resource: CartridgeFile (string)
    • Resource: CartridgeReset (toggle)
    • Resource: GenericCartridgeFile2000 (string)
    • Resource: GenericCartridgeFile4000 (string)
    • Resource: GenericCartridgeFile6000 (string)
    • Resource: GenericCartridgeFileA000 (string)
    • Resource: GenericCartridgeFileB000 (string)
    • NOTE: see win32/SDL/*nix UI for menu implementation.
    • NOTE: CartridgeFile and GenericCartridgeFileX000 and NOT meant to be manipulated directly by the UI. See the above note.


2.2.5 (r22607)

  • x64/x64sc/x128 Cartridge System (r22615)
    • changed cartridge_detach_image() to take the cartid (from cartridge.h) as parameter. all UIs have been changed to pass -1, which means "all cartridges".
    • NOTE: UIs that actually support to attach several carts should use the param properly, and should use this function instead of changing whatever associated resource directly. (this will make it easier to change the underlying mechanism without breaking everything all the time)
    • to clearify: generic actions such as attaching/enabling/detaching a cartridge should be done through the generic api in cartridge.h. using the individual resources to enable/disable a cartridge will still work, but is "deprecated".
  • x64/x64sc/x128 Cartridge System (r22623)
    • changed cartridge_get_file_name(), takes the cartid instead of the (meaningless) address for c64 now
      • affected emus: vic20 (the "WORD" in the prototype changed to "int", and it passes an address for type, and the "int" may now make it fail on 16bit hosts, meh :)) the logic should be changed to use cartids from cartridge.h instead, shouldnt matter else :) (this is not really a problem as the msdos port is not 16bit as i assumed :) Gpz 19:02, 12 June 2012 (UTC))
    • a new function c64export_query_list() defined in c64export.h can be used to get a list of all currently attached/active cartridges, so you can eg use it in a dynamic menu and detach them using cartridge_detach_image(). look in c64export.c:c64export_dump() for a small usage example.
  • Expert Cartridge (r226xx)
    • renamed Resource: "Expert" to "ExpertCartridgeEnabled" (toggle)
    • TODO: ports that use cartridge_attach_image(CARTRIDGE_EXPERT, NULL) (which will now fail!) must now simply set "ExpertCartridgeEnabled" to 1 to enable use cartridge_enable(CARTRIDGE_EXPERT) (as with other carts).
    • renamed Resource: "CartridgeMode" to "ExpertCartridgeMode" (enum: 0=off 1=prg 2=on)

2.2.6 (r22742)

  • IDE64 emulation can now handle 4 harddrive images. (r22824)
    • Resource: IDE64Image renamed/changed to IDE64Image1, IDE64Image2, IDE64Image3, IDE64Image4
  • NEW: IDE64 emulation can emulate IDE64v4 (r22824)
    • Resource: IDE64version4 (toggle)
  • Gamma Calculation changed (r22749)
    • Resource: "ColorGamma" range was changed to 0...4000, and the new default is 2200 (which is the VGA 2.2 gamma). this change was needed to be able to handle different gammas of PAL/NTSC/etc. (and using the actual display hardware gamma as param is more intuitive too).
  • "PAL Emulation" is available in NTSC mode (r22746)
    • NEW: proper rendering with CRT emulation in NTSC mode
    • it is suggested to rename user visible strings that refer to "PAL Emulation" or "PAL Settings" to "CRT ..." to make clear that it is not only available in PAL mode.
    • ports that forced "PAL Emulation" disabled in NTSC mode should be changed so "PAL Emulation" can be enabled, and related options are available regardless of current video mode.
  • "true aspect ratio" option (r22749)
    • geometry_s now contains (float)pixel_aspect_ratio which can be used to (optionally) scale the output canvas to get the true aspect ratio of the currently active video mode.
      • scale output rectangle horizontally by pixel_aspect_ratio if "true aspect ratio" option is enabled
      • to maintain consistency across ports, use Resource:"TrueAspectRatio" (toggle). (must be defined in arch dependend files)
        • SDL UI intentionally breaks this as it had "SDLGLAspectMode" that bent naturally from a toggle to an enum
    • Note: future ports that have hardware scaling may use this, too
  • "PAL Emulation" "CRT Emulation" is available for CRTC and VDC (r22752)
    • NEW: proper rendering with CRT emulation for CRTC and VDC output
    • Resource: CrtcExternalPalette (toggle)
    • Resource: VDCExternalPalette (toggle)
    • all ports that forced "PAL Emulation" disabled should be changed so "CRT Emulation" can be enabled, and related options are available regardless of current video chip. all related special cases can be removed.

2.2.7 (r22889)

  • Remove 'IEC' references from user visible printer descriptions in both commandline options and uis
  • List of canonical names for cartridges
    • cartridge.h now contains constants for (user visible) cartridge names. UIs should, if possible, use these constants - and if not atleast adhere to their spelling. Another advice is to remove redundant references to cartridge names from sub-menus and generally unifying them, in order to bring the overall number of messages down. (see *nix or SDL ui as an example).
  • NEW: archdep_fix_permissions (r23053)
    • should set the permissions of a given file to "rw", respecting the current umask (if any)

2.2.11 (r23530)

  • CIA model 6526x removed (r23531)
    • No 6526 without the timer B bug encountered, hence 6526 replaced with former "6526x". The CIA models are (see cia.h):
      • "6526" is the old CIA
      • "6526A" is the new CIA
    • TODO: remove 6526x UI item from the following ports: -


2.3.6 (r23990)

  • ACIA/swiftlink/turbo232 base selectable, $DE00/$DF00 for c64/c128 and $D700 for c128 only (r24036)

2.3.8 (r24123)

  • MasC=uerade adapter support added to xvic.
  • userport generalization (r r24xxx)
    • Resources have changed:
      • Resource: PETUserPortDAC has become UserPortDAC
  • IDE64 geometry selection now seperate for each harddrive image (r24191)
    • Resources have changed:
      • Resource: IDE64Cylinders has become IDE64Cylinders1, IDE64Cylinders2, IDE64Cylinders3 and IDE64Cylinders4.
      • Resource: IDE64Heads has become IDE64Heads1, IDE64Heads2, IDE64Heads3 and IDE64Heads4.
      • Resource: IDE64Sectors has become IDE64Sectors1, IDE64Sectors2, IDE64Sectors3 and IDE64Sectors4.
      • Resource: IDE64AutodetectSize has become IDE64AutodetectSize1, IDE64AutodetectSize2, IDE64AutodetectSize3 and IDE64AutodetectSize4.

2.3.9 (r24210)

  • additional functions signals_pipe_set() and signals_pipe_unset() added in arch/*/signals.c (r24261)
    • to check if a port needs this implemented, type this into one terminal:
    x64 -remotemonitor
    and this into another:
    echo "reset" | nc -p 6510
    now terminate the connection by pressing ctrl-c. if the emulator now quits (or crashes) you probably need to handle SIGPIPE, ie set up a signal handler for SIGPIPE that calls monitor_abort() (see the unix code as an example). if not, just locate the respective fixme note in 'your' sourcefile and remove it.
  • cartridge_attach_image(type,name) and cartridge_detach_image(type) are now available in xcbm2/cbm5x0, look for types in cartridge.h
    • direct usage of "Cart1Name", "Cart2Name", "Cart3Name", "Cart4Name" resources is deprecated, use the above functions instead.
    • cartridge_attach_image(type,name) and cartridge_detach_image(type) are now available in xplus4, look for types in cartridge.h
    • plus4cart_detach_cartridges() should no more be used (and will be made private later), use cartridge_detach_image(type) (-1 == all) instead
    • plus4cart_load_c1lo/_c1hi/_c2lo/_c2hi are associated to the internal roms and should no more be used (and will be made private later). actual roms should be loaded by changing the respective resources instead. ("c1loName", "c1hiName", etc)
    • cartridges should be instead attached using cartridge_attach_image(), look for types in cartridge.h. cartridge_attach_image(CARTRIDGE_PLUS4_DETECT) can be used to "smart attach" a binary image.
    • to clearify: there should be a cartridge menu using the cartridge_... functions and types defined in cartridge.h to attach various types of carts, and there should be a roms menu, where the respective roms can be loaded by changing the associated resources.
    • TODO: add missing GUI items to following Ports: beos, dos, osx
    • NOTE: Resources "3plus1loName" and "3plus1hiName" were removed, because they were duplicates of "FunctionLowName" and "FunctionHighName" (essentially replace the former by the later)
  • really keep monitor opened if console_can_stay_open is 1 (r24272)
    • if console_log->console_can_stay_open is 1, keep the monitor console/window opened (call uimon_window_suspend() instead of _close()) when exiting the monitor. allows eg tracepoint output to show up immediatly.
    • Note: right now only the *nix (XAW and GTK) ports implement "console_can_stay_open = 1". other GUI ports may be updated accordingly, see MonitorUI for details on the intended behaviour
  • additional random delay when autostarting (r24278)
    when enabled, this will delay by a random amount of cycles (up to 10 frames) before autostarting to introduce randomness into the system state.
    • new Resource: AutostartDelayRandom (BOOL, default = TRUE)
  • proper handling for double size and y-stretching (r24284)
    • new Resource: VDCStretchVertical (BOOL, default = TRUE)
    • new Resource: CrtcStretchVertical (BOOL, default = TRUE)
      when enabled, VDC and 80 colums CRTC output will be stretched vertically.
    • in order to support different magnification factors easily, the meaning of the videoconfig->doublesizex and videoconfig->doublesizey variables has slightly changed, it will now contain the actual magnification factor - 1. therefor in order to update your code, just change this kind of stuff:
      if (canvas->videoconfig->doublesizex) { width *= 2; }
      to that type of thing:
      if (canvas->videoconfig->doublesizex) { width *= (canvas->videoconfig->doublesizex + 1); }
      note: since 0 is still used for no magnification, you will only see an effect of this change when using VDC or 80 colums CRTC in doublesize mode with vertical stretching enabled, so use that for testing :) (ie, double size for VDC and 80 colums CRTC *really* means double size now)
      note: since vertical stretching is enabled by default, enabling double size mode for VDC or 80 colums CRTC in code that has not been updated will most likely crash. (on the other hand, every other case will still work fine)
  • added model selection to xplus4 (r24285)
    • look at plus4/plus4model.h for models and functions, it works just like the c64 counterpart
  • added model selection to x64dtv (r24287)
    • look at c64dtv/c64dtvmodel.h for models and functions, it works just like the c64 counterpart
  • video filter resources merged and made chip specific (r24298)
    • removed Resources: "PALEmulation" and "<CHIP>Scale2x"
      Note: VDC and CRTC do not support scale2x
  • color- and crt emulation resources made chip specific (r24298)
    • changed Resources "ColorSaturation" -> "<CHIP>ColorSaturation"
    • changed Resources "ColorContrast" -> "<CHIP>ColorContrast"
    • changed Resources "ColorBrightness" -> "<CHIP>ColorBrightness"
    • changed Resources "ColorGamma" -> "<CHIP>ColorGamma"
    • changed Resources "ColorTint" -> "<CHIP>ColorTint"
    • changed Resources "PALScanLineShade" -> "<CHIP>PALScanLineShade"
    • changed Resources "PALBlur" -> "<CHIP>PALBlur"
    • changed Resources "PALOddLinePhase" -> "<CHIP>PALOddLinePhase"
    • changed Resources "PALOddLineOffset" -> "<CHIP>PALOddLineOffset"
      Note: VDC and CRTC do not support oddline phase/offset
  • video_render_initraw() takes additional render config parameter (r24308)
  • added cbm5x0ui_init() and cbm5x0ui_shutdown() function calls to help with splitting the UIs. (r24710)
  • add vsid and xcbm5x0 executables to make-bindist scripts
  • vsid is a seperate machine and splitted into a seperate binary (r24321)
    • vsid_mode is deprecated. change all if (vsid_mode) ... to if (machine_class == VICE_MACHINE_VSID)
      Note: in some cases checking for console_mode and/or video_disabled_mode might be better
      Note: if there are switch statements in archdep code which check for machine_class, then adding VICE_MACHINE_VSID to them might be required (one common spot seems to be in joystick_init_cmdline_options())
    • TODO: update following ports: dos, osx
    • TODO: ... and remove vsid_mode in main.c
    • NOTE: if a port has no fully working vsid ui, remove it here and add it to the todo list here: Todo#Ports_.2F_UIs
  • added model selection to xcbm2/cbm5x0 (r24326)
    • look at cbm2/cbm2model.h for models and functions, it works just like the c64 counterpart
  • xplus4 cartridge system unified to common api (r24285)
    • new Resource: CartridgeReset (BOOL, default = TRUE)
      when enabled, reset the emulated machine when changing cartridges
  • xpet, xvic, xplus4 now all support all SID engines (r24288)
  • xcbm2/cbm5x0 cartridge system unified to common api (r24326)
    • new Resource: CartridgeReset (BOOL, default = TRUE)
      when enabled, reset the emulated machine when changing cartridges
    • TODO: add GUI items to following ports: osx
  • xcbm5x0 splitted from xcbm2 into a seperate machine and binary (r24326)
    • Resource "UseVicII" removed (no more needed)
    • due to the split, some features are no more available/needed in one or the other:
      • remove "crtc settings"
      • remove all _but_ "510" from model selection
      • remove basic128/basic256 ROM related options from ROM settings, load "rom500.vrs" as standard roms option instead
      • remove "7x0 (50 Hz)" from modelline selection
      • add 64kb as memsize option
      • remove "vic-ii settings"
      • remove "vic-ii model" from model settings
      • remove "510" from model selection
  • NEW: Burst modification emulation for C64 ("BurstMod" resource)
  • NEW: 2000/4000 drive emulation
    • UIs need to be updated for drive model selection and ROM load. Can easily be done by looking where 1581 is used, and adding 2000/4000 there too.
    • add d1m/d2m/d4m to the disk file selector dialog filters
    • add d1m/d2m/d4m image creation to the ui's
  • NEW: IDE64 DVD (.iso), LS-120/ZIP (.fdd), Harddisk (.hdd) and CF card support (.cfa) by using ATA core (r24510 or earlier)
    • update file selector dialog filters accordingly
    • change 'ide64 hd image' text to 'ide64 ata device image' or if wanted to 'ide64 primary/secondary master/slave device image'
  • NEW: Atari ST mouse and the Atari CX-22 trackball and improved Amiga mouse emulation by Magnus Lind.
    • testprograms can be found in testprogs/propmouse

2.3.10 (r24627)

  • Fixed the sound system to handle mono and stereo streams correctly (r24693).
  • Output is selectable between 'system' (system decides to use mono or stereo output based on the presence of a stereo sid), 'always mono' (output is always mono, stereo streams are mixed into a mono stream) or 'always stereo' (output is always stereo, mono streams are multiplexed to a stereo stream).
  • Added drive sound emulation
    • There's a new resource called "DriveSoundEmulation", 0=disabled 1=enabled
  • Added 3rd sid support for x64 and x128 (r24733).
    • changed Resource: "SidStereo", instead of 0=off, 1=on, it's now: 0=off, 1=1 extra sid, 2=2 extra sids.
    • new Resource: "SidTripleAddressStart", the address of the 3rd sid.

2.3.12 (r24924)

  • Added "Nordic Replay" support to retro replay emulation (r24948)
    • new Resource: "RRrevision" (enum) 0 = retro replay 1 = nordic replay
  • CIA type switchable in x128 (r25046)
    • new Resources: "CIA1Model" "CIA2Model" (enum) CIA_MODEL_6526, CIA_MODEL_6526A (just like in x64)
  • CIA type switchable in xcbm2/cbm5x0 (r25047)
    • new Resources: "CIA1Model" (enum) CIA_MODEL_6526, CIA_MODEL_6526A (just like in x64)
  • added model selection to x128 (r25052)
    • look at c128v/c128model.h for models and functions, it works just like the c64 counterpart
  • added video to audio leak emulation (r25066)
    • new Resources: for every video chip: "<CHIP>AudioLeak" (enum) 0 = disabled 1 = enabled
  • added "no border" mode to VIC-II (r25076)
  • added border mode selection to VIC (r25079)
  • added border mode selection to TED (r25124)
  • refactored canvas (r25369)
    • canvas->draw_buffer now stores the size of the visible part of the screen (visible_width, visible_height) and of the emulator's canvas size (canvas_physical_width, canvas_physical_height).
    • changed signature of video_canvas_resize(). It now takes 2 args, canvas and resize_canvas, a boolean. resize_canvas==0 means that the emulator's window has been resized, and resize_canvas==1 means the emulated machine's screen size has changed (e.g. double size toggled, borders changed/removed...). In the latter case, the implementation of the function should resize the emulator's window.
    • added video_canvas_can_resize(). It returns 0 if the emulator window is maximized (and therefore cannot be resized, because its size is fixed to be the display's size) and 1 if it is not (and therefore its size can be changed)

2.3.15 (r25340)

  • refactored model selection in xpet (r25380)
    • pet_set_model and get_pet_model should be replaced by petmodel_set/petmodel_get. look at pet/petmodel.h for models and functions, it works just like the c64 counterpart

2.3.15 (r25340)

  • added support for "Formel 64" parallel cable (r25438)
    • extended resources Drive8ParallelCable, Drive9ParallelCable, Drive10ParallelCable, Drive11ParallelCable (enum) from 0..2 to 0..3 (DRIVE_PC_NONE, DRIVE_PC_STANDARD, DRIVE_PC_DD3, DRIVE_PC_FORMEL64). added DRIVE_PC_NUM respectively (drive.h)
  • added support for "Kingsoft" and "Starbyte" 4-player joystick adapters (r25440)

2.3.19 (r25940)

  • removed unused "Romset<NAME>" resources

2.3.21 (r26032)

  • added "SuperCard+" emulation (this is a drive expansion board for 1541/1570/1571/1571cr)
  • new Resource: "DriveSuperCardName" (string) that specifies the SuperCard ROM image
  • new Resources: "Drive8SuperCard", "Drive9SuperCard", "Drive10SuperCard", "Drive11SuperCard" (toggle) that specify whether SuperCard is enabled for the respective drive

2.3.22 (r26155)

  • added fsimage-dxx.c for concentrating d64/d71/dxx image handling.
  • added general image track extension
  • added c128 internal function RAM and internal function RAM+RTC support.
    • The Resource "InternalFunctionROM" now has a new meaning: 0=off, 1=ROM, 2=RAM, 3=RAM+RTC
  • added c64/c128/vic20 DS12C887 RTC expansion emulation
    • new Resource: "DS12C887RTC" (BOOL) DS12C887 RTC cart on/off
    • new Resource: "DS12C887RTCbase" (int) DS12C887 RTC cart base address
  • added c64/c128 RTC58321a userport RTC expansion emulation
    • new Resource: "UserportRTC" (BOOL) 58321A RTC on/off
  • added Smart mouse emulation


2.4 (r26680)

  • updated the datasette emulation to also work as expected when there is no tape image present
    • all UI elements should be always visible and enabled (as with a real datasette :))
    • the parameter passed to ui_set_tape_status can then be used to somehow indicate whether a tape image is present (eg by using a different color)
    • ui_set_tape_status, ui_display_tape_motor_status, ui_display_tape_control_status and ui_display_tape_counter in ui code perhaps must be updated to handle being called before the respective gui item has been created (which unfortunately can not be avoided easily with the current architecture)

2.4.1 (r26948)

  • added missing c64 models (C64MODEL_C64SX_PAL, C64MODEL_C64SX_NTSC, C64MODEL_C64_JAP, C64MODEL_C64_GS, C64MODEL_PET64_PAL, C64MODEL_PET64_NTSC, C64MODEL_ULTIMAX)
  • added model selection for xvic, it works just like the C64 functions (vic20model_get/vic20model_set; VIC20MODEL_VIC20_PAL, VIC20MODEL_VIC20_NTSC, VIC20MODEL_VIC21) (r26968)


  • added mouse type for koala pad (MOUSE_TYPE_KOALAPAD)


  • extended Resource "SoundFragmentSize", added values are SOUND_FRAGMENT_VERY_SMALL and SOUND_FRAGMENT_VERY_LARGE

2.4.4 (r27450)


also see r27981 below


  • NEW: added Resource "IECReset" (1: drives reset with computer, 0: drives do only reset on powercycle/hard reset) to x64, x64sc and xscpu64 - this should go into the "model selection" dialog (as it depends on the board)


  • Resid-FP has been removed.
  • To compensate for the missing SID-Type selection, GUI items (slider) should be added for the following Resources: SidResidPassband (0..90), SidResidGain (90..100), SidResidFilterBias (-5000...5000)


  • Printer 6 (Plotter) is now available, a new menu like the existing printer menus should be added which has "1520" and "RAW" in its driver selection

2.4.6 (r27981)



  • accessing device #7 on the IEC bus works (only real devices), respective selection (0: none 2: real) should get added to the menus


  • added support for swiss kernal/chargen to x128

2.4.7 (r28398)

  • ifdef 0'ed resource "MIDIMode" in xvic


  • SOCKET type should probably be int (not unsigned), as it equals a file descriptor.


  • changed mon_reg_list_t->flags into a bitfield (see mon_register.h)


  • removed 'next' member from mon_reg_list_t, and thus make it a simple array rather than a linked list. (check for end of list by testing ->name == NULL)


  • Added TCP_NODELAY socket option to socket.c to reduce latency. This makes a huge difference, especially in warp mode (tested with the USB server). I've added a configure check for netinet/tcp.h in r28638, bit I'm not sure if it's optimal.

2.4.9 (r28665)

  • new Resource: "DS12C887RTCRunMode" (int) for setting the initial run mode of the RTC oscillator (0=halted, 1=running)


  • added generic function/list for querying the enabled compile time features. (see vicefeatures.h)


  • new Resource: (BOOL) "IDE64RTCSave" (c64/128) for enabling saving RTC data (0=disabled, 1=enabled)
  • new Resources: (BOOL) "InternalFunctionROMRTCSave" (c128), "ExternalFunctionROMRTCSave" (c128) for enabling saving RTC data (0=disabled, 1=enabled)
  • new Resource: (BOOL) "DS12C887RTCSave" (c64,vic20,c128) for enabling saving RTC data (0=disabled, 1=enabled)
  • new Resource: (BOOL) "UserportRTCSave" (c64/c128) for enabling saving RTC data (0=disabled, 1=enabled)
  • new Resource: (BOOL) "SmartMouseRTCSave" (c64/c128) for enabling saving RTC data (0=disabled, 1=enabled)
  • new Resources: (BOOL) "Drive8RTCSave", "Drive9RTCSave", "Drive10RTCSave", "Drive11RTCSave" (all iec machines except vsid) for enabling saving RTC data (0=disabled, 1=enabled)

2.4.13 (r28982)

  • new function "cartridge_get_info_list()" for querying the list of cartridges for building the "attach binary image" menu(s) in x64/x64sc/xscpu64/x128. see cartridge.h


  • 1540 was added to drive selection

2.4.15 (r29202)

  • added new resource "MemoryHack" (int) to activate the different kinds of c64 memory expansion hacks (0: none, 1: C64 256K, 2: +60K, 3: +256K), and removed the "C64_256K", "PLUS256K" and "PLUS60K" resources
  • added new resource "VICIIVSPBug" (bool) to enable/disable emulation of the VSP bug


  • added new resource "DatasetteTapeWobble" (int) to emulate random tape wobble


  • added new resource "MemoryHack" (int) to activate the different kinds of plus4 memory expansion hacks (0: none, 1: CS256K, 2: H256K, 3: H1024K, 4: H4096K), and removed the "CS256K" and "H256K" resources


  • added new resource "EasyFlashOptimizeCRT" (bool) to allow/disallow optimizing of the .crt file when writing


  • IDE64 V4.2 support was added. (resource "IDE64Version" (int): IDE64_VERSION_3, IDE64_VERSION_4_1, IDE64_VERSION_4_2)


  • added new joyport system. The new system makes things modular. On one side you have the devices that can be on a joyport, and all the code for those has to do is handle reading/writing of digital lines and reading of the pot-lines. On the other side you have the 'chip' emulations that deal with the hardware emulation. The new system handles the traffic between the two sides, handles conflicts between input resources that devices use and provides a way for the gui's to query what devices are present (name and id).
  • new resources related to the new joyport system: "JoyPort1Device" (int), "JoyPort2Device" (int), "JoyPort3Device" (int) and "JoyPort4Device" (int)


  • new screenshot format 'godot' (extension '.4bt').


  • Apparently some ports have a 'cartridge freeze' menu item for xscpu64, this will always result in a hanging machine.


  • NEW: resource "SSRamExpansion" (Boolean) to enable/disable the 32k addon RAM of the Super Snapshot V5


  • Added mouse init/shutdown calls to xcbm2 and xpet.


  • Added UltiMem cart support to xvic.
  • NEW: resource "UltiMemWriteBack" (Boolean) to enable/disable write back of the UltiMem ROM.


  • Added I/O-2/3 RAM support to xvic.
  • NEW: resources "IO2RAM" (Boolean) and "IO3RAM" (Boolean) to enable/disable the I/O-2/3 RAM carts.


  • Added c64 CP/M cartridge support.
  • NEW: resource "CPMCart" (Boolean) to enable/disable the cartridge.


  • Removed "UserportJoyType", "JoyDevice4" and arch joystick device 4 related resources in x64dtv.


  • Completed generic audio input (sampler) system.
  • NEW: resource "SamplerDevice" (int) controls which host sampler device is used, currently supported are 0: media file, 1: portaudio
  • NEW: resource "SamplerGain" (int) controls the sampler gain in % (1-200).
  • NEW: resource "SampleName" (string), in the case of media file audio input this string holds the name of the media file to be used


  • Added userport support to xplus4.
  • Changed: "JoyDevice3" is now plus4 userport port 1, and "JoyDevice4" is now plus4 userport port 2.
  • NEW: resource "JoyDevice5" (int) plus4 sidcart control port.


  • Extended the userport rtc (58321a) to cbm2, pet and vic20.


  • Extended the userport dac to c64, c128, cbm2, plus4 and vic20.


  • Split the digimax userport device from the digimax cartridge and extended the digimax userport device to cbm2.
  • Changed: the digimax address no longer uses $dd00 to indicate userport usage.
  • NEW: resource "UserportDIGIMAX" (bool) to enable/disable the digimax userport device.


  • Added userport 4bit sampler support to c64, c128 and cbm2.
  • NEW: resource "Userport4bitSampler" (bool) to enable/disable the sampler.


  • Added userport 8bit stereo sampler (8bss) support to c64, c128 and cbm2.
  • NEW: resource "Userport8BSS" (bool) to enable/disable the sampler.


  • Added userport ds1307 rtc support to c64, c128, cbm2, pet and vic20.
  • NEW: resource "UserportRTCDS1307" (bool) to enable/disable the RTC.
  • NEW: resource "UserportRTCDS1307Save" (bool) to enable/disable the saving of the RTC data when changed.


  • added support for RR-Net MK3 cartridge (new CRT type 58) to c64, c128, scpu
  • NEW: resource "RRNETMK3_flashjumper" (bool) to enable/disable the Flash Jumper (required to write to BIOS).
  • NEW: resource "RRNETMK3_bios_write" (bool) to enable/disable automatic writeback of the BIOS when changed.
Note: you may take the menu from retro replay as a template (remove "bank jumper" and "revision")


  • Added IDE64 shortbus system, and added shortbus digimax support.
  • NEW: resource "SBDIGIMAX" (bool) to enable/disable the shortbus digimax expansion (actual active state also depends on if IDE64 is active or not).
  • NEW: resource "SBDIGIMAXbase" (int) to set the base address of the shortbus digimax expansion (either 0xde40 or 0xde48).


  • Added tapeport system, and changed the datasette into a tapeport device.
  • NEW: resource "Datasette" (bool) to enable/disable the datasette device.


  • Added joyport bbrtc (ds1602) support.
  • NEW: resource "BBRTCSave" (bool) to enable/disable the saving of the RTC data when changed.


  • removed the "VICIINewLuminances" resource and use seperate luma tables per chip type instead.
  • Note: in x64dtv the resource is still used, it should perhaps be moved to "model settings" and named something like "luma fix" in the menu/dialog.


  • Added tape port logger device.
  • NEW: resource "TapeLog" (bool) to enable/disable the device.
  • NEW: resource "TapeLogDestination" (int) to choose if the log output goes to the generic logfile (0) or a specific file (1).
  • NEW: resource "TapeLogfilename" (string) the name of the logfile when "TapeLogDestination" is 1.


  • Added cp clock f83 tape port rtc (pcf8583) device.
  • NEW: resource "CPClockF83" (bool) to enable/disable the device.
  • NEW: resource "CPClockF83Save" (bool) to enable/disable the saving of the RTC data when changed.


  • Added tape port sense (asserting) dongle device (like the kind used for some access games like leaderboard).
  • NEW: resource "TapeSenseDongle" (bool) to enable/disable the device.


  • Added tape port dtl basic dongle device
  • NEW: resource "DTLBasicDongle" (bool) to enable/disable the device.


  • Added Mike's VFLI modification to xvic
  • NEW: resource "VFLImod" (bool) to enable/disable


  • Removed the resource "RefreshRate" from vsid.


these are branches which have already been merged back into trunk

  • v2.3.9-remove-ddraw (fabbo)