# CCS64 V3 Bug-Fixes Made

1. User-Discovered Bug-Fixes Made :

Kernel-Oriented Bug-Fixes :

· A program that should install an interrupt-driven music player, in order to play music, just quits back to BASIC instead.

Device-Oriented Bug-Fixes :

· Various problems with T64 files – the file-pointer does not move on to the next file in a multi-part T64 file and file-names are not interpreted correctly.

· When loading a file with the "LOAD" command, the "SEARCHING FOR" and "LOADING" lines of text do not appear. This can cause problems with programs that put LOAD commands on the screen, and then execute them, by filling the keyboard buffer.

· The game Galleon crashes, whilst it is loading.

· The game Continental Circus crashes, whilst it is loading.

· The demo Error 23 crashes, whilst it is loading.

· The demo +H2K crashes, whilst it is loading.

· When using the Simons BASIC cartridge with the Printer emulation, there are some problems. Firstly, no MS-DOS text file is produced, after you issue a "CLOSE #n" command. Secondly, when you perform a "PRINT #n" command, you get the BASIC error message "? DEVICE NOT PRESENT ERROR", but not when you give the "PRINT #n" command a text string to print. The whole procedure works fine when using the standard BASIC.

· Various problems with the The Final Cartridge III (TFC-III) cartridge.

· Ex-DOS memory mirroring on the 1541 Device ($2000 - $27FF) is not supported properly.

· Setting the Tape Motor on/off doesn't work properly. When CCS64 re-sets, the tape re-winds automatically back to the beginning (which it shouldn't do, because there is usually another game to load after the one loaded before). The Play button works, but the Motor button stays locked to off (so the Tape Counter cannot be changed manually).

Game-Oriented Bug-Fixes :

· In the game Haunted House, your ghost dies, before you can really play the game. [The problem is with the Sprite Background Collision Detection Register ($D01F). Every bit that is set to 1 indicates that the corresponding sprite was involved in a collision with background data. On a real C64, the bits in this register remain set until they are read (i.e. PEEKed). Once read, the register is automatically cleared, so that it can detect the next collision. The emulator does not clear the register, after it has been read.]

· In the game Frankie Goes To Hollywood, when you enter a sub-game, the emulator hangs.

· In the game Road Raiders, after exiting out of the building that is downwards and to the east (where there is an arrow pointing), the emulator hangs.

· In the game Platoon, there is a small horizontal white line, below the Platoon title. [The problem is a bug with changing between certain graphic modes within a raster line.]

· In the demo Coma Light 8/Oxyron, the Keferns Bars part does not work. [The problem is a bug with sprite indexing.]

· The demo Aurora 90%/Level 64 does not work properly. [The problem was due to un-documented C64 behaviour, similar to EmuFuxx0r.]

· The demos Final III and Sharp do not work properly.

· After the conversion group introduction in the game Beyond The Ice Palace / HF, a "CPU Halted At $0005" error occurs.

· There are some strange bugs/flickers in TRC+TBI Introduction (1990). More information below:

If you remove the music (JSR $1003), it works... it seems to be a $D011 & $80 problem... it seems to be waiting for the raster-line that happens with Bit 7 set on the emulator... and that line has already passed by the music.

· The game Elevator Action does not work properly, only loads the title screen.

Sound-Oriented Bug-Fixes :

· To write-through $D418 to the HardSID, when emulated sound is disabled.

· To re-set the HardSID, when you exit the emulator.

· In the game Loco, when you die (i.e. when your loco-motive breaks down), there is no dying noise, just a constant background tone. There should be a dying noise, followed by a period of silence, then it waits for the <SPACE BAR> key or the Fire button to be pressed, before re-starting the game.

· Within certain games, e.g. Retrograde, you can sometimes hear a popping sound. The S-Express tune demonstrates this very well.

· To improve the accuracy of the SID Filter emulation.

Other Bug-Fixes :

· The $LOADPATH saved setting is not updated when running TAP/PRG/P00 files, but it is when running D64/G64/T64 files.

· When entering/exiting the paused mode, this causes to colour palette to be re-set to "Normal", when it should not automatically do this.

· When using 2 joysticks under Windows 2000 (Y-Cable), one of the joysticks always draws to the left. This seems to be a bug in the emulator, because it is attached to the Virtual C64 Port (i.e. the same player in a game). It makes no difference if you swap the ports (ALT + F10) or switch joysticks.

· To not crash when selecting a non-existent C64 image file.

· When the Palette is set to PAL and the Graphics Filter is set to either Anti-Alias or Scale, CCS64 crashes with an Access Violation fault.

· When using the screen-shot functions in CCS64 V3, an image file of only one frame is produced, whether the graphic being captured is interlaced or non-interlaced. Did the 256-Colour Screen-Shot function in CCS64 V2.0 BETA always mix two consecutive frames together, irrespective of the graphics involved?

2. Developer-Discovered Bug-Fixes Made :

Device-Oriented Bug-Fixes :

· Improved 1541 read/write head bit-rate emulation.

· The CPU emulation starts a random off-set after the VIC-II emulation starts, after a system re-set, instead of always starting after the VIC-II chip is re-aligned to the base point.

Sound-Oriented Bug-Fixes :

· The SID emulation is completely re-set, after a system re-set (both internal registers and visible registers are zeroed).

# CCS64 V3 Enhancement List

Other Enhancements

· To be able to specify the default Bank to be automatically switched to, when entering the MC Monitor, as a saved setting.

· To have a TAP File Manager built in – (1) To be able to specify which Block to begin loading from within TAP files, as a saved setting; (2) To be able to copy/paste Blocks from one TAP file to another, and to be able to delete Blocks from a TAP file.

Windows-Oriented Enhancements

· To show a tick next to the "Maximum 1541 Speed" and "5X Speed" Windows menu options, only when these options are set to On.

# CCS64 V3 Enhancements Made

1. User-Requested Enhancements Made :

Device-Oriented Enhancements :

· To toggle the Scroll Lock LED, whenever the 1541 Device is being read from/written to, as an option.

· Support for the Comal 80, the Super SnapShot 5, and the Serpentine cartridges.

· A setting within the Maximum 1541 Speed option, for not showing the Maximum 1541 Speed message, when this option is On. (This is "On – Quiet".)

Graphics-Oriented Enhancements :

· To make the emulator work as a true Windows application with a Windows Windowed mode (instead of the DirectX Windowed mode, which did not work correctly for everybody).

· The ability to choose the actual graphics re-fresh rate, instead of having to use third-party graphics re-fresh rate tweaking programs.

· Frame-skipping for the graphic modes. At the moment, if a machine is not powerful enough, the whole execution slows-down.

· Full-screen anti-aliasing, as an option, in order to remove any blockiness in the graphics (i.e. pixelised graphics).

· To support the Scale2x graphical filter, but in all of the available graphical resolutions (i.e. 1x, 2x, 3x, full-screen).

· Experimental support for CRT monitor and TV emulation in 2x graphical resolutions.

Sound-Oriented Enhancements

· To add support for the HardSID sound card, in the same version of CCS64. This is so that both HardSID users and non-HardSID users can use the same version of CCS64, meaning that there is a consistency of functionality. This would also make the development and distribution of updated versions of CCS64 a lot easier.

· Supporting the new HardSID 4U, UPlay and Uno sound cards.

Windows-Oriented Enhancements :

· To be able to drag-and-drop D64/G64/T64/TAP/PRG/P00 files on to the CCS64 window, when running CCS64 in windowed mode, which will auto- load/run the file that has been dragged-and-dropped.

· To be able to save AVI (Audio Video Interleaving) files of emulator activity, with both picture and sound content, in the same manner as sound sampling is done at the moment.

· To be able to have set any joystick Bit N value for any joystick action setting (not just the Up/Down/Left/Right/Fire Button 1 joystick actions) within the "Define Joystick Special" option. Some joysticks, e.g. the Competition Pro USB Joystick, have more than one possible Fire button, which must also be selectable/mappable.

· CCS64 should treat the Keyboard and a DirectInput Device in exactly the same manner. When assigning a Joystick Axis/Button, the user should be able to press Joystick Buttons/Axes, as well as Keyboard keys. This would also solve the problems with some devices that have more than two axes. But, this does not solve this Jump 'N' Run problem completely - you could assign, for example, a Game Pad Button as the "Up" Axis, but what about games that contain both a Jump 'N' Run element and a Side-Scrolling Shooter element? You would have to re-assign the "Up" axis several times. This problem would be solved by an Alternate Button Selection, such as in the MAME emulator. You could then assign the "Up" axis to both an Axis and a Button at the same time.

· To be able to use more than just the first two controllers within Windows as joysticks within CCS64.

· To be able to have two sets of key mappings for the Fire button within the "Define Joystick KeySet" option – one without Auto-Fire and one with Auto-Fire applied. This is useful for some particular games.

Other Enhancements :

· There is an SDK for net-play, especially for emulators, called Kaillera. Can this be implemented in CCS64?

· Two new Machine Code Monitor commands, CD and DIR, which support both 8.3 format file-names and long file-names, as well as relative file-paths.

· Extended command syntax in the Machine Code Monitor: BA <xxxx>[-<yyyy>] [RWX] [<xx>[-<yy>]].

· Commands in the Machine Code Monitor that possibly display long listings can now be interrupted by pressing the <Escape> key.

2. Developer-Added Enhancements Made :

Device-Oriented Enhancements :

· Support for the Magic Formel cartridge.

· Support for the Ross, Structured BASIC, and Dela-EP64 cartridges. These have not been tested yet, as no CRT images have been located for them.

· When the CPU enters halt mode, to show the address that this occurs, and to allow the option of either entering the MC Monitor or of performing a hard re-set of the system.

· Two new short-cut key combinations – Select Next Disk Into Drive 8 (ALT + F5) and Select Previous Disk Into Drive 8 (ALT + F6).

· Another new short-cut key combination – Screen-Shot Menu Contents (ALT + SHIFT + F2).

· Another new short-cut key combination – Warp Speed Toggle (ALT + SHIFT + F3).

· To add a C2N Noise option, which allows the tape loading noise to be heard.

· New Menu added for configuration of the keyboard mapping, which now can be altered to match for example German keyboards where the Z and Y keys are interchanged.

· Another new short-cut key combination – Insert Special C64 Key-Stroke (ALT + K).

· Another new short-cut key combination – Sound Recording On/Off (ALT + SHIFT + S).

· Another new short-cut key combination – Video Recording On/Off (ALT + SHIFT + V).

· Combined the display/collision-detection routines, in order to make these work in a synchronised manner, and to allow these to work with 48- and 50- pixel-wide sprites. The demo Krestage 3 works perfectly.

Windows-Oriented Enhancements :

· Key Repetitions are supported.

· Registration menu options have been added.

· Program registration information is shown in the About program box.

· New program icons. The new main program icon was contributed by Owziee.

· Application Menus have been added, which link to the appropriate internal Textual Menus.

· When valid C64 image file extensions (e.g. D64) are associated in the Windows Registry with CCS64, whenever the user double-clicks on one of those files in Windows, the file is automatically started within CCS64.

· Application Menus have been added which use the Windows File Dialog controls for choosing files/paths for loading/saving files. The older menu entries have remained, for those users who prefer the old-style menus.

· New settings in the C64.CFG configuration file, $WINDOWSIZEX / $WINDOWSIZEY, for setting the width/height of the Window 1x window in pixels, when CCS64 is ran in Windowed mode. This allows the border area to be seen better, which some games/demos require (e.g. Krestage 3 requires a display that has a width that is a multiple of 400 pixels).

· Multi-threaded emulation and graphics emulation core architecture.