-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathChangeLog
263 lines (170 loc) · 8.23 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
0.8.0 / 2012-02-22
==================
* Use the 'go' tool to build and install GoSpeccy
* Enable WorldOfSpectrum searches and downloads ("-wos" command-line
option, wos* script functions). Info about a WorldOfSpectrum file
includes publication type, machine type, and rating.
* New script functions: vars(), wosFind(string), wosDownload(WOS),
wosLoad(WOS)
* Evaluating an expression in the console prints the result of the
expression
* Enable compilation without SDL (this is an experimental feature)
0.7.0 / 2011-05-21
==================
* Use GOAM [http://github.com/0xe2-0x9a-0x9b/goam] to build and
install GoSpeccy
* Use Clingon [http://github.com/remogatto/clingon] as the
command-line GUI, instead of a C readline wrapper. The readline
support is gone.
* Use [http://github.com/remogatto/prettytest], instead of an internal
copy of the PrettyTest package
* Improved audio resampling method which usually produces less noise
* Added command-line options: "-hostcpu-profile", "-show-paint",
"-audio", "-audio-freq", "-audio-hq"
* New script functions: cmdLineArg() string, fullscreen(bool),
showPaint(bool), audioFreq(uint), audioHQ(bool)
* Renamed script functions: sound(bool) --> audio(bool)
* Performance optimizations: store events events in an array (instead
of storing them in a linked-list), do not try to use uninitialized
Go variables, lower number of conversions between numeric types
with different bit-lengths, do not allocate memory when computing
the address of a pixel in a SDL surface, do not allocate memory when
executing certain instructions (INC, DEC, POP, RET, and others),
use Go arrays instead of 'container/vector/Vector', read the ROM
file only once instead of reading it on each reset, faster typing
of [LOAD ""] when loading from tape
* Better display refresh stability thanks to reduced memory
allocation. That is: less reasons for the Go runtime to stop the
program to perform memory garbage-collection.
* Make the Z80 CPU conformance test complete much faster
* Add initial support for Kempston joystick
* Automatically detect when to pause/unpause the tape.
This enables loading of multi-part TAP files, and of programs
that expect the audio data to contain periods of silence.
* Play 8063 pulses on all TAP headers
* Limit the maximum speedup of accelerated loading to 20
* Enable loading of the "VeraMono.ttf" font from "$HOME/.gospeccy"
or from the installation directory
* Do not initialize SDL if GoSpeccy is unable to detect the type of
the program on the command-line
* Changing the FPS should now result in fever sound buffer underflows
* Do not set GOMAXPROCS if there is an environment variable named
'GOMAXPROCS'
* Disable writes to ZX Spectrum ROM (to the first 0x4000 bytes of
memory). As a side-effect it enables "RANDOMIZE USR 0" to work
correctly.
* Change the script help text so that it fits the width of the console
when the scale is set to 2
* Add Go-SDL TTF version check. Print video surface resolution if in
verbose mode
* Update to a newer version of Go-PerfEvents that allows GoSpeccy
to potentially compile&run in a wider range of software environments
* Fix a couple of real&potential bugs, deadlocks and race conditions
* Minor updates to the README.md file
0.6.1 / 2010-11-12
==================
* Add support for accelerated tape loading both in console and command-line
0.6.0 / 2010-11-11
==================
* Add support for loading tapes in TAP format through the system
ROM loading routine
* Add support for Z80 48k snapshots (all Z80 versions)
* Enable loading of a program (tape or snapshot) from a ZIP
archive
* Add system/blackbox tests (see src/test)
* Add puts() function to the console Test script() console
function
* Create a separate package for the console
* Faster emulation of memory contention
* Enable a script or the console to add a new search path (handful
if used in the "startup_local.go" script), a snapshot specified as
an argument to GoSpeccy now superseeds any snapshots loaded from
the startup script
* Inline code that is used to set individual pixels (for up to 2x
rendering performance improvement)
* Improve conversion of 2-bit beeper levels to 16-bit audio (fixes
the music loudness in Manic Miner)
* Fix emulation of HALT instruction
* Fix many memory and I/O contention issues (checked against
JSpeccy 0.87, and against a couple of timing tests)
* Accurate emulation of the border (Overscan Demo by Busy Soft
works perfectly)
* Border height is now 32 pixels instead of 24
* Improve simulation of RETN when loading a SNA snapshot
* Reduce visual artifacting caused by non-atomic SDL surface
updates
* Fixed border rendering when a frame is not sent to the rendering
backend
0.5.1 / 2010-09-18
==================
* Add an audio stress-test, improve the application shutdown procedure
0.5.0 / 2010-09-18
==================
* Hide mouse cursor in fullscreen mode
* Enable uninstallation
* Allow testing and benchmarking in the "src/spectrum" directory
without the need to install the C readline wrapper
* Add convention over configuration for loading snapshots/roms/scripts
* Add convention over configuration when loading snapshots and
system rom(s). See #16. Modify the main Makefile in order to copy
ths system rom(s) in $(GOROOT)/pkg/$(GOOS)_$(GOARCH)/gospeccy/roms
directory
* Add support for loading and running Go scripts, add a simple
display stress-test script.
* Check Go-SDL version descriptors to prevent running with an
incompatible Go-SDL version
* Console & readline: handle terminal resize (SIGWINCH signal)
* If video/audio cannot be initialized, exit with an error message (instead of calling panic())
* Add beeper sound support
* Use ⚛SDL's event channel.
* Prevent the display backend from blocking CPU emulation.
* Proper interleaving of console output and console input.
* Minor Makefile update. See also http://groups.google.com/group/golang-nuts/browse_thread/thread/2e1521c155a19f83
* Fix deadlock occurring in the absence of "-verbose" command line option.
* Start rendering the 1st frame immediately, rather than artificially waiting for 20 milliseconds.
* Add readline support
* Add ability to write snapshots in SNA format.
* Add support for faster ULA attribute emulation.
* Allow to lower the accuracy of ULA emulation.
* Enable to input simple commands (as Go code) from the
console. It is now possible to change the display scale, to reset
the machine, and to load a snapshot. There is a new high-level
interface (uses a Go channel) for sending commands to the emulated
machine.
* Map opcode callbacks in an array type in place of a big opcode
switch for better performances
* Delay SDL video mode initialization until we get the first screen frame.
* Add hypothetical support for none/one/multiple displays.
* Use Linux performance counters to estimate emulation efficiency
* Faster screen rendering. Keyboard now supports cursor keys and
keys such as ","
* Fix Makefile to work on 64-bit systems
* Add a naive Z80 benchmark based on the fire demo
* Fix interrupt length. Add support for the "," key
* Exit the opcode emulation loop in case of a HALT, thus reducing
the x86 CPU usage in some cases.
* Add basic support for emulating contended memory and contented
IO. This improves the timing of animations in games, etc. The
horizon in Aquaplane works more-or-less OK, Paperboy does not seem
to be working.
0.1.0 / 2010-06-29
==================
* Add Fire104b intro snapshot by Andrew Gerrand
* Improve display design: better performance for scaled display
avoiding post processing of the surface.
* Simplify high-level API: create a speccy instance is simple as
issuing:
speccy := NewSpectrum48k(display)
For example, to initialize a speccy object that writes on a SDL
display:
display := spectrum.NewSDLScreen(sdl.SetVideoMode(320, 240, 32, sdlMode))
speccy := spectrum.NewSpectrum48k(display)
Of course, display should respond to the DisplayAccessor interface
* Make command-line options autoexplicative
d -> doubled
f -> fullscreen
h -> help
* Add LICENSE and ChangeLog files
0.0.0 / 2010-06-28
==================
* Birthday! (first public release)