1 |
cebix |
1.1 |
<HTML> |
2 |
|
|
<HEAD> |
3 |
|
|
<TITLE>History</TITLE> |
4 |
|
|
</HEAD> |
5 |
|
|
<BODY> |
6 |
|
|
|
7 |
|
|
<H1>Revision history</H1> |
8 |
|
|
|
9 |
|
|
<CITE> |
10 |
|
|
"Those days, the Third Age of Middle-earth,<BR> |
11 |
|
|
are now long past, and the shape of all lands<BR> |
12 |
|
|
has been changed." |
13 |
|
|
</CITE> |
14 |
|
|
|
15 |
|
|
<HR> |
16 |
|
|
|
17 |
|
|
This emulator started as a player routine for C64 music on the Amiga. |
18 |
|
|
Versions V1.x were written in 68K assembly language, versions V2.x in a mix |
19 |
|
|
of 68K assembly and C. V3.x/V4.x are portable versions written in C++.<P> |
20 |
|
|
|
21 |
|
|
<H3>V1.x/V2.x</H3> |
22 |
|
|
<UL> |
23 |
|
|
<LI>Amiga 68K versions |
24 |
|
|
</UL> |
25 |
|
|
|
26 |
|
|
<H3>V3.0</H3> |
27 |
|
|
<UL> |
28 |
|
|
<LI>First release of BeOS/Unix version, features processor-level 1541 |
29 |
|
|
emulation and built-in SID emulation |
30 |
|
|
</UL> |
31 |
|
|
|
32 |
|
|
<H3>V3.0a</H3> |
33 |
|
|
<UL> |
34 |
|
|
<LI>Implemented SID test bits |
35 |
|
|
<LI>Combined SID waveforms respect pulse width |
36 |
|
|
<LI>Corrected idle state graphics display |
37 |
|
|
<LI>Processor-level 1541 emulation respects .d64 error info |
38 |
|
|
<LI>CPU emulation optimized (6510 and 6502 split) |
39 |
|
|
<LI>VIC emulation optimized (raster counter in local variable in EmulateLine()) |
40 |
|
|
<LI>BeOS: Now exiting the audio subscriber with ExitStream(TRUE) |
41 |
|
|
<LI>Unix: Fixed missing thread_func() declaration |
42 |
|
|
<LI>Unix: getcwd(AppDirPath) was missing in main_x.i |
43 |
|
|
<LI>Unix: Speed limiter works |
44 |
|
|
</UL> |
45 |
|
|
|
46 |
|
|
<H3>V3.0b</H3> |
47 |
|
|
<UL> |
48 |
|
|
<LI>Implemented REU emulation |
49 |
|
|
<LI>Formatting disks with ID possible under processor-level 1541 emulation |
50 |
|
|
<LI>Corrected and optimized SID waveform/envelope calculation (signed arithmetic) |
51 |
|
|
<LI>Corrected idle state display again (ECM text) |
52 |
|
|
<LI>1541 D64 mode ignores drive numbers when opening the directory |
53 |
|
|
<LI>Processor-level 1541 emulation deactivates when idle |
54 |
|
|
<LI>BeOS: Sound output quality is now 16 bits |
55 |
|
|
<LI>Unix: Quits more cleanly, reactivates key repeat |
56 |
|
|
<LI>Unix: Fixed alignment problem with text_chunky_buf in VIC.h |
57 |
|
|
</UL> |
58 |
|
|
|
59 |
|
|
<H3>V3.0c</H3> |
60 |
|
|
<UL> |
61 |
|
|
<LI>1541 DIR mode can load directory with "$0" |
62 |
|
|
<LI>Rearranged the CPU code (more macros, less inline functions) |
63 |
|
|
<LI>SID envelope generators rewritten, envelopes are now recalculated for every sample |
64 |
|
|
<LI>SID calc_buffer function now takes pointer to WORD buffer |
65 |
|
|
<LI>Unix: Sound for Linux |
66 |
|
|
<LI>Unix: Prefs window implemented (needs Tcl/Tk) |
67 |
|
|
<LI>Unix: Corrected x64 disk image detection on little-endian systems |
68 |
|
|
<LI>Unix: SVGAlib support works again, accesses frame buffer directly if possible |
69 |
|
|
<LI>Unix: Added support for SHM under X11 |
70 |
|
|
</UL> |
71 |
|
|
|
72 |
|
|
<H3>V3.0d</H3> |
73 |
|
|
<UL> |
74 |
|
|
<LI>SID filter emulation implemented |
75 |
|
|
<LI>SID master volume setting works again |
76 |
|
|
<LI>Flags are recalculated in MOS6526::SetState() |
77 |
|
|
<LI>Changed CBOOL->bool in some places |
78 |
|
|
<LI>Fixed bug with char_in in MOS6510::new_config() |
79 |
|
|
<LI>BeOS: Emulation thread priority lowered |
80 |
|
|
<LI>Unix: Some changes for DEC Alpha |
81 |
|
|
<LI>Unix: Joystick support for Linux |
82 |
|
|
</UL> |
83 |
|
|
|
84 |
|
|
<H3>V3.0e</H3> |
85 |
|
|
<UL> |
86 |
|
|
<LI>Removed the CBOOL data type |
87 |
|
|
<LI>Unix: Sound for HP-UX |
88 |
|
|
<LI>Unix: Keyboard layout matches the picture in the docs more closely |
89 |
|
|
<LI>Unix: Diagonal directions of keypad joystick emulation work |
90 |
|
|
<LI>Unix: +/- on numerical keypad modifies SkipFrames |
91 |
|
|
<LI>Unix: F9 invokes SAM |
92 |
|
|
<LI>Unix: Drive LEDs and speedometer implemented |
93 |
|
|
<LI>Unix: Some changes to the GUI |
94 |
|
|
<LI>Unix: Random number generator is initialized |
95 |
|
|
<LI>Unix: Name of prefs file can be given as an argument |
96 |
|
|
<LI>Unix: Calls XFlush() and XSync() in C64Display::Update() |
97 |
|
|
</UL> |
98 |
|
|
|
99 |
|
|
<H3>V3.0f</H3> |
100 |
|
|
<UL> |
101 |
|
|
<LI>Improved DIR/D64 drive reset, resetting the C64 resets the drives |
102 |
|
|
<LI>Implemented 'G' command for DIR/D64 drives |
103 |
|
|
<LI>Corrected translation of 0xc1..0xda characters in conv_from_64() |
104 |
|
|
<LI>BeOS: Implemented smart "Insert next disk" menu item |
105 |
|
|
<LI>Unix: Improved the speedometer/LED bar |
106 |
|
|
<LI>Unix: Self-calibrating joystick routines |
107 |
|
|
<LI>Unix: No need to enter path of 'wish' in TkGui.tcl |
108 |
|
|
</UL> |
109 |
|
|
|
110 |
|
|
<H3>V3.0g</H3> |
111 |
|
|
<UL> |
112 |
|
|
<LI>New T64/LYNX mode for 1541 emulation |
113 |
|
|
<LI>1541fs.cpp/match() used to treat the pattern "foo" as "foo*" |
114 |
|
|
<LI>1541 DIR mode uses tmpfile() for opening temporary directory files |
115 |
|
|
<LI>1541 D64 mode allows wildcards for selective directory reading |
116 |
|
|
<LI>Increased compatibility of processor-level 1541 emulation in various places (C64<->1541 communication, VIA registers, memory map, disk change flag) |
117 |
|
|
<LI>Inlined MOS6526::EmulateLine() and some small public functions of MOS6502_1541 |
118 |
|
|
<LI>New prefs option to enable/disable SID filter emulation |
119 |
|
|
<LI>Joystick calibration is reset when joystick options change |
120 |
|
|
<LI>BeOS: Self-calibrating joystick routines |
121 |
|
|
</UL> |
122 |
|
|
|
123 |
|
|
<H3>V3.0h</H3> |
124 |
|
|
<UL> |
125 |
|
|
<LI>Implemented SID notch filter, better resonance frequency calculation |
126 |
|
|
<LI>Fixed bug with SID filter option |
127 |
|
|
<LI>CIA timer B one-shot mode stops timer when counting undeflows of timer A |
128 |
|
|
<LI>Implemented lightpen trigger |
129 |
|
|
<LI>BeOS: Fixed for BeOS DR8, improved the GUI a bit |
130 |
|
|
<LI>Unix: Some fixes to the TkGui (T64, SIDFilters, removed speed display) |
131 |
|
|
<LI>Unix: Main window no longer resizable |
132 |
|
|
<LI>Unix: SVGALib support works again |
133 |
|
|
</UL> |
134 |
|
|
|
135 |
|
|
<H3>V3.1</H3> |
136 |
|
|
<UL> |
137 |
|
|
<LI>BeOS: Joysticks work again |
138 |
|
|
</UL> |
139 |
|
|
|
140 |
|
|
<H3>V3.1a</H3> |
141 |
|
|
<UL> |
142 |
|
|
<LI>Frodo SC ported |
143 |
|
|
<LI>Processor-level 1541 emulation supports reading GCR data, removed the faked job loop |
144 |
|
|
<LI>Corrected ISB, RRA, SBX and SHA instructions |
145 |
|
|
<LI>The last line of Y expanded sprites wasn't drawn |
146 |
|
|
<LI>Light pen registers work |
147 |
|
|
<LI>Small fixes to 1541d64/1541t64 |
148 |
|
|
<LI>CIA 2 PRA write: IEC lines respect DDRA |
149 |
|
|
<LI>Better triangle waveform (12 bits) |
150 |
|
|
<LI>SID emulation can play sampled sounds |
151 |
|
|
<LI>New "Ignore SID Volume" prefs item for better sample playing |
152 |
|
|
<LI>'*' on numerical keypad toggles speed limiter |
153 |
|
|
<LI>BeOS: '/' on numerical keypad toggles processor-level 1541 emulation |
154 |
|
|
<LI>BeOS: Safer quitting |
155 |
|
|
<LI>BeOS: Option to use GameKit (screen) |
156 |
|
|
<LI>BeOS: Replaced srand(system_time()) with srand(real_time_clock()) |
157 |
|
|
<LI>Unix: Sun makefile |
158 |
|
|
</UL> |
159 |
|
|
|
160 |
|
|
<H3>V3.1b</H3> |
161 |
|
|
<UL> |
162 |
|
|
<LI>Corrected SID sustain behaviour |
163 |
|
|
<LI>Reading from write-only SID registers returns the last byte written to the SID |
164 |
|
|
<LI>No more distortions when playing samples |
165 |
|
|
<LI>Removed the "Ignore SID Volume" prefs item again |
166 |
|
|
<LI>Combined SID waveforms now sampled from a 6581R4 |
167 |
|
|
<LI>Improved 1541 VIA timer operation |
168 |
|
|
<LI>Fixed bug in 1541 head movement |
169 |
|
|
<LI>Raster IRQs can be triggered by writing to $d011/$d012 |
170 |
|
|
<LI>Some changes for the MacOS port |
171 |
|
|
<LI>Included autoconf stuff from Bernd |
172 |
|
|
<LI>Frodo SC: Fixed some CIA timer bugs |
173 |
|
|
</UL> |
174 |
|
|
|
175 |
|
|
<H3>V3.1c</H3> |
176 |
|
|
<UL> |
177 |
|
|
<LI>Ported to AmigaOS |
178 |
|
|
<LI>Fixed bug in IEC::Reset() |
179 |
|
|
<LI>Fixed bug when writing to SID registers >24 |
180 |
|
|
<LI>The SID noise waveform should now sound the same on all platforms |
181 |
|
|
<LI>Removed all calls to tolower() in SAM.cpp because of possible side-effects if tolower() is a macro |
182 |
|
|
<LI>Drive LEDs are only updated once per frame |
183 |
|
|
<LI>.d64/.t64 files are opened with read permissions only |
184 |
|
|
<LI>Fixed bug with read_char buffering in 1541fs.cpp/1541t64.cpp |
185 |
|
|
<LI>Frodo SC: Fixed memory trashing bug in MOS6569::draw_background() |
186 |
|
|
<LI>Unix: Drive LEDs blink on error |
187 |
|
|
<LI>Unix: Added more patches from Bernd |
188 |
|
|
</UL> |
189 |
|
|
|
190 |
|
|
<H3>V4.0</H3> |
191 |
|
|
<UL> |
192 |
|
|
<LI>The C64 ROM files are now included |
193 |
|
|
<LI>Unix: Added SVGAlib keyboard patches from Bernd |
194 |
|
|
</UL> |
195 |
|
|
|
196 |
|
|
<H3>V4.0a</H3> |
197 |
|
|
<UL> |
198 |
|
|
<LI>Corrected BRK, ANE, ARR, SBX and DCP instructions |
199 |
|
|
<LI>Frodo SC: Improved the CIA timers |
200 |
|
|
<LI>Frodo SC: MOS6526::EmulateCycle() split into MOS6526::EmulateCycle() and MOS6526::CheckIRQs() |
201 |
|
|
<LI>Frodo SC: Corrected interrupt behaviour of branch instructions |
202 |
|
|
<LI>BeOS: Sound calculation is now done in stereo |
203 |
|
|
</UL> |
204 |
|
|
|
205 |
|
|
<H3>V4.1</H3> |
206 |
|
|
<UL> |
207 |
|
|
<LI>Integrated Win32 and RiscOS ports |
208 |
|
|
<LI>Snapshot support |
209 |
|
|
<LI>Added page-crossing and "borrowed" cycles in line-based CPU emulation (Frodo PC) |
210 |
|
|
<LI>Added precise CIA cycles for line-based emulation (Frodo PC) |
211 |
|
|
<LI>Optional fixed-point arithmetic and precomputed filters in SID.cpp |
212 |
|
|
<LI>Optional dynamic alignment checks in VIC.cpp |
213 |
|
|
<LI>Changed typedefs and constants (BYTE, WORD etc.) |
214 |
|
|
<LI>Unix: Better configure script |
215 |
|
|
<LI>Unix: Sound support for Solaris 2.x |
216 |
|
|
<LI>Unix: Joystick can be toggled between port 1/2 with the NumLock key |
217 |
|
|
<LI>Unix: US keyboard layouts supported |
218 |
|
|
<LI>BeOS: Fixed for BeOS AA:DR9 |
219 |
|
|
<LI>BeOS: Can now switch between window/screen mode while the emulation is running, speeded up full screen mode |
220 |
|
|
<LI>BeOS: Prefs saved in /system/settings/Frodo_settings by default |
221 |
|
|
</UL> |
222 |
|
|
|
223 |
cebix |
1.2 |
<H3>V4.1a</H3> |
224 |
|
|
<UL> |
225 |
|
|
<LI>Fixed bug in IEC::NewPrefs() |
226 |
|
|
<LI>Optimized VIC emulation for speed |
227 |
|
|
<LI>BeOS: Prefs saved in /boot/home/config/settings/Frodo_settings |
228 |
|
|
<LI>BeOS: Directory panel works again |
229 |
|
|
<LI>BeOS: Correct C64/1541 clock frequency ratio (Frodo SC) |
230 |
|
|
<LI>BeOS: Correct audio mixing/clipping |
231 |
|
|
</UL> |
232 |
|
|
|
233 |
|
|
<H3>V4.1b</H3> |
234 |
|
|
<UL> |
235 |
|
|
<LI>Unix: Updated Tcl/Tk preferences editor [Gerard Decatrel] |
236 |
|
|
<LI>Unix: Added SDL display driver which is the default if SDL >= 1.2 is detected by the configure script |
237 |
|
|
<LI>Unix: Increased number of sound buffers from 4 to 16 (emu10k driver doesn't work with the smaller value) |
238 |
|
|
<LI>Unix: Fixed some small compilation problems |
239 |
|
|
</UL> |
240 |
|
|
|
241 |
cebix |
1.1 |
</BODY> |
242 |
|
|
</HTML> |