Developer log: Difference between revisions
Jump to navigation
Jump to search
(→viceplus/v2.2.1-x64sc: PAL/NTSC switch removal) |
(remove gp2x and riscos items, note on disabling x64sc on some ports, update x64sc win32 status) |
||
Line 5: | Line 5: | ||
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 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. | ||
=== | ===x64sc=== [2.2.2] | ||
x64sc, the next step in C64 emulation. | x64sc, the next step in C64 emulation. | ||
Disable on low-end ports | |||
* x64sc needs a lot of host CPU and reSID-fp | |||
* TODO: Disable building x64sc for: gp2x, riscos (any others?) | |||
UI rework | UI rework | ||
* UI for x64sc using c64scui_init/shutdown, differences listed below | * UI for x64sc using c64scui_init/shutdown, differences listed below | ||
* See SDL UI and/or *nix UIs for an example and suggested menu item naming | * See SDL UI and/or *nix UIs for an example and suggested menu item naming | ||
* TODO: New UI for: amiga, beos | * TODO: New UI for: amiga, beos, msdos, os/2, osx | ||
* C64 | * C64 | ||
** Overall model selection, see c64/c64model.h | ** Overall model selection, see c64/c64model.h | ||
** NOTE: The C64 model selection affects (and is affected by) all the resources listed below plus the SID model (and engine, if not reSID-fp already) | ** NOTE: The C64 model selection affects (and is affected by) all the resources listed below plus the SID model (and engine, if not reSID-fp already) | ||
** TODO: UI items for: amiga, beos | ** TODO: UI items for: amiga, beos, msdos, os/2, osx | ||
* CIA | * CIA | ||
** Resource: CIA1Model (toggle or enum with 0 & 1) | ** Resource: CIA1Model (toggle or enum with 0 & 1) | ||
** Resource: CIA2Model (toggle or enum with 0 & 1) | ** Resource: CIA2Model (toggle or enum with 0 & 1) | ||
** NOTE: could be used also in x64 and x128 | ** NOTE: could be used also in x64 and x128, probably not worth the hassle | ||
** TODO: UI items for: amiga, beos | ** TODO: UI items for: amiga, beos, msdos, os/2, osx | ||
* VICII | * VICII | ||
** Resource: VICIIModel (enum, see vicii.h) | ** Resource: VICIIModel (enum, see vicii.h) | ||
** NOTE: NTSC models not implemented yet | ** NOTE: NTSC models not implemented yet | ||
** TODO: UI items for: amiga, beos | ** TODO: UI items for: amiga, beos, msdos, os/2, osx | ||
* System | * System | ||
** Resource: GlueLogic (toggle or enum with 0 & 1, possibly more if variations found) | ** Resource: GlueLogic (toggle or enum with 0 & 1, possibly more if variations found) | ||
** TODO: UI items for: amiga, beos | ** TODO: UI items for: amiga, beos, msdos, os/2, osx | ||
* PAL/NTSC | * PAL/NTSC | ||
** Remove/disable the PAL/NTSC/oldNTSC items from the VICII menu (handled via VICIIModel or overall model instead) | ** Remove/disable the PAL/NTSC/oldNTSC items from the VICII menu (handled via VICIIModel or overall model instead) | ||
** TODO: Remove/disable UI items for: amiga, beos | ** TODO: Remove/disable UI items for: amiga, beos, msdos, os/2, osx | ||
Config split | Config split | ||
Line 39: | Line 43: | ||
* Use "C64SC" for x64sc | * Use "C64SC" for x64sc | ||
** NOTE: data/C64 is still used for x64sc | ** NOTE: data/C64 is still used for x64sc | ||
** TODO: check config/etc file names/usage for: | ** TODO: check config/etc file names/usage for: osx, win32 | ||
* Use "VSID" for vsid | * Use "VSID" for vsid | ||
** Due to the config split, it is finally possible to have VSID config/hotkeys/etc | ** Due to the config split, it is finally possible to have VSID config/hotkeys/etc | ||
** TODO add load/save settings and tweak the ifndef on main.c for: amiga, beos | ** TODO add load/save settings and tweak the ifndef on main.c for: amiga, beos, msdos, os/2, osx, win32 | ||
* Use "CBM-II-5x0" for xcbm2 -model 510 | * Use "CBM-II-5x0" for xcbm2 -model 510 | ||
** Should get rid of segfaults when using different models with same config | ** Should get rid of segfaults when using different models with same config | ||
** TODO: check config/etc file names/usage for: | ** TODO: check config/etc file names/usage for: osx, win32 | ||
===trunk=== | ===trunk=== | ||
* chris/v2.1-quicktime [2.1.2] | * chris/v2.1-quicktime [2.1.2] | ||
** NEW: added QuickTime movie exporter (on Mac OS X for now) | ** NEW: added QuickTime movie exporter (on Mac OS X for now) | ||
Line 69: | Line 70: | ||
** API: joystick_port_map[] (arch/*/joy.[ch]) size changed from 2 to 4 (JOYSTICK_NUM, joystick.h) | ** 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. | ** Resource: ExtraJoy (toggle) and ExtraJoyType see src/joystick.h for the types. | ||
** TODO: UI items for the following ports: | ** 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. | ** 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. | ||
** TODO: Joystick mapping/handling fixes (if needed) for the following ports: gp2x. | ** TODO: Joystick mapping/handling fixes (if needed) for the following ports: gp2x. | ||
Line 75: | Line 76: | ||
* C128 RAM banks 2 & 3 support (20974) | * C128 RAM banks 2 & 3 support (20974) | ||
** Resource: C128FullBanks (toggle) | ** Resource: C128FullBanks (toggle) | ||
** TODO: x128 UI items for the following ports: | ** TODO: x128 UI items for the following ports: osx | ||
* Plus4 SID cart add-ons support (20977) | * Plus4 SID cart add-ons support (20977) | ||
** Resource: DIGIBOOSTER (toggle) for the digibooster add-on and SIDCartJoy (toggle) for the joystick port on the sidcart. | ** Resource: DIGIBOOSTER (toggle) for the digibooster add-on and SIDCartJoy (toggle) for the joystick port on the sidcart. | ||
** TODO: xplus4 UI items for the following ports: | ** TODO: xplus4 UI items for the following ports: os/2, osx | ||
* C64/C128 SFX sound sampler support (20984) | * C64/C128 SFX sound sampler support (20984) | ||
** Resource: SFXSoundSampler (toggle). | ** Resource: SFXSoundSampler (toggle). | ||
** TODO: x64/x128 UI items for the following ports: | ** TODO: x64/x128 UI items for the following ports: osx | ||
* C64/C128 SFX sound expander support (20993) | * C64/C128 SFX sound expander support (20993) | ||
** Resource: SFXSoundExpander (toggle). | ** Resource: SFXSoundExpander (toggle). | ||
** TODO: x64/x128 UI items for the following ports: | ** TODO: x64/x128 UI items for the following ports: osx | ||
* C128 stereo sid $d700-$d7ff range support (21007) | * C128 stereo sid $d700-$d7ff range support (21007) | ||
** TODO: x128 UI items for the following ports: | ** TODO: x128 UI items for the following ports: osx | ||
* Lightpen/gun support (21132) | * Lightpen/gun support (21132) | ||
** NEW: Lightpen/gun emulation in x64, x128 and xvic | ** NEW: Lightpen/gun emulation in x64, x128 and xvic | ||
Line 103: | Line 97: | ||
*** 3=Magnum Light Phaser | *** 3=Magnum Light Phaser | ||
*** 4=Stack Light Rifle | *** 4=Stack Light Rifle | ||
** TODO: Lightpen driver and UI items for the following ports: amiga, beos | ** TODO: Lightpen driver and UI items for the following ports: amiga, beos, os/2 | ||
** NOTE: see SDL or win32 for driver implementation example | ** NOTE: see SDL or win32 for driver implementation example | ||
** TODO: Fix clock calculation in VDC | ** TODO: Fix clock calculation in VDC | ||
Line 121: | Line 115: | ||
** NOTE: CartridgeFile and GenericCartridgeFileX000 and NOT meant to be manipulated directly by the UI. See the above note. | ** NOTE: CartridgeFile and GenericCartridgeFileX000 and NOT meant to be manipulated directly by the UI. See the above note. | ||
** TODO: .crt like cartridge format (.vrt) | ** TODO: .crt like cartridge format (.vrt) | ||
** TODO: UI items for the following ports: | ** TODO: UI items for the following ports: os/2, osx | ||
* Fragment size (21388) | * Fragment size (21388) | ||
** NEW: fragment size is switchable (with archdep defaults) | ** NEW: fragment size is switchable (with archdep defaults) | ||
** Resource: SoundFragmentSize (enum, see sound.h) | ** Resource: SoundFragmentSize (enum, see sound.h) | ||
** TODO: UI items for the following ports: | ** TODO: UI items for the following ports: osx | ||
** TODO: check if archdep defaults are sane | ** TODO: check if archdep defaults are sane | ||
* Opposite joystick directions (21417) | * Opposite joystick directions (21417) | ||
** NEW: Opposite joystick directions can be enabled | ** NEW: Opposite joystick directions can be enabled | ||
** Resource: JoyOpposite (toggle) | ** Resource: JoyOpposite (toggle) | ||
** TODO: UI items for the following ports: | ** TODO: UI items for the following ports: osx | ||
* Hummer userport cleanup (r21444) | * Hummer userport cleanup (r21444) | ||
** Resource: HummerUserportDevice removed | ** Resource: HummerUserportDevice removed | ||
** Resource: HummerUserportJoyPort removed | ** Resource: HummerUserportJoyPort removed | ||
** Resource: HummerADC (toggle) added | ** Resource: HummerADC (toggle) added | ||
** TODO: UI items for the following ports: | ** TODO: UI items for the following ports: osx | ||
* xvic cartridge system improvements (r21505) | * xvic cartridge system improvements (r21505) | ||
** NEW: write back FE3 .bin and MC NvRAM images | ** NEW: write back FE3 .bin and MC NvRAM images | ||
Line 141: | Line 135: | ||
** Resource: MegaCartNvRAMWriteBack (toggle) | ** Resource: MegaCartNvRAMWriteBack (toggle) | ||
** Resource: MegaCartNvRAMfilename (string) | ** Resource: MegaCartNvRAMfilename (string) | ||
** TODO: UI items for the following ports: | ** TODO: UI items for the following ports: os/2, osx | ||
* SID engine and model changes to where they become a combination and are used for the command-line and UI so the user can only select valid combinations (r21675) | * SID engine and model changes to where they become a combination and are used for the command-line and UI so the user can only select valid combinations (r21675) | ||
** NEW: SID engine/model combination-only for command-line and UI, see win32, *nix or sdl ui for examples. | ** NEW: SID engine/model combination-only for command-line and UI, see win32, *nix or sdl ui for examples. | ||
** TODO: UI items for the following ports: | ** TODO: UI items for the following ports: osx | ||
* PET DWW (r?????) | * PET DWW (r?????) | ||
Line 151: | Line 145: | ||
** Resource: PETDWW (toggle) | ** Resource: PETDWW (toggle) | ||
** Resource: PETDWWfilename (string) | ** Resource: PETDWWfilename (string) | ||
** TODO: UI items for the following ports: amiga, beos, dos | ** TODO: UI items for the following ports: amiga, beos, dos, os/2, osx, win32 |
Revision as of 19:33, 18 April 2010
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.
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.
===x64sc=== [2.2.2]
x64sc, the next step in C64 emulation.
Disable on low-end ports
- x64sc needs a lot of host CPU and reSID-fp
- TODO: Disable building x64sc for: gp2x, riscos (any others?)
UI rework
- UI for x64sc using c64scui_init/shutdown, differences listed below
- See SDL UI and/or *nix UIs for an example and suggested menu item naming
- TODO: New UI for: amiga, beos, msdos, os/2, osx
- C64
- Overall model selection, see c64/c64model.h
- NOTE: The C64 model selection affects (and is affected by) all the resources listed below plus the SID model (and engine, if not reSID-fp already)
- TODO: UI items for: amiga, beos, msdos, os/2, osx
- CIA
- Resource: CIA1Model (toggle or enum with 0 & 1)
- Resource: CIA2Model (toggle or enum with 0 & 1)
- NOTE: could be used also in x64 and x128, probably not worth the hassle
- TODO: UI items for: amiga, beos, msdos, os/2, osx
- VICII
- Resource: VICIIModel (enum, see vicii.h)
- NOTE: NTSC models not implemented yet
- TODO: UI items for: amiga, beos, msdos, os/2, osx
- System
- Resource: GlueLogic (toggle or enum with 0 & 1, possibly more if variations found)
- TODO: UI items for: amiga, beos, msdos, os/2, osx
- PAL/NTSC
- Remove/disable the PAL/NTSC/oldNTSC items from the VICII menu (handled via VICIIModel or overall model instead)
- TODO: Remove/disable UI items for: amiga, beos, msdos, os/2, osx
Config split
- Datadir uses machine_name as before, config/hotkeys/fliplist/etc (should) use machine_get_name() instead
- Use "C64SC" for x64sc
- NOTE: data/C64 is still used for x64sc
- TODO: check config/etc file names/usage for: osx, win32
- Use "VSID" for vsid
- Due to the config split, it is finally possible to have VSID config/hotkeys/etc
- TODO add load/save settings and tweak the ifndef on main.c for: amiga, beos, msdos, os/2, osx, 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: osx, win32
trunk
- 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.
- 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/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.
- TODO: Joystick mapping/handling fixes (if needed) for the following ports: gp2x.
- NOTE: Snapshots don't load/save the two new values to maintain compatibility. Network code uses the new size; this may be a problem.
- C128 RAM banks 2 & 3 support (20974)
- Resource: C128FullBanks (toggle)
- TODO: x128 UI items for the following ports: osx
- Plus4 SID cart add-ons support (20977)
- Resource: DIGIBOOSTER (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, osx
- C64/C128 SFX sound sampler support (20984)
- Resource: SFXSoundSampler (toggle).
- TODO: x64/x128 UI items for the following ports: osx
- C64/C128 SFX sound expander support (20993)
- Resource: SFXSoundExpander (toggle).
- TODO: x64/x128 UI items for the following ports: osx
- C128 stereo sid $d700-$d7ff range support (21007)
- TODO: x128 UI items for the following ports: osx
- Lightpen/gun support (21132)
- 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?)
- 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
- TODO: Fix clock calculation in VDC
- TODO: other x's?
- 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.
- TODO: .crt like cartridge format (.vrt)
- TODO: UI items for the following ports: os/2, osx
- Fragment size (21388)
- NEW: fragment size is switchable (with archdep defaults)
- Resource: SoundFragmentSize (enum, see sound.h)
- TODO: UI items for the following ports: osx
- TODO: check if archdep defaults are sane
- Opposite joystick directions (21417)
- NEW: Opposite joystick directions can be enabled
- Resource: JoyOpposite (toggle)
- TODO: UI items for the following ports: osx
- Hummer userport cleanup (r21444)
- Resource: HummerUserportDevice removed
- Resource: HummerUserportJoyPort removed
- Resource: HummerADC (toggle) added
- TODO: UI items for the following ports: osx
- xvic cartridge system improvements (r21505)
- NEW: write back FE3 .bin and MC NvRAM images
- Resource: FinalExpansionWriteBack (toggle)
- Resource: MegaCartNvRAMWriteBack (toggle)
- Resource: MegaCartNvRAMfilename (string)
- TODO: UI items for the following ports: os/2, osx
- SID engine and model changes to where they become a combination and are used for the command-line and UI so the user can only select valid combinations (r21675)
- NEW: SID engine/model combination-only for command-line and UI, see win32, *nix or sdl ui for examples.
- TODO: UI items for the following ports: osx
- PET DWW (r?????)
- NEW: DWW support for xpet
- Resource: PETDWW (toggle)
- Resource: PETDWWfilename (string)
- TODO: UI items for the following ports: amiga, beos, dos, os/2, osx, win32