Developer log old: Difference between revisions

From vice-emu
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 226: Line 226:
** 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.
** 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)
** 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.19 (r25940)===  
===2.3.19 (r25940)===  

Revision as of 19:47, 27 July 2014

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

2.1

  • 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

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).

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

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)

    • 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)
  • video filter resources merged and made chip specific (r24298)
    • removed Resources: "PALEmulation" and "<CHIP>Scale2x"
    • new Resources: "<CHIP>Filter" (enum) VIDEO_FILTER_NONE, VIDEO_FILTER_CRT, VIDEO_FILTER_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
  • 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
  • xpet, xvic, xplus4 now all support all SID engines (r24288)
  • 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:
      cbm5x0:
      • 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
      cbm2:
      • remove "vic-ii settings"
      • remove "vic-ii model" from model settings
      • remove "510" from model selection


2.3.12 (r24924)

  • 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.19 (r25940)

  • removed unused "Romset<NAME>" resources


Branches

these are branches which have already been merged back into trunk

  • v2.3.9-remove-ddraw (fabbo)