Developer log: Difference between revisions

From vice-emu
Jump to navigation Jump to search
mNo edit summary
(38 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<big>'''As of the 3.2 release, this page is no more used. All developers are supposed to update the GTK3 and SDL ports when they add things that need GUI items.'''</big>
<div class="noautonum">__TOC__</div>
<div class="noautonum">__TOC__</div>


Line 150: Line 154:
| style="background:#FF8000;" | dos (14)
| style="background:#FF8000;" | dos (14)
| style="background:#FF0000;" | os/2 (50)
| style="background:#FF0000;" | os/2 (50)
| style="background:white;" |
| style="background:#00FF00;" | SDL (-)
|-
|| r32419 ||
| style="background:white;" |
| style="background:#00FF00;" | win32 (-)
| style="background:#00FF00;" | *nix (-)
| style="background:#00FF00;" | osx (-)
| style="background:white;" |
| style="background:#00FF00;" | amiga (-)
| style="background:#FFC000;" | beos (3)
| style="background:#00FF00;" | dos (-)
| style="background:#FFC000;" | os/2 (4)
| style="background:white;" |
| style="background:#00FF00;" | SDL (-)
|-
|| r32520 || 3.0
| style="background:white;" |
| style="background:#00FF00;" | win32 (-)
| style="background:#00FF00;" | *nix (-)
| style="background:#00FF00;" | osx (-)
| style="background:white;" |
| style="background:#00FF00;" | amiga (-)
| style="background:#00FF00;" | beos (-)
| style="background:#00FF00;" | dos (-)
| style="background:#FFFF00;" | os/2 (2)
| style="background:white;" |
| style="background:white;" |
| style="background:#00FF00;" | SDL (-)
| style="background:#00FF00;" | SDL (-)
Line 184: Line 214:
----
----


==2.4==  
===r34242===
===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.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
 
=== 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: beos, 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: beos, 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: beos
 
=== 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: beos
: '''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
 
=== 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 tapecart emulation, still needs GUI hookups
* Added support by the "Behr Bonz" VIC20 cartridge (CARTRIDGE_VIC20_BEHRBONZ)
: '''TODO''' add GUI items for xvic in the following ports: osx


=== r31917 ===
Tapecart support has been added in the Gtk3 UI and the SDL UI, including a 'flush image button' which uses the new tapecart_flush_tcrt() function in tapecart.c.
* 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: osx
: '''TODO''' move "ETHERNET_INTERFACE" from the TFE section to a seperate CS8900 section in the GUI of the following ports: osx


=== r31947 ===
'''TODO''': Decide if we want to add this to the other ports, to be included in VICE 3.2, the last release with the 'old' ports.
* 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
* there is a list of available devices, you can get this list by including 'clockport.h' and using the 'name' and 'id' members of the 'clockport_supported_devices_t clockport_supported_devices[]' variable, the end of the list is indicated by a 'NULL' for the 'name' member and a '-1' for the id member
: '''TODO''' add clockport device selection items to the MMC64, MMCR and RetroReplay GUIs for the following ports: osx


=== r31953 ===
==3.0==
* 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: osx


=== r31961 ===
* Added support for G71 (double sided G64 for 1571) images
* Added short bus ETFE emulation
:'''TODO''': add g71 to filters in file-open/attach dialogs in following ports: amiga, dos, osx, win32
* new resource "SBETFE" (bool) to enable/disable the ETFE device
:'''TODO''': add g71 to "create image" dialogs (DISK_IMAGE_TYPE_G71) in following ports: amiga, beos, dos, osx, win32
* new resource "SBETFEbase" (int) to select the address of the ETFE device (0xde00, 0xde10 or 0xdf00)
: '''TODO''' add short bus ETFE GUI items for the following ports: osx


=== r31967 ===
===r32815===
* Added IDE64 clockport emulation
* new resource "IDE64ClockPort" (int) to select the IDE64 clockport device
* there is a list of available devices, you can get this list by including 'clockport.h' and using the 'name' and 'id' members of the 'clockport_supported_devices_t clockport_supported_devices[]' variable, the end of the list is indicated by a 'NULL' for the 'name' member and a '-1' for the id member
: '''TODO''' add clockport device selection item to the IDE64 GUI for the following ports: osx


=== r32092 ===
* Added support for the StarDOS drive ROM, new resources DriveXStarDos (boolean), DriveStarDosName (string)
* Changed tfe cartridge emulation to a generic cs8900 based ethernet cartridge emulation.
:'''TODO''': add GUI items to the following ports (take supercard or profdos as example): amiga, beos, dos, osx, win32
* Removed "TFE_ACTIVE" resource, since the cart is no longer TFE only.
* Added "ETHERNETCART_ACTIVE" resource (bool) to enable/disable the Ethernet Cartridge.
* Added "ETHERNETCARTBase" resource (int) the address of the cartridge (c64/c128: $de00/$de10/$de20...$dfd0/$dfe0/$dff0) (vic20: $9800/$9810/$9820...$98d0/$98e0/$98f0 & $9c00/$9c10/$9c20...$9cd0/$9ce0/$9cf0).
* Removed "TFEIOSwap" resource, since the address of the cartridge can be set now.
* Added "ETHERNETCARTMode" resource (int) indicates the mode of the cartridge (0: TFE, 1: RRNET).
* The command line option "-tfe" is still present, and when used sets the address to $de00, mode to TFE and activates the cart.
* Removed the "+tfe" command line option, since the cart is no longer TFE only.
* Added command line option "-rrnet", when used sets the address to $de00, mode to RRNET and activates the cart.
* Added command line option "-ethernetcart", enables the cart.
* Added command line option "+ethernetcart", disables the cart.
* Added command line option "-ethernetcartbase", sets the base address of the cart.
* Added command line option "-ethernetcartmode", sets the mode of the cart.
* Removed the "-tfeioswap" and "+tfeioswap" command line options, since the address of the cart can be set now.
: '''TODO''' change "TFE_ACTIVE" to "ETHERNETCART_ACTIVE", add 'Ethernet Cartridge base address' element, add 'Ethernet Cartridge mode' element, remove vic20 tfeioswap element and change any references from 'TFE' to 'Ethernet Cartridge' in the following ports: osx


=== r32266 ===
* VSID: Added submenu for 'Maximum speed' in the *nix ui. VSID already had a command line for setting the 'Speed' resource, but not a UI item.
: '''TODO''' add submenu to the following ports: os/2, osx.
Please note that the 'RefreshRate' resource has been removed from VSID, so when copying UI code from, for example, x64, make sure to update the UI code accordingly.


=== r32316 ===
===r33343===
* VSID: Added some hacks to make Gtk VSID behave again: since I fixed the memory leaks in the Gtk UI the VSID UI started misbehaving. VSID '''completely regenerates the entire menu''' (and didn't clean up the old one) whenever a PSID got loaded since a dynamic 'tunes' menu was created, which meant more and more hotkeys and callbacks where added that went nowhere. Obviously this a wasteful and horrible approach (triggering segfaults), so this needs to get fixed in both Gtk and Xaw code for VSID, added toolkit-specific code to only replace the subtunes menu. (Compyx)


=== r32374 ===
* Changed a few malloc()/free() calls to lib_malloc()/lib_free(), which includes some code I cannot check (OSX for example), so should you run into errors/warnings when running VICE with -debug enabled, let me know. I think I got it right, but you never know.
* Fixed the menu text in the *nix UI for the 'AutostartDelay' resource: it isn't a threshold for 'AutostartDelayRandom', it's a separate delay in seconds before autostarting a prg.
: '''TODO''': check other UI's for the correct naming of the item and if the autostart setting UI is implemented at all for the following ports: osx


==Branches==
==Branches==
Line 312: Line 258:
** TODO: user interface for Drive?Swap8Button, DrivexSwap?Button, Drive?WriteProtectButton
** TODO: user interface for Drive?Swap8Button, DrivexSwap?Button, Drive?WriteProtectButton
** TODO: gui changes so that this type can be selected
** TODO: gui changes so that this type can be selected
** TODO: RTC72421 emulation needed
** <strike>TODO: RTC72421 emulation needed</strike> (in trunk)
** TODO: proper disk image attaching, hdd/iso/fdd image types? Currently file is hardcoded to "/tmp/image" for all!
** 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: geos, swap8, swap9 and write protect LEDs on GUI would be nice
Line 320: Line 266:
----
----


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


List of ports outside UI updates: android, dingoo
List of ports outside UI updates: android, dingoo

Revision as of 15:08, 20 May 2018

As of the 3.2 release, this page is no more used. All developers are supposed to update the GTK3 and SDL ports when they add things that need GUI items.


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 (-)
r32419 win32 (-) *nix (-) osx (-) amiga (-) beos (3) dos (-) os/2 (4) SDL (-)
r32520 3.0 win32 (-) *nix (-) osx (-) amiga (-) beos (-) dos (-) os/2 (2) 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

r34242

  • added tapecart emulation, still needs GUI hookups

Tapecart support has been added in the Gtk3 UI and the SDL UI, including a 'flush image button' which uses the new tapecart_flush_tcrt() function in tapecart.c.

TODO: Decide if we want to add this to the other ports, to be included in VICE 3.2, the last release with the 'old' ports.

3.0

  • Added support for G71 (double sided G64 for 1571) images
TODO: add g71 to filters in file-open/attach dialogs in following ports: amiga, dos, osx, win32
TODO: add g71 to "create image" dialogs (DISK_IMAGE_TYPE_G71) in following ports: amiga, beos, dos, osx, win32

r32815

  • Added support for the StarDOS drive ROM, new resources DriveXStarDos (boolean), DriveStarDosName (string)
TODO: add GUI items to the following ports (take supercard or profdos as example): amiga, beos, dos, osx, win32


r33343

  • Changed a few malloc()/free() calls to lib_malloc()/lib_free(), which includes some code I cannot check (OSX for example), so should you run into errors/warnings when running VICE with -debug enabled, let me know. I think I got it right, but you never know.

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 (in trunk)
    • 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, osx, *nix, win32, sdl

List of ports outside UI updates: android, dingoo