Developer log: Difference between revisions

From vice-emu
Jump to navigation Jump to search
mNo edit summary
 
(968 intermediate revisions by 9 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>
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.
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.


Line 4: Line 10:


{| border="1" cellpadding="2" cellspacing="0"
{| border="1" cellpadding="2" cellspacing="0"
|| trunk
|| r25372 ||
| style="background:#FF0000;" | win32
| style="background:white;" |
| style="background:#00FF00;" | *nix  
| style="background:#FFFF00;" | win32 (1)
| style="background:#ADFF2F;" | SDL
| style="background:#FFFF00;" | *nix (1)
| style="background:#FF0000;" | osx
| style="background:#FFC000;" | osx (29)
| style="background:#FF8000;" | amiga
| style="background:white;" |
| style="background:#FF0000;" | beos
| style="background:#FF8000;" | amiga (39)
| style="background:#FF8000;" | dos
| style="background:#FF0000;" | beos (43)
| style="background:#FF0000;" | os/2
| style="background:#FF8000;" | dos (39)
| style="background:#FF0000;" | os/2 (55)
| style="background:white;" |
| style="background:#FFFF00;" | SDL (1)
|-
|| r25801 ||
| style="background:white;" |
| style="background:#00FF00;" | win32 (-)
| style="background:#00FF00;" | *nix (-)
| style="background:#FFC000;" | osx (30)
| style="background:white;" |
| style="background:#FF8000;" | amiga (37)
| style="background:#FF0000;" | beos (41)
| style="background:#FF8000;" | dos (40)
| style="background:#FF8000;" | os/2 (4)
| style="background:white;" |
| style="background:#00FF00;" | SDL (-)
|-
|| r25858 || 2.3.19
| style="background:white;" |
| style="background:white;" |
| style="background:#ADFF2F;" | gp2x
| style="background:#00FF00;" | win32 (-)
| style="background:#FFFF00;" | riscos
| style="background:#00FF00;" | *nix (-)
| style="background:#FFC000;" | osx (30)
| style="background:white;" |
| style="background:#FF8000;" | amiga (9)
| style="background:#FF0000;" | beos (41)
| style="background:#FF8000;" | dos (40)
| style="background:#FF8000;" | os/2 (4)
| style="background:white;" |
| style="background:#00FF00;" | SDL (-)
|-
|| r25955 || 2.3.20
| style="background:white;" |
| style="background:#FFC000;" | win32 (2)
| style="background:#00FF00;" | *nix (-)
| style="background:#FFC000;" | osx (30)
| style="background:white;" |
| style="background:#FF8000;" | amiga (4)
| style="background:#FF0000;" | beos (31)
| style="background:#FFC000;" | dos (28)
| style="background:#FF8000;" | os/2 (4)
| style="background:white;" |
| style="background:#00FF00;" | SDL (-)
|-
|| r26032 || 2.3.21
| style="background:white;" |
| style="background:#FFC000;" | win32 (3)
| style="background:#00FF00;" | *nix (-)
| style="background:#FFC000;" | osx (31)
| style="background:white;" |
| style="background:#FF8000;" | amiga (5)
| style="background:#FF0000;" | beos (32)
| style="background:#FFC000;" | dos (6)
| style="background:#FF8000;" | os/2 (5)
| style="background:white;" |
| style="background:#ADFF2F;" | SDL (1)
|-
|
|-
|| r26488 || 2.4
| style="background:white;" |
| style="background:#FFC000;" | win32 (3)
| style="background:#00FF00;" | *nix (-)
| style="background:#FFC000;" | osx (35)
| style="background:white;" |
| style="background:#FF8000;" | amiga (5)
| style="background:#FF0000;" | beos (36)
| style="background:#FFC000;" | dos (7)
| style="background:#FF8000;" | os/2 (5)
| style="background:white;" |
| style="background:#ADFF2F;" | SDL (1)
|-
|
|-
|| r26876 || 2.4.1
| style="background:white;" |
| style="background:#FF0000;" | win32 (4)
| style="background:#00FF00;" | *nix (-)
| style="background:#FF0000;" | osx (36)
| style="background:white;" |
| style="background:#FF0000;" | amiga (5)
| style="background:#FF0000;" | beos (37)
| style="background:#FF0000;" | dos (8)
| style="background:#FF0000;" | os/2 (6)
| style="background:white;" |
| style="background:#00FF00;" | SDL (-)
|-
|| r28197 || 2.4.7
| style="background:white;" |
| style="background:#FF8000;" | win32 (5)
| style="background:#00FF00;" | *nix (-)
| style="background:#FF0000;" | osx (48)
| style="background:white;" |
| style="background:#FF0000;" | amiga (5)
| style="background:#FF0000;" | beos (8)
| style="background:#FF0000;" | dos (8)
| style="background:#FF0000;" | os/2 (11)
| style="background:white;" |
| style="background:#00FF00;" | SDL (-)
|-
|| r28270 ||
| style="background:white;" |
| style="background:#00FF00;" | win32 (-)
| style="background:#00FF00;" | *nix (-)
| style="background:#FF0000;" | osx (48)
| style="background:white;" |
| style="background:#FFFF00;" | amiga (1)
| style="background:#FF0000;" | beos (5)
| style="background:#FF0000;" | dos (3)
| style="background:#FF0000;" | os/2 (10)
| style="background:white;" |
| style="background:#00FF00;" | SDL (-)
|-
|| r30535 ||
| style="background:white;" |
| style="background:#FF0000;" | win32 (10)
| style="background:#FF0000;" | *nix (5)
| style="background:#FF0000;" | osx (40)
| style="background:white;" |
| style="background:#FF0000;" | amiga (17)
| style="background:#FF0000;" | beos (26)
| style="background:#FF0000;" | dos (21)
| style="background:#FF0000;" | os/2 (41)
| style="background:white;" |
| style="background:#FF0000;" | SDL (6)
|-
|| r30784 ||
| style="background:white;" |
| style="background:#ADFF2F;" | win32 (1)
| style="background:#00FF00;" | *nix (-)
| style="background:#00FF00;" | osx (-)
| style="background:white;" |
| style="background:#FF8000;" | amiga (26)
| style="background:#FF8000;" | beos (31)
| style="background:#FF8000;" | dos (14)
| 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:#00FF00;" | SDL (-)
|}
|}
<br>
<br>
{| border="1" cellpadding="2" cellspacing="0"
{| border="1" cellpadding="2" cellspacing="0"
Line 33: Line 200:
|}
|}


==Branches==
==Trunk==


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.
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 of the page and each item should have the related svn revision'''
Note: '''new stuff should be added at the bottom and each item should have the related svn revision'''


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


* Config split
* Port/GUI Maintainers should remove their port from the respective item when it is implemented.
** Datadir uses machine_name as before, config/hotkeys/fliplist/etc (should) use machine_get_name() instead
* 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.
** Use "C64SC" for x64sc
* Items which have no more TODOs left should then be moved to the [[Developer_log_old]] Page
*** 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 "VSID" for vsid
*** Due to the config split, it is finally possible to have VSID config/hotkeys/etc
*** TODO: add load/save settings (vsid) UI items for: beos, os/2, win32
** 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.
===r34242===
** 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)====
* added tapecart emulation, still needs GUI hookups


* Userport Joystick Interface support (r20807)
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.
** 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/joystick.h for the types.
** TODO: UI items for the following ports: os2
** TODO: Make the joystick UI correct, to clarify: c128, c64, c64dtv, cbm5x0 and plus4 have 2 native joystick port, vic20 has only 1 native joystick port and pet and cbm6x0/7x0 have no native joystick ports at all. The HIT userport joystick adapter can only be used on c64/c128, the other userport joystick adapters can be used on c64, c128, c64dtv, cbm6x0/7x0, pet and vic20.
** NOTE: Network code uses the new size; this may be a problem.


====2.1.13 (r20920)====
'''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.


* Plus4 SID cart add-ons support (20977)
==3.0==
** Resource: DIGIBLASTER (toggle) for the digibooster add-on and SIDCartJoy (toggle) for the joystick port on the sidcart.
** TODO: xplus4 UI items for the following ports: os/2


====2.1.14 (r21002)====
* 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


* Lightpen/gun support (21132)
===r32815===
** NEW: Lightpen/gun emulation in x64, x128 and xvic
** Resource: Lightpen (toggle)
** Resource: LightpenType (enum, see lightpen.h)
*** 0=Pen with button Up (TODO: product name Atari CX75)
*** 1=Pen with button Left (TODO: product name?)
*** 2=Datel Pen
*** 3=Magnum Light Phaser
*** 4=Stack Light Rifle
** TODO: Lightpen driver and UI items for the following ports: amiga, beos, os/2
** NOTE: see SDL or win32 for driver implementation example


* xvic cartridge system rewrite (21222)
* Added support for the StarDOS drive ROM, new resources DriveXStarDos (boolean), DriveStarDosName (string)
** NEW: Rewritten modular cartridge emulation similar to that of x64.
:'''TODO''': add GUI items to the following ports (take supercard or profdos as example): amiga, beos, dos, osx, win32
** 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.
** TODO: .crt like cartridge format (.vrt)


====2.2.5 (r22607)====


* x64/x64sc/x128 Cartridge System (r22615)
===r33343===
** 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 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.
** 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 :)
** 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.
** TODO: fix MSDOS port, fix VIC20


* Expert Cartridge
==Branches==
** renamed Resource: "Expert" to "ExpertCartridgeEnabled" (toggle)
** TODO: ports that use cartridge_attach_image(CARTRIDGE_EXPERT, NULL) (which will now fail!) must now simply <del>set "ExpertCartridgeEnabled" to 1 to enable</del> 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)====
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.


* "PAL Emulation" is available in NTSC mode (r22746)
* 2.3-new-cpu-cores (blacky)
** NEW: proper rendering with CRT emulation in NTSC mode
** This branch is all about (old and) new cpu cores, it is meant to implement the following:
** 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.
*** <strike>z80 support for x64/x64sc (z80 cp/m cartridge).</strike> (code is in the trunk and used by the c64 cpm cart)
** 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.
*** <strike>65(S)C02 support as used in some accelerator carts, but also as direct 6502/6510 replacement.</strike> (core is in the trunk and used by the fd2000/4000 drives)
*** 65CE02 support as direct 6502/6510 replacement.
*** <strike>65802/65816 support as used in some accelerator carts, but also as direct 6502/6510 replacement (65802 only).</strike> (core is in the trunk and used by xscpu64 as the main cpu core).
*** <strike>6809/6309 support as used in the super pet.</strike> (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).


* Gamma Calculation changed (r22749)
* driveupdate (soci)
** 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).
** 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.
** TODO: fix UI items of the following ports: os/2
** possibly some #ifdef magic can be added in src/video/video-resources-pal.c to define correct defaults for platforms that don't use 2.2


* "true aspect ratio" option (r22749)
* vice-1990 (soci)
** 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.  
** Branch for emulating the 1990 drive.
*** scale output rectangle horizontally by pixel_aspect_ratio if "true aspect ratio" option is enabled
** TODO: user interface for Drive?Swap8Button, DrivexSwap?Button, Drive?WriteProtectButton
*** to maintain consistency across ports, use Resource:"TrueAspectRatio" (toggle). (must be defined in arch dependend files)
** TODO: gui changes so that this type can be selected
**** SDL UI intentionally breaks this as it had "SDLGLAspectMode" that bent naturally from a toggle to an enum
** <strike>TODO: RTC72421 emulation needed</strike> (in trunk)
** TODO: implement in ports that can make use of this: (other with hw scaling?)
** 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 ;)


* <del>"PAL Emulation"</del> "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.
** TODO: fix UI items of the following ports: os/2 (x128, xpet, xcbm2)
** TODO: rename PAL emulation to CRT emulation on the following ports: os/2
 
* IDE64 emulation can now handle 4 harddrive images. (r22824)
** Resource: IDE64Image renamed/changed to IDE64Image1, IDE64Image2, IDE64Image3, IDE64Image4
** TODO: add/fix UI items for the following ports: os/2.
 
* NEW: IDE64 emulation can emulate IDE64v4 (r22824)
** Resource: IDE64version4 (toggle)
** TODO: add/fix UI items for the following ports: os/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, os/2, riscos
** TODO: ...and copy to arch/sdl/archdep_* when doing that
 
* 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).
 
* Remove 'IEC' references from user visible printer descriptions in both commandline options and uis
** TODO: check/fix the following ui's: win32.
 
====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)====
List of ports: amiga, beos, dos, osx, *nix, win32, sdl
 
* ACIA/swiftlink/turbo232 base selectable, $DE00/$DF00 for c64/c128 and $D700 for c128 only (r24036)
** TODO: add ACIA base address select UI item for the following ports: beos, os/2
 
====2.3.8 (r24123)====
 
* MasC=uerade adapter support added to xvic.
** TODO: add georam, digimax, acia/swiftlink/turbo232, sfx sound sampler, sfx sound expander and tfe UI items for the following ports: beos, os/2
 
* 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.
** TODO: Change IDE64 UI elements for the following ports: beos, os/2
 
* userport generalization (r ?)
** Resources have changed:
*** Resource: PETUserPortDAC has become UserPortDAC
 
====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:
*: <code> x64 -remotemonitor</code>
*: and this into another:
*: <code> echo "reset" | nc -p 6510</code>
*: 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, os2, riscos, win32
** TODO: ...and copy to arch/sdl/archdep_* when sigpipe handling is required
** ''Note: signals_init() in riscos seems to be broken, perhaps worth checking in detail.''
 
* 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.
** TODO: check/fix win32 UI.
 
* 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)
** TODO: add UI items for the following ports: amiga, beos, dos, os/2, win32
 
* 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.
** TODO: add UI items for the following ports: amiga, beos, dos, os/2, win32
** 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:
**: <code> if (canvas->videoconfig->doublesizex) { width *= 2; }</code>
**: to that type of thing:
**: <code> if (canvas->videoconfig->doublesizex) { width *= (canvas->videoconfig->doublesizex + 1); }</code>
**: 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)
** TODO update the following ports: amiga, beos, dos, os/2, win32, gp2x, riscos
 
* added model selection to xplus4 (r24285)
** look at plus4/plus4model.h for models and functions, it works just like the c64 counterpart
** TODO: add GUI items to following ports: amiga, beos, dos, os/2, osx, win32
 
* ACIA emulation can be disabled in xplus4 (r24285)
** new Resource: Acia1Enable (BOOL, default = TRUE)
** TODO: add GUI items to following ports: amiga, beos, dos, os/2, win32
**: Note: this toggles wether the internal ACIA is present or not. actual rs232 emulation may be "enabled" even if no ACIA is present. so this item should go near to the other hardware/i/o extensions/options.
 
* xplus4 cartridge system unified to common api (r24285)
** new Resource: CartridgeReset (BOOL, default = TRUE)
**: when enabled, reset the emulated machine when changing cartridges
** TODO: add GUI items to following ports: amiga, beos, dos, os/2, osx, win32
** 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.
** TODO: fix following ports: Amiga, Win32
** 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, os/2, osx
** NOTE: Resources "3plus1loName" and "3plus1hiName" were removed, because they were duplicates of "FunctionLowName" and "FunctionHighName" (essentially replace the former by the later)
** TODO: fix following ports: Amiga, Win32
 
* added model selection to x64dtv (r24287)
** look at c64dtv/c64dtvmodel.h for models and functions, it works just like the c64 counterpart
** TODO: add GUI items to following ports: amiga, beos, dos, os/2, osx, win32
 
* xpet, xvic, xplus4 now all support all SID engines (r24288)
** TODO: change GUI items in following ports: amiga, beos, dos, os/2, win32
 
* 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
** TODO: change GUI items in following ports: amiga, beos, dos, os/2, win32
**: 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"
** TODO: change GUI items in following ports: amiga, beos, dos, os/2, win32
**: Note: VDC and CRTC do not support oddline phase/offset
 
* video_render_initraw() takes additional render config parameter (r24308)
** TODO: fix following ports: riscos
 
* after above changes, check wether VDC and VIC-II palettes can coexist, and update the todo list here: [[Todo#Ports_.2F_UIs]]
** TODO: check following ports: amiga, beos, dos, os/2, osx, win32, gp2x, riscos
 
* vsid is a seperate machine and splitted into a seperate binary (r24321)
** <code>vsid_mode</code> is deprecated. change all <code>if (vsid_mode) ...</code> to <code>if (machine_class == VICE_MACHINE_VSID)</code>
**: Note: in some cases checking for <code>console_mode</code> and/or <code>video_disabled_mode</code> might be better
**: Note: if there are switch statements in archdep code which check for <code>machine_class</code>, then adding <code>VICE_MACHINE_VSID</code> to them might be required (one common spot seems to be in joystick_init_cmdline_options())
** TODO: update following ports: amiga, beos, dos, os/2, osx
** TODO: ... and remove <code>vsid_mode</code> in main.c
 
* after above changes put the status of the vsid ui into the todo list here: [[Todo#Ports_.2F_UIs]]
** TODO: check following ports: amiga, beos, dos, os/2, osx
 
* xcbm5x0 splitted from xcbm2 into a seperate machine and binary (r24326)
** Resource "UseVicII" removed (no more needed)
** TODO: remove gui items/references in following ports: dingoo, osx, riscos, os2
** 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
** TODO: fix gui items of following ports: amiga, beos, dos, os/2, osx, win32, sdl
 
* added model selection to xcbm2/cbm5x0 (r24326)
** look at cbm2/cbm2model.h for models and functions, it works just like the c64 counterpart
** TODO: add/fix GUI items to following ports: amiga, beos, dos, os/2, osx, win32, sdl
** TODO: remove usage of cbm2_get_model() in following ports: os2
**: ... and remove cbm2_get_model() if done so
*** TODO: remove usage of cbm2_set_model() in following ports: os2, sdl, beos, win32, riscos
**: ... and make cbm2_set_model() static (use only for cmdline)
 
* 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: amiga, beos, dos, os/2, osx, win32, sdl
** 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.
** TODO: fix gui items in following ports: os2, sdl, osx, win32, amigaos
 
* after above changes put the status of the cbm2/cbm5x0 ui into the todo list here: [[Todo#Ports_.2F_UIs]]
** TODO: check following ports: amiga, beos, dos, os/2, osx, win32, sdl
 
* add vsid and xcbm5x0 executables to make-bindist scripts
** TODO: add watcom related stuff for vsid/xcbm5x0 in makefile.am
** TODO: add cbm5x0 and vsid to the various project files.
 
* NEW: 4000 drive emulation
** TODO: UIs need to be updated for drive model selection and ROM load. Can easily be done by looking where 1581 is used, and adding 4000 there too. Done in unix/gui, everywhere else TODO.
 
* NEW: IDE64 DVD (.iso), LS-120/ZIP (.fdd), and CF card support (.cfa) by using ATA core
** also better accuracy for cartridge and bus emulation
 
* NEW: ATA "core" to emulate HDD/DVD/FDD/CFA with ATA interface (now used by IDE64)
 
* NEW: Atari ST mouse and the Atari CX-22 trackball and improved Amiga mouse emulation by Magnus Lind.
** TODO: Check and test UI items for Atari ST mouse and Atari CX-22 trackball
 
* NEW: Burst modification emulation for C64
** TODO: Update UIs to select 0=None/1=CIA1/2=CIA2 for the "BurstMod" resource.
 
 
====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).
** new Resource: "SoundOutput" (enum) SOUND_OUTPUT_SYSTEM, SOUND_OUTPUT_MONO, SOUND_OUTPUT_STEREO
** TODO: add gui items in the following ports: amiga, beos, dos, os/2, osx, *nix, win32, sdl
----


List of ports: amiga, beos, dos, os/2, osx, *nix, win32, sdl
List of ports outside UI updates: android, dingoo


List of ports outside UI updates: gp2x, riscos
[[Category:Deprecated]]

Latest revision as of 18:26, 23 March 2023

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