Developer log

From vice-emu
Revision as of 20:10, 7 October 2016 by Blackystardust (talk | contribs)
Jump to navigation Jump to search

The developer log is intended to be a central place for all developers to take down notes on what has changed during development. This helps to keep all porters up to date regarding API and Resource changes.

Status

r25372 win32 (1) *nix (1) osx (29) amiga (39) beos (43) dos (39) os/2 (55) SDL (1)
r25801 win32 (-) *nix (-) osx (30) amiga (37) beos (41) dos (40) os/2 (4) SDL (-)
r25858 2.3.19 win32 (-) *nix (-) osx (30) amiga (9) beos (41) dos (40) os/2 (4) SDL (-)
r25955 2.3.20 win32 (2) *nix (-) osx (30) amiga (4) beos (31) dos (28) os/2 (4) SDL (-)
r26032 2.3.21 win32 (3) *nix (-) osx (31) amiga (5) beos (32) dos (6) os/2 (5) SDL (1)
r26488 2.4 win32 (3) *nix (-) osx (35) amiga (5) beos (36) dos (7) os/2 (5) SDL (1)
r26876 2.4.1 win32 (4) *nix (-) osx (36) amiga (5) beos (37) dos (8) os/2 (6) SDL (-)
r28197 2.4.7 win32 (5) *nix (-) osx (48) amiga (5) beos (8) dos (8) os/2 (11) SDL (-)
r28270 win32 (-) *nix (-) osx (48) amiga (1) beos (5) dos (3) os/2 (10) SDL (-)
r30535 win32 (10) *nix (5) osx (40) amiga (17) beos (26) dos (21) os/2 (41) SDL (6)
r30784 win32 (1) *nix (-) osx (-) amiga (26) beos (31) dos (14) os/2 (50) SDL (-)


more than one open issue from before the last release version
no open issues from before the last release version, plus at most one other open issue
no open issues from before the last release version
no open issues from before the last tagged version, plus at most one other open issue
no open issues from before the last tagged version
no open issues

Trunk

Here is a short overview of all changes made in trunk that are relevant for the respective port/gui maintainers.

Note: new stuff should be added at the bottom and each item should have the related svn revision

To keep the size of this list down (and hopefully shrinking) ...

  • Port/GUI Maintainers should remove their port from the respective item when it is implemented.
  • To not clutter this page with stuff that will not get implemented anytime soon ("i will not add lightpen support to this handheld port") in such cases the respective port should also get removed from the respective item, and a note pointing out the missing feature should get added to Todo#Ports_.2F_UIs instead.
  • Items which have no more TODOs left should then be moved to the Developer_log_old Page

2.2

2.2.7 (r22889)

  • NEW: archdep_fix_permissions (r23053)
    • should set the permissions of a given file to "rw", respecting the current umask (if any)
    • TODO: add proper code for the following ports: beos
    • TODO: ...and copy to arch/sdl/archdep_* when doing that

2.3

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.
    • TODO: check/confirm/implement for the following ports: amiga, beos, dos, os/2
    • TODO: ...and copy to arch/sdl/archdep_* when sigpipe handling is required
  • put the status of the vsid ui into the todo list here: Todo#Ports_.2F_UIs
    • TODO: check following ports: dos

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)
    • TODO: update gui items in following ports: os/2

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
  • TODO: add GUI items to following ports: os/2

2.4

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)
    • TODO: Check and if required adapt GUI items for the following ports: beos, dos, os/2

r27046

  • NEW: Resource "DriveSoundEmulationVolume" (integer, 0 - 4000) to adjust the volume of the drive noise emulation
    • TODO: add GUI items in following ports: beos, os/2

2.4.4 (r27450)

  • NEW: added Resource "JAMAction" to select default action on CPU JAM. (int, MACHINE_JAM_ACTION_DIALOG, MACHINE_JAM_ACTION_CONTINUE, MACHINE_JAM_ACTION_MONITOR, MACHINE_JAM_ACTION_RESET, MACHINE_JAM_ACTION_HARD_RESET and MACHINE_NUM_JAM_ACTIONS respectively)
    • TODO: add GUI item(s) in following ports: os/2

also see r27981 below

r27452

  • 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)
    • TODO: add GUI item(s) in following ports: os/2
    • NOTE: while adding this, check if the model switching in xscpu64 is working (it should be like in x64sc, not like in x64!)

r27549

  • 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)
    • TODO: add/update GUI item(s) in following ports: os/2

r27914

  • 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
    • TODO: add/update GUI item(s) in following ports: os/2

2.4.6 (r27981)

  • added MACHINE_JAM_ACTION_QUIT as option for JAMACTION
    • TODO: add/update GUI item(s) in following ports: os/2

r28014

  • accessing device #7 on the IEC bus works (only real devices), respective selection (0: none 2: real) should get added to the menus
    • TODO: add/update GUI item(s) in following ports: os/2

2.4.8 (r28546)

  • new Resource: "IDE64USBServerAddress" (string) for entering a listening address, e.g. "ip4://127.0.0.1:64245"
  • new Resource: "IDE64USBServer" (boolean) for enabling/disabling it.
  • TODO: add GUI items in beos, os/2

2.4.9 (r28665)

  • new Resource: "DS12C887RTCRunMode" (int) for setting the initial run mode of the RTC oscillator (0=halted, 1=running)
  • TODO: add GUI items for amiga, os/2

r28935

  • added generic function/list for querying the enabled compile time features. (see vicefeatures.h)
TODO: add GUI items for os/2

r28951

  • new Resources: (BOOL) "Drive8RTCSave", "Drive9RTCSave", "Drive10RTCSave", "Drive11RTCSave" (all iec machines except vsid) for enabling saving RTC data (0=disabled, 1=enabled)
  • TODO: add GUI items for os/2

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
TODO: convert code to use the list instead of hardcoding it: amiga, os/2

2.4.15 (r29202)

  • added new resource "VICIIVSPBug" (bool) to enable/disable emulation of the VSP bug
TODO: add UI elements to following ports: amiga, os/2 (VICIISC only!)

r29231

  • added new resource "DatasetteTapeWobble" (int) to emulate random tape wobble
TODO: add UI elements to following ports: amiga, os/2

r29237

  • 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
TODO: fix UI elements for the following ports: os/2

r29348

  • added new resource "EasyFlashOptimizeCRT" (bool) to allow/disallow optimizing of the .crt file when writing
TODO: fix UI elements for the following ports: amiga, os/2

r29610

  • long overdue rework of keyboard map handling is in trunk now. for details on migrating to the new code see Keymaps
TODO: fix UI elements for the following ports: amiga, beos, dos, os/2, win32

r29761

  • IDE64 V4.2 support was added. (resource "IDE64Version" (int): IDE64_VERSION_3, IDE64_VERSION_4_1, IDE64_VERSION_4_2)
TODO: Update/Fix GUI items in following ports: amiga, os/2

r29938

  • 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)
TODO: Update/fix GUI items in the following ports: os/2

r30025

  • new resource "Drive8RPM" "Drive9RPM" "Drive10RPM" "Drive11RPM" (integer, default: 30000) - drive RPM multiplied by 100
  • new resource "Drive8Wobble" "Drive9Wobble" "Drive10Wobble" "Drive11Wobble" (integer, default: 50) - drive wobble
TODO: Add GUI items in the following ports: amiga, beos, os/2

r30040

  • new screenshot format 'godot' (extension '.4bt').
TODO Check/add GUI elements of the following ports: os/2

r30107

  • NEW: resource "SSRamExpansion" (Boolean) to enable/disable the 32k addon RAM of the Super Snapshot V5
TODO add GUI items to following ports: amiga, os/2

r30161

  • Added mouse init/shutdown calls to xcbm2 and xpet.
TODO add GUI items (mouse settings and grab mouse events) to the following ports: os/2

r30206

  • Added UltiMem cart support to xvic.
  • NEW: resource "UltiMemWriteBack" (Boolean) to enable/disable write back of the UltiMem ROM.
TODO add GUI items to the following ports: os/2

r30213

  • 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.
TODO add GUI items to the following ports: os/2

r30225

  • Added c64 CP/M cartridge support.
  • NEW: resource "CPMCart" (Boolean) to enable/disable the cartridge.
TODO add GUI items to the following ports: os/2

r30294

  • Removed "UserportJoyType", "JoyDevice4" and arch joystick device 4 related resources in x64dtv.
TODO check and fix GUI items for the following ports: os/2

r30368

  • 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
TODO add GUI items for the following ports: os/2

r30410

  • 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.
TODO fix/extend GUI items for the following ports: os/2

r30425

  • Extended the userport rtc (58321a) to cbm2, pet and vic20.
TODO add GUI items for the following ports: os/2

r30429

  • Extended the userport dac to c64, c128, cbm2, plus4 and vic20.
TODO add GUI items for the following ports: amiga, os/2

r30443

  • 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.
TODO add/fix GUI items for the following ports: amiga, os/2

r30429

  • Added userport 4bit sampler support to c64, c128 and cbm2.
  • NEW: resource "Userport4bitSampler" (bool) to enable/disable the sampler.
TODO add GUI items for the following ports: amiga, os/2

r30488

  • Added userport 8bit stereo sampler (8bss) support to c64, c128 and cbm2.
  • NEW: resource "Userport8BSS" (bool) to enable/disable the sampler.
TODO add GUI items for the following ports: amiga, os/2

r30518

  • 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.
TODO add GUI items for the following ports: amiga, os/2

r30535

  • 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")
TODO add GUI items for the following ports: amiga, os/2

r30650

  • 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).
TODO add GUI items for the following ports: amiga, beos, os/2

r30683

  • Added tapeport system, and changed the datasette into a tapeport device.
  • NEW: resource "Datasette" (bool) to enable/disable the datasette device.
TODO add GUI items for the following ports: amiga, os/2

r30701

  • Added joyport bbrtc (ds1602) support.
  • NEW: resource "BBRTCSave" (bool) to enable/disable the saving of the RTC data when changed.
TODO add GUI items for the following ports: amiga, os/2

r30702

  • removed the "VICIINewLuminances" resource and use seperate luma tables per chip type instead.
TODO remove GUI items in x64, x64sc, xscpu64, xcbm5x0, x128 in the following ports: amiga, beos, os/2
  • 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.
TODO fix GUI items in x64dtv in the following ports: amiga, beos, os/2

r30708

  • Added API to query list of palettes, see palette.h, use this to create the palette menu(s) at runtime.
TODO update GUI items in the following ports: amiga, beos, os/2
TODO when all ports are updated, rename all VICII palettes ("vice.vpl" -> "pepto.vpl" and then "default.vpl" -> "vice.vpl") and update palette.c accordingly

r30711

  • 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.
TODO add GUI items for the following ports: amiga, os/2

r30728

  • 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.
TODO add GUI items for the following ports: amiga, os/2

r30730

  • 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.
TODO add GUI items for the following ports: amiga, os/2

r30764

  • Added tape port dtl basic dongle device
  • NEW: resource "DTLBasicDongle" (bool) to enable/disable the device.
TODO add GUI items for the following ports: amiga, os/2

r30797

  • Added Mike's VFLI modification to xvic
  • NEW: resource "VFLImod" (bool) to enable/disable
TODO add GUI items for xvic in the following ports: amiga, beos, os/2

r31502

  • Added support for GMod2 cartridge by Individual Computers
  • NEW: resource "GMOD2EEPROMRW" (bool) to enable/disable writeback to the EEPROM image
  • NEW: resource "GMod2EEPROMImage" (string) which contains the filename of the EEPROM image
  • NEW: resource "GMod2FlashWrite" (bool) to enable/disable writeback to the FLASH image
TODO add GUI items for x64/x64sc/x128/xscpu64 in the following ports: osx
note: you can copy/paste most of the required menu from eg the MMCR menu

r31536

  • Added support by the "Behr Bonz" VIC20 cartridge (CARTRIDGE_VIC20_BEHRBONZ)
TODO add GUI items for xvic in the following ports: osx

r31917

  • CS8900 I/O has been abstracted, any device using the CS8900 chip now goes through the CS8900 I/O layer, for now there can be only one owner, any attempt to open the CS8900 I/O device when already in use by a different 'owner' will lead to a gui message stating the current owner of the chip.
  • resource "ETHERNET_ACTIVE" has been removed, each device using the CS8900 is now responsible for setting its own resource.
  • resource "ETHERNET_AS_RR" has been removed, each device using the CS8900 is now responsible for mapping the CS8900 registers.
  • command line option "-tfeif" has been changed to "-cs8900ioif"
  • command line option "-tferrnet" has been removed
  • command line option "+tferrnet" has been removed
TODO remove 'tfe as rrnet' item from the GUI in the following ports: amiga, beos, dos, os/2, osx, sdl, *nix, win32

r31937

  • Added clockport system, added rrnet clockport device and changed RRNETMK3 to use the new clockport system.
  • new resource "RRNETMK3ClockPort" (int) to select the RRNETMK3 clockport device
TODO add clockport device selection item to the RRNETMK3 GUI for the following ports: amiga, beos, dos, os/2, osx, sdl, *nix, win32

r31947

  • Changed MMC64, MMCR and RetroReplay to use the new clockport system
  • new resource "MMC64ClockPort" (int) to select the MMC64 clockport device
  • new resource "MMCRClockPort" (int) to select the MMCR clockport device
  • new resource "RRClockPort" (int) to select the RetroReplay clockport device
TODO add clockport device selection items to the MMC64, MMCR and RetroReplay GUIs for the following ports: amiga, beos, dos, os/2, osx, sdl, *nix, win32

r31953

  • Moved TFE cartridge code to the new CS8900 I/O abstraction layer
  • new resource "TFE_ACTIVE" (bool) to enable/disable the TFE cartridge
TODO change the enable/disable of the TFE cartridge to use the new resource in the GUI for the following ports: amiga, beos, dos, os/2, osx, sdl, *nix, win32

r31961

  • Added short bus ETFE emulation
  • new resource "SBETFE" (bool) to enable/disable the ETFE device
  • new resource "SBETFEbase" (int) to select the address of the ETFE device
TODO add short bus ETFE GUI items for the following ports: amiga, beos, dos, os/2, osx, sdl, *nix, win32

r31967

  • Added IDE64 clockport emulation
  • new resource "IDE64ClockPort" (int) to select the IDE64 clockport device
TODO add clockport device selection item to the IDE64 GUI for the following ports: amiga, beos, dos, os/2, osx, sdl, *nix, win32

Branches

Here is a short overview of all branches that are currently active in SVN, i.e. someone develops a new feature that soon will be merged into trunk. Note here the upcoming features, if some testing is required on specific platforms or there is something porters need to be aware of. When a branch was merged into trunk, the respective info should be moved to the Developer_log_old Page.

  • 2.3-new-cpu-cores (blacky)
    • This branch is all about (old and) new cpu cores, it is meant to implement the following:
      • z80 support for x64/x64sc (z80 cp/m cartridge). (code is in the trunk and used by the c64 cpm cart)
      • 65(S)C02 support as used in some accelerator carts, but also as direct 6502/6510 replacement. (core is in the trunk and used by the fd2000/4000 drives)
      • 65CE02 support as direct 6502/6510 replacement.
      • 65802/65816 support as used in some accelerator carts, but also as direct 6502/6510 replacement (65802 only). (core is in the trunk and used by xscpu64 as the main cpu core).
      • 6809/6309 support as used in the super pet. (core is in the trunk and used by the superpet)
      • 8088 support as used in a copro board for the cbm2 (able to run cp/m-86 and msdos 1.25).
  • driveupdate (soci)
    • The point is to have a single FDD emulation for all drives which need low level media emulation and caching. The disk image handling is also reworked to make simpler to use and extend it later. Some features were added like handling of d71 double sided emulation mode disk images, real 6502 FDC with GCR image (works for 1001 now, planned for others). Improved fault handling and updating of Dxx images, 1581 and other MFM drives needs some work. Planned is to get the 1571 MFM mode somehow working together with the GCR mode (probably not on the same type of image file), and maybe implement G64 image support for the IEEE drives. And of course all these changes brings some new bugs to fix. This is most likely not going to be finished in 2011, and maybe some parts should be migrated to trunk to get some of the ready stuff out earlier.
  • vice-1990 (soci)
    • Branch for emulating the 1990 drive.
    • TODO: user interface for Drive?Swap8Button, DrivexSwap?Button, Drive?WriteProtectButton
    • TODO: gui changes so that this type can be selected
    • TODO: RTC72421 emulation needed
    • TODO: proper disk image attaching, hdd/iso/fdd image types? Currently file is hardcoded to "/tmp/image" for all!
    • Future: geos, swap8, swap9 and write protect LEDs on GUI would be nice
    • Future: device number comes from the image instead of VICE.
    • Future: vdrive support. Good luck ;)

List of ports: amiga, beos, dos, os/2, osx, *nix, win32, sdl

List of ports outside UI updates: android, dingoo