Changes from V3.0 to V3.0a: - Implemented SID test bits - Combined SID waveforms respect pulse width - Corrected idle state graphics display - Processor-level 1541 emulation respects .d64 error info - CPU emulation optimized (6510 and 6502 split) - VIC emulation optimized (raster counter in local variable in EmulateLine()) - BeOS: Now exiting the audio subscriber with ExitStream(TRUE) - Unix: Fixed missing thread_func() declaration - Unix: getcwd(AppDirPath) was missing in main_x.i - Unix: Speed limiter works Changes from V3.0a to V3.0b: - Implemented REU emulation - Formatting disks with ID possible under processor-level 1541 emulation - Corrected and optimized SID waveform/envelope calculation (signed arithmetic) - Corrected idle state display again (ECM text) - 1541 D64 mode ignores drive numbers when opening the directory - Processor-level 1541 emulation deactivates when idle - BeOS: Sound output quality is now 16 bits - Unix: Quits more cleanly, reactivates key repeat - Unix: Fixed alignment problem with text_chunky_buf in VIC.h Changes from V3.0b to V3.0c: - 1541 DIR mode can load directory with "$0" - Rearranged the CPU code (more macros, less inline functions) - SID envelope generators rewritten, envelopes are now recalculated for every sample - SID calc_buffer function now takes pointer to WORD buffer - Unix: Sound for Linux - Unix: Prefs window implemented (needs Tcl/Tk) - Unix: Corrected x64 disk image detection on little-endian systems - Unix: SVGAlib support works again, accesses frame buffer directly if possible - Unix: Added support for SHM under X11 Changes from V3.0c to V3.0d: - SID filter emulation implemented - SID master volume setting works again - Flags are recalculated in MOS6526::SetState() - Changed CBOOL->bool in some places - Fixed bug with char_in in MOS6510::new_config() - BeOS: Emulation thread priority lowered - Unix: Some changes for DEC Alpha - Unix: Joystick support for Linux Changes from V3.0d to V3.0e: - Removed the CBOOL data type - Unix: Sound for HP-UX - Unix: Keyboard layout matches the picture in the docs more closely - Unix: Diagonal directions of keypad joystick emulation work - Unix: +/- on numerical keypad modifies SkipFrames - Unix: F9 invokes SAM - Unix: Drive LEDs and speedometer implemented - Unix: Some changes to the GUI - Unix: Random number generator is initialized - Unix: Name of prefs file can be given as an argument - Unix: Calls XFlush() and XSync() in C64Display::Update() Changes from V3.0e to V3.0f: - Improved DIR/D64 drive reset, resetting the C64 resets the drives - Implemented 'G' command for DIR/D64 drives - Corrected translation of 0xc1..0xda characters in conv_from_64() - BeOS: Implemented smart "Insert next disk" menu item - Unix: Improved the speedometer/LED bar - Unix: Self-calibrating joystick routines - Unix: No need to enter path of 'wish' in TkGui.tcl Changes from V3.0f to V3.0g: - New T64/LYNX mode for 1541 emulation - 1541fs.cpp/match() used to treat the pattern "foo" as "foo*" - 1541 DIR mode uses tmpfile() for opening temporary directory files - 1541 D64 mode allows wildcards for selective directory reading - Increased compatibility of processor-level 1541 emulation in various places (C64<->1541 communication, VIA registers, memory map, disk change flag) - Inlined MOS6526::EmulateLine() and some small public functions of MOS6502_1541 - New prefs option to enable/disable SID filter emulation - Joystick calibration is reset when joystick options change - BeOS: Self-calibrating joystick routines Changes from V3.0g to V3.0h: - Implemented SID notch filter, better resonance frequency calculation - Fixed bug with SID filter option - CIA timer B one-shot mode stops timer when counting undeflows of timer A - Implemented lightpen trigger - BeOS: Fixed for BeOS DR8, improved the GUI a bit - Unix: Some fixes to the TkGui (T64, SIDFilters, removed speed display) - Unix: Main window no longer resizable - Unix: SVGALib support works again Changes from V3.0h to V3.1: - BeOS: Joysticks work again Changes from V3.1 to V3.1a: - Frodo SC ported - Processor-level 1541 emulation supports reading GCR data, removed the faked job loop - Corrected ISB, RRA, SBX and SHA instructions - The last line of Y expanded sprites wasn't drawn - Light pen registers work - Small fixes to 1541d64/1541t64 - CIA 2 PRA write: IEC lines respect DDRA - Better triangle waveform (12 bits) - SID emulation can play sampled sounds - New "Ignore SID Volume" prefs item for better sample playing - '*' on numerical keypad toggles speed limiter - BeOS: '/' on numerical keypad toggles processor-level 1541 emulation - BeOS: Safer quitting - BeOS: Option to use GameKit (screen) - BeOS: Replaced srand(system_time()) with srand(real_time_clock()) - Unix: Sun makefile Changes from V3.1a to V3.1b: - Corrected SID sustain behaviour - Reading from write-only SID registers returns the last byte written to the SID - No more distortions when playing samples - Removed the "Ignore SID Volume" prefs item again - Combined SID waveforms now sampled from a 6581R4 - Improved 1541 VIA timer operation - Fixed bug in 1541 head movement - Raster IRQs can be triggered by writing to $d011/$d012 - Some changes for the MacOS port - Included autoconf stuff from Bernd - Frodo SC: Fixed some CIA timer bugs Changes from V3.1b to V3.1c: - Ported to AmigaOS - Fixed bug in IEC::Reset() - Fixed bug when writing to SID registers >24 - The SID noise waveform should now sound the same on all platforms - Removed all calls to tolower() in SAM.cpp because of possible side-effects if tolower() is a macro - Drive LEDs are only updated once per frame - .d64/.t64 files are opened with read permissions only - Fixed bug with read_char buffering in 1541fs.cpp/1541t64.cpp - Frodo SC: Fixed memory trashing bug in MOS6569::draw_background() - Unix: Drive LEDs blink on error - Unix: Added more patches from Bernd Changes from V3.1c to V4.0: - The C64 ROM files are now included - Unix: Added SVGAlib keyboard patches from Bernd Changes from V4.0 to V4.0a: - Corrected BRK, ANE, ARR, SBX and DCP instructions - Frodo SC: Improved the CIA timers - Frodo SC: MOS6526::EmulateCycle() split into MOS6526::EmulateCycle() and MOS6526::CheckIRQs() - Frodo SC: Corrected interrupt behaviour of branch instructions - BeOS: Sound calculation is now done in stereo Changes from V4.0a to V4.1: - Integrated Win32 and RiscOS ports - Snapshot support - Added page-crossing and "borrowed" cycles in line-based CPU emulation (Frodo PC) - Added precise CIA cycles for line-based emulation (Frodo PC) - Optional fixed-point arithmetic and precomputed filters in SID.cpp - Optional dynamic alignment checks in VIC.cpp - Changed typedefs and constants: BYTE -> int8 UBYTE -> uint8 WORD -> int16 UWORD -> uint16 LONG -> int32 ULONG -> uint32 FALSE -> false TRUE -> true - Unix: Better configure script - Unix: Sound support for Solaris 2.x - Unix: Joystick can be toggled between port 1/2 with the NumLock key - Unix: US keyboard layouts supported - BeOS: Fixed for BeOS AA:DR9 - BeOS: Can now switch between window/screen mode while the emulation is running, speeded up full screen mode - BeOS: Prefs saved in /system/settings/Frodo_settings by default Changes to the 68k Version: - Well, it is for PPC now :) - "Normal" Version runs at about 170% on a 150 MHz Board, probably faster on a 200 MHz Board :) - With env:Frodo/Fullscreen you can say, if Frodo should run in a Workbench Window or a Screen. Note: Frodo is quite slow, if you run it in 15-24 Bit, so i recommend running it on a 8 Bit Screen. Frodo needs a 392x301 Screen, but it also can run on bigger sized Screens. - Frodo now also supports AGA. But on GFX Boards it is much faster (you need to run it in Interlaced for AGA...) Sound is not yet implemented, if you try to activate AHI, it will just crash. Hopefully this will be fixed soon. I am working on it. This is an Update of the PPC Version: - Now optionally display through rtgmaster.library is supported (only for GFX Boards). To activate it, set env:Frodo/usertg to 1, if you set i to 0, rtgmaster won't be used. Running it on rtgmaster, changes the following things (all timing done on 150 MHz 604e): - Normal version changes from 170% to 180% speed - PC Version changes from 130% to 145% speed - SC Version stays around the same - The Menu is no longer accessible (not supported by rtgmaster), you can quit by pressing CTRL+Q (this only works in the rtgmaster-mode). Asides from that, no changes (means: Sound still not working, working on it). If you want faster a AGA version: I need a c2p algorithm, that can c2p from 392x301 Bytes Chunky Buffer to a 640x400 Sized Planar Screen (anyways, if 68k or PPC). If someone can give me such a c2p, then it will run faster on AGA.