OXYGENHUB
◆ main openmsx / doc / internal / ChangeLog.old
466.1 KiB · last changed chore(): initial commit 1 month ago source blame history raw
e8555c89 Andy McCall 1
!!!
2
!!! This file is no longer updated (and hasn't been for a while).
3
!!! Instead we prefer to put changelog messages in the git commit
4
!!! messages. The only reason to keep this file around is that in
5
!!! the old days the messages in this file were more detailed than
6
!!! the commit messages, so this file may still contain useful info
7
!!! when you're investigating old changes.
8
!!!
9
10
2010-06-06 Manuel Bilderbeek <[email protected]>
11
	* Released openMSX 0.8.0.
12
	* NOTE: this is probably the last entry in this ChangeLog. From now
13
	  on, just use the SVN commit log to keep track of changes.
14
15
2010-01-10 Manuel Bilderbeek <[email protected]>
16
	* Added Generation MSX id to software info topic. Use this to link
17
	  openMSX games to the Generation MSX web site.
18
19
2009-12-20 Manuel Bilderbeek <[email protected]>
20
	* Made softwaredb information available from Tcl, using sha1sum as
21
	  key. First step in making better use of the softwaredb, but mostly
22
	  meant to make it possible to replace the automatic ROM info printing
23
	  with a command to query that information on demand.
24
25
2009-11-08 Manuel Bilderbeek <[email protected]>
26
	* Added saving and loading of replays (in reverse feature). Thanks to
27
	  Wouter for doing the difficult work.
28
29
2009-09-27 Maarten ter Huurne <[email protected]>
30
	* Corrected palette colors on V9958:
31
	  The V9958 uses 5-bit DACs for R/G/B, shared by the YJK colors and
32
	  the V9938-compatible palette colors. The R/G/B palette colors are
33
	  converted from 3 bits to 5 bits in the same way the V9990 does.
34
	  Thanks to n_n for capturing the output of my test program a real
35
	  turbo R.
36
37
2009-08-02 Patrick van Arkel [email protected]
38
	 * Made some major changes to the ROM database
39
	   and added <text> tags to the <remark> field.
40
	   Included are also Generation MSX-ids to have
41
	   a common 'key' to bind databases.
42
43
2009-07-16 Manuel Bilderbeek <[email protected]>
44
	* Added session management script. When you do:
45
	  set enable_session_management true
46
	  your session (all machines) will be saved when exiting openMSX and
47
	  loaded again when starting openMSX (ignoring the machine/extensions
48
	  you put on the command line). You can also save, load, list and
49
	  delete sessions manually from the console. Default, this whole
50
	  feature is disabled.
51
52
2009-07-15 Sean Young <[email protected]>
53
	* First commit of Laserdisc code. Some of the outstanding issues
54
	  are listed in doc/laserdisc-todo.txt.
55
56
2009-07-09 Manuel Bilderbeek <[email protected]>
57
	* Added tabbed_machine_view script, visualizing multiply running
58
	  machines in a kind of tab widget.
59
60
2009-07-08 Manuel Bilderbeek <[email protected]>
61
	* Renamed 'msxonly' option to 'raw', which fits much better to what it
62
	  does.
63
64
2009-07-02 Wouter Vermaelen <[email protected]>
65
	* Major reductions in executable size for serialization code:
66
	   See the commit messages for details, here I'll only list one line
67
	   per commit and the size of the executable in each step (stripped
68
	   devel flavour on linux x86_64 gcc-4.3):
69
	      7200kB   [initial version]
70
	      7140kB   MemBuffer iso std::vector
71
	      7060kB   made serialize without ID default
72
	      6920kB   string="" -> string*=NULL
73
	      6918kB   XXX::serialize() tweaks
74
	      6899kB   outline OutputBuffer::insert()
75
	      6861kB   __builtin_constant_p
76
	      6590kB   beginTag(const char*)
77
	      6292kB   move error handling outline
78
	      6171kB   moved more of loadVersion() outline
79
	      6120kB   use const char* in PolymorphicSaver
80
	      6109kB   moved more of PolymorphicXXXRegistry outline
81
	      5781kB   give ArchiveXXX classes a non-templatized base
82
	      5780kB   moved ArchiveXXX::load/save() methods outline
83
	      5726kB   pass attrbute names as const char*
84
	      5710kB   outline attribute(...) calls
85
	   So combined this is an executable size reduction of over 1.4MB.
86
	   Apart from this, compilation is also noticeably faster: went from
87
	   8'00" to 6'23" on my machine (user time).
88
89
2009-06-07 Manuel Bilderbeek <[email protected]>
90
	* Apart from full screen (which was already implemented), also hide
91
	  the mouse pointer always when input grab is enabled.
92
93
2009-06-04 Manuel Bilderbeek <[email protected]>
94
	* Added Sanyo MPC-25FD, MSX2 with diskdrive and one cartridge slot
95
	  only. Thanks to jltursan!
96
97
2009-06-04 Wouter Vermaelen <[email protected]>
98
	* Fixed IE0 related VDP bug:
99
	   When there is a pending VBLANK IRQ (bit 7 in S#00 is set) and you
100
	   switch IE0 (bit 5 in R#1) on, there is immediately a IRQ send to
101
	   the Z80. Before this fix openMSX would only generate one on the
102
	   next VBLANK.
103
	   This fixes several long-standing bugs:
104
	    - [1849488] Game "Adonis" plays sound way too slowly
105
	    - [ 739150] Zanac: title corrupted
106
	    - [1847275] Penguin Adventure doesn't work on some machines
107
	    - [ 658430] Galaga/Bosconian slows down when you die
108
	   Thanks a lot to 'n_n' for providing a z80 trace of a Adonis run in
109
	   meisei. Comparing this trace with a openMSX trace allowed to
110
	   pin-point this bug.
111
112
2009-05-23 Maarten ter Huurne <[email protected]>
113
	* Always build application folder on Mac OS X.
114
	  This is the way we release and supporting both app folder and
115
	  systemwide installation only adds to the  maintaince effort.
116
117
2009-05-05 Max Feingold <[email protected]>
118
	* Added a Win32 implementation of LocalFile:mmap().
119
	  This should make file handling on Windows imperceptibly faster.
120
	* Implemented correct shutdown logic for PipeConnection thread
121
	  using async I/O and events.
122
123
2009-04-24 Manuel Bilderbeek <[email protected]>
124
	* Final step in un-uglifying Tcl scripts using Tcl namespaces :)
125
126
2009-04-19 Manuel Bilderbeek <[email protected]>
127
	* Added Sharp-Epcom HB-3600 dual 5.25" external disk drives, thanks to
128
	  FRS for contributing it.
129
130
2009-04-09 Wouter Vermaelen <[email protected]>
131
	* Added support for taking screenshots without OSD elements:
132
	  Restructured OutputSurface and child classes to make it possible
133
	  to render to an off-screen surface, so that it becomes possible
134
	  to re-render the current frame without the OSD layers.
135
136
2009-04-04 Manuel Bilderbeek <[email protected]>
137
	* Implemented enough of the Arkanoid pad to make it work. Use the
138
	  mouse to control it.
139
140
2009-04-03 Manuel Bilderbeek <[email protected]>
141
	* Added pointer_hide_delay setting to control visibility of the mouse
142
	  pointer. If you set it to -1, it will be always shown. 0 (the default)
143
	  means it is never shown. Positive values is the amount of milliseconds
144
	  it takes before it will be automatically hidden after it got shown due
145
	  to mouse activity. Docs are TODO.
146
147
2009-03-30 Manuel Bilderbeek <[email protected]>
148
	* Added a fun OSD VU-meter script, see script for details.
149
	  Thanks to Wouter and BiFi for their support.
150
151
2009-03-26 Max Feingold <[email protected]>
152
	* Secured sockets used by CliServer on Windows by requiring authentication
153
	  and authorizing only the user that launches the openMSX process.
154
155
2009-03-24 David Heremans <[email protected]>
156
	* Added new emu-state icons for set1 and replaced the default
157
	  ones in share/skins.
158
159
2009-03-20 Manuel Bilderbeek <[email protected]>
160
	* Added throttle setting to the new OSD icons (thanks Wouter).
161
162
2009-03-11 Manuel Bilderbeek <[email protected]>
163
	* Convert ancient history_size and remove_doubles settings to modern
164
	  settings. They influence how openMSX handles console history.
165
166
2009-03-09 Manuel Bilderbeek <[email protected]>
167
	* Added pause_on_lost_focus setting. After enabling it, openMSX will
168
	  pause when your cursor leaves the openMSX window. Useful in some
169
	  cases. This was default in fMSX, but in openMSX it is off by default.
170
171
2009-03-03 Wouter Vermaelen <[email protected]>
172
	* Split Y8950Adpcm sample generation part in two:
173
	  - There is now an emulation and an audio part. See comments in
174
	    Y8950Adpcm.cc for details. The emulation state is now no longer
175
	    dependant on the audio-thread. So in UR, the scope part keeps
176
	    on working when the audio is muted.
177
	  - Also made some minor adjustments to the rest of the adpcm code.
178
179
2009-02-24 Max Feingold <[email protected]>
180
	* Updated VC++ projects with a Python-based script that builds config
181
	  headers using mth's Python scripts. This automates one of the more
182
	  annoying manual steps in the VC++ build process.
183
184
2009-02-24 Wouter Vermaelen <[email protected]>
185
	* ZMBVEncoder motion vector search heuristic tweaks:
186
	  - try vectors with smallest euclidean size first (was Chebyshev size)
187
	    also give preference to purely horizontal/vertical motions and to a
188
	    lesser degree purely diagonal motions
189
	  - start search at best motion vector of previous block (before we
190
	    always started from the center)
191
	  - use different set of possible motion vectors, search further in
192
	    pure hor/ver/diag directions, less far in other (random) directions
193
	  Combined these tweaks give measurable smaller video files (5% - 25%)
194
	  and also run faster (2% - 6%). The 2nd tweak (start from previous
195
	  best) has the largest effect.
196
197
2009-02-23 Max Feingold <[email protected]>
198
	* Created a WiX-based installer for openMSX on Windows. The output is
199
	  an MSI file with the usual wizard-based installation UI.
200
201
2009-02-21 Wouter Vermaelen <[email protected]>
202
	* Refactored disk classes:
203
	  - simplified class hierarchy:
204
	     - removed virtual inheritance
205
	     - merged WriteProtectableDisk into SectorAccessibleDisk
206
	     - Disk now inherits from SectorAccessibleDisk,
207
	       ATM we don't support disk image formats that are lower level
208
	       than sector level. But even for those images it makes sense
209
	       to support reading/writing sectors.
210
	     - moved patch functionality up in the class hierarchy,
211
	       to SectorAccessibleDisk
212
	* Added syntax to insert a partition of a hard disk image:
213
	      <hd-image>:<num>
214
	  This is a preparartion to support disk partitions in the nowind
215
	  interface.
216
	* Implemented hard disk support for nowind interface
217
218
2009-02-11 Wouter Vermaelen <[email protected]>
219
	* Initial nowind implementation:
220
	  still need to work on the nowind openmsx commands
221
222
2009-02-09 Max Feingold <[email protected]>
223
	* Ported most significant inline assembly code to VC++ format,
224
	  where significance is defined as 'being noticeable in kernrate'.
225
	* VC++ binaries now benchmark 15% faster than mingw32 binaries on my system
226
	  openMSX svn VC++ x64 - 10.72 seconds
227
	  openMSX svn VC++ x86 - 11.19 seconds
228
	  openMSX svn mingw x86 - 12.62 seconds
229
	  openMSX 0.7.0 mingw x86 - 13.96 seconds
230
231
2009-02-07 Max Feingold <[email protected]>
232
	* Reduced VC++ W3 warning load to ~250, with help from Vampier and Wouter
233
234
2009-02-05 Max Feingold <[email protected]>
235
	* Rationalized the following definitions throughout the codebase:
236
	  - ASM_X86 = build assembly code on x86 and x64 platforms
237
	    (gcc's inline asm can target both; VC++ doesn't support x64 inline asm)
238
	  - ASM_X86_32 = build assembly code on x86 platforms (assumes ASM_X86)
239
	  - ASM_X86_64 = build assembly code on x64 platforms (assumes ASM_X86)
240
	  - __x86_64 = x64 target is specified
241
	  - _WIN64 = Windows x64 target is specified (same as _WIN32 && __x86_64)
242
	* These definitions should act that same for both mingw32 and VC++.
243
244
2009-02-01 Wouter Vermaelen <[email protected]>
245
	* Implemented 'ld a,i' Z80 quirk:
246
	  See comments in CPUCore.cc for details. Thanks to n_n for reporting
247
	  this issue (first discovered by GuyveR800) and writing a test
248
	  program for it.
249
250
2009-01-29 Max Feingold <[email protected]>
251
	* Unicode filename support on Windows platforms
252
	  - On Windows, standard CRT functions and 'ANSI' Win32 API calls
253
	    expect and return ANSI encodings, not UTF8. Unicode support on
254
	    Windows is generally achieved by calling CRT functions that accept
255
	    wchar_t and 'wide char' xxxW Win32 API calls.
256
	  - openMSX uses std::string and UTF8-encoded strings throughout.
257
	    Consequently, on Windows we wrap all system calls that might
258
	    touch the filesystem in UTF8-to-UTF16 conversions before calling
259
	    the 'wide char' API and (if necessary) converting back to UTF8.
260
	* As a side effect, this checkin also deprecates openMSX support for
261
	  Windows 95-based platforms, as well as for Windows NT 4.0.
262
	  At the time of writing, only Windows 2000 and above are supported.
263
264
2009-01-25 Maarten ter Huurne <[email protected]>
265
	* Use Python to generate "Version.ii".
266
	* Use Python to generate "build-info.hh".
267
268
2009-01-18 Max Feingold <[email protected]>
269
	* Fixed bug [ 1206036 ] Windows Control Menu while using ALT
270
	  With this fix in place, the ALT+SPACE combination no longer
271
	  pops up an annoying context menu on Windows.
272
	* The solution was to register our own winproc, filter out the
273
	  offending WM_SYSCOMMAND events, and delegate the rest to SDL.
274
275
2009-01-20 Wouter Vermaelen <[email protected]>
276
	* Console refactoring:
277
	  - Share much more code between SDL and GL console variant
278
	  - Use TTF fonts instead of a .png file with the ASCII symbols:
279
	    console can now also show unicode chars (if the ttf font has them)
280
	  - Added new setting: consolefontsize
281
	  - Removed (now unused) classes:
282
	       Font, DummyFont, SDLFont, GLFont, SDLConsole, GLConsole
283
	* Reverted part of last CPU refactoring (2008-01-15):
284
	  - Omitting needExit() check on some instructions can causes
285
	    acceptance of an IRQ to be a couple of instructions late,
286
	    see comments in src/cpu/CPUCore.cc for details.
287
	  - But even without this part, the threaded interpreter model is a
288
	    big win (more than 10% faster) over the old model.
289
290
2009-01-23 Max Feingold <[email protected]>
291
	* Checked in VC++ project files that build dependencies and openMSX itself.
292
	  The project files are in VC9 (Visual C++ 2008) format and should be usable
293
	  with the Windows SDK's msbuild tool, as well as with the free (as in beer)
294
	  Visual C++ 2008 Express Edition.
295
	* This checkin also brings the first 64-bit Windows build of openMSX.
296
	  x64 binaries are fully functional and I'm pleased to note that I found no
297
	  significant 64-bit portability issues in the codebase (inline asm aside).
298
299
2009-01-17 Wouter Vermaelen <[email protected]>
300
	* Initial implementation of the VDP sprite collision coordinate status
301
	  registers:
302
	  Not yet 100% correct (see top of src/video/SpriteChecker.cc for some
303
	  TODOs). But at least 'Ace in Space level 3' works now. So far this
304
	  seems to be the only game that actually uses this feature.
305
	  Fixes [2510696].
306
307
2009-01-15 Wouter Vermaelen <[email protected]>
308
	* Major changes in CPU emulation core:
309
	  I've worked on this patch on a local (private) branch for several
310
	  weeks. Actually it are several related patches and ideally I should
311
	  also commit it as seperate patches. However developing on a private
312
	  branch means (at least for me) do a couple of commits, detect a
313
	  mistake in one of the earlier commits, make a new commit that
314
	  corrects that mistake and so on. Usually I do the extra effort to
315
	  extract a clean patch-series from my local branches before committing
316
	  them. However this time that would require quite some extra time, and
317
	  as you guessed already I was too lazy to spend that time. Though as
318
	  compensation I wrote some extra doc about the inner workings of our
319
	  CPU emulation (see src/cpu/CPUCore.cc)
320
321
	  These are more or less the steps that are combined in this commit:
322
	  * Put instruction selection into one big function:
323
	     this allows to 'goto' between all part of this code (required
324
	     in later steps)
325
	  * Move opcode fetching (initial byte) and time accounting into
326
	    this function (preparation for next step)
327
	  * Allow to execute multiple instructions inside this function
328
	  * Use gcc extension 'computed goto' to implement faster dispatch
329
	  * Added fallback for compilers that don't have this extension (VC++)
330
	  * Simplified 'exit-test', see doc in CPUCore.cc for details
331
	  * Some smaller time bookkeeping optimizations:
332
	    - IX/IY instructions updated clock in two steps -> merged into one
333
	      step
334
	    - Some helper routines took a 'extra-cycles' function parameter.
335
	      Turned this into a template parameter to force the compiler to
336
	      treat it as a compile-time-constant. (Actually gcc already did
337
	      this optimization by itself most of the time when the function
338
	      got inlined, but now the optimization is guaranteed.)
339
340
2009-01-10 Wouter Vermaelen <[email protected]>
341
	* Implemented difference between AY8910/YM2149 reading of registers:
342
	   - thanks to enen for doing most of the investigation on real MSX
343
	     machines
344
345
2009-01-08 Wouter Vermaelen <[email protected]>
346
	* Merged (part of) mfeingol's work to make openMSX compile with VC++:
347
	  - code still compiles with gcc, but i couldn't test myself with VC++,
348
	    so probably this work is not finished yet ;)
349
	  - build system is still TODO, these are only changed in the C++
350
	    source files
351
352
2009-01-07 Wouter Vermaelen <[email protected]>
353
	* Released openmsx-0.7.0
354
355
2008-12-20 Wouter Vermaelen <[email protected]>
356
	* Updated to cbios 0.22
357
358
2008-12-20 Wouter Vermaelen <[email protected]>
359
	* For carta command, check for errors (rom and ips files)
360
	  before removing the currently inserted cartridge.
361
362
2008-11-25 Wouter Vermaelen <[email protected]>
363
	* Added '-repeat' option to 'bind' command:
364
	   - When the '-repeat' options is given and the key remains pressed,
365
	     the command will be repeat (just like regular key repeat while
366
	     typing).
367
	   - Used this feature in the OSD menu.
368
369
2008-11-01 Wouter Vermaelen <[email protected]>
370
	* Added possibility to take screenshots of only the msx screen (so no
371
	  OSD stuff and console):
372
	   For the moment this is done by passing the option -msx to the
373
	   screenshot command, this will take a screenshot of size 640x480.
374
	   There will also be no scaler or any other effects in the screenshot.
375
	   You can use -msxsmall to take a screenshot of size 320x240 (-msxbig
376
	   is a synonym for -msx).
377
	   TODO is the syntax of this command ok? Also still need to document
378
	   it.
379
380
2008-10-29 Wouter Vermaelen <[email protected]>
381
	* Optimized VDPCmdEngine:
382
	  The core of most VDP commands goes like this:
383
	     1 transform x,y coordinate(s) to vram address(es)
384
	     2 do some operation on that address(es)
385
	     3 increase (or decrease) coordinates to loop over the whole
386
	       rectangle (mostly only the x-coordinate changes)
387
	     4 repeat if there is still time left
388
	  The coordinate to address transformation requires quite some shift
389
	  and logical operations. In the next iteration all these operations
390
	  are repeated.
391
392
	  In this patch the vram address is calculated incrementally: we
393
	  calculate it once at the beginning of the loop and then adjust the
394
	  address when the x-coordinate changes. We have to take care of vram
395
	  interleaving (screen 7 and 8) and that several pixels map to the same
396
	  address (screen 5, 6, 7).
397
398
	  A second optimization is to simplify the stop-condition for the
399
	  innermost loop. Before we broke out of this loop either when
400
	  destination time was reached or when we reached the end of a
401
	  horizontal line (implemented as two seperate tests). Now we calculate
402
	  up-front which of these two condition will occur first and iterate
403
	  that many times (with only one test).
404
405
	  I measured between 4% and 8% speedup on total emulation time for the
406
	  Space Manbow intro demo (renderer=none, sounddriver=null).
407
408
2008-10-25 Manuel Bilderbeek <[email protected]>
409
	* Added Sony HB-10P and Sony HB-55P, thanks to Rudi Westerhof. Also
410
	  added Sony HB-20P a few days ago, thanks to MSXKun.
411
412
2008-10-16 Manuel Bilderbeek <[email protected]>
413
	* Implemented rough, but measurement-based timing for V9990 for
414
	  commands LMMV, LMMM, BMXL, BMLX and BMLL. Code by Wouter. Original
415
	  measurement programs by Peter Mastijn. Measurements by Wouter and
416
	  me, using Wouter's more generic measurement program. Fixes [421861]!
417
418
2008-09-25 David Heremans <[email protected]>
419
	* Vram debuggable changed:
420
	  First step towards creating a debuggable that provides a logical
421
	  view upon the VRAM based upon the current videomode. This is the
422
	  behavior an ML-coder expects when dealing with the VDP.
423
	  The old chipbased view upon the vram is now called "physical VRAM"
424
	  instead.
425
426
2008-09-21 Manuel Bilderbeek <[email protected]>
427
	* Added Brazillian OPL3Cartridge (MoonSound without wavetable).
428
	  Still mostly untested, although MSX-Audio games (e.g. from Compile)
429
	  seem to work with it. See RFE tracker item 1815450.
430
431
2008-08-28 Wouter Vermaelen <[email protected]>
432
	* Added 'probe' debug infrastructure:
433
	   see 'help debug probe' or (doc/manual/command.html)
434
435
2008-08-20 Wouter Vermaelen <[email protected]>
436
	* Made Disk and SectorAccessibleDisk write-protectable:
437
	   Added WriteProtectable interface and refactor code so that really
438
	   all write methods check this write protected flag.
439
440
2008-08-20 Wouter Vermaelen <[email protected]>
441
	* Split MSXtar class into two parts:
442
	    - DiskImageUtils: this part knows about partitions and format
443
	    - MSXtar:         this part knows about files and directories
444
	  Rational: before this change, the interface of the MSXtar class was
445
	  a bit confusing, especially the usePartition() method. Depending on
446
	  which MSXtar functionality you plan to use, you either must call it,
447
	  were not allowed to call it or must call it but ignore exceptions
448
	  thrown by it.
449
	  To simplify this, I split the functionality of the MSXtar class in
450
	  two parts. Now MSXtar doesn't know anything anymore about partitions
451
	  and formatting (of course it's still possible to work on partitions,
452
	  but that's now abstracted via the new DiskPartition class).
453
454
2008-08-16 Wouter Vermaelen <[email protected]>
455
	* Fixed some UMRs triggered during savestate:
456
	  Before savestates this was not a problem because those value _are_
457
	  initialized before they are used in actual msx emulation code. Though
458
	  savestates can read these values earlier. And if the variable was an
459
	  enum, it could even lead to an assert.
460
	  Thanks to Vampier for reporting this bug.
461
462
2008-08-16 Wouter Vermaelen <[email protected]>
463
	* Diskmanipulator changes:
464
	  - Teach diskmanipulator about multiple active msx machines.
465
	    Before this change 'diska' always refered to the 1st drive of
466
	    the oldest machine. Now it refers to the active machine. It's
467
	    also possible to explicitly qualify the wanted machine with
468
	    syntax like 'machine2::diska'.
469
	  - Improved check on whether the specified partition exists or
470
	    not.
471
472
2008-07-24 Wouter Vermaelen <[email protected]>
473
	* Changed our Unicode code with UTF8-CPP code:
474
	       http://utfcpp.sourceforge.net/
475
	    This fixes the TODO's left in our Unicode code. But it's mainly
476
	    dome as preparation to serialize the Keyboard class (because a
477
	    'type' command in progress doesn't survive a savestate ATM). The
478
	    old code in the Keyboard class contained a UTF16 encoded string,
479
	    but the serialization framework can't (directly) serialize that.
480
481
2008-07-24 Wouter Vermaelen <[email protected]>
482
	* Optimized de-serialization of arrays:
483
	   Directly deserialize the elements in the correct position in
484
	   memory. Before the element was loaded in a local variable and
485
	   then copied to the correct position in the array.
486
487
	   This also fixes a bug in AY8910 when detune/vibrato was used,
488
	   because copying a AY8910::ToneGenerator object is not allowed.
489
490
2008-07-20 Manuel Bilderbeek <[email protected]>
491
	* Renamed Midi{In,Out}Native to Midi{In,Out}Windows (untested!)
492
	* Made save/loadstate commands a bit more comfortable, so we can
493
	  easier test this stuff :)
494
495
2008-07-19 Wouter Vermaelen <[email protected]>
496
	* Enabled savestates to memory (as opposed to XML files):
497
	   - Currently available via the 'mem_savestate' and 'mem_loadstate'
498
	     commands, but this will still certainly change.
499
	   - Speed seems to be quite good:
500
	       savestate MSX1:          125us
501
	                 MSX2:          310us
502
	                 TurboR:        734us
503
	                 boosted MSX2: 3770us
504
	       This between 200 and 400 times faster than the XML savestates!
505
	       So it seems to be fast enough to implement a 'reverse-time'
506
	       feature.
507
508
2008-07-14 Wouter Vermaelen <[email protected]>
509
	* Serialize pluggables (WIP):
510
	   Current code serializes all pluggables even those that are not
511
	   plugged in. The available pluggables depends on the platform (e.g.
512
	   the Midi{In,Out}Native pluggables on windows), the openmsx
513
	   configure options (e.g. CassetteJack), the openmsx version (more
514
	   pluggables in newer versions) and even the state of the host
515
	   machine (connected a USB joystick). ATM loading a savestate only
516
	   works when the exact same list of pluggables is available.
517
518
	   Maybe we should only serialize those pluggables that are actually
519
	   plugged in in the emulated machine (TODO verify that pluggables
520
	   don't keep state over unplug-plug cycle).
521
522
	   ATM only the state of the pluggables itself is serialized. We don't
523
	   yet restore the actual plug state (which pluggable is plugged in
524
	   which connector).
525
526
2008-07-05 Wouter Vermaelen <[email protected]>
527
	* Merged Rom{4,8,16}kBBlocks classes into one templatized class
528
529
2008-07-01 David Heremans <[email protected]>
530
	* Fixed two bugs in the diskmanipulator:
531
	   - one preventing correct 360KB disk creation on some machines
532
	   - one valgrind warning about variable initialization
533
534
2008-06-30 Wouter Vermaelen <[email protected]>
535
	* More serialization work:
536
	   - Philips_NMS_8250 can be serialized now, but still very
537
	     few other machines or extensions are supported
538
539
2008-06-28 Wouter Vermaelen <[email protected]>
540
	* Added HIGHLY EXPERIMENTAL savestates:
541
	   - Only very few things work yet, but I was able to resume
542
	     'Road Fighter' running in a MSX1 (actually that's about the
543
	     most complex setup that already works).
544
	   - There are two new commands (still VERY primitive)
545
	         savestate <machineID>
546
	         loadstate
547
	     'savestate' will create a openmsx.xml.gz file in the current
548
	     directory. 'loadstate' will read this file and create a new
549
	     machine based on this state. You can use 'activate_machine
550
	     <machineID>' to switch to that machine.
551
552
2008-06-18 Wouter Vermaelen <[email protected]>
553
	* Require extension hardwareconfig.xml files to list devices inside a
554
	  <devices> tag. We already updated all our device configs for this
555
	  over two years ago.
556
557
2008-06-17 Wouter Vermaelen <[email protected]>
558
	* Implemented TMS99x8 VRAM remapping (reg#1, bit 7):
559
	   thanks to: - enen for providing the technical info
560
	              - Quibus for testing it on both real and emulated
561
	                machines
562
563
2008-06-14 Wouter Vermaelen <[email protected]>
564
	* Implemented 'tabbed' machines:
565
	  It's now possible to have multiple msx machines in memory and freely
566
	  switch between them. This is done with the already existing
567
	  'activate_machine' command. Only the active machine is running, the
568
	  other machines are paused.
569
570
	  This may not be the most useful feature, but we already had the
571
	  'activate_machine' command for other reasons (e.g. machine
572
	  switching) and you could argue that it's a bug that it didn't
573
	  already work like it does now. Basically we already had all the
574
	  infrastructure in place. Actually enabling session support required
575
	  relatively few changes (mostly mechanical). Also having this feature
576
	  working gives more confidence that the design is right.
577
578
2008-06-12 Wouter Vermaelen <[email protected]>
579
	* Simplified machine handling stuff in Reactor:
580
	  Before we had some (complicated) logic in the Reactor class to
581
	  postpone the actually machine switch till the main reactor loop has
582
	  had a chance to run. The reason for this was that the 'machine'
583
	  command (or other related commands) can get executed via a code path
584
	  that runs through the current machine, meaning there are stackframes
585
	  active that refer to the current machine. Only in the main reactor
586
	  loop we're sure there are no such stackframes. A consequence of this
587
	  approach is that for example in this sequence of Tcl commands:
588
	     machine turbor ; diska mydisk.dsk
589
	  The 'diska' command is still executed in the old machine, because
590
	  the reactor loop has not run yet. If there is 'some pause' inbetween
591
	  the two commands, the 'diska' command is executed in the new
592
	  machine. At the very least this is not very intuitive.
593
594
	  Taking a step back, switching the active machine (which has active
595
	  stackframes) was not the problem, but deletion of that machine is.
596
	  So instead of postponing the whole switch, we now only postpone the
597
	  deletion of the old machine. The Tcl commands now work as expected.
598
599
	  Also did some other refactoring to make the code easier to
600
	  understand.
601
602
2008-06-12 David Heremans <[email protected]>
603
	* Fixed a small bug in DirAsDisk:
604
	  Read-only host-OS files became truncated in the MSX dsk image.
605
606
2008-06-05 Wouter Vermaelen <[email protected]>
607
	* Fixed compilation of CPU code with gcc-3.4:
608
	   Compilation with gcc-3.4 was broken because of a compiler bug,
609
	   gcc-4.x works just fine. Worked around it. Though I still like
610
	   to demote gcc-3.4 support to second class.
611
612
2008-06-04 Alex Wulms
613
	* Added French version of VG8010/VG8020 and corresponding unicodemap files
614
615
2008-06-04 Wouter Vermaelen <[email protected]>
616
	* Fixed V9990 vertical scroll behaviour:
617
	  Based on MRC forum post by GhostwriterP (page 3, post 12)
618
	      http://www.msx.org/forumtopicl8574.html
619
	  1) Writing to high byte of scroll register only takes effect at the
620
	     start of the next frame. This is for both scroll A and B
621
	     registers.
622
	  2) Writing to low byte has effect the next line. The next line that
623
	     will be displayed is the line number just written to the register
624
	  3) point 2) has no effect on the sprite vertical sprite position
625
	     (this was wrong in the initial openmsx implementation)
626
627
2008-06-03 Wouter Vermaelen <[email protected]>
628
	* Added -clip option to OSD widgets:
629
	   - If this option is true, then child widgets are clipped to the
630
	     bounding box of this widget.
631
	   - Used in the OSD menu script to make sure (long) text lines don't
632
	     gun over the end of the menu window.
633
	* V9990 display enable only takes effect at the next frame
634
635
2008-05-28 Wouter Vermaelen <[email protected]>
636
	* Reduced code duplication in CPUCore by templatizing various stuff:
637
	  - For example, a lot of instruction methods only differ in the
638
	    registers they act upon (e.g. inc_hl() vs inc_de). By making
639
	    templatized helper functions to read/write registers, a lot of
640
	    these instruction methods can be combined into a single
641
	    templatized instruction method.
642
	  - This reduced code size by almost 2000(!) lines.
643
	  - The generated code is also about 100kB smaller. I'm not sure
644
	    why exactly, but I think because it doesn't need to keep a
645
	    non-inlined version of the templatized instruction methods in
646
	    the final executable.
647
	  - Speed of the CPU code has not changed.
648
649
2008-05-27 Wouter Vermaelen <[email protected]>
650
	* Tuned R800 refresh (still WIP)
651
652
2008-05-26 Wouter Vermaelen <[email protected]>
653
	* Implemented dynamic IO port allocation for Panasonic MSX-AUDIO:
654
	   fixes: [1231256] Panasonic MSX-AUDIO not detected for games
655
656
2008-05-24 Maarten ter Huurne <[email protected]>
657
	* Fixed AVI recording (ZMBV encoding, to be exact) on big endian CPUs.
658
659
2008-05-24 Wouter Vermaelen <[email protected]>
660
	* Fixed R800 page-break behaviour:
661
	   - did a lot of measurements on a real turbor, see
662
	       doc/r800test.txt
663
	   - refactored CPU code to match this (WIP)
664
665
2008-05-21 Wouter Vermaelen <[email protected]>
666
	* Reading sectors from a disk image via the SectorAccessibleDisk
667
	  interface didn't apply the IPS patches:
668
	    This had as effect that accessing the disk in the emulated
669
	    machine did show the effect of the IPS patches, but using
670
	    the diskmanipulator on the same disk ignored the IPS patches.
671
672
2008-05-19 Manuel Bilderbeek <[email protected]>
673
	* Final fixes on Nettou Yakyuu mapper, including enhanced sample
674
	  player.
675
676
2008-05-17 Manuel Bilderbeek <[email protected]>
677
	* Added WIP version of Nettou Yakyuu mapper, used by the game "Moero!!
678
	  Nettou Yakyuu '88". Thanks to hap/enen for the research and blueMSX
679
	  implementation and Wouter for teaching me about this stuff.
680
681
2008-05-16 Wouter Vermaelen <[email protected]>
682
	* Fixed crash in DirAsDsk / DiskManipulator:
683
	   Occured when a diskimage used a different end-of-fat marker than
684
	   0xFFF. In fact the whole range 0xFF8-0xFFF should be interpreted
685
	   as EOF. See:
686
	      http://en.wikipedia.org/wiki/File_Allocation_Table#File_Allocation_Table
687
688
2008-05-03 Wouter Vermaelen <[email protected]>
689
	* CPU time keeping speedup:
690
	  - We want to have cycle-accurate bus transactions (memory or IO-port
691
	    read/writes). So for example if in one instruction there are
692
	    multiple transactions, they should happen at slightly different
693
	    moments in time. Also the time of the first transaction is not
694
	    necessarily the same time as the start of the instruction.
695
696
	    Initially we implemented this by incrementing the 'current time' by
697
	    very small steps at each sub-instruction.
698
699
	    We actually only need this time for very few transactions. The vast
700
	    majority of the transactions goes to ROM or RAM (IOW to 'cachable'
701
	    memory regions), and there the exact time is not important at all.
702
703
	    To speedup this time keeping, we now only increment the 'current
704
	    time' with the whole instruction cycle count. In case we do
705
	    perform a transaction to non-cachable memory we still first have
706
	    to calculate the current time. To be able to do this all
707
	    transactions have been annotated with 'cycles since start of the
708
	    instruction' information.
709
710
	    I measured between 5% and 10% speedup on the ZEXALL benchmark with
711
	    this change.
712
713
2008-04-30 Wouter Vermaelen <[email protected]>
714
	* Optimized check for pause in CPU code
715
716
2008-04-29 Wouter Vermaelen <[email protected]>
717
	* Use switch statement instead of jump table in CPUCore:
718
	  - Is about 10%(!) faster when using gcc-4.2, more when using
719
	    recent gcc snapshot. With gcc-4.1 it's performance neutral,
720
	    gcc-3.4 was a big slowdown (but we care less about such old
721
	    compilers).
722
	  - Some history:
723
	     I had already tried this before, but at that time it wasn't a
724
	     win. Recent gcc versions are able to eliminate the check for the
725
	     'default' case when it can prove all cases are enumerated in the
726
	     switch statement (here we switch on a byte type and provide all
727
	     256 cases). With this optimization the switch approach gave a
728
	     small speed gain. Then I tried some additional tweaking (force
729
	     inlining some core functions). And this gave a much bigger gain,
730
	     even on older compilers.
731
	  - Because we no longer use a jumptable there is no advantage anymore
732
	    in using static functions (with an explicit 'this' argument) over
733
	    regular member functions. This makes the code more readable again.
734
735
2008-04-08 David Heremans <[email protected]>
736
	* Fixed a bug in the load_icons script
737
738
2008-04-07 David Heremans <[email protected]>
739
	* Added a new 'fancy' skin
740
741
2008-04-06 Alex Wulms
742
	* Review unicodemaps for MSX models with 'international' font:
743
	   - There were some errors in the maps. Especially for
744
	     graph and shift-graph key combinations.
745
746
2008-04-06 David Heremans <[email protected]>
747
	* New load_icons script:
748
	   - Added suport for frame.png
749
	   - Added time-before-fade-starts
750
	* Some extra comments in the DirAsDisk
751
752
2008-04-05 Wouter Vermaelen <[email protected]>
753
	* Added share/skins/Vera.ttf.gz:
754
	   - also added support for compressed font files
755
756
2008-03-30 Alex Wulms
757
	* Add support for Philips VG8010:
758
	   - Add new unicodemap unicode.proto_int; the VG8010 has a keyboard
759
	     matrix that differs completely from all other MSX models. It seems
760
	     to be some kind of prototype of the keyboard matrix
761
	   - Add 'GRAPH locks' processing logic to the copy&paste routine in
762
	     the keyboard driver (GRAPH has a locking behaviour on VG8010)
763
	* Fix DEAD key behaviour in keyboard driver in KEY mapping mode:
764
	   - In KEY mapping mode, RCTRL key must be mapped to row 5 col 2 in the
765
	     keyboard matrix (DEAD key on 'international' MSX keyboard) or to
766
	     whatever other position if user has loaded another KeyToKey mapping
767
	     file. Either way, it has to follow the 'Key to Key' mapping logic
768
	   - In CHARACTER mapping mode, RCTRL key must be mapped according to
769
	     the DEADKEY position in the unicode map files (for the MSX models
770
	     that do have a DEAD key)
771
772
2008-03-26 Wouter Vermaelen <[email protected]>
773
	* Fixed Z80 timing of accepting a IRQ:
774
	   - Accepting a IRQ in IM0 or IM1 should take 13 cycles, there is no
775
	     extra wait cycle. For IM2 it takes 19 cycles (also no extra wait
776
	     cycle).
777
	   - Thanks to enen for testing this
778
779
2008-03-25 Wouter Vermaelen <[email protected]>
780
	* Added -fadeTarget and -fadePeriod properties for OSD widgets:
781
	   - This allows to smoothly fade the alpha value of a widget without
782
	     further interaction with this widget. (I mean you don't have to
783
	     manually change the alpha value in small steps.)
784
	   - Allows to greatly speedup the OSD icons Tcl script. (In the GP2X
785
	     port, it took a lot a time)
786
787
2008-03-16 Manuel Bilderbeek <[email protected]>
788
	* Some small improvements in the cassette player:
789
	  - clearer errors when both a wav and a cas image fail to work
790
	  - properly flush the recording when switching to play mode
791
	  Still needs more work to properly handle 'zero-recordings' after
792
	  switching to play mode, see comments in the class.
793
794
2008-03-12 Wouter Vermaelen <[email protected]>
795
	* Replaced C++ IconLayer with a Tcl script
796
797
2008-03-12 Wouter Vermaelen <[email protected]>
798
	* Added 'user_setting' command:
799
	   This allows to create openMSX settings from Tcl scripts. The main
800
	   advantage of settings over regular Tcl variables is that their
801
	   value is preserved over different openMSX sessions.
802
	   See 'help user_setting' for more details.
803
804
2008-03-08 Manuel Bilderbeek <[email protected]>
805
	* Added -doublesize switch to the 'record start' command, to record at a
806
	  size of 640x480. Note: this is usually a lot slower...
807
808
2008-03-07 Wouter Vermaelen <[email protected]>
809
	* Fixed bug in OSD rectangle drawing:
810
	   As an optimization rectangles with alpha=0 (completely
811
	   transparent), were not allocated in memory. This caused problems
812
	   when we needed the dimensions of this rectangle to calculate the
813
	   position of child widgets. Fixed by refactoring the transformation
814
	   code.
815
816
2008-03-05 Wouter Vermaelen <[email protected]>
817
	* Added 'openmsx_info realtime':
818
	   It was already possible to query the emutime of a machine in
819
	   Tcl, now it's also possible to query the realtime.
820
	* Added '-scaled' OSD property:
821
	   OSD widgets with this property (or child widgets whose parent has
822
	   this property) are automatically scaled according to the
823
	   'scale_factor' setting. This makes it possible to design a GUI
824
	   independent of the host window resolution.
825
826
2008-03-03 Wouter Vermaelen <[email protected]>
827
	* Extended OSD stuff:
828
	   - widgets are now hierarchically structured (the 'osd create'
829
	     subcommand has been changed to allow this)
830
	   - child widgets are placed relative to their parent widget
831
	   - there can be an offset relative to parent in pixels (in the
832
	     future probably also in 'scaled' pixels)
833
	   - or offset can be as a percentage of the bounding box of the
834
	     parent widget
835
836
2008-03-02 Alex Wulms
837
	* Several updates to keyboard driver:
838
	  - Rename all keyboard settings to start with kbd_ so that they
839
	    are grouped together when listed in alphabetic order, like in
840
	    the documents.html file and in the tab expansion of the
841
	    various commands in the console
842
	  - Add support for a few keys that are specific to the jp106
843
	    keyboard model (the most used keyboard in Japan)
844
845
2008-02-25 Wouter Vermaelen <[email protected]>
846
	* Added 'MatraShockware' mapper type:
847
	   This is a non-bankswitched mapper that uses a AMD flash ROM. The
848
	   flash is wired-up in such a way that writes end up in a different
849
	   region as reads. The effect is that the flash' autoselect function
850
	   tells you that a region is not write-protected, but when you
851
	   actually try to reprogram that region it has no effect. The game
852
	   'INK' actually uses this as a sort of copy protection (if this
853
	   check fails, stage 2 goes back to stage 1).
854
	   See also this forum thread:
855
	     http://www.msx.org/forumtopic8329.html
856
857
2008-02-25 Wouter Vermaelen <[email protected]>
858
	* Added new mapper type: plainflash
859
	   It's plain mapper type (no bankswitching), but implemented
860
	   with a Flash Rom, so it reacts to certain write-sequences.
861
	   According to this forum topic
862
	      http://www.msx.org/forumtopicl8329.html
863
	   the Matra INK game uses this as a sort of copy protection.
864
865
2008-02-25 Alex Wulms
866
	* Several updates to keyboard driver:
867
	   - Implemented auto-toggle of KANA-lock (and CODE-lock on VG8010)
868
	     based on the character that the user enters. This is only done on
869
	     MSX models on which CODE/KANA has a locking behaviour. Though,
870
	     user can switch it off via auto_toggle_code_kana_lock setting.
871
	   - Implemented auto-toggle of CODE/KANA-lock when pasting characters
872
	     (either through catapult or via the type command in the console).
873
	     This is always done on MSX models on which the CODE/KANA locks.
874
	   - Implemented auto-toggle of CAPSLOCK when pasting characters. This
875
	     is especially required for japanese models, which use CAPSLOCK to
876
	     differentiate between hiragana and katakana entry mode when
877
	     CANALOCK is on.
878
	   - Added a mnemomic DEADKEY to the unicode maps, to indicate the
879
	     position of the dead key in the MSX matrix (it is different on
880
	     german MSX models)
881
	   - Added setting keyboard_mapping_mode, so that user can select
882
	     between KEY to key mapping mode and CHARACTER to key-combination
883
	     mapping mode.
884
	   - Refactored keyboard driver; unicode mapping data is now in its own
885
	     class and it uses a std::map to store the mapping data in stead of
886
	     a (sparse) 64k entries matrix.
887
888
2008-02-23 Wouter Vermaelen <[email protected]>
889
	* Added low level OSD Tcl commands:
890
	   - It's now possible to draw OnScreen filled-rectangles, images
891
	     and text. See 'help osd' for more details.
892
	   - Font rendering is done with SDL_ttf. This is a new library
893
	     dependency.
894
	   - This is still very much work in progress.
895
896
2008-02-13 Wouter Vermaelen <[email protected]>
897
	* Added 'horizontal_stretch' setting:
898
	   - amount of horizontal stretch can now be configured (some
899
	     users repeatedly asked for this ;-)
900
	   - removed horizontal_stretch enum from display_deform setting
901
	   - as a bonus horizontal stretch can now also be used in
902
	     combination with the 3D deform mode
903
904
2008-01-28 Alex Wulms
905
	* Initialized key_ghosting_sgc_protected parameter in all
906
	  hardwareconfig.xml file:
907
	    Initial value of the parameter is derived from keyboard
908
	    code at ROM BIOS address 0x2c; for Japanese machines,
909
	    it is set to false and for all others to true (this is based
910
	    on tests with some real machines)
911
912
2008-01-24 Wouter Vermaelen <[email protected]>
913
	* Introduced PLATFORM_GP2X #define,
914
	  don't call getpwuid() if this #define is set
915
916
2008-01-23 Wouter Vermaelen <[email protected]>
917
	* Conditionally compile 16/32bpp and scaler code:
918
	   GP2X port only needs 16bpp and scale factor 1
919
920
2008-01-21 Wouter Vermaelen <[email protected]>
921
	* Removed workaround for pre gcc-3.4 compilers
922
923
2008-01-18 Alex Wulms
924
	* Added key-ghost protection for SHIFT, GRAPH and CODE keys:
925
	    This exists on several real models; these three keys are connected
926
	    to row 6 via a diode (one diode per key)
927
	    Have made it configurable through hardware.xml. Default is that
928
	    the protection is on
929
930
2008-01-17 Wouter Vermaelen <[email protected]>
931
	* Refactored OutputSurface class:
932
	   - Made all members private (was protected) and added protected
933
	     getter/setters. This makes the interface between base and sub
934
	     classes explicit.
935
	   - Renamed getFormat() to getSDLFormat() to make it clear that this
936
	     method still works dircetly on SDL data structures.
937
	   - Added lock(), unlock() and isLocked() methods. These wrap the
938
	     SDL_LockSurface() and SDL_UnlockSurface() functions. It for
939
	     example allows to check that getLinePtrDirect() is only called on
940
	     a locked surface.
941
	   The first two changes allow for easier refactorings. The last change
942
	   is a step towards enabling the use of HW accelerated SDL-blit
943
	   functions on the GP2X port.
944
	* Move calls to OutputSurface::lock() / unlock() to a lower level:
945
	   Every function that wants to access pixels directly should now make
946
	   sure the surface is locked. Similarly a function that wants to use
947
	   blit operations must unlock the surface. This allows for the
948
	   minimal amount of locked<->unlocked transitions. (Locking while
949
	   already locked or unlocking while already unlocked is very fast.)
950
951
2008-01-16 Alex Wulms
952
	* Added German keyboard map (unicodemap.de):
953
	    It is needed for Sony HB-F700D. Please note that currently it gives
954
	    a key-ghosting effect when entering { character; on german MSX this
955
	    character must be entered by pressing SHIFT, CODE and ( keys
956
	    SHIFT and CODE are on same ROW
957
	    SHIFT and ( are on same COLUMN
958
	    Hence the < character gets 'ghost pressed' (in same column as CODE)
959
	    Need to figure out how this works on the real machine. Does it contain
960
	    hardware to prevent key ghosting?
961
962
2008-01-12 Wouter Vermaelen <[email protected]>
963
	* Optimized SCC::generateChannels()
964
965
2008-01-11 Wouter Vermaelen <[email protected]>
966
	* Optimized CheckedRam for the case there is no umrcallback set:
967
	   In some cases (e.g. in manbow2) it still caused some overhead:
968
	   Internally openMSX divides memory in 256 byte chunks (see
969
	   ChacheLine.hh) as soon as all 256 bytes in a chunk have been
970
	   written to, read/writes to this chunk happen without overhead.
971
	   Usually this happens early in the MSX boot process or startup code
972
	   of a game. However manbow2 has 2 or 3 chunks that are read very
973
	   frequently but only partly initialized.
974
	   Solved by treating the memory completely initialized in case the
975
	   'umrcallback' settings is empty (no callback function registered).
976
977
2008-01-08 Wouter Vermaelen <[email protected]>
978
	* Fixed reading of wav cassette images on Windows:
979
	   Some versions of(?) windows can't open the same file multiple
980
	   times in read-write mode. But this is exactly what happened by
981
	   using the (now removed) File::getLocalFile() method combined with
982
	   SDL_LoadWav(). In the past (2007-08-29) we already solved a similar
983
	   problem with IMG_Load(). We solved this by deleting the File object
984
	   before using the path returned by getLocalFile(). This works for
985
	   regular files, but not for compressed files. I like to gzip my wav
986
	   images so we need a different solution.
987
	   To solve this I removed the old getLocalFile() method and created a
988
	   new class LocalFileReference. This class makes sure there is no
989
	   open file reference anymore after its constructor finishes and that
990
	   there is a local uncompressed version of the file for at least as
991
	   long as the lifetime of the corresponding objects this class.
992
993
2008-01-07 Wouter Vermaelen <[email protected]>
994
	* in CPUCore prefer to use 'unsigned int' over 'word' datatype:
995
	   Results in smaller and faster code. On x86, instructions that work
996
	   on 32-bit are shorter than those for 16-bit. Code size reduced
997
	   about 10kB, code is slighter faster (depends a lot on compiler
998
	   version and optimization options). ARM CPUs don't even have 16-bit
999
	   operations, only (limited) 16-bit load/store instructions. Here code
1000
	   size reduced about 20kB and is about 4% faster.
1001
1002
2008-01-05 Wouter Vermaelen <[email protected]>
1003
	* changed SoundDevice::updateBuffer() method:
1004
	   As parameters this method (still) receives a number of buffers,
1005
	   each buffer should be filled with the audio-output of one channel.
1006
	   Before this change the existing data in the buffer should simply be
1007
	   overwritten. Now the new data should be added to the existing data
1008
	   in the buffer.
1009
	   This new approach allows to let several channel buffers actually
1010
	   point to the same underlying buffer (in fact only a muted or
1011
	   recorded channel will still get it's own private buffer). This
1012
	   allows to (mostly) skip the mix-channels step.
1013
	   I measured on my core2duo CPU and this new approach is slightly
1014
	   slower (a few percent) than the old one. If I disable SSE2
1015
	   optimizations in mixChannels, it's about the same speed. However on
1016
	   older CPUs without SSE2 and with smaller caches (like ARM) it's
1017
	   definitely faster. I guess because this new approach is more
1018
	   cache-friendly.
1019
1020
2008-01-03 Maarten ter Huurne <[email protected]>
1021
	* Removed execution of ~/.openMSX/share/init.tcl on openMSX startup.
1022
	  We have a "scripts" dir which can be used instead.
1023
	  This avoids an infinite loop if the user copies the openMSX internal
1024
	  version of "init.tcl" into the user dir.
1025
1026
2008-01-03 Wouter Vermaelen <[email protected]>
1027
	* Created 5 new commands:
1028
	     - create_machine   (returns machine ID)
1029
	     - delete_machine <machine-ID>
1030
	     - list_machines    (return list of machine IDs)
1031
	     - activate_machine <machine-ID>
1032
	     - <machine-ID>::load_machine <config-name>
1033
	  - These commands allow to implement the existing commands 'machine'
1034
	    and 'test_machine' as Tcl procs (not yet done).
1035
	  - This also allows to test extensions with the existing 'ext'
1036
	    command.
1037
	  - It also allows to have multiple running msx machine in memory,
1038
	    though ATM we always show the video/sound of the oldest machine.
1039
1040
2008-01-02 Wouter Vermaelen <[email protected]>
1041
	* Added DivModByConst and DivModBySame utility classes:
1042
	   - these allow to replace a 64-bit by 32-bit division or modulo
1043
	     operation by a multiplication/addition/shift. This helps if
1044
	     the divider is a constant, especially on CPUs without division
1045
	     instructions (like ARM)
1046
	* Always use 512kb flash for Manbow2 and MegaFlashRomScc mapper types:
1047
	   Flash RAM saving now works in 'Lotus F3'.
1048
1049
2008-01-01 Patrick van Arkel ([email protected])
1050
	* Added Original ROM tag to database and added tag handeling to
1051
	  RomInfo.cc.
1052
	* Changed list.php on http://romdb.vampier.net to include original
1053
	  release tags.
1054
1055
2007-12-31 Wouter Vermaelen <[email protected]>
1056
	* Fixes for videosource setting:
1057
	   - after switching machines, the list of allowed values could be
1058
	     wrong
1059
	   - doing 'unset videosource' crashed while MSX was not powered on
1060
1061
2007-12-26 Wouter Vermaelen <[email protected]>
1062
	* Restructured MemoryOps::memset implementation:
1063
	   should make it easier to also add non-x86 asm routines
1064
1065
2007-12-24 Wouter Vermaelen <[email protected]>
1066
	* Optimized sprite drawing in mode 2:
1067
	   I still like this code to be reviewed. I believe it's correct,
1068
	   but sprite mode 2 is tricky sometimes.
1069
	* Fixed error handling while parsing setting files
1070
1071
2007-12-19 Wouter Vermaelen <[email protected]>
1072
	* More YM2413 stuff:
1073
	   One of the previous optimizations triggered an assert, so I had
1074
	   to revert (part of) it. Now I reimplemented it in a correct way,
1075
	   it's even slightly faster than the previous implementation.
1076
	* Made some YM2413 methods ALWAYS_INLINE:
1077
	   Gcc already did this for x86, but not for ARM. And it is measurably
1078
	   faster (also on ARM) if they are inlined.
1079
1080
2007-12-17 Wouter Vermaelen <[email protected]>
1081
	* Send out an update event for newly created settings:
1082
	   - This way catapult is informed of value changes for
1083
	     destroyed/recreated setting (happens for some settings during a
1084
	     machine switch).
1085
1086
2007-12-16 Wouter Vermaelen <[email protected]>
1087
	* Refactored BooleanSetting:
1088
	   Don't inherit from EnumSetting<bool> anymore. This requires
1089
	   slightly more code but allows to better tune the code:
1090
	    - openmsx_info setting now returns 'boolean' (was 'enumeration')
1091
	    - querying the value now returns true/false (was on/false)
1092
	    - as a bonus the new implementation has less #include dependencies
1093
1094
2007-12-14 Wouter Vermaelen <[email protected]>
1095
	* More YM2413 optimizations:
1096
	   - swapped inner/outer loop, now generate all samples for a channel
1097
	     before moving on the next channel.
1098
	   - made a special case for channels without AM or FM modulation
1099
1100
2007-12-13 Wouter Vermaelen <[email protected]>
1101
	* More YM2413 optimizations:
1102
	   - only update noise value in rhythm mode
1103
	   - made Channel::global a function parameter iso a member variable
1104
	   - moved 'fnum' and 'block' from Slot to Channel, merge them into one
1105
	     new 'freq' variable
1106
	* General SoundDevice/MSXMixer optimization:
1107
	   - added SoundDevice::getAmplificationFactor(), this allows to move
1108
	     a multiplication (or shift) from the sounddevice to the mixer. In
1109
	     the mixer there already was a multiplication (for per device
1110
	     volume setting) so those two can be merged.
1111
1112
2007-12-12 Wouter Vermaelen <[email protected]>
1113
	* Various YM2413 optimizations:
1114
	   - made lfo_pm and lfo_am local variables iso member variables
1115
	   - we used to store the last two Slot output values, but actually
1116
	     one the last one was needed
1117
	   - inlined advance() and calcSample() methods, this allows the next
1118
	     two items:
1119
	   - calc_phase() and calc_envelope() are not required when channel is
1120
	     inactive (there is an exception for two rhythm channels)
1121
	   - moved calc_phase() and calc_envelope() into the different
1122
	     calc_slot_xxx() methods, this in turn enables the next two items
1123
	   - the egout member variable can become a local variable
1124
	   - rhythm channels don't use FM or AM, so we can use simpler
1125
	     calc_phase() and calc_envelope() variants
1126
	   - small simplifications, removed dead code
1127
	* Made keyboard event parsing (for event recorder/replayer) slightly
1128
	  more robust
1129
1130
2007-12-10 Alex Wulms
1131
	* Added unicode support to event recorder/replayer logic
1132
1133
2007-12-09 Aernold Metselaar <[email protected]>
1134
	* Fixed small bug in diskmanipulator:
1135
	  Extracted files timestamp had most signifiocant bit of minutes set
1136
	  to zero.
1137
1138
2007-12-09 David Heremans <[email protected]>
1139
	* Fixed small bug in diskmanipulator:
1140
	   Extracted files timestamp had an offset of one month.
1141
1142
2007-12-08 Wouter Vermaelen <[email protected]>
1143
	* Another YM2413 optimization:
1144
	   Before the Slot objects kept a pointer to a Patch object, possibly
1145
	   they can share the same Patch. One of the patches is used for the
1146
	   custom instrument, so this one can change.
1147
	   After this patch we keep the Patch object by value in Slot. A
1148
	   disadvantage is that if the custom instrument changes, we have to
1149
	   update it in every Slot that has this instrument selected (though
1150
	   we already had to check this for other reasons).
1151
	   This change removes one pointer indirection from frequently used
1152
	   code, in total I measured about 2% speedup.
1153
1154
2007-12-06 Wouter Vermaelen <[email protected]>
1155
	* Various optimizations in YM2413:
1156
	   Combined I could measure upto 10% speedup.
1157
1158
2007-12-05 Wouter Vermaelen <[email protected]>
1159
	* Optimized BitmapConverter::renderGraphic4() and renderGraphic6():
1160
	   Created a 16x16 table to lookup two pixels at once. This helps
1161
	   a little on 64-bit machines in 32bpp mode. On 32-bit I couldn't
1162
	   measure a difference (positive nor negative). It also helps on
1163
	   32-bit machines in 16bpp mode, as is the case for GP2X. There I
1164
	   could measure a clear speed gain.
1165
	* Greatly simplified ResampleLQ:
1166
	   New implementation can only do downsampling, but that's good
1167
	   enough, even when output freq is 48kHz.
1168
1169
2007-12-01 Maarten ter Huurne <[email protected]>
1170
	* Dropped support for GCC 3.3.
1171
	  This was triggered by link errors when using std::basic_string<unsigned>
1172
	  in the new keyboard mapping code. Working around this would require a
1173
	  large amount of extra code to be written, which is not worth it.
1174
1175
2007-12-01 Wouter Vermaelen <[email protected]>
1176
	* Fixed problem in BliBuffer:
1177
	   In some cases our mute-optimization kicked in too soon,
1178
	   (low frequency, low volume, short audio sync intervals triggers it
1179
	   more often). This was audible as low frequency, low volume noise.
1180
	* Previous changes in keyboard handling turned OPENMSX_FOCUS_EVENT and
1181
	  OPENMSX_BOOT_EVENT (also) into msx events, this is wrong.
1182
	  Event recording/replaying is still wrong because the logs don't
1183
	  contain unicode information. Need to discuss this with Alex. Maybe
1184
	  we need to log msx keyboard matrix info instead?
1185
1186
2007-11-25 Alex Wulms
1187
	* Initialized keyboard_type and has_keypad parameter in all
1188
	  hardwareconfig.xml file:
1189
	    Initial value of keyboard_type is derived from keyboard
1190
	    code at ROM BIOS address 0x2c.
1191
	    Initial value of has_keypad is guessed from MSX version via a
1192
	    simple heuristical rule; it is set to false for MSX1 and to
1193
	    true for MSX2 and higher.
1194
1195
2007-11-24 Manuel Bilderbeek <[email protected]>
1196
	* Added connector update events, to keep track of which connectors
1197
	  are available.
1198
1199
2007-11-23 Wouter Vermaelen <[email protected]>
1200
	* Removed EmuTime parameter from MSXDevice constructor (was not used).
1201
1202
2007-11-22 Wouter Vermaelen <[email protected]>
1203
	* Optimization in SpriteChecker::checkSprites1() and
1204
	  SpriteChecker::checkSprites2():
1205
	   Before we checked line-by-line which sprites are visible for that
1206
	   line. Now we check it for lines in a whole range at the same time.
1207
1208
2007-11-21 Alex Wulms
1209
	* Added docs/keyboard.readme:
1210
	   This document explains which new parameters have been
1211
	   introduced in hardwareconfig.xml and in settings.xml
1212
1213
2007-11-21 Wouter Vermaelen <[email protected]>
1214
	* Optimized MSXMixer::generate():
1215
	   see comments in that method for more details
1216
1217
2007-11-20 Wouter Vermaelen <[email protected]>
1218
	* Big optimization in AY8910::generateChannels():
1219
	   Because the PSG generates mostly square waves and because we
1220
	   emulate the PSG at a high frequency (224kHz), lots of consecutive
1221
	   output samples have the same value (typically 100 or more!). We
1222
	   used to emulate the PSG step-by-step, instead now we calculate the
1223
	   moment in time when the output will change and output with that
1224
	   many equal samples.
1225
	   Because of this change PSG emulation itself became 3x-4x faster. On
1226
	   total emulation time this is upto 10% faster.
1227
	   This change was actually done as a preparation to use BlipBuffer
1228
	   more directly in the PSG code (because BlipBuffer only needs to
1229
	   know about changes in the sample stream). But on it's own it was
1230
	   already a nice speedup. This also means there is still potential
1231
	   for another big speedup.
1232
1233
2007-11-19 Alex Wulms
1234
	* Removed conversion program (CVP) marker from russian keymap and
1235
	  removed few duplicate entries from spanish keymap
1236
1237
2007-11-18 Alex Wulms
1238
	* Fixed unicode map jp_jis, introduced jp_ansi, ru, es :
1239
	   - The unicode maps are now derived from the MSX key
1240
	     matrixes on the MAP. See following URL:
1241
	     http://map.tni.nl/articles/keymatrix.php
1242
	   - Updated harwareconfig.xml of Sony_HB-F9P_Russian and
1243
	     of Panasonic_FS-A1 to test maps ru and jp_ansi
1244
1245
2007-11-16 Wouter Vermaelen <[email protected]>
1246
	* Optimization in CPUClock:
1247
	   Before this change we had two member variables 'limit' and 'extra'.
1248
	   Now they are replaced by 'limit' and 'remaining'. The variable
1249
	   'limit' still has the same meaning, the variable 'remaining' is equal
1250
	   to the old 'limit - extra'. So the same information is represented
1251
	   in a slightly different way.  The advantage is that the expression
1252
	   'limit <= extra' now becomes 'remaining <= 0'. This is slightly
1253
	   faster but it's used in the innermost CPU loop.
1254
1255
2007-11-14 Alex Wulms
1256
	* Processed review comments of Wouter on Keyboard class
1257
	  and made several other small improvements
1258
1259
2007-11-14 Wouter Vermaelen <[email protected]>
1260
	* Optimized cacheline handling in CPUCore:
1261
	   - before it was used like this:
1262
	       const byte* line = readCacheLine[address >> 8];
1263
	       byte result = line[address & 0xFF];
1264
	     now it's like this:
1265
	       const byte* line = readCacheLine[address >> 8];
1266
	       byte result = line[address];
1267
	     So the cacheline doesn't store directly the address of the
1268
	     buffer, but the buffer minus (address & 0xFF00).
1269
1270
2007-11-13 Wouter Vermaelen <[email protected]>
1271
	* tiny speedup:
1272
	   Added non-virtual method RawFrame::getLinePtrDirect(), the base
1273
	   class already had a virtual method FrameSource::getLinePtr() that
1274
	   does the (on this level). In some places (like SDLRasterizer) we
1275
	   know we're working on a RawFrame, so using getLinePtrDirect is
1276
	   slightly faster.
1277
	   For consistency I also renamed the (non-virtual) method in
1278
	   OutputSurface to getLinePtrDirect().
1279
1280
2007-11-12 Wouter Vermaelen <[email protected]>
1281
	* Optimized ResampleBlip:
1282
	   This is not the blip algorithm itself, but the preprocess step that
1283
	   transforms a sequence of samples into a sequence of 'sample value
1284
	   changed' events.
1285
1286
2007-11-08 Wouter Vermaelen <[email protected]>
1287
	* In various places performed the following two optimizations:
1288
	  - Prefer to use int or unsigned int over shorter types (char,
1289
	    short). Results in both faster and shorter code (both on x86
1290
	    and ARM).
1291
	  - Prefer to use unsigned over signed types. Especially when the
1292
	    var is used in division or module operations (more important on
1293
	    ARM than on x86). But even a simple divide by 2 (or any power of
1294
	    2) is slower on signed types! This is because divide rounds
1295
	    toward zero, while a shift-right operation rounds down.
1296
1297
2007-11-07 Wouter Vermaelen <[email protected]>
1298
	* Added 'machine_info device [<devicename>]' info topic:
1299
	   - Allows to query the device type of a given devicename
1300
	   - Preparation to be able to query rom types
1301
	* Extended 'machine_info device' to also return the romtype (only
1302
	  for roms of course)
1303
1304
2007-11-06 David Heremans <[email protected]>
1305
	* DirAsDisk has a new sector cache format:
1306
	  - Forced little endianess of numbers in the cache.
1307
	  - Made sure that files are mapped on the same sectors.
1308
	  - Invalidate the cache if files have changed size
1309
	  - New files are added afterwards and do not conflict with the cache.
1310
1311
2007-11-06 Wouter Vermaelen <[email protected]>
1312
	* Fixed manbow2 mapper type:
1313
	   First 7 sectors (1 sector is a 64kb block) are write-protected,
1314
	   only the last sector is writable.
1315
	   Created a seperate mapper type 'MegaFlashRomScc' (existed already
1316
	   as an alias) which has the complete range writable.
1317
1318
2007-11-04 Alex Wulms
1319
	* Introduced unicode character handling in Keyboard class:
1320
	   - Before, SDL key-presses where mapped to MSX key-presses.
1321
	     Now, unicode characters get mapped to MSX key-combinations
1322
	     when SDL returns a unicode character. Otherwise, SDL key
1323
	     still gets mapped to MSX key
1324
1325
2007-11-03 Wouter Vermaelen <[email protected]>
1326
	* Optimized AY8910::generateChannels():
1327
	   Swapped inner/outer loop. Now the outer loop goes over all (=3)
1328
	   channels and the inner loop over the samples. We (potentially)
1329
	   duplicate the calculations for the 'shared resources' between the
1330
	   channels (envelope and noise), but the inner loops are much
1331
	   simpler. In the cases I measured there was a significant net gain:
1332
	   it only takes 60% of the original time.
1333
	* Additional AY8910::generateChannels() optimization:
1334
	   - Also use the 'silent channel' optimization for channels that use
1335
	     envelope volume and envelope has reached zero (and stays there).
1336
	   - Simplified the initial tests in generateChannels()
1337
1338
2007-11-02 Wouter Vermaelen <[email protected]>
1339
	* Optimized MSXCPUInterface::setPrimarySlot():
1340
	   more efficient way of updating the not-allowed-to-be-cached
1341
	   region information
1342
1343
2007-11-01 Wouter Vermaelen <[email protected]>
1344
	* Various CPUCore tweaks:
1345
	   - mostly to eliminate branches or to produce shorter code
1346
	   - I couldn't measure a speed difference, but the code is 2% shorter
1347
1348
2007-10-31 Wouter Vermaelen <[email protected]>
1349
	* Made normal and '_fast' variant of Clock::getTicksTill() and
1350
	  Clock::advance(). Use the _fast variant on places where speed is
1351
	  important and where it's safe to use.
1352
	  (Since 2007-10-03 we always used the fast variant, but occasionally
1353
	  that's wrong).
1354
1355
2007-10-28 David Heremans <[email protected]>
1356
	* DirAsDisk now only saves 'CACHED' type sectors and the
1357
	  final sector of 'MIXED' file caches in the '.sector.cache'
1358
	  when the disk is ejected.
1359
1360
2007-10-26 David Heremans <[email protected]>
1361
	* DirAsDisk now dedects new files on the Host OS
1362
1363
2007-10-24 David Heremans <[email protected]>
1364
	* Fixed DirAsDisk detecting moved/erased files on the Host OS
1365
1366
2007-10-24 David Heremans <[email protected]>
1367
	* Extended the DirAsDisk functionality:
1368
	   Due to popular demand....
1369
	   Got sync from MSX disk to Host OS correct for create,
1370
	   delete, rename, grow and shrinking of files.
1371
	   Tested with Philips NMS 8250 and FS A1-GT who both have a
1372
	   completely different approach/sequence to handling these actions.
1373
	   Still a lot to do and test but we are getting somewhere at least.
1374
1375
2007-10-23 Wouter Vermaelen <[email protected]>
1376
	* Fixed regression in SCC (introduced in 6430):
1377
	    update output after a freq register write
1378
1379
2007-10-21 Wouter Vermaelen <[email protected]>
1380
	* Fixed detail in SCC rotation mode:
1381
	   if deform bits 7-6 are 10, wave form 4 rotates at freq5 speed
1382
	   see: http://www.msx.org/forumtopicl7875.html
1383
1384
2007-10-15 Wouter Vermaelen <[email protected]>
1385
	* Initial version of Manbow2 mapper:
1386
	   this is work in progress, possibly the way the flash is saved
1387
	   will still change
1388
	* Added MegaFlashRomScc extension
1389
1390
2007-10-08 Manuel Bilderbeek <[email protected]>
1391
	* Added Sony HB-F1XDJ config, thanks to msxrestarter. Function and use
1392
	  of the big firmware ROM is not clear yet, but it should work, as it
1393
	  uses the Halnote mapper.
1394
1395
2007-10-03 Wouter Vermaelen <[email protected]>
1396
	* Optimized 64-bit divide-by 32-bit operations:
1397
	   - the x86 'divl' instruction already does a 64-bit by 32-bit
1398
	     division, though it generates a trap when the result does not
1399
	     fit in 32-bit. That's why it's not (directly) used by gcc.
1400
	     In certain (time critical) places in openmsx we know the result
1401
	     fits, so we can directly use this instruction.
1402
1403
2007-10-03 David Heremans <[email protected]>
1404
	* Extended the DiskManipulator:
1405
	   It is now possible to export a single file or subdir from the msx
1406
	   image
1407
1408
2007-09-29 Wouter Vermaelen <[email protected]>
1409
	* Fixed Halnote mapper, based on info from blueMSX
1410
1411
2007-09-19 Wouter Vermaelen <[email protected]>
1412
	* Fixed bug in stereo blip resampler:
1413
	   in case only one of the two channels was active, we left the other
1414
	   channel undefined (now we fill it with zeros)
1415
	* Fixed bug in CPU code (probably introduced by me on 2007-08-28):
1416
	   - limitReached() bookkeeping was wrong when the advanceTime()
1417
	     method was used. This only happens when switching between
1418
	     Z80/R800. Fixed now.
1419
	   - This new implementation is also faster. Before the CPU polled
1420
	     the scheduler for the earliest sync-point (after every IO and
1421
	     memory mapped access). Now the Scheduler pushes new sync-point
1422
	     data to the CPU.
1423
1424
2007-09-14 Wouter Vermaelen <[email protected]>
1425
	* Fixed TR status bit in V9990 (was inverted):
1426
	   - TR=1 means ready for transfer, thus V9990 is *not* ready to
1427
	     execute (part of) the command, it's waiting for data
1428
	   - Apparently most SW doesn't bother to check this bit (since
1429
	     the V9990 is fast enough). However Symbos does check it!
1430
	* Initial implementation of V9990 LMCM command:
1431
	   - maybe not correct yet, but certainly better than no
1432
	     implementation
1433
	* Fixed odd/even pixel problem in LMMC and LMCM commands
1434
1435
2007-09-13 Wouter Vermaelen <[email protected]>
1436
	* Mute individual PSG channels:
1437
	   - already speeds up the PSG code itself (though i only added code)
1438
	   - also enables speedups in the following stages of the audio flow
1439
	* In SoundDevice::mixChannels(), special case mixing of 0, 1, and
1440
	   odd or even number of channels, also unroll 2x
1441
	* Added SSE2 optimized version of SoundDevice::mixChannels()
1442
1443
2007-09-12 Wouter Vermaelen <[email protected]>
1444
	* Use resampler for SamplePlayer
1445
	* Process samples per 4 in SoundDevice::mixChannels()
1446
	    On itself this is already faster, but it also paves the way for
1447
	    future SSE2 optimizations.
1448
1449
2007-09-08 Wouter Vermaelen <[email protected]>
1450
	* Fixed harmless(?) UMR in Y8950Adpcm
1451
	* Don't take sqrt() of negative numbers (in case of rounding errors)
1452
	* Fixed crash while using breakpoints
1453
1454
2007-09-06 Wouter Vermaelen <[email protected]>
1455
	* SpriteChecker improvements:
1456
	   - get rid of expensive division in SpriteChecker fast-path
1457
	   - duplicate SpriteChecker::checkSprites2() for planar and
1458
	     non-planar modes
1459
1460
2007-09-06 Wouter Vermaelen <[email protected]>
1461
	* CPU code tweak:
1462
	   - slightly better signed overflow calculation
1463
	   - use RD_WORD_PC to read two consecutive opcode bytes
1464
1465
2007-09-05 Wouter Vermaelen <[email protected]>
1466
	* Big optimization in CPU code:
1467
	   - Before we used function-to-member-pointers, now we use
1468
	     function-pointers to static functions that take an explicit
1469
	     'this' argument. This doesn't look as nice, but gcc can
1470
	     generate faster code for it.
1471
	   - In the 'zexall' test with renderer=none speed improved from about
1472
	     106s to 85s on my system! In a 'Space Manbow' test (also with
1473
	     renderer=none) speed improved from 54s to 48s!
1474
1475
2007-08-30 Wouter Vermaelen <[email protected]>
1476
	* Optimized YM2413 and YM2413_2 idle mode:
1477
	    After profiling we found that even a completely idle YM2413 was
1478
	    at the top of a CPU profile (while running PSG games). The only
1479
	    thing the YM2413 was doing was updating the internal noise
1480
	    generator and AM/PM/evelope counters.
1481
	    Because this is so expensive we disable that after some idle
1482
	    time (for now 200ms). This means the noise sequence and AM/PM
1483
	    phase will not be exactly the same as on real HW when the music
1484
	    resumes, but that's most likely not audible.
1485
1486
2007-08-29 Maarten ter Huurne <[email protected]>
1487
	* Destruct File object before loading a file with IMG_Load from
1488
	  SDL_image. This should fix sharing violations on Windows.
1489
1490
2007-08-28 Wouter Vermaelen <[email protected]>
1491
	* Split CPUClock::setLimit() in inline/non-inline part:
1492
	    gives a nice speedup in IO-port intensive applications
1493
	* Tweaked calculation of current CPU time
1494
1495
2007-08-27 Maarten ter Huurne <[email protected]>
1496
	* Do not cache the result of native system detection.
1497
	  This makes it easy to use the same source tree on different systems,
1498
	  for example when the sources are on a network drive or if you do
1499
	  both 32-bit and 64-bit builds on an x86_64 system.
1500
1501
2007-08-27 Wouter Vermaelen <[email protected]>
1502
	* Created release branch for openMSX 0.6.3.
1503
	* Various optimizations in CPU:
1504
	   - wrote specialized (simpler) code for instructions like
1505
	        xor a / cp a / or a / add a,a / sbc hl,hl
1506
	   - split cpuTracePost in a small inlineable part and a non-inline
1507
	     rarely executed part
1508
	   - optimized time book-keeping in the read/write memory paths
1509
	* Small optimization in SDLRasterizer (+ cleanup):
1510
	   - don't render the same VRAM line twice in case of (single page)
1511
	     hardware horizontal scroll
1512
1513
2007-08-20 Wouter Vermaelen <[email protected]>
1514
	* Optimization in SDLRasterizer:
1515
	   - if possible directly render to destination (instead of to local
1516
	     buffer followed by memcpy)
1517
1518
2007-08-11 Wouter Vermaelen <[email protected]>
1519
	* Made diskmanipulator command also available on machines without
1520
	  disk drives
1521
1522
2007-08-07 Wouter Vermaelen <[email protected]>
1523
	* Added -nopbo command line option to disable use of
1524
	  OpenGL Pixel Buffer Objects
1525
1526
2007-08-07 Wouter Vermaelen <[email protected]>
1527
	* Show build flavour in the version string (not for release builds)
1528
	* Fixed crash on exit while removing an extension that created extra
1529
	  external slot(s) and occupied (some of) those itself.
1530
1531
2007-08-06 Wouter Vermaelen <[email protected]>
1532
	* Compiled with -Wpadded and changed the order of some members so that
1533
	  the enclosing struct/class requires less internal padding:
1534
	   - I did the same thing on 2007-04-24, however this time I'm
1535
	     compiling on x86_64, so pointers require 8 bytes (iso 4). There
1536
	     were also a few new classes that needed some shuffling.
1537
1538
2007-08-04 Wouter Vermaelen <[email protected]>
1539
	* Enable -Wold-style-cast warnings by default
1540
	  and fixed all warnings triggered by this
1541
	* In CPUCore only do unaligned memory accesses if we know
1542
	  the host CPU supports it
1543
1544
2007-08-01 Wouter Vermaelen <[email protected]>
1545
	* Added psg_profile Tcl script
1546
1547
2007-07-31 Wouter Vermaelen <[email protected]>
1548
	* Optimized cassetteplayer audio part, also use resampler
1549
1550
2007-07-30 Wouter Vermaelen <[email protected]>
1551
	* Some fixes in ESE_SCC
1552
1553
2007-07-29 Wouter Vermaelen <[email protected]>
1554
	* Commented out win32 specific sleep/timer code, it gives problems on
1555
	  dual core CPUs
1556
1557
2007-07-28 Wouter Vermaelen <[email protected]>
1558
	* Fixed [ 1622018 ] New persistant directories created for every
1559
	  run-time switch
1560
	* Use resampler for YMF278 (MoonSound wave part):
1561
	   also added a trivial resample mode for the case that input and
1562
	   output sample rate are the same (as will often be the case for
1563
	   YMF278, as its native freq is 44100Hz)
1564
1565
2007-07-27 Wouter Vermaelen <[email protected]>
1566
	* Disabled OpenGL SaI shader, see comments in GLScalerFactory
1567
1568
2007-07-26 Wouter Vermaelen <[email protected]>
1569
	* Fixed [ 1730148 ] config checker creates big HD images:
1570
	   image is now only create on first use (read/write), so
1571
	   not yet when the machine is instantiated (=config check)
1572
	* Added experimental PSG detune option, similar to PSG vibrato:
1573
	   - control with the PSG_detune_frequency and PSG_detune_percent
1574
	     settings
1575
	   - next step: experiment with the PSG detune/vibrato and hopefully
1576
	     remove one of the two again. Maybe also remove the
1577
	     PSG_*_frequency setting(s).
1578
1579
2007-07-21 Patrick van Arkel ([email protected])
1580
	* Updated to Version 2.1 of the cheat defenitions after
1581
	  adding a ton of new cheats provided by Mars2000you.
1582
1583
2007-07-16 Wouter Vermaelen <[email protected]>
1584
	* Added proper MSXDOS2 mapper type (before we used generic16kb):
1585
	   - implemented by BiFiMSX, I only fixed some bugs
1586
1587
2007-07-14 Wouter Vermaelen <[email protected]>
1588
	* Implemented 'Super Lode Runner' mapper:
1589
	   This mapper is special because it ignores the SLOT-SELECT signal;
1590
	   it reacts to writes to address 0x0000 in _any_ slot. This violates
1591
	   the MSX standard.
1592
	   For a long time we didn't implement this mapper because it would
1593
	   add a (small?) performance hit on all memory writes.
1594
	   However, now, since we implemented the watchpoint infrastructure,
1595
	   the mapper can be implemented without any performance impact (no
1596
	   performance impact if the mapper is not inserted).
1597
1598
2007-07-05 Maarten ter Huurne <[email protected]>
1599
	* Added vibrato effect for PSG.
1600
	  You can control it with the settings "PSG_vibrato_percent" and
1601
	  "PSG_vibrato_frequency". Good values are around 1.0% and 4.5Hz.
1602
	  By default "PSG_vibrato_percent" is 0, which turns off the effect.
1603
	  Thanks to Wolf for the idea and his feedback on experiments.
1604
1605
2007-07-02 Wouter Vermaelen <[email protected]>
1606
	* Use pimple idiom to move implementation details from hh to cc for
1607
	   YM2413 YM2413_2 YMF262 YMF278
1608
	* Fixed regression in YM2413_2 core:
1609
	   Was introduced in revision 6372. We used a 8.24 FixedPoint
1610
	   datatype, but this goes wrong because our FixedPoint types are
1611
	   signed. Solved by using much smaller resolution FixedPoint
1612
	   datatypes (this is even a simplification and a small speedup).
1613
1614
2007-06-30 Wouter Vermaelen <[email protected]>
1615
	* allow to use bindings on joysticks that are not plugged in (into the
1616
	  emulated MSX)
1617
1618
2007-06-27 Wouter Vermaelen <[email protected]>
1619
	* Created new directory 'utils' and moved several files into it
1620
1621
2007-06-26 Manuel Bilderbeek <[email protected]>
1622
	* Added Software and Creation Date info to AVI files.
1623
	* Added Creation Time info to PNG files (Software was already there).
1624
1625
2007-06-23 Wouter Vermaelen <[email protected]>
1626
	* Added experimental BlipBuffer support for DACSound based sound
1627
	  devices:
1628
	   - heavily based on
1629
	       http://slack.net/~ant/libs/audio.html#Blip_Buffer
1630
	* Added BlipBuffer based resampler:
1631
	   - Selectable via 'set resampler blip'
1632
	   - I'm not sure we want to keep this global or if we want to make
1633
	     this resampler default for specific devices. But for now it's an
1634
	     easy way to experiment
1635
1636
2007-06-19 Manuel Bilderbeek <[email protected]>
1637
	* Voice ROM of Keyboard Master is now also searched in ROM pools (sha1
1638
	  is hardcoded).
1639
1640
2007-06-11 Wouter Vermaelen <[email protected]>
1641
	* Fixed bug in SCC peek:
1642
	   - peek of deform register also triggered a reset of that
1643
	     register (like a regular read does)
1644
	* Implemented peekMem() for ESE_SCC / MSXSCCPlusCart
1645
	* Implemented read/write cache line stuff for ESE_SCC
1646
1647
2007-06-11 Wouter Vermaelen <[email protected]>
1648
	* Added (optimized) clipping routines in Math.hh and use them
1649
	  in several places:
1650
	   - idea for int->short clipping is taken from Blip_Buffer
1651
	       http://slack.net/~ant/libs/audio.html#Blip_Buffer
1652
1653
2007-06-09 Maarten ter Huurne <[email protected]>
1654
	* Use resampler for AY8910 (PSG).
1655
1656
2007-06-06 Manuel Bilderbeek <[email protected]>
1657
	* Added a dummy port of blueMSX's YM2148. TODO: actually fill in the
1658
	  code. It's harmless, so I checked it in to have a base for a real
1659
	  port.
1660
1661
2007-06-06 Wouter Vermaelen <[email protected]>
1662
	* Access all CPU registers via getter/setters:
1663
	   - as preparartion for performance experiments, this change on its
1664
	     own has very little impact on the generated code
1665
	* Alternative implementation for CPURegs:
1666
	   - see comments in the code for details
1667
	   - this version is a few percent faster for me
1668
1669
2007-06-05 Maarten ter Huurne <[email protected]>
1670
	* Added support for DESTDIR in the build system:
1671
	  If you run "make install DESTDIR=/some/path", all installation
1672
	  paths will have that prefix prepended to them.
1673
	  For example, the default location of the executable would become:
1674
	    /some/path/opt/openMSX/bin/openmsx
1675
1676
2007-06-04 Wouter Vermaelen <[email protected]>
1677
	* Another CPUCore optimization:
1678
	  - Made optimized 16-bit read/write routines. Originally this gave a
1679
	    slowdown, caused by gcc no longer inlining some bigger routines.
1680
	    After forcing gcc to inline the memory read/write functions, there
1681
	    was a huge speedup: upto 15% in a CPU only benchmark!! Forced
1682
	    inlining is responsible for the largest part of this speedup (very
1683
	    roughly 3/4 by always inline, 1/4 by new 16-bit routines).
1684
	* Experimental IM2 support for YamahaSfg05 (untested)
1685
1686
2007-06-03 Wouter Vermaelen <[email protected]>
1687
	* CPUCore optimization:
1688
	  - in RDMEM / WRMEM routines, keep cache line address in local
1689
	    variable instead of reading it twice from an array. Apparently gcc
1690
	    was not able to prove that array didn't change during a call to
1691
	    T::POST_MEM().
1692
	  - Gave more than 10% speedup here in a CPU only benchmark (zexall
1693
	    with frameskip=99)
1694
1695
2007-06-02 Wouter Vermaelen <[email protected]>
1696
	* Sound recording (seperate channels or combined) now always records
1697
	  to sound, irregardless of the 'mute' setting
1698
1699
2007-06-02 Albert Beevendorp
1700
	* Added Password Cartridge implementation.
1701
	  The value between the <password> tags in the hardwareconfig.xml
1702
	  may vary from 0x0000 to 0xffff. It's used by the BIOS to read the
1703
	  password from the cartridge if one is set. This implements feature
1704
	  request 1411507.
1705
1706
2007-06-01 Manuel Bilderbeek <[email protected]>
1707
	* Added an LS-120 SCSI device.
1708
	  - Mostly as demonstrator of a removable SCSI device.
1709
	  - Could be used to make a SCSICDROM easier to make.
1710
	  - Can also be used to determine common stuff between SCSI devices.
1711
	  - TODO: change 'lsX' commands to something better.
1712
	  - TODO: remove massive code duplication with SCSIHD/HDCommand.
1713
1714
2007-05-31 Manuel Bilderbeek <[email protected]>
1715
	* Removed all dead code from SCSIHD and attempted to move
1716
	  device-specific stuff inside the class. I'll try to make an
1717
	  LS-120 device soon, to demonstrate a removable device.
1718
	* Note that yesterday we also added ESE SCC and WAVE-SCSI. The latter
1719
	  doesn't seem to work properly, though.
1720
1721
2007-05-28 Manuel Bilderbeek <[email protected]>
1722
	* Added initial MEGA-SCSI emulation.
1723
	  It's not working completely OK yet... Please help debugging :)
1724
	  (Thanks a lot to Wouter and Albert for their help.)
1725
	* It seems to work after all: make sure to do a physical format of the
1726
	  disk first (using SFORM-2.COM).
1727
	* Lots of cleanups, also by Wouter.
1728
	* Added ESE Ramdisk (a.k.a. ESE RAM). This is MEGA-SCSI without SCSI.
1729
1730
2007-05-26 Manuel Bilderbeek <[email protected]>
1731
	* Created common superclass for SCSIHD and IDEHD called... HD.
1732
	  This makes it possible to let HDCommand work with any kind of HD.
1733
	  Now you can use the hdx commands also for SCSIHD's.
1734
	  Note: (off-topic) diskmanipulator can't handle corrupt disks.
1735
	  Note 2: diskmanipulator doesn't support the partition table formats
1736
	  used on SCSI harddisks yet. So, until then, SCSI devices cannot be
1737
	  used from diskmanipulator.
1738
	  Note 3: implementation of HD class could be cleaner... (it's using a
1739
	  protected member "file" now...)
1740
1741
2007-05-24 Manuel Bilderbeek <[email protected]>
1742
	* Read initial size and file name from config XML and create disk
1743
	  image in the persistent directory.
1744
	* GoudaSCSI is now usable!
1745
	* Implemented LED events for SCSIHD.
1746
1747
2007-05-23 Manuel Bilderbeek <[email protected]>
1748
	* (GoudaSCSI is basically working, yay! But please do not use it yet.)
1749
	* Introduced abstract base class for SCSIDevices and added
1750
	  DummySCSIDevice (and made use of it).
1751
1752
2007-05-21 Manuel Bilderbeek <[email protected]>
1753
	* Added initial GoudaSCSI support, ported from blueMSX.
1754
	  NOTE: DO NOT USE YET!
1755
	  This is very much WIP! It's not working yet and contains lots of
1756
	  shortcuts and hardcoded stuff. So, again: don't use it. But please
1757
	  help improve it! :) (You are warned!)
1758
1759
2007-05-19 Wouter Vermaelen <[email protected]>
1760
	* Removed old (unoptimized) implementation of the high-quality
1761
	  resampler: sound quality is the same
1762
1763
2007-05-18 Wouter Vermaelen <[email protected]>
1764
	* Added fast/low-quality resample algorithm
1765
	* Added 'resample' setting with possible values 'fast' and 'hq' to
1766
	  switch between the different resample algorithm
1767
1768
2007-05-17 Wouter Vermaelen <[email protected]>
1769
	* Moved int<->float conversion from sounddevices to Resampler:
1770
	   - preparation for fast/low-quality resampler
1771
1772
2007-05-14 Wouter Vermaelen <[email protected]>
1773
	* Share resample coeff table between Resample instances with the same
1774
	  resample ratio
1775
1776
2007-05-12 Wouter Vermaelen <[email protected]>
1777
	* Additional speedup for the Resampler:
1778
	   - unrolled the loop (+ break dependencies)
1779
	   - added SSE optimized routine (mono only for the moment)
1780
	   - also added SSE optimized stereo resampler
1781
	* Fixed memset4_2_MMX():
1782
	   - we used to pass a pointer to a struct on the stack, but
1783
	     newer gcc versions optimize this struct away
1784
1785
2007-05-11 Wouter Vermaelen <[email protected]>
1786
	* Experimental speedup for the Resampler:
1787
	   - code is very quick-and-dirty
1788
	   - still contains both old and new implementation to make
1789
	     sound quality comparison between the two possible
1790
1791
2007-05-10 Wouter Vermaelen <[email protected]>
1792
	* Use 'SCC' instead of rom-name as name for the SCC sounddevice
1793
1794
2007-05-09 Wouter Vermaelen <[email protected]>
1795
	* Optimized Resampler a bit:
1796
	   - used 'x - trunc(x)' instead of 'fmod(x, 1.0)'
1797
	   - but it's not used in the innermost loop so the speed gain is not
1798
	     that big (it is measurable though)
1799
1800
2007-05-08 Wouter Vermaelen <[email protected]>
1801
	* Added SSE2 optimized noise routine in FBPostProcessor
1802
	* Restored parsing of the <volume> and <mode> tags in the
1803
	  soundsection of hardwareconfig files. There can also
1804
	  be a <balance> tag now (that overrules <mode>)
1805
	* Removed volume handling from sounddevice code:
1806
	   - it's now handled (together with balance) inside MSXMixer
1807
1808
2007-05-07 Wouter Vermaelen <[email protected]>
1809
	* Removed <sounddevice>_mode setting:
1810
	   - will be replaced by a balance setting soon
1811
	   - TODO what about backwards compatibilty?
1812
	* Added <sounddevice>_balance setting
1813
1814
2007-05-04 Wouter Vermaelen <[email protected]>
1815
	* Added support for SSE2 in HostCPU
1816
	* Added SSE2 optimized routine in ScanLine class
1817
1818
2007-05-01 Wouter Vermaelen <[email protected]>
1819
	* Reworked internal sounddevice mute code:
1820
	   - As an optimization is was possible for a sounddevice to indicate
1821
	     that it won't produce sound in it's current state. In that case
1822
	     the mixer wouldn't bother to call the updateBuffer() method
1823
	     for such devices.
1824
	     It was also already possible for a sounddevice to indicate that
1825
	     a specific channel is completely silent.
1826
	     Now these two approaches are unified: sounddevice should only
1827
	     inidicate which individual channels are muted. If all of the
1828
	     channels are muted, the rest of the sound code detects this and
1829
	     the same optimization as before happens.
1830
	     In this new approach the updateBuffer() is called in any case,
1831
	     so it's now possible to both correctly update internal state and
1832
	     benefit from the muted optimization.
1833
	   - The glitches that happened after unmute on resampled devices are
1834
	     now gone. But that because muting is effectively disabled for
1835
	     these devices for now. Although this new approach does make it
1836
	     possible to solve it and have the mute optimization. It's just
1837
	     not implemeted yet.
1838
1839
2007-04-30 Maarten ter Huurne <[email protected]>
1840
	* Fixed MSX reading from SCC: frequency and volume block is write-only.
1841
	* Fixed SCC reset behaviour: only deform and channel enable are changed.
1842
1843
2007-04-24 Wouter Vermaelen <[email protected]>
1844
	* Compiled with -Wpadded and fixed some of the warnings:
1845
	   - only fixed the cases that were solvable by rearranging the
1846
	     order of the fields locally in one class
1847
	* Fixed cassette input bit (PSG R#14 bit 7) on turboR (thanks BiFiMSX)
1848
1849
2007-04-23 Wouter Vermaelen <[email protected]>
1850
	* Extended mute_channel related procs:
1851
	    - mute_channels without any arguments lists which channels are
1852
	      currently muted
1853
	    - unmute_channels without arguments now unmutes all channels
1854
	    - new command 'solo' mutes everything except for the specified
1855
	      channels
1856
	* Small optimization in SDLGL-PP simple scaler:
1857
	   - pack several scalar uniform variables in one uniform vector
1858
	     variable. Removes one MOV instruction from the compiled fragment
1859
	     shader.
1860
1861
2007-04-21 Wouter Vermaelen <[email protected]>
1862
	* Recording/muting of individual sound device channels works:
1863
	   - it's still quick-and-dirty, but i wanted to have something
1864
	     working soon
1865
	   - use either via the <sounddevice>_ch<n>_record and
1866
	                        <sounddevice>_ch<n>_mute settings
1867
	     or via the record_channels Tcl script (no mute yet)
1868
	     examples:   record_channels PSG
1869
	                 record_channels SCC 1,3-5
1870
	                 record_channels stop
1871
	                 record_channels stop PSG 2
1872
	                 record_channels list
1873
	   - TODO: documentation
1874
	           make recording stutterless
1875
	           record silence when complete sounddevice is muted
1876
	              (muted manually or implicitly by the device itself)
1877
	* Improved channel recording:
1878
	   - Channel recording is now also stutterless.
1879
	   - Recording continues when sounddevice is internally muted.
1880
	     Unfortunately explicitly muting the device doesn't work now
1881
	     anymore when some channels of the device are beiing recorded.
1882
	     Fixing this requires some more work.
1883
	* Added tabcompletion + help for the record_channels script
1884
	* Extended script with (un)mute_channels procs
1885
1886
2007-04-19 Wouter Vermaelen <[email protected]>
1887
	* Converted sounddevices to generate output as seperate channels:
1888
	   - This is very much work in progress. There is no code yet to
1889
	     take advantage of this split. The code in the converted
1890
	     sounddevices should still be cleaned-up and optimized.
1891
	* Refactored SoundDevice and ChannelMixer:
1892
	   - merged SoundDevice and ChannelMixer classes
1893
	   - made SoundDevice aware of input and output sample rates
1894
	   - added methods in SoundDevice to record and mute individual
1895
	     channels. Next step is to actually use these methods.
1896
1897
2007-04-18 Joost Yervante Damad <[email protected]>
1898
	* fix build with gcc snapshot 20070326
1899
1900
2007-04-16 Wouter Vermaelen <[email protected]>
1901
	* Implemented SDLGL-PP RGBTriplet scaler
1902
	* Implemented SDLGL-PP SaI scaler:
1903
	    This algorithm is not well suited for a HW implementation (it
1904
	    has a lot of branches). So this scaler will probably run a bit
1905
	    slower than the other HW scalers.
1906
1907
2007-04-15 Manuel Bilderbeek <[email protected]>
1908
	* Added emulation of Yamaha YM2151 and partly the Yamaha SFG-05
1909
	  sound module. For the latter, I included the config of the Yamaha
1910
	  CX5MII/128. TODO: MIDI and keyboard, so only few software titles
1911
	  for it work. Thanks to Daniel Vik for his support! The code is
1912
	  taken from blueMSX and MAME.
1913
	* Added emulation of the VLM5030 sound device, which is used in the
1914
	  unreleased Konami game Keyboard Master. For now, the sample ROM
1915
	  should be located in share/keyboardmaster with the name voice.rom.
1916
	  Thanks to Daniel Vik for his support. Also here, the code is
1917
	  taken from blueMSX and MAME.
1918
1919
2007-04-15 Wouter Vermaelen <[email protected]>
1920
	* Extended resampler class for stereo devices
1921
	* Speedup SDLGL-PP simple scaler
1922
	* Use (stereo) resampler for YMF262 (FM-part of OPL4)
1923
	* Use resampler for (both) YM2413 cores (MSX-MUSIC)
1924
	* Use resampler for Y8950 (MSX-AUDIO)
1925
1926
2007-04-15 Maarten ter Huurne <[email protected]>
1927
	* Released openmsx-0.6.2.
1928
1929
2007-04-12 Manuel Bilderbeek <[email protected]>
1930
	* Fix for MSX1 VDP's: on these VDP's the VRAM pointer is always
1931
	  updated when writing to the VDP registers. Fixes some MSX1 demos
1932
	  like Planet of the Epas.
1933
1934
2007-03-23 Manuel Bilderbeek <[email protected]>
1935
	* Integrated David's new commands.html into the manuals. Thanks for
1936
	  converting it!
1937
	* Removed commands.txt and references to it.
1938
	* Get rid of in-manual revision history.
1939
1940
2007-03-22 Maarten ter Huurne <[email protected]>
1941
	* Universal binary support for Mac OS X:
1942
	    make staticbindist OPENMSX_TARGET_CPU=univ
1943
	  There are probably still some issues left, but the infrastructure for
1944
	  building universal binaries is now complete.
1945
	  Thanks a lot to BouKiCHi for providing the scripts on which this
1946
	  universal binary support is based.
1947
1948
2007-03-15 Manuel Bilderbeek <[email protected]>
1949
	* Added Al-Alamiah AX170 (prevously added Yamaha AX350II).
1950
	  - NOTE: it is not certain if these configs are correct and I have
1951
	    not been able to verify the ROM dumps. They are added only to have
1952
	    some working Arabic machines, do not use them for compatibility
1953
	    testing or something. (Have fun!)
1954
1955
2007-03-03 Wouter Vermaelen <[email protected]>
1956
	* Force a FormFeed when a printer is unplugged
1957
	* Better algorithm to calculate framerate for avi recording:
1958
	   - measure time between two recorded frames instead of two frames
1959
	     from before recording started.
1960
	   - old method could go wrong when minframeskip != maxframeskip
1961
1962
2007-02-28 Manuel Bilderbeek <[email protected]>
1963
	* Fixed a bug in the tabCompletion of the enable command.
1964
	* Added a small help for the enable command, pointing to a new
1965
	  documentation file: doc/openmsx-control-xml.txt. This text explains
1966
	  the protocol used for external communication (CliComm).
1967
	* Removed deprecated update types (deprecated in openMSX 0.6.1, but they
1968
	  were not used by any external application we know about): break and
1969
	  resume.
1970
1971
2007-02-24 Wouter Vermaelen <[email protected]>
1972
	* Fixed(?) data corruption when using 'diskmanipulator import':
1973
	   - I had no idea were in the code the bug was, so i started
1974
	     doing clanups/simplifications till I understood the code
1975
	     again and found the bug.
1976
	   - Turned out the dirty status of the FAT chache was not set
1977
	     correctly by the writeFAT() method.
1978
	   - Another bug happened when a there is not enough free space
1979
	     left on the disk to completely import a file: the file was
1980
	     imported as far as ossible, the FAT was updated, but not the
1981
	     directory entry.
1982
1983
2007-02-20 Wouter Vermaelen <[email protected]>
1984
	* Fixed hang in altparty demo:
1985
	   - Demo polls FH bit in VDP status reg S#1. but when line interrupt
1986
	     register has value 229 this went wrong. Reason is that for this
1987
	     line the duration of FH=1 is partly in the current and partly in
1988
	     the next frame. Old implementation only set FH=1 in the current
1989
	     frame.
1990
1991
2007-02-19 Wouter Vermaelen <[email protected]>
1992
	* Fixed SDLGL-PP simple scaler factor=1 deinterlace mode:
1993
	   - in the previous implementation this caused a (floating-point)
1994
	     division by zero. This could give strange results.
1995
	   - Now we disable scanlines when there are more lines in the input
1996
	     than in the output. This is also how it works in the SDL renderer
1997
	* Fixed bug in switching between Z80/R800:
1998
	   - switching _very_ fast (by OTIR) between Z80/R800 triggered an
1999
	     assert that time goes backwards!
2000
	   - problem was that we record the switch time at the moment the OUT
2001
	     is executed and then still finish the rest of the instruction. So
2002
	     there is a slight moment in emutime that both CPUs are executing.
2003
	   - solved by only switching between two instructions
2004
2005
2007-02-12 Wouter Vermaelen <[email protected]>
2006
	* Fixed assert on exit when a (real) joystick was still plugged
2007
	* Small Z80 fixes:
2008
	   - timing of LD DP,{HL,IX,IY} was two cycles too short
2009
	   - number of M-cycles (and thus also timing) of instructions with
2010
	     multiple prefixes (like DD CB xx xx or DD DD DD xx) was wrong
2011
	   - off by one error in high part of 16-bit port number in
2012
	     ini/ind/outi/outd instructions (complete bc register is put on
2013
	     the address bus) b register was decremented too soon or too late
2014
2015
2007-02-12 Wouter Vermaelen <[email protected]>
2016
	* No longer include playball samples as data in the source code:
2017
	   - instead read them as 15 wav files in
2018
	       share/playball/playball_0.wav
2019
	       ...
2020
	       share/playball/playball_14.wav
2021
2022
2007-02-11 Wouter Vermaelen <[email protected]>
2023
	* Set version=0.6.2-pre1, release_flag=true
2024
2025
2007-02-08 Wouter Vermaelen <[email protected]>
2026
	* Implemented proper resample algorithm for SCC:
2027
	   - does not introduce aliassing (graph+9 in solid snake sound test
2028
	     works properly now)
2029
	   - because there is no seperate filter anymore, those filter
2030
	     characteristics based on Sean's measurements are gone.
2031
	     Need to investigate this, because it was not clear whether this
2032
	     extra filter improved sound quality
2033
2034
2007-02-05 Wouter Vermaelen <[email protected]>
2035
	* SCC filter fixes:
2036
	   - wasn't correct when there were multiple SCC cartridges
2037
	   - replaced FIR filter with a cheaper one that also matches Sean's
2038
	     measurements
2039
	   - it's still not alias free, but fixing this requires a whole new
2040
	     approach
2041
	* Added interruptable sleep() method in EventDistributor:
2042
	   - sleeps for a given amount of time or till a event gets posted
2043
	   - used in the Reactor mainloop (e.g. when emulation is
2044
	     paused/breaked). Should improve response time in the debugger
2045
2046
2007-02-02 Wouter Vermaelen <[email protected]>
2047
	* Allow case insensitive tabcomplition in Tcl scripts:
2048
	   - requires a make install
2049
	   - changed newtrainers.tcl and cpuregs.tcl scripts to use this,
2050
	     maybe it's useful for others as well
2051
2052
2007-01-30 Wouter Vermaelen <[email protected]>
2053
	* Replaced filter in SCC code:
2054
	   - used 4x oversampling + low pass FIR filter
2055
	   - still WIP
2056
2057
2007-01-30 Manuel Bilderbeek <[email protected]>
2058
	* Added Sony HBD-50 disk drive extension (with proper FDC mirroring)
2059
2060
2007-01-27 Wouter Vermaelen <[email protected]>
2061
	* Fixed mirroring of FDC registers in NMS 8250/8255/8280:
2062
	   FDC registers are mirrored in all 4 pages, rom only in page 1
2063
	* Added comment in NMS 8245 config:
2064
	   FDC registers are mirrored in page 1/2, rom only in page 1
2065
	   It was already implemented like this
2066
2067
2007-01-28 Manuel Bilderbeek <[email protected]>
2068
	* Implemented mirroring of subROM in all pages on Philips NMS 8250
2069
	  (and derivatives)... TODO: find out which other machines have this.
2070
2071
2007-01-27 Wouter Vermaelen <[email protected]>
2072
	* Removed enum setting info topics:
2073
	   code was already commented out (see 2006-11-04)
2074
2075
2007-01-26 Wouter Vermaelen <[email protected]>
2076
	* Make FilePool return a File object iso a filename:
2077
	   - (g)zipped files won't be decompressed twice this way
2078
2079
2007-01-24 Wouter Vermaelen <[email protected]>
2080
	* Added FrameBufferObject utility class:
2081
	   - was part of an experiment to implement a fully shader based
2082
	     hq(lite) scaler (current one is still partly done by CPU). This
2083
	     needs some more work, but the FrameBufferObject part is already
2084
	     useable.
2085
2086
2007-01-23 Wouter Vermaelen <[email protected]>
2087
	* Fixed bug in SCC:
2088
	   volume of 5th SCC channel could be wrong right after waveform was
2089
	   updated (e.g. audible in Quarth)
2090
2091
2007-01-19 Wouter Vermaelen <[email protected]>
2092
	* Fixed PSG noise frequency
2093
2094
2007-01-16  Arnold Metselaar  <[email protected]>
2095
	* Print warning if bit 0 of VDP register 9 is set to one; on a
2096
	  real MSX2 this causes the screen to go black and the computer to
2097
	  freeze.
2098
	   - closes [ 1354347 ].
2099
2100
2007-01-13 Wouter Vermaelen <[email protected]>
2101
	* Synchronized TC8566AF code with blueMSX version:
2102
	   - seems to fix [ 1630933 ] "Formatting on turboR goes wrong when
2103
	     not booting with a disk".
2104
2105
2007-01-11 Wouter Vermaelen <[email protected]>
2106
	* Reimplemented 'soundlog' command as a Tcl script
2107
2108
2007-01-10 Wouter Vermaelen <[email protected]>
2109
	* Extended the record command to optionally record only audio or video:
2110
	   - 'record start' accepts two new flags: -noaudio and -novideo
2111
	   - the soundlog command is obsolete now
2112
2113
2007-01-09 Wouter Vermaelen <[email protected]>
2114
	* Improved 'record' command:
2115
	   - syntax is very similar to the 'soundlog' command,
2116
	     see 'help record'
2117
	   - in the future the record and soundlog command might be merged,
2118
	     with an option to select recording audio/video/both
2119
	* Implemented gfx9000 video recording:
2120
	   - active videosource ('videosource' setting) now gets recorded
2121
2122
2007-01-08 Wouter Vermaelen <[email protected]>
2123
	* Avi recording fixes:
2124
	   - no longer require that V9938 has the exact name "VDP" in machine
2125
	     hardwareconfig.xml file
2126
	   - print warning when a change in framerate/samplerate is detected
2127
	     during recording
2128
	   - fixed bug in conversion routine while recording in 16bpp mode
2129
	   - during recording frameskip is kept constant at minframeskip, thus
2130
	     for example with minframeskip=1 you can record movies with
2131
	     25/30fps instead of the usual 50/60fps
2132
2133
2007-01-05 Wouter Vermaelen <[email protected]>
2134
	* Implemented experimental video recording:
2135
	   - still very much work in progress, but for simple cases it should
2136
	     already work
2137
	   - user interface is still VERY primitive: the 'record' command
2138
	     starts recording to 'test.avi' and only stops when openmsx is
2139
	     exited
2140
	   - changing between PAL/NTSC during recording doesn't work yet
2141
	   - changing sound sample freq during recording doesn't work yet
2142
	   - recording is not possible (yet?) with SDLGL renderer
2143
	   - generated avi file uses the ZMBV codec (same as used in dosbox)
2144
	     this codec is well suited for video-game like gfx and allows
2145
	     real-time encoding on not too old machines. On my 3-year old
2146
	     system i can do real-time recording of simple games, but I can't
2147
	     record sphere in real-time (due to moonsound emulation??)
2148
	   - the ZMBV codec is not very common. In mplayer (linux/windows)
2149
	     can handle it, VLC version 0.8.6 not yet (development version
2150
	     can). For windows you need to install zmbv.dll, but note that
2151
	     there is a faulty zmbv.dll that can only play 8bpp (openMSX
2152
	     movies are 16bpp or 32bpp).
2153
	   - doesn't play well with frameskip yet, as a temporary workaround
2154
	     you can set maxframekip=0 for now
2155
2156
2007-01-05 Wouter Vermaelen <[email protected]>
2157
	* Use PBO for faster texture upload in GLPostProcessor:
2158
	   - depending on the system this is only a small (1%) or a big (10%)
2159
	     speedup
2160
	   - when PBOs are not supported we still use the old code
2161
2162
2006-12-30 Wouter Vermaelen <[email protected]>
2163
	* Use Pixel Buffer Objects (PBO) for faster texture upload in
2164
	  GLHQScaler and GLHQLiteScaler:
2165
	   - 'Space Manbow'-test is about 10% faster here, using hqlite2x
2166
2167
2006-12-29 Wouter Vermaelen <[email protected]>
2168
	* Various VDPCmdEngine related optimizations:
2169
	   - in VDPVRAM: only track time in DEBUG mode
2170
	                 no need to notify bitmapCacheWindow and nameTable
2171
	     in VDPCmdEngine: use Clock::fastAdd
2172
	   - between 2% and 3% faster in vdp-copy-intensive MSX software (I
2173
	     tested Space Manbow intro demo)
2174
2175
2006-12-27 Wouter Vermaelen <[email protected]>
2176
	* Optimized inner CPU emulation loop:
2177
	   - there were 3 tests per instruction, reduced that to just 1
2178
	   - total emulation is about 3% faster in Space Manbow test
2179
2180
2006-12-23 Wouter Vermaelen <[email protected]>
2181
	* Try to upload larger texture blocks at once in GLPostProcessor (was
2182
	  one line at a time):
2183
	   - I measured upto 15% speedup (scale_algo=simple scale_factor=2)
2184
	* Use array arithmetic iso pointer arithmetic in BitmapConverter:
2185
	   - can be better optimized by gcc (and compilers in general)
2186
	   - though, impact on total emulation time is not that big. I
2187
	     measured about 1% speedup
2188
2189
2006-12-22 Wouter Vermaelen <[email protected]>
2190
	* Removed charDisplayCache and bitmapDisplayCache from SDLRasterizer:
2191
	   - I measured around 5% speedup in screen5,
2192
	     around 20%(!) in screen0/80
2193
	* Make TC8566AF use the correct filler byte during format:
2194
	   fix copied from blueMSX
2195
2196
2006-12-18 Wouter Vermaelen <[email protected]>
2197
	* The -Wparentheses warning is now also enabled in c++ mode in recent
2198
	  gcc versions (4.3 SVN version). This for example warns when
2199
	  parentheses are omitted in places were people often are mistaken
2200
	  about operator precedence. And guess what .. openMSX got it wrong in
2201
	  a couple of places. In other places I just added extra parentheses
2202
	  to silence the warnings.
2203
2204
2006-12-17 Wouter Vermaelen <[email protected]>
2205
	* VDP code cleanup:
2206
	   Changed users of VDPVRAM::readArea() and VDPVRAM::readAreaIndex()
2207
	   to use VDPVRAM::getReadArea(). This method is safer to use, it also
2208
	   simplifies the code a bit (IMHO).
2209
2210
2006-12-16 Wouter Vermaelen <[email protected]>
2211
	* Fixed VDP bug introduced at 2006-11-18, s#0 was completely cleared
2212
	  upon read, only bit 7 must be cleared:
2213
	   - fixes VDP detection in sudoku.rom
2214
	* Added intro text in openMSX console
2215
	* Removed dirty checks from CharacterConverter
2216
	* Added VDPVRAM::getReadArea() and use it to optimize
2217
	  CharacterConverter
2218
	* Optimized CharacterConverter::renderText2:
2219
	   see comments in code
2220
2221
2006-12-14 Wouter Vermaelen <[email protected]>
2222
	* Refactored sound code:
2223
	   _ Should only affect SDL sound driver
2224
	   - Never generate samples from the audio thread:
2225
	     In case of buffer-underrun we used to still generate the missing
2226
	     samples from the audio thread. This helped sound quality a
2227
	     little bit when CPU usage is very irregular. Unfortunately
2228
	     this also introduces a lot of threading problems (race
2229
	     conditions). So removed this completely, it also simplifies the
2230
	     code quite a bit.
2231
	   - Fixed a potential out-of-boundary buffer access.
2232
	   - Fixed bug in sound-genration-timing to real-time tuning algorithm.
2233
	     On some systems this caused a floating point exception.
2234
2235
2006-12-11  Arnold Metselaar  <[email protected]>
2236
	* src/sound/SDLSoundDriver.cc: ensure the left argument to % is
2237
	  positive, fixes distorted sound and floating point exceptions.
2238
2239
2006-12-11 Wouter Vermaelen <[email protected]>
2240
	* Implmented end-of-tape detection:
2241
	   - was implemented by Manuel, I only fixed a remaining bug
2242
	   - when end of tape is reached, the CassettePlayer goes to STOP
2243
	     state
2244
	   - main motivation for this feature is to avaod staying in 'full
2245
	     throttle' mode after loading (in cases were the cassette motor is
2246
	     not automatically stopped)
2247
	* Fixed crash related to proxy settings and machine switching:
2248
	   - e.g. 'openmsx_info setting <setting>' would still use the setting
2249
	     object that belonged to the destroyed machine
2250
2251
2006-12-09 Wouter Vermaelen <[email protected]>
2252
	* Fixed explicit (global) namespace qualification on proxy settings:
2253
	   - proxy setting here means a machine specific setting that's
2254
	     for convenience mirrored in the global namespace
2255
	   - the toggle/cycle commands triggered this problem
2256
2257
2006-11-29 Wouter Vermaelen <[email protected]>
2258
	* Changed memset and memset2 from functions into functors:
2259
	   - Compilation was broken recently on system were GLuint !=
2260
	     unsigned. To fix this we need template specialization. But
2261
	     templatized functions cannot be specialized.
2262
2263
2006-11-28 Wouter Vermaelen <[email protected]>
2264
	* Split Cassetteplayer in Cassetteplayer and CassetteplayerCLI
2265
2266
2006-11-27 Wouter Vermaelen <[email protected]>
2267
	* Fixed auto-run-cas-file:
2268
	   - type command got executed twice when a cas file was inserted via
2269
	     the commandline. Could also happen when two cas insert commands
2270
	     were given when openmsx is paused.
2271
2272
2006-11-25 Wouter Vermaelen <[email protected]>
2273
	* SDLGL-PP renderer speedup:
2274
	   - Upload textures in BGRA format (was RGBA). See this paper:
2275
	       http://download.nvidia.com/developer/Papers/2005/Fast_Texture_Transfers/Fast_Texture_Transfers.pdf
2276
	     On nvidia cards this is faster, most likely on ATI cards as well
2277
	   - I measured between 3% and 5% speedup (total simulation time)
2278
2279
2006-11-22 Manuel Bilderbeek <[email protected]>
2280
	* Added Philips NMS 801 "MSX Compatible". Thanks to the blueMSX team.
2281
2282
2006-11-22 Wouter Vermaelen <[email protected]>
2283
	* Another SDLGL-PP hqlite optimization, OpenGL shader part this time:
2284
	   - Before this change we sampled the color texture three times (to
2285
	     get texels C4, C5 and C6) and blended these these three colors
2286
	     each with a certain weight. The weight for the outer two pixels
2287
	     is never non-zero for both at the same time. So we can as well
2288
	     sample the color texture only once and make use of the HW texture
2289
	     color interpolation.
2290
2291
2006-11-20 Wouter Vermaelen <[email protected]>
2292
	* Added missing line width conversions in FrameSource:
2293
	   - fixes crash in Gfx9000 parts of calculus with SDLGL-PP renderer
2294
	* Use optimized memset function in V99990P{1,2}Convertor:
2295
	   - only a little faster though
2296
2297
2006-11-19 Manuel Bilderbeek <[email protected]>
2298
	* Print originality status for ROM dumps in the database.
2299
	  Rationale: see e-mail on openmsx-devel of today.
2300
2301
2006-11-18 Wouter Vermaelen <[email protected]>
2302
	* fixed [1188517] Dragon Quest II intro logo corrupted:
2303
	   - We had this comment in our code
2304
	         According to TMS9918.pdf 5th [or 9th] sprite detection
2305
	         is only active when F flag is zero.
2306
	     but there was a bug in the actual implementation.
2307
	     Dragon Quest 2 needs this.
2308
	   - Bug was caused by splitting storage of VDP status register 0
2309
	     over VDP and SpriteChecker class. Now S#0 is stored in VDP and
2310
	     SpriteChecker uses get/set methods to access the sprite related
2311
	     bits.
2312
2313
2006-11-16 Wouter Vermaelen <[email protected]>
2314
	* Speedup SDLGL-PP simple scaler:
2315
	   - taking the average of two pixels and multiplying that with a
2316
	     constant is the same as summing the two pixels and multiplying by
2317
	     that contant/2.
2318
	   - 7% faster here (in 4x)
2319
2320
2006-11-15 Wouter Vermaelen <[email protected]>
2321
	* Optimized SDLGL-PP hq scaler:
2322
	   - used same tricks as the hqlite scaler (see 2006-11-14)
2323
	   - share more code between SDLGL-PP hq and hqlite scaler
2324
	* Optimized hq edge calculation:
2325
	   - applies for both SDL and SDLGL-PP hq scaler
2326
	   - another 3% speedup for SDLGL-PP hq (only measured this one)
2327
2328
2006-11-14 Wouter Vermaelen <[email protected]>
2329
	* Optimized SDLGL-PP hqlite scaler:
2330
	   - optimized edge-bits calculation:
2331
	      - change position of the bits so that it's easier (less shifts)
2332
	        to reuse bits from the left and top neighbour
2333
	      - calculate two pixels at once using 32-bit (iso 16-bit) bit
2334
	        manipulations
2335
	   - I measured 25% speedup on my system (for 2x and 3x because these
2336
	     are CPU limited, 4x is GPU limited here)
2337
	   - TODO: a similar optimization is possible for SDLGL-PP hq and
2338
	     SDL hq/hqlite. Although there the speed improvent might not be
2339
	     as big
2340
	* Added 'test_machine' command (see 'help test_machine'):
2341
	   - initial version, details on how success/failure is reported
2342
	     can still change
2343
2344
2006-11-10 Wouter Vermaelen <[email protected]>
2345
	* Applied pimple-idiom to MSXMotherboard:
2346
	   - will require less recompilations in the future: no longer when
2347
	     there are changes to private member variables or functions
2348
2349
2006-11-09 Wouter Vermaelen <[email protected]>
2350
	* Added machine add/remove/select clicomm update
2351
	* Extended 'machine' command:
2352
	   - without parameters it returns the handle of the current machine
2353
	   - on a successful machine switch it also returns the handle
2354
	* Added 'machine_info config_name':
2355
	   - returns the configuartion name for the specified machine, the
2356
	     config name is the name that should be used in the 'machine'
2357
	     command to switch machine
2358
2359
2006-11-08 Wouter Vermaelen <[email protected]>
2360
	* Implemented watchpoint regions:
2361
	   see doc/commands.txt or 'help debug set_watchpoint'
2362
2363
2006-11-06 Wouter Vermaelen <[email protected]>
2364
	* Split CliComm in machine specific and global part:
2365
	  - machine specific update events now have an extra 'machine'
2366
	    attribute (e.g. <update type="hardware" machine="machine3" name="diska">add</update>)
2367
	* Manage disk/hd/cd names per machine iso globally
2368
2369
2006-11-04 Wouter Vermaelen <[email protected]>
2370
	* TODO temporarily disabled enum setting info topics:
2371
	   see comment in EnumSetting.hh
2372
	* Moved 'machines' and 'extensions' info topics from MSXMotherboard to
2373
	  Reactor
2374
	* Shared MSXDevice state should be shared per MSX machine, not shared
2375
	  globally:
2376
	    for the moment only fixed MSXMemoryMapper and Printer
2377
	* Renamed 'machine' setting to 'default_machine' and create a new
2378
	  'machine' command to actually switch to a new MSX machine
2379
	* While switching MSX machine, first create the new machine and only
2380
	  if that succeeded delete the old machine
2381
2382
2006-11-02 Wouter Vermaelen <[email protected]>
2383
	* Put machine specific commands and settings in a machine specific
2384
	  namespace. There is also a corresponding command/setting in the
2385
	  global namespace that delegates to the current machine:
2386
	   - preparation for cleaner run-time switchable machine and run-time
2387
	     machine checker
2388
	   - setting code should be refactored one day, it's rather
2389
	     complicated now
2390
2391
2006-11-01 Manuel Bilderbeek <[email protected]>
2392
	* Send CliComm events for CD and HD changes.
2393
	* Report full name including path for CD and HD images.
2394
2395
2006-10-30 Joost Yervante Damad <[email protected]>
2396
	* fix support for kfreebsd, "kfreebsd" was detected wrongly
2397
	  as "freebsd" causing build failure
2398
2399
2006-10-26  Arnold Metselaar  <[email protected]>
2400
	* Unified advram-p and advram-s to a single advram,
2401
	 - use "?0" to specify: subslot "0" if expanded,
2402
	 - src/CartridgeSlotManager.cc: parse "?0",
2403
	 - src/MSXDevice.cc, src/config/HardwareConfig.cc:
2404
	    handle the case of "?0",
2405
	 - TODO: get rid of the special values for slot numbers.
2406
2407
2006-10-25 Manuel Bilderbeek <[email protected]>
2408
	* Restructured media-related commands:
2409
	  - basic idea: all media have the same command structure:
2410
	    + mediacommand subcommand arguments
2411
	    + default subcommand is 'insert', which can thus be omitted
2412
	  - if you want to insert a medium with the name of a subcommand,
2413
	    just use the insert subcommand first, e.g.:
2414
	    diska insert insert
2415
	  - Corrected help and documentation a bit and optimized completion a
2416
	    bit
2417
	  - TODO: completion can be made a lot tighter, still
2418
	  - commands are still (practically) 100% backwards compatible
2419
2420
2006-10-18 Joost Yervante Damad <[email protected]>
2421
	* fix from BouKiCHi for install-recursive.sh
2422
	* make MMX and SSE code also work on AMD64
2423
2424
2006-10-18 Wouter Vermaelen <[email protected]>
2425
	* Split Mixer in a global Mixer part and a per machine MSXMixer part:
2426
	   - when there are (temporarily) multiple machines in memory, each
2427
	     machine has a MSXMixer while there is still only one Mixer (that
2428
	     loads the actual sound driver)
2429
2430
2006-10-13 Wouter Vermaelen <[email protected]>
2431
	* Removed JoyNet:
2432
	   - it didn't work (on practical speeds) anyway
2433
	* Split CommandController in MSXCommandController (machine specfic)
2434
	  and GlobalCommandController (and an abstract base class):
2435
	   - changed code to use the approriate class, but ATM both still do
2436
	     exactly the same
2437
2438
2006-10-13 Wouter Vermaelen <[email protected]>
2439
	* Split openmsx_info topics in two:
2440
	   - machine specific topics are moved to a new machine_info command
2441
	   - general topics remain in openmsx_info
2442
	   - for backwards compatibility the machine specific topics also
2443
	     remain in openmsx_info for one or two releases, but they generate
2444
	     a warning
2445
	   - openmsx_info <setting> is also deprecated, prefer to use
2446
	     openmsx_info setting <setting> (already existed)
2447
	   - adjusted Tcl scripts to use the new commands
2448
2449
2006-10-12 Maarten ter Huurne <[email protected]>
2450
	* Integrated Windows resource support:
2451
	  stores icon and version info in the executable
2452
	  patch was made by Albert and Manuel, based on wx Catapult build
2453
2454
2006-10-12 Wouter Vermaelen <[email protected]>
2455
	* Preparation to separate command registration from CommandController
2456
	  (is itself a preparation to allow multiple machines in memory):
2457
	   - moved tabcompletion code from CommandController to Completer
2458
	* Print possibilities for tab completion in multiple columns,
2459
	  especially useful with all the trainer_** procs ;)
2460
2461
2006-10-10 Manuel Bilderbeek <[email protected]>
2462
	* Renamed FileManipulator to DiskManipulator (classes/filenames)
2463
2464
2006-10-09 Manuel Bilderbeek <[email protected]>
2465
	* Fix crash when uninitialized disk image was used.
2466
	  TODO: check limits more accurately (now only checked for 0)
2467
	  TODO: separate partition selection from boot sector parsing
2468
2469
2006-10-05 Wouter Vermaelen <[email protected]>
2470
	* Various changes to reduce #include dependencies
2471
2472
2006-10-04 Joost Damad <[email protected]>
2473
	* remove bashisms from build/install-recursive.sh
2474
	* debian/ updates
2475
2476
2006-10-02 Wouter Vermaelen <[email protected]>
2477
	* Empty the sound buffer in the SDL sound driver after a mute/unmute
2478
	* Make 'after' command part of Reactor iso MSXMotherboard:
2479
	   - after events are now kept over a machine switch
2480
	   - added two new after events: 'boot' and 'machine_switch'
2481
	* Extended autoplug.tcl:
2482
	   - also auto plug the cassetteplayer after a machine switch
2483
2484
2006-10-01 Wouter Vermaelen <[email protected]>
2485
	* Fixed race condition:
2486
	   - was easy to trigger on a dual core CPU
2487
	   - shared_ptr is not thread safe on it's own, see comments in
2488
	     EventDistributor
2489
2490
2006-09-30 Manuel Bilderbeek <[email protected]>
2491
	* Send an event when the cassetteplayer is added/removed.
2492
2493
2006-09-30 Joost Damad <[email protected]>
2494
	* build on arm with optimizations again
2495
	* add flavour opt-debug, useful when searching bugs that only
2496
	  occur on optimized binaries
2497
2498
2006-09-30 Wouter Vermaelen <[email protected]>
2499
	* Optimized V9990 P1 mode rendering:
2500
	   - WIP sprite rendering can still be optimized a lot
2501
	   - also optimized sprite rendering
2502
	* Optimized V9990 P2 mode rendering
2503
2504
2006-09-29 Maarten ter Huurne <[email protected]>
2505
	* Reset loading state if a disk drive or cassette player is destructed.
2506
2507
2006-09-28 Manuel Bilderbeek <[email protected]>
2508
	* Added BOOT event to be able to do autoRun on cassettes at every
2509
	  boot. Also needed for Catapult (would otherwise only work once).
2510
2511
2006-09-25 Wouter Vermaelen <[email protected]>
2512
	* Added support for (recursive) subdirectories in RomPool
2513
2514
2006-09-23 Wouter Vermaelen <[email protected]>
2515
	* Implemented PlayBall mapper type
2516
	* Only flush DiskManipulator FAT cache when there were actual writes:
2517
	   - fixes a strange error that doing
2518
	       'diskmanipulator dir diska'
2519
	     on a read-only disk gives a write(!) error
2520
	* Detect invalid PPI mode selection and print a warning when an
2521
	  unimplemted mode is selected:
2522
	   - those other modes are not that easy to implement and they anyway
2523
	     will just hang your MSX
2524
2525
2006-09-22 Manuel Bilderbeek <[email protected]>
2526
	* Save firmwareswitch position with persistent data
2527
2528
2006-09-22 Wouter Vermaelen <[email protected]>
2529
	* Made Command's also Recordable (was only SimpleCommand's)
2530
	* record 'debug write' commands:
2531
	   - record/replay now also works when trainers are used
2532
2533
2006-09-21 Wouter Vermaelen <[email protected]>
2534
	* Made 'hda', 'cda', 'type', 'keymatrixup' and 'keymatrixdown'
2535
	  commands recorded
2536
	* Changed format of event recorder to also allow ':' characters in
2537
	  recorded commands
2538
2539
2006-09-20 Manuel Bilderbeek <[email protected]>
2540
	* Removed SDLGL2 (superseded by SDLGL-PP), as requested by Wouter
2541
2542
2006-09-20 Wouter Vermaelen <[email protected]>
2543
	* Added RecordedCommand class to make recording certian commands
2544
	  easier. TODO refactor previous recordable commands to use this
2545
	  mechanism
2546
	* made 'reset', 'ext', 'cart', 'cart<x>' and 'remove_extension'
2547
	  commands recordable.
2548
	* Reimplemented 'plug', 'unplug' and 'cassetteplayer' commands as
2549
	  RecordedCommand's
2550
2551
2006-09-19 Wouter Vermaelen <[email protected]>
2552
	* Refactored (un)plug and media changed events to MSXCommandEvent
2553
	* Use MSXCommandEvent for cassetteplayer command
2554
2555
2006-09-18 Wouter Vermaelen <[email protected]>
2556
	* Use events for (un)plug command:
2557
	   makes (un)plug recordable
2558
	* use events for disk changing:
2559
	   TODO: - do the same for cassetteplayer
2560
	         - use different string representation for events because at
2561
	           the moment the paths can't contain ':' characters
2562
2563
2006-09-16 Wouter Vermaelen <[email protected]>
2564
	* Added 'extensions' and 'machines' info topics
2565
	* Extended these two info topics to also return the meta info when a
2566
	  specific extension/machine is given as 3th argument
2567
2568
2006-09-16 Manuel Bilderbeek <[email protected]>
2569
	* Added MSXEventRecorder/Replayer:
2570
	  - you can record and replay with the command line options, which
2571
	    require a filename argument
2572
2573
2006-09-15 Wouter Vermaelen <[email protected]>
2574
	* Fixed deinterlace for V9990:
2575
	   - force two consecutive frames (non-skipped frames) in deinterlace
2576
	     mode
2577
2578
2006-09-14 Wouter Vermaelen <[email protected]>
2579
	* Fixed V9990 cursor Y position in overscan modes:
2580
	   - in overscan modes the cursor position is still specified with the
2581
	     same coordinate system as non-overscan modes (while the display
2582
	     line coord system has shifted up)
2583
2584
2006-09-12 Wouter Vermaelen <[email protected]>
2585
	* Fixed Y8950 sample ram reads:
2586
	   - first 2 reads from sample RAM return bogus values. This behaviour
2587
	     was implemented, but it has a bug and returned only one bogus
2588
	     value :(
2589
	   - fixes sample RAM detection in 'Almost Real'
2590
2591
2006-09-11 Maarten ter Huurne <[email protected]>
2592
	* Send an event over the control connection when a disk drive is added
2593
	  or removed. Can be used by Catapult to update the list of drives.
2594
2595
2006-09-11 Wouter Vermaelen <[email protected]>
2596
	* Fixed AUDIO in 'Thunderbirds are Go':
2597
	  - 'Thunderbirds are Go' sets the Music Module General Purpose pin 3
2598
	    as output without specifying a value for that pin. By luck(?) in
2599
	    that case on a real machine the value is '1' while in openMSX it
2600
	    was '0' before this fix.
2601
	* Forgot to sync V9990CmdEngine:
2602
	   - fixes regression in blox
2603
2604
2006-09-07 Wouter Vermaelen <[email protected]>
2605
	* Fixed bug in removing IO watchpoints
2606
	* Improved help-text / tabcompletion for the debug command
2607
	* Changed checked_cast implementation so that it also works on older
2608
	  compilers (gcc-3.4 and below)
2609
2610
2006-09-06 Wouter Vermaelen <[email protected]>
2611
	* Split UserInputEventDistributor in 3:
2612
	   EventTranslator, EventDelay and MSXEventDistributor
2613
	* Automatically unpause after a power off/on cycle:
2614
	   solves a bug, but this behaviour also makes more sense
2615
	* Made MSXEventDistributor EmuTime aware:
2616
	   needed later for event recording
2617
2618
2006-09-02 Wouter Vermaelen <[email protected]>
2619
	* Added priorities to event listeners, higher priority listeners can
2620
	  block events for lower priority listeners:
2621
	   - fixes the problem that hotkey bindings are still visible in BASIC
2622
2623
2006-09-02 Joost Damad <[email protected]>
2624
	* simplify arm CXXFLAGS; fix m68k build; override in cpu-xxx.mk doesn't
2625
	  work
2626
2627
2006-08-31 Joost Damad <[email protected]>
2628
	* do not do -finline-functions on arm as current gcc generates
2629
	  faulty code
2630
2631
2006-08-31 Manuel Bilderbeek <[email protected]>
2632
	* Added MEDIA update event for cart-commands
2633
2634
2006-08-30 Wouter Vermaelen <[email protected]>
2635
	* Added checked_cast and shared_ptr utility classes
2636
	* Pass events around by shared_ptr (avoids making a polymorphic copy)
2637
	* Added Event::toString() to print events and
2638
	  InputEventFactory::createInputEvent(string) to parse events
2639
	* Added Event::operator<() (to store events in maps)
2640
	* Extended HotKey class (name is not 100% accurate anymore) to also
2641
	  handle joystick/mouse-button and focus events:
2642
	    examples:   bind focus:0 { set pause on  }
2643
	                bind focus:1 { set pause off }
2644
	                bind mouse:button8:down { toggle throttle }
2645
	                bind mouse:button8:up   { toggle throttle }
2646
2647
2006-08-23 Maarten ter Huurne <[email protected]>
2648
	* If default machine is broken (for example because of missing system
2649
	  ROMs), fall back to C-BIOS config. This makes sure openMSX will start
2650
	  up, allowing the user to select a different default machine on the
2651
	  openMSX console.
2652
2653
2006-08-22 Wouter Vermaelen <[email protected]>
2654
	* Enable detection of more OpenGL extensions with glew:
2655
	   - see comments in SDLGLVisibleSurface for details
2656
	   - might fix the problem PingPong is seeing:
2657
	       accoring to 'glewinfo' framebuffer_objects are support on his
2658
	       card, but not so according to openMSX
2659
2660
2006-08-15 Wouter Vermaelen <[email protected]>
2661
	* Use 2D textures iso 3D to work around bug in ATI drivers
2662
2663
2006-08-14 Wouter Vermaelen <[email protected]>
2664
	* Transform texture coordinates from (N x N x 4096) to 32N x N x 128
2665
	  because some gfx cards can't handle that big dimensions
2666
2667
2006-08-12 Wouter Vermaelen <[email protected]>
2668
	* Implemented hq as a OpenGL 2.0 shader
2669
	* Use external data files in GLHQScaler and GLHQLiteScaler:
2670
	   - work around limitation in MSYS assembler(?):
2671
	        Assembler messages:
2672
	        Warning: .stabs: description field '11004' too big, try a
2673
	          different debug format
2674
2675
2006-08-10 Wouter Vermaelen <[email protected]>
2676
	* Implemented hqlite as a OpenGL 2.0 shader:
2677
	   supports 2x 3x 4x
2678
	   only 256 pixel wide, non-interlaced MSX screens
2679
2680
2006-08-09 Wouter Vermaelen <[email protected]>
2681
	* Fixed VDPCmdEngine status register 8 and 9:
2682
	   - implemented by Alex Wulms
2683
	   - status registers 8/9 are documented to return the result of
2684
	     a SRCH command. However they simply return the value of the
2685
	     internal 'ASX' register. In the end this register does
2686
	     contain the result of a SRCH command, but it is also updated
2687
	     during the SRCH command and even during completely different
2688
	     commands.
2689
2690
2006-08-08 Wouter Vermaelen <[email protected]>
2691
	* Fixed indeterministic behaviour in CPU emulation:
2692
	   CPU could react one instruction too late to an IRQ,
2693
	   depending on which other sync points there are
2694
	   (see comments in CPUCore.cc for more details)
2695
2696
2006-08-05 Wouter Vermaelen <[email protected]>
2697
	* write printed pages to "dot-matrix" director (like screenshots dir)
2698
	* made printer image resolution a setting:
2699
	    between 150dpi and 1200dpi. Default (300dpi) is a compromise
2700
	    between quality and imagesize/speed
2701
2702
2006-08-04 Wouter Vermaelen <[email protected]>
2703
	* Added Dot Matrix Printer Emulation:
2704
	   code mostly taken from blueMSX
2705
2706
2006-07-31 Joost Damad <[email protected]>
2707
	* add support for powerpc64: ppc64 cpu and flavour
2708
	* compile with -O1 on m68k by default
2709
2710
2006-07-30 Maarten ter Huurne <[email protected]>
2711
	* Released openmsx-0.6.1.
2712
2713
2006-07-28 Manuel Bilderbeek <[email protected]>
2714
	* Escape strings before sending them to TCL's splitList, fixes
2715
	  diskmanipulator with spaces in file names
2716
	* And reverted again. This breaks splitting completely. Needs a better
2717
	  fix, but it's not trivial.
2718
2719
2006-07-21 Wouter Vermaelen <[email protected]>
2720
	* Fixed loading of keybindings
2721
2722
2006-07-20 Wouter Vermaelen <[email protected]>
2723
	* Implemented 'Removable media status notification feature set' for
2724
	  IDECDROM, slightly improved 'request sense' command:
2725
	   reading from CDROM (also when switching ISO images) seems to work
2726
	   now, although there may still be a problem with the volume id
2727
	* Set version_number=0.6.1, release_tag=true
2728
2729
2006-07-17 Wouter Vermaelen <[email protected]>
2730
	* Reenabled saving of keybindings:
2731
	   on exit when save_settings_on_exit is enabled or when explicity
2732
	   requested
2733
	* Fixed saving of 'renderer' setting:
2734
	   when save_settings_on_exit was enabled there were two problems:
2735
	    - after testconfig run, renderer=none was saved in settings.xml.
2736
	      Fixed by introducing 'unsaveable' values on Setting
2737
	    - every other run the value would fallback to 'SDL'. For the
2738
	      renderer setting we made the default value equal to the
2739
	      saved value (needed for the 'unset renderer' command executed
2740
	      by catapult) and settings with default value don't get saved.
2741
	      Fixed by having a seperate default and restore value.
2742
2743
2006-07-14 Wouter Vermaelen <[email protected]>
2744
	* Don't assert when multiple Panasonic MSX-Audio's are inserted
2745
2746
2006-07-13 Wouter Vermaelen <[email protected]>
2747
	* Exit the CliServer listener thread in a more portable way
2748
2749
2006-07-12 Wouter Vermaelen <[email protected]>
2750
	* Don't listen for incomming connections in -testconfig mode
2751
	* Split RomInfo in RomInfo and RomDatabase:
2752
	   - allowed to fix RomInfo memory leaks
2753
2754
2006-07-10 Wouter Vermaelen <[email protected]>
2755
	* Implemented proper locking for Reactor::motherBoard
2756
2757
2006-07-08 Wouter Vermaelen <[email protected]>
2758
	* Fixed top-border flicker in cbios/SDLGL:
2759
	   - CPU loop was exit'ed only one instruction after the exit-loop
2760
	     request. Normally this doesn't matter (Schedule points are still
2761
	     executed cycle accurate). But for _very_ long instructions,
2762
	     like the way we implemented the HALT instruction, and the repaint
2763
	     event it did matter.
2764
	* Fixed(?) the undocumented TMS9918 mode1q:
2765
	   - I didn't test this (i don't have a test prog) but the old
2766
	     code had obvious bugs, I fixed those
2767
2768
2006-07-07 Wouter Vermaelen <[email protected]>
2769
	* Implemented general purpose IO mechanism for Y8950:
2770
	   - implemented for Philips Music Module, Panasonic MSX-AUDIO, still
2771
	     have to investigate Toshiba module
2772
2773
2006-07-05 Wouter Vermaelen <[email protected]>
2774
	* Fallback to SDL renderer when switching renderer didn't succeed
2775
	  (e.g. when switching to SDLGL-PP without ogl2 support)
2776
2777
2006-07-03 Wouter Vermaelen <[email protected]>
2778
	* Added lighting for 3d display deform:
2779
	   Corners (especially top corners) are now a bit darker then the
2780
	   middle-lower part. The effect is subtle but it looks more
2781
	   realistic IMHO. I couldn't measure any speed difference
2782
	   with or without lighting, so it's enabled by default
2783
2784
2006-06-29 Wouter Vermaelen <[email protected]>
2785
	* Renamed 'monitor_effect' setting to 'display_deform'
2786
	* Fixed GLSnow effect for non 2x scale factors
2787
2788
2006-06-28 Wouter Vermaelen <[email protected]>
2789
	* Implemented 'horizontal stretch' for SDLGL-PP:
2790
	   - is another enum of the monitor_effect setting (rename this?)
2791
	   - the 3D monitor effect always has horizontal stretch applied
2792
	* Only enable SDLGL-PP renderer when OpenGL-2.0 is available
2793
	* Moved SDLGL2 to 'non-release-only' status (like SDLGL-FB<xx>)
2794
2795
2006-06-27 Wouter Vermaelen <[email protected]>
2796
	* Implemented blur and scanlines for SDLGL-PP simple scaler
2797
	* Implemented FMPAC SRAM disable bit (bit4 address 0x7FF6):
2798
	   Thanks to BiFiMSX for investigating this
2799
2800
2006-06-25 Wouter Vermaelen <[email protected]>
2801
	* Made "monitor_effect" an enum setting (suggestions for a better name
2802
	  are welcome). Made normal (non-3d) the default. Fixed a bug when
2803
	  started openmsx is started in normal mode.
2804
2805
2006-06-24 Wouter Vermaelen <[email protected]>
2806
	* Implemented 3D monitor effect for SDLGL-PP renderer
2807
	* Enabled glow setting for SDLGL-PP
2808
2809
2006-06-22 Wouter Vermaelen <[email protected]>
2810
	* Various RTC (RP5C01) test mode fixes:
2811
	   - r#14 bits 0-3 are for seconds, minutes, days, years
2812
	   - in test mode there is no carry from 'lower order' number
2813
	   - test mode also works when timer itself is disabled
2814
2815
2006-06-20 Wouter Vermaelen <[email protected]>
2816
	* Switched to non_power_of_two textures instead of texture_rectangle
2817
	  in SDLGL-PP renderer:
2818
	   - ATI cards don't support text_rect in GLSL, but npot text should
2819
	     work
2820
	   - for GeForce5 class HW this change is bad because it has no
2821
	     hw support for npot textures while it has for text_rect
2822
2823
2006-06-19 Wouter Vermaelen <[email protected]>
2824
	* Made rectangle_textures available on correct resolution on vertical
2825
	  linewidth borders:
2826
	   - fixes most SDLGL-PP glitches
2827
	   - TODO cleanup, make it work on ATI cards
2828
2829
2006-06-18 Wouter Vermaelen <[email protected]>
2830
	* Use texture_rectangle for SDLGL-PP shader:
2831
	   - allows to fix the border glitches
2832
	   - still WIP but horizontal glitches seem to be fixed already
2833
2834
2006-06-17 Wouter Vermaelen <[email protected]>
2835
	* Added generic register logger (see also psg_log script):
2836
	   - typical use case will be to log soundchip registers
2837
	   - can also playback the logged regsiters
2838
2839
2006-06-15 Wouter Vermaelen <[email protected]>
2840
	* Implemented all HQ scalers for the extra gfx9000 resolutions
2841
2842
2006-06-14 Wouter Vermaelen <[email protected]>
2843
	* Refactored HQ scalers to reduce code duplication
2844
2845
2006-06-13 Wouter Vermaelen <[email protected]>
2846
	* Speedup hq3x (same technique as used in hq2x):
2847
	   between 3% and 5% faster on my machine
2848
	* Speedup hq3xlite: between 2% and 3% faster
2849
	* Implemented hq3x and hq3xlite for 512-wide mode:
2850
	   no special implementation like in the hq2x case, just do
2851
	   hq3x followed by scale_2on1
2852
2853
2006-06-08 Wouter Vermaelen <[email protected]>
2854
	* Fixed HQ2xScaler-1x1to2x2.nn data (bug in generator script)
2855
	* Improved quality of hq2x in 512 pixel wide modes (screen 7)
2856
	* Speedup hq2xlite (~5%) by using the same technique as used in HQ2xScaler
2857
	* Improved quality of hq2xlite in 512 pixel wide modes (screen 7)
2858
2859
2006-06-05 Wouter Vermaelen <[email protected]>
2860
	* Mask unwritable bits in V9990 registers:
2861
	   fixes 'shocky' scroll in some power basic demos
2862
	* fixed "openmsx_info isexternalslot" command:
2863
	   guess_title script now works again
2864
	* Oops! Socket code couldn't handle multiple simultaneous connections
2865
	  (or two single connections quickly after each other).
2866
2867
2006-06-03 Wouter Vermaelen <[email protected]>
2868
	* Only lower part of AY scroll register resets scanline position:
2869
	   fixes GEM08
2870
	* Implemented priority control for V9990 P1 mode
2871
2872
2006-06-02 Wouter Vermaelen <[email protected]>
2873
	* Fixed bug in V9990 blank screen behaviour
2874
2875
2006-06-01 Wouter Vermaelen <[email protected]>
2876
	* V9990 P1 mode does not have the strange screenplit
2877
	  behaviour (see 2006-05-29)
2878
2879
2006-05-31 Wouter Vermaelen <[email protected]>
2880
	* Implemented 'cd<x>' command to change ISO image
2881
	* Implemented -cda command line option
2882
	* Fixed V9990 commands in P1 mode:
2883
	   Actually I just tried something and it seems to work very well (it
2884
	   fixes a lot of stuff). Still need to figure out exactly how the
2885
	   coordinate system maps the VRAM addresses in P1 mode
2886
2887
2006-05-31 Maarten ter Huurne <[email protected]>
2888
	* Initial support for sector loading from CD-ROM.
2889
	  Still missing:
2890
	  - commands to change the ISO image
2891
	  - setting the right status flags when a CD is inserted /
2892
	    not inserted / changed for another CD
2893
	  - correct calculation of packet size
2894
	  - audio track support
2895
	* Implemented Read Native Max Address so SymbOS can access the HD.
2896
	  Thanks to Daniel Vik for telling us this command was the problem.
2897
2898
2006-05-30 Wouter Vermaelen <[email protected]>
2899
	* Fixed assert when switching scale_factor from 3->2 when openmsx
2900
	  was paused.
2901
2902
2006-05-29 Wouter Vermaelen <[email protected]>
2903
	* Fixed vertical rolling at 256 line (is normmaly 512)
2904
	  for V9990 P1 and P2 modes
2905
	* Fixed vertical offset in V9990 when vertical scroll register is
2906
	  changed on a screensplit
2907
2908
2006-05-28 Wouter Vermaelen <[email protected]>
2909
	* Fixed striped screen 6 borders in SDLRasterizer
2910
2911
2006-05-27 Wouter Vermaelen <[email protected]>
2912
	* Fixed sprite disable for V9990 P1 and P2 modes
2913
	* IDEHD no longer resizes an existing HD image, the <size> tag is now
2914
	  only used to create the initial HD image
2915
	* IDEHD now knows its own name (preparation for dynamic hd image)
2916
	* Changed naming scheme for HDs:
2917
	   just give letters in order (not interface master/slave)
2918
	   this is more similar to how disks are given names and it also
2919
	   allows to give more logical names to cdroms (future)
2920
	* Implemented 'hd<x>' command to change HD images at-run-time
2921
	   (only works when MSX is powered down)
2922
	* Added -hda command line option
2923
2924
2006-05-26 Manuel Bilderbeek <[email protected]>
2925
	* Specify the type of PSG for those machines we know this for sure
2926
2927
2006-05-25 Wouter Vermaelen <[email protected]>
2928
	* Use EventDistributor iso Scheduler for MidiInNative, MidiInReader
2929
	  and RS232Tester
2930
	* Don't use Scheduler to exit the CPU loop
2931
	* Removed ASAP from Scheduler
2932
2933
2006-05-24 Wouter Vermaelen <[email protected]>
2934
	* Implemented sprites in V9990 P2 mode (can still be optimized)
2935
2936
2006-05-22 Wouter Vermaelen <[email protected]>
2937
	* Implemented differences between AY8910 and YM2149 (two PSG variations):
2938
	   - add  <type>AY8910</type>  or  <type>YM2149</type>
2939
	     in the <PSG> tag in hardwareconfig.xml
2940
	     Default remains AY8910
2941
2942
2006-05-21 Maarten ter Huurne <[email protected]>
2943
	* Split IDEHD into generic part (new class AbstractIDEDevice) and
2944
	  HD specific part (class IDEHD).
2945
	* Initial implementation of CD-ROM emulation.
2946
	  The only things it can do right now is convince the Sunrise BIOS that
2947
	  it is a CD-ROM and print some debug info about ATAPI commands.
2948
	* Included a CD-ROM drive in the "ide" extension.
2949
2950
2006-05-20 Manuel Bilderbeek <[email protected]>
2951
	* Added Spectravideo SVI-738 machine
2952
2953
2006-05-20 Wouter Vermaelen <[email protected]>
2954
	* Implemented V99x8 with only 16kb VRAM
2955
	* More robust error handling in rs232-tester
2956
2957
2006-05-06 Wouter Vermaelen <[email protected]>
2958
	* Implemented ninja-tap:
2959
	   Thanks to BiFiMSX for disassembling the test program
2960
2961
2006-04-30 Wouter Vermaelen <[email protected]>
2962
	* Disabled ninja-tap device because it doesn't work yet:
2963
	   ATM it acts the same as the 'normal' joytap device
2964
2965
2006-04-29 Wouter Vermaelen <[email protected]>
2966
	* Fixed bug in breakpoints:
2967
	   when a breakpoint was hit we still executed one instruction
2968
2969
2006-04-27 Maarten ter Huurne <[email protected]>
2970
	* VDP accuracy fix: corrected length of horizontal blank.
2971
	  Thanks to Daniel Vik for investigating the Parallax logo code and for
2972
	  writing measurements programs that helped in determining the correct
2973
	  horizontal blank length.
2974
	  Note that the start time of the horizontal blank is not yet fully
2975
	  correct, but having the right length already fixes some problems.
2976
2977
2006-04-25 Wouter Vermaelen <[email protected]>
2978
	* Fixed assert in MemoryOps: assert was too strict
2979
2980
2006-04-25 Wouter Vermaelen <[email protected]>
2981
	* Fixed truncate() function in windows:
2982
	   - instead of extending the file with zeros at the end, it wrote
2983
	     those zeros over the beginning of the file. Oops.
2984
2985
2006-04-20 Wouter Vermaelen <[email protected]>
2986
	* Implemented io and memory watchpoints:
2987
	   - for the moment use like this:
2988
	        debug set_watchpoint <type> <address> [<condition>] [<command>]
2989
	        debug remove_watchpoint <id>
2990
	        debug list_watchpoints
2991
	     Where type is one of 'read_io', 'write_io', 'read_mem' or
2992
	     'write_mem'. Address is in range 0..255 for io ports and 0..65535
2993
	     for memory. Condition and command are the similar to the set_bp
2994
	     command.
2995
	   - I'm not 100% happy with this interface. It may change before the
2996
	     release.
2997
2998
2006-04-17 Wouter Vermaelen <[email protected]>
2999
	* Fixed V9990 SRCH command:
3000
	   at least paint command in power basic seems to work again
3001
	* Fixed inserting wav/cas images from the command line
3002
3003
2006-04-15 Wouter Vermaelen <[email protected]>
3004
	* Implemented infrastructure for V9990 command timing:
3005
	   data in timing table is still _very_ rough though
3006
3007
2006-04-13 Wouter Vermaelen <[email protected]>
3008
	* Fixed(?) V9990 BMLL command, it should do logical operations:
3009
	   not yet tested
3010
3011
2006-04-12 Wouter Vermaelen <[email protected]>
3012
	* Enabled support for single sided disk drives:
3013
	   TODO update hardwareconfig.xml for machines with single sided
3014
	        drives
3015
3016
2006-04-11 Manuel Bilderbeek <[email protected]>
3017
	* Added new 'bootsector' setting. You can use it to let DirAsDSK use a
3018
	  DOS2 (default) boot sector or a DOS1 one. Also put the boot sector
3019
	  data in one single (dummy) class, yesterday.
3020
3021
2006-04-10 Wouter Vermaelen <[email protected]>
3022
	* Fixed bug in V9990 command engine:
3023
	   LMMC command was wrong in 16bpp mode
3024
	* Optimized address calculation for 16bpp v9990 commands
3025
	* Fixed V9990 cursor color
3026
3027
2006-04-09 Manuel Bilderbeek <[email protected]>
3028
	* Added <info> tags for extensions as well. Please check; most likely
3029
	  not all data is correct. But it's useful for GUI's/launchers!
3030
3031
2006-04-08 Wouter Vermaelen <[email protected]>
3032
	* Made command that gets executed when a bp is hit configurable,
3033
	  default command is 'debug break'
3034
	* Allow <devices> tag in extension configs (same as machine configs)
3035
	  old config format is still supported
3036
	* Updated all extension configs to new format
3037
3038
2006-04-07 Wouter Vermaelen <[email protected]>
3039
	* Further optimized hq2x: also reuse edge flags from top neighbour
3040
	   (again about 5% faster)
3041
3042
2006-04-07 Manuel Bilderbeek <[email protected]>
3043
	* Print a warning when a DI/HALT is detected, which means a hang.
3044
	  TODO: add warnings for other known hang-situations as well.
3045
3046
2006-04-06 Maarten ter Huurne <[email protected]>
3047
	* Speedup (approximately 5%) of hq2x by re-using edge flags that were
3048
	  computed for the left neighbour pixel.
3049
3050
2006-04-06 Wouter Vermaelen <[email protected]>
3051
	* Speedup switching to different color_matrix
3052
	* Fixed assert when using the same extension multiple times
3053
	* Fixed asserts when using advram-p and advram-s extensions
3054
3055
2006-04-05 Wouter Vermaelen <[email protected]>
3056
	* Reduced compile dependencies, should reduce amount of recompilations
3057
	  needed in the future:
3058
	   - split SettingPolicy.hh -> SettingPolicy.hh SettingRangePolicy.hh
3059
	   - hold BitmapConvertor CharacterConverter SpriteConverter by
3060
	     pointer iso by value, performance difference is not measurable
3061
	* Use functions of Math.hh in GL(2)Rasterizer
3062
	* Made it possible for TCL scripts to implement tab completion,
3063
	  see share/scripts for examples:
3064
	   you again need to update the installed init.tcl file
3065
	* Implemented experimental 'tabcompletion' command:
3066
	   only ment to be used by external programs
3067
	* Implemented color_matrix setting:
3068
	   This color matrix can do any linear transformation from MSX RGB to
3069
	   host RGB. See share/scripts/monitor.tcl for examples.
3070
3071
2006-03-29 Wouter Vermaelen <[email protected]>
3072
	* Made it possible for TCL script to provide a help text, see
3073
	  share/scripts for examples.
3074
	   Note: the system init.tcl was updated, you probably need to replace
3075
	         the installed version
3076
	* Added new 'about' TCL script. It searches for commands (built-in or
3077
	  TCL scripts) that seem to be about the given keyword. Useful if you
3078
	  forgot the exact name of a command.
3079
3080
2006-03-27 Maarten ter Huurne <[email protected]>
3081
	* Merged SDLGLVideoSystem into SDLVideoSystem.
3082
	  The actual differences exist in the VisibleSurface subclasses;
3083
	  these classes only function as factories.
3084
3085
2006-03-26 Maarten ter Huurne <[email protected]>
3086
	* Fixed two compile errors on Intel Macs. At least one remains though.
3087
3088
2006-03-25 Maarten ter Huurne <[email protected]>
3089
	* Added new scaler "TV".
3090
3091
2006-03-24 Maarten ter Huurne <[email protected]>
3092
	* Set maximum of scale_factor to 4.
3093
	  Only the SDLGL-PP renderer can actually reach 4x, the other renderers
3094
	  will fall back to their maximum zoom (2x or 3x).
3095
3096
2006-03-21 Wouter Vermaelen <[email protected]>
3097
	* SDLRasterizer optimization:
3098
	   - replaced memcpy() with new stream_memcpy() function
3099
	   - about 3% faster here (simple scaler 2x)
3100
3101
2006-03-21 Wouter Vermaelen <[email protected]>
3102
	* Optimized clock in CPU code:
3103
	   - do part of the time bookkeeping with 32-bit additions (iso 64-bit)
3104
	   - gives between 1% and 2% speedup in typical PC usecase (scale_factor
3105
	      = 2, no frameskip)
3106
	   - gives around 10% speedup with scale_factor = 1 and frameskip 5
3107
3108
2006-03-19 Maarten ter Huurne <[email protected]>
3109
	* Made scalers switchable in SDLGL-PP renderer.
3110
	  Only "simple" and "ScaleNx" are currently implemented.
3111
	* Ported noise effect to SDLGL-PP renderer.
3112
3113
2006-03-18 Wouter Vermaelen <[email protected]>
3114
	* Implemented run-time switchable machines:
3115
	   - use   set machine <machine-name>
3116
	   - there are still some rough edges and I also still expect some
3117
	     bugs. So please test.
3118
	* Fixed bug: keypresses in the console were passed to MSX just after
3119
	   switching machine
3120
3121
2006-03-15 Wouter Vermaelen <[email protected]>
3122
	* More preparations for run-time switchable machines
3123
3124
2006-03-13 Maarten ter Huurne <[email protected]>
3125
	* Introduced new renderer "SDLGL-PP".
3126
	  This uses SDLRasterizer and does post processing in OpenGL.
3127
	  Since it uses SDLRasterizer, it is more mature already than SDLGL2,
3128
	  which uses its own GL2Rasterizer.
3129
3130
2006-03-13 Wouter Vermaelen <[email protected]>
3131
	* Turned MSXDevice creation in a 2-step process:
3132
	     First construct object, then call the init() method. This
3133
	     simplifies error handling (exceptions thrown from form
3134
	     constructor, see comments in code for more details) and it
3135
	     more easily allows passing extra parameters to device
3136
	     construction.
3137
	* A MSXDevice now knows to which HardwareConfig it belongs (machine or
3138
	  extension)
3139
	* Extended cart<x> commands (is now similar to disk<x> command):
3140
	   - cart<x> (without parameters) now returns the name of the inserted
3141
	     cartridge (or possible an extension)
3142
	   - cart<x> -eject  removes the inserted cartridge (or extension)
3143
3144
2006-03-11 Maarten ter Huurne <[email protected]>
3145
	* Added support for pixel buffers to GLUtil.
3146
	* Added utility functions to GLUtil.
3147
	* Introduced new experimental renderer "SDLGL2".
3148
	  It uses OpenGL 2.0 features, including fragment (pixel) shaders.
3149
	  Currently, it only renders SCREEN5/8 without blanking/borders.
3150
3151
2006-03-11 Wouter Vermaelen <[email protected]>
3152
	* Dynamically register cart<x> commands
3153
3154
2006-03-11 Manuel Bilderbeek <[email protected]>
3155
	* Fixed Gradiente machines. Cartridge slot B is in slot 3 and not 2 on
3156
	  Expert 1.0 and 1.1 and the ROM size was wrong for the DDPlus. Thanks
3157
	  to Gustavo Seidler for pointing this out.
3158
3159
2006-03-09 Wouter Vermaelen <[email protected]>
3160
	* Upper 4 RAM blocks on turbor may not be writable in dram mode (not
3161
	  yet tested)
3162
3163
2006-03-05 Maarten ter Huurne <[email protected]>
3164
	* Added utility classes for dealing with GLSL shaders.
3165
	* Fixed UMR in StoredFrame.
3166
	* Fixed MegaRAM mapper so it can handle 2048K (256 pages) as well.
3167
	  Thanks to Gustavo Seidler for spotting this bug and to Adriano
3168
	  Camargo Rodrigues da Cunha for finding the cause.
3169
3170
2006-03-04 Wouter Vermaelen <[email protected]>
3171
	* Added blur_1on3 MMX implementation:
3172
	   total emulation speed with simple 3x scaler is about 10% faster
3173
	* Added "input_port" and "output_port" info topics
3174
	* Implemented "iomap" command as a TCL proc
3175
3176
2006-03-03 Manuel Bilderbeek <[email protected]>
3177
	* Implemented better completion for debug command
3178
3179
2006-03-02 Wouter Vermaelen <[email protected]>
3180
	* Added "openmsx_info slot" info topic
3181
	* Implemented "slotmap" command as a TCL proc
3182
3183
2006-03-01 Wouter Vermaelen <[email protected]>
3184
	* Preparation for run-time switchable machines:
3185
	   - send event when a MSX machine is loaded and change titlebar
3186
	     when that event is received
3187
	* Implemented blur for 3x simple scaler (WIP):
3188
	   - only 256 wide modes yet
3189
3190
2006-02-27 Wouter Vermaelen <[email protected]>
3191
	* Fixed MicrosolFDC to also support DDX_3.0
3192
	* Added DDX_3.0 extension:
3193
	    Code and config contributed by Gustavo Seidler. Thanks!
3194
3195
2006-02-27 Wouter Vermaelen <[email protected]>
3196
	* IconStatus doesn't need Display
3197
	* Moved IconStatus and Display from MSXMotherboard to Reactor
3198
3199
2006-02-26 Patrick van Arkel ([email protected])
3200
	* Removed CRC32 values from the rom database
3201
	  and added a few more sha1 values
3202
3203
2006-02-24 Wouter Vermaelen <[email protected]>
3204
	* Replaced PollInterface mechansim with events
3205
	* Moved InputEventGenerator from MSXMotherboard to Reactor
3206
3207
2006-02-23 Wouter Vermaelen <[email protected]>
3208
	* CliComm now uses events instead of Scheduler
3209
	* Moved CliComm from MSXMotherboard to Reactor
3210
	* Decoupled Display and RealTime classes:
3211
	   - instead Display now send events, RealTime listens to those events
3212
3213
2006-02-22 Wouter Vermaelen <[email protected]>
3214
	* EventDistributor no longer needs Scheduler, instead it cooperates
3215
	  with Reactor to deliver events:
3216
	    TODO turn (some of the) ASAP schedule points into events
3217
	* Moved CommandController, EventDistributor, CommandConsole,
3218
	  FileManipulator and FilePool from MSXMotherboard to Reactor:
3219
	    more classes need to be moved but these were easy
3220
3221
2006-02-22 Maarten ter Huurne <[email protected]>
3222
	* Fixed GLSetTexEnvCol on big endian machines.
3223
	  This bug was visible in the border of SCREEN6.
3224
	* Look for GLEW in DarwinPorts or Fink dirs.
3225
	* Fixed bug with palette initialisation in SDLGL renderer.
3226
	  This bug was visible as a black screen when using an MSX1 VDP.
3227
3228
2006-02-21 Wouter Vermaelen <[email protected]>
3229
	* Preparations for run-time switchable machine:
3230
	   - made seperate EventDistributors for 'DETACHED' and 'EMU'
3231
	     listeners.
3232
	   - Reactor now owns MSXMotherboard
3233
	* Fixed HotKey for key release bindings
3234
3235
2006-02-18 Maarten ter Huurne <[email protected]>
3236
	* Use GLEW to handle OpenGL extensions.
3237
	    http://glew.sourceforge.net/
3238
	  From now on, the GL renderer requires GLEW. Note that since the GL
3239
	  renderer is optional, openMSX as a whole does not require GLEW.
3240
	  This commit is based on a patch from BouKiCHi.
3241
3242
2006-02-18 Manuel Bilderbeek <[email protected]>
3243
	* Log warnings to stderr, in stead of stdout
3244
3245
2006-02-17 Wouter Vermaelen <[email protected]>
3246
	* Implemented noise for GL renderer
3247
	* Tweaked order of command line parsing:
3248
	   extensions should come before filename parsing to handle stuff like
3249
	     openmsx -machine msx1 -ext fdd mydisk.dsk
3250
3251
2006-02-15 David Heremans <[email protected]>
3252
	* Added SukkoPera's Slackbuild scripts
3253
3254
2006-02-14 Wouter Vermaelen <[email protected]>
3255
	* Implemented noise for 16bpp modes
3256
	* Optimized non-MMX noise a bit
3257
3258
2006-02-11 Wouter Vermaelen <[email protected]>
3259
	* Added 'brightness' and 'contrast' settings
3260
3261
2006-02-10 Manuel Bilderbeek <[email protected]>
3262
	* CheckedRam now calls a TCL proc that is defined in the new
3263
	  umr_callback setting if an UMR occurs. E.g. try
3264
	  set umr_callback umrcallback
3265
	  umrcallback is an example implementation of such a TCL proc; edit it
3266
	  to your liking.
3267
	  TODO: find a way to automatically skip the UMR's from the boot
3268
	  sequence. (Although the feature is already very usable!)
3269
3270
2006-02-09 Manuel Bilderbeek <[email protected]>
3271
	* Introduced CheckedRam class. See the class documentation for
3272
	  details.
3273
	  TODO: make it useful by adding a usable UMR detector.
3274
3275
2006-02-09 Wouter Vermaelen <[email protected]>
3276
	* Fixed bug, diskimages with spaces in the filename:
3277
	   - since a few days the disk images passed via the commandline
3278
	     execute a TCL command to insert the disk instead of calling a
3279
	     c++ routine (to avoid code duplication). However this went
3280
	     wrong when there were spaces in the filename. I fixed this by
3281
	     avoiding the 'assembling tokens to string' and 'parsing string
3282
	     to tokens' steps.
3283
	* Handle errors in the startup TCL scripts better
3284
	* Speedup noise effect a bit (~10%) by using prefetch instructions
3285
3286
2006-02-08 Wouter Vermaelen <[email protected]>
3287
	* New video effect: noise (experimental)
3288
	   - try "set noise <x>"
3289
3290
2006-02-06 Wouter Vermaelen <[email protected]>
3291
	* Fixed setting initial diskimage via the commandline:
3292
	   - as a bonus -disk<x> now also gives an error on msx machines with
3293
	     no (or too few) drives
3294
	* Don't loose current disk after a failed 'diska' command
3295
3296
2006-02-04 Maarten ter Huurne <[email protected]>
3297
	* Made Konami mapper more accurate, using info from:
3298
	    http://bifi.msxnet.org/msxnet/tech/megaroms.html
3299
	* Made Majutsushi mapper inherit from Konami mapper, since it bascially
3300
	  is a Konami mapper with a DAC added to it.
3301
	* Recycle line buffers used for scaling when openMSX is paused.
3302
3303
2006-02-03 Wouter Vermaelen <[email protected]>
3304
	* Removed 'slot reservation' mechanism in command line parser:
3305
	   - The order of -cart and -ext command line options is now important
3306
	   - This may break catapult in some cases. Combination of
3307
	     slotexpander extensions and other memory mapped extensions (or
3308
	     rom cartridges) can fail now.
3309
	* Better error handling (in particular cleanup after error) when
3310
	  something goes wrong during run-time insertion of extension:
3311
	* Better error handling when removing extensions (e.g. trying to
3312
	     remove a slotexpander that is still in use)
3313
3314
2006-02-02 Wouter Vermaelen <[email protected]>
3315
	* Made FAT buffering more symmetrical:
3316
	   - if FAT sector writes are stored in cache, then FAT sector
3317
	     reads must also come from cache
3318
	   - I don't know this caused problems in the current code, but
3319
	     now it's certainly more robust against future changes
3320
3321
2006-02-02 David Heremans <[email protected]>
3322
	* Decided to keep the FAT buffering and adjust the writeLogical
3323
	  sectors for it to get correct working again. This also repairs
3324
	  formats of existing dsks/partitions etc.
3325
3326
2006-02-01 David Heremans <[email protected]>
3327
	* Fixed a small problem with the media descriptor during the format of
3328
	  a new dsk file. But at first glance the entire FAT buffering need to
3329
	  go, since it might conflict with different sized partitions on a HD
3330
3331
2006-01-28 Wouter Vermaelen <[email protected]>
3332
	* Made MSXSwitchedDevice more robust when inserted/removed dynamically
3333
	* Handle errors in MSXDevice configs better:
3334
	   make sure device is not left partly registered (memory or IO)
3335
	   when there is an error in the device config
3336
3337
2006-01-27 Wouter Vermaelen <[email protected]>
3338
	* Added new cpu-status update event:
3339
	    <update type="status" name="cpu">running</update>
3340
	    <update type="status" name="cpu">suspended</update>
3341
	  The old 'break' and 'resume' update events are deprecated
3342
	* Small cleanups/fixes in JoyTap stuff:
3343
	   - got rid of the "ERROR: Connector still plugged .." messages
3344
	   - removed JoyTapPort class, it was exactly the same as JoystickPort
3345
	   - (minor) removed (lastValue == value) check (no need to do the
3346
	     same optimization twice)
3347
3348
2006-01-27 David Heremans <[email protected]>
3349
	* Added JoyTap and (incomplete) NinjaTap devices
3350
	  The JoyTap is a base class for collector/combinator devices
3351
	  that sit inbetween the MSX joystick ports and the actual
3352
	  joysticks.
3353
3354
2006-01-25 Wouter Vermaelen <[email protected]>
3355
	* Implemented 'list_extensions' and 'remove_extension' commands
3356
	* Converted some fatal errors to normal errors, they can now also
3357
	  get triggered by run-time insertion of extensions
3358
	* Recalculate visible pages when a memory device is added/removed:
3359
	   fixes assert while removing a running game cartridge
3360
3361
2006-01-23 Wouter Vermaelen <[email protected]>
3362
	* Enabled run-time insertion of rom cartridges and extensions:
3363
	   - new commands:
3364
	      ext [extension]
3365
	      cart, cart<x> [romfile]
3366
	* Removed EmuTime (and related) constructors that initialize time at 0:
3367
	   - makes initialization time explicit in the code
3368
	   - fixed some (all?) wrongly initialized timestamps
3369
	     e.g. the new "ext gfx9000" command caused an assert
3370
3371
2006-01-22 Maarten ter Huurne <[email protected]>
3372
	* Added new platform "darwin-app", which can be used to produce a
3373
	  redistributable binary for Mac OS X.
3374
	  Thanks to BouKiCHi for getting static linking to work.
3375
3376
2006-01-21 Wouter Vermaelen <[email protected]>
3377
	* Reduced build-dependencies between source files:
3378
	   - moved most inner classes from hh to cc file
3379
3380
2006-01-20 Wouter Vermaelen <[email protected]>
3381
	* Changed 'locking' of devices (eg. ADVRAM depends on VDP):
3382
	   - it's now specified with <device idref=".."/> tag(s)
3383
	   - can now be handled by generic code
3384
	* Moved ownership of MSXDevices from MSXMotherBoard to HardwareConfig
3385
	  (MSXMotherBoard owns (possibly several) HardwareConfigs):
3386
	   - another preparation for run-time switchable extensions/machines
3387
3388
2006-01-19 Maarten ter Huurne <[email protected]>
3389
	* Added the option not set the window icon from the openMSX process.
3390
	  This is useful for running from an OS X app folder, since the app
3391
	  folder sets a hi-res icon.
3392
3393
2006-01-18 Wouter Vermaelen <[email protected]>
3394
	* Preparations for run-time removable extensions/machines:
3395
	   - keep mamchines and extensions as seperate entities in memory
3396
	   - unregister 'expanded' and 'exernal' slots when the extension
3397
	     or machine is deleted
3398
3399
2006-01-17 Wouter Vermaelen <[email protected]>
3400
	* Refactored CartridgeSlotManager:
3401
	   - allocated external slots are freed again when the MSXDevice
3402
	     using it is destroyed
3403
	   - preparations for removable devices at run-time
3404
3405
2006-01-16 Wouter Vermaelen <[email protected]>
3406
	* CassetteJack cleanup:
3407
	   - changed code style to match rest of openMSX sources
3408
	   - fixed small bug: new[] needs delete[] (iso delete)
3409
	   - more robust error handling
3410
	* Refactored the way how MSXDevice names are made unique
3411
3412
2006-01-15 Maarten ter Huurne <[email protected]>
3413
	* Added "make app" for Mac OS X.
3414
	  It is not yet fully functional, but most is there already.
3415
	  Thanks to BouKiCHi for helping.
3416
3417
2006-01-13 Wouter Vermaelen <[email protected]>
3418
	* Made MSXDevice::getName() return a string by value:
3419
	   is not performance critical and simplifies code in MSXMultiDevice
3420
	* Moved common code of MSXMultiIODevice and MSXMultiMemDevice to
3421
	  new MSXMultiDevice class
3422
	* No need to implement reset(), powerUp(), powerDown() methods in
3423
	  MSXMultiDevice. It's even wrong if they ever get called.
3424
3425
2006-01-11 Wouter Vermaelen <[email protected]>
3426
	* Implemented [ 1320568 ] Preload entire diskimage/ROM:
3427
	   We don't actually keep the image in memory, just read it and
3428
	   discard the result. However the image will stick in the OS
3429
	   cache (only tested on Linux though). This way the "don't preload
3430
	   when not enough free RAM is available" issue is addressed.
3431
	   Tested with both CDROMs and floppy's and it seems to work
3432
	   reasonably well.
3433
3434
2006-01-08 Wouter Vermaelen <[email protected]>
3435
	* Fixed interlace + multi page horizontal scroll also for GLRenderer:
3436
	    with deinterlaced disabled in it's the same fix as for SDLRenderer
3437
3438
2006-01-08 Maarten ter Huurne <[email protected]>
3439
	* Refactoring of GLRasterizer:
3440
	  - only rasterize sprites if the line actually contains sprites;
3441
	    this can make quite an impact on performance
3442
3443
2006-01-07 Maarten ter Huurne <[email protected]>
3444
	* Refactoring of GLRasterizer:
3445
	  - partial preparation for output windows other than 640x480
3446
	  - removed deinterlace code, because the idea was broken;
3447
	    later deinterlace will have to be re-added in a better way
3448
	    (like the SDL renderer has)
3449
	  - store bitmap data in a single large texture rather than one
3450
	    texture per line; this is better for performance
3451
3452
2006-01-06 Wouter Vermaelen <[email protected]>
3453
	* Reenabled 'sdlgl-fb<x>' renderers in non-release versions
3454
	* Made 2x scalers work with non 640 wide output surfaces:
3455
	   preparation to enable 4x scalers later
3456
	* For symmetry also made 1x and 3x scalers output width independent
3457
3458
2006-01-05 Maarten ter Huurne <[email protected]>
3459
	* Split OutputSurface into smaller OutputSurface and VisibleSurface.
3460
	* Use PixelOperations instead of SDL_PixelFormat where possible.
3461
3462
2006-01-05 Wouter Vermaelen <[email protected]>
3463
	* Added support for SDL 'world_<n>' and 'undo' keys.
3464
3465
2006-01-04 Wouter Vermaelen <[email protected]>
3466
	* Report error for key names with multiple non-modifier parts
3467
	   (e.g.   ENTER,A   or  PRINT,UP)
3468
3469
2006-01-04 Maarten ter Huurne <[email protected]>
3470
	* Moved ownership of RenderSettings from MSXMotherBoard to Display.
3471
3472
2006-01-03 Wouter Vermaelen <[email protected]>
3473
	* Fixed combination of interlace and multi-page horizontal scrolling:
3474
	   only for SDL renderer yet. Deinterlacing first needs to be fixed
3475
	   in GL renderer (also use data from previous frame)
3476
3477
2006-01-02 Maarten ter Huurne <[email protected]>
3478
	* Created release branch for openMSX 0.6.0.
3479
3480
2005-12-31 Wouter Vermaelen <[email protected]>
3481
	* Fixed assert when openmsx was quit with simple pluggable still
3482
	  plugged in the printerport.
3483
3484
2005-12-31 Manuel Bilderbeek <[email protected]>
3485
	* Temporarily disabled reporting of filetype of first file on
3486
	  cassette, because this breaks Catapult, and Herman is not there to fix
3487
	  it... This way we can release. TODO re-enable after release and fix
3488
	  Catapult or finally start on the Qt version of Catapult!
3489
	  At this time, I'm talking about line 407 of CassettePlayer.cc.
3490
3491
2005-12-29 Maarten ter Huurne <[email protected]>
3492
	* Allow installation of binary to /usr/local/bin without overwriting
3493
	  binary with a symlink.
3494
	* Check whether the C++ compiler is working.
3495
	  It checks only if the compiler can compile "Hello World!", so it is
3496
	  not guaranteed the compiler supports all C++ features needed to
3497
	  compile openMSX. But the complete absence of a compiler is correctly
3498
	  identified now, instead of reporting that all libraries are missing.
3499
3500
2005-12-28 Maarten ter Huurne <[email protected]>
3501
	* Rewrote "make install" to use the "install" utility instead of "cp"
3502
	  combined with "chmod". The problem was that the "chmod" step did not
3503
	  work on systems where the installed files are spread over multiple
3504
	  directories, such as FreeBSD.
3505
3506
2005-12-27 Maarten ter Huurne <[email protected]>
3507
	* Added support for FreeBSD 6 by making FreeBSD 4 an exception (it has
3508
	  GCC 2.9x as default compiler) and using the same platform Makefile
3509
	  for all other FreeBSD versions.
3510
	* Added support for CPU reported as "amd64" (mapped to "x86_64").
3511
3512
2005-12-27 Wouter Vermaelen <[email protected]>
3513
	* Force PSG portB direction to output:
3514
	   - we already forced portA to input
3515
	   - some msx machines have fixed port directions others not,
3516
	     we should make this configurable per machine in the future
3517
	   - for more details see   [ 1390211 ] joystick problems
3518
3519
2005-12-26 Wouter Vermaelen <[email protected]>
3520
	* Revert cleanup in XMLLoader.cc, it breaks making a connection
3521
	  from openmsx-debugger to openmsx in windows
3522
	* Disabled sdlgl-fb16 and sdlgl-fb32 renderers:
3523
	   they don't offer anything over the existing renderers and
3524
	   sdlgl-fb32 still has endian problems on PPC
3525
3526
2005-12-24 Wouter Vermaelen <[email protected]>
3527
	* Made S1990 registers debuggable
3528
3529
2005-12-23 Wouter Vermaelen <[email protected]>
3530
	* Reverted bug in earlier 'cleanup' in VDPVRAM:
3531
	   - we must use baseAddr to encode 'window is enabled' info because
3532
	     the implementation of isInside depends on it
3533
	   - fixes crash of KV2 MSX1 on turboR
3534
3535
2005-12-20 Wouter Vermaelen <[email protected]>
3536
	* Synchronize CPU and scheduler irregardless of how CPU loop was exited
3537
	  (normally or via breakpoint):
3538
	   - fixes assert when MSX is reset while CPU is breaked
3539
	* Prepare openmsx-0.6.0-rc1
3540
3541
2005-12-18 Wouter Vermaelen <[email protected]>
3542
	* Assert on exceptions that pass through the TCL interpreter:
3543
	   a config error in the ADVRAM extension asserts now (instead of
3544
	   calling terminate()), we're still investigating how to fix it
3545
	* Worked around error from above, clean solution needs dependencies
3546
	  between devices
3547
3548
2005-12-18 Manuel Bilderbeek <[email protected]>
3549
	* Implemented AutoRun feature for cassette software
3550
	  - only works for CAS images, WAV is TODO (more difficult)
3551
	  - experimental; default setting of "autoruncassettes" is off
3552
	  - also tries to autorun if you insert at run time
3553
	  - doesn't work properly on machines with non-international keyboard
3554
	    layout, because the 'type' command doesn't work properly then
3555
	  - please review and feel free to improve it! :P
3556
3557
2005-12-16 Wouter Vermaelen <[email protected]>
3558
	* Properly fix fnano2 bug
3559
	* Implemented horizontal scrolling in character modes
3560
3561
2005-12-14 Arnold Metselaar <[email protected]>
3562
	* Use another bit for planar mode when ADVRAM has no 'enable' function
3563
3564
2005-12-14 Wouter Vermaelen <[email protected]>
3565
	* Made 'enable' function in ADVRAM configurable
3566
3567
2005-12-13 Wouter Vermaelen <[email protected]>
3568
	* Draw scanline in 3x simple scaler deinterlace mode
3569
3570
2005-12-12 Wouter Vermaelen <[email protected]>
3571
	* Implemented deinterlace mode support in RGBTriplet scaler
3572
3573
2005-12-11 Manuel Bilderbeek <[email protected]>
3574
	* Updated the manuals for the new scaler settings. Please review!
3575
3576
2005-12-10 Manuel Bilderbeek <[email protected]>
3577
	* Pass cassetteplayer status to CliComm
3578
3579
2005-12-08 Wouter Vermaelen <[email protected]>
3580
	* Implemented 'openmsx_info setting':
3581
	   It returns a TCL list with:
3582
	    - first element is the type of the setting
3583
	        string, integer, float, enumeration, filename or key
3584
	    - second element is the default value of the setting
3585
	    - third element is optional, for integer and float settings
3586
	      it is a list with the minimum and maximum allowed value. For
3587
	      enum settings it is a list with all possible values.
3588
	* Fixed timing of slowest (no extra wait states) R800 IO instructions
3589
3590
2005-12-07 Wouter Vermaelen <[email protected]>
3591
	* Fixed timing if 'IM n' instruction on R800:
3592
	   should take 3 cycles iso 2
3593
	* Added '-script' command line option:
3594
	   - makes it possible to execute additional startup scripts after
3595
	     the default init.tcl script
3596
3597
2005-12-05 Wouter Vermaelen <[email protected]>
3598
	* Split scaler setting into scale_factor and scale_algorithm
3599
3600
2005-12-04 Wouter Vermaelen <[email protected]>
3601
	* Readd delay on turboR on ports 0x9A and 0x9B:
3602
	   - fixes previous fix for assert on turbor with advram
3603
	   - also prepared code to later add delays on other ports
3604
3605
2005-12-04 Arnold Metselaar <[email protected]>
3606
	* change advram to emulate a newer version that can be switched
3607
	  on and off by software
3608
	* fix assert when using advram on turboR
3609
3610
2005-12-03 Wouter Vermaelen <[email protected]>
3611
	* Small ADVRAM changes:
3612
	   - read device ID ("VDP") from config file
3613
	   - bring coding style in line with the rest of the openmsx code
3614
3615
2005-12-03 Arnold Metselaar <[email protected]>
3616
	* MSXDevice(readIO, peekIO, writeIO): change type of port address
3617
	  to word
3618
	* MSXMotherBoard: add methods lockDevice and releaseDevice to allow
3619
	  interdepencency of devices
3620
	* ADVram: new extension
3621
3622
2005-12-02 Wouter Vermaelen <[email protected]>
3623
	* Handle scaleBlank() via Scaler::scaleImage():
3624
	   - allows to fix the "[1057836] Infinite plasma logo" bug
3625
	   - also properly handle scanlines with non-black border color in
3626
	     deinterlace mode. Previously display area didn't had scanlines
3627
	     while border area had. Now none has scanlines.
3628
3629
2005-12-01 Wouter Vermaelen <[email protected]>
3630
	* Also do realtime syncing when started with none renderer
3631
	* Fixed deinterlace in combination with frameskip
3632
	* Use DoubledFrame to render interlaced (non-deinterlaced) frames:
3633
	   scalers with odd scale factor are rendered better now. For example
3634
	   low scaler also shakes now
3635
3636
2005-11-29 Wouter Vermaelen <[email protected]>
3637
	* Added line scaling in FrameSource:
3638
	   - fixes the 'double screen' bug
3639
	   - improves scaler border effects (but still not completely)
3640
3641
2005-11-27 Manuel Bilderbeek <[email protected]>
3642
	* Made cassetteplayer status query machine readable. Just use
3643
	  'cassetteplayer' to get a TCL list, similar to the diska command.
3644
3645
2005-11-23 Wouter Vermaelen <[email protected]>
3646
	* Added 192kb VRAM support in VDPCmdEngine
3647
3648
2005-11-20 Maarten ter Huurne <[email protected]>
3649
	* Optimised variable zoom factor version of 2xSaI.
3650
	* Used template metaprogramming to instantiate an optimised fixed zoom
3651
	  factor 3xSaI scaler.
3652
3653
2005-11-19 Wouter Vermaelen <[email protected]>
3654
	* Keep icon status in new class (IconStatus) iso in static data of
3655
	  IconLayer:
3656
	   - fixes power led status when openmsx was started with 'none'
3657
	     renderer (catapult)
3658
	* Basic 192kb VRAM support:
3659
	   - only CPU-VRAM interface, no command engine stuff yet
3660
3661
2005-11-19 Maarten ter Huurne <[email protected]>
3662
	* Added the variable zoom factor version of 2xSaI.
3663
	  It is being used to provide 3xSaI at the moment.
3664
	  The current version is very slow though.
3665
3666
2005-11-18 Wouter Vermaelen <[email protected]>
3667
	* Optimized scale3x (c++)
3668
3669
2005-11-18 Manuel Bilderbeek <[email protected]>
3670
	* Updated the manual. Still TODO are the new zoom/scaler-method
3671
	  settings, which are not even programmed yet.
3672
3673
2005-11-16 Maarten ter Huurne <[email protected]>
3674
	* Added a C++ version of Scale3x.
3675
3676
2005-11-16 Joost Damad <[email protected]>
3677
	* yeah that was one year ago since I did an openmsx commit :)
3678
	* use word for casting a pointer to an integral; fixes build on 64bit
3679
	  systems
3680
	* test
3681
3682
2005-11-13 Wouter Vermaelen <[email protected]>
3683
	* Remove all pending after commands on exit
3684
3685
2005-11-13 Wouter Vermaelen <[email protected]>
3686
	* Automatically unschedule SyncPoint when it is deleted:
3687
	   On lots of places we forgot to do this. Will become important
3688
	   when we allow to remove device or switch machine at run time
3689
3690
2005-11-12 Manuel Bilderbeek <[email protected]>
3691
	* Attach to throttleManager, not to throttleSetting.
3692
	* Added keyword 'explicit' to declarations of constructors with only
3693
	  one argument, to prevent undesired implicit conversions. Please do
3694
	  this everywhere applicable from now on!
3695
3696
2005-11-12 Wouter Vermaelen <[email protected]>
3697
	* Allow multiple <mem base="xxx" size="yyy"/> tags per device
3698
	* MSXRam device is now mirrored:
3699
	   Together with change above it's now possible to create RAM like this:
3700
	     <RAM id="my mirrored ram">
3701
	       <mem base="0x2000" size="0x2000"/>
3702
	       <mem base="0xA000" size="0x2000"/>
3703
	       <size>0x2000</size>
3704
	     </RAM>
3705
	   This represents a 8kb RAM that is visible on both 0x2000-0x3FFF and
3706
	   0xA000-0xBFFF
3707
	* Directly using throttleSetting is wrong (should always go via
3708
	  ThrottleManager), so make that impossible
3709
	* Still found a singleton, HardwareConfig. Removed it.
3710
3711
2005-11-11 Manuel Bilderbeek <[email protected]>
3712
	* Removed old add/removeListener calls
3713
	* Removed SettingListener class
3714
3715
2005-11-11 Wouter Vermaelen <[email protected]>
3716
	* PluggingController related cleanups
3717
3718
2005-11-10 Manuel Bilderbeek <[email protected]>
3719
	* Introduced a generic Gamma based Observer pattern, template
3720
	  implementation by Wouter though. Still needs to be used more properly
3721
	  for Setting/SettingListener and ThrottleManager.
3722
3723
2005-11-10 Maarten ter Huurne <[email protected]>
3724
	* Map all even numbered joystick buttons to trig A and all odd numbered
3725
	  joystick buttons to trig B. Before, button 0 was mapped trig A and
3726
	  button 1 was mapped to trig B and if those buttons were not present
3727
	  or not easy to use on your joypad, you were out of luck.
3728
3729
2005-11-08 Wouter Vermaelen <[email protected]>
3730
	* Renamed scaleMxNtoXxY() methods in LowSCaler and 3x Scalers:
3731
	   old named didn't take overscan into account
3732
	* Renamed all scaleNNN() methods in 2x scalers
3733
	* Use DeinterlacedFrame in 2x scalers
3734
3735
2005-11-05 Manuel Bilderbeek <[email protected]>
3736
	* More intelligent 'loading' check for disk drive; if there is no head
3737
	  movement for a while, we assume loading stopped. Works much better
3738
	  for software that doesn't turn off the motor. The timeout is set to
3739
	  one second for now. This may need some tuning still.
3740
3741
2005-11-05 Wouter Vermaelen <[email protected]>
3742
	* Allow more general memory specifications in hardwareconfig.xml:
3743
	   - <mem base=".." size=".."/>
3744
	     base and size no longer need to be multiples of 0x4000
3745
	   - It's now possible to create devices that have 8kb rom and 8kb
3746
	     ram in the same 16kb page.
3747
	* Fixed fullscreen switching in windows
3748
3749
2005-11-04 Manuel Bilderbeek <[email protected]>
3750
	* Implemented an experimental "fullspeedwhenloading" setting.
3751
	  If you turn it on, openMSX will run at full speed when it thinks
3752
	  that the MSX is loading from disk or cassette. It's still a bit dumb
3753
	  for disk as it syncs the motor status... Also, some stuff like
3754
	  RealTime and sound drivers want to get informed if the speed of the
3755
	  emulation changes. This is not passed yet when openMSX goes to
3756
	  full speed due to this new setting. Default is still 'off', of
3757
	  course. Please test this and improve it :P
3758
3759
2005-11-04 Maarten ter Huurne <[email protected]>
3760
	* Renamed scale methods in LowScaler to reflect ratio i.s.o. line width.
3761
	* Finally introduced DeinterlacedFrame class.
3762
	  Right now it is only used by PostProcessor internally, but in the
3763
	  future the scalers will use it too, as a FrameSource.
3764
3765
2005-11-03 Wouter Vermaelen <[email protected]>
3766
	* Fixed assert on 'set power off ; set power on':
3767
	   also cleaned up reset handling code
3768
3769
2005-11-02 Wouter Vermaelen <[email protected]>
3770
	* Only build SDLGLOutputSurface when OpenGL component is selected
3771
3772
2005-11-01 Manuel Bilderbeek <[email protected]>
3773
	* Optimization in RGBTriplet3xScaler: don't really call scale_1on1; if
3774
	  we already have 256 wide lines, there's no need to scale
3775
3776
2005-11-01 Wouter Vermaelen <[email protected]>
3777
	* Use OutputSurface iso directly SDL_Surface in Scalers:
3778
	   - preparation to use other than SDL framebuffers
3779
	   - OpenGL framebuffer code seems to work, but is not yet
3780
	     enabled. Performance is about the same as SDL on my system
3781
	* Experimental. Enabled OpenGL framebuffer renderers:
3782
	   - use 'set renderer sdlgl-fb16' and 'sdl-gl32' to enable them
3783
	   - possibly we disable them for the release
3784
	* Fixed bug in MemoryOps:
3785
	   - need mmxext for streaming stores
3786
3787
2005-10-31 Wouter Vermaelen <[email protected]>
3788
	* Fixed assert when switching video system (hq2x -> hq3x)
3789
	  and leak when switching video system on gfx9000:
3790
	* Small optimization in Simple3xScaler::scaleBlank()
3791
3792
2005-10-30 Wouter Vermaelen <[email protected]>
3793
	* Fixed memory leaks in VideoSystem/Layers stuff:
3794
	   - simplified layer ownership rules: creator now owns the layer
3795
	     iso transferring ownership to Display
3796
	   - added Display::removeLayer(), there was only addLayer()
3797
	   - VideoSystem and Rasterizer objects were never deleted
3798
3799
2005-10-30 Maarten ter Huurne <[email protected]>
3800
	* Moved the switch(lineWidth) statement from PostProcessor to Scaler<N>,
3801
	  as a preparation for renaming the line scale methods.
3802
3803
2005-10-29 Manuel Bilderbeek <[email protected]>
3804
	* Implemented Simple3xScaler with scanlines. Blur is TODO for someone
3805
	  who is interested :P
3806
3807
2005-10-28 Wouter Vermaelen <[email protected]>
3808
	* Implemented border effect for outer left and right border pixels
3809
	  in RGBTriplet3xScaler
3810
	* Fixed Scale_XonY line scalers for case when destination width
3811
	  is not an integer multiple of Y
3812
3813
2005-10-28 Manuel Bilderbeek <[email protected]>
3814
	* Implemented RGBTriplet3xScaler for all widths using the new functors
3815
3816
2005-10-28 Wouter Vermaelen <[email protected]>
3817
	* Added 'Streaming store' tags on line scalers to enable
3818
	  optimizations in Scaler2 and Scaler3
3819
3820
2005-10-27 Wouter Vermaelen <[email protected]>
3821
	* Transformed scale_XonY() methods into functors
3822
	* Changed signature of scale192/384/640/768/1024 methods
3823
	* Factored out scaling algorithm in the base Scaler classes
3824
	* Optimized PixelOperations for 32bpp
3825
	* Implemented 16bpp in RGBTriplet3x
3826
3827
2005-10-26 Manuel Bilderbeek <[email protected]>
3828
	* Implemented adjustable scanline in scaleBlank() for RGBTriplet3x
3829
	  scaler.
3830
	* Let rgbify (in RGBTriplet3x) use pixelOps to access RGB components.
3831
	  Makes it almost work in 16bpp, except for the spill threshold.
3832
	  TODO: fix this and implement other widths (as soon as this can be
3833
	  done without loads of code duplication...)
3834
3835
2005-10-26 Wouter Vermaelen <[email protected]>
3836
	* Changed signature of scale512() method
3837
	* Replaced Blender with PixelOperations class:
3838
	   - puts all blend functions in one place
3839
3840
2005-10-25 Wouter Vermaelen <[email protected]>
3841
	* Moved scanline code from SimpleScaler to new class Scanline
3842
	* Reused scanline code in RGBTriplet3x scaler
3843
	* Made the 'amount of RGB separation' configurable in RGBTriplet3x
3844
	  scaler
3845
3846
2005-10-24 Manuel Bilderbeek <[email protected]>
3847
	* Implemented scaleBlank() for RGBTriplet3x scaler. Still no effect for
3848
	  non-256-wide modes... (so still WIP)
3849
3850
2005-10-24 Wouter Vermaelen <[email protected]>
3851
	* Improved Manuel's RGB scaler (still WIP)
3852
3853
2005-10-23 Manuel Bilderbeek <[email protected]>
3854
	* Added RGBTriplet3x scaler. Emulates a Trinitron effect, including
3855
	  a scanline. This is still very WIP and experimental! Thanks to Wolf
3856
	  for the idea
3857
3858
2005-10-22 Maarten ter Huurne <[email protected]>
3859
	* More preparations for cleaner deinterlacing:
3860
	  - PostProcessor calculates destination Y (in addition to source Y)
3861
	  - Scaler::scaleBlank signature changed to use destination Y
3862
	  - Scaler::scale256 signature changed to use source and destination Y
3863
3864
2005-10-22 Wouter Vermaelen <[email protected]>
3865
	* Put common code for HQ.x scalers in HQCommon.hh
3866
	* Optimized MSXtar:
3867
	   - cache FAT in memory
3868
	* Implemented scaling in IconLayer:
3869
	   - OSD icons now have the same size/position in all scalers
3870
3871
2005-10-21 Wouter Vermaelen <[email protected]>
3872
	* Fixed low and hq3x scalers for v9990
3873
	* Cleaned up Scaler code (mostly for non 2x scale factors)
3874
3875
2005-10-19 Wouter Vermaelen <[email protected]>
3876
	* Added hq3xlite scaler
3877
3878
2005-10-18 Wouter Vermaelen <[email protected]>
3879
	* Added hq3x scaler:
3880
	   - is *very* slow (will try to add hq3xlite later)
3881
	   - there might still be problems in combination with gfx9000
3882
3883
2005-10-17 Wouter Vermaelen <[email protected]>
3884
	* Use unix domain sockets iso internet domain sockets for
3885
	  communication with extrenal programs.
3886
	* Updated Contrib/openmsx-control.cc:
3887
	   made a openmsx-control-socket.cc and a openmsx-control-stdio.cc
3888
	   version
3889
3890
2005-10-11 Wouter Vermaelen <[email protected]>
3891
	* Worked around SDL CAPSLOCK problem:
3892
	   SDL doesn't send proper keyup/down events for CAPSLOCK, instead
3893
	   it sends keydown when key is pressed for the first time and keyup
3894
	   when key is pressed second time.
3895
	   As a workaround we must make an assumption about the duration of
3896
	   the key press (i took 100ms).
3897
3898
2005-10-10 Wouter Vermaelen <[email protected]>
3899
	* Implemented tilde expansion for ~<user> (*nix only)
3900
3901
2005-10-04 Manuel Bilderbeek <[email protected]>
3902
	* Renamed force_play to motorcontrol and some small clean ups.
3903
3904
2005-10-01 Maarten ter Huurne <[email protected]>
3905
	* Fixed IDE on big endian machines.
3906
	  Commit from Bussum MSX fair :)
3907
3908
2005-09-30 Wouter Vermaelen <[email protected]>
3909
	* Fixed help command:
3910
	   - info topics were visible as commands in the help command
3911
	* Fixed reset during pause bug
3912
3913
2005-09-29 Maarten ter Huurne <[email protected]>
3914
	* Fixed screenshot colours of SDL renderer on big endian machines.
3915
3916
2005-09-28 Manuel Bilderbeek <[email protected]>
3917
	* Started implementation of new cassetteplayer CLI.
3918
	  - needs a lot of clean ups, only the CLI part was changed
3919
	  - record subcommand not implemented yet. Needs modifications to
3920
	    WavWriter, to be able to append to existing images. Consequently,
3921
	    readonly-handing is not implemented yet either.
3922
3923
2005-09-26 Wouter Vermaelen <[email protected]>
3924
	* Fixed input delay for MSX keyboard:
3925
	   - Split keyboard events in host and emu events. In the future
3926
	     other events should be split as well
3927
	   - Currently the console code translates host keyboard events
3928
	     into emu keyboard events (only when console is disabled).
3929
	     This should change.
3930
3931
2005-09-26 Wouter Vermaelen <[email protected]>
3932
	* Fixed EmuTime parameter for ASAP sync points
3933
3934
2005-09-24 Arnold Metselaar <[email protected]>
3935
	* CassetteJack
3936
	   - fix output when MSX output varies very rapidly
3937
	   - simple interpolation on input
3938
3939
2005-09-21 Wouter Vermaelen <[email protected]>
3940
	* Automatically plug in cassetteplayer when the MSX machine has a
3941
	  cassetteport:
3942
	   - done with a TCL script for the moment because the list of
3943
	     plugged devices is not (yet) saved by openMSX
3944
3945
2005-09-20 Wouter Vermaelen <[email protected]>
3946
	* CassettePlayer stuff:
3947
	   - cleanups (bring coding style in line with rest of openMSX)
3948
	   - fix wav ouput when MSX output varies very rapidly
3949
	   - update wav header 'regularly' so that wav is already usable by
3950
	     an external program before recording on MSX is completely stopped
3951
3952
2005-09-20 Arnold Metselaar <[email protected]>
3953
	* fix in WavWriter class; totalsize was wrong
3954
	* CassetteJack, CassettePlayer
3955
	   - simple DC removal filter for cassette out signal
3956
	* CassettePlayer
3957
	   - setMute() when recording
3958
	   - stop recording on eject, insert, rewind unplug and destructor
3959
3960
2005-09-19 Wouter Vermaelen <[email protected]>
3961
	* Made WavWriter class:
3962
	   - removed common code from Mixer and CassettePlayer
3963
	   - code should now also work on big endian machines (not tested)
3964
	* Enabled wav writing for CassettePlayer
3965
	* Clear secondary slot registers on reset(!):
3966
	   - fixes reset bug on Sony HB-F500P
3967
3968
2005-09-18 Manuel Bilderbeek <[email protected]>
3969
	* Added a new -testconfig option, which just tries to load the
3970
	  specified machine/extension/etc. config and then exits. Can be used
3971
	  to probe what machine configs are installed correctly, including ROM
3972
	  images
3973
3974
2005-09-17 Wouter Vermaelen <[email protected]>
3975
	* Implemented 'magic key' dongle
3976
	* Fixed assert on reset (happened most often on turbor)
3977
3978
2005-09-14 Wouter Vermaelen <[email protected]>
3979
	* Made RawFrame SDL independent
3980
	* Allign every line in a RawFrame at a 64 byte boundary
3981
3982
2005-09-12 Maarten ter Huurne <[email protected]>
3983
	* Preparations for cleaner deinterlacing:
3984
	  introduced FrameSource as an abstract superclass of RawFrame.
3985
3986
2005-09-12 Wouter Vermaelen <[email protected]>
3987
	* Added EmuTime parameter to peekMem() method
3988
	* Implemented debug reads for FDC's
3989
3990
2005-09-10 Wouter Vermaelen <[email protected]>
3991
	* Fixed some SCC details (needed for playing samples on SCC):
3992
	   - stuff was discovered by NYYRIKKI
3993
	   - see comments SCC.cc for details
3994
3995
2005-09-09 Wouter Vermaelen <[email protected]>
3996
	* update events are now enabled/disabled per connection
3997
3998
2005-09-07 Maarten ter Huurne <[email protected]>
3999
	* Set environment variables though TCL interpreter.
4000
	  Fixes problem on Mac OS X where OPENMSX_(SYSTEM|USER)_DATA is not
4001
	  updated in TCL, causing "init.tcl" to fail.
4002
4003
2005-09-06 Wouter Vermaelen <[email protected]>
4004
	* Added listen_host and list_port_min/listen_port_max settings:
4005
	   - valid values for listen_host are 'all', 'local' and 'none'.
4006
	     Default is 'local'
4007
	   - listen_port_min/max is a range of port number on which openmsx
4008
	     will listen for incomming connection (openmsx session will take
4009
	     the lowest free port, it's a range to allow multiple
4010
	     simultaneous openmsx sesions). Default is 9938 - 9958.
4011
	   - TODO better names for these settings?
4012
	   - TODO documentation
4013
4014
2005-09-05 Arnold Metselaar <[email protected]>
4015
	* Added support for interaction between cassette port and jack
4016
	  audio connection kit
4017
	   - added CassetteJack
4018
	   - moved the generation of samples from Cassette to the Pluggable.
4019
	   - build system updated
4020
	   - description in user.html
4021
4022
2005-09-03 Wouter Vermaelen <[email protected]>
4023
	* Large singleton cleanup (only a few remain now):
4024
	   - singleton classes had a lot a inter-dependencies, it was not
4025
	     possible to make this change in smaller steps
4026
	   - these dependencies still exist, but now there are explicitly
4027
	     visible in the code (in some places it looks ugly now)
4028
	   - TODO break some of these dependencies
4029
4030
2005-09-02 Manuel Bilderbeek <[email protected]>
4031
	* Fixed a bug in the disassembler (thanks for the anonymous poster for
4032
	  telling us about it); it now uses stringstreams iso char arrays.
4033
4034
2005-08-28 Wouter Vermaelen <[email protected]>
4035
	* More singleton cleanups:
4036
	    UserInputEventDistributor, CommandConsole, RenderSettings and
4037
	    Display are no longer singletons
4038
4039
2005-08-25 Wouter Vermaelen <[email protected]>
4040
	* Moved implementation of 'toggle' command to a TCL script
4041
	* Removed CondVar class, it was not used anymore
4042
4043
2005-08-22 Wouter Vermaelen <[email protected]>
4044
	* MSXtar cleanup:
4045
	   - don't use CliComm to print warnings or errors, instead
4046
	     report them as normal TCL output or TCL error msgs
4047
	   - more robust error handling
4048
4049
2005-08-20 Wouter Vermaelen <[email protected]>
4050
	* Added resume update event
4051
4052
2005-08-19 Wouter Vermaelen <[email protected]>
4053
	* Implemented peekIO (debug IO reads) for MSX-AUDIO
4054
4055
2005-08-14 Wouter Vermaelen <[email protected]>
4056
	* V9990 no longer internally renders 640 pixels wide lines. The
4057
	  PostProcessor now scales the lines to the correct width.
4058
	* Extended Scalers with scale192() scale384() scale768() scale1024():
4059
	   TODO find a better way to do this
4060
4061
2005-08-13 Wouter Vermaelen <[email protected]>
4062
	* Use PostProcessor for V9990:
4063
	   - this means scaler, scanline, blur settings have now also effect
4064
	     on V9990 display
4065
	   - TODO all V9990 lines are internally still rendered 640 pixels wide
4066
4067
2005-08-12 Wouter Vermaelen <[email protected]>
4068
	* Changed 'issubslotted' from Debuggable into InfoTopic
4069
	* Added 'isexternalslot' InfoTopic
4070
	* Added 'guess_title' script
4071
4072
2005-08-10 Manuel Bilderbeek <[email protected]>
4073
	* Added -prefix option to screenshot command
4074
	* Moved getName from ScreenShotSaver to FileOperations, with new name
4075
	  "getNextNumberedFilename" and used it in Display and Mixer. Removes
4076
	  code duplication between those 2.
4077
4078
2005-08-10 Wouter Vermaelen <[email protected]>
4079
	* Fixed using precompiled headers:
4080
	   - include guards should be unique in the whole tree
4081
	   - split Icon.hh in Icon.hh and Icon.cc
4082
	* Fixed KeyJoystick:
4083
	   - UserInputEventDistributer can now handle multiple listeners with
4084
	     the same priority
4085
	* Large V9990 speedup:
4086
	   - added faster VRAM access methods, specific for certain display
4087
	     modes
4088
	   - optimized logical operations in V9990CmdEngine with LUT
4089
4090
2005-08-02 Wouter Vermaelen <[email protected]>
4091
	* Added SimpleDebuggable class:
4092
	   made code of most Debuggables a lot simpler
4093
	* Simplified SoundDevice class
4094
4095
2005-07-23 Wouter Vermaelen <[email protected]>
4096
	* Fixed bug in EventDistributor:
4097
	   event order could get swapped for events close together in time
4098
	* Scheduler now keeps sync points with same EmuTime in the same order
4099
	  as they are registered
4100
4101
2005-07-23 Manuel Bilderbeek <[email protected]>
4102
	* Added -nommx and -nommxext command line options, to disable MMX and
4103
	  MMXEXT usage, if available. This is useful only for debugging
4104
	  purposes and may change in the near future.
4105
4106
2005-07-22 Wouter Vermaelen <[email protected]>
4107
	* Implemented resolution changing for low scaler
4108
	* Renamed 'SDLHi' renderer to 'SDL'
4109
4110
2005-07-21 Wouter Vermaelen <[email protected]>
4111
	* Made Scaler interface independent from scale factor:
4112
	   - low scaler works now, although still in a 640x480 window
4113
	* Moved Deinterlacer functionality to Scaler:
4114
	   - preparation for low scaler deinterlacer
4115
	* Implemented deinterlace for low scaler:
4116
	   - no MMX or SSE optimized version yet
4117
4118
2005-07-20 Wouter Vermaelen <[email protected]>
4119
	* Removed SDLLo renderer, SDLLo renderer will be replaced with "low"
4120
	  scaler soon
4121
4122
2005-07-20 Maarten ter Huurne <[email protected]>
4123
	* Split off PostProcessor from SDLRasterizer.
4124
	* Fixed bug in memset4_2_CPP.
4125
	  This was the cause for "[1237004] OSX Tiger GFX bug".
4126
	* Fixed endianness bug in memset_2_helper 16bpp support.
4127
	* Used a different GCC 3.3 bug workaround, because the previous one
4128
	  caused bus errors on Mac OS 10.3.
4129
4130
2005-07-18 Maarten ter Huurne <[email protected]>
4131
	* Introduced RawFrame: a class which contains an unscaled frame.
4132
	  This is an architectural improvement which will later allow bug fixes,
4133
	  cleaner code and new features.
4134
	* Removed NATIVE event listeners (replaced by DETACHED).
4135
4136
2005-07-18 Wouter Vermaelen <[email protected]>
4137
	* Made CPU breaked status queryable with "debug breaked" subcommand
4138
	* Use glTexSubImage2D to reuse existing textures:
4139
	   can be faster in certain OpenGL implementations
4140
4141
2005-07-16 Maarten ter Huurne <[email protected]>
4142
	* Optimized PNG images.
4143
	  I used the tools pngrewrite and OptiPNG.
4144
	* Optimized PNGs some more using advpng.
4145
	* Optimized PNGs some more using pngcrush.
4146
	  Thanks to Wouter for the tip.
4147
4148
2005-07-15 Manuel Bilderbeek <[email protected]>
4149
	* Updated the IDE ROM to version 2.40.
4150
4151
2005-07-14 Wouter Vermaelen <[email protected]>
4152
	* Added "issubslotted" debuggable
4153
	* Reimplemented "slotselect" command as a TCL proc
4154
	* Added "pc_in_slot" TCL proc. Can be used to set a bp in
4155
	  a specific slot.
4156
4157
2005-07-13 Maarten ter Huurne <[email protected]>
4158
	* Fixed the new icon on big endian machines.
4159
4160
2005-07-12 Wouter Vermaelen <[email protected]>
4161
	* Fixed auto saving of settings at exit
4162
4163
2005-07-11 Manuel Bilderbeek <[email protected]>
4164
	* Thanks to Wouter's improvements to CasImage, I could boost the
4165
	  baudrate of cas images to 5520! :) Any more and it blows ;-)
4166
	* Don't use allUp(), but just let key up events through to the MSX
4167
	  when console is active.
4168
4169
2005-07-10 Maarten ter Huurne <[email protected]>
4170
	* Introduced UserInputEventDistributor, as a first step to get rid of
4171
	  the "native" event handlers. This distributor forwards keyboard
4172
	  events to the console or the MSX depending on whether the console is
4173
	  active.
4174
4175
2005-07-07 Wouter Vermaelen <[email protected]>
4176
	* Fixed linking problem for gcc4
4177
	* Fixed inline assembler for gcc4:
4178
	   we need to hide the MMX/SSE registers in the clobber list from the
4179
	   compiler when the target CPU doesn't know about these registers
4180
4181
2005-07-06 Manuel Bilderbeek <[email protected]>
4182
	* Renamed 'eject', 'rewind', 'force_play' and 'no_force_play' to
4183
	  '-eject', '-rewind', '-force_play' and '-no_force_play' in the
4184
	  CassettePlayer.
4185
	* Added completion for these options.
4186
4187
2005-07-05 Wouter Vermaelen <[email protected]>
4188
	* Refactored SoundDevice code:
4189
	    pass estimated EmuTime and EmuDuration to updateBuffer()
4190
	    preparation for DACSound improvements
4191
	* Improved DACSound sound quality:
4192
	    - 2x oversample signal (and downsample with 4th order FIR filter)
4193
	    - use time average to extract the (unfiltered) signal
4194
4195
2005-07-02 Wouter Vermaelen <[email protected]>
4196
	* Implemented stripes for screen6 background
4197
	* Fixed "load_settings" command
4198
4199
2005-06-30 Wouter Vermaelen <[email protected]>
4200
	* Moved vdrive key bindings from openMSX code to vdrive.tcl script
4201
4202
2005-06-29 Wouter Vermaelen <[email protected]>
4203
	* Only save key bindings (settings.xml) that are different from the
4204
	  default key bindings. Added (un)bind_default commands.
4205
	* HQ2xLite cleanup + small speedup
4206
4207
2005-06-27 Wouter Vermaelen <[email protected]>
4208
	* Mute sound when a bp is hit and during turbor HW pause
4209
	* Implemented HW mute bit in turbor PCM device
4210
	* SettingsManager is no longer a singleton
4211
	* Don't save settings that (still) have their default value:
4212
	   - this way the user no longer needs to delete his settings.xml
4213
	     file to get the new default values when he upgrades
4214
	   - TODO: this broke the load_settings command. I'll fix it
4215
	     after keybindings and keyjoystick are refactored
4216
	* Added second keyjoystick:
4217
	    Names are now 'keyjoystick1' and 'keyjoystick2'. This is not
4218
	    backwards compatible with the old name 'keyjoystick'. Do we need
4219
	    a compatibilty thing for this?
4220
	* Made keyjoysticks configurable with settings (iso directly having
4221
	  to edit settings.xml):
4222
	    Setting names are like this 'keyjoystick1.up', 'xx.down', etc
4223
4224
2005-06-26 Wouter Vermaelen <[email protected]>
4225
	* Mixer is no longer a singleton
4226
4227
2005-06-25 Wouter Vermaelen <[email protected]>
4228
	* Implemented stripes in border in screen6
4229
4230
2005-06-23 Herman Oudejans <[email protected]>
4231
	* Fixed problem with saving SRAM to a machine that wasn't used before.
4232
4233
2005-06-20 Wouter Vermaelen <[email protected]>
4234
	* Unrolled inner loops in CharacterConverter:
4235
	   - rendering text2 mode is between 1% and 2% faster now (on total
4236
	     simulation time)
4237
	   - gcc only unrolls loops when the option -funroll-loops is given
4238
	     it's not automatically enabled at any optimization level because
4239
	     it sometimes also creates slower code
4240
	* Changed result format of "diska" command, updated vdrive script
4241
	* Don't use default alpha value in SDL console:
4242
	   When the background image had a contant alpha value (or no alpha
4243
	   value at all) we took a default alpha value. This behaviour is
4244
	   different from the GL Console. It's also not very useful because it
4245
	   prevents using a background with a different (constant) alpha
4246
	   value (or no alpha at all).
4247
4248
2005-06-20 Wouter Vermaelen <[email protected]>
4249
	* Flush PrinterPortLogger data
4250
4251
2005-06-18 Wouter Vermaelen <[email protected]>
4252
	* Fixed problem with event distribution:
4253
	   Current implementation can't handle new subsriptions while events
4254
	   are being distributed. In this case it was easy to avoid but in the
4255
	   future we may have to change the implementation to allow this. I
4256
	   also added some asserts to more easily detect this type of problem
4257
	   in the future.
4258
	* Reimplemented "palette" and "vdpregs" commands as TCL scripts
4259
	* Added Vampiers "setcolor" TCL script (slightly modified)
4260
	* Reimplemented "v9990regs" command as a TCL script
4261
	* Updated cpu.tcl, made a proc to read/write individual registers,
4262
	  see documentation in cpu.tcl for details
4263
	* Implemented SRAM syncing:
4264
	   at most 5 seconds after a write to SRAM the content of the SRAM is
4265
	   saved to disk.
4266
4267
2005-06-17 Wouter Vermaelen <[email protected]>
4268
	* RenShaTurbo is no longer singleton
4269
	* Debugger is no longer singleton
4270
	* Use references iso pointers where possible in VDP code
4271
	* Made memory mapper registers debuggable (MapperIO)
4272
	* Made V99x8 palette debuggable
4273
4274
2005-06-16 Wouter Vermaelen <[email protected]>
4275
	* Large refactoring, get rid of some singletons:
4276
	   MSXMapperIO, MultiIODevice, MSXDeviceSwitch, DummyDevice,
4277
	   PanasonicMemory, MSXCPUInterface, MSXCPU are no longer
4278
	   singletons. Instead the (single) object of this class should
4279
	   be get from MSXMotherBoard. MSXDevices and some other classes
4280
	   now have a backpointer to MSXMotherBoard
4281
	* Get rid of more singletons:
4282
	   PluggingController, CassettePortFactory
4283
4284
2005-06-15 Wouter Vermaelen <[email protected]>
4285
	* Added basic syntax checking for expressions in conditional bp's
4286
4287
2005-06-14 Wouter Vermaelen <[email protected]>
4288
	* Implemented conditional breakpoints:
4289
	    TODO add more documentation and examples
4290
4291
2005-06-13 Wouter Vermaelen <[email protected]>
4292
	* Turbo R hw pause only pauses the CPU, not also all other devices.
4293
4294
2005-06-12 Maarten ter Huurne <[email protected]>
4295
	* Only Schedulable has access to setting and removing sync points.
4296
	* Look for TCL in "lib64" directories as well.
4297
	  Fixes TCL detection on Fedora Core 3 x86-64.
4298
	* Split off Reactor class from MSXMotherBoard. Work in progress.
4299
	* Decided that the "reset" command and the "power" setting apply to a
4300
	  specific MSX machine and therefore belong in MSXMotherBoard.
4301
	  The code that handles that command and setting already assumes that
4302
	  it is called from the Reactor instead of the Scheduler, but this is
4303
	  not yet the case, so currently assertions can be triggered.
4304
4305
2005-06-11 Maarten ter Huurne <[email protected]>
4306
	* Do not initialise SDL if openMSX doesn't start up (-h, --version).
4307
	* Initialise SDL video when the first screen is opened.
4308
4309
2005-06-11 Wouter Vermaelen <[email protected]>
4310
	* More accurate Clock class (when freq is a fraction of 3.58MHz)
4311
	* Also complete "-eject" and "-ramdsk" in "diska" command
4312
4313
2005-06-10 Maarten ter Huurne <[email protected]>
4314
	* CommandLineParser is no longer a singleton.
4315
	* Removed -nosound command line option.
4316
	  Use the "null" sound driver instead.
4317
4318
2005-06-10 Wouter Vermaelen <[email protected]>
4319
	* Small speedup of simple scaler
4320
	* replaced classes with only static methods inside (e.g. StringOp)
4321
	  with a namespace
4322
	* Implemented hard/soft pause bit in turbor (bit 1 in port 0xa7)
4323
	* Removed support for old romdb format
4324
	* Removed support for <romfile>,<romtype>  (use -romtype instead)
4325
	* Use <country> tag in softwaredb
4326
4327
2005-06-10 David Heremans <[email protected]>
4328
	* Added vdrive.tcl script:
4329
	   This scripts allows user to cycle through a uniformaly named
4330
	   diskset. It enables blueMSX users to use the same kind of
4331
	   diskcycling as blue's v-DRIVE if binded to the ALT+F9 hotkey
4332
4333
2005-06-08 Wouter Vermaelen <[email protected]>
4334
	* Removed romdb.xml and romdb.dtd files:
4335
	   These files were already obsoleted by softwaredb.xml. OpenMSX
4336
	   still supports the old format, after the release we'll also
4337
	   remove this.
4338
4339
2005-06-07 Maarten ter Huurne <[email protected]>
4340
	* Updated C-BIOS to 0.21.
4341
4342
2005-06-06 Manuel Bilderbeek <[email protected]>
4343
	* Implemented new icon by Eric Boon (32x32 version).
4344
	* Cleaned up Icon code, to use a slightly modified GIMP C-Source image
4345
	  dump. It's now also easier to put in a larger bitmap.
4346
4347
2005-06-02 Wouter Vermaelen <[email protected]>
4348
	* Fixed background in screen6:
4349
	   only use lower two bits for background color
4350
	   TODO use stripes
4351
4352
2005-05-28 David Heremans <[email protected]>
4353
	* introduced a quick-fix:
4354
	   The minial bootsector in MSXtar is, at the moment,
4355
	   created for a 360KB disk. For now the minimal
4356
	   partition size is forced to this size as well.
4357
4358
2005-05-25 Wouter Vermaelen <[email protected]>
4359
	* Removed 'useFile' sub command from 'diskmanipulator':
4360
	   the new 'virtual_drive' replaces its functionality
4361
	* Refactored DiskDrive code:
4362
	   factored out disk changing code into DiskChanger class
4363
	* Added 'virtual_drive':
4364
	   this drive is always available (even in power off state),
4365
	   its main use is for the diskmanipulator stuff
4366
4367
2005-05-24 Wouter Vermaelen <[email protected]>
4368
	* Merged Maarten's 'close socket stuff' patch:
4369
	   - should fix exit problems on OSX
4370
4371
2005-05-24 David Heremans <[email protected]>
4372
	* Enhanced the 'diskmanipulator import' function:
4373
	  It now accepts a list of files and directories as arguments
4374
4375
2005-05-23 Wouter Vermaelen <[email protected]>
4376
	* Renamed 'eject' and 'ramdsk' to '-eject' and '-ramdsk'
4377
	* Renamed 'filemanipulator' to 'diskmanipulator'
4378
	* Removed diskmanipulator sub command 'usePartition'
4379
4380
2005-05-22 Manuel Bilderbeek <[email protected]>
4381
	* Literally reVamped default console background and font! ;-)
4382
	  ConsoleFontRaveLShaded is default font now, ConsoleBackgroundGrey
4383
	  is default background (see poll). Added some others as well. All
4384
	  graphical work was done by Patrick van Arkel.
4385
4386
2005-05-21 Wouter Vermaelen <[email protected]>
4387
	* R800 timing improvements:
4388
	   CAS/RAS optimization only works for internal RAM,
4389
	   timing tests in R800-ROM look a lot better now
4390
4391
2005-05-20 Wouter Vermaelen <[email protected]>
4392
	* fixed R800 memory access timing:
4393
	   - accessing internal RAM (or some ROMs in DRAM mode) takes 1 cycle
4394
	   - accessing internal ROM takes 2 cycles
4395
	   - accessing external slot takes 3 cycles
4396
4397
2005-05-19 Wouter Vermaelen <[email protected]>
4398
	* R800 timing fix:
4399
	   - retn reti instructions takes 5 cycles (2 more than a simple 'ret',
4400
	     that's unexpected if you look at the Z80 timings)
4401
	   - tweaked CAS/RAS optimization a bit, also optimize data fetches,
4402
	     but still don't optimize between opcode and data fetched
4403
	     I have no idea whether it really works like this, but the test
4404
	     results are better now
4405
4406
2005-05-18 Wouter Vermaelen <[email protected]>
4407
	* R800 timing fix:
4408
	   di instruction takes 2 cycles (ei takes just 1)
4409
4410
2005-05-16 Manuel Bilderbeek <[email protected]>
4411
	* Added Sony HB-F700D config. Interesting characteristics are:
4412
	  256kB RAM, German ROMs (nice for German users), broken_fdc_read=true
4413
4414
2005-05-14 Wouter Vermaelen <[email protected]>
4415
	* Made WD2793 code more robust:
4416
	   Something _could_ go wrong when a new command was started while the
4417
	   previous command was still busy. This might fix the drive problems
4418
	   seems by vampier, mth and shevek but it might also be something
4419
	   completely different.
4420
4421
2005-05-14 David Heremans <[email protected]>
4422
	* More FileManipulator stuff
4423
	  - get feedback on curretn situation from 'useFile', 'usePartition'
4424
	    and 'chdir' in the same was as our 'set <variable>' commands work
4425
	  - fixed small bug concerning non partitioned devices
4426
4427
2005-05-11 David Heremans <[email protected]>
4428
	* More FileManipulator help
4429
4430
2005-05-11 Wouter Vermaelen <[email protected]>
4431
	* Improved build time (~15% faster full build here):
4432
	   - split EmuTime.hh in EmuTime.hh EmuDuration.hh Clock.hh and
4433
	     DynamicClock.hh
4434
	   - don't #include <iostream> in openmsx.hh in non-debug builds
4435
	     PRT_DEBUG macro is not checked anymore for syntax errors in
4436
	     non-debug builds now, but I think that's not a big problem
4437
4438
2005-05-09 David Heremans <[email protected]>
4439
	* Added support for linux style partitionnumbers in the FileManipulator
4440
4441
2005-05-09 Wouter Vermaelen <[email protected]>
4442
	* Fixed linking problem with gcc-4.x:
4443
	   explicit template instantiation must be done _after_ template
4444
	   definition and implementation
4445
	* Improved timer accuracy of MSX-AUDIO / OPL4:
4446
	   thanks to Daniel for figuring this out
4447
4448
2005-05-07 Wouter Vermaelen <[email protected]>
4449
	* Large MSXtar / Filemanipulator (and related stuff) cleanup
4450
4451
2005-05-06 Wouter Vermaelen <[email protected]>
4452
	* Implemented missing WD2793 feature, interrupt on index pulse:
4453
	   - fixes 'write protected' message while formatting read-only disk
4454
	     images
4455
4456
2005-05-06 David Heremans <[email protected]>
4457
	* MSXtar Work-In-Progress:
4458
	   - limited disk/partitions to 65535 sectors for now to solve
4459
	     the 'create disk of 32MB' problem.
4460
	   - improved bootsector guessing in the MSXtar constructor
4461
	     and commented it out already :-)
4462
	   - check against directory removals done by the emulated MSX
4463
	   - fixed some compile warnings
4464
4465
2005-05-05 Patrick van Arkel ([email protected])
4466
	* Added trainers.tcl to the scripts directory
4467
	  - This file will enable the users to 'cheat' games
4468
4469
2005-05-03 Wouter Vermaelen <[email protected]>
4470
	* Console refactoring:
4471
	   - simplified code / fixed a bug
4472
	* Use Tcl_DeleteCommandFromToken iso Tcl_DeleteCommand to unregister
4473
	  TCL commands: is safer when the user uses 'rename' on the commands
4474
	* Correctly fill in the 'LBA size' field in the IDEHD 'Identify Block':
4475
	   patch made by Adriano Camargo Rodrigues da Cunha
4476
4477
2005-05-03 Wouter Vermaelen <[email protected]>
4478
	* Fixed -nosound option:
4479
	   - also marked as deprecated
4480
4481
2005-05-04 David Heremans <[email protected]>
4482
	* MSXtar Work-In-Progress:
4483
	   - new chdir,mkdir and dir command.
4484
	   - registering of IDEHD now done by the IDE controller
4485
	     which adds a Master or Slave indication to the name
4486
	   - enabled '.' and '..' support in some MSXtar routines
4487
	   - while cleaning up the code I added some verbose error
4488
	     messages in case of failure or wrong usage
4489
4490
2005-05-02 David Heremans <[email protected]>
4491
	* MSXtar Work-In-Progress:
4492
	   - partition info per DiskContainer device
4493
	   - new format and useFile command.
4494
	   - renamed getDir/AddDir to import/export
4495
	   - IDEHD import seems to work :-)
4496
	   - 'create'-command works but IDE sector 0 is not fully correct yet.
4497
	   - extra documentation file concerning the filemanipulator
4498
4499
2005-04-29 Patrick van Arkel ([email protected])
4500
	* added a new rom database after some cleanups
4501
4502
2005-04-28 Daniel Vik ([email protected]) (commited by Patrick van Arkel)
4503
	* added support for windows timers
4504
	* fixed directX sound driver for win32
4505
	* added RealTime.cc
4506
	  (Please talk to Daniel about line 96)
4507
4508
2005-04-28 David Heremans <[email protected]>
4509
	* MSXtar Work-In-Progress:
4510
	   - the IDEHD is now accessible for the FileManipulator.
4511
	   - partition support is comming along nicely.
4512
	   - you can already do a 'getDir' to export an MSX-IDEHD partition
4513
	     to your host-OS. No importing yet
4514
	   - untested create dsk image code with partition support :-)
4515
4516
2005-04-28 Manuel Bilderbeek <[email protected]>
4517
	* Fixed a small bug in IDE HD.
4518
4519
2005-04-25 Wouter Vermaelen <[email protected]>
4520
	* Experimental directX sound driver for win32:
4521
	   - I don't have a windows machine so this code is NOT TESTED
4522
4523
2005-04-24 Manuel Bilderbeek <[email protected]>
4524
	* Added EXPERIMENTAL AND UNTESTED build support for the following CPUs.
4525
	  DEC Alpha, ARM, HP PA-RISC, IA-64, Motorola 680x0, MIPS (Big and
4526
	  Little Endian), IBM S/390.
4527
	  Everything should work (endianness is OK), but we have no systems to
4528
	  test on. Let's wait until someone complains that it doesn't work and
4529
	  then fix it (if needed at all).
4530
4531
2005-04-23 Wouter Vermaelen <[email protected]>
4532
	* Extended IPS patch support:
4533
	   - support IPS files with internally overlapping regions
4534
	   - support IPS files that extend the orginal file size
4535
	* Added sound_driver setting:
4536
	   currently only 'null' and 'sdl' drivers
4537
4538
2005-04-21 Maarten ter Huurne <[email protected]>
4539
	* Made openMSX relocatable on Mac OS X.
4540
	  It looks for the "share" directory first in the directory containing
4541
	  the executable and the search goes up one directory until it is found.
4542
4543
2005-04-21 Wouter Vermaelen <[email protected]>
4544
	* Split Mixer in generic sample generation part and sound system
4545
	  dependant sound output part:
4546
	   - preparation to support other sound systems later (eg DirectSound)
4547
4548
2005-04-20 David Heremans <[email protected]>
4549
	* MSXtar Work-In-Progress:
4550
	   - using the temporary addDir/getDir you can now import/export
4551
	     host-directories (and its subdirs) into a dsk image.
4552
	   - Creating some extra classes to later on facilitate IDEHD
4553
	     registration with FileManipulator, and add FileManipulator
4554
	     functionallity to work with dsk-images without the use of
4555
	     drives of a running MSX session.
4556
4557
2005-04-19 Manuel Bilderbeek <[email protected]>
4558
	* Added support for Sparc CPUs.
4559
4560
2005-04-14 Wouter Vermaelen <[email protected]>
4561
	* MSXtar cleanup / fixes:
4562
	   - fixed compilation on windows (not actually tested):
4563
	      the type field 'd_type' in the struct 'dirent' is not generally
4564
	      available (not on windows for example)
4565
	   - lots of small cleanups (mainly layout)
4566
4567
2005-04-13 Wouter Vermaelen <[email protected]>
4568
	* Refactored V9990 'renderUntil' related code:
4569
	   should fix pixel accurate rendering
4570
4571
2005-04-13 David Heremans <[email protected]>
4572
	* Got the needed routines to add files/subdirs to a dsk image into
4573
	  msxtar code.The code compiles but doesn't work yet. Going from
4574
	  an all-in-memory model to a one-sector-at-a-time model introduced
4575
	  a lot of partial (and untested) rewrites and some quick hacks.
4576
4577
2005-04-11 Wouter Vermaelen <[email protected]>
4578
	* Implemented V9990 vertical scroll rolling in Bx modes
4579
4580
2005-04-09 Wouter Vermaelen <[email protected]>
4581
	* Improved SCC sound quality
4582
	   - during (very) short periods of silence, waveform counters
4583
	     should continue to increase (major improvement)
4584
	   - copied filter code from BlueMSX (minor improvement)
4585
	* Enabled pixel/line accurate rendering for V9990 (WIP)
4586
4587
2005-04-09 Manuel Bilderbeek <[email protected]>
4588
	* Switched the two YM2413 cores again. Okazaki is now default, because
4589
	  it sounds better now. Regarding drums, some sound better in Okazaki,
4590
	  some in Burczynski (e.g. the cymbal). Ideally the drums
4591
	  should be switchable and the normal FM should always be Okazaki.
4592
	  Thanks to Wolf for judging the sound quality.
4593
4594
2005-04-04 David Heremans <[email protected]>
4595
	* Actually trying to get the format routines from the original
4596
	  msxtar into openMSX. The idea is that this new class will perform
4597
	  the real work, and the File/DiskImageManipulator will invoke msxtar
4598
	  as needed
4599
4600
2005-04-05 Wouter Vermaelen <[email protected]>
4601
	* Fixed / cleaned up FileManipulator and RamDSK code:
4602
	  still TODO:
4603
	   - proposal: rename FileManipulator to DiskImageManipulator?
4604
	   - proposal: change "diska ramdsk" to "diska -ramdisk [<name>]"
4605
	     (note: ramdsk vs ramdisk (or just ram?))
4606
	   - keep ramdisk contents when disk is ejected/reinserted
4607
	   - automatically format ramdisk on first insert
4608
	* Simplified all SectorsBasedDisk subclasses
4609
4610
2005-04-04 David Heremans <[email protected]>
4611
	* Filemanipulator: tab completion.
4612
4613
2005-04-02 Maarten ter Huurne <[email protected]>
4614
	* Refactored AY8910Interface and renamed to AY8910Periphery.
4615
	  Main difference is the discovery that peek and read actually are the
4616
	  same thing on this interface, not just in the implemenation but in
4617
	  the conceptual model as well.
4618
4619
2005-04-01 Manuel Bilderbeek <[email protected]>
4620
	* WIP: make Okazaki core more like 0.61
4621
	* Swapped default and alternative YM2413 cores, because Okazaki core
4622
	  is very broken at the moment. CHECK points need to be checked by
4623
	  Wouter still
4624
4625
2005-04-01 David Heremans <[email protected]>
4626
	* Next step to integrate msxtar into openMSX:
4627
	  The creation of the RamDSK class, to allow ramdisk like dsk usage
4628
	  Doesn't seem to work yet though :-)
4629
4630
2005-04-01 David Heremans <[email protected]>
4631
	* First steps to integrate msxtar into openMSX:
4632
	  The creation of the FileManipulator class
4633
4634
2005-03-31 Wouter Vermaelen <[email protected]>
4635
	* More YM2413 fixes (ported from v0.55)
4636
	* Swapped default and alternative YM2413 cores:
4637
	   is easier to test this way, if results are good, this might stay
4638
	   the default order
4639
4640
2005-03-29 Manuel Bilderbeek <[email protected]>
4641
	* Tried to adapt Okazaki YM2413 core in openMSX to make it look more
4642
	  like the original code (version 0.55, from NLMSX, thanks Frits).
4643
	  WIP!
4644
4645
2005-03-28 Wouter Vermaelen <[email protected]>
4646
	* Handle TCL events in openmsx event loop:
4647
	   - makes Patrick's webserver script work
4648
	   - preparation for Tk integration
4649
4650
2005-03-25 Herman Oudejans <[email protected]>
4651
	* fixed -control stdio on windows. With this option, the
4652
	  StdioConnection was not created.
4653
4654
2005-03-21 Wouter Vermaelen <[email protected]>
4655
	* Split CliComm in CliComm and CliServer:
4656
	   - fixed assert on startup (CliComm must be instantiated in main
4657
	     thread)
4658
	* Added cheat.tcl:
4659
	   written by Patrick van Arkel <[email protected]>
4660
	   see share/scripts/cheat.tcl for a short explanation
4661
4662
2005-03-19 Wouter Vermaelen <[email protected]>
4663
	* Implemented step_in, step_over and run_to as TCL procs
4664
	* Try to listen on ports 9938-9958 (iso just 9938), and print a
4665
	   warning (iso crash) when none of these is available
4666
4667
2005-03-18 Wouter Vermaelen <[email protected]>
4668
	* Fixed crash on missing argument for 'debug set_bp/remove_bp'
4669
	* Implemented "debug disasm" command:
4670
	   with this command Boukichi's 4 debugger commands (offered as a
4671
	   patch on openmsx-0.5.1) can be implemented as simple TCL scripts
4672
4673
2005-03-17 Wouter Vermaelen <[email protected]>
4674
	* Tiny SDLGL improvement:
4675
	   - use glRect() to draw rectangles with a single color iso GL_QUADS
4676
	* Experimental: enable window resizing in GL renderer
4677
	   - For some reason it doens't work yet in character modes
4678
	   - I read that on windows you need to reload all textures after a
4679
	     resize. I couldn't test this but if it's true resizing currently
4680
	     doesn't work in windows
4681
	   - By default the resizing is disabled, to enable it comment out
4682
	     line 110 in src/video/SDLGLVideoSystem.cc
4683
4684
2005-03-16 Wouter Vermaelen <[email protected]>
4685
	* Fixed MSX-AUDIO sample RAM detection:
4686
	   UR always detected 256kb
4687
	   AR always detected   0kb  both are fixed now
4688
4689
2005-03-14 Wouter Vermaelen <[email protected]>
4690
	* Fixed minor(?) rounding error in SCC
4691
4692
2005-03-14 Wouter Vermaelen <[email protected]>
4693
	* Split CliComm class in CliComm and CliConnection:
4694
	   helps to keep the c-macros defined in windows.h more local
4695
	* Only accept connections from local host:
4696
	   it's still a security risk (hostile local users) but much less
4697
	   already.
4698
4699
2005-03-13 Manuel Bilderbeek <[email protected]>
4700
	* Implemented soundlog toggle command.
4701
	* Implemented tabCompletion for soundlog command and partially for
4702
	  after command
4703
	* Stop logging sound when frequency setting is changed.
4704
	  Alternative: ignore frequency change when logging sound.
4705
4706
2005-03-13 Herman Oudejans <[email protected]>
4707
	* Fixed win32 compile errors
4708
	  TODO:
4709
	  - 2 warnings
4710
	  - better integration of wsock32 in the buildsystem
4711
4712
2005-03-12 Manuel Bilderbeek <[email protected]>
4713
	* Added basic code to record openMSX sound to wav file. It is not used
4714
	  yet, but one can test it by uncommenting 2 lines.
4715
	* Added soundlog command to start and stop recording of sound.
4716
	  There is still a lot TODO - see the comment in Mixer.cc
4717
4718
2005-03-12 Wouter Vermaelen <[email protected]>
4719
	* Added socket support:
4720
	   - openmsx now listens to incomming connections on TCP/IP port 9938
4721
	     when a connection is established the same communication is
4722
	     possible as with the CliComm stuff over stdio
4723
	   - For the moment port 9938 is open for everyone: security hole!
4724
	     Sockets should be explicitly enabled and by default only for
4725
	     local connections
4726
4727
2005-03-11 Wouter Vermaelen <[email protected]>
4728
	* Fixed various warnings:
4729
	   - doxygen warnings
4730
	   - compiler warnings while compiling with -Wall -Wextra
4731
	   - previous compiler warings with also -DNDEBUG
4732
4733
2005-03-10 Wouter Vermaelen <[email protected]>
4734
	* Added HQ2xLite scaler:
4735
	   Resulting image is close to hq2x but can be calculated a lot faster
4736
	   See comments at the top of HQ2XLiteScaler.cc for details.
4737
	* Changed include guards from __FOO_HH__ to FOO_HH:
4738
	   Identifiers that contain a double '_' or that start with a '_'
4739
	   are reserved for system headers. Currently our include guards work
4740
	   but it might give problems in the future.
4741
4742
2005-03-08 Wouter Vermaelen <[email protected]>
4743
	* HQ2xScaler speedup
4744
4745
2005-03-05 Maarten ter Huurne <[email protected]>
4746
	* Released openmsx-0.5.1.
4747
4748
2005-03-05 Manuel Bilderbeek <[email protected]>
4749
	* Added Sony HB-F1II config and corrected HB-F1 config.
4750
4751
2005-03-05 Maarten ter Huurne <[email protected]>
4752
	* Added support for Checkmark FM Stereo PAK.
4753
	  The stereo effect is not yet emulated, but it works fine in mono.
4754
	  Thanks to Albert for the config XML.
4755
4756
2005-03-04 Wouter Vermaelen <[email protected]>
4757
	* Also accept the enter key on the numerical pad in the console
4758
4759
2005-03-03 Wouter Vermaelen <[email protected]>
4760
	* In deinterlace mode render always two consecutive frames:
4761
	   When every other frame is skipped deinterlacer worked on 1 new
4762
	   frame and 1 very old frame. Fixed by rendering (not necessarily
4763
	   drawing) always two consecutive frames.
4764
4765
2005-03-03 David Heremans <[email protected]>
4766
	* Replaced 'fallback LEDs' with variant of set1
4767
4768
2005-03-02 Wouter Vermaelen <[email protected]>
4769
	* Last minute db format change:
4770
	   type for normal roms is now structured like this
4771
	   <rom> <type>normal</type> <start>0x4000</start> ... </rom>
4772
	* romtypes should start with capital (e.g. 'Normal' iso 'normal)
4773
4774
2005-03-01 Wouter Vermaelen <[email protected]>
4775
	* Don't send LED events when LED status didn't change:
4776
	   fixes the slowdowns in sphere
4777
4778
2005-02-28 Wouter Vermaelen <[email protected]>
4779
	* Fixed warnings while compiling with -Wextra (all harmless)
4780
4781
2005-02-27 Wouter Vermaelen <[email protected]>
4782
	* video code was not exception safe, fixed it:
4783
	   - when an excpetion was thrown some objects were not deleted or
4784
	     even deleted twice
4785
	* Accept sha1sums in db in both upper and lower case
4786
	* Fixed debug reading from ioports
4787
4788
2005-02-27 Manuel Bilderbeek <[email protected]>
4789
	* Also check if <rom> entries have a <type> child. Fixes Synthesizer.
4790
4791
2005-02-26 Patrick van Arkel <[email protected]>
4792
	* Updated the softwaredb.xml thanks to Mars2000you for providing
4793
	  an updated version of his rom list.
4794
4795
2005-02-26 Wouter Vermaelen <[email protected]>
4796
	* Renamed new db to softwaredb.xml
4797
	* added new db:
4798
	   thanks a lot to Vampier for creating the new db and tools
4799
4800
2005-02-21 Wouter Vermaelen <[email protected]>
4801
	* fixed cassette WavImage DC correction:
4802
	    forgot to properly clip signal
4803
4804
2005-02-21 Wouter Vermaelen <[email protected]>
4805
	* Replaced 'plain' mapper type with 'mirrored' and 'normal', makes it
4806
	  easier to implement the new database mapper types:
4807
	   - for backwards compatibility 'plain' is treated as an alias for
4808
	     'mirrored'
4809
	   - it's also possible to specify the start address of the rom like
4810
	     this 'mirrored4000', 'normal8000', ... (start address must be
4811
	     a multiple of 4000)
4812
	* Fixed parsing of romtype for 'plain' roms in database
4813
4814
2005-02-19 Wouter Vermaelen <[email protected]>
4815
	* Update for new romdb
4816
4817
2005-02-19 Manuel Bilderbeek <[email protected]>
4818
	* Updated the manuals a bit more, regarding C-BIOS 0.20 and support
4819
	  for Mac OS X and OpenBSD. Maarten, please check and fix if needed.
4820
4821
2005-02-18 Wouter Vermaelen <[email protected]>
4822
	* Implemented frameskip for gfx9000:
4823
	   I mostly copied code from V99x8 renderer, we might want to factor
4824
	   this common code out in the future
4825
4826
2005-02-17 Wouter Vermaelen <[email protected]>
4827
	* Added locking to EventDistributor:
4828
	   There was a race in EventDistributor (long time already).
4829
	   Today I got a crash because of this race (irreproducible),
4830
	   so apparently it's hard to trigger. I hope it's fixed now.
4831
	* More P1 mode performance tweaks
4832
4833
2005-02-16 Wouter Vermaelen <[email protected]>
4834
	* Fixed sprites in P1 mode:
4835
	   - Erik did all the hard work, I just had to fix one line ;-)
4836
	   - Battle Bomber works now!
4837
	* Fixed color of backdrop color in P1 mode
4838
	* Optimized P1 rendering a bit:
4839
	   just some tweaks, algorithm needs to change for really better
4840
	   performance (Eric already has some ideas I believe)
4841
4842
2005-02-16 Eric Boon <[email protected]>
4843
	* Initial implementation P1 sprites (~15 fps :-/)
4844
		- HiSpec Snowfall demo shows wrong sprite patterns
4845
4846
2005-02-14 Wouter Vermaelen <[email protected]>
4847
	* Fixed more compiler warnings (all harmless):
4848
	    compiled with gcc version 4.0.0 20050212 (experimental)
4849
	* Initial support for new rom database format:
4850
	    - both old and new format are supported
4851
	    - support for new format is very minimal, for example
4852
	      lang="xx" attributes are ignored
4853
4854
2005-02-13 Maarten ter Huurne <[email protected]>
4855
	* Added build support for OpenBSD (3.6 RELEASE, to be exact).
4856
	  Thanks to Ariane for testing!
4857
	* Updated C-BIOS to 0.20, including new directory structure.
4858
4859
2005-02-13 Manuel Bilderbeek <[email protected]>
4860
	* Rerenamed ROM types that we already agreed on for the new standard
4861
4862
2005-02-11 Wouter Vermaelen <[email protected]>
4863
	* Fixed compilation errors / warnings when compiling with gcc-4.0(exp)
4864
4865
2005-02-09 Manuel Bilderbeek <[email protected]>
4866
	* We forgot to replace "brokenFDCread" by "broken_fdc_read" in about
4867
	  17 different config files, before 0.5.0! OOOPS!
4868
4869
2005-02-08 Wouter Vermaelen <[email protected]>
4870
	* Reduced the 'black flashes' in SDLGL renderer:
4871
	   see comments in Display::repaintDelayed() for details
4872
	* Fixed switching renderer while in overscan mode
4873
	   (bug was introduced by me two days ago)
4874
4875
2005-02-07 Wouter Vermaelen <[email protected]>
4876
	* Added 'none' icon set
4877
	* Fixed a (the?) 'pure virtual method called' bug:
4878
	   an Alarm object was deleted in main thread while it was
4879
	   executing in another thread
4880
4881
2005-02-06 Wouter Vermaelen <[email protected]>
4882
	* Fixed CPU tracing (patch created by Maarten)
4883
	* Fixed(?) sporadic crash when switching renderer on MSX1:
4884
	   - this is quick fix, needs more work after release
4885
	   - needs lots of testing
4886
4887
2005-02-05 Manuel Bilderbeek <[email protected]>
4888
	* Split Philips VG 8020 config in VG 8020 and VG 8020/20.
4889
	  Penguin Adventure works on both now, when using the right ROMs.
4890
	  Thanks to Hans Otten for his kind assistance
4891
4892
2005-02-04 Wouter Vermaelen <[email protected]>
4893
	* Fixed all warning when compiling with icc
4894
	* Fixed V9990 palette initialization when switching renderer
4895
	   (sdlhi <-> sdllo)
4896
4897
2005-02-03 Manuel Bilderbeek <[email protected]>
4898
	* Added extension for MSX-AUDIO 2. This is an Y8910 on the alternative
4899
	  I/O ports (C2/C3), without the MIDI part of the Music Module
4900
4901
2005-02-03 Wouter Vermaelen <[email protected]>
4902
	* Fixed harmless(?) UMR in AY8910 code
4903
4904
2005-02-02 David Heremans <[email protected]>
4905
	* Fixed a minor announce in the load_icon tcl script
4906
	   and added extra SDLLo checks
4907
	   and a TCL hint from Wouter
4908
4909
2005-02-01 Wouter Vermaelen <[email protected]>
4910
	* documented icon related settings
4911
	* Fixed 13-bit MSX-AUDIO DAC
4912
4913
2005-02-01 David Heremans <[email protected]>
4914
	* An extra set of LED images.
4915
	* Enhanced the load_icon tcl script
4916
4917
2005-01-31 David Heremans <[email protected]>
4918
	* Changed default led settings
4919
4920
2005-01-31 Wouter Vermaelen <[email protected]>
4921
	* Implemented V9990 SRCH command
4922
	* XIMM bits (R#6) are ignored in Px modes
4923
	* Implemented V9990 BMLL command
4924
	* BMLL is always done on interleaved VRAM
4925
	* Fixed V9990 VRAM interleaving:
4926
	   together with previous item fixes scrolling in power basic
4927
4928
2005-01-30 Wouter Vermaelen <[email protected]>
4929
	* When a new settings is created and a TCL variable with the same name
4930
	  is alreday defined, then take this value as initial setting value:
4931
	   fixes icon stuff defined in init.tcl when openmsx is started with
4932
	   enderer none (-control mode)
4933
	* Only use one .filecache file for all rom pools:
4934
	   this file is put in the (writable) user directory
4935
4936
2005-01-29 Wouter Vermaelen <[email protected]>
4937
	* Extended "disk[x]" console command to accept IPS patches:
4938
	   diska <dsk> [<ips1> [<ips2> [..]]]
4939
4940
2005-01-28 Wouter Vermaelen <[email protected]>
4941
	* Allow IPS patches for disk images:
4942
	   only on the command line, not yet in the console
4943
	* Allow multiple IPS patches on the same rom/disk
4944
4945
2005-01-27 David Heremans <[email protected]>
4946
	* Updated the LED images.
4947
4948
2005-01-26 Wouter Vermaelen <[email protected]>
4949
	* Don't save "mute" setting, at least not until we have an OSD
4950
	  indication for this
4951
4952
2005-01-26 Manuel Bilderbeek <[email protected]>
4953
	* Updated documentation. TODO: MacOS X and C-BIOS stuff
4954
4955
2005-01-25 Wouter Vermaelen <[email protected]>
4956
	* Machine code executes faster is loop is aligned (on 16 byte boundary
4957
	  for athlon CPUs):
4958
	   I measured 1.5% speedup because of this
4959
4960
2005-01-24 Manuel Bilderbeek <[email protected]>
4961
	* Made a separate extension for MegaRAM Disk
4962
	* Updated ROM types to new names in romdb.xml; also commented out some
4963
	  useless ROMs, because they only occur inside machines or extensions
4964
4965
2005-01-24 Wouter Vermaelen <[email protected]>
4966
	* Fixed Clock<> constructor:
4967
	    rounding is not needed(?) it's even wrong
4968
	* Fixed tab-complettion for consolebackground
4969
4970
2005-01-22 Eric Boon <[email protected]>
4971
	* First steps towards V9990 P2 mode
4972
	* Some P1 fixes
4973
4974
2005-01-21 Eric Boon <[email protected]>
4975
	* First steps towards V9990 P1 mode
4976
4977
2005-01-20 Wouter Vermaelen <[email protected]>
4978
	* Fixed some valgrind stuff (UMR, FMR)
4979
4980
2005-01-18 Wouter Vermaelen <[email protected]>
4981
	* Implemented V9990 IRQ stuff:
4982
	   not completely correct yet, but good enough to make the xor-demo
4983
	   work
4984
4985
2005-01-17 Wouter Vermaelen <[email protected]>
4986
	* Removed more #include dependencies
4987
	* Fixed compilation errors on icc
4988
	* Added missing #ifdef ASM_X86:
4989
	   should fix compilation on non-x86 machines
4990
4991
2005-01-15 Wouter Vermaelen <[email protected]>
4992
	* Refactored XMLElement related classes:
4993
	    preparartion to fix the 'order of construction of settings'
4994
	    problem (e.g. inputdelay)
4995
	* Reenabled "inputdelay" setting
4996
	* Implemented "load_settings" command:
4997
	    only the settings / keybindings / keyjoystick that are mentioned
4998
	    in the new settings file are changed, the rest stays unchanged
4999
	* Implemented "escape_grab" command
5000
5001
2005-01-13 Wouter Vermaelen <[email protected]>
5002
	* Various small cleanups:
5003
	   mostly use auto_ptr to break #include dependencies (for non time
5004
	   crititical classes)
5005
	* Also grab input when "grabinput" settings was already "true" when
5006
	  openmsx is started
5007
5008
2005-01-11 Wouter Vermaelen <[email protected]>
5009
	* Lookup original filename inside zip/gz for filetype detection:
5010
	   this fixes [ 1072797 ] Detect extensions if i use a zipped file too
5011
	* Implemented rotational delay for WD2793:
5012
	   fixes [ 905031 ] Graphic problem in Peach up
5013
5014
2005-01-10 Wouter Vermaelen <[email protected]>
5015
	* Fixed gfx9000 border color
5016
5017
2005-01-08 Wouter Vermaelen <[email protected]>
5018
	* Z80 speedup:
5019
	   union optimization is actually a pessimization on modern CPUs (and
5020
	   an optimizing compiler)
5021
	* Fixed [ 823686 ] console is included in frameskip and speed setting:
5022
	   also fading of console and LEDs was wrong
5023
5024
2005-01-05 Wouter Vermaelen <[email protected]>
5025
	* Changed command line parsing of IPS files and rom type:
5026
	  - There are two new options "-ips" and "-romtype" these must
5027
	    immediatly follow a ROM option. Examples:
5028
	      openmsx -carta USAS.ROM -ips USAS.IPS -romtype konami
5029
	      openmsx USAS.ROM -romtype konami -ips USAS.IPS
5030
	      openmsx -cart USAS.ROM -romtype konami
5031
	      openmsx USAS.ROM -ips USAS.IPS
5032
	  - The old format <romfile>,<mappertype> is still supported but is
5033
	    deprecated, it will be removed in future versions. The temporary
5034
	    format <romfile>,<mappertype>,<ipsfile> is already removed. It
5035
	    gives parsing problems in case of filenames that contain ','
5036
	    itself.
5037
5038
2005-01-04 Maarten ter Huurne <[email protected]>
5039
	* Fixed initialisation of clock in autofire circuit.
5040
5041
2005-01-04 Wouter Vermaelen <[email protected]>
5042
	* Split Display.xx files in Display.xx and Layer.xx
5043
	* Moved fps code from (V99x8) Renderer to Display:
5044
	   "openmsx_info fps" now also works for gfx9000
5045
	* Icon fade parameters can now be configured per icon image:
5046
	   for example it's now possible to never fade out an active FDD LED
5047
	* Fixed crash when settings.xml had empty or invalid consolebackground
5048
	* Added some LED images (drawn by David) and a script to load them
5049
5050
2005-01-03 Wouter Vermaelen <[email protected]>
5051
	* Implemented deinterlace for V9990
5052
	* Better frameskip implementation (skip more code)
5053
	* Don't draw V99x8/V9990 when V9990/V99x8 is active
5054
	* Made special videosource setting:
5055
	   don't allow to select gfx9000 source without gfx9000 extension
5056
5057
2004-12-31 Wouter Vermaelen <[email protected]>
5058
	* Fixed V9990 palette read-out
5059
	* Completed V9990 YUVP and YJKP modes (palette part was missing)
5060
	* Integrated blueMSX' HBI-55 improvements. Thanks Daniel!
5061
5062
2004-12-30 Eric Boon <[email protected]>
5063
	* Fixed dOxygen warnings
5064
5065
2004-12-30 Wouter Vermaelen <[email protected]>
5066
	* Fixed bug in V9990 cmds (address masking bug):
5067
	   underwater demo works now!
5068
	* Support V9990 screen enable/disable bit
5069
	* Implemented cursor in V9990 Bx modes
5070
5071
2004-12-29 Wouter Vermaelen <[email protected]>
5072
	* Added v9990cmdtracing setting
5073
5074
2004-12-28 Eric Boon <[email protected]>
5075
	* Improved V9990 simple scaler
5076
		Fixes 'no V9990 updates' problem in M$ Windows
5077
5078
2004-12-28 Wouter Vermaelen <[email protected]>
5079
	* Implemented V9990 LINE command:
5080
	    MSX3D works now
5081
	* Implemented V9990 CMMC command
5082
	* Fixed V9990 cmd engine bug that could cause blue colors in 16bpp mode
5083
5084
2004-12-27 Eric Boon <[email protected]>
5085
	* Introduced FinishFrameEvent for V9990
5086
5087
2004-12-27 Manuel Bilderbeek <[email protected]>
5088
	* Rom type naming clean up part 1. TODO: romdb.xml, class/file names
5089
5090
2004-12-27 Wouter Vermaelen <[email protected]>
5091
	* Implemented "openmsx_info romtype" command:
5092
	   only the code, no actual descriptions yet
5093
	* Split rom type names in standard names and alternative names:
5094
	   preparation for rom type naming cleanup
5095
	* support for write mask in V9990 commands:
5096
	   gfx9000 parts in calculus work now!
5097
	* Fixed "debug break" command
5098
5099
2004-12-26 Eric Boon <[email protected]>
5100
	* Improved V9990 YUV and YJK modes:
5101
		copied bitmap conversion from V99x8 code
5102
5103
2004-12-26 Wouter Vermaelen <[email protected]>
5104
	* Integrated Adriano's MegaRAM diskrom patch
5105
	* Fixed bug in reading from compressed files:
5106
	   zipped IPS files work now
5107
	* Fixed (harmless) assert that got triggered on exit when IO ports
5108
	  were shared
5109
	* Changed invalidateCache() method:
5110
	   - 2nd argument is now size in bytes iso in number of cachelines
5111
	     this loosens the dependency on the CPU class
5112
5113
2004-12-25 Wouter Vermaelen <[email protected]>
5114
	* Fixed crash on missing LED icon files
5115
5116
2004-12-24 Wouter Vermaelen <[email protected]>
5117
	* More V9990 stuff
5118
	   - implemented interlace modes  (no de-interlacing yet)
5119
	       V9BMP shoud now work completely
5120
	   - made palette debuggable
5121
	   - read palette registers hack to make calculus work
5122
	   - stubbed unimplemented cmds
5123
	   - implemented PSET cmd  shifter:
5124
	      shifter part in calculus now shows something, colors are still
5125
	      wrong because of missing WriteMask(?) in commands
5126
	   - implemented CMMM cmd (but not verified that it actually works)
5127
	   - added BMXL and BMLX cmds (still have bugs though)
5128
	   - implemented horizontal scrolling, not per-pixel and no rolling
5129
	     yet, but enough for page-flips
5130
5131
2004-12-23 Wouter Vermaelen <[email protected]>
5132
	* Tried to make the gfx900 parts in calculus work (not yet succeeded)
5133
	   - implemented LMMM command
5134
	   - added very basic HR, VR status bit support
5135
	   - bugfix in LMMC command
5136
5137
2004-12-22 Wouter Vermaelen <[email protected]>
5138
	* simple (slow) implementation of V9990 LMMV command
5139
5140
2004-12-21 Wouter Vermaelen <[email protected]>
5141
	* a few V9990 fixes:
5142
	   - unimplemented cmds should still finish
5143
	   - implemented CE and TR status bits
5144
	   - YUV, YJK conversion formula's were wrong
5145
	        U and V are 6 bit signed and resulting R G B values must be
5146
	        clipped to 0 .. 31
5147
	     autumn.g9b (YUV image) still looks wrong though
5148
5149
2004-12-18 Wouter Vermaelen <[email protected]>
5150
	* Cleanup/optimize V9990BitmapConvertor
5151
	* Store V9990 palette as GRB iso RGB:
5152
	   - format in V9990 video RAM is also GRB, emulation is faster
5153
	     if both use the same format
5154
5155
2004-12-16 Wouter Vermaelen <[email protected]>
5156
	* Turn off all LEDs when MSX is powered down
5157
5158
2004-12-15 Wouter Vermaelen <[email protected]>
5159
	* Large cleanup:
5160
	   - prefer not to use the 'using' statement in header files,
5161
	     in implementation files it is ok
5162
	   - removed unnecessary #include statements
5163
	* Use FilenameSetting iso StringSetting for all filenames:
5164
	    previously it was only possible for already existing files
5165
	* Fixed UMR in WD2793 formatting routine
5166
5167
2004-12-13 Wouter Vermaelen <[email protected]>
5168
	* Fixed TurboR DRAM support, TRCAS works now
5169
5170
2004-12-12 Manuel Bilderbeek <[email protected]>
5171
	* Removed the annoying [alpha] notice. It's clear enough we're alpha...
5172
	  :)
5173
5174
2004-12-10 Wouter Vermaelen <[email protected]>
5175
	* x/y-coord and on/off-image of the LED icons can be configured
5176
	* icon fade delay and duration can be configured
5177
5178
2004-12-09 David Heremans <[email protected]>
5179
	* replaced the ips-patch separator. It is now also the ','-sign
5180
	  and updated the documentation
5181
5182
2004-12-09 Wouter Vermaelen <[email protected]>
5183
	* Refactored setting code:
5184
	   - redesigned class structure: settings no longer need to be
5185
	     non-inheritable
5186
5187
2004-12-04 Wouter Vermaelen <[email protected]>
5188
	* Fixed (+ cleanup) IPS patch code
5189
5190
2004-12-04 Herman Oudejans <[email protected]>
5191
	* Made a quickfix for romloading in windows. Using another character
5192
	  for ips-patch separator would be highly recommended. ':' is used
5193
	  between drive and path in Windows.
5194
5195
2004-12-03 David Heremans <[email protected]>
5196
	* Added more code for IPS patcher, but it is not yet functional.
5197
5198
2004-12-02 Wouter Vermaelen <[email protected]>
5199
	* Added fading to console
5200
5201
2004-12-01 David Heremans <[email protected]>
5202
	* Preparations for integrated IPS patcher
5203
	* Replaced the test OSD leds with something more fancy that shows the
5204
	  alpha channel of the png better
5205
5206
2004-12-01 Maarten ter Huurne <[email protected]>
5207
	* Moved coverage and z-index from LayerInfo into Layer.
5208
	  This also fixes an undefined memory read when Display is destructed.
5209
5210
2004-11-29 Maarten ter Huurne <[email protected]>
5211
	* Fixed base port of debug device.
5212
5213
2004-11-29 Eric Boon <[email protected]>
5214
	* Fixed broken build for non-GL systems
5215
	* Improved V9990 Command engine a bit
5216
5217
2004-11-29 Wouter Vermaelen <[email protected]>
5218
	* Major CPU cleanup:
5219
	   replaced macro hack with c++ templates
5220
	* Reduced size of internal mixer buffer:
5221
	   - should reduce sound latency a bit
5222
	   - sound quality seems not affected, but it needs a lot more
5223
	     testing. So please test!!!
5224
5225
2004-11-27 Manuel Bilderbeek <[email protected]>
5226
	* Implemented a fallback for the detectGeometry function in Disk for
5227
	  sectorbased disk images. Fixes booting of SVI-738 CP/M disk, which
5228
	  doesn't have a valid MSX bootsector :)
5229
5230
2004-11-26 Eric Boon <[email protected]>
5231
	* Add V9990 Command Engine
5232
	* Implemented LMMC
5233
5234
2004-11-22 Wouter Vermaelen <[email protected]>
5235
	* Merge romdb.xml in user and system dir
5236
5237
2004-11-20 Wouter Vermaelen <[email protected]>
5238
	* Changed buffer managment in sound code:
5239
	   - Mixer now allocates/deallocates buffers iso the sounddevice
5240
	   - preparation for run-time changeable frequency/samples settings
5241
	* Changes to 'frequency' and 'samples' settings takes immediate effect,
5242
	  no longer needed to restart openMSX
5243
	* Value of 'samples' setting must always be a power of 2
5244
5245
2004-11-15 Wouter Vermaelen <[email protected]>
5246
	* Only send events on actual changes:
5247
	* Use different image for led on/off, fade out the image if it doesn't
5248
	  change for some time
5249
5250
2004-11-14 Wouter Vermaelen <[email protected]>
5251
	* Experimental: alternative Mixer implementation
5252
	   - generate audio in main emulation thread
5253
	   - CPU-timed samples sound much better now (turbor PCM,
5254
	     PSG samples, ..)
5255
5256
2004-11-14 Wouter Vermaelen <[email protected]>
5257
	* Initial version of OSD LEDs:
5258
	   very minimal version, it uses
5259
	       <openmsx-dir>/share/skins/led.png
5260
	   for all LEDs. Icons are still shown at fixed positions
5261
5262
2004-11-13 Wouter Vermaelen <[email protected]>
5263
	* cleanup dasm code:
5264
	* fixed 'cmdtiming setting'
5265
	* use events for LEDs:
5266
	   preparation for OSD leds
5267
5268
2004-11-10 Wouter Vermaelen <[email protected]>
5269
	* Improved WD2793 timing:
5270
	   added 15us delay between data read/write in sector read/write cmds
5271
5272
2004-11-08 Wouter Vermaelen <[email protected]>
5273
	* Enabled "cputrace" setting also in non-debug versions:
5274
	   - There should now be very little overhead when tracing is not
5275
	     enabled. Before it was 1 if per Z80 instruction.
5276
5277
2004-11-08 Joost Damad <[email protected]>
5278
	* updated debian/rules: fixes by Goedson Teixeira Paixao
5279
5280
2004-11-06 Wouter Vermaelen <[email protected]>
5281
	* a few small improvements
5282
	* clear ram on power off/on
5283
5284
2004-11-03 Wouter Vermaelen <[email protected]>
5285
	* Moved speed and throttle setting to GlobalSettings:
5286
	   as cleanup and as preparation for Mixer changes
5287
	* Changed float to double everywhere:
5288
	   On modern CPUs doubles and float are equally fast. However mixing
5289
	   floats and doubles in the same expression is slower because of the
5290
	   extra conversions. In some places we need the extra precision, so
5291
	   using double everywhere is the easiest (and faster).
5292
	   If you have large datasets floats can be faster than doubles. Not
5293
	   because of faster calculation, but because of less memory transfers
5294
	   (float 4 bytes / double 8 bytes). For openMSX this doesn't matter.
5295
5296
2004-11-02 Wouter Vermaelen <[email protected]>
5297
	* Removed Disk and Tape BIOS patches
5298
	* Fixed cassetteplayer noise
5299
5300
2004-11-01 Wouter Vermaelen <[email protected]>
5301
	* small VDP fix:
5302
	   missing sync() on r#7 change in GRAPHIC7 mode with screen disabled
5303
5304
2004-10-31 Maarten ter Huurne <[email protected]>
5305
	* At end of HMMC and LMMC, TR should not be reset.
5306
	* Reading and writing the COL register should reset TR.
5307
	* VR status flag flips at start of left border.
5308
5309
2004-10-26 Eric Boon <[email protected]>
5310
	* Improved V9990 displaying:
5311
		- proper PAL & NTSC imaging in Bx modes
5312
5313
2004-10-25 Maarten ter Huurne <[email protected]>
5314
	* Non-maskable interrupt (NMI) implementation:
5315
	  - was half implemented already; now it's fully implemented
5316
	  - moved edge detection from old nmiEdge() to new raiseNMI():
5317
	    an NMI request could get lost if the NMI line was raised and
5318
	    lowered within 1 CPU instruction (a mostly theoretical case)
5319
	  - IRQHelper can raise either IRQ (maskable) or NMI
5320
	  - this is preparation for ColecoVision support
5321
	* Moved MC6850 from "sound" directory to "serial" directory.
5322
5323
2004-10-23 Maarten ter Huurne <[email protected]>
5324
	* Removed slow_drain_on_reset RAM configuration parameter.
5325
	  All our current configurations had it set to "false".
5326
	  And we don't really know how the drain works nor what should be
5327
	  considered "slow".
5328
	* Removed <slow_drain_on_reset> from the configuration XML files.
5329
5330
2004-10-22 Maarten ter Huurne <[email protected]>
5331
	* Added build support for NetBSD.
5332
	  Based on a patch submitted by xtraeme, see bug 1052115.
5333
5334
2004-10-19 Wouter Vermaelen <[email protected]>
5335
	* Reused MMX optimized routines in Deinterlacer
5336
5337
2004-10-19 Wouter Vermaelen <[email protected]>
5338
	* Fixed SETetisDongle: unused bits should be 1 iso 0
5339
	* reenabled "I/O ports" debuggable, but renamed to "ioports"
5340
	* added MSXDevice::peekIO() method:
5341
	   - Reading from ioports debuggable no longer influences emulation
5342
	     state
5343
	   - Not yet implemented for all devices (not for V99x8, V9990 and
5344
	     MSXAudio). For these devices peekIO() returns 0xFF
5345
5346
2004-10-19 Joost Damad <[email protected]>
5347
	* sync with debian/
5348
	* updated manpage and control file
5349
	* support for cleaning up CVS/ dirs for "install" and "dist"; still
5350
	  commented out
5351
5352
2004-10-18 Eric Boon <[email protected]>
5353
	* GFX900 emulation
5354
		- Bx modes & belonging palettes
5355
		- start of SDL Rasterizer, dummy GL rasterizer
5356
5357
2004-10-18 Maarten ter Huurne <[email protected]>
5358
	* Released openmsx-0.5.0.
5359
5360
2004-10-18 Wouter Vermaelen <[email protected]>
5361
	* forgot some "up"->"release" renames
5362
	* Added MMX optimizations in Scale2x scaler
5363
5364
2004-10-17 Maarten ter Huurne <[email protected]>
5365
	* Separated frameStart and frameEnd for SpriteChecker.
5366
	  Fixes asserts when using "none" renderer.
5367
5368
2004-10-16 Wouter Vermaelen <[email protected]>
5369
	* Improved TC8566AF timing:
5370
	   - based on code from BlueMSX written by Daniel Vik
5371
	   - fixes corrupt gfx in "Swiss Demo" and "Gazzel"
5372
	* For the renderer setting, take the value found in settings file (if
5373
	  any) as default value:
5374
	   - this fixes the "Catapult always uses SDLHi" problem
5375
	* Also recognize zip files with extension ".ZIP" (uppercase)
5376
	* Fixed reading 1st FAT sector in detectGeometry() routine
5377
	* Fixes in Command Line Parser:
5378
	   - stuff like
5379
	        openmsx -h -machine turbor     and
5380
	        openmsx -v -ext scc
5381
	     works now
5382
	   - code is not very clear, should be rewritten after release
5383
	* Created V9990DummyRasterizer:
5384
	   - fixes crash when renderer "none" was selected when gfx9000
5385
	     extension was plugged in
5386
	* Added scripts/cycle.tcl
5387
	* Added workaround for "renderer none bug":
5388
	   need to investigate this after further the release
5389
	* Renamed "up" and "down" key modifiers to "release" and "press":
5390
	   names conflicted with the "up" and "down" cursor keys
5391
5392
2004-10-15 Wouter Vermaelen <[email protected]>
5393
	* Fixed coredump on missing arguments on the command line:
5394
	   e.g. "openmsx -diska"
5395
5396
2004-10-14 Maarten ter Huurne <[email protected]>
5397
	* Added default key binding: ALT-Enter for full screen.
5398
	  Windows users are familiar with this hotkey.
5399
	* Fixed bug: search for TCL again on every "make probe".
5400
5401
2004-10-13 Maarten ter Huurne <[email protected]>
5402
	* Disabled "I/O ports" debuggable:
5403
	  - it reads I/O ports with side effects, which can trigger assertions
5404
	  - the name "I/O ports" is not suitable as a file name for "save_all"
5405
	  We can re-enable and then fix it after the release.
5406
5407
2004-10-13 Joost Damad <[email protected]>
5408
	* import of debian/
5409
	* some non-intrusive changes to the build/ dir
5410
	* Contrib moved when installed to share/
5411
	* bad timing of changes :(
5412
	* not softlink, but symbolic link
5413
5414
2004-10-12 Wouter Vermaelen <[email protected]>
5415
	* Correctly restore saved cpu freq settings:
5416
	   - When z80_freq_locked was saved as 'false', you had to do
5417
	     set z80_freq_locked true ; set z80_freq_locked false to
5418
	     really get the wanted behaviour.
5419
	   - Thanks to patatof for reporting this bug.
5420
5421
2004-10-11 Wouter Vermaelen <[email protected]>
5422
	* fixed scc and Panasonic_FS-CA1 extensions:
5423
	    mappertype tag was moved
5424
	* DirAsDsk fix:
5425
	   - check for null ptr from localtime()
5426
	   - this fixes (not verified) a crash in win32 when DisAsDsk is used
5427
	     with files with weird dates (1913-11-16 or 2023-08-07)
5428
5429
2004-10-10 Maarten ter Huurne <[email protected]>
5430
	* Fixed assert in SimpleScaler when interlace is on and deinterlace
5431
	  is off.
5432
5433
2004-10-10 Herman Oudejans <[email protected]>
5434
	* Fixed getting user dir when "My Documents" is set to the
5435
	  root of a drive in windows.
5436
5437
2004-10-09 Maarten ter Huurne <[email protected]>
5438
	* test release openmsx-0.5.0-test2 (Bussum 2004)
5439
5440
2004-10-08 Maarten ter Huurne <[email protected]>
5441
	* Fixed crash if openMSX exits without starting emulation.
5442
	* Ignore old-format settings.xml at startup instead of aborting.
5443
	* Fixed help option if no settings.xml exists.
5444
5445
2004-10-07 Manuel Bilderbeek <[email protected]>
5446
	* Renamed save_settings_at_exit to save_settings_on_exit
5447
	* Renamed FrontSwitch to FirmwareSwitch everywhere in the code
5448
5449
2004-10-07 Wouter Vermaelen <[email protected]>
5450
	* Fixed crash on exit in FreeBSD:
5451
	   - was order of destruction of global objects problem
5452
	* Fixed Screenshot code in 16bpp:
5453
	   conversion routine to 24bpp read 2 bytes outside the array.
5454
	   Although it didn't actually use these bytes, it could trigger a
5455
	   segfault. Fixed by using the SDL convserion routines (probably
5456
	   faster as well).
5457
	* Don't plug printer logger with an invalid log file
5458
5459
2004-10-06 Manuel Bilderbeek <[email protected]>
5460
	* Renamed frontswitch to firmwareswitch
5461
5462
2004-10-06 Wouter Vermaelen <[email protected]>
5463
	* Only allow existing machines to be selected with machine setting.
5464
	* Fall back to "cbios-msx2" when the selected machine no longer
5465
	  exists.
5466
	* Removed warning for missing settings.xml
5467
5468
2004-10-05 Wouter Vermaelen <[email protected]>
5469
	* saving_settings didn't work when file didn't exist yet
5470
	* updated all machine configurations to new file format:
5471
	   thanks to mth for writing the convertor script!
5472
	* test release openmsx-0.5.0-test1
5473
	* fixed sprite color bug:
5474
	   in planar modes the sprite color table was not read correctly (bit
5475
	   masking error)
5476
5477
2004-10-04 Wouter Vermaelen <[email protected]>
5478
	* Don't use exceptions to report unconnected drive in ready() method:
5479
	   - this was quite heavily used in the MSX boot sequence, and caused
5480
	     100% CPU usage for several seconds.
5481
	* Increased speed of type command
5482
	* Moved location of <mappertype> tag to a more logical position
5483
	* <PanasonicRom> tag needs an id attribute to give a warning in case
5484
	  the SHA1 doesn't match
5485
	* default binding for pause key must be "toggle pause" iso just "pause"
5486
	* renamed <MapperType> tag to <MapperReadBackBits>
5487
	* Check the DOCTYPE SYSTEM part when reading in xml files
5488
5489
2004-10-03 Maarten ter Huurne <[email protected]>
5490
	* Updated configuration converter.
5491
5492
2004-10-03 Wouter Vermaelen <[email protected]>
5493
	* Fixed simple
5494
	* Don't autodetect mapper type for roms in machine configs
5495
	* Oops, the guessLocation routine in RomPlain still used the old
5496
	  config format:
5497
	    this broke the firmware on some machine (e.g. Panasonic FS-A1F)
5498
5499
2004-10-03 David Heremans <[email protected]>
5500
	* Fixed Tetris 2 special edition dongle
5501
5502
2004-10-02 Wouter Vermaelen <[email protected]>
5503
	* Force PSG portA to be programmed as input port:
5504
	   some programs (e.g. Match Maniac) wrongly program portA as output,
5505
	   but on most(?) MSX machines this works normally (e.g NMS8250)
5506
	* Fixed initial value of mode settings
5507
	* correctly give "write protected" err msg on read only disk:
5508
	   without the head loaded delay our WD2793 detected too fast that the
5509
	   disk was write protected (too fast for the disk rom software)
5510
	* assertion in Clock was a bit too strict:
5511
	   very low clock frequencies (~1Hz) are not allowed (because we use a
5512
	   32bit variable iso 64 bit for speed). But the assertion was already
5513
	   triggered by frequencies around 100Hz. Renshaturbo circuit uses
5514
	   such low frequencies.
5515
5516
2004-10-01 Wouter Vermaelen <[email protected]>
5517
	* Improved disk geometry detection heuristics
5518
	* Fixed save_settings command:
5519
	   - when settings were loaded from system wide settings.xml file, save
5520
	     them to user settings.xml file
5521
	   - when settings were loaded from a user specified settings file,
5522
	     save them to that file
5523
	* fixed quoting in tab-completion:
5524
	    the chars [ ] $ must be quoted in TCL
5525
	* use xmlFree() iso free() to release memory from libxml
5526
5527
2004-09-30 Wouter Vermaelen <[email protected]>
5528
	* Removed the MSXConfig::loadConfig method that was resposible for the
5529
	  media settings bug. It's no longer used now.
5530
	* Fixed type commando:
5531
	   sometimes the first chr was missed
5532
	* Fixed "-setting" command line option:
5533
	   Settings were loaded wrong when the -setting option was given. Was
5534
	   a problem in the order of creation of settings (no settings may be
5535
	   created before the settings.xml is loaded). Current code is a bit
5536
	   fragile in this respect. Refactor it after the release.
5537
5538
2004-09-29 Wouter Vermaelen <[email protected]>
5539
	* Removed settings.xml from CVS
5540
	* media settings (diska, diskb, cassette) were wrongly saved:
5541
	   - once a "save_settings" command was executed with a disk inserted
5542
	     from the commandline this disk was always used, even if in the
5543
	     next run a different disk was specified.
5544
	   - should media settings be saved? Current (fixed) implementation
5545
	     does not save them to not break catapult. But should they be
5546
	     saved in the future?
5547
5548
2004-09-28 Wouter Vermaelen <[email protected]>
5549
	* Moved default keybindings from init.tcl to HotKey code
5550
	* Updated commands.txt
5551
	* Use built-in default values for KeyJoystick in case the config
5552
	  section is missing in the settings file
5553
5554
2004-09-27 Wouter Vermaelen <[email protected]>
5555
	* Use #ifdef iso if around asm routines
5556
	* Added normal-MMX (non-ext-MMX) routines for every ext-MMX routine
5557
	* Made a setting for "user directories"
5558
	* Simple scaler 16bpp scanline optimization:
5559
	   - added ext-MMX routine, improves speed from 69s to 51s
5560
5561
2004-09-26 Arnold Metselaar <[email protected]>
5562
	* Let Keyboard and KeyJoystick release all keys when the console
5563
	  becomes active.
5564
5565
2004-09-26 Wouter Vermaelen <[email protected]>
5566
	* Don't print "couldn't find file" warnings on startup
5567
5568
2004-09-26 Maarten ter Huurne <[email protected]>
5569
	* At end of HMMC and LMMC, CE is reset immediately, but TR is reset
5570
	  the next time S#2 is read.
5571
	  Fixes Andorogynus.
5572
	  Thanks to the anonymous poster on our forum who pinpointed the change
5573
	  which made this bug surface first. Even though reverting that change
5574
	  was not a solution, it did point to the HMMC command timing being the
5575
	  problem.
5576
5577
2004-09-24 Maarten ter Huurne <[email protected]>
5578
	* Fixed assert in Mixer on unmute if initial state was muted.
5579
	* Load settings file specified with "-setting" from UserFileContext,
5580
	  but load the files it refers to using SystemFileContext.
5581
	  Fixes console look when openMSX is started with "-setting" option.
5582
5583
2004-09-24 Wouter Vermaelen <[email protected]>
5584
	* Take default settings value when saved value is no longer valid
5585
	* Integrated blur scaler and simple scaler:
5586
5587
2004-09-23 Wouter Vermaelen <[email protected]>
5588
	* Implemented TC8566AF format command:
5589
	   based on code from BlueMSX written by Daniel Vik
5590
	* Don't save soundchip mode setting:
5591
	   it gave conflicts with the mode setting in hardwareconfig.xml
5592
5593
2004-09-23 Maarten ter Huurne <[email protected]>
5594
	* Initialise I register to 0, instead of 0xFF.
5595
	  Fixes Pennant Race bug.
5596
	  Thanks to Daniel Vik for finding the cause!
5597
5598
2004-09-21 Wouter Vermaelen <[email protected]>
5599
	* Added "save_settings_at_exit" setting
5600
5601
2004-09-20 Wouter Vermaelen <[email protected]>
5602
	* Initialize the msx sound devices even if there is no openMSX sound:
5603
	  - solves UMR (and possibly crashes) in case openMSX is started with
5604
	    "-nosound" or for some reason sound is not available
5605
5606
2004-09-19 Maarten ter Huurne <[email protected]>
5607
	* Cleanup of layer system, continued:
5608
	  - put common code in new VideoLayer class
5609
	  - implemented "videosystem" setting
5610
	  - implemented SDLV9990Rasterizer, which shows a test pattern
5611
	  If you start openMSX with "-ext gfx9000" and on the console type
5612
	  "set videosystem gfx9000", you will see the test pattern (SDLHi/Lo).
5613
	  There are some bugs left, but I had to commit to keep track of the
5614
	  many changes. I'll try to fix the bugs as soon as I can.
5615
	* Do not save "power" and "pause" settings.
5616
	  Fixes starting from Catapult.
5617
	* Withhold blocked events from other NATIVE listeners as well.
5618
	  Fixes "set console off".
5619
	* Delay reInit when power is turned off.
5620
	  Fixes "set power off" in R800 mode.
5621
	* Initialise lineContent in SDLRasterizer's constructor.
5622
	  Fixes asserts when switching to SDLHi when paused.
5623
5624
2004-09-18 Wouter Vermaelen <[email protected]>
5625
	* Rewrote saving of settings code:
5626
	   - All settings are now saved by default, only exception is
5627
	     "console" setting. But there are probably more that don't need to
5628
	     be saved.
5629
	   - settings.xml fileformat has changed again. All settings are now
5630
	     saved in a uniform way.
5631
	   - Code is a lot simpler now
5632
	* Default rom pools:
5633
	   added
5634
	     <user>/share/systemroms  and  <system>/share/systemroms
5635
	   as default rom pool locations. The use can still add more pools.
5636
	* Fixed crash on "save_settings" when there was no settings.xml file
5637
	  loaded
5638
5639
2004-09-18 Maarten ter Huurne <[email protected]>
5640
	* Cleaned up layer system:
5641
	  - "alpha" was not really alpha, renamed to "coverage"
5642
	  - explicit Z value instead of toFront/toBack
5643
	  - preparation for V9990 layer
5644
	  The cleanup is not finished yet.
5645
5646
2004-09-18 Reikan <[email protected]>
5647
	* Converted the macro __WIN32__ to _WIN32.
5648
	  Please use _WIN32 instead of __WIN32__ now.
5649
	  _WIN32 is more popular in Win32 compilers.
5650
	  Although we require gcc3 for now, it would be safer in future.
5651
5652
2004-09-15 Maarten ter Huurne <[email protected]>
5653
	* Added new type of event listener (DETACHED).
5654
	* Fixed timing bug in VDP command engine: replaced "clock.advance" by
5655
	  "clock.reset" when starting a command. Start time of a new command is
5656
	  not ahead of end time of last pixel of previous command if previous
5657
	  command was not finished yet.
5658
	  Fixes assert in The Ant demo (found by Jorito).
5659
5660
2004-09-15 David Heremans <[email protected]>
5661
	* Added the joystick protection of 'Tetris Special Edition II'
5662
5663
2004-09-14 Maarten ter Huurne <[email protected]>
5664
	* Cleaned up renderer switching in the new layered display system.
5665
5666
2004-09-14 Wouter Vermaelen <[email protected]>
5667
	* Don't assert when there are two Moonsounds (not really usefull, but
5668
	  in a real MSX it's also possible to have multiple Moonsounds)
5669
	* Changed settings format for volume/mute settings:
5670
	    <volume id="Music Module>75</volume>
5671
	  iso
5672
	    <Music.20Module_volume>75</Music.20Module_volume>
5673
	  The last one needed some ugly hacks (.20) to represent invalid tag
5674
	  chrs. It was also not possible to write a DTD for it because the tag
5675
	  names depend on user choosable id's.
5676
5677
2004-09-13 Wouter Vermaelen <[email protected]>
5678
	* Bindings are saved in settings.xml
5679
5680
2004-09-11 Maarten ter Huurne <[email protected]>
5681
	* Return "true" or "false" when printing value of boolean setting.
5682
	  Before, it was "on" and "false" (found by Herman).
5683
5684
2004-09-11 Manuel Bilderbeek <[email protected]>
5685
	* Added iomap command to check what devices is on which I/O port
5686
5687
2004-09-11 Wouter Vermaelen <[email protected]>
5688
	* Implemented RTC mode as a setting, is now saveable
5689
	* "set <setting> <newvalue>" now returns the actual new value of the
5690
	  setting  (e.g. "set gamma -1" returns 0.1 iso -1)
5691
5692
2004-09-10 Wouter Vermaelen <[email protected]>
5693
	* default machine is now configurable via a setting. Of course this
5694
	  only has effect when openMSX is restarted. Although in the future
5695
	  we may switch machine between a power off/on cycle.
5696
5697
2004-09-09 Wouter Vermaelen <[email protected]>
5698
	* Z80 updates:
5699
	   - fixed P-flag in OUTI and INI instructions
5700
	   - calculate DAA table
5701
	* Blur scaler:
5702
	   - small optimization in normal-MMX code (non-extended-MMX)
5703
	   - fixed bug when scanline=0 (recent optimization requires
5704
	     scanlineAlpha <= 255, not <= 256)
5705
5706
2004-09-08 Wouter Vermaelen <[email protected]>
5707
	* Created "frequency" and "samples" setting:
5708
	   Changing this setting only has effect the next time openMSX is
5709
	   started (will be changed later, but it requires some refactoring in
5710
	   the sounddevices).
5711
	* Implemented "help set [<setting>]" command:
5712
	   Since the switch to TCL it was no longer possible to query the
5713
	   setting descriptions. Fixed now.
5714
5715
2004-09-06 Wouter Vermaelen <[email protected]>
5716
	* Blur scaler speed-up:
5717
	   use ext-mmx instructions "pavgb", "pshufw", "pmulhuw"
5718
	* Fixed bug in Z80 OTIR like instructions (bug found by mth):
5719
	   fixes equalizer in FDD1
5720
5721
2004-09-05 Wouter Vermaelen <[email protected]>
5722
	* Converted more extensions to new config format
5723
	* Allow saving of settings with 'non-xml-tag' characters
5724
5725
2004-09-04 Wouter Vermaelen <[email protected]>
5726
	* Allow machines (extensions) descriptions in both
5727
	    <dir>/machine.xml
5728
	    <dir>/machine/hardwareconfig.xml
5729
	* Converted a few more extensions to new config format
5730
5731
2004-09-02 Wouter Vermaelen <[email protected]>
5732
	* renames in settings.xml:
5733
	    "renderer" section --> "video"
5734
	    "mixer"    section --> "sound"
5735
	* volume and mode (mono, stereo) settings are saved now
5736
5737
2004-09-01 Wouter Vermaelen <[email protected]>
5738
	* Refactored settings:
5739
	   - creating saveable settings is easier now
5740
	   - settings.xml format changed slightly: tag name is now the same as
5741
	     the name of the setting. So if you're not using the default
5742
	     settings.xml file you need to make at least changes
5743
	       <font>        -->  <consolefont>
5744
	       <background>  -->  <consolebackground>
5745
	       <renderer>         <renderer>
5746
	         <type>      -->    <renderer>
5747
5748
2004-08-31 Wouter Vermaelen <[email protected]>
5749
	* Renderer settings can be saved now
5750
5751
2004-08-30 Wouter Vermaelen <[email protected]>
5752
	* Simplified console code
5753
	* All console settings are saved now
5754
5755
2004-08-29 Wouter Vermaelen <[email protected]>
5756
	* Fixed Uncaught exception on "openmsx -v"
5757
5758
2004-08-28 Maarten ter Huurne <[email protected]>
5759
	* Fixed bug when palette index 0 is written and transparency is enabled.
5760
	  This bug was visible as gray rectangles in the Gazzel intro.
5761
5762
2004-08-28 Wouter Vermaelen <[email protected]>
5763
	* Added 16bpp MMX simple scaler routines
5764
	* Proof-of-concept: saving of settings  (settings.xml)
5765
	   - added a new command "save_settings". There is no autosave at exit
5766
	     yet.
5767
	   - for the moment only very few settings are actually saved. Only
5768
	       consolecolums, consolerows, consoleplacement
5769
5770
2004-08-27 Manuel Bilderbeek <[email protected]>
5771
	* Added initial version of the openMSX FAQ: not finished at all,
5772
	  please edit!
5773
5774
2004-08-26 Wouter Vermaelen <[email protected]>
5775
	* BlurScaler 16bpp improvements:
5776
	   - use look up table instead of (complex) computations. Is almost
5777
	     twice as fast. Also used 10-bit precision iso 8-bit, so less
5778
	     rounding errors.
5779
5780
2004-08-25 Wouter Vermaelen <[email protected]>
5781
	* Don't copy HostCPU
5782
	* Improved MMX code. I measured between 1% and 2% speedup:
5783
	   - a block of memory reads followed by a block of memory writes is
5784
	     faster than interleaved read and writes. Probably because write
5785
	     combining works better this way (larger bursts on the bus).
5786
	     Loop unrolling made this grouping possible.
5787
	   - Rearranging instructions (especially mul instrcutions) also gave
5788
	     a nice speedup. This was also possible because of loop unrolling.
5789
5790
2004-08-24 Wouter Vermaelen <[email protected]>
5791
	* Changed blur scaler for 16bpp:
5792
	   - do calculations in 24bpp mode to avoid visible rounding errors
5793
	     (not tested)
5794
5795
2004-08-24 Maarten ter Huurne <[email protected]>
5796
	* Moved screenshot code from VDP to Display.
5797
	* Added extended-MMX versions of non-scanline scaling in 256-wide modes
5798
	  and both scanline and non-scanline scaling in 512-wide modes.
5799
	  Still only 32bpp.
5800
	* Sound device cleanups:
5801
	  - Removed "user mute" which was unused.
5802
	  - Renamed "internal mute" to just "mute".
5803
	  - Mixer checks isMuted() instead of updateBuffer returning NULL.
5804
	  - Make sure reset() is called before registerSound().
5805
	    Right now this doesn't really matter, but it is needed once we allow
5806
	    runtime insertion of extensions.
5807
	* Refactored PSG:
5808
	  - Code in C++ style and easier to read.
5809
	  - Slight improvements in accuracy, probably inaudible though.
5810
	  - Some optimisations, but not enough profiling done yet to see whether
5811
	    they really matter.
5812
5813
2004-08-22 Wouter Vermaelen <[email protected]>
5814
	* 'set consolebackground ""' now removes the background image
5815
	* Don't use MSX pause LED for openMSX pause status, instead send a
5816
	  (new) pause event.
5817
5818
2004-08-21 Wouter Vermaelen <[email protected]>
5819
	* Fixed assertion on  "openmsx ok.dsk wrong.dsk"
5820
	* Optimization: don't use TurboRCPUInterface on non-turboR machines
5821
5822
2004-08-19 Wouter Vermaelen <[email protected]>
5823
	* Fixed XML configuration stuff for IDE
5824
5825
2004-08-18 Wouter Vermaelen <[email protected]>
5826
	* Added "-nosound" command line option:
5827
	   - main raison to add it was faster profiling. Audio thread takes
5828
	     50% of the time when running (far from realtime) under cachegrind,
5829
	     even though the sound was muted in openMSX.
5830
	* Initialize SDL AUDIO subsystem:
5831
	   - AUDIO subsystem was never initialized. Apparently this isn't
5832
	     needed for Linux / Windows. But some platforms probably do need
5833
	     it.
5834
	* Fixed "after time" and "after idle" console commands
5835
	* CPU cleanup: removed historical cruft
5836
	* Merged CPUInterface and MSXCPUInterface classes:
5837
	   - get rid of virtual method calls, and (possibly) inline them
5838
	   - code was written like this to be able to use the same CPU code
5839
	     also for the CPU in the MidiSaurus cartridge. If we still want
5840
	     to implement this, we should templatize the CPU class with on
5841
	     the CPUInterface instead.
5842
5843
2004-08-17 Wouter Vermaelen <[email protected]>
5844
	* Made tiny optimization in DynamicClock, however this gave a speedup
5845
	  of about 1.5% because this class is _heavily_ used in the CPU code:
5846
	* Increased minimum CPU clock freq to 1MHz:
5847
	   - the new DynamicClock implementation can't handle very slow clock
5848
	     rates (slow meaning ~1Hz). But even before this change a clock of
5849
	     100kHz didn't work correctly, I'm not sure why.
5850
5851
2004-08-15 Wouter Vermaelen <[email protected]>
5852
	* Added MMX optimizations for blur scaler
5853
5854
2004-08-14 Wouter Vermaelen <[email protected]>
5855
	* Added new 'blur' scaler:
5856
	   - this scaler implements the same blur effects as the SDLGL
5857
	     renderer already does (but then in software)
5858
	   - only tested with 32bpp, can someone please test 16bpp?
5859
	   - can still be heavily optimized using MMX assembly
5860
5861
2004-08-13 Wouter Vermaelen <[email protected]>
5862
	* Extended Scale2x scaler for hi-res modes (screen 6 and 7)
5863
5864
2004-08-12 Wouter Vermaelen <[email protected]>
5865
	* Extended hq2x scaler for hi-res modes (screen 6 and 7)
5866
5867
2004-08-09 Wouter Vermaelen <[email protected]>
5868
	* Removed CoRoutine stuff from CVS, it's no longer used
5869
5870
2004-08-07 Wouter Vermaelen <[email protected]>
5871
	* Allow multiple times the same extension (make id's unique)
5872
	* ROM title (from romdb) is again visible in slotmap
5873
5874
2004-08-06 Maarten ter Huurne <[email protected]>
5875
	* Avoid syncs when VDP state changes when display is blanked and
5876
	  the border colour is not influenced by the state change.
5877
	  This allows the scaler to draw border lines more efficiently.
5878
	* New feature in build system: version executables.
5879
	  See VERSION_EXEC in build/custom.mk (off by default).
5880
5881
2004-08-03 Maarten ter Huurne <[email protected]>
5882
	* Fixed ROMBAS mapper for 8K ROMs.
5883
	  Eat Blue! now works if you load it with "eatblue.rom,rombas".
5884
	* Improved ROMBAS detection.
5885
	  Eat Blue! now works without forced mapper type as well.
5886
5887
2004-08-02 Wouter Vermaelen <[email protected]>
5888
	* Fixed some bugs I introduced yesterday
5889
	* Another bug fix: HALT instruction was broken
5890
5891
2004-08-01 Maarten ter Huurne <[email protected]>
5892
	* Initial build system support for x86_64.
5893
	  No optimised compile flags yet.
5894
	  MMX code is disabled on x86_64 for now.
5895
5896
2004-08-01 Wouter Vermaelen <[email protected]>
5897
	* Removed CoRoutines again. Instead reversed the calling-sequence
5898
	  between MSXCPU and Scheduler:
5899
	   Previously the Scheduler scheduled both CPU and other stuff.
5900
	   Because of this the CPU needed to be able to pass control back to
5901
	   the Scheduler in the middle of a Z80 instruction. In the past we
5902
	   solved this by either:
5903
	     - Splitting all Z80 instructions in atomic parts and made the
5904
	       code resumable at a sub-instruction level
5905
	         --> very complex CPU code
5906
	     - call the scheduler (recursivly) from within the CPU code
5907
	         --> too complex CPU <-> Scheduler interaction, we had too
5908
	             many bugs related to this
5909
	     - Use CoRoutines to pause/resume the CPU code
5910
	         --> was only an experiment, stopped the experiment very early
5911
	             because I think the current solution is much simpler
5912
	   In the current solution we call the Scheduler from within the CPU
5913
	   (iso the other way around). Pausing/resume CPU code is now done by a
5914
	   simple function call.
5915
	   New code still needs cleanups, but I wanted to check it in early
5916
	   beacuse the CoRoutine stuff didn't compile yet on win32 (although
5917
	   it was easy to fix).
5918
	* Use "string::size_type" iso "unsigned" in STL string manipulations:
5919
	   on x86_64 sizeof(string::size_type) is 8 while sizeof(unsigned) is
5920
	   only 4
5921
5922
2004-07-30 Maarten ter Huurne <[email protected]>
5923
	* Added CPU detection.
5924
	  Read the Doxygen comments of HostCPU for details.
5925
	  For now, debug prints are enabled, please check if dected capabilities
5926
	  match what you would expect for your CPU.
5927
	* Added extended-MMX version of SimpleScaler (only 256-wide 32bpp).
5928
	  On my machine, it can scale 50% more pixels per second.
5929
	* Added extended-MMX version of Scaler::scaleBlank.
5930
	* Added extended-MMX version of SimpleScaler::scaleBlank.
5931
	* Got rid of named operants: they're not widely supported. GCC 3.0 can't
5932
	  handle them according to the docs. GCC 3.2 can handle them according
5933
	  to the docs, but crashes (on mingw32). ICC cannot handle them.
5934
	* Made pixel accuracy default.
5935
	  We usually have the most realistic option as default. In the past,
5936
	  pixel accuracy was too slow in many cases, especially when VRAM I/O
5937
	  was causing a lot of syncs. Those were eliminated a while ago for the
5938
	  most commonly used display modes.
5939
	  If you encounter a program running significantly slower in pixel
5940
	  accuracy than in line accuracy, please report it as a bug.
5941
5942
2004-07-26 Wouter Vermaelen <[email protected]>
5943
	* Experimental:
5944
	   use CoRoutine to simplfy and later optimize CPU / Scheduler
5945
	   interaction. Current patch is very minimal: it just adds CoRoutine
5946
	   without any optimizations or cleanups.
5947
5948
2004-07-25 Maarten ter Huurne <[email protected]>
5949
	* Removed support for 8bpp. It never worked anyway.
5950
5951
2004-07-24 Maarten ter Huurne <[email protected]>
5952
	* Split SDLRasterizer off from SDLRenderer:
5953
	  - SDLRenderer deals with EmuTime, is colour depth and zoom independent
5954
	  - SDLRasterizer deals with pixels, does not know EmuTime
5955
	* Split GLRasterizer off from SDLGLRenderer.
5956
	* Merged remainders of SDLRenderer and SDLGLRenderer into PixelRenderer.
5957
5958
2004-07-23 Maarten ter Huurne <[email protected]>
5959
	* Removed all SDL specific code from SDLGLRenderer.
5960
	  Maybe I'll rename it to GLRenderer in the future.
5961
	  Preparation for GLX renderer.
5962
	* Init and shutdown in VideoSystem subclass, instead of init in
5963
	  RendererFactory subclass and shutdown in Renderer subclass.
5964
	  Applied to SDLGL, other systems to follow.
5965
	* Applied to SDLHi/Lo and Dummy as well.
5966
5967
2004-07-22 Maarten ter Huurne <[email protected]>
5968
	* Changed scanline drawing from a post-processing operation to
5969
	  an integrated part of the "simple" scaler.
5970
	  As a result, drawing with scanlines is now equally fast as drawing
5971
	  without scanlines. Probably this means small computations can be done
5972
	  in cycles that would otherwise be wasted waiting for memory access.
5973
5974
2004-07-21 Maarten ter Huurne <[email protected]>
5975
	* Introduced display which manages multiple layers.
5976
	  Currently, the following layers exist:
5977
	  - background (TV snow)
5978
	  - renderer
5979
	  - console
5980
	  In the future, a second renderer will be added (for GFX9000).
5981
	  Also, OSD features are possible (such as status icons).
5982
	  The code has some rough edges, but it works.
5983
	* Along the way, fixed console cursor blinking during pause.
5984
5985
2004-07-21 Wouter Vermaelen <[email protected]>
5986
	* a few small fixes
5987
5988
2004-07-19 Wouter Vermaelen <[email protected]>
5989
	* merged MSXDevice, MSXIODevice and MSXMemDevice in one class
5990
	  MSXDevice:
5991
	   - virtual inheritance can be removed because of this
5992
5993
2004-07-18 Arnold Metselaar <[email protected]>
5994
	* added Unicode.{cc,hh} with minimalistic conversion of UTF-8
5995
	  to 8-bit Ascii
5996
	* Keyboard.cc: Fixes to make the type command work properly
5997
	  - utf-8 -> ascii conversion in  Keyboard::KeyKeyInserter::type(),
5998
	  - fixed bug in Keyboard::pressAscii() (index to asciiTab), and
5999
	  - corrected asciiTab[]
6000
6001
2004-07-15 Manuel Bilderbeek <[email protected]>
6002
	* Added <info> tag with some child tags to XML.
6003
	  - should be added to other hardwareconfig files later as well (is
6004
	    mandatory)
6005
	  - optional for extensions?
6006
	  - there's no class associated with it now; it's only used to put
6007
	    info in the window border for now
6008
	  - child tags "manufacturer", "code" and "type" are now mandatory
6009
6010
2004-07-14 Wouter Vermaelen <[email protected]>
6011
	* Fixed MoonSound bug:
6012
	   When DL=0 go immediately to sustain phase.
6013
	   Fixes 'timpani' instrument for example.
6014
6015
2004-07-13 Maarten ter Huurne <[email protected]>
6016
	* Fixed nullpointer dereference when ABORT command is executed
6017
	  in "cmdtiming broken" mode.
6018
6019
2004-07-13 Wouter Vermaelen <[email protected]>
6020
	* Simplified SHA1 interface + cleanups
6021
6022
2004-07-12 Wouter Vermaelen <[email protected]>
6023
	* Preparartion for insert remove at run time:
6024
	   unregister memory / IO ports
6025
6026
2004-07-11 Wouter Vermaelen <[email protected]>
6027
	* Config file change: FDC type is no longer a sub type
6028
	* Fixed RenShaTurbo
6029
	* Config file change:
6030
	    grouped <volume> and <mode> tags in a new <sound> tag
6031
6032
2004-07-10 Maarten ter Huurne <[email protected]>
6033
	* Separated CPU and OS in build system.
6034
6035
2004-07-10 Wouter Vermaelen <[email protected]>
6036
	* Fixed loading of extensions
6037
	* Fixed some bugs in slot structure config loading
6038
	* It's now possible to insert a slotexpander extension
6039
6040
2004-07-04 Wouter Vermaelen <[email protected]>
6041
	* Fixed exception-safety problem in CassettePort constructor
6042
6043
2004-07-04 Manuel Bilderbeek <[email protected]>
6044
	* Added simple DC filter for Wave cassette images (subtract average)
6045
	  .wav files from MicroWAVer should work now. Please test this some
6046
	  more with other .wav images (e.g. from real cassettes)
6047
6048
2004-07-01 Wouter Vermaelen <[email protected]>
6049
	* Another config file format change:
6050
	   - use 'primary' and 'secondary' tags to specify slot structure
6051
	   - this proposal is still being discussed (especially for
6052
	     extensions), so this may change again
6053
6054
2004-06-28 Wouter Vermaelen <[email protected]>
6055
	* Fixed assertion in ClockPin
6056
6057
2004-06-27 Wouter Vermaelen <[email protected]>
6058
	* Get rid of ordering requirement in turbor hardwareconfig.xml
6059
6060
2004-06-26 Maarten ter Huurne <[email protected]>
6061
	* Replaced EmuTimeFreq by Clock and DynamicEmuTime by DynamicClock:
6062
	  - Fixes accuracy bug where fractions of ticks were discarded,
6063
	    causing problems with high-frequency reads of low-frequency timers.
6064
	    Thanks to Daniel Vik for reporting this.
6065
	  - Reduced the number of operations, especially operators.
6066
	  - Added Doxygen comments for the changed classes.
6067
	* Improved MoonSound BUSY flag timing (not completely correct yet).
6068
6069
2004-06-24 Wouter Vermaelen <[email protected]>
6070
	* hardwareconfig.xml format change:
6071
	    replaced   <device><type>foo</type>..</device>
6072
	               <device><type>bar</type>..</device>
6073
	    with       <devices> <foo>..</foo> <bar>..</bar> </devices>
6074
6075
2004-06-23 Wouter Vermaelen <[email protected]>
6076
	* FDC config format changed:
6077
	    indicate number of connected disk drives iso drivenames
6078
6079
2004-06-21 Wouter Vermaelen <[email protected]>
6080
	* hardwareconfig.xml configuration file changes:
6081
	   - replaced  <config if="foo">..</config>
6082
	     with      <foo>..</foo>
6083
6084
2004-06-21 Manuel Bilderbeek <[email protected]>
6085
	* Fixed mix level (volume) bug in Moonsound, thanks to Albert and
6086
	  Wouter
6087
6088
2004-06-20 Wouter Vermaelen <[email protected]>
6089
	* bug fix: first destroy renderer before creating a new one, bug was
6090
	   introduced when using auto_ptr
6091
	* bug fix: YMF278 is a stereo device
6092
6093
2004-06-19 Wouter Vermaelen <[email protected]>
6094
	* Fixed ROM loading bug when no SHA1 match was found and no filename
6095
	  was specified
6096
	* A bit more robust config file parsing
6097
	* Config file format change:
6098
	   - put roms in new hierarchical <rom> tag
6099
	* settings.xml configuration file changes:
6100
	   - replaced  <config id="foo">..</config>
6101
	     with      <foo>..</foo>
6102
6103
2004-06-18 Wouter Vermaelen <[email protected]>
6104
	* Compiled with -Wall -W and fixed all warnings
6105
6106
2004-06-18 Manuel Bilderbeek <[email protected]>
6107
	* Fixed Floating Point Exception in Y8950Adpcm, which was triggered
6108
	  by 4Trax Songbook #1. Thanks to Eric for finding it and Wouter for
6109
	  providing the fix :)
6110
6111
2004-06-17 Wouter Vermaelen <[email protected]>
6112
	* Large configuration file code refactoring:
6113
	   - get rid of Config class, use directly XMLElement
6114
	   - no changes in config files
6115
	* Use auto_ptr to manage ownership:
6116
	   - ownership is better documented
6117
	   - safer in case of exceptions
6118
6119
2004-06-15 Wouter Vermaelen <[email protected]>
6120
	* Config file releated cleanups (no changes in config files)
6121
6122
2004-06-14 Wouter Vermaelen <[email protected]>
6123
	* Added Date class to convert dates to and from string:
6124
	   there are library fucntions that do the same (strftime, strptime)
6125
	   but strptime is not available on win32
6126
	* RomPool cleanups / fixes / enhancements:
6127
	   it's now possible to list multiple pools in the settings file
6128
6129
2004-06-13 Wouter Vermaelen <[email protected]>
6130
	* Implemented RomPool:
6131
	    still needs heavy testing and cleanups
6132
6133
2004-06-07 Manuel Bilderbeek <[email protected]>
6134
	* Rerenamed "MSX-AUDIO MIDI" to "Music Module MIDI"
6135
6136
2004-06-08 Wouter Vermaelen <[email protected]>
6137
	* removed IO port registration for Mixrosol FDCs from the code,
6138
	  instead it must be specified in the config file (TODO)
6139
	* Explicitly indicate ownership transfer in Device factories
6140
6141
2004-06-06 Manuel Bilderbeek <[email protected]>
6142
	* Moved mode setting of the RTC to settings.xml
6143
	  (converter still needs to be updated)
6144
6145
2004-06-03 Manuel Bilderbeek <[email protected]>
6146
	* More config file renames:
6147
	  - Audio -> MSX-AUDIO
6148
	  - Audio-Midi -> MSX-AUDIO MIDI
6149
	  - Music -> MSX-MUSIC
6150
	  - MSX-Midi -> MSX-MIDI
6151
	  - SCCPlusCart -> SCC+
6152
	  The converter has been adjusted as well.
6153
	* Fixed a forgotten rename of Rom to ROM in the MSXRomCLI.
6154
	* Added specific extensions for the Konami Sound Cartridges
6155
	  (Snatcher and SD-Snatcher)
6156
6157
2004-06-04 David Heremans <[email protected]>
6158
	* Fixed the problem with filesize zero in the DirAsDisk feature
6159
6160
2004-06-03 Maarten ter Huurne <[email protected]>
6161
	* Simplified code which stores and draws previous frame in SDLGL.
6162
6163
2004-06-03 Wouter Vermaelen <[email protected]>
6164
	* Fixed creation of internal datastructures to match the new XML format
6165
	* Removed deprecated device PanasonicRom
6166
6167
2004-06-03 Manuel Bilderbeek <[email protected]>
6168
	* More config file changes:
6169
	  - renamed old parameter brokenFDCread to broken_fdc_read (needs
6170
	    update of the converter, please fix this for me)
6171
	  - renamed Rom to ROM, PanasonicRom to PanasonicROM and PanasonicRam
6172
	    to PanasonicRAM and updated the converter for these changes
6173
6174
2004-06-01 Maarten ter Huurne <[email protected]>
6175
	* Wrote a converter script that updates old configurations to the new
6176
	  format: share/scripts/convert_hardwareconfig.py
6177
6178
2004-06-01 Manuel Bilderbeek <[email protected]>
6179
	* Corrected ASCII table for 'type' command for international layout
6180
	  Thanks to Albert Beevendorp for doing the hard work!
6181
	* More config file changes: changed device name of FM-PAC to FMPAC
6182
6183
2004-06-01 Wouter Vermaelen <[email protected]>
6184
	* More config file changes:
6185
	   - removed <parameter class=".."> constructs
6186
	   - removed support for <parameter name="foo">, config files are
6187
	     incompatible anyway
6188
	* Fixed assertion on "type {}"
6189
6190
2004-05-30 Wouter Vermaelen <[email protected]>
6191
	* Better names for ROM debuggables. Still include the (unique) device
6192
	  id to avoid assertion when the same ROM is inserted twice.
6193
	* Added optional "sha1" parameter to rom devices. For the moment only
6194
	  used to print a warning when given sha1sum doesn't match with real
6195
	  sha1sum.
6196
	* First step to new xml format:
6197
	     <parameter name="foo">bar</parameter>
6198
	  can now be written as
6199
	     <foo>bar</foo>
6200
	  the first format is still supported, but will be removed soon. In
6201
	  the FDC device the parameter "type" is renamed to "fdc_type" becuase
6202
	  of a name conflict with the device type.
6203
	* Removed support for autocommands, they were deprecated in 0.3.4
6204
	* Added Vincent van Dam to AUTHORS:
6205
	   cas to wav conversion code is based on his cas2wav too
6206
	* Moved IO port registration from DeviceFactor to hardwareconfig.xml:
6207
	   This is an incompatible xml format change! I only updated
6208
	   Philips_NMS_8250 and Panasonic_FS-A1GT. I hope someone else will
6209
	   update the other machines and extensions.
6210
	* Also got rid of <parameter name=".."> ... </parameter> constructs in
6211
	  settings.xml
6212
	* Removed duplicate code for case insensitive string comparisons
6213
6214
2004-05-30 Manuel Bilderbeek <[email protected]>
6215
	* Added channel mode 'off' to mute individual sound devices
6216
6217
2004-05-30 Wouter Vermaelen <[email protected]>
6218
	* In one executable only one interpreter is used (TCL or other),
6219
	  no need to have a virtual base class.
6220
6221
2004-05-29 Manuel Bilderbeek <[email protected]>
6222
	* Cleaned up names of the debuggables
6223
6224
2004-05-29 Wouter Vermaelen <[email protected]>
6225
	* Made all (S)RAM debuggable, created a base class for RAM
6226
	* use auto_ptr to indicate ownership transfers
6227
	* use stl bitset instead of an array of booleans
6228
	* don't use exception specifications, they do more harm than good
6229
	* don't use global objects, they are constructed before main() and
6230
	  thus we can't catch execptions yet
6231
	* Command speed up (mainly for TCL scripts):
6232
	    Take CommandArguments objects as parameters instead of strings.
6233
	    This avoids  int -> string -> int  like conversions. This
6234
	    optimization was already done for the command result, now also
6235
	    for the command arguments.
6236
6237
2004-05-28 Maarten ter Huurne <[email protected]>
6238
	* Released openmsx-0.4.0.
6239
6240
2004-05-26 Wouter Vermaelen <[email protected]>
6241
	* Renamed "keylayoutbit" setting in PSG to "keyboardlayout". Also
6242
	  instead of the values true/false it now takes "JIS"/"ANSI"
6243
6244
2004-05-23 Maarten ter Huurne <[email protected]>
6245
	* Fixed glitches in SDLHi when deinterlacing.
6246
	* Fixed pause in SDLGL in monochrome character modes (SCREEN0.40/0.80/1).
6247
	* Added several missing documentation files to "make install".
6248
	* Some other build system improvements.
6249
6250
2004-05-21 Wouter Vermaelen <[email protected]>
6251
	* RS232 interface in Sony_HB-G900P has 2kb RAM
6252
6253
2004-05-20 Manuel Bilderbeek <[email protected]>
6254
	* Added about 14 new machines
6255
6256
2004-05-17 Wouter Vermaelen <[email protected]>
6257
	* Print an error for duplicate drive names (iso assert)
6258
6259
2004-05-15 Manuel Bilderbeek <[email protected]>
6260
	* Implemented scrolling in console by a whole page, using
6261
	  SHIFT+PAGEUP and SHIFT+PAGEDOWN
6262
6263
2004-05-15 Wouter Vermaelen <[email protected]>
6264
	* really fixed TCL_STDOUT redirection
6265
	* fixed passing of binary data in console command:
6266
	   was needed for "debug write_block" command
6267
	* updated "save_debuggable.tcl" script with "load_debuggable"
6268
	  and "load_all" commands:
6269
	   This is no savestate script! Most of the times it won't work!
6270
6271
2004-05-14 Wouter Vermaelen <[email protected]>
6272
	* Fixed redirecting the TCL_STDOUT channel:
6273
	   this fixes Adriano's bug (saving to file in from TCL script)
6274
6275
2004-05-09 Manuel Bilderbeek <[email protected]>
6276
	* Fixed double SRAM names for Matsushita devices
6277
6278
2004-05-06 Wouter Vermaelen <[email protected]>
6279
	* If init.tcl file in system dir is missing try init.tcl in user dir:
6280
	   The default init.tcl in the system dir still source's the user
6281
	   init.tcl file.
6282
6283
2004-05-05 Maarten ter Huurne <[email protected]>
6284
	* Various small improvements to build system, including:
6285
	  - install dir is easier to customise (build/custom.mk)
6286
	  - fixes for compiling on Mac OS X (thanks to Jalu for testing)
6287
6288
2004-05-05 Wouter Vermaelen <[email protected]>
6289
	* More V9990 work
6290
6291
2004-05-02 Maarten ter Huurne <[email protected]>
6292
	* Different final probe message depending on probe results.
6293
	* Refuse to build if dependencies for core component are not met.
6294
	* Support for components: a single label (like COMPONENT_GL) controls
6295
	  whether a component is built or not.
6296
	  (in preparation for forced disabling of components)
6297
6298
2004-05-01 Wouter Vermaelen <[email protected]>
6299
	* Implemented a faster DC removal filter, thanks to dvik
6300
	* Implemeted V9990 palette reading/writing
6301
	* Unified Ascii8-8, Koei-8, Koei-32 and Wizardry mapper types,
6302
	  also fixed some mapping details
6303
6304
2004-05-01 Herman Oudejans <[email protected]>
6305
	* fixed [926293] Win32: specifying driveletter without path
6306
	   doesn't work.
6307
6308
2004-04-30 Wouter Vermaelen <[email protected]>
6309
	* Use 64-bit type to store realtime:
6310
	   32-bit microsecond counter overflows after about 70 minutes.
6311
	   We also saw openmsx crashes after 70 minutes...
6312
6313
2004-04-30 Maarten ter Huurne <[email protected]>
6314
	* Fixed sprites in overscan.
6315
	* Corrected clipping for scalers.
6316
	  And managed to slip in some optimisation as well.
6317
6318
2004-04-29 Maarten ter Huurne <[email protected]>
6319
	* Optimized top and bottom border drawing in SDLHi.
6320
6321
2004-04-28 Maarten ter Huurne <[email protected]>
6322
	* Integrated probe fixes from Reikan.
6323
	  Probe should work on FreeBSD and Win32 now.
6324
6325
2004-04-28 Wouter Vermaelen <[email protected]>
6326
	* Implemented VRAM reading/writing for V9990
6327
6328
2004-04-28 Herman Oudejans <[email protected]>
6329
	* Implemented 32x32 icon. In win32 the icon MUST be 32x32 and Linux
6330
	   doesn't care about size, so 32x32 for all OS'es (thx to Reikan).
6331
6332
2004-04-27 Maarten ter Huurne <[email protected]>
6333
	* Fixed per-line administration of scale factor.
6334
	  In Psycho World intro, bottom text was scaled x2 instead of x1
6335
	  when openMSX was paused. ANMA's Relax had a similar problem.
6336
6337
2004-04-27 Wouter Vermaelen <[email protected]>
6338
	* Fixed Koei mapper: sram is not visible in 0x6000-0x7FFF
6339
	* Fixed RealTime: still sync music for high frameskips, but properly
6340
	    handle syncpoints
6341
	* Fixed SRAM saving: filename had a double extension (file.SRAM.SRAM)
6342
6343
2004-04-26 Eric Boon <[email protected]>
6344
	* Add Debuggables to V9990
6345
6346
2004-04-26 Wouter Vermaelen <[email protected]>
6347
	* Implemented Koei-8 and Koei-32 mapper types:
6348
	   based on BlueMSX v1.4.0
6349
	* "openmsx_info fps" now return 0 in when "renderer none" is active
6350
	* Fixed bug in min/max frameskip handling (happened for example when
6351
	  minframeskip == maxframeskip)
6352
	* Fixed serious performance bug:
6353
	   Sometimes a RealTime syncpoint was not removed from the scheduler
6354
	   queue. So it got fuller and fuller and openmsx became slower and
6355
	   slower.
6356
6357
2004-04-25 Eric Boon <[email protected]>
6358
	* Introduction of Gfx9000/V9990
6359
6360
2004-04-25 Manuel Bilderbeek <[email protected]>
6361
	* Fixed Philips NMS 1205 extension (MSX Audio MIDI was missing)
6362
	* Updated manual for upcoming release (please check!)
6363
6364
2004-04-24 Maarten ter Huurne <[email protected]>
6365
	* Build uses same compile and link flags as probe.
6366
	* Integrated part of the mingw32 probe fixes from Reikan.
6367
	* Implemented probe overrides for FreeBSD (untested).
6368
6369
2004-04-22 Maarten ter Huurne <[email protected]>
6370
	* Enhanced system probe: now it also scans for mandatory headers
6371
	  and libs. It performs all checks and then reports what it found
6372
	  and what is missing.
6373
6374
2004-04-21 Wouter Vermaelen <[email protected]>
6375
	* Fixed [ 933628 ] assertion with accuracy=screen in "puyo puyo"
6376
	* Fixed OR-ing of unaligned sprites
6377
6378
2004-04-20 Herman Oudejans <[email protected]>
6379
	* Suppressed warning in windows (warning: couldn't find file: "").
6380
	* Fixed 'no window when return from full screen' in SDLHi/Lo
6381
	   (windows NT4 only).
6382
6383
2004-04-19 Maarten ter Huurne <[email protected]>
6384
	* Fixed small bug: I forgot to replace "#ifndef X_DISPLAY_MISSING" by
6385
	  "#ifdef HAVE_X11" in RendererFactory class.
6386
6387
2004-04-19 Herman Oudejans <[email protected]>
6388
	* Fixed 'no window when return from full screen' in SDLGL (windows only).
6389
6390
2004-04-18 Maarten ter Huurne <[email protected]>
6391
	* Dropped autoconf completely.
6392
	  This also means autogen.sh is no longer necessary.
6393
	  Thanks to Herman and Manuel for testing parts of the new system.
6394
	  The new probing system only looks for optional parts, not for mandatory
6395
	  ones (such as SDL). Also, there is no option to disable optional parts
6396
	  yet. Possibly some bugs have slipped the testing, please alert me
6397
	  if you find any.
6398
6399
2004-04-15 Maarten ter Huurne <[email protected]>
6400
	* Build system discovers TCL compile and link flags
6401
	  using "tcl-search.sh" instead of autoconf.
6402
6403
2004-04-12 Maarten ter Huurne <[email protected]>
6404
	* Changed BIGENDIAN implementation: determined by looking at CPU,
6405
	  instead of running a test program. (preparation for cross compiles)
6406
	* New version format:
6407
	  "openMSX x.y.z" for releases
6408
	  "openMSX x.y.z-devN" for development builds, N = ChangeLog revision
6409
	* Pass information from build system to sources using C++ types such
6410
	  as bool and std::string, instead of macros.
6411
	You should re-run "autogen.sh" after updating.
6412
6413
2004-04-10 Wouter Vermaelen <[email protected]>
6414
	* Don't allow one Pluggable to be plugged in two Connectors at once
6415
	* Also send update event when media is ejected (diska eject)
6416
	* Experimental:
6417
	    delay input events (currently by a fixed time) to avoid key misses
6418
6419
2004-04-09 Maarten ter Huurne <[email protected]>
6420
	* Added support for compilation on FreeBSD 5.
6421
	  Thanks to Jorito for providing a working environment to test on.
6422
6423
2004-04-07 Maarten ter Huurne <[email protected]>
6424
	* Several changes to the build system; the main visible effect is
6425
	  that all generated files are now in "derived".
6426
	  You should re-run "autogen.sh" after updating.
6427
6428
2004-04-07 Wouter Vermaelen <[email protected]>
6429
	* Generate update event for media change
6430
	* Implemeneted "openmsx_info connectionclass" info topic:
6431
	   - "openmsx_info connectionclass" returns all connectionclasses
6432
	   - "openmsx_info connectionclass [pluggable / connection]" shows
6433
	     the class to which this 'thing' belongs
6434
	* Copied "oversleep compensation" from old realtime sync algorithm to
6435
	  new algorithm:
6436
	    - this helps to keep openMSX running at a reasonable speed when it
6437
	      has to compete with other CPU hungry processes
6438
6439
2004-04-06 Reikan <[email protected]>
6440
	* Added link libs to platform-x86-mingw32.mk. Thanks to Honda.
6441
	* Reverted AC_CANONICAL_SYSTEM in configure.ac.
6442
	  We need it to let automake prepare config.guess and config.sub.
6443
	* Removed check for tcl8.3 because makefiles don't support anyway.
6444
	* Added some tiny checks for libs in configure based on suggestion
6445
	  from Manuel.
6446
6447
2004-04-06 Wouter Vermaelen <[email protected]>
6448
	* Simplified RealTime class:
6449
	    added Timer class (had to rename existing Timer class to EmuTimer)
6450
	    removed RTC synchronziation (linux) because it was complicated and
6451
	    didn't really improve anything
6452
	* Force a realtime sync 8 times per second (real time):
6453
	   - now music stays more or less ok with large frameskips
6454
	     (set minframeskip 100) and very low speed settings (set speed 10)
6455
	   - disadvantage: auto frame skip is much less effective for value
6456
	     above 6 or 7 (set maxframeskip 7)
6457
6458
2004-04-05 Maarten ter Huurne <[email protected]>
6459
	* Minimized usage of auto*:
6460
	  - only run configure checks of which we actually use the results
6461
	  - use "sizeof(bool)" instead of "SIZEOF_BOOL":
6462
	    a lot simpler and the generated code is equally efficient
6463
	  - dropped libtool
6464
	  Thanks to Reikan for his patch from which I copied at lot.
6465
6466
2004-04-03 Wouter Vermaelen <[email protected]>
6467
	* Changed frameskip setting:
6468
	   there is no explicit frameskip "auto" anymore, instead the framskip
6469
	   setting indicated the maximum allowed number of frameskip.
6470
	* Don't skip frames on small CPU usage spikes
6471
	* Renamed "frameskip" setting to "maxframeskip"
6472
	* Added new "minframeskip" setting
6473
6474
2004-04-02 Wouter Vermaelen <[email protected]>
6475
	* Implemented different frameskip and real time sync algorithm
6476
	* Fixed "[ 915747 ] sprites are not visible on display line 0"
6477
	* Skipped frames are now reflected in fps statistics
6478
	* Made "frameskip auto" the default
6479
6480
2004-03-29 Maarten ter Huurne <[email protected]>
6481
	* Made new ("alternative") build system default:
6482
	  GNUmakefile is picked up by GNU Make before Makefile is.
6483
6484
2004-03-28 Wouter Vermaelen <[email protected]>
6485
	* Added generic info command to query the possible values for
6486
	  EnumSettings.
6487
6488
2004-03-28 Manuel Bilderbeek <[email protected]>
6489
	* Added info command for 'accuracy' setting
6490
6491
2004-03-27 Herman Oudejans <[email protected]>
6492
	* update events are now disabled by default.
6493
6494
2004-03-26 Wouter Vermaelen <[email protected]>
6495
	* Implemented simple subsription mechanism for update events:
6496
	   - openmsx command   "update <enable|disable> <type>"
6497
	   - for now all update events are still enabled by default, but when
6498
	     catapult is adjusted I'd like to disable them by default
6499
6500
2004-03-25 Wouter Vermaelen <[email protected]>
6501
	* Only the init.tcl file from the system directory is now executed by
6502
	  openmsx. However the default init.tcl file does source a init.tcl
6503
	  file in the user directory
6504
	  !!! you probably need to redo a "make install" because of this !!!
6505
	* The default (system) init.tcl now automatically sources all .tcl
6506
	  files in the user and system scripts/ directory (it prefers the
6507
	  script in the user dir if it exists in both)
6508
6509
2004-03-23 Wouter Vermaelen <[email protected]>
6510
	* Fixed unexpected exception problem in combination with NPTL threading
6511
	  library (Debian unstable)
6512
	* Generated update events on setting changes:
6513
	   - maybe we should supress these when not in 'control' mode? Ideally
6514
	     we make a control these via a publisher/subsriber pattern.
6515
	* Generate update evvents for plug/unplug
6516
6517
2004-03-22 Wouter Vermaelen <[email protected]>
6518
	* Don't instantiate CassettePlayer when there is no CassettePort
6519
6520
2004-03-20 Wouter Vermaelen <[email protected]>
6521
	* Implemented a very basic fps indicator
6522
	* Don't send fps as 'update' events, but make it queryable
6523
	* Fixed overflow problem in SoundDevice code
6524
6525
2004-03-17 Maarten ter Huurne <[email protected]>
6526
	* Do not copy captured GL frame back the the frame buffer
6527
	  if the same image is still there.
6528
	  Thanks to Herman for finding this problem.
6529
6530
2004-03-17 Wouter Vermaelen <[email protected]>
6531
	* Fixed debugger assertion:
6532
	   - scheduler did not notice the CPU stopped early because of
6533
	     breakpoint
6534
	   - the whole CPU <-> Scheduler interaction is a bit of a mess, need
6535
	     to clean this up someday
6536
6537
2004-03-16 Wouter Vermaelen <[email protected]>
6538
	* Screenshot 'feedback' was only given for non-GL renderer, moved code
6539
	  to a common (gl / non-gl) code path.
6540
6541
2004-03-16 Herman Oudejans <[email protected]>
6542
	* Fixed saving persistent data in windows (SRAM, cmos, history)
6543
6544
2004-03-15 Wouter Vermaelen <[email protected]>
6545
	* Proper XML escaping for results from comm protocol
6546
6547
2004-03-14 Wouter Vermaelen <[email protected]>
6548
	* Reduce memory usage in Y8950Adpcm:
6549
	   - found by massif (part of valgrind)
6550
	* Fixed HBI-55: address 0 is read only and contains 0x53
6551
	* Changed (un)bind command:
6552
	   - a key can now only be bound to one command, this solves the
6553
	     "toggle + toggle = nop" problem
6554
	   - if you still want to bind multiple things to one key you can
6555
	     define a proc or bind something like "foo ; bar"
6556
6557
2004-03-13 Wouter Vermaelen <[email protected]>
6558
	* Another config refactoring:
6559
	   - split MSXConfig in hardware and settings part
6560
	   - merge Config and Device class
6561
	* Use ugly macro iso template in NonInheritable class:
6562
	   - hopefully this works on all compilers, if not (or if it's
6563
	     too ugly) we can just remove this class
6564
	* Compilation fixes for icc
6565
	* Extended CPU debuggable:
6566
	   - IM can now be read at position 26
6567
	   - IFF1 and IFF2 can be read as bit 0 and 1 on position 27
6568
	* Made SCC debuggable
6569
6570
2004-03-12 Wouter Vermaelen <[email protected]>
6571
	* Implemented "type" command:
6572
	   - replaces KeyEventInserter
6573
	   - TODO  documentation
6574
	           correct ascii->keymatrix table
6575
	           better name for command?
6576
6577
2004-03-11 Wouter Vermaelen <[email protected]>
6578
	* More config cleanups:
6579
	   - don't build and parse xml in memory anymore, directly build
6580
	     correct datastructure
6581
	   - temp broke KeyEventInserter, will be replaced by a console command
6582
6583
2004-03-09 Wouter Vermaelen <[email protected]>
6584
	* More config cleanups
6585
6586
2004-03-05 Wouter Vermaelen <[email protected]>
6587
	* Made Y8950 (MSX-AUDIO) debuggable
6588
	* Deleted debug view related files:
6589
	    they were not used anymore and doxygen didn't like them
6590
	* Made MoonSound debuggable
6591
	* Made MSX-AUDIO sample RAM debuggable
6592
6593
2004-03-04 Wouter Vermaelen <[email protected]>
6594
	* Made memory mapper debuggable
6595
	* Made YM2413 (MSX-MUSIC) debuggable
6596
	* Made AY8910 (PSG) debuggable
6597
6598
2004-03-03 Wouter Vermaelen <[email protected]>
6599
	* Implemented R800 refresh delay:
6600
	    - every 180 cycles stall for 20 cycles.
6601
	      Are these numbers correct? I have to different contradicting
6602
	      sources for these numbers. (180 and 20 are in between the
6603
	      numbers of my sources)
6604
	* R800 IO operations takes 3 cycles:
6605
	   - S1990 adds two extra wait cycles cycles
6606
6607
2004-03-02 Wouter Vermaelen <[email protected]>
6608
	* Improved R800 timing, implemented CAS/RAS optimization:
6609
	   - when the high byte of the address of a read is the same as that
6610
	     of a previous read, the R800 doesn't resend this byte and thus
6611
	     saves a clockcycle
6612
	   - I vaguely remember this only happens for opcode fetches, is this
6613
	     true??
6614
6615
2004-03-01 Wouter Vermaelen <[email protected]>
6616
	* Made openmsx_info command return lists in TCL format
6617
6618
2004-02-29 Maarten ter Huurne <[email protected]>
6619
	* Fixed bug in command engine: when switching display mode while a
6620
	  command is running, the command's progress was lost.
6621
	  This bug was introduced in the refactoring of 2004-02-17.
6622
	* Improved rendering of transparent pixels in Graphic5 (SCREEN6).
6623
	  It's still not perfect though: real VDP can render even and odd
6624
	  transparent pixels in different colours, just like the border.
6625
6626
2004-02-27 Wouter Vermaelen <[email protected]>
6627
	* Fixed 2nd drive detection bug on MB8877 based machines
6628
6629
2004-02-26 Wouter Vermaelen <[email protected]>
6630
	* Also do tab-completion for build-in TCL-commands and user defined
6631
	  TCL procs
6632
	* Fixed sprite collision bug:
6633
	   sprites cannot collide when isDisplayEnabled() is false
6634
6635
2004-02-25 Wouter Vermaelen <[email protected]>
6636
	* Implemented "vramdump" command as a TCL script
6637
6638
2004-02-24 Wouter Vermaelen <[email protected]>
6639
	* TCL command speedups:
6640
	   - avoid "int -> string -> int" conversions on command results
6641
	* 2 new debug commands:
6642
	   - read_block, write_block (WIP)
6643
6644
2004-02-23 Wouter Vermaelen <[email protected]>
6645
	* Made abstract Interpreter class:
6646
	   - TCLinterpreter is (the only) subclass
6647
	   - all other code is TCL independent
6648
6649
2004-02-21 Wouter Vermaelen <[email protected]>
6650
	* added scripts directory
6651
	* added multi_screenshot script
6652
6653
2004-02-21 Herman Oudejans <[email protected]>
6654
	* fixed FileOperations.cc for win32. setenv doesn't exist in mingw
6655
6656
2004-02-20 Wouter Vermaelen <[email protected]>
6657
	* Set OPENMSX_USER_DATA and OPENMSX_SYSTEM_DATA environment variables
6658
6659
2004-02-19 Wouter Vermaelen <[email protected]>
6660
	* Implemented "after break" command
6661
	* Path calculation cleanup:
6662
	    moved all path calculations to the FileOperations class
6663
6664
2004-02-18 Wouter Vermaelen <[email protected]>
6665
	* Implemented master volume setting (range 0..100). Changed volume
6666
	  setting of other devices to 0..100 as well.
6667
6668
2004-02-17 Maarten ter Huurne <[email protected]>
6669
	* VDPCmdEngine refactoring: replaced macros by templates and switch
6670
	  statements by virtual method calls. (committed by Wouter)
6671
6672
2004-02-15 Wouter Vermaelen <[email protected]>
6673
	* Improved CPU timing, both Z80 and R800
6674
6675
2004-02-14 Wouter Vermaelen <[email protected]>
6676
	* Implemented "after frame" command:
6677
	   - now it's possible to write a multi_screenshot TCL script (i've
6678
	     already made such a script)
6679
6680
2004-02-13 Wouter Vermaelen <[email protected]>
6681
	* Made CommandConsole SDL independent
6682
6683
2004-02-11 Maarten ter Huurne <[email protected]>
6684
	* Implemented firmware switch for Panasonic FS-A1FM.
6685
	  Use "set frontswitch true" to boot internal software.
6686
6687
2004-02-11 Wouter Vermaelen <[email protected]>
6688
	* FDC code changes:
6689
	   - code cleanups / maybe fixes (at least more robust code now)
6690
	   - changed track0 signal value for not connected drive
6691
6692
2004-02-10 Wouter Vermaelen <[email protected]>
6693
	* Refactored EventDistributor to be SDL independent (WIP)
6694
6695
2004-02-08 Maarten ter Huurne <[email protected]>
6696
	* Added support for compilation on FreeBSD.
6697
	  Thanks to ag0ny for providing a working environment to test on.
6698
6699
2004-02-07 Reikan <[email protected]>
6700
	* Fixed error when reading init.tcl on win32.
6701
6702
2004-02-07 Wouter Vermaelen <[email protected]>
6703
	* Changed default init.tcl to only bind unbounded keys:
6704
	   should solve the "toggle + toggle = nop" problem
6705
	* Implemented 6MHz (5.3MHz actually) mode for Panasonic MSX2+ machines
6706
	* Refactored RealTime classes:
6707
	   - algorithm in RealTimeRTC was broken, refactored the code so that
6708
	     RealTimeSDL and RealTimeRTC share the same syncing algorithm
6709
	   - the algorithm itself still needs to be improved
6710
6711
2004-02-04 Wouter Vermaelen <[email protected]>
6712
	* Handle unknown tags in control protocol more gracefully
6713
	* Same for parser in Contrib/openmsx-control.cc
6714
6715
2004-02-03 Maarten ter Huurne <[email protected]>
6716
	* Perform less renderer syncs on VRAM writes:
6717
	  - skip sync if written value equals the current value in VRAM
6718
	  - only sync if scan region contains written VRAM address
6719
	    (currently only checked in Graphic2/3 modes)
6720
6721
2004-02-01 Maarten ter Huurne <[email protected]>
6722
	* Simplified rendering interface and code:
6723
	  - unified putImage and putStoredImage
6724
	  - introduced frameEnd, moved some of the old putImage code there
6725
6726
2004-01-31 Wouter Vermaelen <[email protected]>
6727
	* Changed the XML format of the CliComm protocol:
6728
	   - the new format is not compatible with the old version
6729
	   - the example parser Contrib/openmsx-control.cc can handle both
6730
	     formats (except for the LED updates)
6731
6732
2004-01-30 Reikan <[email protected]>
6733
	* Fixed strange build error of FileOperations.cc.
6734
	  It would be becauseof "gthreads vs w32api".
6735
	* Fixed broken "Makefile.am"s.
6736
	* Adjusted configure.ac and Makefile.am to accpet libtcl84.a on MinGW.
6737
6738
2004-01-30 Wouter Vermaelen <[email protected]>
6739
	* Made cpu frequency switchable at-run-time:
6740
	   in console: set z80_freq_locked off ; set z80_freq 12345678
6741
6742
2004-01-25 Wouter Vermaelen <[email protected]>
6743
	* Use DATADIR variable set by configure:
6744
	   not yet well tested
6745
6746
2004-01-25 Wouter Vermaelen <[email protected]>
6747
	* Removed obsolete "alias" command:
6748
	   for backwards compatibilty there is an "alias" proc defined in
6749
	   init.tcl
6750
	* Use PAUSE LED also for the openMSX pause command:
6751
	   patch contributed by Tetsuo Honda
6752
	* Debug device now prints time in Z80 ticks (3.58MHz), instead of
6753
	  internal ticks. This way we can change the internal tick resolution
6754
	  without changing the debug device output.
6755
	* Dropped support for MD5 hashes, they were already deprecated for a
6756
	  few releases.
6757
6758
2004-01-24 Wouter Vermaelen <[email protected]>
6759
	* Integrated TCL scripting
6760
	* Execute share/init.tcl at startup, marked AutoCommands deprecated
6761
6762
2004-01-20 Maarten ter Huurne <[email protected]>
6763
	* Bound quit to ctrl-break by default.
6764
6765
2004-01-20 Wouter Vermaelen <[email protected]>
6766
	* Implemented key modifiers for bind command:
6767
	   example:  bind CTRL+ALT+DELETE quit
6768
6769
2004-01-19 Maarten ter Huurne <[email protected]>
6770
	* Integrated FDC fixes by Tetsuo Honda:
6771
	  1. FDD LED on Turbo R FDC (TC8566AF)
6772
	  2. Disk change signal
6773
	  3. Drive detection (1 or 2 drives connected)
6774
	  4. Empty drive behaviour ("Disk offline")
6775
6776
2004-01-19 Wouter Vermaelen <[email protected]>
6777
	* Changed RAM in FS-A1FM mapper into SRAM, but unfortunately this
6778
	  doesn't solve the problem (openmsx-Bugs-826066)
6779
6780
2004-01-16 Maarten ter Huurne <[email protected]>
6781
	* Released openmsx-0.3.4.
6782
6783
2004-01-15 Maarten ter Huurne <[email protected]>
6784
	* Added Scheduler::setAsyncPoint, which works like setSyncPoint,
6785
	  but is safe to call from other threads.
6786
	  Fixes asserts with "-control" and MIDI in.
6787
6788
2004-01-11 Maarten ter Huurne <[email protected]>
6789
	* Added "dist" target to alternative.mk. Now it is possible to make
6790
	  a release tarball in the alternative build system.
6791
6792
2004-01-11 Manuel Bilderbeek <[email protected]>
6793
	* Added a "boosted" MSX2 config:
6794
	  - European MSX2 config with lots of extensions, see README in its
6795
	    dir
6796
	  - still experimental, needs testing...
6797
6798
2004-01-10 Wouter Vermaelen <[email protected]>
6799
	* Fix VDP bug:
6800
	   - out (#99), xx / OUT (#99),%11xxxxxx is NOT a register write
6801
	     still have to figure out what it does (if anything)
6802
	   - fixes "SNOW26" demo
6803
	* Fixed midi-out-logger bug:
6804
	   - once plugging failed (file not writable) it kept failing
6805
	   - same for RS232Tester
6806
	* Fixed "Jump Jump" part or "UR" demo for SDLGL renderer
6807
	* Made EnumSetting case-insensitive
6808
6809
2004-01-08 Maarten ter Huurne <[email protected]>
6810
	* Implemented new deinterlacer for SDLHi.
6811
6812
2004-01-08 Wouter Vermaelen <[email protected]>
6813
	* Fixed crash when trying to save screenshot to read-only directory
6814
	* Save screenshots in ~/.openMSX/screenshots (only when filename is not
6815
	  explicitly given)
6816
	* Fixed bug in Y8950:
6817
	   also reset IRQ in reset() method
6818
6819
2004-01-07 Wouter Vermaelen <[email protected]>
6820
	* Updated control-type selection code (written by tcm1998):
6821
	   - generate error for unknown control types
6822
	   - "pipe" is (currently) not a valid type for linux
6823
6824
2004-01-04 Reikan <[email protected]>
6825
	* Fix SDL_Video subsystem initialization.
6826
	  This fix boot up unstability.
6827
	* Renamed win32 native midi.
6828
	  out:
6829
	    midi  -> midi-out
6830
	    midi* -> midi-out-*
6831
	  in:
6832
	    midi* -> midi-in-*
6833
6834
2004-01-04 Manuel Bilderbeek <[email protected]>
6835
	* Implemented "info scaler"
6836
6837
2004-01-03 Maarten ter Huurne <[email protected]>
6838
	* Separated Scalers.hh/cc into Scaler, SimpleScaler and SaI2xScaler.
6839
6840
2003-12-30 Maarten ter Huurne <[email protected]>
6841
	* Fixed Scale2x scaler: one pixel too many per line was scaled,
6842
	  which lead to out-of-range memory writes.
6843
	* Fixed "random pixel" bug in pixelacc SDLRenderer.
6844
	  The width of a display rectangle was rounded incorrectly,
6845
	  leaving a 1-pixel wide gap in which the previous frame was visible.
6846
6847
2003-12-29 Maarten ter Huurne <[email protected]>
6848
	Various alternative.mk improvements:
6849
	* Automatic generation of config.h.
6850
	* Changed OPENMSX_PLATFORM format from OS-CPU to CPU-OS.
6851
	* Integrated support for compiling with ICC 8.0.
6852
	  You can select ICC with "export OPENMSX_PLATFORM=x86-linux-icc".
6853
	  Note that if a header file is removed, incremental compile will abort
6854
	  with an error. Workaround: manually remove the dependency file.
6855
6856
2003-12-27 Maarten ter Huurne <[email protected]>
6857
	* Fixed console drawing in SDLLo during pause.
6858
6859
2003-12-23 Wouter Vermaelen <[email protected]>
6860
	* Implemented automatic filename generation for screenshot feature
6861
6862
2003-12-23 Maarten ter Huurne <[email protected]>
6863
	* Integrated Mac OS X patches from Jalu.
6864
	* Fixed rendering of sprites in SCREEN7.
6865
6866
2003-12-22 Wouter Vermaelen <[email protected]>
6867
	* Fixed reset problems (again):
6868
	    reset could go wrong when it was given in the middle of a CPU
6869
	    instruction, now wait till the end of the instruction
6870
	* Integrated Joost's screenshot code:
6871
	   - no automatic filename generation yet
6872
6873
2003-12-22 Maarten ter Huurne <[email protected]>
6874
	* Separated Settings.hh into one file per class.
6875
6876
2003-12-21 Maarten ter Huurne <[email protected]>
6877
	* Removed RendererSwitcher and FullScreenToggler. They were useful
6878
	  back when openMSX was multi-threaded, but are useless now.
6879
	* Various code layout cleanups.
6880
6881
2003-12-19 Wouter Vermaelen <[email protected]>
6882
	* Fixed a lot (not all) ICC compile remarks, mostly virtual
6883
	  destructors for base classes
6884
6885
2003-12-17 Wouter Vermaelen <[email protected]>
6886
	* VDP pause frame cleanups:
6887
	   always store the last frame (was already like this for SDLHi/SDLLo,
6888
	   and also for SDLGL when some effect was used). This simplifies the
6889
	   pause code. It also fixes the image when breakpoints are used. And
6890
	   it will make the screenshot feature integration easier.
6891
	* Fixed ICC 8.0 compile warnings.
6892
6893
2003-12-16 Maarten ter Huurne <[email protected]>
6894
	* Fixed ICC 8.0 compile errors.
6895
6896
2003-12-15 Wouter Vermaelen <[email protected]>
6897
	* implemented "debug break"
6898
	* added a hack to make the "boring scroll" demo part of "Relax" work
6899
6900
2003-12-14 Wouter Vermaelen <[email protected]>
6901
	* remove VDP sync points on reset
6902
6903
2003-12-13 Maarten ter Huurne <[email protected]>
6904
	* Optimized hq2x scaler:
6905
	  - Fixed inlining of methods.
6906
	    For some reason g++ cannot inline if the methods are defined as
6907
	    HQ2xScaler<word>::method and <unsigned int>, but when using
6908
	    HQ2xScaler<Pixel>:: with an if-statement inside, inlining does work.
6909
	  - Split the giant switch-statement into 4 smaller ones (one per output
6910
	    pixel). Makes a huge difference in object size (123K -> 33K).
6911
	  - Many small optimizations all over the code.
6912
6913
2003-12-12 Wouter Vermaelen <[email protected]>
6914
	* Implemented cpu debugger:
6915
	    the following commands exist now:
6916
	      debug set_bp <addr>
6917
	      debug remove_bp <addr>
6918
	      debug list_bp
6919
	      debug cont
6920
	      debug step
6921
	    during a break the vdp output is not yet correct
6922
6923
2003-12-11 Joost Yervante Damad <[email protected]>
6924
	* removed obsolete README.WIN32
6925
6926
2003-12-10 Maarten ter Huurne <[email protected]>
6927
	* Fixed SDLLo: rendered image did not show up on visible screen.
6928
6929
2003-12-09 Wouter Vermaelen <[email protected]>
6930
	* Implemented "keymatrixup" and "keymatrixdown" commands
6931
6932
2003-12-09 Maarten ter Huurne <[email protected]>
6933
	* Integrated hq2x algorithm:
6934
	    http://www.hiend3d.com/hq2x.html
6935
	  Use "set scaler hq2x" in the SDLHi renderer to activate it.
6936
	  The code can use some cleanup and tuning, but in most cases it works.
6937
	* Fixed bug: lines were scaled by the wrong factor when a frame contains
6938
	  both 256-wide and 512-wide lines, such as Psycho World intro.
6939
6940
2003-12-08 Wouter Vermaelen <[email protected]>
6941
	* added a 'safe' getCurrentTime() method in Scheduler, and use this
6942
	  instead of the getCurrentTime() method in MSXCPU. Renamed the latter
6943
	  to getCurrentTimeUnsafe(). See also comments in MSXCPU.hh
6944
	* Only quit scheduler loop when it's not being called resursively, see
6945
	  comments in Scheduler.cc
6946
6947
2003-12-07 Maarten ter Huurne <[email protected]>
6948
	* Integrated Scale2x algorithm:
6949
	    http://scale2x.sourceforge.net/
6950
	  Use "set scaler scale2x" in the SDLHi renderer to activate it.
6951
	  Unlike 2xSaI, Scale2x never blurs.
6952
6953
2003-12-06 Maarten ter Huurne <[email protected]>
6954
	* Create a scaler object once it becomes active, instead of creating all
6955
	  scalers in advance. This reduces memory usage when the number of
6956
	  scalers increases or some scalers use large lookup tables.
6957
	* Made Scaler base class a template. Preparation for later changes.
6958
	* Removed upscaling from SDLRenderer/CharacterConverter/BitmapConverter.
6959
	  Instead, all upscaling is done by the scaler implementation.
6960
	  The only scaling remaining outside is the downscaling (pixel blending
6961
	  in SDLLo).
6962
	  There is still some cleanup to do, for example deinterlace should be
6963
	  re-implemented outside of drawDisplay.
6964
6965
2003-12-06 Wouter Vermaelen <[email protected]>
6966
	* Made memory in (sub)slots debuggable
6967
	* fixed bug in wait() method of CPU (order of statements problem):
6968
	  fixes the reset on turbor crash
6969
	* "cassetteplayer" doesn't crash anymore on non-existing filenames
6970
	* use HAVE_LINUX_RTC_H instead of NO_LINUX_RTC, makes it easier to
6971
	  port to non-linux platforms
6972
6973
2003-12-04 Wouter Vermaelen <[email protected]>
6974
	* Fixed "Back to the Future" hang:
6975
	   romtype was wrongly detected, in romdb.xml the romtype was
6976
	   specified as "PLAIN", but for this type we still need to guess the
6977
	   start location in memory. Changed romtype in romdb.xml to "PAGE12"
6978
	* Added high-pass IIR filter to mixer:
6979
	   this greatly reduces clipping in applications that leave a sound
6980
	   channel at a constant non-zero value (e.g. catman)
6981
	* Fixed rendering of undocumented modes in GL renderer:
6982
	   "Back to the Future" (tape version) triggered an assertion
6983
	   because of this
6984
6985
2003-12-03 Wouter Vermaelen <[email protected]>
6986
	* made VDP status registers debuggable
6987
6988
2003-12-02 Wouter Vermaelen <[email protected]>
6989
	* Implemented IO device multiplexing:
6990
	   - several IO devices can now share the same IO port. When CPU
6991
	     writes to a shared port, all devices receive the write. When
6992
	     CPU read from a shared port, all devices readIO() method is
6993
	     called, but the return value of only one device is returned
6994
	     to the CPU.
6995
	   - this fixes the "openmsx -machine turbor -ext fmpac" problem
6996
6997
2003-12-01 Wouter Vermaelen <[email protected]>
6998
	* made vdp registers debuggable
6999
7000
2003-11-30 Wouter Vermaelen <[email protected]>
7001
	* made memory (64kb currently visible memory) debuggable
7002
	* made IO ports debuggable
7003
	* made vram debuggable
7004
7005
2003-11-29 Wouter Vermaelen <[email protected]>
7006
	* Added example implementation for bidirectional communication with
7007
	  openMSX (aka CliCommunicator) in Contrib
7008
	* Implemented "debug" command infrastructure. For now only the CPU
7009
	  registers can be read or written.
7010
7011
2003-11-24 Wouter Vermaelen <[email protected]>
7012
	* When started with "-control" openmsx now automatically selects the
7013
	  "none" renderer. The launcher should send a "restoredefault
7014
	  renderer" command to enable the display.
7015
7016
2003-11-19 Maarten ter Huurne <[email protected]>
7017
	* Extended Scaler interface to scale modes of 512-pixels wide as well.
7018
	  These modes are scaled in the vertical direction only.
7019
	* Implemented vertical-only scaling for "simple" and "2xsai".
7020
	* Minor cleanup of SaI2xScaler class.
7021
7022
2003-11-19 Wouter Vermaelen <[email protected]>
7023
	* Implemented "restoredefault" command
7024
7025
2003-11-18 Wouter Vermaelen <[email protected]>
7026
	* made alternative YM2413 (MSX-MUSIC) the default
7027
7028
2003-11-17 Wouter Vermaelen <[email protected]>
7029
	* Implemented per-pixel-alpha-blending for SDLConsole and SDLFont:
7030
	   - if whole image has the same alpha value, we use per surface
7031
	     alpha blending to speed up blitting
7032
7033
2003-11-16 Reikan <[email protected]>
7034
	* Quick fix for console input after switched renderer.
7035
7036
2003-11-16 Wouter Vermaelen <[email protected]>
7037
	* Major singleton-cleanup:
7038
	   - circular dependency where already fixed
7039
	   - now also fixed construction order. All singletons classes that
7040
	     are used by some other singlton must be constructed before this
7041
	     singlton is constructed. Done by constructing all dependant
7042
	     singltons in the constructor of this singleton. This also
7043
	     prevents new circular dependencies in the future.
7044
	   - because of these two points it's now save to destruct all
7045
	     singletons (before some were never destructed)
7046
	   - instance() method now returns a reference instead of a pointer
7047
	   - I'll post a more detailed explanation to openmsx-devel soon
7048
	* Fixed hd image file creation:
7049
	   - automatically create or enlarge hd-image when the specified file
7050
	     doesn't exist or is too small
7051
7052
2003-11-16 Reikan <[email protected]>
7053
	* Fixed "hollible slow down when open console in fullscreen on SDLHi"
7054
	  at Win32.
7055
7056
2003-11-16 Maarten ter Huurne <[email protected]>
7057
	* Implemented scanlines for SDLHi.
7058
7059
2003-11-15 Manuel Bilderbeek <[email protected]>
7060
	* Moved initialization of SDL Video to RendererFactory.
7061
	* Added Ren-Sha Turbo device to machines which have it.
7062
7063
2003-11-15 Maarten ter Huurne <[email protected]>
7064
	* Modified Scheduler to only schedule ASAP sync points during pause.
7065
	  Also made ASAP resolve to CPU's current time instead of target time.
7066
	* Delayed start of new frame until unpause.
7067
	  If a renderer keeps state to reproduce the image other than the pixels
7068
	  themselves, this state remains available during pause.
7069
	* Made SDLHi renderer react to scaler changes while paused.
7070
7071
2003-11-15 Wouter Vermaelen <[email protected]>
7072
	* Split EventDistrubutor in EventDistributor and AfterCommand:
7073
	   - together with the "quit" cmd move this removes the circular
7074
	     dependency between EventDistributor and Scheduler
7075
	* Reversed dependency between Mixer and Scheduler:
7076
	   - Mixer now depends on Scheduler (for mute when paused) instead of
7077
	     the other way around
7078
	* Removed circular dependency between RealTime and Scheduler
7079
	* Split Settings.hh in Settings.hh and SettingListener.hh
7080
	* Removed circular dependency between Scheduler and MSXMotherBoard:
7081
	   - MSXMotherBoard no longer needs to be a singleton
7082
	   - I have to double check, but I think this was the last circular
7083
	     dependency between singletons
7084
7085
2003-11-14 Maarten ter Huurne <[email protected]>
7086
	* Performance fixes for SDLHi.
7087
	  Thanks to Reikan for finding a solution to the slowness.
7088
7089
2003-11-14 Wouter Vermaelen <[email protected]>
7090
	* HotKey is no longer a singleton:
7091
	   - not required anymore since everything is done by bind cmds
7092
	   - fixes circular dependency between HotKey and EventDistributor
7093
	* Moved "quit" command from EventDistributor to Scheduler
7094
7095
2003-11-11 Manuel Bilderbeek <[email protected]>
7096
	* Added DummyRenderer (set renderer none)
7097
	* TODO:
7098
	  - only register the renderer in the settingmap in CliComm mode
7099
	  - move SDL video (de)initialization to superclass of SDL based
7100
	    renderers (feel free to implement this! ;-), to fix problem that
7101
	    the window of the previous renderer doesn't disappear
7102
7103
2003-11-11 Wouter Vermaelen <[email protected]>
7104
	* Fixed crash when trying to define an alias with the same name as an
7105
	  existing command
7106
	* Split CliCommunicator in CliCommInput and CliCommOutput:
7107
	   - first step to get rid of circular dependencies between singletons
7108
7109
2003-11-10 Maarten ter Huurne <[email protected]>
7110
	* Integrated part of Reikan's SDLRenderer patch:
7111
	  - added missing SDL_LockSurface calls when accessing surfaces directly
7112
	  - do not blit from a surface to itself, instead use memcpy
7113
	    (apparently DirectX doet not like blit source equal to destination)
7114
	  - make SDLHi and SDLLo double buffered
7115
7116
2003-11-10 Wouter Vermaelen <[email protected]>
7117
	* Fixed crash on resursive aliasses:
7118
	   - these commands
7119
	       alias foo bar ; alias bar foo ; foo
7120
	     generate an error now
7121
7122
2003-11-09 Wouter Vermaelen <[email protected]>
7123
	* Refactored MSXMapperIO:
7124
	   - MSXMapperIO is no longer a singleton, this solves the destruction
7125
	     order problem between MSXMapperIO - MSXMemoryMapper
7126
	   - possibly the crash on power off is solved by this
7127
	   - machine configs still need to be updated
7128
7129
2003-11-08 Wouter Vermaelen <[email protected]>
7130
	* Implemented "info time"
7131
	* Implemented "after" command (see doc/commands.txt)
7132
	* Implemented noise effect (power off) for SDLRenderer
7133
7134
2003-11-07 Wouter Vermaelen <[email protected]>
7135
	* Refactored Scheduler:
7136
	   - there is now only one scheduler loop anymore
7137
	   - fixes the 'still schedule a bit even though emulation is pauzed'
7138
	     bug
7139
7140
2003-11-05 Wouter Vermaelen <[email protected]>
7141
	* Implemented 'alias' and 'unalias' commands
7142
7143
2003-11-03 Maarten ter Huurne <[email protected]>
7144
	* Added inbetween image in SDLRenderer, to allow postprocessing.
7145
	  Hopefully, this will also reduce flicker on Win32.
7146
	* Integrated 2xSaI scaler algorithm by Derek Liauw Kie Fa:
7147
	    http://elektron.its.tudelft.nl/~dalikifa/
7148
	  You can activate it with "set scaler 2xsai".
7149
	  For now, it only works in the SDLHi renderer.
7150
7151
2003-11-03 Wouter Vermaelen <[email protected]>
7152
	* Implemented 'snow effect' for GLRenderer (try set power off)
7153
7154
2003-11-02 Wouter Vermaelen <[email protected]>
7155
	* Implemented "power" setting:
7156
	   display is still wrong in power off mode
7157
7158
2003-11-01 Maarten ter Huurne <[email protected]>
7159
	* Added "createsubs" target to "alternative.mk":
7160
	  this creates a Makefile in every source directory
7161
	  which builds only the sources in that directory.
7162
7163
2003-10-30 Wouter Vermaelen <[email protected]>
7164
	* Don't continuously redraw screen while paused
7165
7166
2003-10-29 Wouter Vermaelen <[email protected]>
7167
	* Removed "-config" cmdline option / .xml cmdline file-type:
7168
	   were long time ago replaced by -machine / -ext / -setting
7169
7170
2003-10-28 Wouter Vermaelen <[email protected]>
7171
	* Added descriptions to sounddevices:
7172
	    can be queried with "info sounddevice <name>"
7173
7174
2003-10-26 Wouter Vermaelen <[email protected]>
7175
	* commands can only throw CommandExceptions
7176
	* fixed possible resource leaks caused by thrown exceptions
7177
7178
2003-10-26 Maarten ter Huurne <[email protected]>
7179
	* Fixed clipping code in SDLRenderer::drawDisplay and drawSprites.
7180
	  Matra games (which use overscan) have a stable image now.
7181
7182
2003-10-25 Wouter Vermaelen <[email protected]>
7183
	* Moved command classes to new subdir
7184
	* Added info command infrastructure
7185
	* Added "info version" command
7186
	* Added "info pluggable" and "info connector"
7187
	* Added "info sounddevice"
7188
	* Added "info renderer"
7189
	* Fixed bug: SDL must be initialized before we parse the cmd line,
7190
	  because the "-control" option creates a new thread
7191
	* Added descriptions to pluggables:
7192
	    can be queried with "info pluggable <name>"
7193
	* Added descriptions to connectors:
7194
	    can be queried with "info connector <name>"
7195
7196
2003-10-24 Manuel Bilderbeek <[email protected]>
7197
	* Added -v cli option to get version number of openMSX
7198
7199
2003-10-22 Wouter Vermaelen <[email protected]>
7200
	* Added "-control" cli option to enable CliCommunicator:
7201
	   - commands are accepted on stdin
7202
	   - output is in XML
7203
7204
2003-10-21 Wouter Vermaelen <[email protected]>
7205
	* Converted CliCommunicator to take XML input
7206
	* replaced PRT_INFO macro with printInfo(), printWarning() or
7207
	  printUpdate()
7208
7209
2003-10-20 Wouter Vermaelen <[email protected]>
7210
	* Added truncate() method to File classes
7211
	* use unsigned iso int for file size and file position
7212
7213
2003-10-19 Maarten ter Huurne <[email protected]>
7214
	* Moved some low-level GL stuff from SDLGLRenderer to GLUtil.
7215
	* Changed GL implementation of SCREEN1 to render in cached blocks
7216
	  instead of lines.
7217
	* Abort VDP command when switching to non-bitmap mode.
7218
	  Fixes assert in Psycho World stage 4.
7219
7220
2003-10-19 Reikan <[email protected]>
7221
	* Call SDL_Quit() also when exit by error.
7222
	  This will fix crash(Win9x)/hang(Win2k/XP) on error exit.
7223
7224
2003-10-18 Wouter Vermaelen <[email protected]>
7225
	* Fixed VDP command timing:
7226
	   - the updateTiming() method did a sync() with the old register
7227
	     values (correct). But also updated the timimng variable with the
7228
	     old register values (wrong).
7229
	   - fixes "Coding Melpots" part in "Metal Limit"
7230
	* Replaced all PRT_ERROR macros with 'throw FatalError'
7231
7232
2003-10-15 Wouter Vermaelen <[email protected]>
7233
	* Added "incr" and "decr" console commands
7234
7235
2003-10-14 Manuel Bilderbeek <[email protected]>
7236
	* Added provisional FDD LED emulation:
7237
	  - works only when the emulated FDC uses the DiskDrive class
7238
	  - LED goes on when diskdrive motor is on (not always correct!)
7239
	  - IDEHD also turns on FDD LED, when there is a read or write action
7240
	  - all possible FDD LEDs are ORed with each other
7241
	* Implemented boolean setting 'turborpause', which sets the pause
7242
	  function of the MSX turbo R. TODO: pause function of other MSX
7243
	  computers like Sony HB-501 and MSX2+ machines (setting may need to
7244
	  be renamed!)
7245
7246
2003-10-14 Wouter Vermaelen <[email protected]>
7247
	* Continue VDP Cmds on display mode switch:
7248
	   - current implementation may not be 100% correct, but it's better
7249
	     than just aborting the cmd (fixes feedback bug)
7250
7251
2003-10-13 Wouter Vermaelen <[email protected]>
7252
	* Autofire code cleanups / simplifications
7253
7254
2003-10-09 David Heremans <[email protected]>
7255
	* Forgot to commit some autofire code
7256
	* Adapted code to new Commands interface
7257
7258
2003-10-12 Maarten ter Huurne <[email protected]>
7259
	* VDP fix: fixed assert in SpriteChecker.
7260
7261
2003-10-11 Wouter Vermaelen <[email protected]>
7262
	* Added CliCommunicator:
7263
	   - external programs can now use stdin/stdout to pass/read commands
7264
	     to/from openMSX. Very usefull for launchers or GUIs.
7265
	* CliCommunicator cmds are now scheduled so they get executed by the
7266
	  main emulation thread
7267
7268
2003-10-10 Wouter Vermaelen <[email protected]>
7269
	* Turn LEDs off when openmsx quits
7270
	* Refactored Commands interface:
7271
	   - commands should now return a string instead of calling the
7272
	     print() method to display stuff in the console.
7273
7274
2003-10-09 David Heremans <[email protected]>
7275
	* integrated renshaturbo from Alex into openMSX:
7276
		fixed the namespace in Alex code
7277
7278
2003-10-09 Wouter Vermaelen <[email protected]>
7279
	* Fixed VDP TR bit bug (fixes Ys-2):
7280
	   - TODO HMMC cmd can be simplified a lot
7281
7282
2003-10-08 Maarten ter Huurne <[email protected]>
7283
	* VDP fix: force renderer sync on sprite enable change.
7284
7285
2003-10-08 Joost Yervante Damad <[email protected]>
7286
	* added initial screenshot support:
7287
		the .png part is working and I tested it by
7288
		hacking it into SDLRenderer, but I think someone
7289
		more knowledgable of the openmsx internals should
7290
		actually hook up the code
7291
7292
2003-10-06 Wouter Vermaelen <[email protected]>
7293
	* VDP fix:
7294
	   - Mode and blank bits any have effect at the next line
7295
7296
2003-10-06 Wouter Vermaelen <[email protected]>
7297
	* Fixed command/debug console settings
7298
7299
2003-10-04 Wouter Vermaelen <[email protected]>
7300
	* It seems MSX-AUDIO sampleram is mirrored. This fixes sample loading
7301
	  in "Revolution".
7302
7303
2003-10-04 Herman Oudejans <[email protected]>
7304
	* If the moderegister of the debugdevice is written to and bit 6
7305
	  of that same register is set, newlines will not be output.
7306
7307
2003-10-04 Maarten ter Huurne <[email protected]>
7308
	* Split off SettingsManager to separate source files.
7309
	* Split off SettingNode and other namespace classes to separate sources.
7310
7311
2003-10-03 Herman Oudejans <[email protected]>
7312
	* Remove buffering from the debugdevice.
7313
7314
2003-10-02 Wouter Vermaelen <[email protected]>
7315
	* Implemented 'vdpcmdtrace' setting
7316
	* Fixed VDP commands that had SX/DX >= screen-width
7317
7318
2003-09-30 Manuel Bilderbeek <[email protected]>
7319
	* Added the Debug Device to the User's Manual
7320
	* Small additions, fixes and clean ups in the User's Manual
7321
7322
2003-09-27 Maarten ter Huurne <[email protected]>
7323
	* Released openmsx-0.3.3.
7324
7325
2003-09-24 Maarten ter Huurne <[email protected]>
7326
	* Major rewrites and editing in Setup Guide.
7327
	  Thanks to Manuel for preparing the file for me.
7328
7329
2003-09-22 Reikan <[email protected]>
7330
	* Add MIDI support for Win32.
7331
	  It's missing to know association between parameter names and
7332
	  real device. Ok. we'll call it as TODO.
7333
7334
2003-09-21 Herman Oudejans <[email protected]>
7335
	* Made the debugger optional. If the settings.xml doesn't contain
7336
	  a debugger section, it's turned off. In this case the debuggersettings
7337
	  in the console won't appear either.
7338
7339
2003-09-21 Manuel Bilderbeek <[email protected]>
7340
	* Made error messages more UNIX style and thus more uniform
7341
7342
2003-09-21 Maarten ter Huurne <[email protected]>
7343
	* Workaround for bug in shutdown sequence:
7344
	  MSXCPU::getCurrentTime is needed by audio callback,
7345
	  but MSXCPU got destroyed before audio was stopped.
7346
	* Finished Pluggable rewrite:
7347
	  - all Pluggable instantiation moved to PluggableFactory
7348
	  - all Pluggable destruction moved to PluggableController
7349
	* Added "install" target to alternative.mk.
7350
7351
2003-09-21 Wouter Vermaelen <[email protected]>
7352
	* tab-completion improvements:
7353
	   - fixed bug while completing tokens that contained spaces
7354
	   - keep the formatting of the line the same as the original line,
7355
	     completion behaves a lot like the completion in bash now
7356
7357
2003-09-20 Maarten ter Huurne <[email protected]>
7358
	* Have VDPCmdEngine pass accurate timestamps to VRAM writes.
7359
	  In the process, replaced opsCount by currentTime.
7360
	  Should solve PA3 enemy box problem (missing bottom line).
7361
7362
2003-09-20 Wouter Vermaelen <[email protected]>
7363
	* Fix the TR status bit in the VDPCmdEngine:
7364
	   most programs don't even check this bit so they weren't affected,
7365
	   the ones that did were waiting forever
7366
7367
2003-09-19 Reikan <[email protected]>
7368
	* Win32: use SHGetSpecialFolderPath when available.
7369
	  I hope this help on Win95.
7370
7371
2003-09-13 Wouter Vermaelen <[email protected]>
7372
	* The ';' character can now be used in the console to put 2 commands
7373
	  on 1 line. This is usefull to bind 2 commands to 1 key and have a
7374
	  deterministic order of executions between those commands.
7375
	* tab-completion now works when cursor is not in last position
7376
7377
2003-09-14 Manuel Bilderbeek <[email protected]>
7378
	* Added run time configurable stereo settings. You can now set the
7379
	  channel mode of each (mono) sound device to mono, left or right from
7380
	  the console, using the set [sounddevice]_mode settings.
7381
	* Integrated VolumeSetting into Mixer class.
7382
7383
2003-09-14 Reikan <[email protected]>
7384
	* Fixed SystemContext error in FileOperations.cc.
7385
	  This affects only on Win32.
7386
7387
2003-09-13 Reikan <[email protected]>
7388
	* Introduced flavour-win32.mk.
7389
	  Do only relatively conservative optimizations.
7390
	* flavour-uow32.mk contains more aggressive optimizations now.
7391
	* platform-mingw32-x86.mk uses flavour-win32.mk as the default now.
7392
7393
2003-09-13 Wouter Vermaelen <[email protected]>
7394
	* filename stuff cleanups
7395
7396
2003-09-12 Manuel Bilderbeek <[email protected]>
7397
	* the file from which the WavAudioInput reads is now configurable with
7398
	  the setting "audio-inputfilename". Default is still
7399
	  "audio-input.wav".
7400
	* restructured AudioWavInput class and cleaned it up a lot
7401
7402
2003-09-11 Wouter Vermaelen <[email protected]>
7403
	* immediately respond to frameskip changes
7404
7405
2003-09-11 Reikan <[email protected]>
7406
	* Added workaround for Win32 on pathname/path-delimiter.
7407
7408
2003-09-11 David Heremans <[email protected]>
7409
	* FDC_DirAsDSK: Figured out why a format didn't work correctly with
7410
	  my default emulated msx2 (NMS8250). Now the code can handle
7411
	  formating, didn't check on other machines yet
7412
7413
2003-09-09 David Heremans <[email protected]>
7414
	* FDC_DirAsDSK: Have cached sectors saved and loaded correctly, now
7415
	  you can use the entire fakedisk for writing as well.
7416
	* Small bugfixes
7417
7418
2003-09-07 Maarten ter Huurne <[email protected]>
7419
	* Have the "plug" command handle PlugException correctly.
7420
	* Changed Connector interface so that subclasses require less code.
7421
	* Declared PlugException in Connector::plug as well.
7422
	  (yesterday's change added it to Pluggable::plug)
7423
	* Replaced C standard includes with their respective C++ wrappers.
7424
7425
2003-09-06 Maarten ter Huurne <[email protected]>
7426
	* Added PlugException, which can be thrown by Pluggable::plug if the
7427
	  plug action fails for some reason.
7428
	* Declared PlugException for the methods that can throw it.
7429
7430
2003-09-06 Manuel Bilderbeek <[email protected]>
7431
	* diska/diskb/etc without argument shows the currently inserted disk
7432
	  now
7433
7434
2003-09-06 Wouter Vermaelen <[email protected]>
7435
	* VDPCmdEngine: correct behaviour when registers are changed while cmd
7436
	  is executing. There seem to be a few glitches left though.
7437
	* Fix VDPCmdEngine timimg (was broken by previous patch)
7438
7439
2003-09-05 David Heremans <[email protected]>
7440
	* Corrected destructor behaviour for the Disk class
7441
7442
2003-09-03 Maarten ter Huurne <[email protected]>
7443
	* Fixed bug: when CPU has to force extra device scheduling, it should
7444
	  schedule all devices until the I/O time, not just the devices until
7445
	  the schedule limit timestamp.
7446
7447
2003-08-30 Wouter Vermaelen <[email protected]>
7448
	* more VDPCmdEngine optimizations
7449
	* fix VDPCmdEngine register status at end of cmd, should now also be
7450
	  correct when cmd is interrupted
7451
	* implemented most willStatusChange() methods for VDPCmdEngine
7452
7453
2003-08-28 Manuel Bilderbeek <[email protected]>
7454
	* the file to which the PrinterLogger logs is now configurable with
7455
	  the setting "printerlogfilename". Default is still "printer.log".
7456
	* the file to which the MidiOutLogger logs is now configurable with
7457
	  the setting "midi-out-logfilename". Default is still "/dev/midi".
7458
	* the file from which the MidiInReader reads is now configurable with
7459
	  the setting "midi-in-readfilename". Default is still "/dev/midi".
7460
	* the file from which the RS232-tester reads is now configurable with
7461
	  the setting "rs232-inputfilename". Default is still "rs232-input".
7462
	* the file to which the RS232-tester writes is now configurable with
7463
	  the setting "rs232-outputfilename". Default is still "rs232-output".
7464
7465
2003-08-27 Wouter Vermaelen <[email protected]>
7466
	* small VDPCmdEngine optimizations
7467
7468
2003-08-25 Wouter Vermaelen <[email protected]>
7469
	* Initial version for Panasonic_FS-A1FM mapper:
7470
	   - internal software doesn't start yet (should it even?), but at
7471
	     least it doesn't crash anymore
7472
7473
2003-08-23 Wouter Vermaelen <[email protected]>
7474
	* Improved tabcompletion for plug command:
7475
	   - only complete pluggables that will fit in the selected connector
7476
	* Made it easier to switch between MSX-MUSIC cores:
7477
	   - use the parameter "alternative" in the device config section
7478
7479
2003-08-23 Manuel Bilderbeek <[email protected]>
7480
	* Made the keys of the key joystick configurable.
7481
	  TODO: make it possible to have more than one key joystick.
7482
	* Already some cleanups to make it robust against bad configs.
7483
7484
2003-08-23 Maarten ter Huurne <[email protected]>
7485
	* Rearranged joystick code:
7486
	  - Separated JoystickPort class into its own files and put them in the
7487
	    "input" directory.
7488
	  - Moved JoystickDevice, DummyJoystick and JoyNet to "input" directory.
7489
	  - Split and removed JoystickPorts class: the I/O was moved to MSXPSG,
7490
	    the instantiation was moved to the new PluggableFactory class.
7491
7492
2003-08-20 David Heremans <[email protected]>
7493
	* Rewrote code to be more sector based instead of cluster based:
7494
	   This also simplified the code, also made first steps towards
7495
	   more correct dir-entry handling.
7496
7497
2003-08-20 Reikan <[email protected]>
7498
	* Added Keymap-change and KeyLayoutBit.
7499
7500
2003-08-18 David Heremans <[email protected]>
7501
	* Added cached diskwriting to FDC_DirAsDSK. Regular file operations
7502
	  seem to work, formatting doesn't yet. No writes to native host OS
7503
	  files so far.
7504
7505
2003-08-18 Reikan <[email protected]>
7506
	* Adjusted as a first step to support win32.
7507
7508
2003-08-17 Herman Oudejans <[email protected]>
7509
	* fixed a serious bug in the commandlineparser. -diska (and b),
7510
	  -carta (and b,c and d) work again.
7511
7512
2003-08-16 Herman Oudejans <[email protected]>
7513
	* Added priority to the commandline parser. When the -h option
7514
	  is invoked, there won't be any machines loaded.
7515
7516
2003-08-14 Wouter Vermaelen <[email protected]>
7517
	* Basic support for .zip files, for now always the first file in
7518
	  the .zip is taken
7519
	* Added filetype detection for filenames of the form
7520
	  "<name>.<type>.zip", e.g. "psycho.dsk.zip"
7521
7522
2003-08-12 David Heremans <[email protected]>
7523
	* Small enhancement in  FDC_DirAsDSK:
7524
	   Alowed writing of the boot sector. The altered boot sector is
7525
	   stored as a hidden file and is used when creating an FDC_DirAsDSK
7526
	   instance
7527
7528
2003-08-13 Maarten ter Huurne <[email protected]>
7529
	* Reikan released C-BIOS 0.17; I updated it in Contrib.
7530
7531
2003-08-12 Wouter Vermaelen <[email protected]>
7532
	* Now any file can be gzipped, including files loaded by SDL and libxml
7533
7534
2003-08-12 David Heremans <[email protected]>
7535
	* improved FDC_DirAsDSK:
7536
	   - now empty sector are generated for unmapped clusters
7537
	   - altered filesize also scanned for when accessing FAT sectors
7538
7539
2003-08-11 David Heremans <[email protected]>
7540
	* Added more functionality to the FDC_DirAsDSK class:
7541
	   - fixed an offset bug
7542
	   - made changes to files on the host OS visible to the emulated dsk
7543
	     file. Now altered filesize is detected when accessing file itself
7544
	     or the DIR sector and the DIR and FAT will be adjusted as needed
7545
7546
2003-08-11 Wouter Vermaelen <[email protected]>
7547
	* Read-only support for .gz files
7548
7549
2003-08-09 Maarten ter Huurne <[email protected]>
7550
	* Put all openMSX code in namespace "openmsx".
7551
	  This avoids name clashes with C libs, for example "Font" being
7552
	  defined by us and by Xlib.
7553
	  Those name clashes occur earlier when precompiling headers,
7554
	  but otherwise it's still an accident waiting to happen.
7555
7556
2003-08-09 Wouter Vermaelen <[email protected]>
7557
	* Fixed FileContext owner ship semantics (fixes memory leak):
7558
	   - the class that creates a FileContext object should also destroy it
7559
	   - when a class needs a FileContext parameter for a longer time than
7560
	     the duration of the method call, it should make a copy of the
7561
	     FileContext object
7562
	* Added audio input pluggable/connector for turbor PCM:
7563
	   - for now it just reads "audio-input.wav"
7564
7565
2003-08-06 Wouter Vermaelen <[email protected]>
7566
	* CPU cleanup / speedup:
7567
	* FDC cleanups:
7568
	   - renamed some classes
7569
	   - added a base class for sector based disks (those that don't
7570
	     store the information 'between' the sectors)
7571
7572
2003-08-06 David Heremans <[email protected]>
7573
	* Introduced to the FDC_DirAsDSK class:
7574
	   - it is now possible to have a directory given as value for the
7575
	     '-disk(a|b)' option, this will construct a read-only disk that
7576
	     contains the regular files in this directory. Content changes in
7577
	     those files are immediately visible in the emulated disks.
7578
	     Sizes changes of files are not incorporated yet!
7579
7580
2003-08-02 Herman Oudejans <[email protected]>
7581
	* fixed compile errors when using gcc version 2.95
7582
7583
2003-07-31 Wouter Vermaelen <[email protected]>
7584
	* Implemeted a RS232 tester pluggable:
7585
	   - writes to file "rs232-output"
7586
	   - reads from file "rs232-input"
7587
	   - the BASIC commands load"COM:" and save"COM:" seem to work
7588
	* Made sure that classes that are ment to be pure virtual,
7589
	  truly are pure virtual
7590
	* Added rs232 extension
7591
7592
2003-07-30 Wouter Vermaelen <[email protected]>
7593
	* Added MSX-RS232 to device factory
7594
	* Gave MSX-RS232 16KB ROM
7595
7596
2003-07-29 Wouter Vermaelen <[email protected]>
7597
	* Added MSX-RS232:
7598
	   - there do not exist any RS232 pluggables yet
7599
	   - code is yet completely untested
7600
7601
2003-07-27 Herman Oudejans <[email protected]>
7602
	* decoupled de console and debugger again. It caused some unforseen
7603
	  site-effects.
7604
	* Added settings for the debugger in settings.xml
7605
7606
2003-07-26 Herman Oudejans <[email protected]>
7607
	* Re-enabled the debuggerconsole.
7608
	* made sure the console is turned off when de debugger is called.
7609
	* added a disassembly view (still static).
7610
	* added the same settings for the debugger as there were for the
7611
	  console (rows, columns, placement, font and background).
7612
7613
2003-07-26 Maarten ter Huurne <[email protected]>
7614
	* Refactored settings code.
7615
	* Moved settings code into new "settings" directory.
7616
	* Cleaned up the linking process.
7617
7618
2003-07-23 Wouter Vermaelen <[email protected]>
7619
	* A few midi in related fixes. Still needs to be tested
7620
	  with real midi hardware
7621
7622
2003-07-22 Wouter Vermaelen <[email protected]>
7623
	* Added midi in reader (reads from /dev/midi):
7624
	   - still completely untested
7625
7626
2003-07-21 Wouter Vermaelen <[email protected]>
7627
	* added joystick emulation for mouse:
7628
	   - when you plug in the mouse with the left button pressed,
7629
	     it behaves like a joystick
7630
	* added Semaphore class
7631
	* protected Scheduler with a Semaphore:
7632
	   - it is now possible the register synchronization points in a different
7633
	     thread than the emulation thread. This will be needed for the
7634
	     MIDI in pluggable
7635
7636
2003-07-20 Herman Oudejans <[email protected]>
7637
	* first steps toward a debugger. For now it's just a
7638
	  static hexdump.
7639
	* Temperary removed an assert in de settingsmanager
7640
	  because the consolesettings are init twice.
7641
7642
2003-07-19 Wouter Vermaelen <[email protected]>
7643
	* Fixed bug in MSX-Audio sample RAM
7644
7645
2003-07-16 Wouter Vermaelen <[email protected]>
7646
	* Fixed some MIDI bugs
7647
	* Added Midi Out Logger (logs to /dev/midi)
7648
7649
2003-07-16 Wouter Vermaelen <[email protected]>
7650
	* Implemented Midi-In and Midi-Out ports for MSX-Midi:
7651
	   - completely untested, so it probably won't work yet
7652
	   - there are no pluggables for the midi ports yet
7653
7654
2003-07-12 Wouter Vermaelen <[email protected]>
7655
	* A Pluggable is now told in which Connector it is plugged
7656
7657
2003-07-08 Herman Oudejans <[email protected]>
7658
	* debugdevice now works with stdout, stderr and normal files
7659
7660
2003-07-08 Wouter Vermaelen <[email protected]>
7661
	* Don't clear SCC wave forms on reset
7662
	* Added MSX-Midi:
7663
	   - except for sending and receiving data it works, thus
7664
	     timers and interrupt generation work
7665
7666
2003-07-06 Herman Oudejans <[email protected]>
7667
	* added a debug device.
7668
	* Details for control are in docs/debugdevice.txt
7669
7670
2003-07-05 Wouter Vermaelen <[email protected]>
7671
	* Started implementing MSX-Midi
7672
7673
2003-07-05 Maarten ter Huurne <[email protected]>
7674
	* Fixed colour of blue intensity 2 in Graphic7 mode.
7675
	  Thanks to Grauw for reporting this bug.
7676
7677
2003-07-03 Maarten ter Huurne <[email protected]>
7678
	* Fixed bug in scanline effect, which caused glitches on ATI and
7679
	  Matrox cards.
7680
7681
2003-07-02 Wouter Vermaelen <[email protected]>
7682
	* Implemented stereo/mono and 8/16-bit conversion for wav files
7683
	* Implemeted "force_play" and "no_force_play" for cassetteplayer
7684
7685
2003-07-01 Wouter Vermaelen <[email protected]>
7686
	* On turbor use big 4mb rom also for MSX-MUSIC ROM and DISK ROM
7687
7688
2003-06-30 Wouter Vermaelen <[email protected]>
7689
	* Fixed cassette player bug:
7690
	   - float was not accurate enough, use 64-bit fixed point
7691
	* Made rewind command for cassetteplayer and tape patch
7692
7693
2003-06-29 Wouter Vermaelen <[email protected]>
7694
	* Made casstte player audible:
7695
	   - you can turn it off with "set cassette_volume 0"
7696
7697
2003-06-28 Wouter Vermaelen <[email protected]>
7698
	* Implemented automatic .cas to .wav conversion in CassettePlayer:
7699
	  - not all .cas files seems to work though
7700
	  - there can be a delay of a few seconds while converting the file,
7701
	    need to do the conversion in a helper thread
7702
	* added peekMem() method, will be used by debugger to savly read mem
7703
7704
2003-06-28 Manuel Bilderbeek <[email protected]>
7705
	* Cleaned up the machines and extensions dir:
7706
	  - added a subdir 'roms' when needed
7707
	  - added the Id tags when missing
7708
	  - filename cleanups
7709
	  - fixed some typos
7710
	  - added SHA1SUMS files in each roms dir, when available
7711
	* Added a few extensions
7712
7713
2003-06-25 Wouter Vermaelen <[email protected]>
7714
	* Implemented Listener interface for Setting class
7715
7716
2003-06-24 Wouter Vermaelen <[email protected]>
7717
	* Converted romdb.xml to use 'title' tags iso 'id' attributes
7718
7719
2003-06-23 Wouter Vermaelen <[email protected]>
7720
	* Implemented SHA1 support for romdb
7721
	* Converted most of romdb.xml to SHA1
7722
7723
2003-06-22 Wouter Vermaelen <[email protected]>
7724
	* Added new YM2413 core:
7725
	   use with the new (temporally) device "Music_2"
7726
	* Implemented TurboR VDP access delay
7727
	* Added SHA1 class (not yet used)
7728
7729
2003-06-21 Wouter Vermaelen <[email protected]>
7730
	* Implemented 'fallback' mechanism for files in settings.xml
7731
7732
2003-06-15 Wouter Vermaelen <[email protected]>
7733
	* Implemented undocumented flag bits for "BIT n,(HL)" instructions,
7734
	  ZEXALL test still passes
7735
7736
2003-06-14 Wouter Vermaelen <[email protected]>
7737
	* Improved performance for tab-completion:
7738
	    without this patch "diska <tab>" could take several seconds
7739
7740
2003-06-10 Wouter Vermaelen <[email protected]>
7741
	* Implemented HBI-55 data cartridge:
7742
	    according to some BASIC test progs it seems to work, but not yet
7743
	    tested with Sony_HB_75P internal software
7744
7745
2003-06-09 Maarten ter Huurne <[email protected]>
7746
	* Released openmsx-0.3.2.
7747
7748
2003-06-09 Manuel Bilderbeek <[email protected]>
7749
	* Updated HOWTO (please check)
7750
	* Updated/cleaned up machine configs:
7751
	  - MSX2+ machines have a memory mapper of 64kB (tested on real
7752
	    Panasonic FS-A1WX)
7753
	  - Changed ROM names in 8250 config to match the ones used in the
7754
	    other configs, using a 32kB combined ROM for basic/bios
7755
	  - Added missing CVS Id tags
7756
	  - Removed unnecessary DiskRomPatches from machines with TC8566AF FDC's
7757
	  - Changed FDC type names to new conventions (see 2003-03-29), note
7758
	    that the old ones won't work anymore. The names of the FDC classes
7759
	    should be revised though.
7760
7761
2003-06-09 Maarten ter Huurne <[email protected]>
7762
	* Implemented user-specified gamma correction for SDLLo/SDLHi/SDLGL.
7763
	  Find out your PC monitor's gamma using the measurement image on the
7764
	  following page: http://www.bberger.net/gamma.html
7765
	  TVs use a standardised gamma of 2.5. So for a realistic picture, set
7766
	  openMSX gamma correction to: PC_gamma / 2.5.
7767
	  Or you can just try a few values and see what you like ;)
7768
7769
2003-06-08 Wouter Vermaelen <[email protected]>
7770
	* Don't abort on "cassetteplayer <file>" cmd with invalid filename
7771
	* Print warning when initial font or background images can't be read
7772
7773
2003-06-08 Maarten ter Huurne <[email protected]>
7774
	* In the command engine, only act on display mode switches if a
7775
	  different command engine mode is entered.
7776
	* Fixed various GCC 2.95 compile problems.
7777
7778
2003-06-07 Wouter Vermaelen <[email protected]>
7779
	* Print error msg when user gives wrong diskimage on the cmd line
7780
	*  same for cas and wav images
7781
	* Fix core dump while writing to read-only disk images
7782
	* Don't put empty lines in console history
7783
7784
2003-06-06 Maarten ter Huurne <[email protected]>
7785
	* Added FloatSetting class.
7786
	* Introduced new setting "gamma" for gamma correction.
7787
	  Not yet implemented in Renderers.
7788
	* Refactored EnumSetting:
7789
	  - Split into type-safe inline wrapper class "EnumSetting" and
7790
	    type-indedendent implementation class "IntStringMap".
7791
	    Forced template instantiations are no longer necessary.
7792
	  - Made strings in string-enum map constant.
7793
7794
2003-06-06 Wouter Vermaelen <[email protected]>
7795
	* Refactored consolecolumns and consolerows settings
7796
7797
2003-06-05 Wouter Vermaelen <[email protected]>
7798
	* Merged Arjan's YMF278 fixes/improvements, plus did some optimizations
7799
	* Take default MapperIO type in case the machine configuration doesn't
7800
	  specify one (all MSX1 machines)
7801
7802
2003-06-04 Maarten ter Huurne <[email protected]>
7803
	* New console font: ConsoleFontRaveL.png, this is a larger version of
7804
	  ConsoleFontRave.png (easier to read on hi-res screens).
7805
	* New extensions: 512K/1MB/2MB/4MB external mapper.
7806
7807
2003-06-04 Herman Oudejans <[email protected]>
7808
	* Background and Fonts are not reset anymore when changing renderers.
7809
	* Added 10 machine configurations, made by BifiMsx
7810
7811
2003-06-04 Wouter Vermaelen <[email protected]>
7812
	* support 8kb roms
7813
	* fixed SDLFont, sometimes the font was completely transparent
7814
	* fixed UMR in Timer class (caused Toshiba rom to hang openMSX)
7815
	* Implemented fake "per pixel alpha blending" for SDLFont
7816
7817
2003-06-03 Maarten ter Huurne <[email protected]>
7818
	* Fixed SDLGL tile cache when character and pattern table use mirroring.
7819
	  Solves glitches in Dr Archie, Relax and probably others.
7820
7821
2003-06-02 Maarten ter Huurne <[email protected]>
7822
	* New console font: ConsoleFontRave.png, based on Bitstream Vera, but
7823
	  renamed due to license requirements (see http://www.gnome.org/fonts/).
7824
	* Re-encoded existing console fonts to make their files smaller.
7825
7826
2003-06-01 Wouter Vermaelen <[email protected]>
7827
	* Implemented MegaRam
7828
	* Implemented PAC  (like FMPAC, but without FM and without ROM)
7829
7830
2003-06-01 Herman Oudejans <[email protected]>
7831
	* Added a setting for grabbing mouse and keyboard input. When input
7832
	  is grabbed, the windowsmanager won't be able to mask keys from
7833
	  openmsx and the mousecursor won't be able to leave the openmsx
7834
	  window.
7835
7836
2003-06-01 Wouter Vermaelen <[email protected]>
7837
	* Fixed mouse (hopefully)
7838
	* Removed "loadsram" and "savesram" settings
7839
7840
2003-05-31 Maarten ter Huurne <[email protected]>
7841
	* When pausing, store last frame and keep plotting it during pause.
7842
	  Also keep redrawing the console, so it is usable during pause.
7843
	  Current implementation is a bit of a hack, but it works.
7844
	* Implemented afterglow effect, try "set glow N" in SDLGL.
7845
7846
2003-05-31 Wouter Vermaelen <[email protected]>
7847
	* VDPCmdEngine cleanups
7848
7849
2003-05-31 Herman Oudejans <[email protected]>
7850
	* Changed console save file into ascii. When loading the history,
7851
	  empty lines are ignored.
7852
	* Removed error when unable to load consolehistory
7853
	* Only two identical commando's directly after eachothers are now
7854
	  removed if removedoubles is active to improve performance.
7855
	* Remove settings for consolehistory load & save. Default are now:
7856
	  - Always load and save.
7857
	  - Filename is now fixed as 'history.txt'
7858
7859
2003-05-30 Wouter Vermaelen <[email protected]>
7860
	* Refactored VDPCmdEngine, use VDPCmd subclasses for each command
7861
	  instead of function pointers
7862
7863
2003-05-30 Herman Oudejans <[email protected]>
7864
	* Implemented save/load consolehistory
7865
7866
2003-05-30 Maarten ter Huurne <[email protected]>
7867
	* Implemented Text2 and MultiColour modes in SDLGL using one texture
7868
	  per character approach (the approach Graphic2/3 already used).
7869
	* Implemented screen accuracy.
7870
	* Do not sync during a skipped frame.
7871
7872
2003-05-27 Maarten ter Huurne <[email protected]>
7873
	Dirty checking improvements:
7874
	* Removed all old character dirty checking code from SDLRenderer and
7875
	  SDLGLRenderer.
7876
	* Added DirtyChecker class, a generic VRAM cache administration.
7877
	* Use new DirtyChecker in SDLGLRenderer for pattern and colour table.
7878
	  Caching the name table is useless in SDLGLRenderer.
7879
	This is a work in progress, but the current state seems to be stable.
7880
7881
2003-05-26 Wouter Vermaelen <[email protected]>
7882
	* More RealTimeRTC improvements
7883
	* Some frameskip tuning
7884
	* Keep frameskip setting between renderer switch
7885
7886
2003-05-25 Wouter Vermaelen <[email protected]>
7887
	* Use RTC Timer for RealTime syncing when available
7888
7889
2003-05-25 Herman Oudejans <[email protected]>
7890
	* Fixed a problem with the consolesize when switching from SDLLo
7891
	  to SDLHi or SDLGL.
7892
	* When the console is resized, the text in it will be rebuild.
7893
	* Fixed a bug in the cursormovement (broke with the text rebuild).
7894
7895
2003-05-24 Wouter Vermaelen <[email protected]>
7896
	* Split RealTime in generic part and implementation specific part.
7897
	  This decouples time synchronization from SDL and paves the way
7898
	  for more accurate implementation (like RTC)
7899
7900
2003-05-24 Maarten ter Huurne <[email protected]>
7901
	* I/O to extended VRAM now goes to limbo, instead of main VRAM.
7902
	* Changed VDPVRAM::Window to VRAMWindow.
7903
	  There is not much added value to a public inner class in C++...
7904
	* Changed VDPVRAM::VRAMObserver to VRAMObserver, in its own file.
7905
	  Own file reduces the risk of cyclic header dependencies.
7906
	* Renderer gets VRAM updates through VRAMObserver.
7907
	  This is a preparation for later optimisations.
7908
	* Make sure no sprite checking is done in spriteless display modes.
7909
	* In a spriteless mode, or when sprites are disabled, the entire sprite
7910
	  plane is skipped. This is more efficient than the previous checks for
7911
	  a "no sprites" situation, because it occurs earlier in the rendering
7912
	  process.
7913
7914
2003-05-24 Herman Oudejans <[email protected]>
7915
	* commands can now be on multiple lines in the console.
7916
7917
2003-05-23 Herman Oudejans <[email protected]>
7918
	* Fixed an error when processing the commandline and one
7919
	  device exists twice in the configurationfile(s).
7920
7921
2003-05-21 Herman Oudejans <[email protected]>
7922
	* Double commands in the console commandhistory can no
7923
	  longer occur.
7924
	* Made 'remove doubles' and history size configurable
7925
7926
2003-05-20 Wouter Vermaelen <[email protected]>
7927
	* Implemented run-time tuneable volume for sound devices
7928
7929
2003-05-19 Herman Oudejans <[email protected]>
7930
	* Implemented search history in the console
7931
	* added Ctrl-C to clear the current command.
7932
7933
2003-05-19 Wouter Vermaelen <[email protected]>
7934
	* Added MoonSound:
7935
	  - code was largly taken from mame
7936
	  - fm part is quite good already
7937
	  - wave part still needs some improvements:
7938
	     - some waves sound weird at certain frequencies??
7939
	     - missing features like: pseudo-reverb, LFO, vibrato, ...
7940
7941
2003-05-18 Maarten ter Huurne <[email protected]>
7942
	* Released openmsx-0.3.1.
7943
7944
2003-05-18 Herman Oudejans <[email protected]>
7945
	* Converted a lot of spaces into tabs.
7946
	* Changed int into bool for zoomSurface().
7947
	* Fixed indentation in zoomSurface().
7948
7949
2003-05-18 Maarten ter Huurne <[email protected]>
7950
	* Removed "ConsoleSource" directory and moved its code elsewhere:
7951
	  - actual console code moved to new directory "console"
7952
	  - command code moved to existing directory "events"
7953
	  - circular buffer code moved to directory "src"
7954
	* Moved input devices code to new directory "input".
7955
	  Maybe more can be moved there in the future.
7956
	* Changed "cpudebug" command into "cputrace" setting.
7957
	  Also fixed the duplicate "cpudebug" command on a turbo R (dual CPU).
7958
	  Note: this setting exists only if "cpu" dir is built in debug mode.
7959
7960
2003-05-17 Maarten ter Huurne <[email protected]>
7961
	* Removed EmuTime parameter from Command::execute.
7962
	  Since most commands do not interact with the emulated machine,
7963
	  they do not need EmuTime.
7964
	* Removed EmuTime parameter from EventListener.
7965
	  The only reason this was needed before, was to execute commands.
7966
	* Removed code that is no longer needed in the single thread model.
7967
	* Fixed event handling during pause.
7968
7969
2003-05-17 Herman Oudejans <[email protected]>
7970
	* Implemented configurable file-extentions.
7971
	* Lined the help-text up, properly.
7972
	* Renamed lines/rows/columns/width/height -> rows/columns
7973
	* Fixed a uncaught exception when the SDLConsole is resized
7974
	  and the backgroundfile can't be loaded.
7975
	* Fixed -h when the specified machine can't be loaded.
7976
	* Console now resets the scrollback when any key other than
7977
	  page up/down is used.
7978
	* Fixed the blinking cursor in the SDLConsole.
7979
	* Fixed Ctrl-A/E when numlock is active
7980
	* Fixed a few small bugs in the CommandLineParser.
7981
7982
2003-05-17 Reikan <[email protected]>
7983
	* Changed to single thread model.
7984
	  Now fixed SDLGL renderer fault on XFree86-4.3.0.
7985
7986
2003-05-11 Maarten ter Huurne <[email protected]>
7987
	* Fixed colour of font on GLConsole overlayed on Text1 mode.
7988
7989
2003-05-11 Herman Oudejans <[email protected]>
7990
	* Fixed segfault in the SDL background scaling when using 8bpp.
7991
	  tested and working in 15,16 and 24 bpp. in 8 bpp it doesn't
7992
	  give a segfault, but since the whole display isn't working, I
7993
	  can't see if the scaling really works.
7994
	* SDL backgroundimage can now have any pixelformat.
7995
	* SDL Console characters are no longer blended.
7996
7997
2003-05-10 Herman Oudejans <[email protected]>
7998
	* Fixed wrong initial default size of the console.
7999
	* Fixed range of the consolecolumns-setting
8000
8001
2003-05-10 Wouter Vermaelen <[email protected]>
8002
	* Replaced old YM2413 code by new one. Volume still needs some tuning:
8003
	   - relative volume between music and drum channels
8004
	   - relative volume between YM2413 and other sound chips
8005
8006
2003-05-09 Herman Oudejans <[email protected]>
8007
	* Added resizing and moving to the console.
8008
	* Extended the console editing keys.
8009
	* Added keyrepeat to the console.
8010
	* Added setValueInt() and setRange() to Integersetting.
8011
	* Added SDL background scaling.
8012
8013
2003-05-08 Maarten ter Huurne <[email protected]>
8014
	* Another GCC 3.3-pre fix: passing signed byte references as unsigned
8015
	  byte references. Typecasting to "(byte &)" instead of "(byte)" works
8016
	  on both GCC 3.2 and GCC 3.3-pre.
8017
8018
2003-05-07 Wouter Vermaelen <[email protected]>
8019
	* a few fixes in new YM2413 code. Still not made default because
8020
	  drums in illusion city are screwed
8021
8022
2003-05-06 Maarten ter Huurne <[email protected]>
8023
	* Compiled with GCC 3.3-pre:
8024
	  - Fixed missing "#include <cassert>" directives.
8025
	  - Fixed some warnings, suppressed others.
8026
8027
2003-05-05 Wouter Vermaelen <[email protected]>
8028
	* release openmsx-0.3.0
8029
	* added "mbstereo" extension
8030
8031
2003-05-04 Maarten ter Huurne <[email protected]>
8032
	* Swapped the threads: event handling now occurs in the main thread,
8033
	  emulation occurs in a worker thread. Inspired by Reikan's UOW32 patch.
8034
	  This removes a lot of differences between the Linux and Win32 ports.
8035
	  Also, renderer switching and runtime full screen toggle should work
8036
	  on Win32 now.
8037
	* Bug fixes on thread swap:
8038
	  - Fixed compile error on GCC 2.95.
8039
	  - Workaround for incompatibility of SDL_PushEvent.
8040
	  - Print exceptions thrown in emulation thread.
8041
	* Minor bug fix on video init attempts in RendererFactories.
8042
	* Merged Reikan's configure.ac improvements.
8043
	* Fixed magnified sprites in sprite mode 2.
8044
	  Glitches in Eindeloos are gone.
8045
	* Fixed bug: display was disabled after switching renderers during
8046
	  overscan (for example Unknown Reality title screen).
8047
	* Fixed bug: possible writes outside screen buffer on overscan.
8048
	  Crashed Ark-a-Noah on SDLHi.
8049
8050
2003-05-03 Wouter Vermaelen <[email protected]>
8051
	* Trojka starts playing ADPCM samples without initializing the
8052
	  sample volume. The sample volume after a reset was set to
8053
	  minimum, changed it to maximum.
8054
8055
2003-05-03 Maarten ter Huurne <[email protected]>
8056
	* Removed EmuTime parameters from Settings methods.
8057
	* Centralized GL header check in new GLUtil.hh file.
8058
	  In the future, GLUtil.hh will contain GL utility classes/functions.
8059
	* Replaced "renderer" command by a "renderer" setting.
8060
	  This also makes sure the user cannot switch to a non-existant renderer.
8061
	* Moved "Rom.(hh|cc)" and "SRAM.(hh|cc)" from "src" to "src/memory".
8062
	* Removed obsolete "cfg" directory; configurations are in "share" now.
8063
8064
2003-05-02 David Heremans <[email protected]>
8065
	* Added the Contrib/cbios directory to 'make install'
8066
	* Have make install create some nice softlinks
8067
	* Added md5sum files
8068
8069
2003-04-30 Maarten ter Huurne <[email protected]>
8070
	* Introduced Blender class and use it from Character/BitmapConverter.
8071
	* Implemented narrow SCREEN6 sprite pixels in SDLGL.
8072
	* Implemented blended SCREEN6 sprite pixels in SDLLo.
8073
	* Refactored ROM related classes to get device ID from hardwareconfig.xml
8074
	  into RomInfo.
8075
	  In the process all mapper type code has been centralized in RomInfo.
8076
	  All of this just to get "slot 3.3: Firmware" in the slotmap ;)
8077
8078
2003-04-29 Wouter Vermaelen <[email protected]>
8079
	* Fix tabcompletion for absolute paths
8080
8081
2003-04-28 David Heremans <[email protected]>
8082
	* Fixed make install to /opt/openMSX and create extra link for
8083
	  binary in /usr/local/bin
8084
	* added (no)debug to main makefile
8085
8086
2003-04-27 Wouter Vermaelen <[email protected]>
8087
	* Implemented more complete filename completion as described in
8088
	  feature request 713442
8089
8090
2003-04-27 Maarten ter Huurne <[email protected]>
8091
	* Added a console background to SDLGL when no image is used.
8092
	* Minor cleanups to console classes.
8093
	* Take horizontal adjust into account for calculating HR and horizontal
8094
	  retrace interrupt timing.
8095
	  Fixes some of the glitches in No Waste, but not all.
8096
	* Fixed text colour in Text1 mode in SDLGL: reverted a misguided
8097
	  optimisation. (in GL, full intensity of int is 0x7FFFFFFF, not 0xFF)
8098
	* Updated C-BIOS to version 0.16.
8099
8100
2003-04-25 David Heremans <[email protected]>
8101
	* Allowed JoyNet to accept a new connection if
8102
	  previous connection is closed.
8103
8104
2003-04-25 Maarten ter Huurne <[email protected]>
8105
	* Fixed sprite colours in Graphic5 (SCREEN6).
8106
	  The turbo R boot logo looks OK now.
8107
	  However, narrow sprite pixels do not yet work in SDLGL.
8108
	* Implemented horizontal scroll high and multi page in SDLGL.
8109
	  This implementation is based on Wouter's horizontal scroll patch.
8110
	* Implemented horizontal scroll high and multi page in SDLHi/Lo.
8111
	Note that some horizontal scroll features are still missing:
8112
	* Multi page scrolling in combination with deinterlace.
8113
	* Scrolling in character modes.
8114
	However, the current state should be enough to run most games and demos.
8115
8116
2003-04-24 Wouter Vermaelen <[email protected]>
8117
	* if an extension exists both in user as in system directory, prefer
8118
	  the one in user directory
8119
8120
2003-04-23 Maarten ter Huurne <[email protected]>
8121
	* Added update calls for horizontal scroll settings.
8122
8123
2003-04-22 Maarten ter Huurne <[email protected]>
8124
	* Partial horizontal scroll implementation: scroll low and border mask.
8125
	  Scroll high and multi page to be done.
8126
	  Space Manbow works fine in MSX2+ mode now.
8127
8128
2003-04-21 Wouter Vermaelen <[email protected]>
8129
	* Improved DACSound quality:
8130
	   - improved quality at the expense of an (extra) delay
8131
	   - samples in Swiss Demo sound acceptable now
8132
	   - modplayer sounds better but still not very good
8133
	* Updated FMPAC:
8134
	   - ROM is not visible while SRAM is active
8135
8136
2003-04-19 Wouter Vermaelen <[email protected]>
8137
	* Added alternative YM2413 core (implemented by Jarek Burczynski):
8138
	   - still needs some work before it can replace old core
8139
	      - volume needs some tuning
8140
	      - performance optimizations (silent channels)
8141
	      - bug fixes(?)
8142
	   - if you want to try it copy YM2413.cc.new and YM2413.hh.new over
8143
	     YM2413.cc and YM2413.hh and recompile
8144
8145
2003-04-18 David Heremans <[email protected]>
8146
	* Fixed a bug in JoyNet, but need a program with a good asyncron
8147
	  protocol to test it
8148
8149
2003-04-17 Maarten ter Huurne <[email protected]>
8150
	* Separated drawSprites from drawDisplay in subclasses of PixelRenderer.
8151
8152
2003-04-16 Maarten ter Huurne <[email protected]>
8153
	* Moved display coordinate calculation from subclasses to PixelRenderer.
8154
8155
2003-04-15 Wouter Vermaelen <[email protected]>
8156
	* Reworked SCC
8157
	   - Manuel Pazos's SCC detection routine works correctly now
8158
	   - Optimized for common case. You mostly write to SCC and hardly
8159
	     ever read from it
8160
8161
2003-04-12 Wouter Vermaelen <[email protected]>
8162
	* Reworked consoles:
8163
	   - splitted console in "core console" and "console renderer",
8164
	     the main advantage is that command history is preserved
8165
	     while switching renderers
8166
8167
2003-04-12 Maarten ter Huurne <[email protected]>
8168
	* Created util.hh: currently only contains fillBool, which used to be
8169
	  duplicated in SDLRenderer and SDLGLRenderer.
8170
	* Removed system.h: this file has probably been obsolete for some time,
8171
	  but managed to escape everyone's attention.
8172
	* Changed SDLGLRenderer to use SpriteConverter.
8173
8174
2003-04-10 Maarten ter Huurne <[email protected]>
8175
	* Moved the VDP and rendering code into new "video" directory.
8176
	  Thanks to Manuel for suggesting how to solve symbol dependencies.
8177
	  But I still don't like recursive Make...
8178
8179
2003-04-09 Maarten ter Huurne <[email protected]>
8180
	* Merged SDLLoRenderer and SDLHiRenderer into SDLRenderer.
8181
	  Template expansion replaces duplicated code.
8182
	  From a user perspective, "SDLLo" and "SDLHi" still exist.
8183
8184
2003-04-06 Manuel Bilderbeek <[email protected]>
8185
	* Clean up in RomInfo stuff for empty ROMs. Note that I'm now assuming
8186
	  that an empty ROM is always an empty SCC. Is this a valid
8187
	  assumption? The problem is that `forced' ROM types (as with an empty
8188
	  SCC) are not put in the ROMInfo. So I can't check if it is really
8189
	  an SCC...
8190
8191
2003-04-05 Wouter Vermaelen <[email protected]>
8192
	* Added Korean80-in-1 mapper type
8193
	* Added Korean90-in-1 mapper type
8194
	* Added Korean126-in-1 mapper type
8195
	* Implemented "keyjoystick", joystick emulation via keyboard:
8196
	   - use like this "plug joyporta keyjoystick"
8197
	   - joystick direction is mapped on cursors
8198
	              button-A               space
8199
	              button-B               left alt
8200
	   - TODO mapping should become configurable
8201
	   - TODO you should be able to configure more than one keyjoystick
8202
	* Implemented V9958 CMD bit:
8203
	   I don't know any program that actually uses this, so it is
8204
	   not yet tested
8205
8206
2003-04-04 David Heremans <[email protected]>
8207
	* Getting everything in /opt/openmsx installed, no links yet
8208
8209
2003-04-04 Maarten ter Huurne <[email protected]>
8210
	* Introduced SpriteConverter, a utility class for the Renderers to use,
8211
	  similar to BitmapConverter and CharacterConverter.
8212
	* Changed SDLHiRenderer to use SpriteConverter.
8213
	* Removed PixelRenderer's protected fields from SDLGL and SDLHi.
8214
8215
2003-04-03 Maarten ter Huurne <[email protected]>
8216
	* Fixed remaining reads of uninitialised VDP fields.
8217
8218
2003-04-02 David Heremans <[email protected]>
8219
	* First cleanups to prepare for a 'make install'
8220
8221
2003-04-02 Maarten ter Huurne <[email protected]>
8222
	* Minor cleanups in SpriteChecker.
8223
8224
2003-03-31 Maarten ter Huurne <[email protected]>
8225
	* Turned DisplayMode into a class (makes code easier to read).
8226
	* SpriteChecker no longer checks sprites in text mode.
8227
	* Various minor cleanups along the way.
8228
8229
2003-03-31 Wouter Vermaelen <[email protected]>
8230
	* Don't abort (only warn) when there occurs an error during processing
8231
	  of autocommands
8232
	* Converted "frontswitch" command into a setting
8233
8234
2003-03-30 Maarten ter Huurne <[email protected]>
8235
	* Removed fullScreen parameter from Renderer constructors.
8236
	* Made Renderer constructors private, only available to their
8237
	  respective factories.
8238
	* VDP subsystem reset methods are no longer called by their constructor,
8239
	  instead they are called explicitly by the VDP.
8240
	* Removed EmuTime parameter from VDP subsystem constructors.
8241
	* Rearranged VDP constructor to remove overlap with reset method.
8242
	* Fixed uses of display mode which could not yet handle the YJK bits.
8243
	* Fixed a tricky bug that could occur if rendering was performed in the
8244
	  middle of a series of updates that all occur at the same EmuTime.
8245
8246
2003-03-29 Manuel Bilderbeek <[email protected]>
8247
	* Moved other configs from src/cfg to share/machines
8248
	* Added some more extensions
8249
	* Changed settings.xml to use cbios-msx2 and added skins/ prefix to
8250
	  ConsoleFont.png
8251
	* Updated the HOWTO. I wish the make install was finished, so that I
8252
	  can cut 10% of the HOWTO... (it's getting complicated to explain...)
8253
8254
2003-03-29 Wouter Vermaelen <[email protected]>
8255
	* Fixed crashes on missing arguments (e.g. "openmsx -ext")
8256
	* Added extra FDC names:
8257
	     National  --> MB8877A
8258
	     Panasonic --> TC8566AF
8259
	     Philips   --> WD2793
8260
	  The old names are deprecated, as soon as the machine configuartions
8261
	  are changed to use the new names, the old names will be removed.
8262
	* Fixed crash on missing console font
8263
8264
2003-03-28 Manuel Bilderbeek <[email protected]>
8265
	* More refactoring of Rom objects to add RomInfo:
8266
	  - all Rom objects now have a RomInfo object
8267
	  - get information that was in the romdb from that object
8268
	  - slotmap uses this and prints real Rom info, when available; later,
8269
	    the GUI should be able to use this too, in some way
8270
	  - note that all MSXRom constructors changed :-)
8271
	  - note that it's my first big change, please fix things that
8272
	    could be a lot better and tell me about it :-)
8273
	    Maarten, Wouter and Joost: thanks for your help!
8274
	* Added loads of machine configs (thanks Atarulum):
8275
	  - when we decide what to do with the patches for the FDC, I'll
8276
	    add the others
8277
8278
2003-03-26 Wouter Vermaelen <[email protected]>
8279
	* Fixed RomPanasonic SRAM
8280
	* Optimized VDPCmdEngine for common case: no command in progress
8281
8282
2003-03-25 Wouter Vermaelen <[email protected]>
8283
	* Fixed VDP Command Engine bug:
8284
	   - on every sync() the engine processed at least one 'pixel',
8285
	     when you poll the VDP very fast (R800) the time between
8286
	     two syncs is less than one pixel. This screws up the
8287
	     bookkeeping.
8288
	   - Fixes MSXView startup problem, Relax demo, ...
8289
8290
2003-03-24 Wouter Vermaelen <[email protected]>
8291
	* Another directory structure change:
8292
	   moved machines/     -> share/machines/
8293
	         extensions/   -> share/extensions/
8294
	         etc/romdb.xml -> share/romdb.xml
8295
	         settings.xml  -> share/settings.xml
8296
	* Create share directory, moved a lot of files around
8297
8298
2003-03-23 Wouter Vermaelen <[email protected]>
8299
	* Reimplemented Panasonic memory system:
8300
	   - in TurboR rom/ram are tightly connected (dram mode, ...)
8301
	     Memorymapper, RomMapper, BiosRom are now implemented as special
8302
	     as special devices
8303
	   - TurboR hardwareconfig.xml updated
8304
	   - MSXView almost works now, without "set cmdtiming broken" openmsx
8305
	     wait for a never ending VDP command. Still investigating...
8306
8307
2003-03-22 Manuel Bilderbeek <[email protected]>
8308
	* Refactored ROM mappertype retrieval/ROM Info (WIP, to enable readout
8309
	  of ROM info in the console.)
8310
8311
2003-03-16 Wouter Vermaelen <[email protected]>
8312
	* Implemented timeout for reading mouse:
8313
	   - this fixes the '"plug joyporta mouse" in settings.xml' bug
8314
	   - current timeout is 1/100s, I've no idea of the timeout
8315
	     value of a real MSX mouse
8316
8317
2003-03-16 Wouter Vermaelen <[email protected]>
8318
	* Various minor optimizations / cleanups, mostly better cache for
8319
          unmapped memory regions
8320
8321
2003-03-16 Manuel Bilderbeek <[email protected]>
8322
	* When a ROM is found in the romdb, the info about the ROM is now
8323
	  printed. Later, this info could be stored somewhere, so that the GUI
8324
	  can use it to show a ROM title, e.g.
8325
8326
2003-03-15 Wouter Vermaelen <[email protected]>
8327
	* Added HALNOTE mapper type:
8328
	   - Doesn't work yet! Only 'normal' rom switching is emulated.
8329
	     The program also writes to pages 0 en 3 and it selects rom
8330
	     pages > 0x80, I've no idea what this should do.
8331
	* Fixed format command, apparently I broke it several months ago.
8332
8333
2003-03-13 Wouter Vermaelen <[email protected]>
8334
	* Implemented "vramdump" console command, only available when
8335
	  compiled with DEBUG
8336
8337
2003-03-10 Wouter Vermaelen <[email protected]>
8338
	* Reworked MSXRom:
8339
	   - made a (small) subclass for every mapper type:
8340
	* Moved MSXRom MSXRam related files to a new directory "memory"
8341
	* Fixed rom-cartridge SRAM saving, path was wrong:
8342
	   - it is now ~/.openMSX/persistent/roms/<romname>/<sramname>
8343
8344
2003-03-05 Wouter Vermaelen <[email protected]>
8345
	* Implemented "Harry Fox" mapper type
8346
	* Fixed ASCII8 mapper type:
8347
	   Annimal Land works now
8348
8349
2003-03-03 Maarten ter Huurne <[email protected]>
8350
	* Fixed bug in PixelRenderer: finishFrame was called every frame,
8351
	  even with frame skip active.
8352
	  This also fixes the special effects in GL with frame skip active.
8353
8354
2003-03-02 Maarten ter Huurne <[email protected]>
8355
	* Introduced RendererFactory.
8356
	  This should help in making the renderer selection a setting.
8357
	  It will also make it possible to query which renderers are available.
8358
8359
2003-03-02 Wouter Vermaelen <[email protected]>
8360
	* Converted "frameskip" console command into a setting
8361
	* Implemented BooleanSetting as a specialization of EnumSetting<bool>
8362
	* Fixed path resolution bug:
8363
	   all files were also searched for relative to the current directory
8364
8365
2003-03-01 Maarten ter Huurne <[email protected]>
8366
	* Updated C-BIOS to version 0.15.
8367
8368
2003-03-01 Wouter Vermaelen <[email protected]>
8369
	* Converted "throttle" console command into a setting
8370
	* Converted "pause" console command into a setting
8371
	* Converted "mute" console command into a setting
8372
	* Converted "console" console command into a setting
8373
8374
2003-02-27 Wouter Vermaelen <[email protected]>
8375
	* Converted "speed" console command into a setting
8376
8377
2003-02-26 Wouter Vermaelen <[email protected]>
8378
	* Implemented free slot selection:
8379
	   - this is only a temporary solution, it will very likely change
8380
	     in the next release
8381
	   - when you specify -1 for the primary slot, the cartridge will
8382
	     be inserted in a free external slot. Very usefull to write
8383
	     generic extensions.
8384
	* romdb.xml is now searched in /opt/openMSX/etc/romdb.xml
8385
	                         or in ~/.openMSX/etc/romdb.xml
8386
	* removed -fmpac and -musmod command line options, they are
8387
	  replaced by extensions
8388
8389
2003-02-24 Wouter Vermaelen <[email protected]>
8390
	* extension directory now has the same structure as the
8391
	  machines directory:
8392
	   - for example the scc extension lives in
8393
	       ~/.openMSX/extensions/scc/hardwareconfig.xml
8394
	* Implemented Jon's SCC amplitude measurements
8395
8396
2003-02-23 Wouter Vermaelen <[email protected]>
8397
	* Implemented command line extensions:
8398
	   - you can load configuration files located in
8399
	      ~/.openMSX/extensions/
8400
	      /opt/openMSX/extensions/
8401
	     with the "-ext" command line option
8402
	   - example:
8403
	      ./openmsx SDNATCH1.DSK -ext scc+
8404
	* Removed -msx1 -msx2 -msx2+ -turbor command line options
8405
	* SRAM of rom cartridges is saved in
8406
	    ~/.openMSX/persistent/roms/<rom-name>/
8407
8408
2003-02-19 Wouter Vermaelen <[email protected]>
8409
	* Implemented "console_font" setting:
8410
	   - change the console font at run-time
8411
	* Fixed SCC+
8412
8413
2003-02-19 Maarten ter Huurne <[email protected]>
8414
	* Implemented "toggle" command, which toggles any BooleanSetting.
8415
	* Replaced "fullscreen" command by "toggle fullscreen".
8416
	* Support key binding of command including parameters.
8417
8418
2003-02-18 Wouter Vermaelen <[email protected]>
8419
	* Reworked File / FileContext classes:
8420
	   - separated "searchpath-resolution" from file opening
8421
	* Implemented "console_background" setting:
8422
	   - change the console background at run-time
8423
8424
2003-02-16 Maarten ter Huurne <[email protected]>
8425
	* Fixed a bug in the VDP, where display-on was reported before the sync
8426
	  with VDP subsystems was completed. Can cause the command engine to
8427
	  run too slow, among other things.
8428
8429
2003-02-16 Wouter Vermaelen <[email protected]>
8430
	* First step to persistent state directories:
8431
	   - persistent state files are saved in
8432
	      ~/.openMSX/persistent/<machine>/<username>/
8433
	   - <machine> is the name of the directory where we found the
8434
	     hardware description. Maybe we should get this from inside the
8435
	     config file?
8436
	   - it's not yet possible to specify <username>, so for now it's
8437
	     always "untitled<n>"
8438
	* Default machine can be specified in settings.xml:
8439
	   - see example settings.xml, this will load
8440
	      ~/.openMSX/machine/nms8250/hardwareconfig.xml
8441
	* Added "-machine" command line option
8442
8443
2003-02-13 Maarten ter Huurne <[email protected]>
8444
	* Made "full screen" into a setting.
8445
	  The "fullscreen" command still works, but will disappear in the future.
8446
8447
2003-02-10 Wouter Vermaelen <[email protected]>
8448
	* Uninline cpu rdmem and wrmem slowpaths:
8449
	   this actually increased performance a little
8450
	* RTC uses generic SRAM class for persistent data:
8451
	   - SRAM is now the _only_ class in the whole tree that writes files
8452
	   - parameters "filename, load, save" changed to "sramname, loadsram,
8453
	     savesram". This means all configuartion files must be updated.
8454
	* Implemented SCC+ subtypes:
8455
	   "Snatcher" "SD-Snatcher" "mirrored" "expanded"
8456
8457
2003-02-08 Wouter Vermaelen <[email protected]>
8458
	* Fixed MSX-AUDIO mapper:
8459
	   - it has 4 pages of 32kB instead of only 2
8460
	   - it has 4kB RAM
8461
	   - is mirrored at 0x8000-0xffff
8462
	* Fixed Y8950 interrupt masks
8463
8464
2003-02-02 Wouter Vermaelen <[email protected]>
8465
	* Implemented Panasonic MSX-Audio mapper type (untested)
8466
8467
2003-02-02 Wouter Vermaelen <[email protected]>
8468
	* Compiled with some extra warnings enabled and fixed the
8469
	  resulting warnings
8470
	* Renamed MSXRomDevice to Rom (it isn't a device anymore)
8471
	* Default values for settings.xml:
8472
	   - all sections in settings.xml now have default values if they
8473
	     are left out the config file
8474
	   - don't abort when settings.xml is not found
8475
	   - but I really advise _against_ using these features
8476
8477
2003-01-31 Wouter Vermaelen <[email protected]>
8478
	* Implemented "user directories" (see settings.xml)
8479
	* Fixed "specify other config file" bug
8480
	* Relative-from-config was broken, fixed it
8481
8482
2003-01-30 David Heremans <[email protected]>
8483
	* altered a code comment and added some extra config examples
8484
8485
2003-01-29 Wouter Vermaelen <[email protected]>
8486
	* Implemented home-directory-substitution for local files:
8487
	   When a filename starts with "~", this character is replaced by
8488
	   the content of the environment variable HOME. I'm not sure
8489
	   this will work for non-UNIX OS'es.
8490
	* Implemented system-directories:
8491
	   - The files romdb.xml, msxconfig.xml and settings.xml are searched
8492
	     in the "system directories". For the moment these are (in this
8493
	     order)
8494
	        ~/.openMSX/
8495
	        ~/openMSX/
8496
	        /usr/local/etc/openMSX/
8497
	        /etc/openMSX/
8498
	     But we need to discuss about this list. Note that "." is not in
8499
	     the list.
8500
8501
2003-01-27 David Heremans <[email protected]>
8502
	* Increased usefulness of error message in DeviceFactory
8503
8504
2003-01-26 Wouter Vermaelen <[email protected]>
8505
	* Automatically load "settings.xml" on startup:
8506
	   - you can specify an alternative file with the "-setting" command
8507
	     line option
8508
	   - For the moment "settings.xml" must be in the current directory
8509
	* Moved hard-coded HotKey bindings to settings.xml
8510
8511
2003-01-26 Wouter Vermaelen <[email protected]>
8512
	* Fixed Z80/R800 switching again
8513
	* Removed "sync_interval" parameter from RealTime
8514
8515
2003-01-26 Maarten ter Huurne <[email protected]>
8516
	* Relaxed over-zealous assert in PixelRenderer by one tick.
8517
8518
2003-01-25 Wouter Vermaelen <[email protected]>
8519
	* Fixed TurboR assertion:
8520
	   targetTime wasn't set properly when switching CPU (Z80 <-> R800)
8521
	* Added dummy MSX-Midi:
8522
	   Illusion city works now!
8523
8524
2003-01-22 Wouter Vermaelen <[email protected]>
8525
	* Reworked MSX-MUSIC / FMPAC:
8526
	   removed enable/disable logic from MSX-MUSIC
8527
8528
2003-01-22 Wouter Vermaelen <[email protected]>
8529
	* Renamed "TurboR" FDC type to "Panasonic"
8530
	* Fixed "cpudebug" command (I broke it yesterday)
8531
	* Fixed MSXMatsushita:
8532
	   this caused FS-4700 build-in word processor hang
8533
	* Removed ROM files from CVS
8534
8535
2003-01-21 Wouter Vermaelen <[email protected]>
8536
	* Allow muliple commands with the same name:
8537
	   - for example both Z80 and R800 could have a "cpudebug" command
8538
	     at the same time (not implemeted yet)
8539
8540
2003-01-20 Wouter Vermaelen <[email protected]>
8541
	* Removed SearchPath stuff
8542
	* Relative paths in config files are now relative to the location
8543
	  of the config file:
8544
	   - this together with the change above probably means you have
8545
	     to rewrite some/all of your config files
8546
	* Moved some #include's from .hh to .cc
8547
8548
2003-01-16 Wouter Vermaelen <[email protected]>
8549
	* Implemented 8-bit unsigned 16-bit signed DAC
8550
	* Implemented MSX-AUDIO 13-bit DAC:
8551
	   untested because TurboR (needed for modplayer) is broken
8552
	   for the moment
8553
8554
2003-01-16 Wouter Vermaelen <[email protected]>
8555
	* Fixed MSXF4Device:
8556
	   FS-A1FX (re)boots correctly now
8557
8558
2003-01-15 Wouter Vermaelen <[email protected]>
8559
	* Removed possibility to use other than XML config files
8560
8561
2003-01-14 Wouter Vermaelen <[email protected]>
8562
	* Fixed Kanji12
8563
	* Removed some unused classes from config directory
8564
8565
2003-01-13 Wouter Vermaelen <[email protected]>
8566
	* Implemented Kanji 12x12:
8567
	   - not tested, I don't have correct ROM
8568
	* Implemented front switch:
8569
	   - use console command "frontswitch [on/off]"
8570
	   - not tested yet, will do it tomorrow
8571
8572
2003-01-12 Wouter Vermaelen <[email protected]>
8573
	* Added powerOff() method to MSXDevice
8574
	* Removed getCurrentTime() calls from destructors
8575
8576
2003-01-11 Wouter Vermaelen <[email protected]>
8577
	* removed MSXCPU::getTargetTime() method
8578
	* added EmuTime argument to the execute() method of a Command:
8579
	   this removes some of the calls to MSXCPU::getCurrentTime()
8580
	* An empty SCC cartridge no longer needs "/dev/zero" as filename,
8581
	  just don't specify a filename:
8582
	   this also works in OSes that don't support /dev/zero
8583
	* Removed "readromfile" parameter from SCCPlusCart:
8584
	   if you don't want to read a rom just don't specify one
8585
	* Better(?) rom placement heuristics:
8586
	   fixes zanac
8587
8588
2003-01-09 Wouter Vermaelen <[email protected]>
8589
	* Fixed CPU on big endian machines
8590
	* TurboR PCM update:
8591
	   - It now works in Seed of Dragon, although the frequency seems
8592
	     wrong. The game also hangs when you start to play.
8593
8594
2003-01-06 Wouter Vermaelen <[email protected]>
8595
	* Fixed CPU HALT instruction
8596
	* Semi-fixed CPU/Scheduler interaction:
8597
	   - seems to work, but I still need to take a very close look at
8598
	     the code
8599
8600
2003-01-06 Wouter Vermaelen <[email protected]>
8601
	* Large CPU rewrite:
8602
	   - we never perform IO at a timestamp greater or equal than
8603
	     the earliest sync point
8604
	   - 1% - 2% slowdown compared to previous implementation
8605
	   - ZEXALL tests still pass
8606
	   - still need to verify if the timimng of the instructions is
8607
	     still correct
8608
8609
2003-01-05 Maarten ter Huurne <[email protected]>
8610
	* Fixed mode number for Text 2 in VDP::updateColourBase.
8611
	* Recalculate pattern and colour base when switching modes.
8612
8613
2003-01-04 Maarten ter Huurne <[email protected]>
8614
	* Implemented colour and pattern index mask calculation.
8615
	* Fixed remaining Doxygen warnings.
8616
8617
2003-01-03 Maarten ter Huurne <[email protected]>
8618
	* Fixed Doxygen warnings.
8619
	* Fixed I/O port handling of Matsushita switched device, which I forgot
8620
	  in yesterday's changes.
8621
8622
2003-01-02 Maarten ter Huurne <[email protected]>
8623
	* Moved I/O port registration out of VDP and into DeviceFactory.
8624
	  Eventually, all I/O port registration should move to the machine
8625
	  description file.
8626
	* Moved I/O port registration of all other I/O devices out of the
8627
	  device and into DeviceFactory (or FDCFactory in one case).
8628
8629
2003-01-01 Maarten ter Huurne <[email protected]>
8630
	* Workaround to prevent out-of-order I/O with the VDP.
8631
	* Added asserts to VDP code to check timing constraints.
8632
	* Fix for sprites in planar modes.
8633
	* Fixed behaviour of port #99, #9A and #9B interference.
8634
	* Colour and pattern base mask calculation are now done in a single
8635
	  method each.
8636
8637
2002-12-30 Joost Yervante Damad <[email protected]>
8638
	* updated AUTHORS
8639
8640
2002-12-30 Maarten ter Huurne <[email protected]>
8641
	* Let VDPVRAM::Window notify its observer of base/index changes and
8642
	  windows that become disabled.
8643
8644
2002-12-30 Wouter Vermaelen <[email protected]>
8645
	* Autodetect BASIC ROM cartridges:
8646
	   code mostly taken from windows port
8647
	* Don't abort when "romdb.xml" is missing, just print a warning.
8648
	* Added a lot of const qualifiers
8649
	* Implemented TurboR PCM device:
8650
	   - only playing (no recording)
8651
	   - sound quality is really bad (like all our DACSound based devices)
8652
8653
2002-12-29 Maarten ter Huurne <[email protected]>
8654
	* The VDPVRAM::VRAMObserver interface is put to use for the first time,
8655
	  by SpriteChecker. Cleans up the VDP subsystem synchronisation code.
8656
8657
2002-12-29 Wouter Vermaelen <[email protected]>
8658
	* Released 0.2.1
8659
	* Better rom placement heuristics:
8660
	   should solve bug 658430 point 3 (rom files without "AB" header)
8661
	* Allow filenames that contain a ',' on the commandline
8662
	* Support roms that don't like to be mirrored:
8663
	   - solves bug 658430 point 1 (BASIC prog at 0x8000)
8664
	   - can't be autodetected (yet?), you must specify romtype as
8665
	     "PAGE[...]" (examples "PAGE2", "PAGE01", "PAGE12", ...)
8666
	   - romdb.xml should be updated for these 'problem' roms
8667
8668
2002-12-28 Maarten ter Huurne <[email protected]>
8669
	* Cleaned up sprite checker synchronisation.
8670
8671
2002-12-27 Maarten ter Huurne <[email protected]>
8672
	* Created VDPSettings class, moved cmdTiming there.
8673
	* Moved limitSprites from config to VDPSettings.
8674
8675
2002-12-23 Wouter Vermaelen <[email protected]>
8676
	* Support for second MSX-AUDIO:
8677
	   - add this to the AUDIO section in the config
8678
	      <parameter name="number">2</parameter>
8679
	   - alex' modplayer doesn't work yet :-(
8680
8681
2002-12-23 Wouter Vermaelen <[email protected]>
8682
	* Tabcompletion for setting values:
8683
	   example:  set accuracy p<tab>
8684
	* Implemented "cmdtiming" setting:
8685
	   Switch between real or instantaneous VDP command timing.
8686
	   Should only be used for debugging purposes.
8687
	* Implemented YJK/YAE (screen11/12) rendering
8688
8689
2002-12-22 Wouter Vermaelen <[email protected]>
8690
	* Updated RealTime class:
8691
	   - this should improve the cases where emulation is too slow,
8692
	     but openMSX doesn't claim 100% CPU time
8693
	* SDLLoRenderer inherits from PixelRenderer iso Renderer
8694
	   - SDLLoRenderer now also has "accuracy" setting
8695
8696
2002-12-18 Wouter Vermaelen <[email protected]>
8697
	* Made some IDE stuff configurable:
8698
	   - master/slave device
8699
	   - HD image
8700
	   - HD size is not yet configurable
8701
	   - see someconfig.xml for format of new config
8702
8703
2002-12-17 Wouter Vermaelen <[email protected]>
8704
	* Implemented MSX Bunsetsu Henkan / Jisyo:
8705
	   - I don't have much info on this device, but at least BUNSDUMP.BAS
8706
	     gives the correct result
8707
8708
2002-12-14 Wouter Vermaelen <[email protected]>
8709
	* Fixed assertion in VDP when computer was reset while in PAL mode
8710
8711
2002-12-13 Wouter Vermaelen <[email protected]>
8712
	* Implemented MSXDeviceSwitch:
8713
	   - IO-ports 0x41-0x4F are (possibly) shared between several devices
8714
	   - IO-port 0x40 selects the active device
8715
	* Converted MSXS1985 to a MSXSwitchedDevice
8716
	* Converted MSXFS4500SRAM to a MSXSwitchedDevice:
8717
	   - renamed to MSXMatsushita
8718
	   - implemented PUT KANJI function (IO-ports 0x43-0x44)
8719
8720
2002-12-09 Wouter Vermaelen <[email protected]>
8721
	* Implemented correct mirroring for National based FDC's
8722
8723
2002-12-08 Wouter Vermaelen <[email protected]>
8724
	* Implemented mmap() in File classes:
8725
	   - map a file direclty into the process memory range, the OS can
8726
	     perform some optimizations this way:
8727
	      - only read data when actually used
8728
	      - faster swapping
8729
	      - ...
8730
	   - I'm not sure non-UNIX OSes (windows) have a similar function,
8731
	     if not there is a fallback implemented in FileBase (we also
8732
	     need this fallback for FTP, HTTP, ... files)
8733
	* Simplified/updated MSXRomDevice:
8734
	   - simpler interface: you no longer need to inherit from MSXRomDevice
8735
	   - use mmap() to read files
8736
	* Implemented FS4500SRAM (suggestions for a better name are welcome):
8737
	   put this in your config file:
8738
	     <device id="FS4500 SRAM">
8739
	       <type>FS4500SRAM</type>
8740
	       <parameter name="loadsram">true</parameter>
8741
	       <parameter name="savesram">true</parameter>
8742
	       <parameter name="sramname">FS4500.SRAM</parameter>
8743
	     </device>
8744
8745
2002-12-04 Wouter Vermaelen <[email protected]>
8746
	* added SRAM class:
8747
	   This is just a small helper class that offers loading and
8748
	   saving of a byte-array. For the moment only MSXRom and MSXFmPac
8749
	   use it.
8750
8751
2002-12-01 Wouter Vermaelen <[email protected]>
8752
	* added CRC16 routine, can be used by FDC / FDCBackends
8753
	* fixed TC8566AF: completely forgot to send step/side/motor
8754
	   commands to the DiskDrive
8755
8756
2002-11-30 David Heremans <[email protected]>
8757
	* Still working towards raw track read
8758
8759
2002-11-30 Wouter Vermaelen <[email protected]>
8760
	* fixed auto frameskip:
8761
	   probably still needs some finetuning
8762
8763
2002-11-29 Wouter Vermaelen <[email protected]>
8764
	* Fixed FDC bug (DriveMultiplexer)
8765
8766
2002-11-27 David Heremans <[email protected]>
8767
	* Working towards raw track read
8768
8769
2002-11-18 Wouter Vermaelen <[email protected]>
8770
	* FDC rewrite, introduced DiskDrive and DriveMultiplexer classes:
8771
	   - this is a relatively large rewrite, so I may have broken
8772
	     something. I wanted to commit rather soon, so I only tested
8773
	     the Philips FDC.
8774
	   - WD2793 Type I commands are now executed the same as in the
8775
	     flowcharts of the technical datasheet (verify step not yet).
8776
8777
2002-11-18 David Heremans <[email protected]>
8778
	* a small WD2793 update:
8779
	   quick implementation of multi sector read
8780
	   not tested and DSK backend needs to be changed
8781
	   for correct behaviour!
8782
8783
2002-11-18 Wouter Vermaelen <[email protected]>
8784
	* Mapped TurboR keys to left and right windows key:
8785
	   I haven't checked this, so possible I swapped left and right
8786
8787
2002-11-17 Wouter Vermaelen <[email protected]>
8788
	* a few WD2793 updates (David please review):
8789
	   MicrosolFDC partly works now: in BASIC the commands files load save
8790
	   work, but starting a game from disk doesn't work.
8791
	* converted "deinterlace" from a command to a setting:
8792
	   - you should now use "set deinterlace [on|off]" instead of just
8793
	     "deinterlace [on|off]"
8794
	* converted "accuracy" from a command to a setting:
8795
	   - you should now use "set accuracy [line|pixel|screen]" instead of
8796
	     just "accuracy [line|pixel|screen]"
8797
8798
2002-11-16 Wouter Vermaelen <[email protected]>
8799
	* renamed BrazilFDC to MicorsolFDC:
8800
	   doesn't work yet, I'm investigating...
8801
	* cleanups, small fixes in WD2793
8802
8803
2002-11-13 Wouter Vermaelen <[email protected]>
8804
	* Implemented 'PUT KANJI acceleration' of S1985:
8805
	   This fixes the font printing problem of the FS-4600F internal
8806
	   software. AFAIK the FS-4600F now works completely (or at least
8807
	   as good as NMS8250).
8808
	   You need to add this to the FS-4600F config file:
8809
	     <device id="S1985">
8810
	       <type>S1985</type>
8811
	     <device>
8812
8813
2002-11-11 Wouter Vermaelen <[email protected]>
8814
	* National mapper type fixes:
8815
	   - FS-4600F internal software seems to work, but I'm not certain
8816
	     the 1st and 2nd menu option work as they should. Can someone
8817
	     verify this?
8818
	* Fixed National FDC
8819
8820
2002-11-11 David Heremans <[email protected]>
8821
	* completed timing in WD for writeTrack command:
8822
	  Timing still needs some fine tunning, but not much
8823
	* implemented writetrackdata in DSK backend:
8824
	  Formatting with _format in BASIC seems to work
8825
	  Need to compare with some real disks just to be sure.
8826
8827
2002-11-10 Wouter Vermaelen <[email protected]>
8828
	* fixed PhilipsFDC: IDEFDISK doesn't coredump anymore
8829
	* use old style file functions: should work with both old and new gcc
8830
8831
2002-11-08 Maarten ter Huurne <[email protected]>
8832
	* Improved scanline emulation: the dark line is now an interpolation of
8833
	  the visible lines above and below.
8834
	* Added horizontal blur: emulates the fact that MSX monitors and TVs
8835
	  are not as sharp as typical PC monitors. Many game graphics are drawn
8836
	  with this blurring in mind and look poor on a sharp display.
8837
	Note: scanlines and blur are implemented only in the GL renderer.
8838
8839
2002-11-03 Wouter Vermaelen <[email protected]>
8840
	* added VDP reset() methods (not finished)
8841
8842
2002-11-03 Maarten ter Huurne <[email protected]>
8843
	* Initial version of generic settings is working now.
8844
	  Currently there is only 1 setting: scanline alpha.
8845
8846
2002-11-03 Wouter Vermaelen <[email protected]>
8847
	* minor cleanups
8848
	* fixed a few uninitialized variables:
8849
	   - discoverd with valgrind
8850
	   - some were harmless, fixed anyway to keep valgrind quiet
8851
8852
2002-11-02 David Heremans <[email protected]>
8853
	* Added two calls to the FDC backend:
8854
	   These should later be used to enable the writeTrack command
8855
8856
2002-11-02 Wouter Vermaelen <[email protected]>
8857
	* Basic TC8566AF disk controller support (TurboR):
8858
	   - Based on code from NLMSX written by Frits Hilderink
8859
	   - TurboR boots now! It still has a lot of missing features though.
8860
8861
2002-11-01 Maarten ter Huurne <[email protected]>
8862
	* Scanline emulation in SDLGLRenderer.
8863
	  Very rudimentary in this stage, but it works.
8864
8865
2002-10-31 Maarten ter Huurne <[email protected]>
8866
	* Changed SDLGLRenderer to make it a subclass of PixelRenderer.
8867
	* Minor cleanups in SDLHiRenderer.
8868
8869
2002-10-27 Wouter Vermaelen <[email protected]>
8870
	* rewrite of FDC infrastructure:
8871
	   - the existing diskroms are too different to handle them all
8872
	     in one class -> made FDCFactory that instantiates the right
8873
	     object
8874
	   - Implemented support for:
8875
	       - Philips based diskroms: were already supported
8876
	       - Brazil  based diskroms (needs better name?): IO-based
8877
	           were already supported, but I never tested them
8878
	           I also didn't test the new implementation
8879
	       - National based diskroms (needs better name?):
8880
	           also untested
8881
	     The three diskroms above are all build around the WD2793 (or
8882
	     compatible) controller.
8883
	   - Configuration format changed slightly, see msxconfigFDC.xml
8884
	     for details
8885
8886
2002-10-29 Maarten ter Huurne <[email protected]>
8887
	* Minor cleanups in PixelRenderer and SDLHiRenderer.
8888
8889
2002-10-27 Wouter Vermaelen <[email protected]>
8890
	* Implemented mapper type "NATIONAL":
8891
	   completely untested, will have to wait till this weekend
8892
8893
2002-10-27 Wouter Vermaelen <[email protected]>
8894
	* Replaced all file reading related classes with a new class
8895
	  structure. This structure:
8896
	   - has a simpler and more robust interface
8897
	   - is easier to port(?)
8898
	     a large part of the WIN32 patch deals with file reading stuff
8899
	   - has real filetype separation: rom, disk, tape, config files have
8900
	     their own searchpaths
8901
8902
2002-10-26 Wouter Vermaelen <[email protected]>
8903
	* Implemented "CartridgeSlotManager"
8904
8905
2002-10-25 David Heremans <[email protected]>
8906
	* "frameskip auto" completed
8907
8908
2002-10-24 Wouter Vermaelen <[email protected]>
8909
	* Cartridges are only inserted after configuration is parsed, this
8910
	  allows in the future to have configurable cartridge slots
8911
	* Added PANASONIC mapper type (for example used in Turbo-R for
8912
	  MSX-VIEW ROM). Untested!!
8913
8914
2002-10-23 Maarten ter Huurne <[email protected]>
8915
	* Fixed bug in sprite drawing of SDLLo.
8916
	* Fixed bug in initialisation of horizontal adjust.
8917
	* PixelRenderer now offers left border calculation to its subclasses.
8918
	* Bug fixes and cleanups in coordinate calculation of
8919
	  SDLHiRenderer::drawDisplay; SCREEN0 no longer fails the asserts.
8920
	* Cleanups in SDLHiRenderer::drawSprites.
8921
	  Should be applied to other Renderers as well.
8922
8923
2002-10-22 Wouter Vermaelen <[email protected]>
8924
	* Rewrite of "CommandLineParser":
8925
	   - CLI options and CLI file types must be registered now, this allows
8926
	     to move the implementation of, for example the "-fmpac" option, to
8927
	     the MSXFmPac class where it belongs.
8928
	   - This should keep the CLI more up to date with code changes and
8929
	     make it easier to support new CLI options / file types.
8930
8931
2002-10-21 David Heremans <[email protected]>
8932
	* "frameskip auto" implementation started
8933
8934
2002-10-21 Wouter Vermaelen <[email protected]>
8935
	* Replaced "Simple64Kb" device with "RAM" device. This device also
8936
	  supports random sizes, so it is possible to make 8Kb machines.
8937
8938
2002-10-20 Maarten ter Huurne <[email protected]>
8939
	* Moved subdivision of area-to-be-rendered from SDLHiRenderer to
8940
	  PixelRenderer. Also changed subdivision approach: before, displayPhase
8941
	  would draw display area and the borders; while the new drawDisplay only
8942
	  draws the display area and all the border colour drawing is done by
8943
	  drawBorder.
8944
8945
2002-10-19 Wouter Vermaelen <[email protected]>
8946
	* Implemented frameskip command:
8947
	   TODO "frameskip auto", skip frames depending on CPU speed
8948
8949
2002-10-13 Wouter Vermaelen <[email protected]>
8950
	* Some IDE fixes:
8951
	    Harddisk works now! Following is still hardcoded:
8952
	      master: harddisk, size 1GB filename "hd.dsk"
8953
	      slave : not connected
8954
	    I'll change this in the next couple of days
8955
8956
2002-10-16 Joost Yervante Damad <[email protected]>
8957
	* removed compile-time disables for now
8958
8959
2002-10-13 Maarten ter Huurne <[email protected]>
8960
	* Moved absolute X coordinate to screen X coordinate translation from
8961
	  PixelRenderer to SDLHiRenderer.
8962
8963
2002-10-13 Wouter Vermaelen <[email protected]>
8964
	* Implemented Sunrise IDE interface:
8965
	   only interface, no IDE devices yet
8966
	* Implemented very simple IDE harddisk:
8967
	   IDE-BIOS detects the disk
8968
	      IDE Master:LBA,Mode 4:OPEN MSX HARD DISK
8969
	      IDE Slave :not detected.
8970
	   but the disk can't be used. Probably because the HD isn't
8971
	   partioned yet.
8972
8973
2002-10-12 Maarten ter Huurne <[email protected]>
8974
	* Split off some functionality from SDLHiRenderer into new PixelRenderer.
8975
	  PixelRenderer will contain the common code of the pixel-based
8976
	  renderers (SDLHi, SDLLo, SDLGL).
8977
8978
2002-10-12 Wouter Vermaelen <[email protected]>
8979
	* Fixed sound on high endian machines (untested)
8980
8981
2002-10-07 Wouter Vermaelen <[email protected]>
8982
	* Horizontal adjust is only updated the next scanline:
8983
	   fixes some glitches in the "threedee rules" part of "relax"
8984
8985
2002-10-05 Maarten ter Huurne <[email protected]>
8986
	Last minute Bussum fixes:
8987
	* Temporarily reverted name table base fix.
8988
	  This fix needs modifications in the renderers as well and I don't have
8989
	  time right now to find out exactly where.
8990
	* Rewrote PhaseHandlers to specify rectangles in VDP absolute coordinates
8991
	  and using exclusive limits.
8992
	  Fixes crashes on MSX1 and excessive draws, maybe more.
8993
	Unknown Reality shows only minor glitches, so we can demo with pride!
8994
8995
2002-10-03 Maarten ter Huurne <[email protected]>
8996
	* Fixed bug in VDP: name table base was not adjusted for planar modes.
8997
	  This caused wrong rendering in SCREEN7/8.
8998
	* Disabled "inside window" check for now.
8999
	  Parts of the code are not ready yet to use the VRAM windows properly.
9000
9001
2002-10-02 Maarten ter Huurne <[email protected]>
9002
	* Updated C-BIOS to version 0.13.
9003
9004
2002-09-30 Maarten ter Huurne <[email protected]>
9005
	* The Great VRAM Rewrite, part 4:
9006
	  Introduction of VRAMObserver interface. Not used yet.
9007
	* Minor VRAM cleanups.
9008
9009
2002-09-29 Wouter Vermaelen <[email protected]>
9010
	* Read/Write memory cache for SCC+
9011
	* Unified Xanadu and Royal Blood mapper types
9012
9013
2002-09-28 Wouter Vermaelen <[email protected]>
9014
	* SCC+ didn't work at all, fixed it.
9015
	  Fixes Snatcher and SDSnatcher.
9016
	* Fixed RoyalBlood mapper type (not sure about Xanadu)
9017
	* Fixed Majutsushi, bad sound quality (DAC) though
9018
	* Implemented CrossBlaim mapper type (untested)
9019
9020
2002-09-28 Maarten ter Huurne <[email protected]>
9021
	* Updated C-BIOS to version 0.12.
9022
	* I forgot that the cbios.xml used TMS99x8A.
9023
	  With a V9938, C-BIOS can run many MSX2 ROMs as well.
9024
	  I created two separate config files: cbios-msx1.xml and cbios-msx2.xml.
9025
9026
2002-09-25 Wouter Vermaelen <[email protected]>
9027
	* GLFont uses 16x16 character texture instead of 256x1
9028
9029
2002-09-22 Maarten ter Huurne <[email protected]>
9030
	* Updated C-BIOS to version 0.11.
9031
	  Boukichi sure understands "release early; release often". :)
9032
9033
2002-09-20 Maarten ter Huurne <[email protected]>
9034
	* Updated C-BIOS to version 0.10.
9035
9036
2002-09-17 Maarten ter Huurne <[email protected]>
9037
	* Updated C-BIOS to version 0.08.
9038
9039
2002-09-08 Wouter Vermaelen <[email protected]>
9040
	* Added "deinterlace" command:
9041
	   switch at-run-time between stable and unstable interlace
9042
	   only SDLHiRenderer and SDLGLRenderer
9043
9044
2002-09-08 Maarten ter Huurne <[email protected]>
9045
	* Updated C-BIOS to version 0.07.
9046
9047
2002-09-08 Wouter Vermaelen <[email protected]>
9048
	* Enabled pixel accurate rendering in SDLHiRenderer:
9049
	   - for some reason the NOTONLYSNESCANDOTHIS part in Unknown Reality
9050
	     is not extremely slow (it is when using SDLGLRenderer)
9051
	   - remember you have to manually enable pixel accurate rendering
9052
	     with the command "accuracy pixel"
9053
	* Enabled pixel accurate rendering in SDLLoRenderer
9054
9055
2002-09-08 Joost Yervante Damad <[email protected]>
9056
	* mv configure.in -> configure.ac [autotools recommendation]
9057
	* configure exits on failure to find SDL_image library
9058
9059
2002-09-07 Wouter Vermaelen <[email protected]>
9060
	* Correct blending in all non-paletted modes, no blending in
9061
	  paletted modes
9062
	* Implemented "accuracy" command. This allows to switch at-run-time
9063
	  between pixel/line/screen accuracte rendering. For the moment
9064
	  no screen accurate rendering and only for SDLGLRenderer.
9065
9066
2002-09-02 Wouter Vermaelen <[email protected]>
9067
	* Dont't stop when sound device couldn't be opened, just continue
9068
	  without sound.
9069
9070
2002-09-01 Wouter Vermaelen <[email protected]>
9071
	* Added some Turbo-R specific devices:
9072
	   - MSXTurboRPauze: without this BIOS gets stuck in pauze loop
9073
	   - MSXS1990 (minimal): Needed to switch between Z80 / R800
9074
	   - MSXF4Device (needs a better name): to distinguish between
9075
	      cold/warm boot and Z80/R800 boot-pass
9076
	   - MSXTurboRLeds
9077
	  Turbo-R doesn't boot yet :-(
9078
9079
2002-09-01 Maarten ter Huurne <[email protected]>
9080
	* Updated C-BIOS to version 0.06.
9081
9082
2002-08-31 Maarten ter Huurne <[email protected]>
9083
	* The Great VRAM Rewrite, part 3:
9084
	  SpriteChecker does all of its VRAM reading through VDPVRAM::Window.
9085
	  Only CPU does non-windowed reads anymore.
9086
	  All planar remapping occurs outside of VDPVRAM.
9087
9088
2002-08-31 Wouter Vermaelen <[email protected]>
9089
	* Move common code from SDLConsole and GLConsole to a new parent class
9090
	* Added R800:
9091
	   there is nothing implemented to switch from Z80 to R800, so for the
9092
	   moment R800 is not yet usable
9093
9094
2002-08-30 Wouter Vermaelen <[email protected]>
9095
	* SDLGLRenderer:
9096
	   small cleanups
9097
	   when interlaced, display odd fields half a line lower
9098
9099
2002-08-29 Wouter Vermaelen <[email protected]>
9100
	* FDC supports 2 drives
9101
9102
2002-08-28 Wouter Vermaelen <[email protected]>
9103
	* Implemented pixel-accurate rendering in SDLGLRenderer:
9104
	   - scope part in Unknown Reality is correct now!
9105
	   - some parts are _very_ slow now, implementation can still be
9106
	     optimized a lot and speed should also improve when VDPVRAM
9107
	     is finished.
9108
	* Implemented "vdpregs" command to help vdp debugging
9109
9110
2002-08-26 Maarten ter Huurne <[email protected]>
9111
	* Updated C-BIOS to version 0.05.
9112
9113
2002-08-26 Wouter Vermaelen <[email protected]>
9114
	* Implemented partial character rendering for SDLGLRenderer:
9115
	   - fixes top border while vertical scrolling in Space Manbow
9116
	   - fixes Psycho World
9117
	* Implemented vertical scrolling in TextMode1 in SDLGLRenderer
9118
9119
2002-08-25 Wouter Vermaelen <[email protected]>
9120
	* Use SDL_image to load images (.png .bmp .jpg ...)
9121
	* Implemented GLConsole for SDLGLRenderer
9122
	    - old console didn't always work for SDLGLRenderer
9123
	    - a lot faster
9124
	    - per pixel alpha blending:
9125
	       ConsoleBackground and ConsoleFont can be true RGBA images
9126
	       (current pictures are .bmp, they don't have an alpha channel)
9127
9128
2002-08-22 Wouter Vermaelen <[email protected]>
9129
	* Implemented R-Type mapper
9130
	* Fixed vertical scrolling in text modes
9131
	   (except TextMode1 in SDLGLRenderer)
9132
9133
2002-08-21 Maarten ter Huurne <[email protected]>
9134
	* Added C-BIOS 0.04 to Contrib directory.
9135
	* Added config XML for using C-BIOS to src/cfg.
9136
9137
2002-08-18 Wouter Vermaelen <[email protected]>
9138
	* VDP code:
9139
	   - trivial fixes / cleanups
9140
	   - low resolution (SDLLo) rendering improvements
9141
	     try SCREEN 0 WIDTH 80
9142
	     only 24bpp modes yet
9143
	* Z80 fix:
9144
	   IFF2 should be reset while acknowledging an IRQ
9145
	   this fixes music in "Break-In"
9146
9147
2002-08-16 Wouter Vermaelen <[email protected]>
9148
	* major cleanups, minor tweaks / fixes
9149
9150
2002-08-16 Maarten ter Huurne <[email protected]>
9151
	* Fixed wrong use of sizeof(array): it returns #bytes, not #elements.
9152
	  Caused a segfault on Sparc.
9153
9154
2002-08-14 Wouter Vermaelen <[email protected]>
9155
	* Fixed SD-Snatcher loading bug:
9156
	   - disk has a non-standard bootsector (sectors per track and number
9157
	     of sides) is wrong. Updated heuristics to detect 9 sectors per
9158
	     track and 2 sides in case disk image has 80*2*9 sectors.
9159
	     How does the BDOS read this disk? Perhaps it uses the media
9160
	     descriptor?
9161
9162
2002-08-13 Wouter Vermaelen <[email protected]>
9163
	* Split MSXMotherBoard in:
9164
	   - MSXCPUInterface: handles communication between a MSXDevice and CPU
9165
	        - registration of IO- and memory-space
9166
	        - slotselection mechanism
9167
	   - MSXMotherboard: keeps a list of all MSXDevices
9168
9169
2002-08-11 Wouter Vermaelen <[email protected]>
9170
	* more Z80 cleanups
9171
	* commands can now also be bound to key releases (was only keypresses)
9172
	   example:  unbind F9
9173
	             bind F9 "throttle off"
9174
	             bind f9,up "throttle on"
9175
	   this disables throttling while you hold F9
9176
9177
2002-08-10 Wouter Vermaelen <[email protected]>
9178
	* Z80 fixes:
9179
	   V_FLAG was wrong with SUB/SBC/CP instructions
9180
	* Z80 fixes:
9181
	   XF and YF flags where wrong with BIT n,r instruction
9182
	* major Z80 cleanup:
9183
	   - greatly reduced code duplication in CPUCore.n2
9184
9185
2002-08-09 Wouter Vermaelen <[email protected]>
9186
	* More robust Thread class
9187
	* cleanups, especially in JoyNet
9188
	* fix bug [592594] MSXFDC doesn't work with single sided disks
9189
9190
2002-08-08 Wouter Vermaelen <[email protected]>
9191
	* Z80 cleanups / fixes:
9192
	   especially fixes for the 2 undocumented flags (bit 3 and bit 5)
9193
	* New config file format for inserted disks / tapes
9194
	* Applied Manuel's patch [592591]:
9195
	   romdb.xml is searched with FileOpener
9196
9197
2002-08-06 Wouter Vermaelen <[email protected]>
9198
	* Full support for .XSA disk images
9199
9200
2002-08-05 Wouter Vermaelen <[email protected]>
9201
	* Enabled SDLConsole in SDLGL renderer:
9202
	   current code is only a temporary solution for the following reasons:
9203
	    - use of SDL_OPENGLBLIT is heavily discouraged, see
9204
	        http://www.libsdl.org/pipermail/sdl/2001-November/039852.html
9205
	    - transparancy doesn't work in 16-bit video modes
9206
	      (an SDL limitation)
9207
	   in the future we should make a native GLConsole
9208
9209
2002-08-04 Wouter Vermaelen <[email protected]>
9210
	* Allow multiple "md5" tags per "rom" tag
9211
	* Low level tape support (experimental)
9212
9213
2002-08-03 Wouter Vermaelen <[email protected]>
9214
	* wrote doc/commands.txt
9215
	* cleanups, small fixes in RomTypes and MSXRom
9216
	* added some entries in romdb.xml
9217
9218
2002-08-01 Wouter Vermaelen <[email protected]>
9219
	* EmuTime cleanups:
9220
	   introduced EmuDuration class
9221
	    - the subtraction of 2 EmuTimes results in an EmuDuration,
9222
	      this used to result in another EmuTime
9223
	    - an EmuDuration can be added to / subtracted from an EmuTime,
9224
	      this results in another EmuTime
9225
	* DACSound:
9226
	   - totally discarded old implementation
9227
	   - new implementation is extremely simple, relatively slow, has
9228
	     poor sound quality, but is bug free
9229
9230
2002-07-31 Wouter Vermaelen <[email protected]>
9231
	* Made "check-db":
9232
	   a primitive tool to compare a romtype database against the build-in
9233
	   rom autodetection algorithm
9234
	* When console is up, keypresses are blocked for MSX-Keyboard:
9235
	   this implementation should work in all cases (hopefully)
9236
9237
2002-07-29 Wouter Vermaelen <[email protected]>
9238
	* cleanups
9239
	* Support for "ROM database"
9240
9241
2002-07-26 Wouter Vermaelen <[email protected]>
9242
	* Experimental support for .xsa disk images
9243
	* Removed "automappertype" parameter, you can still explicitly specify
9244
	  autodetection by setting "mappertype" to "auto"
9245
	* Added MD5 class:
9246
	   will be used for mappertype detection of difficult ROMs
9247
9248
2002-07-24 Maarten ter Huurne <[email protected]>
9249
	* Added debug option NOTIME_EXECUTION, to make VDP command execute in
9250
	  zero EmuTime. Useful for tracking "no/partial images" bugs.
9251
9252
2002-07-23 Wouter Vermaelen <[email protected]>
9253
	* MSXDiskRomPatch supports 2 drives again
9254
9255
2002-07-22 Maarten ter Huurne <[email protected]>
9256
	* The Great VRAM Rewrite, part 2:
9257
	  SpriteChecker does most of its VRAM reading through VDPVRAM::Window.
9258
	  Updated doc/vram-addressing.txt with details of sprite indexing.
9259
	  Proper support for planar modes is still missing.
9260
9261
2002-07-21 Maarten ter Huurne <[email protected]>
9262
	* The Great VRAM Rewrite, part 1:
9263
	  Renderers do all their VRAM reading through VDPVRAM::Window now.
9264
	  See doc/vram-addressing.txt for background info.
9265
9266
2002-07-14 Wouter Vermaelen <[email protected]>
9267
	* Implemented "bind" and "unbind" command
9268
9269
2002-07-14 Wouter Vermaelen <[email protected]>
9270
	* Moved event related files to new directory
9271
	* Added Keys class:
9272
	   translates keyCodes to keyNames and vice versa
9273
9274
2002-07-09 David Heremans <[email protected]>
9275
	* Improved portbased interface to MSXFDC
9276
9277
2002-07-08 Wouter Vermaelen <[email protected]>
9278
	* Enabled console in SDLLoRenderer
9279
9280
2002-07-07 Wouter Vermaelen <[email protected]>
9281
	* Reenabled SDLLoRenderer:
9282
	   - just a copy-paste from SDLHi and adjusted a few routines
9283
	   - console is disabled in SDLLo
9284
	   - not very well tested yet
9285
9286
2002-07-07 David Heremans <[email protected]>
9287
	* Added portbased interface to MSXFDC for Brazilian MSX's
9288
9289
2002-07-06 Wouter Vermaelen <[email protected]>
9290
	* Moved cassette related code to its own directory
9291
	* Cleanups
9292
9293
2002-06-30 David Heremans <[email protected]>
9294
	* Added index mark to the FDC status register (not tested yet!)
9295
9296
2002-06-28 Wouter Vermaelen <[email protected]>
9297
	* Initial version of DiskImageManager (WIP):
9298
	   - insert disk from commandline doesn't work yet
9299
	   - MSXFDC compiles, but not yet tested
9300
	   - MSXDiskROMPatch only supports 1 drive
9301
	   - FDC_DSK backend only supports double sided disks
9302
	* Insert disk from command line works again:
9303
	   - just a hack, we need a better configuration format for this
9304
	* MSXFDC still seems to work:
9305
	  - config file changed slightly, see msxconfigFDC.xml
9306
	  - David please check my modifications, especially the error
9307
	    handling code
9308
9309
2002-06-27 Wouter Vermaelen <[email protected]>
9310
	* MSXRom fix:
9311
	   map 32kb ROMs in the right place
9312
9313
2002-06-22 Wouter Vermaelen <[email protected]>
9314
	* Small Mixer fix, cleanups
9315
9316
2002-06-21 Wouter Vermaelen <[email protected]>
9317
	* Enabled console background
9318
	* Console font and background filename are read from config file
9319
9320
2002-06-20 Wouter Vermaelen <[email protected]>
9321
	* Moved thread related code to its own subdirectory
9322
	* Added unregisterHotKey() and unregisterHotKeyCommand() methods
9323
	* Enabled "renderer" command
9324
9325
2002-06-19 Wouter Vermaelen <[email protected]>
9326
	* Console commands and HotKeys are now executed by the main thread:
9327
	   - this removes some (potential) races, so some bugs like
9328
	       "This crashed once, but I can't reproduce it"
9329
	     might be gone.
9330
	   - this is a rather fundamental change, it might still contain some
9331
	     glitches.
9332
	* Removed all registerAsync__() methods:
9333
	   they aren't used anymore and they shouldn't be in the future
9334
	* Introduced condition variables (thread locking):
9335
	   used in Scheduler to implement pause
9336
	* Added unregisterEventListener() method
9337
9338
2002-06-18 David Heremans <[email protected]>
9339
	* Basic timing for all FDC Type I commands
9340
9341
2002-06-18 Wouter Vermaelen <[email protected]>
9342
	* Tab-completion now works for zero-length tokens
9343
9344
2002-06-16 Wouter Vermaelen <[email protected]>
9345
	* Use exceptions for command error reporting
9346
9347
2002-06-15 Wouter Vermaelen <[email protected]>
9348
	* Simplified MSXRomPatchInterface
9349
9350
2002-06-14 Wouter Vermaelen <[email protected]>
9351
	* Scheduler fixes
9352
	* Removed MSX16KB device:
9353
	   MSXGameCartridge can do everything what MSX16KB could
9354
	* Renamed:
9355
	     MSXRom           -> MSXRomDevice
9356
	     MSXGameCartridge -> MSXRom
9357
	* Moved common code to MSXRomDevice
9358
	* "filesize 0" no longer means autodetection, instead use
9359
	  "filesize auto" (or just don't mention filesize)
9360
9361
2002-06-12 Wouter Vermaelen <[email protected]>
9362
	* ConsoleCommand parser now understands quoted tokens or tokens with
9363
	  escaped characters. Examples:
9364
	      diska a\ space.dsk
9365
	      diska "a space.dsk"
9366
	      diska a\"quote.dsk
9367
	  It should now be possible to enter any string as a command token.
9368
9369
2002-06-11 David Heremans <[email protected]>
9370
	* basic FDC fully working:
9371
	   Fixed minor bug (all my tested disks work now)
9372
	   Implemented small speed up
9373
9374
2002-06-10 Wouter Vermaelen <[email protected]>
9375
	* Commands can now be unregistered again
9376
	* cleanups
9377
9378
2002-06-10 David Heremans <[email protected]>
9379
	* basic FDC implemenation partialy working:
9380
	   DSK backend working
9381
	   All Type I functions working
9382
	   Type II partial (readSector OK, writeSector doesn't check for write
9383
	   protected images yet)
9384
	   No Type III commands yet
9385
9386
2002-06-06 David Heremans <[email protected]>
9387
	* First step towards an FDC implemenation:
9388
	   Basic structure is provided
9389
	   MSXFDC as good as finalized.
9390
9391
2002-06-05 Joost Yervante Damad <[email protected]>
9392
	* preliminary auto* libpng support [David is learning auto* woowoo!]
9393
9394
2002-06-04 Wouter Vermaelen <[email protected]>
9395
	* Implemented "speed" command, try "help speed" in console
9396
9397
2002-06-02 Wouter Vermaelen <[email protected]>
9398
	* MSXGameCartridge cleanup
9399
9400
2002-05-28 Wouter Vermaelen <[email protected]>
9401
	* Fixed PAINTER.ROM:
9402
	   mappertype autodetection doesn't work, start with
9403
	   ./openmsx roms/PAINTER.ROM,64kb
9404
	* Fixed MSXSCCPlusCart:
9405
	    delete SCC in destructor
9406
	    ignore reads/writes outside address space
9407
9408
2002-05-27 Wouter Vermaelen <[email protected]>
9409
	* writing the same value twice to an (output) connector doesn't change
9410
	  the status of that connector, so don't call the write method of that
9411
	  connector twice (Joystick, PrinterPort, Y8950Keyboard)
9412
9413
2002-05-23 Bas Wijnen <[email protected]>
9414
	* Mutexes added around PRT_* macros
9415
9416
2002-05-22 Maarten ter Huurne <[email protected]>
9417
	* SDLGLRenderer uses block textures in Text1 (SCREEN0.40).
9418
	* SDLGLRenderer uses block textures in Graphics2 (SCREEN2).
9419
	* Rendering sprites in SDLGLRenderer is a lot faster now, because
9420
	  textures aren't immediately destroyed after drawing.
9421
9422
2002-05-19 Wouter Vermaelen <[email protected]>
9423
	* small sprite rendering optimizations
9424
9425
2002-05-18 Bas Wijnen <[email protected]>
9426
	* Added files for Xlib renderer. Mostly unimplemented.
9427
9428
2002-05-15 Maarten ter Huurne <[email protected]>
9429
	* SDLGLRenderer uses textures.
9430
9431
2002-05-15 Bas Wijnen <[email protected]>
9432
	* g++-3.0 fixes
9433
9434
2002-05-15 David Heremans <[email protected]>
9435
	* JoyNet cable using TCP/IP implemented
9436
9437
2002-05-13 Wouter Vermaelen <[email protected]>
9438
	* converted some ints to unsingned ints
9439
9440
2002-05-13 Joost Yervante Damad <[email protected]>
9441
	* fixed some files mising in the Makefile.am
9442
9443
2002-05-12 Wouter Vermaelen <[email protected]>
9444
	* made "diska" and "diskb" commands
9445
9446
2002-05-09 Joost Yervante Damad <[email protected]>
9447
	* File, HttpFile, LocalFile [work in progress]
9448
9449
2002-05-08 Bas Wijnen <[email protected]>
9450
	* fixed console-key-pass-bug and some minor things
9451
9452
2002-05-06 David Heremans <[email protected]>
9453
	* Skeleton files for JoyNet configuration
9454
9455
2002-05-05 Bas Wijnen <[email protected]>
9456
	* Game Master 2 is working with SRAM and guessing.
9457
9458
2002-05-03 Bas Wijnen <[email protected]>
9459
	* Created src/FileType.hh for g++-3.0 and some g++-3.0 fixes
9460
9461
2002-05-02 Maarten ter Huurne <[email protected]>
9462
	* Calculate pixel precision coordinates.
9463
	  They are approximately right, but not exactly right yet.
9464
9465
2002-05-02 Joost Yervante Damad <[email protected]>
9466
	* File, HttpFile, LocalFile [work in progress]
9467
9468
2002-05-01 David Heremans <[email protected]>
9469
	* Skeleton files for JoyNet device
9470
9471
2002-04-30 Joost Yervante Damad <[email protected]>
9472
	* s/-fhuge-objects//g
9473
	* verious g++-3.0 fixes
9474
9475
2002-04-29 Maarten ter Huurne <[email protected]>
9476
	* SDLGLRenderer is working again.
9477
	* SDLGLRenderer now uses CharacterConverter and BitmapConverter.
9478
	* Removed double buffering from SDLHiRenderer. It didn't work and
9479
	  without double buffering more optimisations are possible.
9480
	* Renderers use screen position instead of EmuTime for internal update
9481
	  targets. It was like this before the VDPVRAM introduction and with
9482
	  the cleaned up implementation it is possible again.
9483
	  It also fixes a bug where too many lines were scanline converted.
9484
	  This caused no glitches, but it did waste CPU cycles.
9485
	* Also made SpriteChecker use screen position rather than EmuTime.
9486
9487
2002-04-29 Joost Yervante Damad <[email protected]>
9488
	* small cleanup FilePath [sorry guys!]
9489
	* more proper cleanup
9490
9491
2002-04-28 Maarten ter Huurne <[email protected]>
9492
	* Some VDP cleanups.
9493
9494
2002-04-28 Joost Yervante Damad <[email protected]>
9495
	* FilePath stuff for future FileManager
9496
9497
2002-04-28 Wouter Vermaelen <[email protected]>
9498
	* Tab-completion updates
9499
9500
2002-04-28 Maarten ter Huurne <[email protected]>
9501
	* Removed re-entering of SpriteChecker::sync and Renderer::sync.
9502
	  Display enable/disable changes now go through VDPVRAM.
9503
	  Various other cleanups.
9504
	  Most sprite glitches are fixed now.
9505
9506
2002-04-28 Bas Wijnen <[email protected]>
9507
	* Added includes, std:: prefixes and unsigned char casts
9508
	  to allow compile with g++-3
9509
9510
2002-04-27 Maarten ter Huurne <[email protected]>
9511
	* Display mode changes now go through VDPVRAM.
9512
	  It also performs planar reorder on single-byte reads and writes.
9513
9514
2002-04-25 Wouter Vermaelen <[email protected]>
9515
	* VDP Text2 dirty colour table check
9516
9517
2002-04-24 Maarten ter Huurne <[email protected]>
9518
	* Fixed a bug in SpriteChecker and also simplified it.
9519
9520
2002-04-24 Wouter Vermaelen <[email protected]>
9521
	* more accurate VDP command timing:
9522
9523
2002-04-23 Wouter Vermaelen <[email protected]>
9524
	* Enabled VDP command timing:
9525
	   recalculated table, no difference 50/60Hz anymore
9526
9527
2002-04-23 Maarten ter Huurne <[email protected]>
9528
	* Re-enabled SDLGLRenderer.
9529
9530
2002-04-22 Wouter Vermaelen <[email protected]>
9531
	* tuned relative volume Y8950-ADPCM / -FM (thanks Manuel)
9532
9533
2002-04-18 Maarten ter Huurne <[email protected]>
9534
	* Separated sprite checking into a separate class.
9535
	  Works, but with glitches.
9536
9537
2002-04-17 Joost Yervante Damad <[email protected]>
9538
	* added tools/ dir and bin2c tool
9539
	* added --disable-SCC
9540
	* added --disable-FMPAC
9541
	* added --disable-MSXMUSIC
9542
	* more "--disable-XXX"'s to come ;-)
9543
9544
2002-04-16 Maarten ter Huurne <[email protected]>
9545
	* More VDPVRAM and related cleanups.
9546
9547
2002-04-15 David Heremans <[email protected]>
9548
	* Enhancements to the developpers FAQ
9549
9550
2002-04-15 Joost Yervante Damad <[email protected]>
9551
	* extended commandline parser to support keyinserter
9552
9553
2002-04-15 Wouter Vermaelen <[email protected]>
9554
	* Extended KeyEventInserter so it can be used in Tilburg
9555
	* Fixed YM2413 drums: playing the same drum twice now works
9556
9557
2002-04-13 Maarten ter Huurne <[email protected]>
9558
	* VDPVRAM and related cleanups.
9559
9560
2002-04-12 Wouter Vermaelen <[email protected]>
9561
	* DACSound cleanup (still has the same(?) bug)
9562
	* EventDistributor simplification:
9563
	   use Scheduler for synchronous event delivery
9564
	   thanks Maarten for the idea
9565
	* Made Scheduler thread safe
9566
	* #include cleanups
9567
	* Y8950 generates an IRQ on end-of-sample _in_EmuTime_ (was realtime)
9568
	* Implemented Y8950 keyboard connector:
9569
	   just the connector, no keyboard yet
9570
	* More accurate ADPCM readback (thanks Maarten)
9571
9572
2002-04-11 David Heremans <[email protected]>
9573
	* Royal blood works, use type ASCII8SRAM2!
9574
	  Xanadu resets to Basic, Hydlide2 hangs.
9575
9576
2002-04-11 Maarten ter Huurne <[email protected]>
9577
	* Introduced "renderer" command to print current renderer and switch
9578
	  to another one. However, switching from SDLHi to SDLGL hangs SDL.
9579
	  Well, at least the renderer destructors are finally implemented.
9580
9581
2002-04-11 Wouter Vermaelen <[email protected]>
9582
	* Finally (?) fixed Y8950 samples:
9583
	   "Arranger 4" sounds ok now
9584
	* Implemented ADPCM readback (untested)
9585
9586
2002-04-11 David Heremans <[email protected]>
9587
	* Royal blood works, use type ASCII8SRAM2!
9588
	  Xanadu resets to Basic, Hydlide2 hangs.
9589
9590
2002-04-11 David Heremans <[email protected]>
9591
	* Added (not tested) support for ASCII8SRAM type to MSXGameCartridge.
9592
9593
2002-04-08 David Heremans <[email protected]>
9594
	* Added support for Hydlide2 type to MSXGameCartridge.
9595
	* Added generic support for SRAM to MSXGameCartridge.
9596
	* Enhanced CommandLineParser to support SRAM filenames
9597
	  for games.
9598
9599
2002-04-08 Maarten ter Huurne <[email protected]>
9600
	* Took character scanline conversion out of SDLHiRenderer as well,
9601
	  its new home is a class called CharacterConverter.
9602
9603
2002-04-07 Maarten ter Huurne <[email protected]>
9604
	* Took bitmap scanline conversion out of SDLHiRenderer and put it in
9605
	  a separate class called BitmapConverter.
9606
	  It is necessary to reduce the size of SDLHiRenderer, because its
9607
	  source had become too large to manage (over 1250 lines).
9608
9609
2002-04-06 Wouter Vermaelen <[email protected]>
9610
	* small update to doc/developersFAQ.txt
9611
9612
2002-04-05 Joost Yervante Damad <[email protected]>
9613
	* added --enable-interlacing ./configure argument
9614
	  see also ./configure --help and src/config.h.in
9615
	  after rerunning ./autogen.sh
9616
9617
2002-04-04 Wouter Vermaelen <[email protected]>
9618
	* Console cleanup
9619
	* Console is no longer a singleton, instead there is now a singleton
9620
	  ConsoleManager. All Consoles must register with the ConsoleManager.
9621
	* Made InteractiveConsole subclass of Console:
9622
	   SDLConsole inherit from InteractiveConsole
9623
	   a logging-only console inherits from Console
9624
	* Bumped version number
9625
	* ConsoleFont.bmp can now be in any configured directory
9626
9627
2002-04-04 David Heremans <[email protected]>
9628
	* Added more debug info to MSXGameCartrdige.
9629
	* Fixed an error in SCCplus cartridge
9630
	* Addapted SCCplus cartridge to use FileOpener
9631
9632
2002-04-03 Wouter Vermaelen <[email protected]>
9633
	* Moved ADPCM part of Y8950 to its own file
9634
	* Fixed ADPCM bug:
9635
	   addresses where a factor 8 too low, only first sample was
9636
	   played correctly
9637
	* Made console command "fullscreen", PrtScrn is bound to this command
9638
	* Console command "mute" takes on/off parameter
9639
	* Console command "pause" takes on/off parameter
9640
	* Made console command "console", F10 is bound to this command
9641
9642
2002-04-01 Joost Yervante Damad <[email protected]>
9643
	* FileManager sync [WIP]
9644
	* a first proposal for a FileManager API, I'll
9645
	  implement it soon if noone objects [or at least
9646
	  something like this!]
9647
9648
2002-03-31 Maarten ter Huurne <[email protected]>
9649
	* Cleaned up VRAM implementation a little.
9650
	  Still plenty of work to be done.
9651
9652
2002-03-30 Maarten ter Huurne <[email protected]>
9653
	* Added new VDPVRAM class, which manages VRAM.
9654
	  It is far from finished, but even in the current state it should be
9655
	  no less accurate than what we had before.
9656
9657
2002-03-30 Joost Yervante Damad <[email protected]>
9658
	* made CommandlineParser xml entity safe
9659
9660
2002-03-28 David Heremans <[email protected]>
9661
	* Added MC6850 and sampleram to '-musmod' CLI option.
9662
	* Added article written for the Dutch MSX-infoblad.
9663
	  The png's are ment to be printed and where not scaled for
9664
	  webpurposes.
9665
9666
2002-03-28 Wouter Vermaelen <[email protected]>
9667
	* Added dummy MC6850 (ACIA used in MSX Music Module for MIDI):
9668
	   "FAC demo 3" now detects MSX Music Module
9669
9670
2002-03-28 Wouter Vermaelen <[email protected]>
9671
	* amount of sample-ram is now configurable
9672
9673
2002-03-27 Wouter Vermaelen <[email protected]>
9674
	* implemented Y8950 timers
9675
	* implemented "throttle" command
9676
9677
2002-03-26 Wouter Vermaelen <[email protected]>
9678
	* fixed crash when a specified file did not exists:
9679
	   for some reason C++ doesn't throw exception beyond the constructor,
9680
	   even explicitly (re)throwing an exception in the constructor doesn't
9681
	   work
9682
9683
2002-03-25 Joost Yervante Damad <[email protected]>
9684
	* made VPATH compiles work, fixes 'make distcheck' also
9685
	* bumped version no
9686
9687
2002-03-25 Wouter Vermaelen <[email protected]>
9688
	* implemented RYTHM sounds for Y8950 (MSX-AUDIO): untested!
9689
	* reworked IRQ handling:
9690
	    CPU keeps IRQStatus (was CPUInterface)
9691
	    this way CPU can react directly on unannounced IRQs
9692
	    (eg: Y8950 end-of-sample IRQ)
9693
9694
2002-03-24 David Heremans <[email protected]>
9695
	* Added more helptext to the CommandlineParser.
9696
	* Made the 64 kB roms Manuel send me working.
9697
	* Enhanced the autodection of MSXGameCartrdige.
9698
9699
2002-03-24 Wouter Vermaelen <[email protected]>
9700
	* Y8950 and YM2413 cleanups
9701
9702
2002-03-24 Joost Yervante Damad <[email protected]>
9703
	* fixed configure.in
9704
	* continuation of <filepath>
9705
9706
2002-03-23 Joost Yervante Damad <[email protected]>
9707
	* more CustomConfig framework
9708
	* started on FilePath CustomConfig
9709
	* this is WIP, and is not finished yet!
9710
9711
2002-03-21 David Heremans <[email protected]>
9712
	* Again a (total) rewrite of CommandlineParser.
9713
	  A simpler and cleaner design then the previous one, and
9714
	  easy to extend for other CLI-options.
9715
9716
2002-03-20 Joost Yervante Damad <[email protected]>
9717
	* XML::Escape support added to libxmlx
9718
	* usage is explained in the header
9719
	* if you make xml that is feeded into libxmlx,
9720
	  you need to escape it first, to allow entity
9721
	  escaping for &, <, >, ...
9722
	* cleaned up libxmlx dir, libxmlx is now dual
9723
	  licensed GPL and LGPL
9724
9725
2002-03-19 Wouter Vermaelen <[email protected]>
9726
	* updated config files
9727
9728
2002-03-19 Joost Yervante Damad <[email protected]>
9729
	* started on CustomConfig
9730
	* added src/config/ dir, moved initial files
9731
9732
2002-03-19 Wouter Vermaelen <[email protected]>
9733
	* various Y8950 improvements, not sure adpcm part is completely fixed
9734
	* fixed getName() for Schedulable (eg VDP)
9735
	* fixed virtual inheritance constructor invocations
9736
9737
2002-03-18 Joost Yervante Damad <[email protected]>
9738
	* small fix in src/Makefile.am, I hope this solves
9739
	  David's compilation problems
9740
9741
2002-03-17 Maarten ter Huurne <[email protected]>
9742
	* Fixed graphical glitch when switching between PAL and NTSC timing.
9743
	* Minor clean-ups in SDLGLRenderer.
9744
9745
2002-03-16 Maarten ter Huurne <[email protected]>
9746
	* Implemented blanking in SDLGLRenderer.
9747
	* Implemented side borders in SDLGLRenderer.
9748
	* Implemented sprites in SDLGLRenderer.
9749
	* Only compile SDLGLRenderer if OpenGL was detected.
9750
9751
2002-03-15 Maarten ter Huurne <[email protected]>
9752
	* Improved line rounding in renderer sync.
9753
	* Fixed side border widths in text mode.
9754
9755
2002-03-15 Wouter Vermaelen <[email protected]>
9756
	* Fixed SCC distortion (was unsigned->signed conversion bug)
9757
	* [Experimental] First order high-pass IIR filtering in Mixer
9758
	* Tab completion of filenames for "disk" and "tape" command
9759
9760
2002-03-14 Maarten ter Huurne <[email protected]>
9761
	* Fixed ASCII16K MegaROM mapper.
9762
	  Eggerland 2 works now, but is still autodetected incorrectly.
9763
9764
2002-03-14 Wouter Vermaelen <[email protected]>
9765
	* Fixed tab completion bug
9766
	* Fixed printed CPU T-States (only printed value was wrong)
9767
	* Fixed crash when RTC.SAVE or FMPAC.PAC where missing
9768
9769
2002-03-12 Wouter Vermaelen <[email protected]>
9770
	* convert CassettePort to Connector-Pluggable structure
9771
	* MSXSimple:
9772
	   - converted from MSXIODevice to PrinterPortDevice
9773
	   - renamed to PrinterPortSimple
9774
	* MSXPrinterLogger:
9775
	   - converted from MSXIODevice to PrinterPortDevice
9776
	   - renamed to PrinterPortLogger
9777
9778
2002-03-11 Wouter Vermaelen <[email protected]>
9779
	* made Connector-Pluggable aware of EmuTime
9780
	* convert PrinterPort to Connector-Pluggable structure
9781
9782
2002-03-10 Wouter Vermaelen <[email protected]>
9783
	* Console cleanup
9784
	* Added console prompt
9785
	* Tab completion for help command
9786
	* Fixed uninitialized variable (enabledSCC) in MSXGameCartridge
9787
	* made MSXConfig::getParameterAsXXX() methods throw execptions again
9788
9789
2002-03-08 Wouter Vermaelen <[email protected]>
9790
	* Split Console in Console and CommandController:
9791
	   commands can now execute without a Console
9792
	* Implemented help command
9793
	* Re-implemented tab-completion:
9794
	   - completion till longest common match
9795
	   - if there is only one match left a ' ' is added
9796
	   - option for context sensitive completion (not yet tested)
9797
	* Implemented tab completion for (un)plug command:
9798
	   name of connector and pluggable gets completed
9799
9800
2002-03-07 Maarten ter Huurne <[email protected]>
9801
	* Fixed Generic16K MegaROM mapper. DOS2 works now.
9802
9803
2002-03-07 Wouter Vermaelen <[email protected]>
9804
	* Added plug-connector infrastructure:
9805
	   - only very basic support yet
9806
	   - changed joystick stuff to use this
9807
9808
2002-03-07 David Heremans <[email protected]>
9809
	* New internal structure of CommandlineParser is working
9810
	  This will make it possible to have extra parameters for
9811
	  cartridges,disks, or in a more global context.
9812
	* Small fix to MSXGameCartridge
9813
9814
2002-03-06 Wouter Vermaelen <[email protected]>
9815
	* split console commands in tokens
9816
9817
2002-03-05 Joost Yervante Damad <[email protected]>
9818
	* simplified auto* support for OpenGL
9819
	  see src/config.h after running autogen.sh
9820
	  to see which vars to use. For now it searches
9821
	  for <gl.h> or <GL/gl.h> and for -lGL
9822
	  This should allow easy conditional compile
9823
	  of SDLGLRenderer.
9824
9825
2002-03-04 Maarten ter Huurne <[email protected]>
9826
	* Added SDLGLRenderer (work in progress).
9827
	* Added nms8250.xml to distributed files.
9828
	* Fixed compile warnings in VDPCmdEngine.
9829
9830
2002-03-04 Wouter Vermaelen <[email protected]>
9831
	* SCC cleanups and tiny tweaks
9832
9833
2002-03-04 Joost Yervante Damad <[email protected]>
9834
	* added auto* support for OpenGL
9835
9836
2002-03-03 Maarten ter Huurne <[email protected]>
9837
	* Made sure unused bits in GRB palette value are zero.
9838
9839
2002-03-02 Maarten ter Huurne <[email protected]>
9840
	* Implemented fixed palette for sprites in Graphic 7 mode.
9841
9842
2002-03-01 Joost Yervante Damad <[email protected]>
9843
	* cleanup & documentation for libxmlx
9844
	* tightened interface in xmlx.hh
9845
	* tiny configure.in fixes
9846
	* bumped version number
9847
9848
2002-02-28 Maarten ter Huurne <[email protected]>
9849
	* Fixed enlarged sprites. (David, you can fly your heli now! ;)
9850
9851
2002-02-28 Wouter Vermaelen <[email protected]>
9852
	* moved sound related files to new directory "sound"
9853
	* fixed MSX-MUSIC in CTNG products:
9854
	  a real MSX-MUSIC is enabled on power-on
9855
9856
2002-02-27 Joost Yervante Damad <[email protected]>
9857
	* doxygen cleanups
9858
	* updated homepage
9859
9860
2002-02-27 Maarten ter Huurne <[email protected]>
9861
	* Fixed even/odd page flipping, it was overzealous.
9862
9863
2002-02-27 Joost Yervante Damad <[email protected]>
9864
	* simplified auto* setup for crosscompiling
9865
	* added atoll.c code for platforms that don't support that function
9866
	* crosscompiling now works, xmlxdump.exe works, openmsx.exe
9867
	  doesn't work yet
9868
	* for instructions, see README.WIN32
9869
	* fixed faulty CHECK_FUNC in configure.in
9870
	* atoll.c is now only used when needed
9871
9872
2002-02-25 Maarten ter Huurne <[email protected]>
9873
	* Implemented even/odd and interlace display.
9874
9875
2002-02-24 Maarten ter Huurne <[email protected]>
9876
	* Fixed port C read bug in PPI.
9877
	  Now keyboard works in SBB promo and CAPS is off at boot time.
9878
	* Implemented VDP name table masking (R#2) in bitmap modes.
9879
	  The 12 scrolls part of the Source of Power works now.
9880
	* Implemented blinking in Text2 display mode.
9881
	* Disabled SDLLoRenderer for now; it is not actively maintained.
9882
9883
2002-02-23 Maarten ter Huurne <[email protected]>
9884
	* Fixed Graphic7 border colour.
9885
9886
2002-02-22 Maarten ter Huurne <[email protected]>
9887
	* Implemented VDP overscan.
9888
	  Can use some more cleanup, but it works.
9889
9890
2002-02-19 Wouter Vermaelen <[email protected]>
9891
	* PrinterPortDevice now receives EmuTime:
9892
	   this is necessary for devices like Simple
9893
9894
2002-02-18 Wouter Vermaelen <[email protected]>
9895
	* moved CPU related files to subdirectory
9896
9897
2002-02-18 David Heremans <[email protected]>
9898
	* added simple and a printerlogger.
9899
	  Two devices that are connect to the printerport on a real MSX.
9900
	  The first is a DAC to play samples, the other logs all the data
9901
	  that a printer would normally print.
9902
9903
2002-02-17 Joost Yervante Damad <[email protected]>
9904
	* added atoll support for platforms that don't have
9905
	  that function [code taken from newlib, a libc for
9906
	  embedded systems]
9907
9908
2002-02-16 Maarten ter Huurne <[email protected]>
9909
	* Moved "display or border" calculation from renderer to VDP.
9910
	  This is a preparation for overscan and for accurate VRAM timing.
9911
9912
2002-02-15 David Heremans <[email protected]>
9913
	* Nicer mappertypes for the MSXGameCartridge:
9914
	  As requested by Maarten you can now specify easier to remember
9915
	  names (like ASCII8, SCC,KONAMI4,...) for the different mapper
9916
	  types instead of the numbers.
9917
9918
2002-02-15 Maarten ter Huurne <[email protected]>
9919
	* Added "palette" console command.
9920
9921
2002-02-15 David Heremans <[email protected]>
9922
	* Nicer mappertypes for the MSXGameCartridge:
9923
	  As requested by Maarten you can now specify easier to remember
9924
	  names (like ASCII8, SCC,KONAMI4,...) for the different mapper
9925
	  types instead of the numbers.
9926
9927
2002-02-13 Wouter Vermaelen <[email protected]>
9928
	* CPU speedup:
9929
	   CPU doesn't check the IRQ line after each instruction anymore, only
9930
	   directly after synchronization points. This also means that all
9931
	   irq.set() instruction must also set a synchronization point.
9932
	   TODO: check this for VDP, Y8950 and document this
9933
	* VDP bug fix:
9934
	   writes to register > 46 (non existing registers) overwrite other
9935
	   variables
9936
9937
2002-02-13 David Heremans <[email protected]>
9938
	* MSX MUSIC/MSX AUDIO Stereo now possible:
9939
	  The xml has an extra parameter allowing the Y8950 and YM2413
9940
	  to be activated in mono, left or right channel mode
9941
9942
2002-02-12 Wouter Vermaelen <[email protected]>
9943
	* Fixed FM-modulation error in both Y8950 as YM2413
9944
9945
2002-02-11 Wouter Vermaelen <[email protected]>
9946
	* Fixed some bugs in Y8950:
9947
	   it is usable now, both OPL part as ADPCM part
9948
	   but there are a few bugs left (YM2413 has the same problems)
9949
	   relative volume of opl vs adpcm might need some tuning
9950
9951
2002-02-10 Wouter Vermaelen <[email protected]>
9952
	* Made "cpudebug" command:
9953
	   must be enabled in CPU.hh (#define CPU_DEBUG)
9954
	* Y8950 (AUDIO) updates
9955
	* Implemented auto commands:
9956
	   automatic joystick/mouse insertion is now possible
9957
9958
2002-02-10 Maarten ter Huurne <[email protected]>
9959
	* Moved SDL dependent code out of VDP:
9960
	  - Renderer instantiation happens in PlatformFactory (new class)
9961
	  - full screen toggle was moved to Renderer (not its final location)
9962
9963
2002-02-08 Maarten ter Huurne <[email protected]>
9964
	* Fixed secondary slot select bug for real now.
9965
	  The cause was uninitialised variables, the previous "fix" turned
9966
	  out to be no more than a workaround.
9967
9968
2002-02-08 Wouter Vermaelen <[email protected]>
9969
	* Large Console cleanup:
9970
	   convert code to C++
9971
	   split code in SDL dependent and SDL independent part
9972
	   moved all console code to directory ConsoleSource
9973
	* Support for 9 joysticks
9974
	* Stricter syntax checking for joyport command
9975
9976
2002-02-07 Maarten ter Huurne <[email protected]>
9977
	* Fixed ASCII 16K (type 5) mapper.
9978
	  Re-engineered Zanac-Ex ROM works now.
9979
	* Made MSXMotherBoard console command inner classes private.
9980
9981
2002-02-06 Wouter Vermaelen <[email protected]>
9982
	* More cleanups in ConsoleSource:
9983
	   made SDLFont class, replaces DT_drawtext
9984
9985
2002-02-06 Maarten ter Huurne <[email protected]>
9986
	* A few small fixes in joystick implementation.
9987
	  It works now. Thanks Wouter!
9988
9989
2002-02-06 Wouter Vermaelen <[email protected]>
9990
	* Console cleanups
9991
	* ConsoleCommand inner classes for Scheduler, MSXMotherBoard
9992
	* Implemented "disk" command (similar as "tape" command):
9993
	    works only for drive a:
9994
	                   720kb disks
9995
	* Implemented "joyport" command:
9996
	    joyport[a|b] [unplug|mouse|joystick[1|2]]
9997
	* First cleanup in ConsoleSource:
9998
	   use hash_map in CON_consolecommand instead of self-made linked list
9999
10000
2002-02-05 Wouter Vermaelen <[email protected]>
10001
	* Implemented "reset" console command.
10002
10003
2002-02-05 Maarten ter Huurne <[email protected]>
10004
	* Added MSXMotherBoard::IRQHelper class.
10005
	* Removed IRQ helper functionality from MSXDevice.
10006
10007
2002-02-04 Maarten ter Huurne <[email protected]>
10008
	* Took advantage of new raiseIRQ/lowerIRQ semantics in VDP.
10009
10010
2002-02-04 Maarten ter Huurne <[email protected]>
10011
	* Fixed bug where devices in non-expanded slots would only be
10012
	  visible when subslot 0 was selected.
10013
	* Implemented "slotselect" console command.
10014
10015
2002-02-03 Maarten ter Huurne <[email protected]>
10016
	* Implemented "slotmap" console command.
10017
	* Console::printOnConsole now accepts multi-line texts.
10018
	* Fixed buffer overrun in CON_Out.
10019
	* Renamed DummyDevice's device name to "empty", which makes
10020
	  more sense to the user (who sees it in the slotmap).
10021
10022
2002-02-03 Wouter Vermaelen <[email protected]>
10023
	* Removed class LoadFile: it was only used by MSXRom and it was only
10024
	  usefull for that class (two classes merged now)
10025
10026
2002-02-02 Maarten ter Huurne <[email protected]>
10027
	* Implemented memory overlay behaviour in SCC page (0x3F).
10028
10029
2002-01-30 David Heremans <[email protected]>
10030
	* MSXTapePatch uses console:
10031
	  Now possible to change or eject tapes using the console
10032
10033
2002-01-29 David Heremans <[email protected]>
10034
	* Console enhancements:
10035
	  -calls CommandHelp when tabcomplition has
10036
	  already found a complete command
10037
	* DiskPatch can now reports problems with disks during
10038
	  initialization:
10039
	  This should help Maarten if he has a 'black screen' :-)
10040
10041
2002-01-28 Joost Yervante Damad <[email protected]>
10042
	* made libxmlx an 'utility' library, this implies that
10043
	  openmsx links this statically, which makes for easier
10044
	  debugging, no more 'wrapper script' for now
10045
10046
2002-01-27 Joost Yervante Damad <[email protected]>
10047
	* Made SDL console autotools enabled
10048
10049
2002-01-26 David Heremans <[email protected]>
10050
	* Console now usable:
10051
	  - registered as ansynchron event listener
10052
	  - Scheduler has now two commands registered
10053
10054
2002-01-26 Wouter Vermaelen <[email protected]>
10055
	* Fixed double delivery of syncronous events
10056
10057
2002-01-25 Wouter Vermaelen <[email protected]>
10058
	* Exception cleanups
10059
	* Y8950 adpcm support (untested)
10060
10061
2002-01-24 Joost Yervante Damad <[email protected]>
10062
	* added support for streamstring xml config per
10063
	  request of David
10064
10065
2002-01-24 David Heremans <[email protected]>
10066
	* Altered SDL_Console:
10067
		- C++-ed the code and files
10068
		- dumped unwanted function
10069
		- now registers objects from type ConsoleInterface
10070
		  to use for callback instead of C-function pointers
10071
	* Scheduler has now one (1) registered command with console:
10072
		- press tab for autocomplete :-)
10073
	* Added cartridge to help debug ARC protection cartridge
10074
	* DummyDevice warns about unregistered I/O port calls
10075
10076
2002-01-22 David Heremans <[email protected]>
10077
	* Added an SDL_console:
10078
	  Not usefull for the moment but you can toggle it with F10
10079
	  No commands possible and double key registration but the
10080
	  effect is "cool" :-)
10081
10082
2002-01-20 David Heremans <[email protected]>
10083
	* Added DSKFMT-implementationr:.
10084
	  Formating of a 360kB dsk file doens't work. A 720kB dsk file
10085
	  can be formated single or double sided.
10086
	* Autofill of empty,newly generated .dskfiles:
10087
	  No auto formating however, maybe later.
10088
10089
2002-01-19 Joost Yervante Damad <[email protected]>
10090
	* openmsx now uses new config code
10091
	* features:
10092
		- supports multiple config files
10093
		- it's possible to create alternative config backends
10094
		- no more libxml++ *yipee*
10095
		- uses libxmlx, right now still linked dynamically,
10096
		  this means that ./openmsx is actually a libtool provided
10097
		  script, soo for debugging use .libs/openmsx and alter
10098
		  the LD_LIBRARY_PATH environment variable if needed
10099
		- support for save not yet added, but it will be easy
10100
	* xmlconfig raises exception on duplicate "id"
10101
10102
2002-01-12 Maarten ter Huurne <[email protected]>
10103
	* Compile fix for Thread class:
10104
	  explicitly convert between Runnable pointer and void pointer.
10105
10106
2002-01-12 Wouter Vermaelen <[email protected]>
10107
	* made a Thread class, interface is SDL independent,
10108
	  implemenation uses SDL
10109
	* made a Mutex class, analog as Thread
10110
	* sync MSX-MUSIC and MSX-AUDIO on register write
10111
	* made all sound related classes (except Mixer) SDL independent
10112
10113
2002-01-11 Wouter Vermaelen <[email protected]>
10114
	* Implemented RTC load/save on power on/off
10115
	  (this is not the same as saveState)
10116
	* Implemented FMPAC-SRAM load/save on power on/off
10117
10118
2002-01-10 Wouter Vermaelen <[email protected]>
10119
	* MSXMemoryMapper <-> MSXMapperIO cleanup (thanks Maarten)
10120
10121
2002-01-10 David Heremans <[email protected]>
10122
	* Added FileOpener. This implements the needed routines to
10123
	  support "rompaths". It also provides easy to use functions
10124
	  to open files in the other devices.
10125
10126
2002-01-09 Maarten ter Huurne <[email protected]>
10127
	* VR resets one line before start of display.
10128
	  Fixes Almost Real Copper Bars part.
10129
10130
2002-01-09 Wouter Vermaelen <[email protected]>
10131
	* Prepared CPU and Z80 class for inclusion of R800:
10132
	   - moved as much code as possible from Z80 to CPU
10133
	   - separated timimg dependent code from the rest of the code
10134
	   - ugly "#inlude-hack" to avoid the overhead of virtual functions
10135
10136
2002-01-09 Maarten ter Huurne <[email protected]>
10137
	* Fixed MSXMemoryMapper so that it can handle over 64K of memory.
10138
10139
2002-01-08 Maarten ter Huurne <[email protected]>
10140
	* Red and green were swapped in Graphic7 rendering.
10141
	* Apply planar reorder also on CPU reading VRAM and sprite checking.
10142
	  Fixes Hydefos intro, all Graphic6/7 rendering should be OK now.
10143
10144
2002-01-08 Maarten ter Huurne <[email protected]>
10145
	* Preliminary Graphic6/7 rendering.
10146
	  Works somewhat, but not in all cases.
10147
	* Fixed transparency bug; Psycho World sky is blue again.
10148
10149
2002-01-07 Wouter Vermaelen <[email protected]>
10150
	* DiskRomPatch cleanup: I wanted to fix the PHYDIO routine, but it
10151
	  was already correct (the result in the B register). Maybe it is
10152
	  now more obviously correct?
10153
10154
2002-01-07 Wouter Vermaelen <[email protected]>
10155
	* Z80: fixed HALT instruction (rounding error)
10156
	* more #include cleanups
10157
	* getCPURegs() interface cleanup
10158
10159
2002-01-06 Maarten ter Huurne <[email protected]>
10160
	* Implemented rendered line caching in bitmap modes (SDLHi).
10161
	* Fixed GETDPB in MSXDiskRomPatch: uses static table based on passed
10162
	  media descriptor instead using values from boot sector.
10163
10164
2002-01-06 Wouter Vermaelen <[email protected]>
10165
	* Z80: reverted buggy optimization,
10166
	  fixes undeadline, track&field, flickering in space manbow
10167
10168
2002-01-06 Joost Yervante Damad <[email protected]>
10169
	* small fixes
10170
	* XMLConfig skeleton + some code
10171
10172
2002-01-06 Maarten ter Huurne <[email protected]>
10173
	* Text mode extra-wide border now drawn at once (SDLHi).
10174
10175
2002-01-05 Maarten ter Huurne <[email protected]>
10176
	* Implemented CC and IC bits of sprite mode 2.
10177
	  Now OR-ed sprite patterns are rendered as they should.
10178
10179
2002-01-05 Wouter Vermaelen <[email protected]>
10180
	* #include cleanup
10181
	* Changed PSG mute routine:
10182
	  PSG-samples in "time curb" now work!
10183
10184
2002-01-05 Joost Yervante Damad <[email protected]>
10185
	* small libxmlx improvements
10186
		- should handle comments and pcdata correctly
10187
		- started modifications of msxconfig code, first in
10188
		  a seperate temporarely program cfgtest, to avoid
10189
		  hindering the other coders
10190
10191
2002-01-04 Wouter Vermaelen <[email protected]>
10192
	* Changed interaction Mixer-SoundDevice:
10193
	  Mixer now calls the updateBuffer() method of each SoundDevice, even
10194
	  if device is muted (device can update internal counter). If the
10195
	  device was muted is must return a null-pointer.
10196
10197
2002-01-03 Maarten ter Huurne <[email protected]>
10198
	* SDLHiRenderer needs to sync on VRAM updates after all.
10199
	  This solves the disappearing boss blocks of Knightmare stage 1.
10200
	* The VDP (sprite checking) needs to sync on VRAM updates as well.
10201
	  Hopefully this will solve the Knightmare stage 2 boss problem.
10202
10203
2002-01-03 Joost Yervante Damad <[email protected]>
10204
	* libxmlx sync
10205
10206
2002-01-03 David Heremans <[email protected]>
10207
	* Improved tape support, tested with Time_Curb.cas file
10208
10209
2002-01-03 Maarten ter Huurne <[email protected]>
10210
	* Changed pause implementation in Scheduler to make it thread safe.
10211
	* Fixed PAL timing in SDLHiRenderer.
10212
10213
2002-01-02 Wouter Vermaelen <[email protected]>
10214
	* RealTime syncronizer improvements
10215
10216
2002-01-02 David Heremans <[email protected]>
10217
	* Added tape support, not yet tested
10218
	* Restored old filesize behaviour in gamecartridge
10219
10220
2002-01-02 Maarten ter Huurne <[email protected]>
10221
	* Improved VDP accuracy.
10222
	  Space Manbow still flashes, but less than before.
10223
10224
2001-12-31 Maarten ter Huurne <[email protected]>
10225
	* SDLHiRenderer uses double buffering.
10226
	* Prepared SDLHiRenderer for RealTime sync, but if I enable it the
10227
	  emulated MSX slows down (even though host CPU load remains low).
10228
	* Added FDC values as patches to nms8250.xml, fixes disk ROM hang.
10229
10230
2001-12-31 Joost Yervante Damad <[email protected]>
10231
	* lots of small C++ standard compliancy fixes
10232
	* Z80Core.hh -> Z80Core.nn
10233
	* more disk support, still partially works only
10234
	* disk support now works completely, but not yet
10235
	  for all programs [starquake, on mania036.dsk
10236
	  works completely]
10237
	* fixes for slotselection [thanks Maarten]
10238
10239
2001-12-31 Maarten ter Huurne <[email protected]>
10240
	* Render accuracy is now one line instead of one frame.
10241
	* Implemented line interrupt (horizontal scanning interrupt).
10242
	  Timing is still a bit off though.
10243
	* Implemented horizontal display adjust (vertical not yet).
10244
	* Implemented HR/VR status bits.
10245
	* Prepared for caching of rendered lines in bitmap modes.
10246
	* Command engine cleanups.
10247
10248
2001-12-30 Wouter Vermaelen <[email protected]>
10249
	* Z80: correct inter-instruction timing for DDCB and FDCB instrcutions,
10250
10251
2001-12-30 Joost Yervante Damad <[email protected]>
10252
	* more disk support, it already works a little bit,
10253
	  but the slot switching still needs to be added
10254
10255
2001-12-29 Wouter Vermaelen <[email protected]>
10256
	* Memory reads/writes can now be cached (if possible)
10257
	  measured 10% - 20% performance gain
10258
	  not completely finished, especially documentation
10259
10260
2001-12-29 Joost Yervante Damad <[email protected]>
10261
	* synced in libxmlx skeleton [W.I.P.!]
10262
	* header file include cleanup, this should avoid alot
10263
	  of useless recompilation
10264
10265
2001-12-27 Wouter Vermaelen <[email protected]>
10266
	* Scheduler now uses a heap instead of sorted set
10267
	* SyncPoints can now be removed
10268
	* SyncPoints take an optional userData parameter, this parameter
10269
	  is later passed to executeUntilEmuTime() method
10270
	* MSXDevice does not inherit from Schedulable anymore, devices that
10271
	  still need to be Schedulable must inherit itself from Schedulable
10272
	  (eg VDP)
10273
10274
2001-12-26 Wouter Vermaelen <[email protected]>
10275
	* added getCPURegs() and setCPURegs() methods in class CPU
10276
10277
2001-12-25 Wouter Vermaelen <[email protected]>
10278
	* small optimization in Scheduler:
10279
	  no overhead when unpaused
10280
10281
2001-12-25 Joost Yervante Damad <[email protected]>
10282
	* added --enable-profile and --enable-release to ./configure
10283
	* added "debug" and "nodebug" targets to Makefile in src dir [toggle]
10284
	  usage: "make debug" turns on debug for this and next makes
10285
	         "make nodebug" turns it of again
10286
10287
2001-12-24 Maarten ter Huurne <[email protected]>
10288
	* Added "unsigned" to uint64 definition in Scheduler.
10289
	  Before, Scheduler::INFINITY was -1.
10290
	* Implemented PAL at 50Hz and NTSC at 60Hz.
10291
	* Restructured VDP timing routines.
10292
10293
2001-12-24 Maarten ter Huurne <[email protected]>
10294
	* Added render routine for Graphic4 mode.
10295
	* Added support for 212 lines display.
10296
	* Added partial sprite mode 2 implementation.
10297
10298
2001-12-24 Maarten ter Huurne <[email protected]>
10299
	* Added render routine for Graphic5 mode.
10300
	* Added support for transparency control (R#8 bit 5).
10301
10302
2001-12-24 Maarten ter Huurne <[email protected]>
10303
	* Finished integration of command engine.
10304
	  It runs, but without render routines for the bitmap modes,
10305
	  it is not possible to visually check the results.
10306
10307
2001-12-23 Maarten ter Huurne <[email protected]>
10308
	* Fixed a design flaw in the Renderer interface.
10309
	  The update methods were called *after* the changed VDP state
10310
	  became effective. That way, delayed rendering operations cannot
10311
	  be completed because the old VDP state is no longer available.
10312
	  In the new interface, update methods are called *before* the
10313
	  new state becomes effective. So the old values can be retrieved
10314
	  from the VDP, while the new values are passed as parameters
10315
	  of the update method.
10316
10317
2001-12-22 Maarten ter Huurne <[email protected]>
10318
	* Fixed dirty check bugs.
10319
	  The "inside name/colour/pattern table" checks were wrong:
10320
	  too much was considered inside, therefore too many characters
10321
	  were considered dirty.
10322
	  Also the attempt to make Text2 use the same dirty checking code
10323
	  as the MSX1 display modes failed, instead I wrote different
10324
	  dirty checkers for different display modes. This was bound to
10325
	  happen in the future anyway, because bitmap modes will require
10326
	  different dirty checks than pattern modes.
10327
10328
2001-12-22 Maarten ter Huurne <[email protected]>
10329
	* Added VDP Command Engine 1.0 from Alex Wulms.
10330
	  Adapted the code to C++ and to openMSX conventions.
10331
	  Only functional change is SCREEN7/8 pixel lookups (two defines).
10332
	  The command engine compiles and links, but cannot run yet.
10333
10334
2001-12-21 Maarten ter Huurne <[email protected]>
10335
	* Implemented Text2 display mode (SCREEN0.80).
10336
	* Prepared for blinking (not finished yet).
10337
10338
2001-12-21 Maarten ter Huurne <[email protected]>
10339
	* Applied gamma correction to V9938/58 palette.
10340
	  My guess is that the gamma of MSX and PC monitors is slightly
10341
	  different; the palette precalc now compensates for that.
10342
10343
2001-12-21 Maarten ter Huurne <[email protected]>
10344
	* Implemented palette feature of V9938/58.
10345
	  Can be seen by running Nemesis 3 using NMS8250 config.
10346
10347
2001-12-21 Wouter Vermaelen <[email protected]>
10348
	* Fixed uninitialized variable in RP5C01:
10349
	  this caused a delay of several seconds at start-up
10350
10351
2001-12-20 Wouter Vermaelen <[email protected]>
10352
	* added MSX-AUDIO: no ADPCM yet, not optimized
10353
	* LoadFile and MSXGameCartridge cleanup
10354
10355
2001-12-19 Wouter Vermaelen <[email protected]>
10356
	* Removed more indirections from YM2413
10357
10358
2001-12-18 Wouter Vermaelen <[email protected]>
10359
	* fixed CassettePort:
10360
	  exceptions don't work if you compile with -fno-rtti, removed it
10361
10362
2001-12-18 David Heremans <[email protected]>
10363
	* MapperType guesser can be turned on/off
10364
	* MapperType now configurable in MSXGameCartrdige.
10365
	* Integrated MSXKonamiSynthesizer into MSXGameCartrdige.
10366
10367
2001-12-14 Wouter Vermaelen <[email protected]>
10368
	* sound on/off (F11) and pause (PAUSE) now work together
10369
	* fixed "pure virtual function called" error
10370
10371
2001-12-16 David Heremans <[email protected]>
10372
	* Extende LoadFile to autodetermine file-size.
10373
	* Renamed MSXMegaRom to MSXGameCartrdige.
10374
	* MSXGameCartridge can now handle smaller game roms (<= 64kB)
10375
10376
2001-12-15 David Heremans <[email protected]>
10377
	* Added volume to the SCC.
10378
	* Used F11 as HotKey to sound on/off:
10379
10380
2001-12-14 Wouter Vermaelen <[email protected]>
10381
	* Fixed DACSound, KeyClick now works
10382
10383
2001-12-11 Maarten ter Huurne <[email protected]>
10384
	* Optimised MSX-MUSIC mixing.
10385
	* Removed indirection on ch array ("Channel *" -> "Channel).
10386
10387
2001-12-12 David Heremans <[email protected]>
10388
	* Added the SCC+ cartridge
10389
10390
2001-12-12 Wouter Vermaelen <[email protected]>
10391
	* Cleanup MSXMusic / MSXFmPac:
10392
	   "CALL FMPAC" now works!
10393
10394
2001-12-11 Maarten ter Huurne <[email protected]>
10395
	* Compacted the SCC mixing and muting code.
10396
	* Added offset to lookups in SCC::getFreqVol.
10397
	* SCC::ch_enable is not masked upon write.
10398
	* Added "currentChipMode = chip" to SCC::setChipMode.
10399
	* Changed size of waveform array to 32 (was 64).
10400
10401
2001-12-10 Wouter Vermaelen <[email protected]>
10402
	* Implemented Z80 inter-instruction-timing
10403
	   (DD CB instructions not correct yet)
10404
10405
2001-12-11 David Heremans
10406
	* uploaded SCC soundchip:
10407
	  This chip can emulate the SCC hardware in the 3 know modes
10408
	   - Real SCC
10409
	   - SCC+ cartridge in SCC compatible mode
10410
	   - SCC+ cartridge in SCC+ mode
10411
	* Changed MegaRom:
10412
	  Megarom of type 2 know use the SCC soundchip.
10413
10414
2001-12-10 Maarten ter Huurne <[email protected]>
10415
	* Implemented indirect register write for V9938/58.
10416
	* V9938/58 can now have 16K, 64K or 128K of VRAM.
10417
	* Upgraded CPU interface to read/write more than 16K of VRAM.
10418
	* Changed video mode naming scheme to match V9938 data book.
10419
10420
2001-12-10 Wouter Vermaelen <[email protected]>
10421
	* Cleanups in MSXMemoryMapper, requires config file change
10422
	* More config file changes:
10423
	    PSG   -> volume parameter
10424
	    MUSIC -> volume parameter
10425
	    PPI   -> volume parameter
10426
	          -> key_ghosting parameter
10427
	    Mixer -> frequency parameter
10428
	          -> samples parameter
10429
	* RealTime cleanups:
10430
	   - MSXRealTime renamed to RealTime
10431
	   - RealTime is no longer a MSXDevice
10432
	   - moved parameters to config file
10433
10434
2001-12-09 Maarten ter Huurne <[email protected]>
10435
	* Faked enough V9938 features to make nms8250.xml boot.
10436
10437
2001-12-09 Maarten ter Huurne <[email protected]>
10438
	* Fixed compilation with Z80DEBUG enabled.
10439
	* Fixed single-width pixels in SCREEN0 in SDLHiRenderer.
10440
	* Re-enabled resetting of dirty flags at end-of-frame.
10441
	  This was probably disabled during debugging and accidentally
10442
	  commited to CVS.
10443
10444
2001-12-09 Maarten ter Huurne <[email protected]>
10445
	* Introduced VDP class, which will replace MSXTMS9928a.
10446
10447
2001-12-09 Joost Yervante Damad <[email protected]>
10448
	* Rom Patching Code skeleton
10449
	* MSXDiskRomPatch skeleton
10450
10451
2001-12-09 Maarten ter Huurne <[email protected]>
10452
	* Fixed uninitialised struct field in SDLLoRenderer.
10453
	* SDLHiRenderer renders doubled pixels now.
10454
10455
2001-12-09 Maarten ter Huurne <[email protected]>
10456
	* Introduced SDLHiRenderer.
10457
	  Opens 640x480 screen, although it still renders low-res.
10458
	* Changed configuration:
10459
	  - new category: "renderer"
10460
	    type selects renderer: "SDLLo" or "SDLHi"
10461
	  - "fullscreen" moved to "renderer" and renamed "full_screen"
10462
	    plus it's an actual boolean now
10463
	  - new parameter: "limit_sprites" in "msx1vdp"
10464
	* Setting "limit_sprites" to false actually works now.
10465
10466
2001-12-08 Maarten ter Huurne <[email protected]>
10467
	* Improved Doxygen comments in MSXTMS9928a and Renderer.
10468
	* Small optimisations in sprite rendering.
10469
	* Renamed XPal to Pal: it hasn't been X for quite some time.
10470
	* Introduced sprite buffering: VDP stores sprite info for one
10471
	  frame, so Renderer can retrieve it on demand. This removes
10472
	  the need for the Renderer to call checkSprites, making the
10473
	  VDP behaviour completely independant of the Renderer used.
10474
10475
2001-12-08 Joost Yervante Damad <[email protected]>
10476
	* Loadfile now handles patching of files
10477
10478
2001-12-08 Wouter Vermaelen <[email protected]>
10479
	* added several missing reset() calls
10480
10481
2001-12-07 Wouter Vermaelen <[email protected]>
10482
	* MSXPPI is no longer a singleton
10483
10484
2001-12-06 Maarten ter Huurne <[email protected]>
10485
	* Small initialisation fix in MSXTMS9928a.
10486
	  Thanks to Wouter for spotting the problem.
10487
10488
2001-12-06 Wouter Vermaelen <[email protected]>
10489
	* removed init() method from MSXDevice:
10490
	  initialization should be done in the constructor
10491
	* all MSXDevice constructors (former init() methods) now take an
10492
	  EmuTime parameter
10493
10494
2001-12-05 Joost Yervante Damad <[email protected]>
10495
	* MSXRom continued [reworked, no longer inherited from MSXDevice]
10496
10497
2001-12-05 Wouter Vermaelen <[email protected]>
10498
	* Made MSXIODevice and MSXMemDevice both subclasses of MSXDevice:
10499
	  these 2 classes take functionality away from MSXDevice and put it
10500
	  in more specialized classes. They also offer things like automatic
10501
	  slot-registration (and in the future automatic IO-registration)
10502
	* removed start() and stop() methods from MSXDevice
10503
	* reset() method in MSXDevice now takes an EmuTime argument
10504
10505
2001-12-04 Joost Yervante Damad <[email protected]>
10506
	* added MSXRom subclass and LoadFile mixin, as first step
10507
	  towards ROM patching support
10508
10509
2001-12-04 Wouter Vermaelen <[email protected]>
10510
	* correct use of register 0x7ff6 for MSX-MUSIC
10511
	* MSXMotherBoard is no longer a MSXDevice
10512
10513
2001-12-03 Joost Yervante Damad <[email protected]>
10514
	* fixed Config *getConfigById(const std::string &type)
10515
	* started on disk support "level 2" [not in CVS yet]
10516
10517
2001-12-03 Wouter Vermaelen <[email protected]>
10518
	* Made a new EmuTime class (for details search mailarchives for
10519
	   "[RFC] new EmuTiem class"). This gave a large performance gain,
10520
	   more than I had hoped for.
10521
	* SoundDevices now unregister themself before destruction
10522
10523
2001-12-02 Maarten ter Huurne <[email protected]>
10524
	* Integrated name/pattern/colour table base addresses and mask
10525
	  into a single mask. This is probably how the hardware does it.
10526
	* Fixed dirty checks.
10527
	  King's Valley 2 is now actually fixed, blanking just happened
10528
	  to make the problem go away without fixing the bug causing it.
10529
	* Moved to "pull" model for VDP - Renderer communication:
10530
	  VDP sends update signals when parts of its state change,
10531
	  Renderer can get current state from VDP at all times.
10532
10533
2001-12-02 Wouter Vermaelen <[email protected]>
10534
	* fixed pause:
10535
	   - <F12> now works when paused
10536
	   - after pause emulation isn't too fast
10537
	* correct inline in Z80
10538
	* MSXMegaRom cleanup, minor speedup
10539
10540
2001-12-01 Maarten ter Huurne <[email protected]>
10541
	* Fixed compile error in CassettePlayer.cc:
10542
	  PRT_ERROR contains exit(), which needs <stdlib.h>.
10543
10544
2001-12-01 Maarten ter Huurne <[email protected]>
10545
	* Fixed bug which caused Z80 to fail when methods were not inlined.
10546
	  Problem was that ld_xix_byte() and ld_xiy_byte() called Z80_WRMEM
10547
	  with two parameters, each of which read an opcode, an operation
10548
	  which increases the program counter. This is wrong because the
10549
	  evaluation order of parameters is not guaranteed.
10550
10551
2001-12-01 Wouter Vermaelen <[email protected]>
10552
	* added FMPAC
10553
	* MSXMotherBoard is now also a CPUInterface, this eliminates one
10554
	  indirection in readMem()-like methods but these get called a few
10555
	  100 000 times a second. I measured 10%-20% performance gain
10556
10557
2001-11-30 Wouter Vermaelen <[email protected]>
10558
	* made a helper function registerSlots()
10559
	* made a helper function loadFile()
10560
	   note: config file format changed!
10561
10562
2001-11-29 Wouter Vermaelen <[email protected]>
10563
	* Added a CassettePlayer (no record function yet)
10564
	  A CassettePlayer must be plugged into the CassettePort and
10565
	  you must insert a tape (= .wav file) into the CassettePlayer
10566
	  Currently you can't do either of these operations.
10567
10568
2001-11-27 Maarten ter Huurne <[email protected]>
10569
	* Added updateBlanking to Renderer interface.
10570
	  Fixes redraw problem in King's Valley 2.
10571
	* Various cleanups in MSXTMS9928a and SDLLoRenderer.
10572
10573
2001-11-26 Maarten ter Huurne <[email protected]>
10574
	* Introduced SpriteInfo in MSXTMS9928a, this is a prelude to
10575
	  sprite info buffering (separating calculation time from
10576
	  rendering time).
10577
	* Introduced VdpVersion enum in MSXTMS9928a.
10578
10579
2001-11-20 Wouter Vermaelen <[email protected]>
10580
	* Small CassettePort update, implemented very primitive filter
10581
10582
2001-11-25 Maarten ter Huurne <[email protected]>
10583
	* Sprites are now rendered in the screen buffer rather than in the
10584
	  display cache (which replaced "canvas"). As a result, sprite drawing
10585
	  code became simpler and the display cache needs less updates.
10586
10587
2001-11-25 Maarten ter Huurne <[email protected]>
10588
	* Render on demand:
10589
	  New Renderer can render as many lines as requested.
10590
	  Many lines at once has lower overhead, but if necessary it
10591
	  can still render one line at a time.
10592
	  This code can be converted to pixel-precision rendering that
10593
	  has decent performance.
10594
	* All change tracking (dirty flags etc) is moved to Renderer.
10595
	* Interface between VDP and Renderer is much cleaner now.
10596
	  (no more public fields)
10597
	* Got rid of "tms" struct.
10598
10599
2001-11-20 Wouter Vermaelen <[email protected]>
10600
	* added basic support for CassettePort
10601
	   - CassettePort has no filters yet
10602
	   - no output (record) yet
10603
	   - !! no CassttePlayer (must be plugged in a CassettePort) !!
10604
10605
2001-11-18 Maarten ter Huurne <[email protected]>
10606
	* The drawing area (now called "canvas") is now an off-screen SDL
10607
	  surface instead of a pixel array. SDL calls are for blitting and
10608
	  drawing empty lines (top and bottom border).
10609
	* Cleanup of change tracking in VDP.
10610
	* Cleanup of Renderer access to VDP state:
10611
	  public fields replaced by inline methods.
10612
	* Cleanup of VDP fields: slowly getting rid of "tms" struct.
10613
10614
2001-11-18 Wouter Vermaelen <[email protected]>
10615
	* updated KeyEventInserter, it works now but it is not yet useable,
10616
	  needs to read text from config file or something
10617
10618
2001-11-17 Maarten ter Huurne <[email protected]>
10619
	* MSXTMS9928a and SDLLoRenderer respect SIZEOF_BOOL now.
10620
	* Introduced Renderer: pure abstract superclass to all renderers.
10621
	* Changed SDLLoRenderer into a template class.
10622
	  All supported colour depths are compiled in.
10623
	  A factory method selects a suitable colour depth automatically.
10624
10625
2001-11-17 Joost Yervante Damad <[email protected]>
10626
	* added sizeof(bool) autoconf macro
10627
	* rearranged configure.in to avoid problems
10628
	  with simple checks being confused by the extra
10629
	  CXXFLAGS and libs
10630
10631
2001-11-17 Maarten ter Huurne <[email protected]>
10632
	* SDLRenderer is now SDLLoRenderer (low-res: 320x240) and
10633
	  was given its own files.
10634
	  Also removed MESS history comments from MSXTMS9928a.
10635
10636
2001-11-16 Maarten ter Huurne <[email protected]>
10637
	* Split off SDLRenderer from MSXTMS9928a.
10638
	  This makes it easier to support different renderers
10639
	  (320x240, 640x480, 8/16/32bpp).
10640
	  In the near future SDLRenderer will get its own file.
10641
10642
2001-11-16 Maarten ter Huurne <[email protected]>
10643
	* Disabled 512K mapper in cfg/someconfig.xml because it conflicted
10644
	  with the MegaROM.
10645
10646
2001-11-16 Wouter Vermaelen <[email protected]>
10647
	* cleanup EventDistributor/HotKey
10648
10649
2001-11-15 Wouter Vermaelen <[email protected]>
10650
	* Z80: interrupt state is only checked right after a sync point
10651
	       halt now "burns" CPU cycles
10652
	    --> large CPU speedup
10653
10654
2001-11-14 Wouter Vermaelen <[email protected]>
10655
	* an MSXDevice is now associated with an MSXConfig object as soon as
10656
	  it is instantiated. Before this change it was possible that a
10657
	  MSXDevice (mostly singletons) was used before it could access its
10658
	  parameters.
10659
	* AY8910: fixed uninitialized variables
10660
10661
2001-11-13 Wouter Vermaelen <[email protected]>
10662
	* fixed HotKey: method find() returns a normal iterator, not an
10663
	   iterator that goes over elements that match the search criteria
10664
10665
2001-11-13 David Heremans
10666
	* openMSX now stops when using the WM close button:
10667
	* Correct close behaviour:
10668
	    Set a sync point so that if the CPU is scheduled until
10669
	    infinite we still can stop openMSX.
10670
	    Wouter will look into the HotKey event distribution,
10671
	    it is temporarly fixed using if comands.
10672
10673
10674
2001-11-09 David Heremans
10675
	* quickly add a fullscreen flag in the TMS code:
10676
	    extra parameter in config.xml file
10677
	    use PrintScreen key to togle
10678
	* openMSX now stops when pressing F12:
10679
	    however make sure that openMSx is full screen when you press F12
10680
10681
2001-11-07 Wouter Vermaelen <[email protected]>
10682
	* reworked CPU related classes:
10683
	    much simpler structure
10684
	    more optimizations possible in the future
10685
	* Z80: correct wait-state handling
10686
10687
2001-11-05 Wouter Vermaelen <[email protected]>
10688
	* Z80: undocumented instructions like "res 4,(ix+5),b" implemented
10689
	* Z80: correct(?) timing for undocumented instructions
10690
10691
2001-11-04 Wouter Vermaelen <[email protected]>
10692
	* Z80 cleanup/fixes:
10693
	  fixed DAA instruction, bug in Penguin Adventure should be fixed now
10694
	  correct 'undocumented-flag-handling' for most instruction
10695
10696
2001-10-31 Wouter Vermaelen <[email protected]>
10697
	* fixed bug in Z80, some instruction had a negative T-State count!!
10698
	  Road Fighter works again
10699
10700
2001-10-30 Wouter Vermaelen <[email protected]>
10701
	* added MSX-MUSIC, code largly taken from Mitsutaka Okazaki
10702
		http://www.angel.ne.jp/~okazaki/ym2413/
10703
	  no "suspend" function yet
10704
10705
2001-10-29 Joost Yervante Damad <[email protected]>
10706
	* finished migration of CVS and mailinglists to sf.net
10707
	* thank you sourceforge team!!
10708
	* http://openmsx.sf.net
10709
10710
2001-10-27 Wouter Vermaelen <[email protected]>
10711
	* fixes, improvements to DACSound (untested)
10712
	* updated KeyClick, the "click too short" problem should be solved now
10713
	  KeyClick now uses a DACSound object to play sound, playing samples
10714
	  on KeyClick should also be possible now (untested)
10715
	* pause sound while pause emulation
10716
	* SoundDevices default now to muted after creation, fixes a race in
10717
	  Mixer::registerSound()
10718
10719
2001-10-25 Wouter Vermaelen <[email protected]>
10720
	* SoundDevices can now mute themselves, mixer doesn't ask
10721
	  for soundbuffer of muted devices
10722
	* added KeyClick support, PPI had to be made time aware for this
10723
	  doesn't work very well yet because a typical key-click-spike
10724
	  takes about 34us which is shorter than the duration of 1 sample
10725
10726
2001-10-23 Wouter Vermaelen <[email protected]>
10727
	* make DACSound compile again (doesn't work yet)
10728
	* add HotKey service
10729
	* openMSX can be paused (pause key), added to demonstrate the
10730
	  use of HotKey. Problems with current pause implementation:
10731
	    - sound must also be paused
10732
	    - realtime keeps running, so after unpausing openMSX
10733
	      tries to catch up and runs too fast for a while
10734
	* MSXKanji now supports both class 1 as class 2 Kanji
10735
	* Added MSXPrinterPort and DummyPrinterPortDevice (= no device
10736
	  connected)
10737
10738
2001-10-22 Wouter Vermaelen <[email protected]>
10739
	* Changed Mixer and SoundDevice interface (David's request).
10740
	  Now each SoundDevice must do its own buffer-managment, this gives
10741
	  more flexibility to devices like DAC's
10742
10743
2001-10-21 Wouter Vermaelen <[email protected]>
10744
	* small performance improvement in MSXZ80
10745
10746
2001-10-21 Joost Yervante Damad <[email protected]>
10747
	* added some basic conversions to MSXConfig##Device
10748
	  let me know when more are needed
10749
	* updated msxconfig.dtd to reflect soon te be added
10750
	  non-device configuration entries
10751
	* added support for non-device configuration entries
10752
	  this is not thoroughly tested, but should work
10753
10754
2001-10-19 Joost Yervante Damad <[email protected]>
10755
	* started TODO file to collect ideas/things todo
10756
10757
2001-10-19 Wouter Vermaelen <[email protected]>
10758
	* documented SoundDevice interface on David's request
10759
	* RP5C01 can now optionally sync with host-clock, but this
10760
	  limitates some functionality
10761
10762
2001-10-18 Wouter Vermaelen <[email protected]>
10763
	* implemented test register in RP5C01,
10764
	  corrected 12/24 hour mode, month-wrap-bug fixed
10765
	* RP5C01 is now emutime synced instead of realtime
10766
10767
2001-10-17 Joost Yervante Damad <[email protected]>
10768
	* added src/cfg dir for storing config file templates
10769
	* started in KeyEventInserter
10770
10771
2001-10-17 Wouter Vermaelen <[email protected]>
10772
	* made improvements to MSXRealtime
10773
	* small fixes to MemoryMapper, E6Timer
10774
	* improvements to RP5C01 (RTC)
10775
10776
2001-10-16 Wouter Vermaelen <[email protected]>
10777
	* fixed bug in Keyboard (uninitialized variable)
10778
	  and made minor performance improvement in keyGhosting
10779
	* add 1 extra waitState after each instruction
10780
	* Corrected MSXRealTime, speed is now correct. Deviation was
10781
	  caused by accumulation of rounding errors.
10782
10783
2001-10-15 Wouter Vermaelen <[email protected]>
10784
	* Scheduler can now schedule "Schedulable" objects instead of
10785
	  only MSXDevices, this is necessary for sub-device scheduling
10786
	  (e.g. counters in I8254
10787
10788
2001-10-15 Marcel Harkema <[email protected]>
10789
	* * Set the MAINTAINERCLEANFILES variable in Makefile.am files
10790
	  (for make maintainer-clean)
10791
	* * EventDistributor.hh should include <map> and not <multimap.h>
10792
	  (which is an internal header file)
10793
	* * Add {XML,SDL}_CFLAGS, {XML,SDL}_LIBS, etc. to CXXFLAGS and
10794
	  LIBS in configure.in (and remove openmsx_LDADD line from
10795
	  src/Makefile.am)
10796
	* Include <cassert>, <cstdio>, etc. instead of <assert.h>,
10797
	  <stdio.h>, .. [I might have missed some... please check your
10798
	  code]
10799
	* [patch applied by joost]
10800
10801
2001-10-14 Joost Yervante Damad <[email protected]>
10802
	* Made EmuTime printable [read streamable] for David
10803
10804
2001-10-12 Wouter Vermaelen <[email protected]>
10805
	* Simplified MSXRealTime implementation
10806
10807
2001-10-11 David Heremans <[email protected]>
10808
	* MSXTMS9928a and MSXRealTime updates
10809
10810
2001-10-08 Wouter Vermaelen <[email protected]>
10811
	* update parts of audio-buffer when registers have changed
10812
	* fixed tone generation in AY8910 (overflow in calculation)
10813
10814
2001-10-09 Joost Yervante Damad <[email protected]>
10815
	* removed all automake/autoconf utility files,
10816
	  use autogen.sh to install them locally
10817
10818
2001-10-08 Wouter Vermaelen <[email protected]>
10819
	* added a real time synchronizer (MSXRealTime)
10820
	* fixed keyGhosting bugs in Keyboard
10821
10822
2001-10-07 Wouter Vermaelen <[email protected]>
10823
	* renamed Inputs --> Keyboard
10824
	* forgot to initialize keyboard matrix
10825
	* moved method keyGhosting() from MSXPPI to Keyboard
10826
	  --> method is now only called when
10827
	        * keymatrix has changed and
10828
	        * keymatrix is read
10829
	* extended Mixer to support (pseudo)stereo
10830
10831
2001-10-05 Wouter Vermaelen <[email protected]>
10832
	* Made a very simple mixer, made AY8910 register itself as
10833
	  sound generator.
10834
10835
2001-10-03 Joost Yervante Damad <[email protected]>
10836
	* updated automake utility files
10837
10838
2001-10-03 Wouter Vermaelen <[email protected]>
10839
	* "static const int -> enum" cleanup
10840
	* Reworked EventDistributor, it is now possible to deliver events
10841
	  synchronously and asynchronously. This makes the EventDistributor
10842
	  more complex, but it eliminates locking problems in synchronous
10843
	  ( = almost all) client code.
10844
10845
2001-10-02 Wouter Vermaelen <[email protected]>
10846
	* made Philips mapper-IO behaviour
10847
	* read mapper behaviour from config file, this needed some
10848
	  restructuring in MapperIO and related classes
10849
	* Fixed TurboR ST mapperIO
10850
10851
2001-10-01 Wouter Vermaelen <[email protected]>
10852
	* Z80 converted to a C++ class, still needs cleanups
10853
	* IRQ handling cleanup
10854
10855
2001-09-30 Wouter Vermaelen <[email protected]>
10856
	* second part of Z80 cleanup
10857
10858
2001-09-27 Wouter Vermaelen <[email protected]>
10859
	* #define -> static const int   cleanup
10860
	* first part of Z80 cleanup
10861
10862
2001-09-26 Wouter Vermaelen <[email protected]>
10863
	* reimplemented Scheduler, total new algorithm
10864
	* made some changes to cpu-device's
10865
	  these need some cleanup, especially the c/c++ mix (Z80)
10866
10867
2001-09-25 Wouter Vermaelen <[email protected]>
10868
	* added locking to class EventDistributor (maybe std::multimap is
10869
	  thread-safe and no locking is necessary)
10870
	* added locking to class Mouse, there was a small race that could cause
10871
	  some mouse-movement-glitches
10872
10873
2001-09-24 Wouter Vermaelen <[email protected]>
10874
	* implemented Real Time Clock device
10875
	* implemented joystick support. Cannot be used yet since there is no
10876
	  mechanism to plug a Joystick in a joystickPort yet (dynamically nor
10877
	  statically)
10878
	* implemented mouse support. Cannot be used yet, same reason as above
10879
10880
2001-09-23 Wouter Vermaelen <[email protected]>
10881
	* made sperate thread for event handler
10882
	  other classes can ask EventDistributor to receive specific events
10883
	* adapted Inputs for new event model
10884
	* respond to SDL_QUIT event
10885
10886
2001-09-23 Joost Yervante Damad <[email protected]>
10887
	*  various small fixes
10888
	* started working on making the code work with gcc-3.0
10889
	* added autogen.sh: use to regenerate build files
10890
	* added m4/ dir for own autoconf m4 macros
10891
	* added fstream_templ.m4, since in gcc-3.0 ifstream
10892
	  is templatized on type, and .read() returns char,
10893
	  not unsigned char, soo this needs ifstream<byte> in
10894
	  openmsx, but in gcc-2.95 ifstream is not a template.
10895
	* added -fno-rtti to compile-flags since we don't use
10896
	  runtime type inspection anyway, and it increases binary size
10897
	  see also: http://gcc.gnu.org/ml/gcc-help/2000-03/msg00064.html
10898
10899
2001-09-22 Wouter Vermaelen <[email protected]>
10900
	* cleanups in most devices
10901
	* small bug fixes in some devices
10902
	* Implemented memory mapper
10903
	  all mappers share one MapperIO device
10904
	  reading from mapper ports can be customized
10905
10906
2001-09-21 Wouter Vermaelen <[email protected]>
10907
	* Z80/R800 separation cleaned up:
10908
	  only the class MSXCPU knows there are 2 CPU's, all other devices
10909
	  should talk to MSXCPU instead of MSXZ80 or MSXR800 (nor ask
10910
	  MSXMotherBoard which CPU to talk to)
10911
	  Removed some code marked as "ugly hack"
10912
	* added support for Kanji ROM
10913
	* cleanups in MSXRom16KB
10914
10915
2001-09-19 Joost Yervante Damad <[email protected]>
10916
	* various small fixes around the code
10917
	* the 16k rom still needs a C++ makeover
10918
10919
2001-09-17 Wouter Vermaelen <[email protected]>
10920
	* implemented kana/code led
10921
	* implemented joystick-ports. This is only the port, not the devices
10922
	  that can be plugged into the port (joystick, mouse, ...)
10923
	* interupt handling was seriously broken (CPU jumped to 0x38 at every
10924
	  di->ei transition even when there was no device that had raised an IRQ)
10925
	  Fixed now (I think). Also moved interrupt related methods from class
10926
	  Scheduler to class MSXMotherBoard.
10927
10928
2001-09-16 Wouter Vermaelen <[email protected]>
10929
	* implemented sound generation for PSG (code taken from xmame-0.37b)
10930
	  mixer is not finished, so you won't hear anything yet
10931
10932
2001-09-16 Joost Yervante Damad <[email protected]>
10933
	* added endian-ness check to configure.in
10934
	* removed -DLDB_FIRST, and made it dependant on
10935
	  configure result
10936
	* added sizeof long autoconf check, to make Z80.cc
10937
	  also work correctly on 64 bit and 128 bit cpu's [untested]
10938
10939
2001-09-15 Wouter Vermaelen <[email protected]>
10940
	* started implemention of MSXPSG (no sound generation yet)
10941
10942
2001-09-15 Joost Yervante Damad <[email protected]>
10943
	* reworked msxconfig.cc by using the xmlhelper
10944
	* xmlhelper is a simplified xml interface
10945
10946
2001-09-13 Joost Yervante Damad <[email protected]>
10947
	* added xmlhelper class, which I will start using
10948
	  to make xmlconfig code cleaner
10949
	* made msxconfig more standards-compliant
10950
10951
2001-09-10 Wouter Vermaelen <[email protected]>
10952
	* removed double initialization
10953
	* CPU is no longer a special case with initialization
10954
	* fixed various bugs
10955
	* made Inputs independent from MSXPPI
10956
	* implemented CAPS LED + support for all other LEDs
10957
10958
2001-09-09 Wouter Vermaelen <[email protected]>
10959
	* print more usefull debug messages
10960
	* use DummyDevice instead of the general MSXDevice for all the
10961
	  emptyDevice's
10962
	* registering SP must be done by Scheduler, not Motherboard
10963
10964
2001-09-08 Wouter Vermaelen <[email protected]>
10965
	* some fixes (yesterday discussed with Davy)
10966
10967
2001-09-06 Wouter Vermaelen <[email protected]>
10968
	* fixed a few classes to make them compile again
10969
	* made some minor addition to emutime
10970
10971
2001-09-05 Wouter Vermaelen <[email protected]>
10972
	* print debug information only if compiled for debugging
10973
10974
2001-09-05 David Heremans <[email protected]>
10975
	* sync : PPI, Z80, ...
10976
	* Z80 should be completely correct now
10977
	* started integrating SDL keys
10978
	* VDP integration Sean's code started
10979
	* subslot selecting and mainslot selecting imped
10980
	* MSXMotherboard slotlayout filled with dummy
10981
	  empty devices to avoid 0-pointers
10982
10983
2001-09-03 Wouter Vermaelen <[email protected]>
10984
	* In class Scheduler, use "set" instead of "list" or "sortedlist"
10985
	* Split MSXPPI in a MSX depended part and a reuseable 8255 part
10986
10987
2001-08-27 Wouter Vermaelen <[email protected]>
10988
	* made a more complete PPI implementation
10989
	* made new device: E6Timer (TurboR)
10990
10991
2001-08-26 Wouter Vermaelen <[email protected]>
10992
	* removed linkedlist.hh and use stl list instead
10993
	* made template SortedList and use it in Scheduler
10994
	  this compiles, but does not link yet
10995
10996
2001-08-25 Wouter Vermaelen <[email protected]>
10997
	* updated class Emutime
10998
	* make use of emutime
10999
11000
2001-08-23 Joost Yervante Damad <[email protected]>
11001
	* msxconfig: added <desc> and <rem>
11002
	* msxconfig.hh: externalized nested classes
11003
	* msxconfig: started saveFile support
11004
11005
2001-08-10 David Heremans <[email protected]>
11006
	* sync : PPI, Z80, ...
11007
11008
2001-08-09 Joost Yervante Damad <[email protected]>
11009
	* reworked msxconfig code, now more C++
11010
	* added support for multiple slotted's
11011
11012
2001-07-07 Joost Yervante Damad <[email protected]>
11013
11014
	* added class property to <parameter> tag in msxconfig
11015
	* also slightly reworked that code
11016
	* bumbed version to 0.1.1
11017
	* added SDL auto* support
11018
11019
2001-07-06 Joost Yervante Damad <[email protected]>
11020
11021
	* merge David's code in CVS
11022
	  this includes: PPI, Z80, RomDevice, Motherboard, ...
11023
11024
2001-06-26 Wouter Vermaelen <[email protected]>
11025
11026
	* more updates tex docu file
11027
11028
2001-06-23 Wouter Vermaelen <[email protected]>
11029
11030
	* more updates tex docu file
11031
11032
2001-06-23 Joost Yervante Damad <[email protected]>
11033
11034
	* finished readonly MSXConfig interface
11035
11036
2001-06-22 Joost Yervante Damad <[email protected]>
11037
11038
	* added MSXException exception base class.
11039
	* created MSXConfig exceptions
11040
	* started using them.
11041
	* make distcheck now works
11042
	* openmsx.tex is part of the dist
11043
11044
2001-06-21 Joost Yervante Damad <[email protected]>
11045
11046
	* made MSXConfig code -> this code needs serious cleaning
11047
	  later ! :)
11048
11049
2001-06-21 Wouter Vermaelen <[email protected]>
11050
11051
	* updated tex docu file
11052
11053
2001-06-20 Joost Yervante Damad <[email protected]>
11054
11055
	* initial MSXConfig interface/singleton skeleton
11056
	* first touch with libxml++
11057
	* links smoothly now with libxml++ and libxml
11058
	* !!warning!! needs libxml++ version 0.13 (debian ships with 0.10)
11059
	* see also http://lusis.org/~ari/xml++/
11060
11061
2001-06-21 Wouter Vermaelen <[email protected]>
11062
11063
	* created tex docu file
11064
11065
2001-06-19 Joost Yervante Damad <[email protected]>
11066
11067
	* added autoconf support for libxml
11068
	* added some $Id magic tags
11069
11070
2001-06-18 Joost Yervante Damad <[email protected]>
11071
11072
	* Emutime tweaks as per Wouter and David
11073
11074
2001-06-16 Joost Yervante Damad <[email protected]>
11075
11076
	* added autoconf support for libxml++
11077
	* various small tweaks
11078
11079
2001-05-06  Joost Yervante Damad <[email protected]>
11080
11081
	* made a nice and clean CVS/automake/autoconf/libtool
11082
	* restructured source
11083
	* versioned files
11084
11085
2001-05-04  David Heremans  <[email protected]>
11086
11087
	* openmsx: initial version.