$Id: ChangeLog 6294 2007-04-14 20:05:58Z mthuurne $ 2007-04-15 Maarten ter Huurne * Released openmsx-0.6.2. 2007-04-12 Manuel Bilderbeek * Fix for MSX1 VDP's: on these VDP's the VRAM pointer is always updated when writing to the VDP registers. Fixes some MSX1 demos like Planet of the Epas. 2007-03-23 Manuel Bilderbeek * Integrated David's new commands.html into the manuals. Thanks for converting it! * Removed commands.txt and references to it. * Get rid of in-manual revision history. 2007-03-22 Maarten ter Huurne * Universal binary support for Mac OS X: make staticbindist OPENMSX_TARGET_CPU=univ There are probably still some issues left, but the infrastructure for building universal binaries is now complete. Thanks a lot to BouKiCHi for providing the scripts on which this universal binary support is based. 2007-03-15 Manuel Bilderbeek * Added Al-Alamiah AX170 (prevously added Yamaha AX350II). - NOTE: it is not certain if these configs are correct and I have not been able to verify the ROM dumps. They are added only to have some working Arabic machines, do not use them for compatibility testing or something. (Have fun!) 2007-03-03 Wouter Vermaelen * Force a FormFeed when a printer is unplugged * Better algorithm to calculate framerate for avi recording: - measure time between two recorded frames instead of two frames from before recording started. - old method could go wrong when minframeskip != maxframeskip 2007-02-28 Manuel Bilderbeek * Fixed a bug in the tabCompletion of the enable command. * Added a small help for the enable command, pointing to a new documentation file: doc/openmsx-control-xml.txt. This text explains the protocol used for external communication (CliComm). * Removed deprecated update types (deprecated in openMSX 0.6.1, but they were not used by any external application we know about): break and resume. 2007-02-24 Wouter Vermaelen * Fixed(?) data corruption when using 'diskmanipulator import': - I had no idea were in the code the bug was, so i started doing clanups/simplifications till I understood the code again and found the bug. - Turned out the dirty status of the FAT chache was not set correctly by the writeFAT() method. - Another bug happened when a there is not enough free space left on the disk to completely import a file: the file was imported as far as ossible, the FAT was updated, but not the directory entry. 2007-02-20 Wouter Vermaelen * Fixed hang in altparty demo: - Demo polls FH bit in VDP status reg S#1. but when line interrupt register has value 229 this went wrong. Reason is that for this line the duration of FH=1 is partly in the current and partly in the next frame. Old implementation only set FH=1 in the current frame. 2007-02-19 Wouter Vermaelen * Fixed SDLGL-PP simple scaler factor=1 deinterlace mode: - in the previous implementation this caused a (floating-point) division by zero. This could give strange results. - Now we disable scanlines when there are more lines in the input than in the output. This is also how it works in the SDL renderer * Fixed bug in switching between Z80/R800: - switching _very_ fast (by OTIR) between Z80/R800 triggered an assert that time goes backwards! - problem was that we record the switch time at the moment the OUT is executed and then still finish the rest of the instruction. So there is a slight moment in emutime that both CPUs are executing. - solved by only switching between two instructions 2007-02-12 Wouter Vermaelen * Fixed assert on exit when a (real) joystick was still plugged * Small Z80 fixes: - timing of LD DP,{HL,IX,IY} was two cycles too short - number of M-cycles (and thus also timing) of instructions with multiple prefixes (like DD CB xx xx or DD DD DD xx) was wrong - off by one error in high part of 16-bit port number in ini/ind/outi/outd instructions (complete bc register is put on the address bus) b register was decremented too soon or too late 2007-02-12 Wouter Vermaelen * No longer include playball samples as data in the source code: - instead read them as 15 wav files in share/playball/playball_0.wav ... share/playball/playball_14.wav 2007-02-11 Wouter Vermaelen * Set version=0.6.2-pre1, release_flag=true 2007-02-08 Wouter Vermaelen * Implemented proper resample algorithm for SCC: - does not introduce aliassing (graph+9 in solid snake sound test works properly now) - because there is no seperate filter anymore, those filter characteristics based on Sean's measurements are gone. Need to investigate this, because it was not clear whether this extra filter improved sound quality 2007-02-05 Wouter Vermaelen * SCC filter fixes: - wasn't correct when there were multiple SCC cartridges - replaced FIR filter with a cheaper one that also matches Sean's measurements - it's still not alias free, but fixing this requires a whole new approach * Added interruptable sleep() method in EventDistributor: - sleeps for a given amount of time or till a event gets posted - used in the Reactor mainloop (e.g. when emulation is paused/breaked). Should improve response time in the debugger 2007-02-02 Wouter Vermaelen * Allow case insensitive tabcomplition in Tcl scripts: - requires a make install - changed newtrainers.tcl and cpuregs.tcl scripts to use this, maybe it's useful for others as well 2007-01-30 Wouter Vermaelen * Replaced filter in SCC code: - used 4x oversampling + low pass FIR filter - still WIP 2007-01-30 Manuel Bilderbeek * Added Sony HBD-50 disk drive extension (with proper FDC mirroring) 2007-01-27 Wouter Vermaelen * Fixed mirroring of FDC registers in NMS 8250/8255/8280: FDC registers are mirrored in all 4 pages, rom only in page 1 * Added comment in NMS 8245 config: FDC registers are mirrored in page 1/2, rom only in page 1 It was already implemented like this 2007-01-28 Manuel Bilderbeek * Implemented mirroring of subROM in all pages on Philips NMS 8250 (and derivatives)... TODO: find out which other machines have this. 2007-01-27 Wouter Vermaelen * Removed enum setting info topics: code was already commented out (see 2006-11-04) 2007-01-26 Wouter Vermaelen * Make FilePool return a File object iso a filename: - (g)zipped files won't be decompressed twice this way 2007-01-24 Wouter Vermaelen * Added FrameBufferObject utility class: - was part of an experiment to implement a fully shader based hq(lite) scaler (current one is still partly done by CPU). This needs some more work, but the FrameBufferObject part is already useable. 2007-01-23 Wouter Vermaelen * Fixed bug in SCC: volume of 5th SCC channel could be wrong right after waveform was updated (e.g. audible in Quarth) 2007-01-19 Wouter Vermaelen * Fixed PSG noise frequency 2007-01-16 Arnold Metselaar * Print warning if bit 0 of VDP register 9 is set to one; on a real MSX2 this causes the screen to go black and the computer to freeze. - closes [ 1354347 ]. 2007-01-13 Wouter Vermaelen * Synchronized TC8566AF code with blueMSX version: - seems to fix [ 1630933 ] "Formatting on turboR goes wrong when not booting with a disk". 2007-01-11 Wouter Vermaelen * Reimplemented 'soundlog' command as a Tcl script 2007-01-10 Wouter Vermaelen * Extended the record command to optionally record only audio or video: - 'record start' accepts two new flags: -noaudio and -novideo - the soundlog command is obsolete now 2007-01-09 Wouter Vermaelen * Improved 'record' command: - syntax is very similar to the 'soundlog' command, see 'help record' - in the future the record and soundlog command might be merged, with an option to select recording audio/video/both * Implemented gfx9000 video recording: - active videosource ('videosource' setting) now gets recorded 2007-01-08 Wouter Vermaelen * Avi recording fixes: - no longer require that V9938 has the exact name "VDP" in machine hardwareconfig.xml file - print warning when a change in framerate/samplerate is detected during recording - fixed bug in conversion routine while recording in 16bpp mode - during recording frameskip is kept constant at minframeskip, thus for example with minframeskip=1 you can record movies with 25/30fps instead of the usual 50/60fps 2007-01-05 Wouter Vermaelen * Implemented experimental video recording: - still very much work in progress, but for simple cases it should already work - user interface is still VERY primitive: the 'record' command starts recording to 'test.avi' and only stops when openmsx is exited - changing between PAL/NTSC during recording doesn't work yet - changing sound sample freq during recording doesn't work yet - recording is not possible (yet?) with SDLGL renderer - generated avi file uses the ZMBV codec (same as used in dosbox) this codec is well suited for video-game like gfx and allows real-time encoding on not too old machines. On my 3-year old system i can do real-time recording of simple games, but I can't record sphere in real-time (due to moonsound emulation??) - the ZMBV codec is not very common. In mplayer (linux/windows) can handle it, VLC version 0.8.6 not yet (development version can). For windows you need to install zmbv.dll, but note that there is a faulty zmbv.dll that can only play 8bpp (openMSX movies are 16bpp or 32bpp). - doesn't play well with frameskip yet, as a temporary workaround you can set maxframekip=0 for now 2007-01-05 Wouter Vermaelen * Use PBO for faster texture upload in GLPostProcessor: - depending on the system this is only a small (1%) or a big (10%) speedup - when PBOs are not supported we still use the old code 2006-12-30 Wouter Vermaelen * Use Pixel Buffer Objects (PBO) for faster texture upload in GLHQScaler and GLHQLiteScaler: - 'Space Manbow'-test is about 10% faster here, using hqlite2x 2006-12-29 Wouter Vermaelen * Various VDPCmdEngine related optimizations: - in VDPVRAM: only track time in DEBUG mode no need to notify bitmapCacheWindow and nameTable in VDPCmdEngine: use Clock::fastAdd - between 2% and 3% faster in vdp-copy-intensive MSX software (I tested Space Manbow intro demo) 2006-12-27 Wouter Vermaelen * Optimized inner CPU emulation loop: - there were 3 tests per instruction, reduced that to just 1 - total emulation is about 3% faster in Space Manbow test 2006-12-23 Wouter Vermaelen * Try to upload larger texture blocks at once in GLPostProcessor (was one line at a time): - I measured upto 15% speedup (scale_algo=simple scale_factor=2) * Use array arithmetic iso pointer arithmetic in BitmapConverter: - can be better optimized by gcc (and compilers in general) - though, impact on total emulation time is not that big. I measured about 1% speedup 2006-12-22 Wouter Vermaelen * Removed charDisplayCache and bitmapDisplayCache from SDLRasterizer: - I measured around 5% speedup in screen5, around 20%(!) in screen0/80 * Make TC8566AF use the correct filler byte during format: fix copied from blueMSX 2006-12-18 Wouter Vermaelen * The -Wparentheses warning is now also enabled in c++ mode in recent gcc versions (4.3 SVN version). This for example warns when parentheses are omitted in places were people often are mistaken about operator precedence. And guess what .. openMSX got it wrong in a couple of places. In other places I just added extra parentheses to silence the warnings. 2006-12-17 Wouter Vermaelen * VDP code cleanup: Changed users of VDPVRAM::readArea() and VDPVRAM::readAreaIndex() to use VDPVRAM::getReadArea(). This method is safer to use, it also simplifies the code a bit (IMHO). 2006-12-16 Wouter Vermaelen * Fixed VDP bug introduced at 2006-11-18, s#0 was completely cleared upon read, only bit 7 must be cleared: - fixes VDP detection in sudoku.rom * Added intro text in openMSX console * Removed dirty checks from CharacterConverter * Added VDPVRAM::getReadArea() and use it to optimize CharacterConverter * Optimized CharacterConverter::renderText2: see comments in code 2006-12-14 Wouter Vermaelen * Refactored sound code: _ Should only affect SDL sound driver - Never generate samples from the audio thread: In case of buffer-underrun we used to still generate the missing samples from the audio thread. This helped sound quality a little bit when CPU usage is very irregular. Unfortunately this also introduces a lot of threading problems (race conditions). So removed this completely, it also simplifies the code quite a bit. - Fixed a potential out-of-boundary buffer access. - Fixed bug in sound-genration-timing to real-time tuning algorithm. On some systems this caused a floating point exception. 2006-12-11 Arnold Metselaar * src/sound/SDLSoundDriver.cc: ensure the left argument to % is positive, fixes distorted sound and floating point exceptions. 2006-12-11 Wouter Vermaelen * Implmented end-of-tape detection: - was implemented by Manuel, I only fixed a remaining bug - when end of tape is reached, the CassettePlayer goes to STOP state - main motivation for this feature is to avaod staying in 'full throttle' mode after loading (in cases were the cassette motor is not automatically stopped) * Fixed crash related to proxy settings and machine switching: - e.g. 'openmsx_info setting ' would still use the setting object that belonged to the destroyed machine 2006-12-09 Wouter Vermaelen * Fixed explicit (global) namespace qualification on proxy settings: - proxy setting here means a machine specific setting that's for convenience mirrored in the global namespace - the toggle/cycle commands triggered this problem 2006-11-29 Wouter Vermaelen * Changed memset and memset2 from functions into functors: - Compilation was broken recently on system were GLuint != unsigned. To fix this we need template specialization. But templatized functions cannot be specialized. 2006-11-28 Wouter Vermaelen * Split Cassetteplayer in Cassetteplayer and CassetteplayerCLI 2006-11-27 Wouter Vermaelen * Fixed auto-run-cas-file: - type command got executed twice when a cas file was inserted via the commandline. Could also happen when two cas insert commands were given when openmsx is paused. 2006-11-25 Wouter Vermaelen * SDLGL-PP renderer speedup: - Upload textures in BGRA format (was RGBA). See this paper: http://download.nvidia.com/developer/Papers/2005/Fast_Texture_Transfers/Fast_Texture_Transfers.pdf On nvidia cards this is faster, most likely on ATI cards as well - I measured between 3% and 5% speedup (total simulation time) 2006-11-22 Manuel Bilderbeek * Added Philips NMS 801 "MSX Compatible". Thanks to the blueMSX team. 2006-11-22 Wouter Vermaelen * Another SDLGL-PP hqlite optimization, openGL shader part this time: - Before this change we sampled the color texture three times (to get texels C4, C5 and C6) and blended these these three colors each with a certain weight. The weight for the outer two pixels is never non-zero for both at the same time. So we can as well sample the color texture only once and make use of the HW texture color interpolation. 2006-11-20 Wouter Vermaelen * Added missing line width conversions in FrameSource: - fixes crash in Gfx9000 parts of calculus with SDLGL-PP renderer * Use optimized memset function in V99990P{1,2}Convertor: - only a little faster though 2006-11-19 Manuel Bilderbeek * Print originality status for ROM dumps in the database. Rationale: see e-mail on openmsx-devel of today. 2006-11-18 Wouter Vermaelen * fixed [1188517] Dragon Quest II intro logo corrupted: - We had this comment in our code According to TMS9918.pdf 5th [or 9th] sprite detection is only active when F flag is zero. but there was a bug in the actual implementation. Dragon Quest 2 needs this. - Bug was caused by splitting storage of VDP status register 0 over VDP and SpriteChecker class. Now S#0 is stored in VDP and SpriteChecker uses get/set methods to access the sprite related bits. 2006-11-16 Wouter Vermaelen * Speedup SDLGL-PP simple scaler: - taking the average of two pixels and multiplying that with a constant is the same as summing the two pixels and multiplying by that contant/2. - 7% faster here (in 4x) 2006-11-15 Wouter Vermaelen * Optimized SDLGL-PP hq scaler: - used same tricks as the hqlite scaler (see 2006-11-14) - share more code between SDLGL-PP hq and hqlite scaler * Optimized hq edge calculation: - applies for both SDL and SDLGL-PP hq scaler - another 3% speedup for SDLGL-PP hq (only measured this one) 2006-11-14 Wouter Vermaelen * Optimized SDLGL-PP hqlite scaler: - optimized edge-bits calculation: - change position of the bits so that it's easier (less shifts) to reuse bits from the left and top neighbour - calculate two pixels at once using 32-bit (iso 16-bit) bit manipulations - I measured 25% speedup on my system (for 2x and 3x because these are CPU limited, 4x is GPU limited here) - TODO: a similar optimization is possible for SDLGL-PP hq and SDL hq/hqlite. Although there the speed improvent might not be as big * Added 'test_machine' command (see 'help test_machine'): - initial version, details on how success/failure is reported can still change 2006-11-10 Wouter Vermaelen * Applied pimple-idiom to MSXMotherboard: - will require less recompilations in the future: no longer when there are changes to private member variables or functions 2006-11-09 Wouter Vermaelen * Added machine add/remove/select clicomm update * Extended 'machine' command: - without parameters it returns the handle of the current machine - on a successful machine switch it also returns the handle * Added 'machine_info config_name': - returns the configuartion name for the specified machine, the config name is the name that should be used in the 'machine' command to switch machine 2006-11-08 Wouter Vermaelen * Implemented watchpoint regions: see doc/commands.txt or 'help debug set_watchpoint' 2006-11-06 Wouter Vermaelen * Split CliComm in machine specific and global part: - machine specific update events now have an extra 'machine' attribute (e.g. add) * Manage disk/hd/cd names per machine iso globally 2006-11-04 Wouter Vermaelen * TODO temporarily disabled enum setting info topics: see comment in EnumSetting.hh * Moved 'machines' and 'extensions' info topics from MSXMotherboard to Reactor * Shared MSXDevice state should be shared per MSX machine, not shared globally: for the moment only fixed MSXMemoryMapper and Printer * Renamed 'machine' setting to 'default_machine' and create a new 'machine' command to actually switch to a new MSX machine * While switching MSX machine, first create the new machine and only if that succeeded delete the old machine 2006-11-02 Wouter Vermaelen * Put machine specific commands and settings in a machine specific namespace. There is also a corresponding command/setting in the global namespace that delegates to the current machine: - preparation for cleaner run-time switchable machine and run-time machine checker - setting code should be refactored one day, it's rather complicated now 2006-11-01 Manuel Bilderbeek * Send CliComm events for CD and HD changes. * Report full name including path for CD and HD images. 2006-10-30 Joost Yervante Damad * fix support for kfreebsd, "kfreebsd" was detected wrongly as "freebsd" causing build failure 2006-10-26 Arnold Metselaar * Unified advram-p and advram-s to a single advram, - use "?0" to specify: subslot "0" if expanded, - src/CartridgeSlotManager.cc: parse "?0", - src/MSXDevice.cc, src/config/HardwareConfig.cc: handle the case of "?0", - TODO: get rid of the special values for slot numbers. 2006-10-25 Manuel Bilderbeek * Restructured media-related commands: - basic idea: all media have the same command structure: + mediacommand subcommand arguments + default subcommand is 'insert', which can thus be omitted - if you want to insert a medium with the name of a subcommand, just use the insert subcommand first, e.g.: diska insert insert - Corrected help and documentation a bit and optimized completion a bit - TODO: completion can be made a lot tighter, still - commands are still (practically) 100% backwards compatible 2006-10-18 Joost Yervante Damad * fix from BouKiCHi for install-recursive.sh * make MMX and SSE code also work on AMD64 2006-10-18 Wouter Vermaelen * Split Mixer in a global Mixer part and a per machine MSXMixer part: - when there are (temporarily) multiple machines in memory, each machine has a MSXMixer while there is still only one Mixer (that loads the actual sound driver) 2006-10-13 Wouter Vermaelen * Removed JoyNet: - it didn't work (on practical speeds) anyway * Split CommandController in MSXCommandController (machine specfic) and GlobalCommandController (and an abstract base class): - changed code to use the approriate class, but ATM both still do exactly the same 2006-10-13 Wouter Vermaelen * Split openmsx_info topics in two: - machine specific topics are moved to a new machine_info command - general topics remain in openmsx_info - for backwards compatibility the machine specific topics also remain in openmsx_info for one or two releases, but they generate a warning - openmsx_info is also deprecated, prefer to use openmsx_info setting (already existed) - adjusted Tcl scripts to use the new commands 2006-10-12 Maarten ter Huurne * Integrated Windows resource support: stores icon and version info in the executable patch was made by Albert and Manuel, based on wx Catapult build 2006-10-12 Wouter Vermaelen * Preparation to separate command registration from CommandController (is itself a preparation to allow multiple machines in memory): - moved tabcompletion code from CommandController to Completer * Print possibilities for tab completion in multiple columns, especially useful with all the trainer_** procs ;) 2006-10-10 Manuel Bilderbeek * Renamed FileManipulator to DiskManipulator (classes/filenames) 2006-10-09 Manuel Bilderbeek * Fix crash when uninitialized disk image was used. TODO: check limits more accurately (now only checked for 0) TODO: separate partition selection from boot sector parsing 2006-10-05 Wouter Vermaelen * Various changes to reduce #include dependencies 2006-10-04 Joost Damad * remove bashisms from build/install-recursive.sh * debian/ updates 2006-10-02 Wouter Vermaelen * Empty the sound buffer in the SDL sound driver after a mute/unmute * Make 'after' command part of Reactor iso MSXMotherboard: - after events are now kept over a machine switch - added two new after events: 'boot' and 'machine_switch' * Extended autoplug.tcl: - also auto plug the cassetteplayer after a machine switch 2006-10-01 Wouter Vermaelen * Fixed race condition: - was easy to trigger on a dual core CPU - shared_ptr is not thread safe on it's own, see comments in EventDistributor 2006-09-30 Manuel Bilderbeek * Send an event when the cassetteplayer is added/removed. 2006-09-30 Joost Damad * build on arm with optimizations again * add flavour opt-debug, useful when searching bugs that only occur on optimized binaries 2006-09-30 Wouter Vermaelen * Optimized V9990 P1 mode rendering: - WIP sprite rendering can still be optimized a lot - also optimized sprite rendering * Optimized V9990 P2 mode rendering 2006-09-29 Maarten ter Huurne * Reset loading state if a disk drive or cassette player is destructed. 2006-09-28 Manuel Bilderbeek * Added BOOT event to be able to do autoRun on cassettes at every boot. Also needed for Catapult (would otherwise only work once). 2006-09-25 Wouter Vermaelen * Added support for (recursive) subdirectories in RomPool 2006-09-23 Wouter Vermaelen * Implemented PlayBall mapper type * Only flush DiskManipulator FAT cache when there were actual writes: - fixes a strange error that doing 'diskmanipulator dir diska' on a read-only disk gives a write(!) error * Detect invalid PPI mode selection and print a warning when an unimplemted mode is selected: - those other modes are not that easy to implement and they anyway will just hang your MSX 2006-09-22 Manuel Bilderbeek * Save firmwareswitch position with persistent data 2006-09-22 Wouter Vermaelen * Made Command's also Recordable (was only SimpleCommand's) * record 'debug write' commands: - record/replay now also works when trainers are used 2006-09-21 Wouter Vermaelen * Made 'hda', 'cda', 'type', 'keymatrixup' and 'keymatrixdown' commands recorded * Changed format of event recorder to also allow ':' characters in recorded commands 2006-09-20 Manuel Bilderbeek * Removed SDLGL2 (superseded by SDLGL-PP), as requested by Wouter 2006-09-20 Wouter Vermaelen * Added RecordedCommand class to make recording certian commands easier. TODO refactor previous recordable commands to use this mechanism * made 'reset', 'ext', 'cart', 'cart' and 'remove_extension' commands recordable. * Reimplemented 'plug', 'unplug' and 'cassetteplayer' commands as RecordedCommand's 2006-09-19 Wouter Vermaelen * Refactored (un)plug and media changed events to MSXCommandEvent * Use MSXCommandEvent for cassetteplayer command 2006-09-18 Wouter Vermaelen * Use events for (un)plug command: makes (un)plug recordable * use events for disk changing: TODO: - do the same for cassetteplayer - use different string representation for events because at the moment the paths can't contain ':' characters 2006-09-16 Wouter Vermaelen * Added 'extensions' and 'machines' info topics * Extended these two info topics to also return the meta info when a specific extension/machine is given as 3th argument 2006-09-16 Manuel Bilderbeek * Added MSXEventRecorder/Replayer: - you can record and replay with the command line options, which require a filename argument 2006-09-15 Wouter Vermaelen * Fixed deinterlace for V9990: - force two consecutive frames (non-skipped frames) in deinterlace mode 2006-09-14 Wouter Vermaelen * Fixed V9990 cursor Y position in overscan modes: - in overscan modes the cursor position is still specified with the same coordinate system as non-overscan modes (while the display line coord system has shifted up) 2006-09-12 Wouter Vermaelen * Fixed Y8950 sample ram reads: - first 2 reads from sample RAM return bogus values. This behaviour was implemented, but it has a bug and returned only one bogus value :( - fixes sample RAM detection in 'Almost Real' 2006-09-11 Maarten ter Huurne * Send an event over the control connection when a disk drive is added or removed. Can be used by Catapult to update the list of drives. 2006-09-11 Wouter Vermaelen * Fixed AUDIO in 'Thunderbirds are Go': - 'Thunderbirds are Go' sets the Music Module General Purpose pin 3 as output without specifying a value for that pin. By luck(?) in that case on a real machine the value is '1' while in openMSX it was '0' before this fix. * Forgot to sync V9990CmdEngine: - fixes regression in blox 2006-09-07 Wouter Vermaelen * Fixed bug in removing IO watchpoints * Improved help-text / tabcompletion for the debug command * Changed checked_cast implementation so that it also works on older compilers (gcc-3.4 and below) 2006-09-06 Wouter Vermaelen * Split UserInputEventDistributor in 3: EventTranslator, EventDelay and MSXEventDistributor * Automatically unpause after a power off/on cycle: solves a bug, but this behaviour also makes more sense * Made MSXEventDistributor EmuTime aware: needed later for event recording 2006-09-02 Wouter Vermaelen * Added priorities to event listeners, higher priority listeners can block events for lower priority listeners: - fixes the problem that hotkey bindings are still visible in BASIC 2006-09-02 Joost Damad * simplify arm CXXFLAGS; fix m68k build; override in cpu-xxx.mk doesn't work 2006-08-31 Joost Damad * do not do -finline-functions on arm as current gcc generates faulty code 2006-08-31 Manuel Bilderbeek * Added MEDIA update event for cart-commands 2006-08-30 Wouter Vermaelen * Added checked_cast and shared_ptr utility classes * Pass events around by shared_ptr (avoids making a polymorphic copy) * Added Event::toString() to print events and InputEventFactory::createInputEvent(string) to parse events * Added Event::operator<() (to store events in maps) * Extended HotKey class (name is not 100% accurate anymore) to also handle joystick/mouse-button and focus events: examples: bind focus:0 { set pause on } bind focus:1 { set pause off } bind mouse:button8:down { toggle throttle } bind mouse:button8:up { toggle throttle } 2006-08-23 Maarten ter Huurne * If default machine is broken (for example because of missing system ROMs), fall back to C-BIOS config. This makes sure openMSX will start up, allowing the user to select a different default machine on the openMSX console. 2006-08-22 Wouter Vermaelen * Enable detection of more openGL extensions with glew: - see comments in SDLGLVisibleSurface for details - might fix the problem PingPong is seeing: accoring to 'glewinfo' framebuffer_objects are support on his card, but not so according to openMSX 2006-08-15 Wouter Vermaelen * Use 2D textures iso 3D to work around bug in ATI drivers 2006-08-14 Wouter Vermaelen * Transform texture coordinates from (N x N x 4096) to 32N x N x 128 because some gfx cards can't handle that big dimensions 2006-08-12 Wouter Vermaelen * Implemented hq as a OpenGL 2.0 shader * Use external data files in GLHQScaler and GLHQLiteScaler: - work around limitation in MSYS assembler(?): Assembler messages: Warning: .stabs: description field '11004' too big, try a different debug format 2006-08-10 Wouter Vermaelen * Implemented hqlite as a OpenGL 2.0 shader: supports 2x 3x 4x only 256 pixel wide, non-interlaced MSX screens 2006-08-09 Wouter Vermaelen * Fixed VDPCmdEngine status register 8 and 9: - implemented by Alex Wulms - status registers 8/9 are documented to return the result of a SRCH command. However they simply return the value of the internal 'ASX' register. In the end this register does contain the result of a SRCH command, but it is also updated during the SRCH command and even during completely different commands. 2006-08-08 Wouter Vermaelen * Fixed indeterministic behaviour in CPU emulation: CPU could react one instruction too late to an IRQ, depending on which other sync points there are (see comments in CPUCore.cc for more details) 2006-08-05 Wouter Vermaelen * write printed pages to "dot-matrix" director (like screenshots dir) * made printer image resolution a setting: between 150dpi and 1200dpi. Default (300dpi) is a compromise between quality and imagesize/speed 2006-08-04 Wouter Vermaelen * Added Dot Matrix Printer Emulation: code mostly taken from blueMSX 2006-07-31 Joost Damad * add support for powerpc64: ppc64 cpu and flavour * compile with -O1 on m68k by default 2006-07-30 Maarten ter Huurne * Released openmsx-0.6.1. 2006-07-28 Manuel Bilderbeek * Escape strings before sending them to TCL's splitList, fixes diskmanipulator with spaces in file names * And reverted again. This breaks splitting completely. Needs a better fix, but it's not trivial. 2006-07-21 Wouter Vermaelen * Fixed loading of keybindings 2006-07-20 Wouter Vermaelen * Implemented 'Removable media status notification feature set' for IDECDROM, slightly improved 'request sense' command: reading from CDROM (also when switching ISO images) seems to work now, although there may still be a problem with the volume id * Set version_number=0.6.1, release_tag=true 2006-07-17 Wouter Vermaelen * Reenabled saving of keybindings: on exit when save_settings_on_exit is enabled or when explicity requested * Fixed saving of 'renderer' setting: when save_settings_on_exit was enabled there were two problems: - after testconfig run, renderer=none was saved in settings.xml. Fixed by introducing 'unsaveable' values on Setting - every other run the value would fallback to 'SDL'. For the renderer setting we made the default value equal to the saved value (needed for the 'unset renderer' command executed by catapult) and settings with default value don't get saved. Fixed by having a seperate default and restore value. 2006-07-14 Wouter Vermaelen * Don't assert when multiple Panasonic MSX-Audio's are inserted 2006-07-13 Wouter Vermaelen * Exit the CliServer listener thread in a more portable way 2006-07-12 Wouter Vermaelen * Don't listen for incomming connections in -testconfig mode * Split RomInfo in RomInfo and RomDatabase: - allowed to fix RomInfo memory leaks 2006-07-10 Wouter Vermaelen * Implemented proper locking for Reactor::motherBoard 2006-07-08 Wouter Vermaelen * Fixed top-border flicker in cbios/SDLGL: - CPU loop was exit'ed only one instruction after the exit-loop request. Normally this doesn't matter (Schedule points are still executed cycle accurate). But for _very_ long instructions, like the way we implemented the HALT instruction, and the repaint event it did matter. * Fixed(?) the undocumented TMS9918 mode1q: - I didn't test this (i don't have a test prog) but the old code had obvious bugs, I fixed those 2006-07-07 Wouter Vermaelen * Implemented general purpose IO mechanism for Y8950: - implemented for Philips Music Module, Panasonic MSX-AUDIO, still have to investigate Toshiba module 2006-07-05 Wouter Vermaelen * Fallback to SDL renderer when switching renderer didn't succeed (e.g. when switching to SDLGL-PP without ogl2 support) 2006-07-03 Wouter Vermaelen * Added lighting for 3d display deform: Corners (especially top corners) are now a bit darker then the middle-lower part. The effect is subtle but it looks more realistic IMHO. I couldn't measure any speed difference with or without lighting, so it's enabled by default 2006-06-29 Wouter Vermaelen * Renamed 'monitor_effect' setting to 'display_deform' * Fixed GLSnow effect for non 2x scale factors 2006-06-28 Wouter Vermaelen * Implemented 'horizontal stretch' for SDLGL-PP: - is another enum of the monitor_effect setting (rename this?) - the 3D monitor effect always has horizontal stretch applied * Only enable SDLGL-PP renderer when OpenGL-2.0 is available * Moved SDLGL2 to 'non-release-only' status (like SDLGL-FB) 2006-06-27 Wouter Vermaelen * Implemented blur and scanlines for SDLGL-PP simple scaler * Implemented FMPAC SRAM disable bit (bit4 address 0x7FF6): Thanks to BiFiMSX for investigating this 2006-06-25 Wouter Vermaelen * Made "monitor_effect" an enum setting (suggestions for a better name are welcome). Made normal (non-3d) the default. Fixed a bug when started openmsx is started in normal mode. 2006-06-24 Wouter Vermaelen * Implemented 3D monitor effect for SDLGL-PP renderer * Enabled glow setting for SDLGL-PP 2006-06-22 Wouter Vermaelen * Various RTC (RP5C01) test mode fixes: - r#14 bits 0-3 are for seconds, minutes, days, years - in test mode there is no carry from 'lower order' number - test mode also works when timer itself is disabled 2006-06-20 Wouter Vermaelen * Switched to non_power_of_two textures instead of texture_rectangle in SDLGL-PP renderer: - ATI cards don't support text_rect in GLSL, but npot text should work - for GeForce5 class HW this change is bad because it has no hw support for npot textures while it has for text_rect 2006-06-19 Wouter Vermaelen * Made rectangle_textures available on correct resolution on vertical linewidth borders: - fixes most SDLGL-PP glitches - TODO cleanup, make it work on ATI cards 2006-06-18 Wouter Vermaelen * Use texture_rectangle for SDLGL-PP shader: - allows to fix the border glitches - still WIP but horizontal glitches seem to be fixed already 2006-06-17 Wouter Vermaelen * Added generic register logger (see also psg_log script): - typical use case will be to log soundchip registers - can also playback the logged regsiters 2006-06-15 Wouter Vermaelen * Implemented all HQ scalers for the extra gfx9000 resolutions 2006-06-14 Wouter Vermaelen * Refactored HQ scalers to reduce code duplication 2006-06-13 Wouter Vermaelen * Speedup hq3x (same technique as used in hq2x): between 3% and 5% faster on my machine * Speedup hq3xlite: between 2% and 3% faster * Implemented hq3x and hq3xlite for 512-wide mode: no special implementation like in the hq2x case, just do hq3x followed by scale_2on1 2006-06-08 Wouter Vermaelen * Fixed HQ2xScaler-1x1to2x2.nn data (bug in generator script) * Improved quality of hq2x in 512 pixel wide modes (screen 7) * Speedup hq2xlite (~5%) by using the same technique as used in HQ2xScaler * Improved quality of hq2xlite in 512 pixel wide modes (screen 7) 2006-06-05 Wouter Vermaelen * Mask unwritable bits in V9990 registers: fixes 'shocky' scroll in some power basic demos * fixed "openmsx_info isexternalslot" command: guess_title script now works again * Oops! Socket code couldn't handle multiple simultaneous connections (or two single connections quickly after each other). 2006-06-03 Wouter Vermaelen * Only lower part of AY scroll register resets scanline position: fixes GEM08 * Implemented priority control for V9990 P1 mode 2006-06-02 Wouter Vermaelen * Fixed bug in V9990 blank screen behaviour 2006-06-01 Wouter Vermaelen * V9990 P1 mode does not have the strange screenplit behaviour (see 2006-05-29) 2006-05-31 Wouter Vermaelen * Implemented 'cd' command to change ISO image * Implemented -cda command line option * Fixed V9990 commands in P1 mode: Actually I just tried something and it seems to work very well (it fixes a lot of stuff). Still need to figure out exactly how the coordinate system maps the VRAM addresses in P1 mode 2006-05-31 Maarten ter Huurne * Initial support for sector loading from CD-ROM. Still missing: - commands to change the ISO image - setting the right status flags when a CD is inserted / not inserted / changed for another CD - correct calculation of packet size - audio track support * Implemented Read Native Max Address so SymbOS can access the HD. Thanks to Daniel Vik for telling us this command was the problem. 2006-05-30 Wouter Vermaelen * Fixed assert when switching scale_factor from 3->2 when openmsx was paused. 2006-05-29 Wouter Vermaelen * Fixed vertical rolling at 256 line (is normmaly 512) for V9990 P1 and P2 modes * Fixed vertical offset in V9990 when vertical scroll register is changed on a screensplit 2006-05-28 Wouter Vermaelen * Fixed striped screen 6 borders in SDLRasterizer 2006-05-27 Wouter Vermaelen * Fixed sprite disable for V9990 P1 and P2 modes * IDEHD no longer resizes an existing HD image, the tag is now only used to create the initial HD image * IDEHD now knows its own name (preparation for dynamic hd image) * Changed naming scheme for HDs: just give letters in order (not interface master/slave) this is more similar to how disks are given names and it also allows to give more logical names to cdroms (future) * Implemented 'hd' command to change HD images at-run-time (only works when MSX is powered down) * Added -hda command line option 2006-05-26 Manuel Bilderbeek * Specify the type of PSG for those machines we know this for sure 2006-05-25 Wouter Vermaelen * Use EventDistributor iso Scheduler for MidiInNative, MidiInReader and RS232Tester * Don't use Scheduler to exit the CPU loop * Removed ASAP from Scheduler 2006-05-24 Wouter Vermaelen * Implemented sprites in V9990 P2 mode (can still be optimized) 2006-05-22 Wouter Vermaelen * Implemented differences between AY8910 and YM2149 (two PSG variations): - add AY8910 or YM2149 in the tag in hardwareconfig.xml Default remains AY8910 2006-05-21 Maarten ter Huurne * Split IDEHD into generic part (new class AbstractIDEDevice) and HD specific part (class IDEHD). * Initial implementation of CD-ROM emulation. The only things it can do right now is convince the Sunrise BIOS that it is a CD-ROM and print some debug info about ATAPI commands. * Included a CD-ROM drive in the "ide" extension. 2006-05-20 Manuel Bilderbeek * Added Spectravideo SVI-738 machine 2006-05-20 Wouter Vermaelen * Implemented V99x8 with only 16kb VRAM * More robust error handling in rs232-tester 2006-05-06 Wouter Vermaelen * Implemented ninja-tap: Thanks to BiFiMSX for disassembling the test program 2006-04-30 Wouter Vermaelen * Disabled ninja-tap device because it doesn't work yet: ATM it acts the same as the 'normal' joytap device 2006-04-29 Wouter Vermaelen * Fixed bug in breakpoints: when a breakpoint was hit we still executed one instruction 2006-04-27 Maarten ter Huurne * VDP accuracy fix: corrected length of horizontal blank. Thanks to Daniel Vik for investigating the Parallax logo code and for writing measurements programs that helped in determining the correct horizontal blank length. Note that the start time of the horizontal blank is not yet fully correct, but having the right length already fixes some problems. 2006-04-25 Wouter Vermaelen * Fixed assert in MemoryOps: assert was too strict 2006-04-25 Wouter Vermaelen * Fixed truncate() function in windows: - instead of extending the file with zeros at the end, it wrote those zeros over the beginning of the file. Oops. 2006-04-20 Wouter Vermaelen * Implemented io and memory watchpoints: - for the moment use like this: debug set_watchpoint
[] [] debug remove_watchpoint debug list_watchpoints Where type is one of 'read_io', 'write_io', 'read_mem' or 'write_mem'. Address is in range 0..255 for io ports and 0..65535 for memory. Condition and command are the similar to the set_bp command. - I'm not 100% happy with this interface. It may change before the release. 2006-04-17 Wouter Vermaelen * Fixed V9990 SRCH command: at least paint command in power basic seems to work again * Fixed inserting wav/cas images from the command line 2006-04-15 Wouter Vermaelen * Implemented infrastructure for V9990 command timing: data in timing table is still _very_ rough though 2006-04-13 Wouter Vermaelen * Fixed(?) V9990 BMLL command, it should do logical operations: not yet tested 2006-04-12 Wouter Vermaelen * Enabled support for single sided disk drives: TODO update hardwareconfig.xml for machines with single sided drives 2006-04-11 Manuel Bilderbeek * Added new 'bootsector' setting. You can use it to let DirAsDSK use a DOS2 (default) boot sector or a DOS1 one. Also put the boot sector data in one single (dummy) class, yesterday. 2006-04-10 Wouter Vermaelen * Fixed bug in V9990 command engine: LMMC command was wrong in 16bpp mode * Optimized address calculation for 16bpp v9990 commands * Fixed V9990 cursor color 2006-04-09 Manuel Bilderbeek * Added tags for extensions as well. Please check; most likely not all data is correct. But it's useful for GUI's/launchers! 2006-04-08 Wouter Vermaelen * Made command that gets executed when a bp is hit configurable, default command is 'debug break' * Allow tag in extension configs (same as machine configs) old config format is still supported * Updated all extension configs to new format 2006-04-07 Wouter Vermaelen * Further optimized hq2x: also reuse edge flags from top neighbour (again about 5% faster) 2006-04-07 Manuel Bilderbeek * Print a warning when a DI/HALT is detected, which means a hang. TODO: add warnings for other known hang-situations as well. 2006-04-06 Maarten ter Huurne * Speedup (approximately 5%) of hq2x by re-using edge flags that were computed for the left neighbour pixel. 2006-04-06 Wouter Vermaelen * Speedup switching to different color_matrix * Fixed assert when using the same extension multiple times * Fixed asserts when using advram-p and advram-s extensions 2006-04-05 Wouter Vermaelen * Reduced compile dependencies, should reduce amount of recompilations needed in the future: - split SettingPolicy.hh -> SettingPolicy.hh SettingRangePolicy.hh - hold BitmapConvertor CharacterConverter SpriteConverter by pointer iso by value, performance difference is not measurable * Use functions of Math.hh in GL(2)Rasterizer * Made it possible for TCL scripts to implement tab completion, see share/scripts for examples: you again need to update the installed init.tcl file * Implemented experimental 'tabcompletion' command: only ment to be used by external programs * Implemented color_matrix setting: This color matrix can do any linear transformation from MSX RGB to host RGB. See share/scripts/monitor.tcl for examples. 2006-03-29 Wouter Vermaelen * Made it possible for TCL script to provide a help text, see share/scripts for examples. Note: the system init.tcl was updated, you probably need to replace the installed version * Added new 'about' TCL script. It searches for commands (built-in or TCL scripts) that seem to be about the given keyword. Useful if you forgot the exact name of a command. 2006-03-27 Maarten ter Huurne * Merged SDLGLVideoSystem into SDLVideoSystem. The actual differences exist in the VisibleSurface subclasses; these classes only function as factories. 2006-03-26 Maarten ter Huurne * Fixed two compile errors on Intel Macs. At least one remains though. 2006-03-25 Maarten ter Huurne * Added new scaler "TV". 2006-03-24 Maarten ter Huurne * Set maximum of scale_factor to 4. Only the SDLGL-PP renderer can actually reach 4x, the other renderers will fall back to their maximum zoom (2x or 3x). 2006-03-21 Wouter Vermaelen * SDLRasterizer optimization: - replaced memcpy() with new stream_memcpy() function - about 3% faster here (simple scaler 2x) 2006-03-21 Wouter Vermaelen * Optimized clock in CPU code: - do part of the time bookkeeping with 32-bit additions (iso 64-bit) - gives between 1% and 2% speedup in typical PC usecase (scale_factor = 2, no frameskip) - gives around 10% speedup with scale_factor = 1 and frameskip 5 2006-03-19 Maarten ter Huurne * Made scalers switchable in SDLGL-PP renderer. Only "simple" and "ScaleNx" are currently implemented. * Ported noise effect to SDLGL-PP renderer. 2006-03-18 Wouter Vermaelen * Implemented run-time switchable machines: - use set machine - there are still some rough edges and I also still expect some bugs. So please test. * Fixed bug: keypresses in the console were passed to MSX just after switching machine 2006-03-15 Wouter Vermaelen * More preparations for run-time switchable machines 2006-03-13 Maarten ter Huurne * Introduced new renderer "SDLGL-PP". This uses SDLRasterizer and does post processing in OpenGL. Since it uses SDLRasterizer, it is more mature already than SDLGL2, which uses its own GL2Rasterizer. 2006-03-13 Wouter Vermaelen * Turned MSXDevice creation in a 2-step process: First construct object, then call the init() method. This simplifies error handling (exceptions thrown from form constructor, see comments in code for more details) and it more easily allows passing extra parameters to device construction. * A MSXDevice now knows to which HardwareConfig it belongs (machine or extension) * Extended cart commands (is now similar to disk command): - cart (without parameters) now returns the name of the inserted cartridge (or possible an extension) - cart -eject removes the inserted cartridge (or extension) 2006-03-11 Maarten ter Huurne * Added support for pixel buffers to GLUtil. * Added utility functions to GLUtil. * Introduced new experimental renderer "SDLGL2". It uses OpenGL 2.0 features, including fragment (pixel) shaders. Currently, it only renders SCREEN5/8 without blanking/borders. 2006-03-11 Wouter Vermaelen * Dynamically register cart commands 2006-03-11 Manuel Bilderbeek * Fixed Gradiente machines. Cartridge slot B is in slot 3 and not 2 on Expert 1.0 and 1.1 and the ROM size was wrong for the DDPlus. Thanks to Gustavo Seidler for pointing this out. 2006-03-09 Wouter Vermaelen * Upper 4 RAM blocks on turbor may not be writable in dram mode (not yet tested) 2006-03-05 Maarten ter Huurne * Added utility classes for dealing with GLSL shaders. * Fixed UMR in StoredFrame. * Fixed MegaRAM mapper so it can handle 2048K (256 pages) as well. Thanks to Gustavo Seidler for spotting this bug and to Adriano Camargo Rodrigues da Cunha for finding the cause. 2006-03-04 Wouter Vermaelen * Added blur_1on3 MMX implementation: total emulation speed with simple 3x scaler is about 10% faster * Added "input_port" and "output_port" info topics * Implemented "iomap" command as a TCL proc 2006-03-03 Manuel Bilderbeek * Implemented better completion for debug command 2006-03-02 Wouter Vermaelen * Added "openmsx_info slot" info topic * Implemented "slotmap" command as a TCL proc 2006-03-01 Wouter Vermaelen * Preparation for run-time switchable machines: - send event when a MSX machine is loaded and change titlebar when that event is received * Implemented blur for 3x simple scaler (WIP): - only 256 wide modes yet 2006-02-27 Wouter Vermaelen * Fixed MicrosolFDC to also support DDX_3.0 * Added DDX_3.0 extension: Code and config contributed by Gustavo Seidler. Thanks! 2006-02-27 Wouter Vermaelen * IconStatus doesn't need Display * Moved IconStatus and Display from MSXMotherboard to Reactor 2006-02-26 Patrick van Arkel (vampiermsx@gmail.com) * Removed CRC32 values from the rom database and added a few more sha1 values 2006-02-24 Wouter Vermaelen * Replaced PollInterface mechansim with events * Moved InputEventGenerator from MSXMotherboard to Reactor 2006-02-23 Wouter Vermaelen * CliComm now uses events instead of Scheduler * Moved CliComm from MSXMotherboard to Reactor * Decoupled Display and RealTime classes: - instead Display now send events, RealTime listens to those events 2006-02-22 Wouter Vermaelen * EventDistributor no longer needs Scheduler, instead it cooperates with Reactor to deliver events: TODO turn (some of the) ASAP schedule points into events * Moved CommandController, EventDistributor, CommandConsole, FileManipulator and FilePool from MSXMotherboard to Reactor: more classes need to be moved but these were easy 2006-02-22 Maarten ter Huurne * Fixed GLSetTexEnvCol on big endian machines. This bug was visible in the border of SCREEN6. * Look for GLEW in DarwinPorts or Fink dirs. * Fixed bug with palette initialisation in SDLGL renderer. This bug was visible as a black screen when using an MSX1 VDP. 2006-02-21 Wouter Vermaelen * Preparations for run-time switchable machine: - made seperate EventDistributors for 'DETACHED' and 'EMU' listeners. - Reactor now owns MSXMotherboard * Fixed HotKey for key release bindings 2006-02-18 Maarten ter Huurne * Use GLEW to handle OpenGL extensions. http://glew.sourceforge.net/ From now on, the GL renderer requires GLEW. Note that since the GL renderer is optional, openMSX as a whole does not require GLEW. This commit is based on a patch from BouKiCHi. 2006-02-18 Manuel Bilderbeek * Log warnings to stderr, in stead of stdout 2006-02-17 Wouter Vermaelen * Implemented noise for GL renderer * Tweaked order of command line parsing: extensions should come before filename parsing to handle stuff like openmsx -machine msx1 -ext fdd mydisk.dsk 2006-02-15 David Heremans * Added SukkoPera's Slackbuild scripts 2006-02-14 Wouter Vermaelen * Implemented noise for 16bpp modes * Optimized non-MMX noise a bit 2006-02-11 Wouter Vermaelen * Added 'brightness' and 'contrast' settings 2006-02-10 Manuel Bilderbeek * CheckedRam now calls a TCL proc that is defined in the new umr_callback setting if an UMR occurs. E.g. try set umr_callback umrcallback umrcallback is an example implementation of such a TCL proc; edit it to your liking. TODO: find a way to automatically skip the UMR's from the boot sequence. (Although the feature is already very usable!) 2006-02-09 Manuel Bilderbeek * Introduced CheckedRam class. See the class documentation for details. TODO: make it useful by adding a usable UMR detector. 2006-02-09 Wouter Vermaelen * Fixed bug, diskimages with spaces in the filename: - since a few days the disk images passed via the commandline execute a TCL command to insert the disk instead of calling a c++ routine (to avoid code duplication). However this went wrong when there were spaces in the filename. I fixed this by avoiding the 'assembling tokens to string' and 'parsing string to tokens' steps. * Handle errors in the startup TCL scripts better * Speedup noise effect a bit (~10%) by using prefetch instructions 2006-02-08 Wouter Vermaelen * New video effect: noise (experimental) - try "set noise " 2006-02-06 Wouter Vermaelen * Fixed setting initial diskimage via the commandline: - as a bonus -disk now also gives an error on msx machines with no (or too few) drives * Don't loose current disk after a failed 'diska' command 2006-02-04 Maarten ter Huurne * Made Konami mapper more accurate, using info from: http://bifi.msxnet.org/msxnet/tech/megaroms.html * Made Majutsushi mapper inherit from Konami mapper, since it bascially is a Konami mapper with a DAC added to it. * Recycle line buffers used for scaling when openMSX is paused. 2006-02-03 Wouter Vermaelen * Removed 'slot reservation' mechanism in command line parser: - The order of -cart and -ext command line options is now important - This may break catapult in some cases. Combination of slotexpander extensions and other memory mapped extensions (or rom cartridges) can fail now. * Better error handling (in particular cleanup after error) when something goes wrong during run-time insertion of extension: * Better error handling when removing extensions (e.g. trying to remove a slotexpander that is still in use) 2006-02-02 Wouter Vermaelen * Made FAT buffering more symmetrical: - if FAT sector writes are stored in cache, then FAT sector reads must also come from cache - I don't know this caused problems in the current code, but now it's certainly more robust against future changes 2006-02-02 David Heremans * Decided to keep the FAT buffering and adjust the writeLogical sectors for it to get correct working again. This also repairs formats of existing dsks/partitions etc. 2006-02-01 David Heremans * Fixed a small problem with the media descriptor during the format of a new dsk file. But at first glance the entire FAT buffering need to go, since it might conflict with different sized partitions on a HD 2006-01-28 Wouter Vermaelen * Made MSXSwitchedDevice more robust when inserted/removed dynamically * Handle errors in MSXDevice configs better: make sure device is not left partly registered (memory or IO) when there is an error in the device config 2006-01-27 Wouter Vermaelen * Added new cpu-status update event: running suspended The old 'break' and 'resume' update events are deprecated * Small cleanups/fixes in JoyTap stuff: - got rid of the "ERROR: Connector still plugged .." messages - removed JoyTapPort class, it was exactly the same as JoystickPort - (minor) removed (lastValue == value) check (no need to do the same optimization twice) 2006-01-27 David Heremans * Added JoyTap and (incomplete) NinjaTap devices The JoyTap is a base class for collector/combinator devices that sit inbetween the MSX joystick ports and the actual joysticks. 2006-01-25 Wouter Vermaelen * Implemented 'list_extensions' and 'remove_extension' commands * Converted some fatal errors to normal errors, they can now also get triggered by run-time insertion of extensions * Recalculate visible pages when a memory device is added/removed: fixes assert while removing a running game cartridge 2006-01-23 Wouter Vermaelen * Enabled run-time insertion of rom cartridges and extensions: - new commands: ext [extension] cart, cart [romfile] * Removed EmuTime (and related) constructors that initialize time at 0: - makes initialization time explicit in the code - fixed some (all?) wrongly initialized timestamps e.g. the new "ext gfx9000" command caused an assert 2006-01-22 Maarten ter Huurne * Added new platform "darwin-app", which can be used to produce a redistributable binary for Mac OS X. Thanks to BouKiCHi for getting static linking to work. 2006-01-21 Wouter Vermaelen * Reduced build-dependencies between source files: - moved most inner classes from hh to cc file 2006-01-20 Wouter Vermaelen * Changed 'locking' of devices (eg. ADVRAM depends on VDP): - it's now specified with tag(s) - can now be handled by generic code * Moved ownership of MSXDevices from MSXMotherBoard to HardwareConfig (MSXMotherBoard owns (possibly several) HardwareConfigs): - another preparation for run-time switchable extensions/machines 2006-01-19 Maarten ter Huurne * Added the option not set the window icon from the openMSX process. This is useful for running from an OS X app folder, since the app folder sets a hi-res icon. 2006-01-18 Wouter Vermaelen * Preparations for run-time removable extensions/machines: - keep mamchines and extensions as seperate entities in memory - unregister 'expanded' and 'exernal' slots when the extension or machine is deleted 2006-01-17 Wouter Vermaelen * Refactored CartridgeSlotManager: - allocated external slots are freed again when the MSXDevice using it is destroyed - preparations for removable devices at run-time 2006-01-16 Wouter Vermaelen * CassetteJack cleanup: - changed code style to match rest of openMSX sources - fixed small bug: new[] needs delete[] (iso delete) - more robust error handling * Refactored the way how MSXDevice names are made unique 2006-01-15 Maarten ter Huurne * Added "make app" for Mac OS X. It is not yet fully functional, but most is there already. Thanks to BouKiCHi for helping. 2006-01-13 Wouter Vermaelen * Made MSXDevice::getName() return a string by value: is not performance critical and simplifies code in MSXMultiDevice * Moved common code of MSXMultiIODevice and MSXMultiMemDevice to new MSXMultiDevice class * No need to implement reset(), powerUp(), powerDown() methods in MSXMultiDevice. It's even wrong if they ever get called. 2006-01-11 Wouter Vermaelen * Implemented [ 1320568 ] Preload entire diskimage/ROM: We don't actually keep the image in memory, just read it and discard the result. However the image will stick in the OS cache (only tested on Linux though). This way the "don't preload when not enough free RAM is available" issue is addressed. Tested with both CDROMs and floppy's and it seems to work reasonably well. 2006-01-08 Wouter Vermaelen * Fixed interlace + multi page horizontal scroll also for GLRenderer: with deinterlaced disabled in it's the same fix as for SDLRenderer 2006-01-08 Maarten ter Huurne * Refactoring of GLRasterizer: - only rasterize sprites if the line actually contains sprites; this can make quite an impact on performance 2006-01-07 Maarten ter Huurne * Refactoring of GLRasterizer: - partial preparation for output windows other than 640x480 - removed deinterlace code, because the idea was broken; later deinterlace will have to be re-added in a better way (like the SDL renderer has) - store bitmap data in a single large texture rather than one texture per line; this is better for performance 2006-01-06 Wouter Vermaelen * Reenabled 'sdlgl-fb' renderers in non-release versions * Made 2x scalers work with non 640 wide output surfaces: preparation to enable 4x scalers later * For symmetry also made 1x and 3x scalers output width independent 2006-01-05 Maarten ter Huurne * Split OutputSurface into smaller OutputSurface and VisibleSurface. * Use PixelOperations instead of SDL_PixelFormat where possible. 2006-01-05 Wouter Vermaelen * Added support for SDL 'world_' and 'undo' keys. 2006-01-04 Wouter Vermaelen * Report error for key names with multiple non-modifier parts (e.g. ENTER,A or PRINT,UP) 2006-01-04 Maarten ter Huurne * Moved ownership of RenderSettings from MSXMotherBoard to Display. 2006-01-03 Wouter Vermaelen * Fixed combination of interlace and multi-page horizontal scrolling: only for SDL renderer yet. Deinterlacing first needs to be fixed in GL renderer (also use data from previous frame) 2006-01-02 Maarten ter Huurne * Created release branch for openMSX 0.6.0. 2005-12-31 Wouter Vermaelen * Fixed assert when openmsx was quit with simple pluggable still plugged in the printerport. 2005-12-31 Manuel Bilderbeek * Temporarily disabled reporting of filetype of first file on cassette, because this breaks Catapult, and Herman is not there to fix it... This way we can release. TODO re-enable after release and fix Catapult or finally start on the Qt version of Catapult! At this time, I'm talking about line 407 of CassettePlayer.cc. 2005-12-29 Maarten ter Huurne * Allow installation of binary to /usr/local/bin without overwriting binary with a symlink. * Check whether the C++ compiler is working. It checks only if the compiler can compile "Hello World!", so it is not guaranteed the compiler supports all C++ features needed to compile openMSX. But the complete absence of a compiler is correctly identified now, instead of reporting that all libraries are missing. 2005-12-28 Maarten ter Huurne * Rewrote "make install" to use the "install" utility instead of "cp" combined with "chmod". The problem was that the "chmod" step did not work on systems where the installed files are spread over multiple directories, such as FreeBSD. 2005-12-27 Maarten ter Huurne * Added support for FreeBSD 6 by making FreeBSD 4 an exception (it has GCC 2.9x as default compiler) and using the same platform Makefile for all other FreeBSD versions. * Added support for CPU reported as "amd64" (mapped to "x86_64"). 2005-12-27 Wouter Vermaelen * Force PSG portB direction to output: - we already forced portA to input - some msx machines have fixed port directions others not, we should make this configurable per machine in the future - for more details see [ 1390211 ] joystick problems 2005-12-26 Wouter Vermaelen * Revert cleanup in XMLLoader.cc, it breaks making a connection from openmsx-debugger to openmsx in windows * Disabled sdlgl-fb16 and sdlgl-fb32 renderers: they don't offer anything over the existing renderers and sdlgl-fb32 still has endian problems on PPC 2005-12-24 Wouter Vermaelen * Made S1990 registers debuggable 2005-12-23 Wouter Vermaelen * Reverted bug in earlier 'cleanup' in VDPVRAM: - we must use baseAddr to encode 'window is enabled' info because the implementation of isInside depends on it - fixes crash of KV2 MSX1 on turboR 2005-12-20 Wouter Vermaelen * Synchronize CPU and scheduler irregardless of how CPU loop was exited (normally or via breakpoint): - fixes assert when MSX is reset while CPU is breaked * Prepare openmsx-0.6.0-rc1 2005-12-18 Wouter Vermaelen * Assert on exceptions that pass through the TCL interpreter: a config error in the ADVRAM extension asserts now (instead of calling terminate()), we're still investigating how to fix it * Worked around error from above, clean solution needs dependencies between devices 2005-12-18 Manuel Bilderbeek * Implemented AutoRun feature for cassette software - only works for CAS images, WAV is TODO (more difficult) - experimental; default setting of "autoruncassettes" is off - also tries to autorun if you insert at run time - doesn't work properly on machines with non-international keyboard layout, because the 'type' command doesn't work properly then - please review and feel free to improve it! :P 2005-12-16 Wouter Vermaelen * Properly fix fnano2 bug * Implemented horizontal scrolling in character modes 2005-12-14 Arnold Metselaar * Use another bit for planar mode when ADVRAM has no 'enable' function 2005-12-14 Wouter Vermaelen * Made 'enable' function in ADVRAM configurable 2005-12-13 Wouter Vermaelen * Draw scanline in 3x simple scaler deinterlace mode 2005-12-12 Wouter Vermaelen * Implemented deinterlace mode support in RGBTriplet scaler 2005-12-11 Manuel Bilderbeek * Updated the manuals for the new scaler settings. Please review! 2005-12-10 Manuel Bilderbeek * Pass cassetteplayer status to CliComm 2005-12-08 Wouter Vermaelen * Implemented 'openmsx_info setting': It returns a TCL list with: - first element is the type of the setting string, integer, float, enumeration, filename or key - second element is the default value of the setting - third element is optional, for integer and float settings it is a list with the minimum and maximum allowed value. For enum settings it is a list with all possible values. * Fixed timing of slowest (no extra wait states) R800 IO instructions 2005-12-07 Wouter Vermaelen * Fixed timing if 'IM n' instruction on R800: should take 3 cycles iso 2 * Added '-script' command line option: - makes it possible to execute additional startup scripts after the default init.tcl script 2005-12-05 Wouter Vermaelen * Split scaler setting into scale_factor and scale_algorithm 2005-12-04 Wouter Vermaelen * Readd delay on turboR on ports 0x9A and 0x9B: - fixes previous fix for assert on turbor with advram - also prepared code to later add delays on other ports 2005-12-04 Arnold Metselaar * change advram to emulate a newer version that can be switched on and off by software * fix assert when using advram on turboR 2005-12-03 Wouter Vermaelen * Small ADVRAM changes: - read device ID ("VDP") from config file - bring coding style in line with the rest of the openmsx code 2005-12-03 Arnold Metselaar * MSXDevice(readIO, peekIO, writeIO): change type of port address to word * MSXMotherBoard: add methods lockDevice and releaseDevice to allow interdepencency of devices * ADVram: new extension 2005-12-02 Wouter Vermaelen * Handle scaleBlank() via Scaler::scaleImage(): - allows to fix the "[1057836] Infinite plasma logo" bug - also properly handle scanlines with non-black border color in deinterlace mode. Previously display area didn't had scanlines while border area had. Now none has scanlines. 2005-12-01 Wouter Vermaelen * Also do realtime syncing when started with none renderer * Fixed deinterlace in combination with frameskip * Use DoubledFrame to render interlaced (non-deinterlaced) frames: scalers with odd scale factor are rendered better now. For example low scaler also shakes now 2005-11-29 Wouter Vermaelen * Added line scaling in FrameSource: - fixes the 'double screen' bug - improves scaler border effects (but still not completely) 2005-11-27 Manuel Bilderbeek * Made cassetteplayer status query machine readable. Just use 'cassetteplayer' to get a TCL list, similar to the diska command. 2005-11-23 Wouter Vermaelen * Added 192kb VRAM support in VDPCmdEngine 2005-11-20 Maarten ter Huurne * Optimised variable zoom factor version of 2xSaI. * Used template metaprogramming to instantiate an optimised fixed zoom factor 3xSaI scaler. 2005-11-19 Wouter Vermaelen * Keep icon status in new class (IconStatus) iso in static data of IconLayer: - fixes power led status when openmsx was started with 'none' renderer (catapult) * Basic 192kb VRAM support: - only CPU-VRAM interface, no command engine stuff yet 2005-11-19 Maarten ter Huurne * Added the variable zoom factor version of 2xSaI. It is being used to provide 3xSaI at the moment. The current version is very slow though. 2005-11-18 Wouter Vermaelen * Optimized scale3x (c++) 2005-11-18 Manuel Bilderbeek * Updated the manual. Still TODO are the new zoom/scaler-method settings, which are not even programmed yet. 2005-11-16 Maarten ter Huurne * Added a C++ version of Scale3x. 2005-11-16 Joost Damad * yeah that was one year ago since I did an openmsx commit :) * use word for casting a pointer to an integral; fixes build on 64bit systems * test 2005-11-13 Wouter Vermaelen * Remove all pending after commands on exit 2005-11-13 Wouter Vermaelen * Automatically unschedule SyncPoint when it is deleted: On lots of places we forgot to do this. Will become important when we allow to remove device or switch machine at run time 2005-11-12 Manuel Bilderbeek * Attach to throttleManager, not to throttleSetting. * Added keyword 'explicit' to declarations of constructors with only one argument, to prevent undesired implicit conversions. Please do this everywhere applicable from now on! 2005-11-12 Wouter Vermaelen * Allow multiple tags per device * MSXRam device is now mirrored: Together with change above it's now possible to create RAM like this: 0x2000 This represents a 8kb RAM that is visible on both 0x2000-0x3FFF and 0xA000-0xBFFF * Directly using throttleSetting is wrong (should always go via ThrottleManager), so make that impossible * Still found a singleton, HardwareConfig. Removed it. 2005-11-11 Manuel Bilderbeek * Removed old add/removeListener calls * Removed SettingListener class 2005-11-11 Wouter Vermaelen * PluggingController related cleanups 2005-11-10 Manuel Bilderbeek * Introduced a generic Gamma based Observer pattern, template implementation by Wouter though. Still needs to be used more properly for Setting/SettingListener and ThrottleManager. 2005-11-10 Maarten ter Huurne * Map all even numbered joystick buttons to trig A and all odd numbered joystick buttons to trig B. Before, button 0 was mapped trig A and button 1 was mapped to trig B and if those buttons were not present or not easy to use on your joypad, you were out of luck. 2005-11-08 Wouter Vermaelen * Renamed scaleMxNtoXxY() methods in LowSCaler and 3x Scalers: old named didn't take overscan into account * Renamed all scaleNNN() methods in 2x scalers * Use DeinterlacedFrame in 2x scalers 2005-11-05 Manuel Bilderbeek * More intelligent 'loading' check for disk drive; if there is no head movement for a while, we assume loading stopped. Works much better for software that doesn't turn off the motor. The timeout is set to one second for now. This may need some tuning still. 2005-11-05 Wouter Vermaelen * Allow more general memory specifications in hardwareconfig.xml: - base and size no longer need to be multiples of 0x4000 - It's now possible to create devices that have 8kb rom and 8kb ram in the same 16kb page. * Fixed fullscreen switching in windows 2005-11-04 Manuel Bilderbeek * Implemented an experimental "fullspeedwhenloading" setting. If you turn it on, openMSX will run at full speed when it thinks that the MSX is loading from disk or cassette. It's still a bit dumb for disk as it syncs the motor status... Also, some stuff like RealTime and sound drivers want to get informed if the speed of the emulation changes. This is not passed yet when openMSX goes to full speed due to this new setting. Default is still 'off', of course. Please test this and improve it :P 2005-11-04 Maarten ter Huurne * Renamed scale methods in LowScaler to reflect ratio i.s.o. line width. * Finally introduced DeinterlacedFrame class. Right now it is only used by PostProcessor internally, but in the future the scalers will use it too, as a FrameSource. 2005-11-03 Wouter Vermaelen * Fixed assert on 'set power off ; set power on': also cleaned up reset handling code 2005-11-02 Wouter Vermaelen * Only build SDLGLOutputSurface when openGL component is selected 2005-11-01 Manuel Bilderbeek * Optimization in RGBTriplet3xScaler: don't really call scale_1on1; if we already have 256 wide lines, there's no need to scale 2005-11-01 Wouter Vermaelen * Use OutputSurface iso directly SDL_Surface in Scalers: - preparation to use other than SDL framebuffers - openGL framebuffer code seems to work, but is not yet enabled. Performance is about the same as SDL on my system * Experimental. Enabled openGL framebuffer renderers: - use 'set renderer sdlgl-fb16' and 'sdl-gl32' to enable them - possibly we disable them for the release * Fixed bug in MemoryOps: - need mmxext for streaming stores 2005-10-31 Wouter Vermaelen * Fixed assert when switching video system (hq2x -> hq3x) and leak when switching video system on gfx9000: * Small optimization in Simple3xScaler::scaleBlank() 2005-10-30 Wouter Vermaelen * Fixed memory leaks in VideoSystem/Layers stuff: - simplified layer ownership rules: creator now owns the layer iso transferring ownership to Display - added Display::removeLayer(), there was only addLayer() - VideoSystem and Rasterizer objects were never deleted 2005-10-30 Maarten ter Huurne * Moved the switch(lineWidth) statement from PostProcessor to Scaler, as a preparation for renaming the line scale methods. 2005-10-29 Manuel Bilderbeek * Implemented Simple3xScaler with scanlines. Blur is TODO for someone who is interested :P 2005-10-28 Wouter Vermaelen * Implemented border effect for outer left and right border pixels in RGBTriplet3xScaler * Fixed Scale_XonY line scalers for case when destination width is not an integer multiple of Y 2005-10-28 Manuel Bilderbeek * Implemented RGBTriplet3xScaler for all widths using the new functors 2005-10-28 Wouter Vermaelen * Added 'Streaming store' tags on line scalers to enable optimizations in Scaler2 and Scaler3 2005-10-27 Wouter Vermaelen * Transformed scale_XonY() methods into functors * Changed signature of scale192/384/640/768/1024 methods * Factored out scaling algorithm in the base Scaler classes * Optimized PixelOperations for 32bpp * Implemented 16bpp in RGBTriplet3x 2005-10-26 Manuel Bilderbeek * Implemented adjustable scanline in scaleBlank() for RGBTriplet3x scaler. * Let rgbify (in RGBTriplet3x) use pixelOps to access RGB components. Makes it almost work in 16bpp, except for the spill threshold. TODO: fix this and implement other widths (as soon as this can be done without loads of code duplication...) 2005-10-26 Wouter Vermaelen * Changed signature of scale512() method * Replaced Blender with PixelOperations class: - puts all blend functions in one place 2005-10-25 Wouter Vermaelen * Moved scanline code from SimpleScaler to new class Scanline * Reused scanline code in RGBTriplet3x scaler * Made the 'amount of RGB separation' configurable in RGBTriplet3x scaler 2005-10-24 Manuel Bilderbeek * Implemented scaleBlank() for RGBTriplet3x scaler. Still no effect for non-256-wide modes... (so still WIP) 2005-10-24 Wouter Vermaelen * Improved Manuel's RGB scaler (still WIP) 2005-10-23 Manuel Bilderbeek * Added RGBTriplet3x scaler. Emulates a Trinitron effect, including a scanline. This is still very WIP and experimental! Thanks to Wolf for the idea 2005-10-22 Maarten ter Huurne * More preparations for cleaner deinterlacing: - PostProcessor calculates destination Y (in addition to source Y) - Scaler::scaleBlank signature changed to use destination Y - Scaler::scale256 signature changed to use source and destination Y 2005-10-22 Wouter Vermaelen * Put common code for HQ.x scalers in HQCommon.hh * Optimized MSXtar: - cache FAT in memory * Implemented scaling in IconLayer: - OSD icons now have the same size/position in all scalers 2005-10-21 Wouter Vermaelen * Fixed low and hq3x scalers for v9990 * Cleaned up Scaler code (mostly for non 2x scale factors) 2005-10-19 Wouter Vermaelen * Added hq3xlite scaler 2005-10-18 Wouter Vermaelen * Added hq3x scaler: - is *very* slow (will try to add hq3xlite later) - there might still be problems in combination with gfx9000 2005-10-17 Wouter Vermaelen * Use unix domain sockets iso internet domain sockets for communication with extrenal programs. * Updated Contrib/openmsx-control.cc: made a openmsx-control-socket.cc and a openmsx-control-stdio.cc version 2005-10-11 Wouter Vermaelen * Worked around SDL CAPSLOCK problem: SDL doesn't send proper keyup/down events for CAPSLOCK, instead it sends keydown when key is pressed for the first time and keyup when key is pressed second time. As a workaround we must make an assumption about the duration of the key press (i took 100ms). 2005-10-10 Wouter Vermaelen * Implemented tilde expansion for ~ (*nix only) 2005-10-04 Manuel Bilderbeek * Renamed force_play to motorcontrol and some small clean ups. 2005-10-01 Maarten ter Huurne * Fixed IDE on big endian machines. Commit from Bussum MSX fair :) 2005-09-30 Wouter Vermaelen * Fixed help command: - info topics were visible as commands in the help command * Fixed reset during pause bug 2005-09-29 Maarten ter Huurne * Fixed screenshot colours of SDL renderer on big endian machines. 2005-09-28 Manuel Bilderbeek * Started implementation of new cassetteplayer CLI. - needs a lot of clean ups, only the CLI part was changed - record subcommand not implemented yet. Needs modifications to WavWriter, to be able to append to existing images. Consequently, readonly-handing is not implemented yet either. 2005-09-26 Wouter Vermaelen * Fixed input delay for MSX keyboard: - Split keyboard events in host and emu events. In the future other events should be split as well - Currently the console code translates host keyboard events into emu keyboard events (only when console is disabled). This should change. 2005-09-26 Wouter Vermaelen * Fixed EmuTime parameter for ASAP sync points 2005-09-24 Arnold Metselaar * CassetteJack - fix output when MSX output varies very rapidly - simple interpolation on input 2005-09-21 Wouter Vermaelen * Automatically plug in cassetteplayer when the MSX machine has a cassetteport: - done with a TCL script for the moment because the list of plugged devices is not (yet) saved by openMSX 2005-09-20 Wouter Vermaelen * CassettePlayer stuff: - cleanups (bring coding style in line with rest of openMSX) - fix wav ouput when MSX output varies very rapidly - update wav header 'regularly' so that wav is already usable by an external program before recording on MSX is completely stopped 2005-09-20 Arnold Metselaar * fix in WavWriter class; totalsize was wrong * CassetteJack, CassettePlayer - simple DC removal filter for cassette out signal * CassettePlayer - setMute() when recording - stop recording on eject, insert, rewind unplug and destructor 2005-09-19 Wouter Vermaelen * Made WavWriter class: - removed common code from Mixer and CassettePlayer - code should now also work on big endian machines (not tested) * Enabled wav writing for CassettePlayer * Clear secondary slot registers on reset(!): - fixes reset bug on Sony HB-F500P 2005-09-18 Manuel Bilderbeek * Added a new -testconfig option, which just tries to load the specified machine/extension/etc. config and then exits. Can be used to probe what machine configs are installed correctly, including ROM images 2005-09-17 Wouter Vermaelen * Implemented 'magic key' dongle * Fixed assert on reset (happened most often on turbor) 2005-09-14 Wouter Vermaelen * Made RawFrame SDL independent * Allign every line in a RawFrame at a 64 byte boundary 2005-09-12 Maarten ter Huurne * Preparations for cleaner deinterlacing: introduced FrameSource as an abstract superclass of RawFrame. 2005-09-12 Wouter Vermaelen * Added EmuTime parameter to peekMem() method * Implemented debug reads for FDC's 2005-09-10 Wouter Vermaelen * Fixed some SCC details (needed for playing samples on SCC): - stuff was discovered by NYYRIKKI - see comments SCC.cc for details 2005-09-09 Wouter Vermaelen * update events are now enabled/disabled per connection 2005-09-07 Maarten ter Huurne * Set environment variables though TCL interpreter. Fixes problem on Mac OS X where OPENMSX_(SYSTEM|USER)_DATA is not updated in TCL, causing "init.tcl" to fail. 2005-09-06 Wouter Vermaelen * Added listen_host and list_port_min/listen_port_max settings: - valid values for listen_host are 'all', 'local' and 'none'. Default is 'local' - listen_port_min/max is a range of port number on which openmsx will listen for incomming connection (openmsx session will take the lowest free port, it's a range to allow multiple simultaneous openmsx sesions). Default is 9938 - 9958. - TODO better names for these settings? - TODO documentation 2005-09-05 Arnold Metselaar * Added support for interaction between cassette port and jack audio connection kit - added CassetteJack - moved the generation of samples from Cassette to the Pluggable. - build system updated - description in user.html 2005-09-03 Wouter Vermaelen * Large singleton cleanup (only a few remain now): - singleton classes had a lot a inter-dependencies, it was not possible to make this change in smaller steps - these dependencies still exist, but now there are explicitly visible in the code (in some places it looks ugly now) - TODO break some of these dependencies 2005-09-02 Manuel Bilderbeek * Fixed a bug in the disassembler (thanks for the anonymous poster for telling us about it); it now uses stringstreams iso char arrays. 2005-08-28 Wouter Vermaelen * More singleton cleanups: UserInputEventDistributor, CommandConsole, RenderSettings and Display are no longer singletons 2005-08-25 Wouter Vermaelen * Moved implementation of 'toggle' command to a TCL script * Removed CondVar class, it was not used anymore 2005-08-22 Wouter Vermaelen * MSXtar cleanup: - don't use CliComm to print warnings or errors, instead report them as normal TCL output or TCL error msgs - more robust error handling 2005-08-20 Wouter Vermaelen * Added resume update event 2005-08-19 Wouter Vermaelen * Implemented peekIO (debug IO reads) for MSX-AUDIO 2005-08-14 Wouter Vermaelen * V9990 no longer internally renders 640 pixels wide lines. The PostProcessor now scales the lines to the correct width. * Extended Scalers with scale192() scale384() scale768() scale1024(): TODO find a better way to do this 2005-08-13 Wouter Vermaelen * Use PostProcessor for V9990: - this means scaler, scanline, blur settings have now also effect on V9990 display - TODO all V9990 lines are internally still rendered 640 pixels wide 2005-08-12 Wouter Vermaelen * Changed 'issubslotted' from Debuggable into InfoTopic * Added 'isexternalslot' InfoTopic * Added 'guess_title' script 2005-08-10 Manuel Bilderbeek * Added -prefix option to screenshot command * Moved getName from ScreenShotSaver to FileOperations, with new name "getNextNumberedFilename" and used it in Display and Mixer. Removes code duplication between those 2. 2005-08-10 Wouter Vermaelen * Fixed using precompiled headers: - include guards should be unique in the whole tree - split Icon.hh in Icon.hh and Icon.cc * Fixed KeyJoystick: - UserInputEventDistributer can now handle multiple listeners with the same priority * Large V9990 speedup: - added faster VRAM access methods, specific for certain display modes - optimized logical operations in V9990CmdEngine with LUT 2005-08-02 Wouter Vermaelen * Added SimpleDebuggable class: made code of most Debuggables a lot simpler * Simplified SoundDevice class 2005-07-23 Wouter Vermaelen * Fixed bug in EventDistributor: event order could get swapped for events close together in time * Scheduler now keeps sync points with same EmuTime in the same order as they are registered 2005-07-23 Manuel Bilderbeek * Added -nommx and -nommxext command line options, to disable MMX and MMXEXT usage, if available. This is useful only for debugging purposes and may change in the near future. 2005-07-22 Wouter Vermaelen * Implemented resolution changing for low scaler * Renamed 'SDLHi' renderer to 'SDL' 2005-07-21 Wouter Vermaelen * Made Scaler interface independent from scale factor: - low scaler works now, although still in a 640x480 window * Moved Deinterlacer functionality to Scaler: - preparation for low scaler deinterlacer * Implemented deinterlace for low scaler: - no MMX or SSE optimized version yet 2005-07-20 Wouter Vermaelen * Removed SDLLo renderer, SDLLo renderer will be replaced with "low" scaler soon 2005-07-20 Maarten ter Huurne * Split off PostProcessor from SDLRasterizer. * Fixed bug in memset4_2_CPP. This was the cause for "[1237004] OSX Tiger GFX bug". * Fixed endianness bug in memset_2_helper 16bpp support. * Used a different GCC 3.3 bug workaround, because the previous one caused bus errors on Mac OS 10.3. 2005-07-18 Maarten ter Huurne * Introduced RawFrame: a class which contains an unscaled frame. This is an architectural improvement which will later allow bug fixes, cleaner code and new features. * Removed NATIVE event listeners (replaced by DETACHED). 2005-07-18 Wouter Vermaelen * Made CPU breaked status queryable with "debug breaked" subcommand * Use glTexSubImage2D to reuse existing textures: can be faster in certain openGL implementations 2005-07-16 Maarten ter Huurne * Optimized PNG images. I used the tools pngrewrite and OptiPNG. * Optimized PNGs some more using advpng. * Optimized PNGs some more using pngcrush. Thanks to Wouter for the tip. 2005-07-15 Manuel Bilderbeek * Updated the IDE ROM to version 2.40. 2005-07-14 Wouter Vermaelen * Added "issubslotted" debuggable * Reimplemented "slotselect" command as a TCL proc * Added "pc_in_slot" TCL proc. Can be used to set a bp in a specific slot. 2005-07-13 Maarten ter Huurne * Fixed the new icon on big endian machines. 2005-07-12 Wouter Vermaelen * Fixed auto saving of settings at exit 2005-07-11 Manuel Bilderbeek * Thanks to Wouter's improvements to CasImage, I could boost the baudrate of cas images to 5520! :) Any more and it blows ;-) * Don't use allUp(), but just let key up events through to the MSX when console is active. 2005-07-10 Maarten ter Huurne * Introduced UserInputEventDistributor, as a first step to get rid of the "native" event handlers. This distributor forwards keyboard events to the console or the MSX depending on whether the console is active. 2005-07-07 Wouter Vermaelen * Fixed linking problem for gcc4 * Fixed inline assembler for gcc4: we need to hide the MMX/SSE registers in the clobber list from the compiler when the target CPU doesn't know about these registers 2005-07-06 Manuel Bilderbeek * Renamed 'eject', 'rewind', 'force_play' and 'no_force_play' to '-eject', '-rewind', '-force_play' and '-no_force_play' in the CassettePlayer. * Added completion for these options. 2005-07-05 Wouter Vermaelen * Refactored SoundDevice code: pass estimated EmuTime and EmuDuration to updateBuffer() preparation for DACSound improvements * Improved DACSound sound quality: - 2x oversample signal (and downsample with 4th order FIR filter) - use time average to extract the (unfiltered) signal 2005-07-02 Wouter Vermaelen * Implemented stripes for screen6 background * Fixed "load_settings" command 2005-06-30 Wouter Vermaelen * Moved vdrive key bindings from openMSX code to vdrive.tcl script 2005-06-29 Wouter Vermaelen * Only save key bindings (settings.xml) that are different from the default key bindings. Added (un)bind_default commands. * HQ2xLite cleanup + small speedup 2005-06-27 Wouter Vermaelen * Mute sound when a bp is hit and during turbor HW pause * Implemented HW mute bit in turbor PCM device * SettingsManager is no longer a singleton * Don't save settings that (still) have their default value: - this way the user no longer needs to delete his settings.xml file to get the new default values when he upgrades - TODO: this broke the load_settings command. I'll fix it after keybindings and keyjoystick are refactored * Added second keyjoystick: Names are now 'keyjoystick1' and 'keyjoystick2'. This is not backwards compatible with the old name 'keyjoystick'. Do we need a compatibilty thing for this? * Made keyjoysticks configurable with settings (iso directly having to edit settings.xml): Setting names are like this 'keyjoystick1.up', 'xx.down', etc 2005-06-26 Wouter Vermaelen * Mixer is no longer a singleton 2005-06-25 Wouter Vermaelen * Implemented stripes in border in screen6 2005-06-23 Herman Oudejans * Fixed problem with saving SRAM to a machine that wasn't used before. 2005-06-20 Wouter Vermaelen * Unrolled inner loops in CharacterConverter: - rendering text2 mode is between 1% and 2% faster now (on total simulation time) - gcc only unrolls loops when the option -funroll-loops is given it's not automatically enabled at any optimization level because it sometimes also creates slower code * Changed result format of "diska" command, updated vdrive script * Don't use default alpha value in SDL console: When the background image had a contant alpha value (or no alpha value at all) we took a default alpha value. This behaviour is different from the GL Console. It's also not very useful because it prevents using a background with a different (constant) alpha value (or no alpha at all). 2005-06-20 Wouter Vermaelen * Flush PrinterPortLogger data 2005-06-18 Wouter Vermaelen * Fixed problem with event distribution: Current implementation can't handle new subsriptions while events are being distributed. In this case it was easy to avoid but in the future we may have to change the implementation to allow this. I also added some asserts to more easily detect this type of problem in the future. * Reimplemented "palette" and "vdpregs" commands as TCL scripts * Added Vampiers "setcolor" TCL script (slightly modified) * Reimplemented "v9990regs" command as a TCL script * Updated cpu.tcl, made a proc to read/write individual registers, see documentation in cpu.tcl for details * Implemented SRAM syncing: at most 5 seconds after a write to SRAM the content of the SRAM is saved to disk. 2005-06-17 Wouter Vermaelen * RenShaTurbo is no longer singleton * Debugger is no longer singleton * Use references iso pointers where possible in VDP code * Made memory mapper registers debuggable (MapperIO) * Made V99x8 palette debuggable 2005-06-16 Wouter Vermaelen * Large refactoring, get rid of some singletons: MSXMapperIO, MultiIODevice, MSXDeviceSwitch, DummyDevice, PanasonicMemory, MSXCPUInterface, MSXCPU are no longer singletons. Instead the (single) object of this class should be get from MSXMotherBoard. MSXDevices and some other classes now have a backpointer to MSXMotherBoard * Get rid of more singletons: PluggingController, CassettePortFactory 2005-06-15 Wouter Vermaelen * Added basic syntax checking for expressions in conditional bp's 2005-06-14 Wouter Vermaelen * Implemented conditional breakpoints: TODO add more documentation and examples 2005-06-13 Wouter Vermaelen * Turbo R hw pause only pauses the CPU, not also all other devices. 2005-06-12 Maarten ter Huurne * Only Schedulable has access to setting and removing sync points. * Look for TCL in "lib64" directories as well. Fixes TCL detection on Fedora Core 3 x86-64. * Split off Reactor class from MSXMotherBoard. Work in progress. * Decided that the "reset" command and the "power" setting apply to a specific MSX machine and therefore belong in MSXMotherBoard. The code that handles that command and setting already assumes that it is called from the Reactor instead of the Scheduler, but this is not yet the case, so currently assertions can be triggered. 2005-06-11 Maarten ter Huurne * Do not initialise SDL if openMSX doesn't start up (-h, --version). * Initialise SDL video when the first screen is opened. 2005-06-11 Wouter Vermaelen * More accurate Clock class (when freq is a fraction of 3.58MHz) * Also complete "-eject" and "-ramdsk" in "diska" command 2005-06-10 Maarten ter Huurne * CommandLineParser is no longer a singleton. * Removed -nosound command line option. Use the "null" sound driver instead. 2005-06-10 Wouter Vermaelen * Small speedup of simple scaler * replaced classes with only static methods inside (e.g. StringOp) with a namespace * Implemented hard/soft pause bit in turbor (bit 1 in port 0xa7) * Removed support for old romdb format * Removed support for , (use -romtype instead) * Use tag in softwaredb 2005-06-10 David Heremans * Added vdrive.tcl script: This scripts allows user to cycle through a uniformaly named diskset. It enables blueMSX users to use the same kind of diskcycling as blue's v-DRIVE if binded to the ALT+F9 hotkey 2005-06-08 Wouter Vermaelen * Removed romdb.xml and romdb.dtd files: These files were already obsoleted by softwaredb.xml. OpenMSX still supports the old format, after the release we'll also remove this. 2005-06-07 Maarten ter Huurne * Updated C-BIOS to 0.21. 2005-06-06 Manuel Bilderbeek * Implemented new icon by Eric Boon (32x32 version). * Cleaned up Icon code, to use a slightly modified GIMP C-Source image dump. It's now also easier to put in a larger bitmap. 2005-06-02 Wouter Vermaelen * Fixed background in screen6: only use lower two bits for background color TODO use stripes 2005-05-28 David Heremans * introduced a quick-fix: The minial bootsector in MSXtar is, at the moment, created for a 360KB disk. For now the minimal partition size is forced to this size as well. 2005-05-25 Wouter Vermaelen * Removed 'useFile' sub command from 'diskmanipulator': the new 'virtual_drive' replaces its functionality * Refactored DiskDrive code: factored out disk changing code into DiskChanger class * Added 'virtual_drive': this drive is always available (even in power off state), its main use is for the diskmanipulator stuff 2005-05-24 Wouter Vermaelen * Merged Maarten's 'close socket stuff' patch: - should fix exit problems on OSX 2005-05-24 David Heremans * Enhanced the 'diskmanipulator import' function: It now accepts a list of files and directories as arguments 2005-05-23 Wouter Vermaelen * Renamed 'eject' and 'ramdsk' to '-eject' and '-ramdsk' * Renamed 'filemanipulator' to 'diskmanipulator' * Removed diskmanipulator sub command 'usePartition' 2005-05-22 Manuel Bilderbeek * Literally reVamped default console background and font! ;-) ConsoleFontRaveLShaded is default font now, ConsoleBackgroundGrey is default background (see poll). Added some others as well. All graphical work was done by Patrick van Arkel. 2005-05-21 Wouter Vermaelen * R800 timing improvements: CAS/RAS optimization only works for internal RAM, timing tests in R800-ROM look a lot better now 2005-05-20 Wouter Vermaelen * fixed R800 memory access timing: - accessing internal RAM (or some ROMs in DRAM mode) takes 1 cycle - accessing internal ROM takes 2 cycles - accessing external slot takes 3 cycles 2005-05-19 Wouter Vermaelen * R800 timing fix: - retn reti instructions takes 5 cycles (2 more than a simple 'ret', that's unexpected if you look at the Z80 timings) - tweaked CAS/RAS optimization a bit, also optimize data fetches, but still don't optimize between opcode and data fetched I have no idea whether it really works like this, but the test results are better now 2005-05-18 Wouter Vermaelen * R800 timing fix: di instruction takes 2 cycles (ei takes just 1) 2005-05-16 Manuel Bilderbeek * Added Sony HB-F700D config. Interesting characteristics are: 256kB RAM, German ROMs (nice for German users), broken_fdc_read=true 2005-05-14 Wouter Vermaelen * Made WD2793 code more robust: Something _could_ go wrong when a new command was started while the previous command was still busy. This might fix the drive problems seems by vampier, mth and shevek but it might also be something completely different. 2005-05-14 David Heremans * More FileManipulator stuff - get feedback on curretn situation from 'useFile', 'usePartition' and 'chdir' in the same was as our 'set ' commands work - fixed small bug concerning non partitioned devices 2005-05-11 David Heremans * More FileManipulator help 2005-05-11 Wouter Vermaelen * Improved build time (~15% faster full build here): - split EmuTime.hh in EmuTime.hh EmuDuration.hh Clock.hh and DynamicClock.hh - don't #include in openmsx.hh in non-debug builds PRT_DEBUG macro is not checked anymore for syntax errors in non-debug builds now, but I think that's not a big problem 2005-05-09 David Heremans * Added support for linux style partitionnumbers in the FileManipulator 2005-05-09 Wouter Vermaelen * Fixed linking problem with gcc-4.x: explicit template instantiation must be done _after_ template definition and implementation * Improved timer accuracy of MSX-AUDIO / OPL4: thanks to Daniel for figuring this out 2005-05-07 Wouter Vermaelen * Large MSXtar / Filemanipulator (and related stuff) cleanup 2005-05-06 Wouter Vermaelen * Implemented missing WD2793 feature, interrupt on index pulse: - fixes 'write protected' message while formatting read-only disk images 2005-05-06 David Heremans * MSXtar Work-In-Progress: - limited disk/partitions to 65535 sectors for now to solve the 'create disk of 32MB' problem. - improved bootsector guessing in the MSXtar constructor and commented it out already :-) - check against directory removals done by the emulated MSX - fixed some compile warnings 2005-05-05 Patrick van Arkel (vampiermsx@gmail.com) * Added trainers.tcl to the scripts directory - This file will enable the users to 'cheat' games 2005-05-03 Wouter Vermaelen * Console refactoring: - simplified code / fixed a bug * Use Tcl_DeleteCommandFromToken iso Tcl_DeleteCommand to unregister TCL commands: is safer when the user uses 'rename' on the commands * Correctly fill in the 'LBA size' field in the IDEHD 'Identify Block': patch made by Adriano Camargo Rodrigues da Cunha 2005-05-03 Wouter Vermaelen * Fixed -nosound option: - also marked as deprecated 2005-05-04 David Heremans * MSXtar Work-In-Progress: - new chdir,mkdir and dir command. - registering of IDEHD now done by the IDE controller which adds a Master or Slave indication to the name - enabled '.' and '..' support in some MSXtar routines - while cleaning up the code I added some verbose error messages in case of failure or wrong usage 2005-05-02 David Heremans * MSXtar Work-In-Progress: - partition info per DiskContainer device - new format and useFile command. - renamed getDir/AddDir to import/export - IDEHD import seems to work :-) - 'create'-command works but IDE sector 0 is not fully correct yet. - extra documentation file concerning the filemanipulator 2005-04-29 Patrick van Arkel (vampiermsx@gmail.com) * added a new rom database after some cleanups 2005-04-28 Daniel Vik (daniel@vik.cc) (commited by Patrick van Arkel) * added support for windows timers * fixed directX sound driver for win32 * added RealTime.cc (Please talk to Daniel about line 96) 2005-04-28 David Heremans * MSXtar Work-In-Progress: - the IDEHD is now accessible for the FileManipulator. - partition support is comming along nicely. - you can already do a 'getDir' to export an MSX-IDEHD partition to your host-OS. No importing yet - untested create dsk image code with partition support :-) 2005-04-28 Manuel Bilderbeek * Fixed a small bug in IDE HD. 2005-04-25 Wouter Vermaelen * Experimental directX sound driver for win32: - I don't have a windows machine so this code is NOT TESTED 2005-04-24 Manuel Bilderbeek * Added EXPERIMENTAL AND UNTESTED build support for the following CPUs. DEC Alpha, ARM, HP PA-RISC, IA-64, Motorola 680x0, MIPS (Big and Little Endian), IBM S/390. Everything should work (endianness is OK), but we have no systems to test on. Let's wait until someone complains that it doesn't work and then fix it (if needed at all). 2005-04-23 Wouter Vermaelen * Extended IPS patch support: - support IPS files with internally overlapping regions - support IPS files that extend the orginal file size * Added sound_driver setting: currently only 'null' and 'sdl' drivers 2005-04-21 Maarten ter Huurne * Made openMSX relocatable on Mac OS X. It looks for the "share" directory first in the directory containing the executable and the search goes up one directory until it is found. 2005-04-21 Wouter Vermaelen * Split Mixer in generic sample generation part and sound system dependant sound output part: - preparation to support other sound systems later (eg DirectSound) 2005-04-20 David Heremans * MSXtar Work-In-Progress: - using the temporary addDir/getDir you can now import/export host-directories (and its subdirs) into a dsk image. - Creating some extra classes to later on facilitate IDEHD registration with FileManipulator, and add FileManipulator functionallity to work with dsk-images without the use of drives of a running MSX session. 2005-04-19 Manuel Bilderbeek * Added support for Sparc CPUs. 2005-04-14 Wouter Vermaelen * MSXtar cleanup / fixes: - fixed compilation on windows (not actually tested): the type field 'd_type' in the struct 'dirent' is not generally available (not on windows for example) - lots of small cleanups (mainly layout) 2005-04-13 Wouter Vermaelen * Refactored V9990 'renderUntil' related code: should fix pixel accurate rendering 2005-04-13 David Heremans * Got the needed routines to add files/subdirs to a dsk image into msxtar code.The code compiles but doesn't work yet. Going from an all-in-memory model to a one-sector-at-a-time model introduced a lot of partial (and untested) rewrites and some quick hacks. 2005-04-11 Wouter Vermaelen * Implemented V9990 vertical scroll rolling in Bx modes 2005-04-09 Wouter Vermaelen * Improved SCC sound quality - during (very) short periods of silence, waveform counters should continue to increase (major improvement) - copied filter code from BlueMSX (minor improvement) * Enabled pixel/line accurate rendering for V9990 (WIP) 005-04-09 Manuel Bilderbeek * Switched the two YM2413 cores again. Okazaki is now default, because it sounds better now. Regarding drums, some sound better in Okazaki, some in Burczynski (e.g. the cymbal). Ideally the drums should be switchable and the normal FM should always be Okazaki. Thanks to Wolf for judging the sound quality. 2005-04-04 David Heremans * Actually trying to get the format routines from the original msxtar into openMSX. The idea is that this new class will perform the real work, and the File/DiskImageManipulator will invoke msxtar as needed 2005-04-05 Wouter Vermaelen * Fixed / cleaned up FileManipulator and RamDSK code: still TODO: - proposal: rename FileManipulator to DiskImageManipulator? - proposal: change "diska ramdsk" to "diska -ramdisk []" (note: ramdsk vs ramdisk (or just ram?)) - keep ramdisk contents when disk is ejected/reinserted - automatically format ramdisk on first insert * Simplified all SectorsBasedDisk subclasses 2005-04-04 David Heremans * Filemanipulator: tab completion. 2005-04-02 Maarten ter Huurne * Refactored AY8910Interface and renamed to AY8910Periphery. Main difference is the discovery that peek and read actually are the same thing on this interface, not just in the implemenation but in the conceptual model as well. 2005-04-01 Manuel Bilderbeek * WIP: make Okazaki core more like 0.61 * Swapped default and alternative YM2413 cores, because Okazaki core is very broken at the moment. CHECK points need to be checked by Wouter still 2005-04-01 David Heremans * Next step to integrate msxtar into openMSX: The creation of the RamDSK class, to allow ramdisk like dsk usage Doesn't seem to work yet though :-) 2005-04-01 David Heremans * First steps to integrate msxtar into openMSX: The creation of the FileManipulator class 2005-03-31 Wouter Vermaelen * More YM2413 fixes (ported from v0.55) * Swapped default and alternative YM2413 cores: is easier to test this way, if results are good, this might stay the default order 2005-03-29 Manuel Bilderbeek * Tried to adapt Okazaki YM2413 core in openMSX to make it look more like the original code (version 0.55, from NLMSX, thanks Frits). WIP! 2005-03-28 Wouter Vermaelen * Handle TCL events in openmsx event loop: - makes Patrick's webserver script work - preparation for Tk integration 2005-03-25 Herman Oudejans * fixed -control stdio on windows. With this option, the StdioConnection was not created. 2005-03-21 Wouter Vermaelen * Split CliComm in CliComm and CliServer: - fixed assert on startup (CliComm must be instantiated in main thread) * Added cheat.tcl: written by Patrick van Arkel see share/scripts/cheat.tcl for a short explanation 2005-03-19 Wouter Vermaelen * Implemented step_in, step_over and run_to as TCL procs * Try to listen on ports 9938-9958 (iso just 9938), and print a warning (iso crash) when none of these is available 2005-03-18 Wouter Vermaelen * Fixed crash on missing argument for 'debug set_bp/remove_bp' * Implemented "debug disasm" command: with this command Boukichi's 4 debugger commands (offered as a patch on openmsx-0.5.1) can be implemented as simple TCL scripts 2005-03-17 Wouter Vermaelen * Tiny SDLGL improvement: - use glRect() to draw rectangles with a single color iso GL_QUADS * Experimental: enable window resizing in GL renderer - For some reason it doens't work yet in character modes - I read that on windows you need to reload all textures after a resize. I couldn't test this but if it's true resizing currently doesn't work in windows - By default the resizing is disabled, to enable it comment out line 110 in src/video/SDLGLVideoSystem.cc 2005-03-16 Wouter Vermaelen * Fixed MSX-AUDIO sample RAM detection: UR always detected 256kb AR always detected 0kb both are fixed now 2005-03-14 Wouter Vermaelen * Fixed minor(?) rounding error in SCC 2005-03-14 Wouter Vermaelen * Split CliComm class in CliComm and CliConnection: helps to keep the c-macros defined in windows.h more local * Only accept connections from local host: it's still a security risk (hostile local users) but much less already. 2005-03-13 Manuel Bilderbeek * Implemented soundlog toggle command. * Implemented tabCompletion for soundlog command and partially for after command * Stop logging sound when frequency setting is changed. Alternative: ignore frequency change when logging sound. 2005-03-13 Herman Oudejans * Fixed win32 compile errors TODO: - 2 warnings - better integration of wsock32 in the buildsystem 2005-03-12 Manuel Bilderbeek * Added basic code to record openMSX sound to wav file. It is not used yet, but one can test it by uncommenting 2 lines. * Added soundlog command to start and stop recording of sound. There is still a lot TODO - see the comment in Mixer.cc 2005-03-12 Wouter Vermaelen * Added socket support: - openmsx now listens to incomming connections on TCP/IP port 9938 when a connection is established the same communication is possible as with the CliComm stuff over stdio - For the moment port 9938 is open for everyone: security hole! Sockets should be explicitly enabled and by default only for local connections 2005-03-11 Wouter Vermaelen * Fixed various warnings: - doxygen warnings - compiler warnings while compiling with -Wall -Wextra - previous compiler warings with also -DNDEBUG 2005-03-10 Wouter Vermaelen * Added HQ2xLite scaler: Resulting image is close to hq2x but can be calculated a lot faster See comments at the top of HQ2XLiteScaler.cc for details. * Changed include guards from __FOO_HH__ to FOO_HH: Identifiers that contain a double '_' or that start with a '_' are reserved for system headers. Currently our include guards work but it might give problems in the future. 2005-03-08 Wouter Vermaelen * HQ2xScaler speedup 2005-03-05 Maarten ter Huurne * Released openmsx-0.5.1. 2005-03-05 Manuel Bilderbeek * Added Sony HB-F1II config and corrected HB-F1 config. 2005-03-05 Maarten ter Huurne * Added support for Checkmark FM Stereo PAK. The stereo effect is not yet emulated, but it works fine in mono. Thanks to Albert for the config XML. 2005-03-04 Wouter Vermaelen * Also accept the enter key on the numerical pad in the console 2005-03-03 Wouter Vermaelen * In deinterlace mode render always two consecutive frames: When every other frame is skipped deinterlacer worked on 1 new frame and 1 very old frame. Fixed by rendering (not necessarily drawing) always two consecutive frames. 2005-03-03 David Heremans * Replaced 'fallback LEDs' with variant of set1 2005-03-02 Wouter Vermaelen * Last minute db format change: type for normal roms is now structured like this normal 0x4000 ... * romtypes should start with capital (e.g. 'Normal' iso 'normal) 2005-03-01 Wouter Vermaelen * Don't send LED events when LED status didn't change: fixes the slowdowns in sphere 2005-02-28 Wouter Vermaelen * Fixed warnings while compiling with -Wextra (all harmless) 2005-02-27 Wouter Vermaelen * video code was not exception safe, fixed it: - when an excpetion was thrown some objects were not deleted or even deleted twice * Accept sha1sums in db in both upper and lower case * Fixed debug reading from ioports 2005-02-27 Manuel Bilderbeek * Also check if entries have a child. Fixes Synthesizer. 2005-02-26 Patrick van Arkel * Updated the softwaredb.xml thanks to Mars2000you for providing an updated version of his rom list. 2005-02-26 Wouter Vermaelen * Renamed new db to softwaredb.xml * added new db: thanks a lot to Vampier for creating the new db and tools 2005-02-21 Wouter Vermaelen * fixed cassette WavImage DC correction: forgot to properly clip signal 2005-02-21 Wouter Vermaelen * Replaced 'plain' mapper type with 'mirrored' and 'normal', makes it easier to implement the new database mapper types: - for backwards compatibility 'plain' is treated as an alias for 'mirrored' - it's also possible to specify the start address of the rom like this 'mirrored4000', 'normal8000', ... (start address must be a multiple of 4000) * Fixed parsing of romtype for 'plain' roms in database 2005-02-19 Wouter Vermaelen * Update for new romdb 2005-02-19 Manuel Bilderbeek * Updated the manuals a bit more, regarding C-BIOS 0.20 and support for Mac OS X and OpenBSD. Maarten, please check and fix if needed. 2005-02-18 Wouter Vermaelen * Implemented frameskip for gfx9000: I mostly copied code from V99x8 renderer, we might want to factor this common code out in the future 2005-02-17 Wouter Vermaelen * Added locking to EventDistributor: There was a race in EventDistributor (long time already). Today I got a crash because of this race (irreproducible), so apparently it's hard to trigger. I hope it's fixed now. * More P1 mode performance tweaks 2005-02-16 Wouter Vermaelen * Fixed sprites in P1 mode: - Erik did all the hard work, I just had to fix one line ;-) - Battle Bomber works now! * Fixed color of backdrop color in P1 mode * Optimized P1 rendering a bit: just some tweaks, algorithm needs to change for really better performance (Eric already has some ideas I believe) 2005-02-16 Eric Boon * Initial implementation P1 sprites (~15 fps :-/) - HiSpec Snowfall demo shows wrong sprite patterns 2005-02-14 Wouter Vermaelen * Fixed more compiler warnings (all harmless): compiled with gcc version 4.0.0 20050212 (experimental) * Initial support for new rom database format: - both old and new format are supported - support for new format is very minimal, for example lang="xx" attributes are ignored 2005-02-13 Maarten ter Huurne * Added build support for OpenBSD (3.6 RELEASE, to be exact). Thanks to Ariane for testing! * Updated C-BIOS to 0.20, including new directory structure. 2005-02-13 Manuel Bilderbeek * Rerenamed ROM types that we already agreed on for the new standard 2005-02-11 Wouter Vermaelen * Fixed compilation errors / warnings when compiling with gcc-4.0(exp) 2005-02-09 Manuel Bilderbeek * We forgot to replace "brokenFDCread" by "broken_fdc_read" in about 17 different config files, before 0.5.0! OOOPS! 2005-02-08 Wouter Vermaelen * Reduced the 'black flashes' in SDLGL renderer: see comments in Display::repaintDelayed() for details * Fixed switching renderer while in overscan mode (bug was introduced by me two days ago) 2005-02-07 Wouter Vermaelen * Added 'none' icon set * Fixed a (the?) 'pure virtual method called' bug: an Alarm object was deleted in main thread while it was executing in another thread 2005-02-06 Wouter Vermaelen * Fixed CPU tracing (patch created by Maarten) * Fixed(?) sporadic crash when switching renderer on MSX1: - this is quick fix, needs more work after release - needs lots of testing 2005-02-05 Manuel Bilderbeek * Split Philips VG 8020 config in VG 8020 and VG 8020/20. Penguin Adventure works on both now, when using the right ROMs. Thanks to Hans Otten for his kind assistance 2005-02-04 Wouter Vermaelen * Fixed all warning when compiling with icc * Fixed V9990 palette initialization when switching renderer (sdlhi <-> sdllo) 2005-02-03 Manuel Bilderbeek * Added extension for MSX-AUDIO 2. This is an Y8910 on the alternative I/O ports (C2/C3), without the MIDI part of the Music Module 2005-02-03 Wouter Vermaelen * Fixed harmless(?) UMR in AY8910 code 2005-02-02 David Heremans * Fixed a minor announce in the load_icon tcl script and added extra SDLLo checks and a TCL hint from Wouter 2005-02-01 Wouter Vermaelen * documented icon related settings * Fixed 13-bit MSX-AUDIO DAC 2005-02-01 David Heremans * An extra set of LED images. * Enhanced the load_icon tcl script 2005-01-31 David Heremans * Changed default led settings 2005-01-31 Wouter Vermaelen * Implemented V9990 SRCH command * XIMM bits (R#6) are ignored in Px modes * Implemented V9990 BMLL command * BMLL is always done on interleaved VRAM * Fixed V9990 VRAM interleaving: together with previous item fixes scrolling in power basic 2005-01-30 Wouter Vermaelen * When a new settings is created and a TCL variable with the same name is alreday defined, then take this value as initial setting value: fixes icon stuff defined in init.tcl when openmsx is started with enderer none (-control mode) * Only use one .filecache file for all rom pools: this file is put in the (writable) user directory 2005-01-29 Wouter Vermaelen * Extended "disk[x]" console command to accept IPS patches: diska [ [ [..]]] 2005-01-28 Wouter Vermaelen * Allow IPS patches for disk images: only on the command line, not yet in the console * Allow multiple IPS patches on the same rom/disk 2005-01-27 David Heremans * Updated the LED images. 2005-01-26 Wouter Vermaelen * Don't save "mute" setting, at least not until we have an OSD indication for this 2005-01-26 Manuel Bilderbeek * Updated documentation. TODO: MacOS X and C-BIOS stuff 2005-01-25 Wouter Vermaelen * Machine code executes faster is loop is aligned (on 16 byte boundary for athlon CPUs): I measured 1.5% speedup because of this 2005-01-24 Manuel Bilderbeek * Made a separate extension for MegaRAM Disk * Updated ROM types to new names in romdb.xml; also commented out some useless ROMs, because they only occur inside machines or extensions 2005-01-24 Wouter Vermaelen * Fixed Clock<> constructor: rounding is not needed(?) it's even wrong * Fixed tab-complettion for consolebackground 2005-01-22 Eric Boon * First steps towards V9990 P2 mode * Some P1 fixes 2005-01-21 Eric Boon * First steps towards V9990 P1 mode 2005-01-20 Wouter Vermaelen * Fixed some valgrind stuff (UMR, FMR) 2005-01-18 Wouter Vermaelen * Implemented V9990 IRQ stuff: not completely correct yet, but good enough to make the xor-demo work 2005-01-17 Wouter Vermaelen * Removed more #include dependencies * Fixed compilation errors on icc * Added missing #ifdef ASM_X86: should fix compilation on non-x86 machines 2005-01-15 Wouter Vermaelen * Refactored XMLElement related classes: preparartion to fix the 'order of construction of settings' problem (e.g. inputdelay) * Reenabled "inputdelay" setting * Implemented "load_settings" command: only the settings / keybindings / keyjoystick that are mentioned in the new settings file are changed, the rest stays unchanged * Implemented "escape_grab" command 2005-01-13 Wouter Vermaelen * Various small cleanups: mostly use auto_ptr to break #include dependencies (for non time crititical classes) * Also grab input when "grabinput" settings was already "true" when openmsx is started 2005-01-11 Wouter Vermaelen * Lookup original filename inside zip/gz for filetype detection: this fixes [ 1072797 ] Detect extensions if i use a zipped file too * Implemented rotational delay for WD2793: fixes [ 905031 ] Graphic problem in Peach up 2005-01-10 Wouter Vermaelen * Fixed gfx9000 border color 2005-01-08 Wouter Vermaelen * Z80 speedup: union optimization is actually a pessimization on modern CPUs (and an optimizing compiler) * Fixed [ 823686 ] console is included in frameskip and speed setting: also fading of console and LEDs was wrong 2005-01-05 Wouter Vermaelen * Changed command line parsing of IPS files and rom type: - There are two new options "-ips" and "-romtype" these must immediatly follow a ROM option. Examples: openmsx -carta USAS.ROM -ips USAS.IPS -romtype konami openmsx USAS.ROM -romtype konami -ips USAS.IPS openmsx -cart USAS.ROM -romtype konami openmsx USAS.ROM -ips USAS.IPS - The old format , is still supported but is deprecated, it will be removed in future versions. The temporary format ,, is already removed. It gives parsing problems in case of filenames that contain ',' itself. 2005-01-04 Maarten ter Huurne * Fixed initialisation of clock in autofire circuit. 2005-01-04 Wouter Vermaelen * Split Display.xx files in Display.xx and Layer.xx * Moved fps code from (V99x8) Renderer to Display: "openmsx_info fps" now also works for gfx9000 * Icon fade parameters can now be configured per icon image: for example it's now possible to never fade out an active FDD LED * Fixed crash when settings.xml had empty or invalid consolebackground * Added some LED images (drawn by David) and a script to load them 2005-01-03 Wouter Vermaelen * Implemented deinterlace for V9990 * Better frameskip implementation (skip more code) * Don't draw V99x8/V9990 when V9990/V99x8 is active * Made special videosource setting: don't allow to select gfx9000 source without gfx9000 extension 2004-12-31 Wouter Vermaelen * Fixed V9990 palette read-out * Completed V9990 YUVP and YJKP modes (palette part was missing) * Integrated blueMSX' HBI-55 improvements. Thanks Daniel! 2004-12-30 Eric Boon * Fixed dOxygen warnings 2004-12-30 Wouter Vermaelen * Fixed bug in V9990 cmds (address masking bug): underwater demo works now! * Support V9990 screen enable/disable bit * Implemented cursor in V9990 Bx modes 2004-12-29 Wouter Vermaelen * Added v9990cmdtracing setting 2004-12-28 Eric Boon * Improved V9990 simple scaler Fixes 'no V9990 updates' problem in M$ Windows 2004-12-28 Wouter Vermaelen * Implemented V9990 LINE command: MSX3D works now * Implemented V9990 CMMC command * Fixed V9990 cmd engine bug that could cause blue colors in 16bpp mode 2004-12-27 Eric Boon * Introduced FinishFrameEvent for V9990 2004-12-27 Manuel Bilderbeek * Rom type naming clean up part 1. TODO: romdb.xml, class/file names 2004-12-27 Wouter Vermaelen * Implemented "openmsx_info romtype" command: only the code, no actual descriptions yet * Split rom type names in standard names and alternative names: preparation for rom type naming cleanup * support for write mask in V9990 commands: gfx9000 parts in calculus work now! * Fixed "debug break" command 2004-12-26 Eric Boon * Improved V9990 YUV and YJK modes: copied bitmap conversion from V99x8 code 2004-12-26 Wouter Vermaelen * Integrated Adriano's MegaRAM diskrom patch * Fixed bug in reading from compressed files: zipped IPS files work now * Fixed (harmless) assert that got triggered on exit when IO ports were shared * Changed invalidateCache() method: - 2nd argument is now size in bytes iso in number of cachelines this loosens the dependency on the CPU class 2004-12-25 Wouter Vermaelen * Fixed crash on missing LED icon files 2004-12-24 Wouter Vermaelen * More V9990 stuff - implemented interlace modes (no de-interlacing yet) V9BMP shoud now work completely - made palette debuggable - read palette registers hack to make calculus work - stubbed unimplemented cmds - implemented PSET cmd shifter: shifter part in calculus now shows something, colors are still wrong because of missing WriteMask(?) in commands - implemented CMMM cmd (but not verified that it actually works) - added BMXL and BMLX cmds (still have bugs though) - implemented horizontal scrolling, not per-pixel and no rolling yet, but enough for page-flips 2004-12-23 Wouter Vermaelen * Tried to make the gfx900 parts in calculus work (not yet succeeded) - implemented LMMM command - added very basic HR, VR status bit support - bugfix in LMMC command 2004-12-22 Wouter Vermaelen * simple (slow) implementation of V9990 LMMV command 2004-12-21 Wouter Vermaelen * a few V9990 fixes: - unimplemented cmds should still finish - implemented CE and TR status bits - YUV, YJK conversion formula's were wrong U and V are 6 bit signed and resulting R G B values must be clipped to 0 .. 31 autumn.g9b (YUV image) still looks wrong though 2004-12-18 Wouter Vermaelen * Cleanup/optimize V9990BitmapConvertor * Store V9990 palette as GRB iso RGB: - format in V9990 video RAM is also GRB, emulation is faster if both use the same format 2004-12-16 Wouter Vermaelen * Turn off all LEDs when MSX is powered down 2004-12-15 Wouter Vermaelen * Large cleanup: - prefer not to use the 'using' statement in header files, in implementation files it is ok - removed unnecessary #include statements * Use FilenameSetting iso StringSetting for all filenames: previously it was only possible for already existing files * Fixed UMR in WD2793 formatting routine 2004-12-13 Wouter Vermaelen * Fixed TurboR DRAM support, TRCAS works now 2004-12-12 Manuel Bilderbeek * Removed the annoying [alpha] notice. It's clear enough we're alpha... :) 2004-12-10 Wouter Vermaelen * x/y-coord and on/off-image of the LED icons can be configured * icon fade delay and duration can be configured 2004-12-09 David Heremans * replaced the ips-patch separator. It is now also the ','-sign and updated the documentation 2004-12-09 Wouter Vermaelen * Refactored setting code: - redesigned class structure: settings no longer need to be non-inheritable 2004-12-04 Wouter Vermaelen * Fixed (+ cleanup) IPS patch code 2004-12-04 Herman Oudejans * Made a quickfix for romloading in windows. Using another character for ips-patch separator would be highly recommended. ':' is used between drive and path in Windows. 2004-12-03 David Heremans * Added more code for IPS patcher, but it is not yet functional. 2004-12-02 Wouter Vermaelen * Added fading to console 2004-12-01 David Heremans * Preparations for integrated IPS patcher * Replaced the test OSD leds with something more fancy that shows the alpha channel of the png better 2004-12-01 Maarten ter Huurne * Moved coverage and z-index from LayerInfo into Layer. This also fixes an undefined memory read when Display is destructed. 2004-11-29 Maarten ter Huurne * Fixed base port of debug device. 2004-11-29 Eric Boon * Fixed broken build for non-GL systems * Improved V9990 Command engine a bit 2004-11-29 Wouter Vermaelen * Major CPU cleanup: replaced macro hack with c++ templates * Reduced size of internal mixer buffer: - should reduce sound latency a bit - sound quality seems not affected, but it needs a lot more testing. So please test!!! 2004-11-27 Manuel Bilderbeek * Implemented a fallback for the detectGeometry function in Disk for sectorbased disk images. Fixes booting of SVI-738 CP/M disk, which doesn't have a valid MSX bootsector :) 2004-11-26 Eric Boon * Add V9990 Command Engine * Implemented LMMC 2004-11-22 Wouter Vermaelen * Merge romdb.xml in user and system dir 2004-11-20 Wouter Vermaelen * Changed buffer managment in sound code: - Mixer now allocates/deallocates buffers iso the sounddevice - preparation for run-time changeable frequency/samples settings * Changes to 'frequency' and 'samples' settings takes immediate effect, no longer needed to restart openMSX * Value of 'samples' setting must always be a power of 2 2004-11-15 Wouter Vermaelen * Only send events on actual changes: * Use different image for led on/off, fade out the image if it doesn't change for some time 2004-11-14 Wouter Vermaelen * Experimental: alternative Mixer implementation - generate audio in main emulation thread - CPU-timed samples sound much better now (turbor PCM, PSG samples, ..) 2004-11-14 Wouter Vermaelen * Initial version of OSD LEDs: very minimal version, it uses /share/skins/led.png for all LEDs. Icons are still shown at fixed positions 2004-11-13 Wouter Vermaelen * cleanup dasm code: * fixed 'cmdtiming setting' * use events for LEDs: preparation for OSD leds 2004-11-10 Wouter Vermaelen * Improved WD2793 timing: added 15us delay between data read/write in sector read/write cmds 2004-11-08 Wouter Vermaelen * Enabled "cputrace" setting also in non-debug versions: - There should now be very little overhead when tracing is not enabled. Before it was 1 if per Z80 instruction. 2004-11-08 Joost Damad * updated debian/rules: fixes by Goedson Teixeira Paixao 2004-11-06 Wouter Vermaelen * a few small improvements * clear ram on power off/on 2004-11-03 Wouter Vermaelen * Moved speed and throttle setting to GlobalSettings: as cleanup and as preparation for Mixer changes * Changed float to double everywhere: On modern CPUs doubles and float are equally fast. However mixing floats and doubles in the same expression is slower because of the extra conversions. In some places we need the extra precision, so using double everywhere is the easiest (and faster). If you have large datasets floats can be faster than doubles. Not because of faster calculation, but because of less memory transfers (float 4 bytes / double 8 bytes). For openMSX this doesn't matter. 2004-11-02 Wouter Vermaelen * Removed Disk and Tape BIOS patches * Fixed cassetteplayer noise 2004-11-01 Wouter Vermaelen * small VDP fix: missing sync() on r#7 change in GRAPHIC7 mode with screen disabled 2004-10-31 Maarten ter Huurne * At end of HMMC and LMMC, TR should not be reset. * Reading and writing the COL register should reset TR. * VR status flag flips at start of left border. 2004-10-26 Eric Boon * Improved V9990 displaying: - proper PAL & NTSC imaging in Bx modes 2004-10-25 Maarten ter Huurne * Non-maskable interrupt (NMI) implementation: - was half implemented already; now it's fully implemented - moved edge detection from old nmiEdge() to new raiseNMI(): an NMI request could get lost if the NMI line was raised and lowered within 1 CPU instruction (a mostly theoretical case) - IRQHelper can raise either IRQ (maskable) or NMI - this is preparation for ColecoVision support * Moved MC6850 from "sound" directory to "serial" directory. 2004-10-23 Maarten ter Huurne * Removed slow_drain_on_reset RAM configuration parameter. All our current configurations had it set to "false". And we don't really know how the drain works nor what should be considered "slow". * Removed from the configuration XML files. 2004-10-22 Maarten ter Huurne * Added build support for NetBSD. Based on a patch submitted by xtraeme, see bug 1052115. 2004-10-19 Wouter Vermaelen * Reused MMX optimized routines in Deinterlacer 2004-10-19 Wouter Vermaelen * Fixed SETetisDongle: unused bits should be 1 iso 0 * reenabled "I/O ports" debuggable, but renamed to "ioports" * added MSXDevice::peekIO() method: - Reading from ioports debuggable no longer influences emulation state - Not yet implemented for all devices (not for V99x8, V9990 and MSXAudio). For these devices peekIO() returns 0xFF 2004-10-19 Joost Damad * sync with debian/ * updated manpage and control file * support for cleaning up CVS/ dirs for "install" and "dist"; still commented out 2004-10-18 Eric Boon * GFX900 emulation - Bx modes & belonging palettes - start of SDL Rasterizer, dummy GL rasterizer 2004-10-18 Maarten ter Huurne * Released openmsx-0.5.0. 2004-10-18 Wouter Vermaelen * forgot some "up"->"release" renames * Added MMX optimizations in Scale2x scaler 2004-10-17 Maarten ter Huurne * Separated frameStart and frameEnd for SpriteChecker. Fixes asserts when using "none" renderer. 2004-10-16 Wouter Vermaelen * Improved TC8566AF timing: - based on code from BlueMSX written by Daniel Vik - fixes corrupt gfx in "Swiss Demo" and "Gazzel" * For the renderer setting, take the value found in settings file (if any) as default value: - this fixes the "Catapult always uses SDLHi" problem * Also recognize zip files with extension ".ZIP" (uppercase) * Fixed reading 1st FAT sector in detectGeometry() routine * Fixes in Command Line Parser: - stuff like openmsx -h -machine turbor and openmsx -v -ext scc works now - code is not very clear, should be rewritten after release * Created V9990DummyRasterizer: - fixes crash when renderer "none" was selected when gfx9000 extension was plugged in * Added scripts/cycle.tcl * Added workaround for "renderer none bug": need to investigate this after further the release * Renamed "up" and "down" key modifiers to "release" and "press": names conflicted with the "up" and "down" cursor keys 2004-10-15 Wouter Vermaelen * Fixed coredump on missing arguments on the command line: e.g. "openmsx -diska" 2004-10-14 Maarten ter Huurne * Added default key binding: ALT-Enter for full screen. Windows users are familiar with this hotkey. * Fixed bug: search for TCL again on every "make probe". 2004-10-13 Maarten ter Huurne * Disabled "I/O ports" debuggable: - it reads I/O ports with side effects, which can trigger assertions - the name "I/O ports" is not suitable as a file name for "save_all" We can re-enable and then fix it after the release. 2004-10-13 Joost Damad * import of debian/ * some non-intrusive changes to the build/ dir * Contrib moved when installed to share/ * bad timing of changes :( * not softlink, but symbolic link 2004-10-12 Wouter Vermaelen * Correctly restore saved cpu freq settings: - When z80_freq_locked was saved as 'false', you had to do set z80_freq_locked true ; set z80_freq_locked false to really get the wanted behaviour. - Thanks to patatof for reporting this bug. 2004-10-11 Wouter Vermaelen * fixed scc and Panasonic_FS-CA1 extensions: mappertype tag was moved * DirAsDsk fix: - check for null ptr from localtime() - this fixes (not verified) a crash in win32 when DisAsDsk is used with files with weird dates (1913-11-16 or 2023-08-07) 2004-10-10 Maarten ter Huurne * Fixed assert in SimpleScaler when interlace is on and deinterlace is off. 2004-10-10 Herman Oudejans * Fixed getting user dir when "My Documents" is set to the root of a drive in windows. 2004-10-09 Maarten ter Huurne * test release openmsx-0.5.0-test2 (Bussum 2004) 2004-10-08 Maarten ter Huurne * Fixed crash if openMSX exits without starting emulation. * Ignore old-format settings.xml at startup instead of aborting. * Fixed help option if no settings.xml exists. 2004-10-07 Manuel Bilderbeek * Renamed save_settings_at_exit to save_settings_on_exit * Renamed FrontSwitch to FirmwareSwitch everywhere in the code 2004-10-07 Wouter Vermaelen * Fixed crash on exit in FreeBSD: - was order of destruction of global objects problem * Fixed Screenshot code in 16bpp: conversion routine to 24bpp read 2 bytes outside the array. Although it didn't actually use these bytes, it could trigger a segfault. Fixed by using the SDL convserion routines (probably faster as well). * Don't plug printer logger with an invalid log file 2004-10-06 Manuel Bilderbeek * Renamed frontswitch to firmwareswitch 2004-10-06 Wouter Vermaelen * Only allow existing machines to be selected with machine setting. * Fall back to "cbios-msx2" when the selected machine no longer exists. * Removed warning for missing settings.xml 2004-10-05 Wouter Vermaelen * saving_settings didn't work when file didn't exist yet * updated all machine configurations to new file format: thanks to mth for writing the convertor script! * test release openmsx-0.5.0-test1 * fixed sprite color bug: in planar modes the sprite color table was not read correctly (bit masking error) 2004-10-04 Wouter Vermaelen * Don't use exceptions to report unconnected drive in ready() method: - this was quite heavily used in the MSX boot sequence, and caused 100% CPU usage for several seconds. * Increased speed of type command * Moved location of tag to a more logical position * tag needs an id attribute to give a warning in case the SHA1 doesn't match * default binding for pause key must be "toggle pause" iso just "pause" * renamed tag to * Check the DOCTYPE SYSTEM part when reading in xml files 2004-10-03 Maarten ter Huurne * Updated configuration converter. 2004-10-03 Wouter Vermaelen * Fixed simple * Don't autodetect mapper type for roms in machine configs * Oops, the guessLocation routine in RomPlain still used the old config format: this broke the firmware on some machine (e.g. Panasonic FS-A1F) 2004-10-03 David Heremans * Fixed Tetris 2 special edition dongle 2004-10-02 Wouter Vermaelen * Force PSG portA to be programmed as input port: some programs (e.g. Match Maniac) wrongly program portA as output, but on most(?) MSX machines this works normally (e.g NMS8250) * Fixed initial value of mode settings * correctly give "write protected" err msg on read only disk: without the head loaded delay our WD2793 detected too fast that the disk was write protected (too fast for the disk rom software) * assertion in Clock was a bit too strict: very low clock frequencies (~1Hz) are not allowed (because we use a 32bit variable iso 64 bit for speed). But the assertion was already triggered by frequencies around 100Hz. Renshaturbo circuit uses such low frequencies. 2004-10-01 Wouter Vermaelen * Improved disk geometry detection heuristics * Fixed save_settings command: - when settings were loaded from system wide settings.xml file, save them to user settings.xml file - when settings were loaded from a user specified settings file, save them to that file * fixed quoting in tab-completion: the chars [ ] $ must be quoted in TCL * use xmlFree() iso free() to release memory from libxml 2004-09-30 Wouter Vermaelen * Removed the MSXConfig::loadConfig method that was resposible for the media settings bug. It's no longer used now. * Fixed type commando: sometimes the first chr was missed * Fixed "-setting" command line option: Settings were loaded wrong when the -setting option was given. Was a problem in the order of creation of settings (no settings may be created before the settings.xml is loaded). Current code is a bit fragile in this respect. Refactor it after the release. 2004-09-29 Wouter Vermaelen * Removed settings.xml from CVS * media settings (diska, diskb, cassette) were wrongly saved: - once a "save_settings" command was executed with a disk inserted from the commandline this disk was always used, even if in the next run a different disk was specified. - should media settings be saved? Current (fixed) implementation does not save them to not break catapult. But should they be saved in the future? 2004-09-28 Wouter Vermaelen * Moved default keybindings from init.tcl to HotKey code * Updated commands.txt * Use built-in default values for KeyJoystick in case the config section is missing in the settings file 2004-09-27 Wouter Vermaelen * Use #ifdef iso if around asm routines * Added normal-MMX (non-ext-MMX) routines for every ext-MMX routine * Made a setting for "user directories" * Simple scaler 16bpp scanline optimization: - added ext-MMX routine, improves speed from 69s to 51s 2004-09-26 Arnold Metselaar * Let Keyboard and KeyJoystick release all keys when the console becomes active. 2004-09-26 Wouter Vermaelen * Don't print "couldn't find file" warnings on startup 2004-09-26 Maarten ter Huurne * At end of HMMC and LMMC, CE is reset immediately, but TR is reset the next time S#2 is read. Fixes Andorogynus. Thanks to the anonymous poster on our forum who pinpointed the change which made this bug surface first. Even though reverting that change was not a solution, it did point to the HMMC command timing being the problem. 2004-09-24 Maarten ter Huurne * Fixed assert in Mixer on unmute if initial state was muted. * Load settings file specified with "-setting" from UserFileContext, but load the files it refers to using SystemFileContext. Fixes console look when openMSX is started with "-setting" option. 2004-09-24 Wouter Vermaelen * Take default settings value when saved value is no longer valid * Integrated blur scaler and simple scaler: 2004-09-23 Wouter Vermaelen * Implemented TC8566AF format command: based on code from BlueMSX written by Daniel Vik * Don't save soundchip mode setting: it gave conflicts with the mode setting in hardwareconfig.xml 2004-09-23 Maarten ter Huurne * Initialise I register to 0, instead of 0xFF. Fixes Pennant Race bug. Thanks to Daniel Vik for finding the cause! 2004-09-21 Wouter Vermaelen * Added "save_settings_at_exit" setting 2004-09-20 Wouter Vermaelen * Initialize the msx sound devices even if there is no openMSX sound: - solves UMR (and possibly crashes) in case openMSX is started with "-nosound" or for some reason sound is not available 2004-09-19 Maarten ter Huurne * Cleanup of layer system, continued: - put common code in new VideoLayer class - implemented "videosystem" setting - implemented SDLV9990Rasterizer, which shows a test pattern If you start openMSX with "-ext gfx9000" and on the console type "set videosystem gfx9000", you will see the test pattern (SDLHi/Lo). There are some bugs left, but I had to commit to keep track of the many changes. I'll try to fix the bugs as soon as I can. * Do not save "power" and "pause" settings. Fixes starting from Catapult. * Withhold blocked events from other NATIVE listeners as well. Fixes "set console off". * Delay reInit when power is turned off. Fixes "set power off" in R800 mode. * Initialise lineContent in SDLRasterizer's constructor. Fixes asserts when switching to SDLHi when paused. 2004-09-18 Wouter Vermaelen * Rewrote saving of settings code: - All settings are now saved by default, only exception is "console" setting. But there are probably more that don't need to be saved. - settings.xml fileformat has changed again. All settings are now saved in a uniform way. - Code is a lot simpler now * Default rom pools: added /share/systemroms and /share/systemroms as default rom pool locations. The use can still add more pools. * Fixed crash on "save_settings" when there was no settings.xml file loaded 2004-09-18 Maarten ter Huurne * Cleaned up layer system: - "alpha" was not really alpha, renamed to "coverage" - explicit Z value instead of toFront/toBack - preparation for V9990 layer The cleanup is not finished yet. 2004-09-18 Reikan * Converted the macro __WIN32__ to _WIN32. Please use _WIN32 instead of __WIN32__ now. _WIN32 is more popular in Win32 compilers. Although we require gcc3 for now, it would be safer in future. 2004-09-15 Maarten ter Huurne * Added new type of event listener (DETACHED). * Fixed timing bug in VDP command engine: replaced "clock.advance" by "clock.reset" when starting a command. Start time of a new command is not ahead of end time of last pixel of previous command if previous command was not finished yet. Fixes assert in The Ant demo (found by Jorito). 2004-09-15 David Heremans * Added the joystick protection of 'Tetris Special Edition II' 2004-09-14 Maarten ter Huurne * Cleaned up renderer switching in the new layered display system. 2004-09-14 Wouter Vermaelen * Don't assert when there are two Moonsounds (not really usefull, but in a real MSX it's also possible to have multiple Moonsounds) * Changed settings format for volume/mute settings: * Added iomap command to check what devices is on which I/O port 2004-09-11 Wouter Vermaelen * Implemented RTC mode as a setting, is now saveable * "set " now returns the actual new value of the setting (e.g. "set gamma -1" returns 0.1 iso -1) 2004-09-10 Wouter Vermaelen * default machine is now configurable via a setting. Of course this only has effect when openMSX is restarted. Although in the future we may switch machine between a power off/on cycle. 2004-09-09 Wouter Vermaelen * Z80 updates: - fixed P-flag in OUTI and INI instructions - calculate DAA table * Blur scaler: - small optimization in normal-MMX code (non-extended-MMX) - fixed bug when scanline=0 (recent optimization requires scanlineAlpha <= 255, not <= 256) 2004-09-08 Wouter Vermaelen * Created "frequency" and "samples" setting: Changing this setting only has effect the next time openMSX is started (will be changed later, but it requires some refactoring in the sounddevices). * Implemented "help set []" command: Since the switch to TCL it was no longer possible to query the setting descriptions. Fixed now. 2004-09-06 Wouter Vermaelen * Blur scaler speed-up: use ext-mmx instructions "pavgb", "pshufw", "pmulhuw" * Fixed bug in Z80 OTIR like instructions (bug found by mth): fixes equalizer in FDD1 2004-09-05 Wouter Vermaelen * Converted more extensions to new config format * Allow saving of settings with 'non-xml-tag' characters 2004-09-04 Wouter Vermaelen * Allow machines (extensions) descriptions in both /machine.xml /machine/hardwareconfig.xml * Converted a few more extensions to new config format 2004-09-02 Wouter Vermaelen * renames in settings.xml: "renderer" section --> "video" "mixer" section --> "sound" * volume and mode (mono, stereo) settings are saved now 2004-09-01 Wouter Vermaelen * Refactored settings: - creating saveable settings is easier now - settings.xml format changed slightly: tag name is now the same as the name of the setting. So if you're not using the default settings.xml file you need to make at least changes --> --> --> 2004-08-31 Wouter Vermaelen * Renderer settings can be saved now 2004-08-30 Wouter Vermaelen * Simplified console code * All console settings are saved now 2004-08-29 Wouter Vermaelen * Fixed Uncaught exception on "openmsx -v" 2004-08-28 Maarten ter Huurne * Fixed bug when palette index 0 is written and transparency is enabled. This bug was visible as gray rectangles in the Gazzel intro. 2004-08-28 Wouter Vermaelen * Added 16bpp MMX simple scaler routines * Proof-of-concept: saving of settings (settings.xml) - added a new command "save_settings". There is no autosave at exit yet. - for the moment only very few settings are actually saved. Only consolecolums, consolerows, consoleplacement 2004-08-27 Manuel Bilderbeek * Added initial version of the openMSX FAQ: not finished at all, please edit! 2004-08-26 Wouter Vermaelen * BlurScaler 16bpp improvements: - use look up table instead of (complex) computations. Is almost twice as fast. Also used 10-bit precision iso 8-bit, so less rounding errors. 2004-08-25 Wouter Vermaelen * Don't copy HostCPU * Improved MMX code. I measured between 1% and 2% speedup: - a block of memory reads followed by a block of memory writes is faster than interleaved read and writes. Probably because write combining works better this way (larger bursts on the bus). Loop unrolling made this grouping possible. - Rearranging instructions (especially mul instrcutions) also gave a nice speedup. This was also possible because of loop unrolling. 2004-08-24 Wouter Vermaelen * Changed blur scaler for 16bpp: - do calculations in 24bpp mode to avoid visible rounding errors (not tested) 2004-08-24 Maarten ter Huurne * Moved screenshot code from VDP to Display. * Added extended-MMX versions of non-scanline scaling in 256-wide modes and both scanline and non-scanline scaling in 512-wide modes. Still only 32bpp. * Sound device cleanups: - Removed "user mute" which was unused. - Renamed "internal mute" to just "mute". - Mixer checks isMuted() instead of updateBuffer returning NULL. - Make sure reset() is called before registerSound(). Right now this doesn't really matter, but it is needed once we allow runtime insertion of extensions. * Refactored PSG: - Code in C++ style and easier to read. - Slight improvements in accuracy, probably inaudible though. - Some optimisations, but not enough profiling done yet to see whether they really matter. 2004-08-22 Wouter Vermaelen * 'set consolebackground ""' now removes the background image * Don't use MSX pause LED for openMSX pause status, instead send a (new) pause event. 2004-08-21 Wouter Vermaelen * Fixed assertion on "openmsx ok.dsk wrong.dsk" * Optimization: don't use TurboRCPUInterface on non-turboR machines 2004-08-19 Wouter Vermaelen * Fixed XML configuration stuff for IDE 2004-08-18 Wouter Vermaelen * Added "-nosound" command line option: - main raison to add it was faster profiling. Audio thread takes 50% of the time when running (far from realtime) under cachegrind, even though the sound was muted in openMSX. * Initialize SDL AUDIO subsystem: - AUDIO subsystem was never initialized. Apparently this isn't needed for Linux / Windows. But some platforms probably do need it. * Fixed "after time" and "after idle" console commands * CPU cleanup: removed historical cruft * Merged CPUInterface and MSXCPUInterface classes: - get rid of virtual method calls, and (possibly) inline them - code was written like this to be able to use the same CPU code also for the CPU in the MidiSaurus cartridge. If we still want to implement this, we should templatize the CPU class with on the CPUInterface instead. 2004-08-17 Wouter Vermaelen * Made tiny optimization in DynamicClock, however this gave a speedup of about 1.5% because this class is _heavily_ used in the CPU code: * Increased minimum CPU clock freq to 1MHz: - the new DynamicClock implementation can't handle very slow clock rates (slow meaning ~1Hz). But even before this change a clock of 100kHz didn't work correctly, I'm not sure why. 2004-08-15 Wouter Vermaelen * Added MMX optimizations for blur scaler 2004-08-14 Wouter Vermaelen * Added new 'blur' scaler: - this scaler implements the same blur effects as the SDLGL renderer already does (but then in software) - only tested with 32bpp, can someone please test 16bpp? - can still be heavily optimized using MMX assembly 2004-08-13 Wouter Vermaelen * Extended Scale2x scaler for hi-res modes (screen 6 and 7) 2004-08-12 Wouter Vermaelen * Extended hq2x scaler for hi-res modes (screen 6 and 7) 2004-08-09 Wouter Vermaelen * Removed CoRoutine stuff from CVS, it's no longer used 2004-08-07 Wouter Vermaelen * Allow multiple times the same extension (make id's unique) * ROM title (from romdb) is again visible in slotmap 2004-08-06 Maarten ter Huurne * Avoid syncs when VDP state changes when display is blanked and the border colour is not influenced by the state change. This allows the scaler to draw border lines more efficiently. * New feature in build system: version executables. See VERSION_EXEC in build/custom.mk (off by default). 2004-08-03 Maarten ter Huurne * Fixed ROMBAS mapper for 8K ROMs. Eat Blue! now works if you load it with "eatblue.rom,rombas". * Improved ROMBAS detection. Eat Blue! now works without forced mapper type as well. 2004-08-02 Wouter Vermaelen * Fixed some bugs I introduced yesterday * Another bug fix: HALT instruction was broken 2004-08-01 Maarten ter Huurne * Initial build system support for x86_64. No optimised compile flags yet. MMX code is disabled on x86_64 for now. 2004-08-01 Wouter Vermaelen * Removed CoRoutines again. Instead reversed the calling-sequence between MSXCPU and Scheduler: Previously the Scheduler scheduled both CPU and other stuff. Because of this the CPU needed to be able to pass control back to the Scheduler in the middle of a Z80 instruction. In the past we solved this by either: - Splitting all Z80 instructions in atomic parts and made the code resumable at a sub-instruction level --> very complex CPU code - call the scheduler (recursivly) from within the CPU code --> too complex CPU <-> Scheduler interaction, we had too many bugs related to this - Use CoRoutines to pause/resume the CPU code --> was only an experiment, stopped the experiment very early because I think the current solution is much simpler In the current solution we call the Scheduler from within the CPU (iso the other way around). Pausing/resume CPU code is now done by a simple function call. New code still needs cleanups, but I wanted to check it in early beacuse the CoRoutine stuff didn't compile yet on win32 (although it was easy to fix). * Use "string::size_type" iso "unsigned" in STL string manipulations: on x86_64 sizeof(string::size_type) is 8 while sizeof(unsigned) is only 4 2004-07-30 Maarten ter Huurne * Added CPU detection. Read the Doxygen comments of HostCPU for details. For now, debug prints are enabled, please check if dected capabilities match what you would expect for your CPU. * Added extended-MMX version of SimpleScaler (only 256-wide 32bpp). On my machine, it can scale 50% more pixels per second. * Added extended-MMX version of Scaler::scaleBlank. * Added extended-MMX version of SimpleScaler::scaleBlank. * Got rid of named operants: they're not widely supported. GCC 3.0 can't handle them according to the docs. GCC 3.2 can handle them according to the docs, but crashes (on mingw32). ICC cannot handle them. * Made pixel accuracy default. We usually have the most realistic option as default. In the past, pixel accuracy was too slow in many cases, especially when VRAM I/O was causing a lot of syncs. Those were eliminated a while ago for the most commonly used display modes. If you encounter a program running significantly slower in pixel accuracy than in line accuracy, please report it as a bug. 2004-07-26 Wouter Vermaelen * Experimental: use CoRoutine to simplfy and later optimize CPU / Scheduler interaction. Current patch is very minimal: it just adds CoRoutine without any optimizations or cleanups. 2004-07-25 Maarten ter Huurne * Removed support for 8bpp. It never worked anyway. 2004-07-24 Maarten ter Huurne * Split SDLRasterizer off from SDLRenderer: - SDLRenderer deals with EmuTime, is colour depth and zoom independent - SDLRasterizer deals with pixels, does not know EmuTime * Split GLRasterizer off from SDLGLRenderer. * Merged remainders of SDLRenderer and SDLGLRenderer into PixelRenderer. 2004-07-23 Maarten ter Huurne * Removed all SDL specific code from SDLGLRenderer. Maybe I'll rename it to GLRenderer in the future. Preparation for GLX renderer. * Init and shutdown in VideoSystem subclass, instead of init in RendererFactory subclass and shutdown in Renderer subclass. Applied to SDLGL, other systems to follow. * Applied to SDLHi/Lo and Dummy as well. 2004-07-22 Maarten ter Huurne * Changed scanline drawing from a post-processing operation to an integrated part of the "simple" scaler. As a result, drawing with scanlines is now equally fast as drawing without scanlines. Probably this means small computations can be done in cycles that would otherwise be wasted waiting for memory access. 2004-07-21 Maarten ter Huurne * Introduced display which manages multiple layers. Currently, the following layers exist: - background (TV snow) - renderer - console In the future, a second renderer will be added (for GFX9000). Also, OSD features are possible (such as status icons). The code has some rough edges, but it works. * Along the way, fixed console cursor blinking during pause. 2004-07-21 Wouter Vermaelen * a few small fixes 2004-07-19 Wouter Vermaelen * merged MSXDevice, MSXIODevice and MSXMemDevice in one class MSXDevice: - virtual inheritance can be removed because of this 2004-07-18 Arnold Metselaar * added Unicode.{cc,hh} with minimalistic conversion of UTF-8 to 8-bit Ascii * Keyboard.cc: Fixes to make the type command work properly - utf-8 -> ascii conversion in Keyboard::KeyKeyInserter::type(), - fixed bug in Keyboard::pressAscii() (index to asciiTab), and - corrected asciiTab[] 2004-07-15 Manuel Bilderbeek * Added tag with some child tags to XML. - should be added to other hardwareconfig files later as well (is mandatory) - optional for extensions? - there's no class associated with it now; it's only used to put info in the window border for now - child tags "manufacturer", "code" and "type" are now mandatory 2004-07-14 Wouter Vermaelen * Fixed MoonSound bug: When DL=0 go immediately to sustain phase. Fixes 'timpani' instrument for example. 2004-07-13 Maarten ter Huurne * Fixed nullpointer dereference when ABORT command is executed in "cmdtiming broken" mode. 2004-07-13 Wouter Vermaelen * Simplified SHA1 interface + cleanups 2004-07-12 Wouter Vermaelen * Preparartion for insert remove at run time: unregister memory / IO ports 2004-07-11 Wouter Vermaelen * Config file change: FDC type is no longer a sub type * Fixed RenShaTurbo * Config file change: grouped and tags in a new tag 2004-07-10 Maarten ter Huurne * Separated CPU and OS in build system. 2004-07-10 Wouter Vermaelen * Fixed loading of extensions * Fixed some bugs in slot structure config loading * It's now possible to insert a slotexpander extension 2004-07-04 Wouter Vermaelen * Fixed exception-safety problem in CassettePort constructor 2004-07-04 Manuel Bilderbeek * Added simple DC filter for Wave cassette images (subtract average) .wav files from MicroWAVer should work now. Please test this some more with other .wav images (e.g. from real cassettes) 2004-07-01 Wouter Vermaelen * Another config file format change: - use 'primary' and 'secondary' tags to specify slot structure - this proposal is still being discussed (especially for extensions), so this may change again 2004-06-28 Wouter Vermaelen * Fixed assertion in ClockPin 2004-06-27 Wouter Vermaelen * Get rid of ordering requirement in turbor hardwareconfig.xml 2004-06-26 Maarten ter Huurne * Replaced EmuTimeFreq by Clock and DynamicEmuTime by DynamicClock: - Fixes accuracy bug where fractions of ticks were discarded, causing problems with high-frequency reads of low-frequency timers. Thanks to Daniel Vik for reporting this. - Reduced the number of operations, especially operators. - Added Doxygen comments for the changed classes. * Improved MoonSound BUSY flag timing (not completely correct yet). 2004-06-24 Wouter Vermaelen * hardwareconfig.xml format change: replaced foo.. bar.. with .. .. 2004-06-23 Wouter Vermaelen * FDC config format changed: indicate number of connected disk drives iso drivenames 2004-06-21 Wouter Vermaelen * hardwareconfig.xml configuration file changes: - replaced .. with .. 2004-06-21 Manuel Bilderbeek * Fixed mix level (volume) bug in Moonsound, thanks to Albert and Wouter 2004-06-20 Wouter Vermaelen * bug fix: first destroy renderer before creating a new one, bug was introduced when using auto_ptr * bug fix: YMF278 is a stereo device 2004-06-19 Wouter Vermaelen * Fixed ROM loading bug when no SHA1 match was found and no filename was specified * A bit more robust config file parsing * Config file format change: - put roms in new hierarchical tag * settings.xml configuration file changes: - replaced .. with .. 2004-06-18 Wouter Vermaelen * Compiled with -Wall -W and fixed all warnings 2004-06-18 Manuel Bilderbeek * Fixed Floating Point Exception in Y8950Adpcm, which was triggered by 4Trax Songbook #1. Thanks to Eric for finding it and Wouter for providing the fix :) 2004-06-17 Wouter Vermaelen * Large configuration file code refactoring: - get rid of Config class, use directly XMLElement - no changes in config files * Use auto_ptr to manage ownership: - ownership is better documented - safer in case of exceptions 2004-06-15 Wouter Vermaelen * Config file releated cleanups (no changes in config files) 2004-06-14 Wouter Vermaelen * Added Date class to convert dates to and from string: there are library fucntions that do the same (strftime, strptime) but strptime is not available on win32 * RomPool cleanups / fixes / enhancements: it's now possible to list multiple pools in the settings file 2004-06-13 Wouter Vermaelen * Implemented RomPool: still needs heavy testing and cleanups 2004-06-07 Manuel Bilderbeek * Rerenamed "MSX-AUDIO MIDI" to "Music Module MIDI" 2004-06-08 Wouter Vermaelen * removed IO port registration for Mixrosol FDCs from the code, instead it must be specified in the config file (TODO) * Explicitly indicate ownership transfer in Device factories 2004-06-06 Manuel Bilderbeek * Moved mode setting of the RTC to settings.xml (converter still needs to be updated) 2004-06-03 Manuel Bilderbeek * More config file renames: - Audio -> MSX-AUDIO - Audio-Midi -> MSX-AUDIO MIDI - Music -> MSX-MUSIC - MSX-Midi -> MSX-MIDI - SCCPlusCart -> SCC+ The converter has been adjusted as well. * Fixed a forgotten rename of Rom to ROM in the MSXRomCLI. * Added specific extensions for the Konami Sound Cartridges (Snatcher and SD-Snatcher) 2004-06-04 David Heremans * Fixed the problem with filesize zero in the DirAsDisk feature 2004-06-03 Maarten ter Huurne * Simplified code which stores and draws previous frame in SDLGL. 2004-06-03 Wouter Vermaelen * Fixed creation of internal datastructures to match the new XML format * Removed deprecated device PanasonicRom 2004-06-03 Manuel Bilderbeek * More config file changes: - renamed old parameter brokenFDCread to broken_fdc_read (needs update of the converter, please fix this for me) - renamed Rom to ROM, PanasonicRom to PanasonicROM and PanasonicRam to PanasonicRAM and updated the converter for these changes 2004-06-01 Maarten ter Huurne * Wrote a converter script that updates old configurations to the new format: share/scripts/convert_hardwareconfig.py 2004-06-01 Manuel Bilderbeek * Corrected ASCII table for 'type' command for international layout Thanks to Albert Beevendorp for doing the hard work! * More config file changes: changed device name of FM-PAC to FMPAC 2004-06-01 Wouter Vermaelen * More config file changes: - removed constructs - removed support for , config files are incompatible anyway * Fixed assertion on "type {}" 2004-05-30 Wouter Vermaelen * Better names for ROM debuggables. Still include the (unique) device id to avoid assertion when the same ROM is inserted twice. * Added optional "sha1" parameter to rom devices. For the moment only used to print a warning when given sha1sum doesn't match with real sha1sum. * First step to new xml format: bar can now be written as bar the first format is still supported, but will be removed soon. In the FDC device the parameter "type" is renamed to "fdc_type" becuase of a name conflict with the device type. * Removed support for autocommands, they were deprecated in 0.3.4 * Added Vincent van Dam to AUTHORS: cas to wav conversion code is based on his cas2wav too * Moved IO port registration from DeviceFactor to hardwareconfig.xml: This is an incompatible xml format change! I only updated Philips_NMS_8250 and Panasonic_FS-A1GT. I hope someone else will update the other machines and extensions. * Also got rid of ... constructs in settings.xml * Removed duplicate code for case insensitive string comparisons 2004-05-30 Manuel Bilderbeek * Added channel mode 'off' to mute individual sound devices 2004-05-30 Wouter Vermaelen * In one executable only one interpreter is used (TCL or other), no need to have a virtual base class. 2004-05-29 Manuel Bilderbeek * Cleaned up names of the debuggables 2004-05-29 Wouter Vermaelen * Made all (S)RAM debuggable, created a base class for RAM * use auto_ptr to indicate ownership transfers * use stl bitset instead of an array of booleans * don't use exception specifications, they do more harm than good * don't use global objects, they are constructed before main() and thus we can't catch execptions yet * Command speed up (mainly for TCL scripts): Take CommandArguments objects as parameters instead of strings. This avoids int -> string -> int like conversions. This optimization was already done for the command result, now also for the command arguments. 2004-05-28 Maarten ter Huurne * Released openmsx-0.4.0. 2004-05-26 Wouter Vermaelen * Renamed "keylayoutbit" setting in PSG to "keyboardlayout". Also instead of the values true/false it now takes "JIS"/"ANSI" 2004-05-23 Maarten ter Huurne * Fixed glitches in SDLHi when deinterlacing. * Fixed pause in SDLGL in monochrome character modes (SCREEN0.40/0.80/1). * Added several missing documentation files to "make install". * Some other build system improvements. 2004-05-21 Wouter Vermaelen * RS232 interface in Sony_HB-G900P has 2kb RAM 2004-05-20 Manuel Bilderbeek * Added about 14 new machines 2004-05-17 Wouter Vermaelen * Print an error for duplicate drive names (iso assert) 2004-05-15 Manuel Bilderbeek * Implemented scrolling in console by a whole page, using SHIFT+PAGEUP and SHIFT+PAGEDOWN 2004-05-15 Wouter Vermaelen * really fixed TCL_STDOUT redirection * fixed passing of binary data in console command: was needed for "debug write_block" command * updated "save_debuggable.tcl" script with "load_debuggable" and "load_all" commands: This is no savestate script! Most of the times it won't work! 2004-05-14 Wouter Vermaelen * Fixed redirecting the TCL_STDOUT channel: this fixes Adriano's bug (saving to file in from TCL script) 2004-05-09 Manuel Bilderbeek * Fixed double SRAM names for Matsushita devices 2004-05-06 Wouter Vermaelen * If init.tcl file in system dir is missing try init.tcl in user dir: The default init.tcl in the system dir still source's the user init.tcl file. 2004-05-05 Maarten ter Huurne * Various small improvements to build system, including: - install dir is easier to customise (build/custom.mk) - fixes for compiling on Mac OS X (thanks to Jalu for testing) 2004-05-05 Wouter Vermaelen * More V9990 work 2004-05-02 Maarten ter Huurne * Different final probe message depending on probe results. * Refuse to build if dependencies for core component are not met. * Support for components: a single label (like COMPONENT_GL) controls whether a component is built or not. (in preparation for forced disabling of components) 2004-05-01 Wouter Vermaelen * Implemented a faster DC removal filter, thanks to dvik * Implemeted V9990 palette reading/writing * Unified Ascii8-8, Koei-8, Koei-32 and Wizardry mapper types, also fixed some mapping details 2004-05-01 Herman Oudejans * fixed [926293] Win32: specifying driveletter without path doesn't work. 2004-04-30 Wouter Vermaelen * Use 64-bit type to store realtime: 32-bit microsecond counter overflows after about 70 minutes. We also saw openmsx crashes after 70 minutes... 2004-04-30 Maarten ter Huurne * Fixed sprites in overscan. * Corrected clipping for scalers. And managed to slip in some optimisation as well. 2004-04-29 Maarten ter Huurne * Optimized top and bottom border drawing in SDLHi. 2004-04-28 Maarten ter Huurne * Integrated probe fixes from Reikan. Probe should work on FreeBSD and Win32 now. 2004-04-28 Wouter Vermaelen * Implemented VRAM reading/writing for V9990 2004-04-28 Herman Oudejans * Implemented 32x32 icon. In win32 the icon MUST be 32x32 and Linux doesn't care about size, so 32x32 for all OS'es (thx to Reikan). 2004-04-27 Maarten ter Huurne * Fixed per-line administration of scale factor. In Psycho World intro, bottom text was scaled x2 instead of x1 when openMSX was paused. ANMA's Relax had a similar problem. 2004-04-27 Wouter Vermaelen * Fixed Koei mapper: sram is not visible in 0x6000-0x7FFF * Fixed RealTime: still sync music for high frameskips, but properly handle syncpoints * Fixed SRAM saving: filename had a double extension (file.SRAM.SRAM) 2004-04-26 Eric Boon * Add Debuggables to V9990 2004-04-26 Wouter Vermaelen * Implemented Koei-8 and Koei-32 mapper types: based on BlueMSX v1.4.0 * "openmsx_info fps" now return 0 in when "renderer none" is active * Fixed bug in min/max frameskip handling (happened for example when minframeskip == maxframeskip) * Fixed serious performance bug: Sometimes a RealTime syncpoint was not removed from the scheduler queue. So it got fuller and fuller and openmsx became slower and slower. 2004-04-25 Eric Boon * Introduction of Gfx9000/V9990 2004-04-25 Manuel Bilderbeek * Fixed Philips NMS 1205 extension (MSX Audio MIDI was missing) * Updated manual for upcoming release (please check!) 2004-04-24 Maarten ter Huurne * Build uses same compile and link flags as probe. * Integrated part of the mingw32 probe fixes from Reikan. * Implemented probe overrides for FreeBSD (untested). 2004-04-22 Maarten ter Huurne * Enhanced system probe: now it also scans for mandatory headers and libs. It performs all checks and then reports what it found and what is missing. 2004-04-21 Wouter Vermaelen * Fixed [ 933628 ] assertion with accuracy=screen in "puyo puyo" * Fixed OR-ing of unaligned sprites 2004-04-20 Herman Oudejans * Suppressed warning in windows (warning: couldn't find file: ""). * Fixed 'no window when return from full screen' in SDLHi/Lo (windows NT4 only). 2004-04-19 Maarten ter Huurne * Fixed small bug: I forgot to replace "#ifndef X_DISPLAY_MISSING" by "#ifdef HAVE_X11" in RendererFactory class. 2004-04-19 Herman Oudejans * Fixed 'no window when return from full screen' in SDLGL (windows only). 2004-04-18 Maarten ter Huurne * Dropped autoconf completely. This also means autogen.sh is no longer necessary. Thanks to Herman and Manuel for testing parts of the new system. The new probing system only looks for optional parts, not for mandatory ones (such as SDL). Also, there is no option to disable optional parts yet. Possibly some bugs have slipped the testing, please alert me if you find any. 2004-04-15 Maarten ter Huurne * Build system discovers TCL compile and link flags using "tcl-search.sh" instead of autoconf. 2004-04-12 Maarten ter Huurne * Changed BIGENDIAN implementation: determined by looking at CPU, instead of running a test program. (preparation for cross compiles) * New version format: "openMSX x.y.z" for releases "openMSX x.y.z-devN" for development builds, N = ChangeLog revision * Pass information from build system to sources using C++ types such as bool and std::string, instead of macros. You should re-run "autogen.sh" after updating. 2004-04-10 Wouter Vermaelen * Don't allow one Pluggable to be plugged in two Connectors at once * Also send update event when media is ejected (diska eject) * Experimental: delay input events (currently by a fixed time) to avoid key misses 2004-04-09 Maarten ter Huurne * Added support for compilation on FreeBSD 5. Thanks to Jorito for providing a working environment to test on. 2004-04-07 Maarten ter Huurne * Several changes to the build system; the main visible effect is that all generated files are now in "derived". You should re-run "autogen.sh" after updating. 2004-04-07 Wouter Vermaelen * Generate update event for media change * Implemeneted "openmsx_info connectionclass" info topic: - "openmsx_info connectionclass" returns all connectionclasses - "openmsx_info connectionclass [pluggable / connection]" shows the class to which this 'thing' belongs * Copied "oversleep compensation" from old realtime sync algorithm to new algorithm: - this helps to keep openMSX running at a reasonable speed when it has to compete with other CPU hungry processes 2004-04-06 Reikan * Added link libs to platform-x86-mingw32.mk. Thanks to Honda. * Reverted AC_CANONICAL_SYSTEM in configure.ac. We need it to let automake prepare config.guess and config.sub. * Removed check for tcl8.3 because makefiles don't support anyway. * Added some tiny checks for libs in configure based on suggestion from Manuel. 2004-04-06 Wouter Vermaelen * Simplified RealTime class: added Timer class (had to rename existing Timer class to EmuTimer) removed RTC synchronziation (linux) because it was complicated and didn't really improve anything * Force a realtime sync 8 times per second (real time): - now music stays more or less ok with large frameskips (set minframeskip 100) and very low speed settings (set speed 10) - disadvantage: auto frame skip is much less effective for value above 6 or 7 (set maxframeskip 7) 2004-04-05 Maarten ter Huurne * Minimized usage of auto*: - only run configure checks of which we actually use the results - use "sizeof(bool)" instead of "SIZEOF_BOOL": a lot simpler and the generated code is equally efficient - dropped libtool Thanks to Reikan for his patch from which I copied at lot. 2004-04-03 Wouter Vermaelen * Changed frameskip setting: there is no explicit frameskip "auto" anymore, instead the framskip setting indicated the maximum allowed number of frameskip. * Don't skip frames on small CPU usage spikes * Renamed "frameskip" setting to "maxframeskip" * Added new "minframeskip" setting 2004-04-02 Wouter Vermaelen * Implemented different frameskip and real time sync algorithm * Fixed "[ 915747 ] sprites are not visible on display line 0" * Skipped frames are now reflected in fps statistics * Made "frameskip auto" the default 2004-03-29 Maarten ter Huurne * Made new ("alternative") build system default: GNUmakefile is picked up by GNU Make before Makefile is. 2004-03-28 Wouter Vermaelen * Added generic info command to query the possible values for EnumSettings. 2004-03-28 Manuel Bilderbeek * Added info command for 'accuracy' setting 2004-03-27 Herman Oudejans * update events are now disabled by default. 2004-03-26 Wouter Vermaelen * Implemented simple subsription mechanism for update events: - openmsx command "update " - for now all update events are still enabled by default, but when catapult is adjusted I'd like to disable them by default 2004-03-25 Wouter Vermaelen * Only the init.tcl file from the system directory is now executed by openmsx. However the default init.tcl file does source a init.tcl file in the user directory !!! you probably need to redo a "make install" because of this !!! * The default (system) init.tcl now automatically sources all .tcl files in the user and system scripts/ directory (it prefers the script in the user dir if it exists in both) 2004-03-23 Wouter Vermaelen * Fixed unexpected exception problem in combination with NPTL threading library (Debian unstable) * Generated update events on setting changes: - maybe we should supress these when not in 'control' mode? Ideally we make a control these via a publisher/subsriber pattern. * Generate update evvents for plug/unplug 2004-03-22 Wouter Vermaelen * Don't instantiate CassettePlayer when there is no CassettePort 2004-03-20 Wouter Vermaelen * Implemented a very basic fps indicator * Don't send fps as 'update' events, but make it queryable * Fixed overflow problem in SoundDevice code 2004-03-17 Maarten ter Huurne * Do not copy captured GL frame back the the frame buffer if the same image is still there. Thanks to Herman for finding this problem. 2004-03-17 Wouter Vermaelen * Fixed debugger assertion: - scheduler did not notice the CPU stopped early because of breakpoint - the whole CPU <-> Scheduler interaction is a bit of a mess, need to clean this up someday 2004-03-16 Wouter Vermaelen * Screenshot 'feedback' was only given for non-GL renderer, moved code to a common (gl / non-gl) code path. 2004-03-16 Herman Oudejans * Fixed saving persistent data in windows (SRAM, cmos, history) 2004-03-15 Wouter Vermaelen * Proper XML escaping for results from comm protocol 2004-03-14 Wouter Vermaelen * Reduce memory usage in Y8950Adpcm: - found by massif (part of valgrind) * Fixed HBI-55: address 0 is read only and contains 0x53 * Changed (un)bind command: - a key can now only be bound to one command, this solves the "toggle + toggle = nop" problem - if you still want to bind multiple things to one key you can define a proc or bind something like "foo ; bar" 2004-03-13 Wouter Vermaelen * Another config refactoring: - split MSXConfig in hardware and settings part - merge Config and Device class * Use ugly macro iso template in NonInheritable class: - hopefully this works on all compilers, if not (or if it's too ugly) we can just remove this class * Compilation fixes for icc * Extended CPU debuggable: - IM can now be read at position 26 - IFF1 and IFF2 can be read as bit 0 and 1 on position 27 * Made SCC debuggable 2004-03-12 Wouter Vermaelen * Implemented "type" command: - replaces KeyEventInserter - TODO documentation correct ascii->keymatrix table better name for command? 2004-03-11 Wouter Vermaelen * More config cleanups: - don't build and parse xml in memory anymore, directly build correct datastructure - temp broke KeyEventInserter, will be replaced by a console command 2004-03-09 Wouter Vermaelen * More config cleanups 2004-03-05 Wouter Vermaelen * Made Y8950 (MSX-AUDIO) debuggable * Deleted debug view related files: they were not used anymore and doxygen didn't like them * Made MoonSound debuggable * Made MSX-AUDIO sample RAM debuggable 2004-03-04 Wouter Vermaelen * Made memory mapper debuggable * Made YM2413 (MSX-MUSIC) debuggable * Made AY8910 (PSG) debuggable 2004-03-03 Wouter Vermaelen * Implemented R800 refresh delay: - every 180 cycles stall for 20 cycles. Are these numbers correct? I have to different contradicting sources for these numbers. (180 and 20 are in between the numbers of my sources) * R800 IO operations takes 3 cycles: - S1990 adds two extra wait cycles cycles 2004-03-02 Wouter Vermaelen * Improved R800 timing, implemented CAS/RAS optimization: - when the high byte of the address of a read is the same as that of a previous read, the R800 doesn't resend this byte and thus saves a clockcycle - I vaguely remember this only happens for opcode fetches, is this true?? 2004-03-01 Wouter Vermaelen * Made openmsx_info command return lists in TCL format 2004-02-29 Maarten ter Huurne * Fixed bug in command engine: when switching display mode while a command is running, the command's progress was lost. This bug was introduced in the refactoring of 2004-02-17. * Improved rendering of transparent pixels in Graphic5 (SCREEN6). It's still not perfect though: real VDP can render even and odd transparent pixels in different colours, just like the border. 2004-02-27 Wouter Vermaelen * Fixed 2nd drive detection bug on MB8877 based machines 2004-02-26 Wouter Vermaelen * Also do tab-completion for build-in TCL-commands and user defined TCL procs * Fixed sprite collision bug: sprites cannot collide when isDisplayEnabled() is false 2004-02-25 Wouter Vermaelen * Implemented "vramdump" command as a TCL script 2004-02-24 Wouter Vermaelen * TCL command speedups: - avoid "int -> string -> int" conversions on command results * 2 new debug commands: - read_block, write_block (WIP) 2004-02-23 Wouter Vermaelen * Made abstract Interpreter class: - TCLinterpreter is (the only) subclass - all other code is TCL independent 2004-02-21 Wouter Vermaelen * added scripts directory * added multi_screenshot script 2004-02-21 Herman Oudejans * fixed FileOperations.cc for win32. setenv doesn't exist in mingw 2004-02-20 Wouter Vermaelen * Set OPENMSX_USER_DATA and OPENMSX_SYSTEM_DATA environment variables 2004-02-19 Wouter Vermaelen * Implemented "after break" command * Path calculation cleanup: moved all path calculations to the FileOperations class 2004-02-18 Wouter Vermaelen * Implemented master volume setting (range 0..100). Changed volume setting of other devices to 0..100 as well. 2004-02-17 Maarten ter Huurne * VDPCmdEngine refactoring: replaced macros by templates and switch statements by virtual method calls. (committed by Wouter) 2004-02-15 Wouter Vermaelen * Improved CPU timing, both Z80 and R800 2004-02-14 Wouter Vermaelen * Implemented "after frame" command: - now it's possible to write a multi_screenshot TCL script (i've already made such a script) 2004-02-13 Wouter Vermaelen * Made CommandConsole SDL independent 2004-02-11 Maarten ter Huurne * Implemented firmware switch for Panasonic FS-A1FM. Use "set frontswitch true" to boot internal software. 2004-02-11 Wouter Vermaelen * FDC code changes: - code cleanups / maybe fixes (at least more robust code now) - changed track0 signal value for not connected drive 2004-02-10 Wouter Vermaelen * Refactored EventDistributor to be SDL independent (WIP) 2004-02-08 Maarten ter Huurne * Added support for compilation on FreeBSD. Thanks to ag0ny for providing a working environment to test on. 2004-02-07 Reikan * Fixed error when reading init.tcl on win32. 2004-02-07 Wouter Vermaelen * Changed default init.tcl to only bind unbounded keys: should solve the "toggle + toggle = nop" problem * Implemented 6MHz (5.3MHz actually) mode for Panasonic MSX2+ machines * Refactored RealTime classes: - algorithm in RealTimeRTC was broken, refactored the code so that RealTimeSDL and RealTimeRTC share the same syncing algorithm - the algorithm itself still needs to be improved 2004-02-04 Wouter Vermaelen * Handle unknown tags in control protocol more gracefully * Same for parser in Contrib/openmsx-control.cc 2004-02-03 Maarten ter Huurne * Perform less renderer syncs on VRAM writes: - skip sync if written value equals the current value in VRAM - only sync if scan region contains written VRAM address (currently only checked in Graphic2/3 modes) 2004-02-01 Maarten ter Huurne * Simplified rendering interface and code: - unified putImage and putStoredImage - introduced frameEnd, moved some of the old putImage code there 2004-01-31 Wouter Vermaelen * Changed the XML format of the CliComm protocol: - the new format is not compatible with the old version - the example parser Contrib/openmsx-control.cc can handle both formats (except for the LED updates) 2004-01-30 Reikan * Fixed strange build error of FileOperations.cc. It would be becauseof "gthreads vs w32api". * Fixed broken "Makefile.am"s. * Adjusted configure.ac and Makefile.am to accpet libtcl84.a on MinGW. 2004-01-30 Wouter Vermaelen * Made cpu frequency switchable at-run-time: in console: set z80_freq_locked off ; set z80_freq 12345678 2004-01-25 Wouter Vermaelen * Use DATADIR variable set by configure: not yet well tested 2004-01-25 Wouter Vermaelen * Removed obsolete "alias" command: for backwards compatibilty there is an "alias" proc defined in init.tcl * Use PAUSE LED also for the openMSX pause command: patch contributed by Tetsuo Honda * Debug device now prints time in Z80 ticks (3.58MHz), instead of internal ticks. This way we can change the internal tick resolution without changing the debug device output. * Dropped support for MD5 hashes, they were already deprecated for a few releases. 2004-01-24 Wouter Vermaelen * Integrated TCL scripting * Execute share/init.tcl at startup, marked AutoCommands deprecated 2004-01-20 Maarten ter Huurne * Bound quit to ctrl-break by default. 2004-01-20 Wouter Vermaelen * Implemented key modifiers for bind command: example: bind CTRL+ALT+DELETE quit 2004-01-19 Maarten ter Huurne * Integrated FDC fixes by Tetsuo Honda: 1. FDD LED on Turbo R FDC (TC8566AF) 2. Disk change signal 3. Drive detection (1 or 2 drives connected) 4. Empty drive behaviour ("Disk offline") 2004-01-19 Wouter Vermaelen * Changed RAM in FS-A1FM mapper into SRAM, but unfortunately this doesn't solve the problem (openmsx-Bugs-826066) 2004-01-16 Maarten ter Huurne * Released openmsx-0.3.4. 2004-01-15 Maarten ter Huurne * Added Scheduler::setAsyncPoint, which works like setSyncPoint, but is safe to call from other threads. Fixes asserts with "-control" and MIDI in. 2004-01-11 Maarten ter Huurne * Added "dist" target to alternative.mk. Now it is possible to make a release tarball in the alternative build system. 2004-01-11 Manuel Bilderbeek * Added a "boosted" MSX2 config: - European MSX2 config with lots of extensions, see README in its dir - still experimental, needs testing... 2004-01-10 Wouter Vermaelen * Fix VDP bug: - out (#99), xx / OUT (#99),%11xxxxxx is NOT a register write still have to figure out what it does (if anything) - fixes "SNOW26" demo * Fixed midi-out-logger bug: - once plugging failed (file not writable) it kept failing - same for RS232Tester * Fixed "Jump Jump" part or "UR" demo for SDLGL renderer * Made EnumSetting case-insensitive 2004-01-08 Maarten ter Huurne * Implemented new deinterlacer for SDLHi. 2004-01-08 Wouter Vermaelen * Fixed crash when trying to save screenshot to read-only directory * Save screenshots in ~/.openMSX/screenshots (only when filename is not explicitly given) * Fixed bug in Y8950: also reset IRQ in reset() method 2004-01-07 Wouter Vermaelen * Updated control-type selection code (written by tcm1998): - generate error for unknown control types - "pipe" is (currently) not a valid type for linux 2004-01-04 Reikan * Fix SDL_Video subsystem initialization. This fix boot up unstability. * Renamed win32 native midi. out: midi -> midi-out midi* -> midi-out-* in: midi* -> midi-in-* 2004-01-04 Manuel Bilderbeek * Implemented "info scaler" 2004-01-03 Maarten ter Huurne * Separated Scalers.hh/cc into Scaler, SimpleScaler and SaI2xScaler. 2003-12-30 Maarten ter Huurne * Fixed Scale2x scaler: one pixel too many per line was scaled, which lead to out-of-range memory writes. * Fixed "random pixel" bug in pixelacc SDLRenderer. The width of a display rectangle was rounded incorrectly, leaving a 1-pixel wide gap in which the previous frame was visible. 2003-12-29 Maarten ter Huurne Various alternative.mk improvements: * Automatic generation of config.h. * Changed OPENMSX_PLATFORM format from OS-CPU to CPU-OS. * Integrated support for compiling with ICC 8.0. You can select ICC with "export OPENMSX_PLATFORM=x86-linux-icc". Note that if a header file is removed, incremental compile will abort with an error. Workaround: manually remove the dependency file. 2003-12-27 Maarten ter Huurne * Fixed console drawing in SDLLo during pause. 2003-12-23 Wouter Vermaelen * Implemented automatic filename generation for screenshot feature 2003-12-23 Maarten ter Huurne * Integrated Mac OS X patches from Jalu. * Fixed rendering of sprites in SCREEN7. 2003-12-22 Wouter Vermaelen * Fixed reset problems (again): reset could go wrong when it was given in the middle of a CPU instruction, now wait till the end of the instruction * Integrated Joost's screenshot code: - no automatic filename generation yet 2003-12-22 Maarten ter Huurne * Separated Settings.hh into one file per class. 2003-12-21 Maarten ter Huurne * Removed RendererSwitcher and FullScreenToggler. They were useful back when openMSX was multi-threaded, but are useless now. * Various code layout cleanups. 2003-12-19 Wouter Vermaelen * Fixed a lot (not all) ICC compile remarks, mostly virtual destructors for base classes 2003-12-17 Wouter Vermaelen * VDP pause frame cleanups: always store the last frame (was already like this for SDLHi/SDLLo, and also for SDLGL when some effect was used). This simplifies the pause code. It also fixes the image when breakpoints are used. And it will make the screenshot feature integration easier. * Fixed ICC 8.0 compile warnings. 2003-12-16 Maarten ter Huurne * Fixed ICC 8.0 compile errors. 2003-12-15 Wouter Vermaelen * implemented "debug break" * added a hack to make the "boring scroll" demo part of "Relax" work 2003-12-14 Wouter Vermaelen * remove VDP sync points on reset 2003-12-13 Maarten ter Huurne * Optimized hq2x scaler: - Fixed inlining of methods. For some reason g++ cannot inline if the methods are defined as HQ2xScaler::method and , but when using HQ2xScaler:: with an if-statement inside, inlining does work. - Split the giant switch-statement into 4 smaller ones (one per output pixel). Makes a huge difference in object size (123K -> 33K). - Many small optimizations all over the code. 2003-12-12 Wouter Vermaelen * Implemented cpu debugger: the following commands exist now: debug set_bp debug remove_bp debug list_bp debug cont debug step during a break the vdp output is not yet correct 2003-12-11 Joost Yervante Damad * removed obsolete README.WIN32 2003-12-10 Maarten ter Huurne * Fixed SDLLo: rendered image did not show up on visible screen. 2003-12-09 Wouter Vermaelen * Implemented "keymatrixup" and "keymatrixdown" commands 2003-12-09 Maarten ter Huurne * Integrated hq2x algorithm: http://www.hiend3d.com/hq2x.html Use "set scaler hq2x" in the SDLHi renderer to activate it. The code can use some cleanup and tuning, but in most cases it works. * Fixed bug: lines were scaled by the wrong factor when a frame contains both 256-wide and 512-wide lines, such as Psycho World intro. 2003-12-08 Wouter Vermaelen * added a 'safe' getCurrentTime() method in Scheduler, and use this instead of the getCurrentTime() method in MSXCPU. Renamed the latter to getCurrentTimeUnsafe(). See also comments in MSXCPU.hh * Only quit scheduler loop when it's not being called resursively, see comments in Scheduler.cc 2003-12-07 Maarten ter Huurne * Integrated Scale2x algorithm: http://scale2x.sourceforge.net/ Use "set scaler scale2x" in the SDLHi renderer to activate it. Unlike 2xSaI, Scale2x never blurs. 2003-12-06 Maarten ter Huurne * Create a scaler object once it becomes active, instead of creating all scalers in advance. This reduces memory usage when the number of scalers increases or some scalers use large lookup tables. * Made Scaler base class a template. Preparation for later changes. * Removed upscaling from SDLRenderer/CharacterConverter/BitmapConverter. Instead, all upscaling is done by the scaler implementation. The only scaling remaining outside is the downscaling (pixel blending in SDLLo). There is still some cleanup to do, for example deinterlace should be re-implemented outside of drawDisplay. 2003-12-06 Wouter Vermaelen * Made memory in (sub)slots debuggable * fixed bug in wait() method of CPU (order of statements problem): fixes the reset on turbor crash * "cassetteplayer" doesn't crash anymore on non-existing filenames * use HAVE_LINUX_RTC_H instead of NO_LINUX_RTC, makes it easier to port to non-linux platforms 2003-12-04 Wouter Vermaelen * Fixed "Back to the Future" hang: romtype was wrongly detected, in romdb.xml the romtype was specified as "PLAIN", but for this type we still need to guess the start location in memory. Changed romtype in romdb.xml to "PAGE12" * Added high-pass IIR filter to mixer: this greatly reduces clipping in applications that leave a sound channel at a constant non-zero value (e.g. catman) * Fixed rendering of undocumented modes in GL renderer: "Back to the Future" (tape version) triggered an assertion because of this 2003-12-03 Wouter Vermaelen * made VDP status registers debuggable 2003-12-02 Wouter Vermaelen * Implemented IO device multiplexing: - several IO devices can now share the same IO port. When CPU writes to a shared port, all devices receive the write. When CPU read from a shared port, all devices readIO() method is called, but the return value of only one device is returned to the CPU. - this fixes the "openmsx -machine turbor -ext fmpac" problem 2003-12-01 Wouter Vermaelen * made vdp registers debuggable 2003-11-30 Wouter Vermaelen * made memory (64kb currently visible memory) debuggable * made IO ports debuggable * made vram debuggable 2003-11-29 Wouter Vermaelen * Added example implementation for bidirectional communication with openMSX (aka CliCommunicator) in Contrib * Implemented "debug" command infrastructure. For now only the CPU registers can be read or written. 2003-11-24 Wouter Vermaelen * When started with "-control" openmsx now automatically selects the "none" renderer. The launcher should send a "restoredefault renderer" command to enable the display. 2003-11-19 Maarten ter Huurne * Extended Scaler interface to scale modes of 512-pixels wide as well. These modes are scaled in the vertical direction only. * Implemented vertical-only scaling for "simple" and "2xsai". * Minor cleanup of SaI2xScaler class. 2003-11-19 Wouter Vermaelen * Implemented "restoredefault" command 2003-11-18 Wouter Vermaelen * made alternative YM2413 (MSX-MUSIC) the default 2003-11-17 Wouter Vermaelen * Implemented per-pixel-alpha-blending for SDLConsole and SDLFont: - if whole image has the same alpha value, we use per surface alpha blending to speed up blitting 2003-11-16 Reikan * Quick fix for console input after switched renderer. 2003-11-16 Wouter Vermaelen * Major singleton-cleanup: - circular dependency where already fixed - now also fixed construction order. All singletons classes that are used by some other singlton must be constructed before this singlton is constructed. Done by constructing all dependant singltons in the constructor of this singleton. This also prevents new circular dependencies in the future. - because of these two points it's now save to destruct all singletons (before some were never destructed) - instance() method now returns a reference instead of a pointer - I'll post a more detailed explanation to openmsx-devel soon * Fixed hd image file creation: - automatically create or enlarge hd-image when the specified file doesn't exist or is too small 2003-11-16 Reikan * Fixed "hollible slow down when open console in fullscreen on SDLHi" at Win32. 2003-11-16 Maarten ter Huurne * Implemented scanlines for SDLHi. 2003-11-15 Manuel Bilderbeek * Moved initialization of SDL Video to RendererFactory. * Added Ren-Sha Turbo device to machines which have it. 2003-11-15 Maarten ter Huurne * Modified Scheduler to only schedule ASAP sync points during pause. Also made ASAP resolve to CPU's current time instead of target time. * Delayed start of new frame until unpause. If a renderer keeps state to reproduce the image other than the pixels themselves, this state remains available during pause. * Made SDLHi renderer react to scaler changes while paused. 2003-11-15 Wouter Vermaelen * Split EventDistrubutor in EventDistributor and AfterCommand: - together with the "quit" cmd move this removes the circular dependency between EventDistributor and Scheduler * Reversed dependency between Mixer and Scheduler: - Mixer now depends on Scheduler (for mute when paused) instead of the other way around * Removed circular dependency between RealTime and Scheduler * Split Settings.hh in Settings.hh and SettingListener.hh * Removed circular dependency between Scheduler and MSXMotherBoard: - MSXMotherBoard no longer needs to be a singleton - I have to double check, but I think this was the last circular dependency between singletons 2003-11-14 Maarten ter Huurne * Performance fixes for SDLHi. Thanks to Reikan for finding a solution to the slowness. 2003-11-14 Wouter Vermaelen * HotKey is no longer a singleton: - not required anymore since everything is done by bind cmds - fixes circular dependency between HotKey and EventDistributor * Moved "quit" command from EventDistributor to Scheduler 2003-11-11 Manuel Bilderbeek * Added DummyRenderer (set renderer none) * TODO: - only register the renderer in the settingmap in CliComm mode - move SDL video (de)initialization to superclass of SDL based renderers (feel free to implement this! ;-), to fix problem that the window of the previous renderer doesn't disappear 2003-11-11 Wouter Vermaelen * Fixed crash when trying to define an alias with the same name as an existing command * Split CliCommunicator in CliCommInput and CliCommOutput: - first step to get rid of circular dependencies between singletons 2003-11-10 Maarten ter Huurne * Integrated part of Reikan's SDLRenderer patch: - added missing SDL_LockSurface calls when accessing surfaces directly - do not blit from a surface to itself, instead use memcpy (apparently DirectX doet not like blit source equal to destination) - make SDLHi and SDLLo double buffered 2003-11-10 Wouter Vermaelen * Fixed crash on resursive aliasses: - these commands alias foo bar ; alias bar foo ; foo generate an error now 2003-11-09 Wouter Vermaelen * Refactored MSXMapperIO: - MSXMapperIO is no longer a singleton, this solves the destruction order problem between MSXMapperIO - MSXMemoryMapper - possibly the crash on power off is solved by this - machine configs still need to be updated 2003-11-08 Wouter Vermaelen * Implemented "info time" * Implemented "after" command (see doc/commands.txt) * Implemented noise effect (power off) for SDLRenderer 2003-11-07 Wouter Vermaelen * Refactored Scheduler: - there is now only one scheduler loop anymore - fixes the 'still schedule a bit even though emulation is pauzed' bug 2003-11-05 Wouter Vermaelen * Implemented 'alias' and 'unalias' commands 2003-11-03 Maarten ter Huurne * Added inbetween image in SDLRenderer, to allow postprocessing. Hopefully, this will also reduce flicker on Win32. * Integrated 2xSaI scaler algorithm by Derek Liauw Kie Fa: http://elektron.its.tudelft.nl/~dalikifa/ You can activate it with "set scaler 2xsai". For now, it only works in the SDLHi renderer. 2003-11-03 Wouter Vermaelen * Implemented 'snow effect' for GLRenderer (try set power off) 2003-11-02 Wouter Vermaelen * Implemented "power" setting: display is still wrong in power off mode 2003-11-01 Maarten ter Huurne * Added "createsubs" target to "alternative.mk": this creates a Makefile in every source directory which builds only the sources in that directory. 2003-10-30 Wouter Vermaelen * Don't continuously redraw screen while paused 2003-10-29 Wouter Vermaelen * Removed "-config" cmdline option / .xml cmdline file-type: were long time ago replaced by -machine / -ext / -setting 2003-10-28 Wouter Vermaelen * Added descriptions to sounddevices: can be queried with "info sounddevice " 2003-10-26 Wouter Vermaelen * commands can only throw CommandExceptions * fixed possible resource leaks caused by thrown exceptions 2003-10-26 Maarten ter Huurne * Fixed clipping code in SDLRenderer::drawDisplay and drawSprites. Matra games (which use overscan) have a stable image now. 2003-10-25 Wouter Vermaelen * Moved command classes to new subdir * Added info command infrastructure * Added "info version" command * Added "info pluggable" and "info connector" * Added "info sounddevice" * Added "info renderer" * Fixed bug: SDL must be initialized before we parse the cmd line, because the "-control" option creates a new thread * Added descriptions to pluggables: can be queried with "info pluggable " * Added descriptions to connectors: can be queried with "info connector " 2003-10-24 Manuel Bilderbeek * Added -v cli option to get version number of openMSX 2003-10-22 Wouter Vermaelen * Added "-control" cli option to enable CliCommunicator: - commands are accepted on stdin - output is in XML 2003-10-21 Wouter Vermaelen * Converted CliCommunicator to take XML input * replaced PRT_INFO macro with printInfo(), printWarning() or printUpdate() 2003-10-20 Wouter Vermaelen * Added truncate() method to File classes * use unsigned iso int for file size and file position 2003-10-19 Maarten ter Huurne * Moved some low-level GL stuff from SDLGLRenderer to GLUtil. * Changed GL implementation of SCREEN1 to render in cached blocks instead of lines. * Abort VDP command when switching to non-bitmap mode. Fixes assert in Psycho World stage 4. 2003-10-19 Reikan * Call SDL_Quit() also when exit by error. This will fix crash(Win9x)/hang(Win2k/XP) on error exit. 2003-10-18 Wouter Vermaelen * Fixed VDP command timing: - the updateTiming() method did a sync() with the old register values (correct). But also updated the timimng variable with the old register values (wrong). - fixes "Coding Melpots" part in "Metal Limit" * Replaced all PRT_ERROR macros with 'throw FatalError' 2003-10-15 Wouter Vermaelen * Added "incr" and "decr" console commands 2003-10-14 Manuel Bilderbeek * Added provisional FDD LED emulation: - works only when the emulated FDC uses the DiskDrive class - LED goes on when diskdrive motor is on (not always correct!) - IDEHD also turns on FDD LED, when there is a read or write action - all possible FDD LEDs are ORed with each other * Implemented boolean setting 'turborpause', which sets the pause function of the MSX turbo R. TODO: pause function of other MSX computers like Sony HB-501 and MSX2+ machines (setting may need to be renamed!) 2003-10-14 Wouter Vermaelen * Continue VDP Cmds on display mode switch: - current implementation may not be 100% correct, but it's better than just aborting the cmd (fixes feedback bug) 2003-10-13 Wouter Vermaelen * Autofire code cleanups / simplifications 2003-10-09 David Heremans * Forgot to commit some autofire code * Adapted code to new Commands interface 2003-10-12 Maarten ter Huurne * VDP fix: fixed assert in SpriteChecker. 2003-10-11 Wouter Vermaelen * Added CliCommunicator: - external programs can now use stdin/stdout to pass/read commands to/from openMSX. Very usefull for launchers or GUIs. * CliCommunicator cmds are now scheduled so they get executed by the main emulation thread 2003-10-10 Wouter Vermaelen * Turn LEDs off when openmsx quits * Refactored Commands interface: - commands should now return a string instead of calling the print() method to display stuff in the console. 2003-10-09 David Heremans * integrated renshaturbo from Alex into openMSX: fixed the namespace in Alex code 2003-10-09 Wouter Vermaelen * Fixed VDP TR bit bug (fixes Ys-2): - TODO HMMC cmd can be simplified a lot 2003-10-08 Maarten ter Huurne * VDP fix: force renderer sync on sprite enable change. 2003-10-08 Joost Yervante Damad * added initial screenshot support: the .png part is working and I tested it by hacking it into SDLRenderer, but I think someone more knowledgable of the openmsx internals should actually hook up the code 2003-10-06 Wouter Vermaelen * VDP fix: - Mode and blank bits any have effect at the next line 2003-10-06 Wouter Vermaelen * Fixed command/debug console settings 2003-10-04 Wouter Vermaelen * It seems MSX-AUDIO sampleram is mirrored. This fixes sample loading in "Revolution". 2003-10-04 Herman Oudejans * If the moderegister of the debugdevice is written to and bit 6 of that same register is set, newlines will not be output. 2003-10-04 Maarten ter Huurne * Split off SettingsManager to separate source files. * Split off SettingNode and other namespace classes to separate sources. 2003-10-03 Herman Oudejans * Remove buffering from the debugdevice. 2003-10-02 Wouter Vermaelen * Implemented 'vdpcmdtrace' setting * Fixed VDP commands that had SX/DX >= screen-width 2003-09-30 Manuel Bilderbeek * Added the Debug Device to the User's Manual * Small additions, fixes and clean ups in the User's Manual 2003-09-27 Maarten ter Huurne * Released openmsx-0.3.3. 2003-09-24 Maarten ter Huurne * Major rewrites and editing in Setup Guide. Thanks to Manuel for preparing the file for me. 2003-09-22 Reikan * Add MIDI support for Win32. It's missing to know association between parameter names and real device. Ok. we'll call it as TODO. 2003-09-21 Herman Oudejans * Made the debugger optional. If the settings.xml doesn't contain a debugger section, it's turned off. In this case the debuggersettings in the console won't appear either. 2003-09-21 Manuel Bilderbeek * Made error messages more UNIX style and thus more uniform 2003-09-21 Maarten ter Huurne * Workaround for bug in shutdown sequence: MSXCPU::getCurrentTime is needed by audio callback, but MSXCPU got destroyed before audio was stopped. * Finished Pluggable rewrite: - all Pluggable instantiation moved to PluggableFactory - all Pluggable destruction moved to PluggableController * Added "install" target to alternative.mk. 2003-09-21 Wouter Vermaelen * tab-completion improvements: - fixed bug while completing tokens that contained spaces - keep the formatting of the line the same as the original line, completion behaves a lot like the completion in bash now 2003-09-20 Maarten ter Huurne * Have VDPCmdEngine pass accurate timestamps to VRAM writes. In the process, replaced opsCount by currentTime. Should solve PA3 enemy box problem (missing bottom line). 2003-09-20 Wouter Vermaelen * Fix the TR status bit in the VDPCmdEngine: most programs don't even check this bit so they weren't affected, the ones that did were waiting forever 2003-09-19 Reikan * Win32: use SHGetSpecialFolderPath when available. I hope this help on Win95. 2003-09-13 Wouter Vermaelen * The ';' character can now be used in the console to put 2 commands on 1 line. This is usefull to bind 2 commands to 1 key and have a deterministic order of executions between those commands. * tab-completion now works when cursor is not in last position 2003-09-14 Manuel Bilderbeek * Added run time configurable stereo settings. You can now set the channel mode of each (mono) sound device to mono, left or right from the console, using the set [sounddevice]_mode settings. * Integrated VolumeSetting into Mixer class. 2003-09-14 Reikan * Fixed SystemContext error in FileOperations.cc. This affects only on Win32. 2003-09-13 Reikan * Introduced flavour-win32.mk. Do only relatively conservative optimizations. * flavour-uow32.mk contains more aggressive optimizations now. * platform-mingw32-x86.mk uses flavour-win32.mk as the default now. 2003-09-13 Wouter Vermaelen * filename stuff cleanups 2003-09-12 Manuel Bilderbeek * the file from which the WavAudioInput reads is now configurable with the setting "audio-inputfilename". Default is still "audio-input.wav". * restructured AudioWavInput class and cleaned it up a lot 2003-09-11 Wouter Vermaelen * immediately respond to frameskip changes 2003-09-11 Reikan * Added workaround for Win32 on pathname/path-delimiter. 2003-09-11 David Heremans * FDC_DirAsDSK: Figured out why a format didn't work correctly with my default emulated msx2 (NMS8250). Now the code can handle formating, didn't check on other machines yet 2003-09-09 David Heremans * FDC_DirAsDSK: Have cached sectors saved and loaded correctly, now you can use the entire fakedisk for writing as well. * Small bugfixes 2003-09-07 Maarten ter Huurne * Have the "plug" command handle PlugException correctly. * Changed Connector interface so that subclasses require less code. * Declared PlugException in Connector::plug as well. (yesterday's change added it to Pluggable::plug) * Replaced C standard includes with their respective C++ wrappers. 2003-09-06 Maarten ter Huurne * Added PlugException, which can be thrown by Pluggable::plug if the plug action fails for some reason. * Declared PlugException for the methods that can throw it. 2003-09-06 Manuel Bilderbeek * diska/diskb/etc without argument shows the currently inserted disk now 2003-09-06 Wouter Vermaelen * VDPCmdEngine: correct behaviour when registers are changed while cmd is executing. There seem to be a few glitches left though. * Fix VDPCmdEngine timimg (was broken by previous patch) 2003-09-05 David Heremans * Corrected destructor behaviour for the Disk class 2003-09-03 Maarten ter Huurne * Fixed bug: when CPU has to force extra device scheduling, it should schedule all devices until the I/O time, not just the devices until the schedule limit timestamp. 2003-08-30 Wouter Vermaelen * more VDPCmdEngine optimizations * fix VDPCmdEngine register status at end of cmd, should now also be correct when cmd is interrupted * implemented most willStatusChange() methods for VDPCmdEngine 2003-08-28 Manuel Bilderbeek * the file to which the PrinterLogger logs is now configurable with the setting "printerlogfilename". Default is still "printer.log". * the file to which the MidiOutLogger logs is now configurable with the setting "midi-out-logfilename". Default is still "/dev/midi". * the file from which the MidiInReader reads is now configurable with the setting "midi-in-readfilename". Default is still "/dev/midi". * the file from which the RS232-tester reads is now configurable with the setting "rs232-inputfilename". Default is still "rs232-input". * the file to which the RS232-tester writes is now configurable with the setting "rs232-outputfilename". Default is still "rs232-output". 2003-08-27 Wouter Vermaelen * small VDPCmdEngine optimizations 2003-08-25 Wouter Vermaelen * Initial version for Panasonic_FS-A1FM mapper: - internal software doesn't start yet (should it even?), but at least it doesn't crash anymore 2003-08-23 Wouter Vermaelen * Improved tabcompletion for plug command: - only complete pluggables that will fit in the selected connector * Made it easier to switch between MSX-MUSIC cores: - use the parameter "alternative" in the device config section 2003-08-23 Manuel Bilderbeek * Made the keys of the key joystick configurable. TODO: make it possible to have more than one key joystick. * Already some cleanups to make it robust against bad configs. 2003-08-23 Maarten ter Huurne * Rearranged joystick code: - Separated JoystickPort class into its own files and put them in the "input" directory. - Moved JoystickDevice, DummyJoystick and JoyNet to "input" directory. - Split and removed JoystickPorts class: the I/O was moved to MSXPSG, the instantiation was moved to the new PluggableFactory class. 2003-08-20 David Heremans * Rewrote code to be more sector based instead of cluster based: This also simplified the code, also made first steps towards more correct dir-entry handling. 2003-08-20 Reikan * Added Keymap-change and KeyLayoutBit. 2003-08-18 David Heremans * Added cached diskwriting to FDC_DirAsDSK. Regular file operations seem to work, formatting doesn't yet. No writes to native host OS files so far. 2003-08-18 Reikan * Adjusted as a first step to support win32. 2003-08-17 Herman Oudejans * fixed a serious bug in the commandlineparser. -diska (and b), -carta (and b,c and d) work again. 2003-08-16 Herman Oudejans * Added priority to the commandline parser. When the -h option is invoked, there won't be any machines loaded. 2003-08-14 Wouter Vermaelen * Basic support for .zip files, for now always the first file in the .zip is taken * Added filetype detection for filenames of the form "..zip", e.g. "psycho.dsk.zip" 2003-08-12 David Heremans * Small enhancement in FDC_DirAsDSK: Alowed writing of the boot sector. The altered boot sector is stored as a hidden file and is used when creating an FDC_DirAsDSK instance 2003-08-13 Maarten ter Huurne * Reikan released C-BIOS 0.17; I updated it in Contrib. 2003-08-12 Wouter Vermaelen * Now any file can be gzipped, including files loaded by SDL and libxml 2003-08-12 David Heremans * improved FDC_DirAsDSK: - now empty sector are generated for unmapped clusters - altered filesize also scanned for when accessing FAT sectors 2003-08-11 David Heremans * Added more functionality to the FDC_DirAsDSK class: - fixed an offset bug - made changes to files on the host OS visible to the emulated dsk file. Now altered filesize is detected when accessing file itself or the DIR sector and the DIR and FAT will be adjusted as needed 2003-08-11 Wouter Vermaelen * Read-only support for .gz files 2003-08-09 Maarten ter Huurne * Put all openMSX code in namespace "openmsx". This avoids name clashes with C libs, for example "Font" being defined by us and by Xlib. Those name clashes occur earlier when precompiling headers, but otherwise it's still an accident waiting to happen. 2003-08-09 Wouter Vermaelen * Fixed FileContext owner ship semantics (fixes memory leak): - the class that creates a FileContext object should also destroy it - when a class needs a FileContext parameter for a longer time than the duration of the method call, it should make a copy of the FileContext object * Added audio input pluggable/connector for turbor PCM: - for now it just reads "audio-input.wav" 2003-08-06 Wouter Vermaelen * CPU cleanup / speedup: * FDC cleanups: - renamed some classes - added a base class for sector based disks (those that don't store the information 'between' the sectors) 2003-08-06 David Heremans * Introduced to the FDC_DirAsDSK class: - it is now possible to have a directory given as value for the '-disk(a|b)' option, this will construct a read-only disk that contains the regular files in this directory. Content changes in those files are immediately visible in the emulated disks. Sizes changes of files are not incorporated yet! 2003-08-02 Herman Oudejans * fixed compile errors when using gcc version 2.95 2003-07-31 Wouter Vermaelen * Implemeted a RS232 tester pluggable: - writes to file "rs232-output" - reads from file "rs232-input" - the BASIC commands load"COM:" and save"COM:" seem to work * Made sure that classes that are ment to be pure virtual, truly are pure virtual * Added rs232 extension 2003-07-30 Wouter Vermaelen * Added MSX-RS232 to device factory * Gave MSX-RS232 16KB ROM 2003-07-29 Wouter Vermaelen * Added MSX-RS232: - there do not exist any RS232 pluggables yet - code is yet completely untested 2003-07-27 Herman Oudejans * decoupled de console and debugger again. It caused some unforseen site-effects. * Added settings for the debugger in settings.xml 2003-07-26 Herman Oudejans * Re-enabled the debuggerconsole. * made sure the console is turned off when de debugger is called. * added a disassembly view (still static). * added the same settings for the debugger as there were for the console (rows, columns, placement, font and background). 2003-07-26 Maarten ter Huurne * Refactored settings code. * Moved settings code into new "settings" directory. * Cleaned up the linking process. 2003-07-23 Wouter Vermaelen * A few midi in related fixes. Still needs to be tested with real midi hardware 2003-07-22 Wouter Vermaelen * Added midi in reader (reads from /dev/midi): - still completely untested 2003-07-21 Wouter Vermaelen * added joystick emulation for mouse: - when you plug in the mouse with the left button pressed, it behaves like a joystick * added Semaphore class * protected Scheduler with a Semaphore: - it is now possible the register synchronization points in a different thread than the emulation thread. This will be needed for the MIDI in pluggable 2003-07-20 Herman Oudejans * first steps toward a debugger. For now it's just a static hexdump. * Temperary removed an assert in de settingsmanager because the consolesettings are init twice. 2003-07-19 Wouter Vermaelen * Fixed bug in MSX-Audio sample RAM 2003-07-16 Wouter Vermaelen * Fixed some MIDI bugs * Added Midi Out Logger (logs to /dev/midi) 2003-07-16 Wouter Vermaelen * Implemented Midi-In and Midi-Out ports for MSX-Midi: - completely untested, so it probably won't work yet - there are no pluggables for the midi ports yet 2003-07-12 Wouter Vermaelen * A Pluggable is now told in which Connector it is plugged 2003-07-08 Herman Oudejans * debugdevice now works with stdout, stderr and normal files 2003-07-08 Wouter Vermaelen * Don't clear SCC wave forms on reset * Added MSX-Midi: - except for sending and receiving data it works, thus timers and interrupt generation work 2003-07-06 Herman Oudejans * added a debug device. * Details for control are in docs/debugdevice.txt 2003-07-05 Wouter Vermaelen * Started implementing MSX-Midi 2003-07-05 Maarten ter Huurne * Fixed colour of blue intensity 2 in Graphic7 mode. Thanks to Grauw for reporting this bug. 2003-07-03 Maarten ter Huurne * Fixed bug in scanline effect, which caused glitches on ATI and Matrox cards. 2003-07-02 Wouter Vermaelen * Implemented stereo/mono and 8/16-bit conversion for wav files * Implemeted "force_play" and "no_force_play" for cassetteplayer 2003-07-01 Wouter Vermaelen * On turbor use big 4mb rom also for MSX-MUSIC ROM and DISK ROM 2003-06-30 Wouter Vermaelen * Fixed cassette player bug: - float was not accurate enough, use 64-bit fixed point * Made rewind command for cassetteplayer and tape patch 2003-06-29 Wouter Vermaelen * Made casstte player audible: - you can turn it off with "set cassette_volume 0" 2003-06-28 Wouter Vermaelen * Implemented automatic .cas to .wav conversion in CassettePlayer: - not all .cas files seems to work though - there can be a delay of a few seconds while converting the file, need to do the conversion in a helper thread * added peekMem() method, will be used by debugger to savly read mem 2003-06-28 Manuel Bilderbeek * Cleaned up the machines and extensions dir: - added a subdir 'roms' when needed - added the Id tags when missing - filename cleanups - fixed some typos - added SHA1SUMS files in each roms dir, when available * Added a few extensions 2003-06-25 Wouter Vermaelen * Implemented Listener interface for Setting class 2003-06-24 Wouter Vermaelen * Converted romdb.xml to use 'title' tags iso 'id' attributes 2003-06-23 Wouter Vermaelen * Implemented SHA1 support for romdb * Converted most of romdb.xml to SHA1 2003-06-22 Wouter Vermaelen * Added new YM2413 core: use with the new (temporally) device "Music_2" * Implemented TurboR VDP access delay * Added SHA1 class (not yet used) 2003-06-21 Wouter Vermaelen * Implemented 'fallback' mechanism for files in settings.xml 2003-06-15 Wouter Vermaelen * Implemented undocumented flag bits for "BIT n,(HL)" instructions, ZEXALL test still passes 2003-06-14 Wouter Vermaelen * Improved performance for tab-completion: without this patch "diska " could take several seconds 2003-06-10 Wouter Vermaelen * Implemented HBI-55 data cartridge: according to some BASIC test progs it seems to work, but not yet tested with Sony_HB_75P internal software 2003-06-09 Maarten ter Huurne * Released openmsx-0.3.2. 2003-06-09 Manuel Bilderbeek * Updated HOWTO (please check) * Updated/cleaned up machine configs: - MSX2+ machines have a memory mapper of 64kB (tested on real Panasonic FS-A1WX) - Changed ROM names in 8250 config to match the ones used in the other configs, using a 32kB combined ROM for basic/bios - Added missing CVS Id tags - Removed unnecessary DiskRomPatches from machines with TC8566AF FDC's - Changed FDC type names to new conventions (see 2003-03-29), note that the old ones won't work anymore. The names of the FDC classes should be revised though. 2003-06-09 Maarten ter Huurne * Implemented user-specified gamma correction for SDLLo/SDLHi/SDLGL. Find out your PC monitor's gamma using the measurement image on the following page: http://www.bberger.net/gamma.html TVs use a standardised gamma of 2.5. So for a realistic picture, set openMSX gamma correction to: PC_gamma / 2.5. Or you can just try a few values and see what you like ;) 2003-06-08 Wouter Vermaelen * Don't abort on "cassetteplayer " cmd with invalid filename * Print warning when initial font or background images can't be read 2003-06-08 Maarten ter Huurne * In the command engine, only act on display mode switches if a different command engine mode is entered. * Fixed various GCC 2.95 compile problems. 2003-06-07 Wouter Vermaelen * Print error msg when user gives wrong diskimage on the cmd line * same for cas and wav images * Fix core dump while writing to read-only disk images * Don't put empty lines in console history 2003-06-06 Maarten ter Huurne * Added FloatSetting class. * Introduced new setting "gamma" for gamma correction. Not yet implemented in Renderers. * Refactored EnumSetting: - Split into type-safe inline wrapper class "EnumSetting" and type-indedendent implementation class "IntStringMap". Forced template instantiations are no longer necessary. - Made strings in string-enum map constant. 2003-06-06 Wouter Vermaelen * Refactored consolecolumns and consolerows settings 2003-06-05 Wouter Vermaelen * Merged Arjan's YMF278 fixes/improvements, plus did some optimizations * Take default MapperIO type in case the machine configuration doesn't specify one (all MSX1 machines) 2003-06-04 Maarten ter Huurne * New console font: ConsoleFontRaveL.png, this is a larger version of ConsoleFontRave.png (easier to read on hi-res screens). * New extensions: 512K/1MB/2MB/4MB external mapper. 2003-06-04 Herman Oudejans * Background and Fonts are not reset anymore when changing renderers. * Added 10 machine configurations, made by BifiMsx 2003-06-04 Wouter Vermaelen * support 8kb roms * fixed SDLFont, sometimes the font was completely transparent * fixed UMR in Timer class (caused Toshiba rom to hang openMSX) * Implemented fake "per pixel alpha blending" for SDLFont 2003-06-03 Maarten ter Huurne * Fixed SDLGL tile cache when character and pattern table use mirroring. Solves glitches in Dr Archie, Relax and probably others. 2003-06-02 Maarten ter Huurne * New console font: ConsoleFontRave.png, based on Bitstream Vera, but renamed due to license requirements (see http://www.gnome.org/fonts/). * Re-encoded existing console fonts to make their files smaller. 2003-06-01 Wouter Vermaelen * Implemented MegaRam * Implemented PAC (like FMPAC, but without FM and without ROM) 2003-06-01 Herman Oudejans * Added a setting for grabbing mouse and keyboard input. When input is grabbed, the windowsmanager won't be able to mask keys from openmsx and the mousecursor won't be able to leave the openmsx window. 2003-06-01 Wouter Vermaelen * Fixed mouse (hopefully) * Removed "loadsram" and "savesram" settings 2003-05-31 Maarten ter Huurne * When pausing, store last frame and keep plotting it during pause. Also keep redrawing the console, so it is usable during pause. Current implementation is a bit of a hack, but it works. * Implemented afterglow effect, try "set glow N" in SDLGL. 2003-05-31 Wouter Vermaelen * VDPCmdEngine cleanups 2003-05-31 Herman Oudejans * Changed console save file into ascii. When loading the history, empty lines are ignored. * Removed error when unable to load consolehistory * Only two identical commando's directly after eachothers are now removed if removedoubles is active to improve performance. * Remove settings for consolehistory load & save. Default are now: - Always load and save. - Filename is now fixed as 'history.txt' 2003-05-30 Wouter Vermaelen * Refactored VDPCmdEngine, use VDPCmd subclasses for each command instead of function pointers 2003-05-30 Herman Oudejans * Implemented save/load consolehistory 2003-05-30 Maarten ter Huurne * Implemented Text2 and MultiColour modes in SDLGL using one texture per character approach (the approach Graphic2/3 already used). * Implemented screen accuracy. * Do not sync during a skipped frame. 2003-05-27 Maarten ter Huurne Dirty checking improvements: * Removed all old character dirty checking code from SDLRenderer and SDLGLRenderer. * Added DirtyChecker class, a generic VRAM cache administration. * Use new DirtyChecker in SDLGLRenderer for pattern and colour table. Caching the name table is useless in SDLGLRenderer. This is a work in progress, but the current state seems to be stable. 2003-05-26 Wouter Vermaelen * More RealTimeRTC improvements * Some frameskip tuning * Keep frameskip setting between renderer switch 2003-05-25 Wouter Vermaelen * Use RTC Timer for RealTime syncing when available 2003-05-25 Herman Oudejans * Fixed a problem with the consolesize when switching from SDLLo to SDLHi or SDLGL. * When the console is resized, the text in it will be rebuild. * Fixed a bug in the cursormovement (broke with the text rebuild). 2003-05-24 Wouter Vermaelen * Split RealTime in generic part and implementation specific part. This decouples time synchronization from SDL and paves the way for more accurate implementation (like RTC) 2003-05-24 Maarten ter Huurne * I/O to extended VRAM now goes to limbo, instead of main VRAM. * Changed VDPVRAM::Window to VRAMWindow. There is not much added value to a public inner class in C++... * Changed VDPVRAM::VRAMObserver to VRAMObserver, in its own file. Own file reduces the risk of cyclic header dependencies. * Renderer gets VRAM updates through VRAMObserver. This is a preparation for later optimisations. * Make sure no sprite checking is done in spriteless display modes. * In a spriteless mode, or when sprites are disabled, the entire sprite plane is skipped. This is more efficient than the previous checks for a "no sprites" situation, because it occurs earlier in the rendering process. 2003-05-24 Herman Oudejans * commands can now be on multiple lines in the console. 2003-05-23 Herman Oudejans * Fixed an error when processing the commandline and one device exists twice in the configurationfile(s). 2003-05-21 Herman Oudejans * Double commands in the console commandhistory can no longer occur. * Made 'remove doubles' and history size configurable 2003-05-20 Wouter Vermaelen * Implemented run-time tuneable volume for sound devices 2003-05-19 Herman Oudejans * Implemented search history in the console * added Ctrl-C to clear the current command. 2003-05-19 Wouter Vermaelen * Added MoonSound: - code was largly taken from mame - fm part is quite good already - wave part still needs some improvements: - some waves sound weird at certain frequencies?? - missing features like: pseudo-reverb, LFO, vibrato, ... 2003-05-18 Maarten ter Huurne * Released openmsx-0.3.1. 2003-05-18 Herman Oudejans * Converted a lot of spaces into tabs. * Changed int into bool for zoomSurface(). * Fixed indentation in zoomSurface(). 2003-05-18 Maarten ter Huurne * Removed "ConsoleSource" directory and moved its code elsewhere: - actual console code moved to new directory "console" - command code moved to existing directory "events" - circular buffer code moved to directory "src" * Moved input devices code to new directory "input". Maybe more can be moved there in the future. * Changed "cpudebug" command into "cputrace" setting. Also fixed the duplicate "cpudebug" command on a turbo R (dual CPU). Note: this setting exists only if "cpu" dir is built in debug mode. 2003-05-17 Maarten ter Huurne * Removed EmuTime parameter from Command::execute. Since most commands do not interact with the emulated machine, they do not need EmuTime. * Removed EmuTime parameter from EventListener. The only reason this was needed before, was to execute commands. * Removed code that is no longer needed in the single thread model. * Fixed event handling during pause. 2003-05-17 Herman Oudejans * Implemented configurable file-extentions. * Lined the help-text up, properly. * Renamed lines/rows/columns/width/height -> rows/columns * Fixed a uncaught exception when the SDLConsole is resized and the backgroundfile can't be loaded. * Fixed -h when the specified machine can't be loaded. * Console now resets the scrollback when any key other than page up/down is used. * Fixed the blinking cursor in the SDLConsole. * Fixed Ctrl-A/E when numlock is active * Fixed a few small bugs in the CommandLineParser. 2003-05-17 Reikan * Changed to single thread model. Now fixed SDLGL renderer fault on XFree86-4.3.0. 2003-05-11 Maarten ter Huurne * Fixed colour of font on GLConsole overlayed on Text1 mode. 2003-05-11 Herman Oudejans * Fixed segfault in the SDL background scaling when using 8bpp. tested and working in 15,16 and 24 bpp. in 8 bpp it doesn't give a segfault, but since the whole display isn't working, I can't see if the scaling really works. * SDL backgroundimage can now have any pixelformat. * SDL Console characters are no longer blended. 2003-05-10 Herman Oudejans * Fixed wrong initial default size of the console. * Fixed range of the consolecolumns-setting 2003-05-10 Wouter Vermaelen * Replaced old YM2413 code by new one. Volume still needs some tuning: - relative volume between music and drum channels - relative volume between YM2413 and other sound chips 2003-05-09 Herman Oudejans * Added resizing and moving to the console. * Extended the console editing keys. * Added keyrepeat to the console. * Added setValueInt() and setRange() to Integersetting. * Added SDL background scaling. 2003-05-08 Maarten ter Huurne * Another GCC 3.3-pre fix: passing signed byte references as unsigned byte references. Typecasting to "(byte &)" instead of "(byte)" works on both GCC 3.2 and GCC 3.3-pre. 2003-05-07 Wouter Vermaelen * a few fixes in new YM2413 code. Still not made default because drums in illusion city are screwed 2003-05-06 Maarten ter Huurne * Compiled with GCC 3.3-pre: - Fixed missing "#include " directives. - Fixed some warnings, suppressed others. 2003-05-05 Wouter Vermaelen * release openmsx-0.3.0 * added "mbstereo" extension 2003-05-04 Maarten ter Huurne * Swapped the threads: event handling now occurs in the main thread, emulation occurs in a worker thread. Inspired by Reikan's UOW32 patch. This removes a lot of differences between the Linux and Win32 ports. Also, renderer switching and runtime full screen toggle should work on Win32 now. * Bug fixes on thread swap: - Fixed compile error on GCC 2.95. - Workaround for incompatibility of SDL_PushEvent. - Print exceptions thrown in emulation thread. * Minor bug fix on video init attempts in RendererFactories. * Merged Reikan's configure.ac improvements. * Fixed magnified sprites in sprite mode 2. Glitches in Eindeloos are gone. * Fixed bug: display was disabled after switching renderers during overscan (for example Unknown Reality title screen). * Fixed bug: possible writes outside screen buffer on overscan. Crashed Ark-a-Noah on SDLHi. 2003-05-03 Wouter Vermaelen * Trojka starts playing ADPCM samples without initializing the sample volume. The sample volume after a reset was set to minimum, changed it to maximum. 2003-05-03 Maarten ter Huurne * Removed EmuTime parameters from Settings methods. * Centralized GL header check in new GLUtil.hh file. In the future, GLUtil.hh will contain GL utility classes/functions. * Replaced "renderer" command by a "renderer" setting. This also makes sure the user cannot switch to a non-existant renderer. * Moved "Rom.(hh|cc)" and "SRAM.(hh|cc)" from "src" to "src/memory". * Removed obsolete "cfg" directory; configurations are in "share" now. 2003-05-02 David Heremans * Added the Contrib/cbios directory to 'make install' * Have make install create some nice softlinks * Added md5sum files 2003-04-30 Maarten ter Huurne * Introduced Blender class and use it from Character/BitmapConverter. * Implemented narrow SCREEN6 sprite pixels in SDLGL. * Implemented blended SCREEN6 sprite pixels in SDLLo. * Refactored ROM related classes to get device ID from hardwareconfig.xml into RomInfo. In the process all mapper type code has been centralized in RomInfo. All of this just to get "slot 3.3: Firmware" in the slotmap ;) 2003-04-29 Wouter Vermaelen * Fix tabcompletion for absolute paths 2003-04-28 David Heremans * Fixed make install to /opt/openMSX and create extra link for binary in /usr/local/bin * added (no)debug to main makefile 2003-04-27 Wouter Vermaelen * Implemented more complete filename completion as described in feature request 713442 2003-04-27 Maarten ter Huurne * Added a console background to SDLGL when no image is used. * Minor cleanups to console classes. * Take horizontal adjust into account for calculating HR and horizontal retrace interrupt timing. Fixes some of the glitches in No Waste, but not all. * Fixed text colour in Text1 mode in SDLGL: reverted a misguided optimisation. (in GL, full intensity of int is 0x7FFFFFFF, not 0xFF) * Updated C-BIOS to version 0.16. 2003-04-25 David Heremans * Allowed JoyNet to accept a new connection if previous connection is closed. 2003-04-25 Maarten ter Huurne * Fixed sprite colours in Graphic5 (SCREEN6). The turbo R boot logo looks OK now. However, narrow sprite pixels do not yet work in SDLGL. * Implemented horizontal scroll high and multi page in SDLGL. This implementation is based on Wouter's horizontal scroll patch. * Implemented horizontal scroll high and multi page in SDLHi/Lo. Note that some horizontal scroll features are still missing: * Multi page scrolling in combination with deinterlace. * Scrolling in character modes. However, the current state should be enough to run most games and demos. 2003-04-24 Wouter Vermaelen * if an extension exists both in user as in system directory, prefer the one in user directory 2003-04-23 Maarten ter Huurne * Added update calls for horizontal scroll settings. 2003-04-22 Maarten ter Huurne * Partial horizontal scroll implementation: scroll low and border mask. Scroll high and multi page to be done. Space Manbow works fine in MSX2+ mode now. 2003-04-21 Wouter Vermaelen * Improved DACSound quality: - improved quality at the expense of an (extra) delay - samples in Swiss Demo sound acceptable now - modplayer sounds better but still not very good * Updated FMPAC: - ROM is not visible while SRAM is active 2003-04-19 Wouter Vermaelen * Added alternative YM2413 core (implemented by Jarek Burczynski): - still needs some work before it can replace old core - volume needs some tuning - performance optimizations (silent channels) - bug fixes(?) - if you want to try it copy YM2413.cc.new and YM2413.hh.new over YM2413.cc and YM2413.hh and recompile 2003-04-18 David Heremans * Fixed a bug in JoyNet, but need a program with a good asyncron protocol to test it 2003-04-17 Maarten ter Huurne * Separated drawSprites from drawDisplay in subclasses of PixelRenderer. 2003-04-16 Maarten ter Huurne * Moved display coordinate calculation from subclasses to PixelRenderer. 2003-04-15 Wouter Vermaelen * Reworked SCC - Manuel Pazos's SCC detection routine works correctly now - Optimized for common case. You mostly write to SCC and hardly ever read from it 2003-04-12 Wouter Vermaelen * Reworked consoles: - splitted console in "core console" and "console renderer", the main advantage is that command history is preserved while switching renderers 2003-04-12 Maarten ter Huurne * Created util.hh: currently only contains fillBool, which used to be duplicated in SDLRenderer and SDLGLRenderer. * Removed system.h: this file has probably been obsolete for some time, but managed to escape everyone's attention. * Changed SDLGLRenderer to use SpriteConverter. 2003-04-10 Maarten ter Huurne * Moved the VDP and rendering code into new "video" directory. Thanks to Manuel for suggesting how to solve symbol dependencies. But I still don't like recursive Make... 2003-04-09 Maarten ter Huurne * Merged SDLLoRenderer and SDLHiRenderer into SDLRenderer. Template expansion replaces duplicated code. From a user perspective, "SDLLo" and "SDLHi" still exist. 2003-04-06 Manuel Bilderbeek * Clean up in RomInfo stuff for empty ROMs. Note that I'm now assuming that an empty ROM is always an empty SCC. Is this a valid assumption? The problem is that `forced' ROM types (as with an empty SCC) are not put in the ROMInfo. So I can't check if it is really an SCC... 2003-04-05 Wouter Vermaelen * Added Korean80-in-1 mapper type * Added Korean90-in-1 mapper type * Added Korean126-in-1 mapper type * Implemented "keyjoystick", joystick emulation via keyboard: - use like this "plug joyporta keyjoystick" - joystick direction is mapped on cursors button-A space button-B left alt - TODO mapping should become configurable - TODO you should be able to configure more than one keyjoystick * Implemented V9958 CMD bit: I don't know any program that actually uses this, so it is not yet tested 2003-04-04 David Heremans * Getting everything in /opt/openmsx installed, no links yet 2003-04-04 Maarten ter Huurne * Introduced SpriteConverter, a utility class for the Renderers to use, similar to BitmapConverter and CharacterConverter. * Changed SDLHiRenderer to use SpriteConverter. * Removed PixelRenderer's protected fields from SDLGL and SDLHi. 2003-04-03 Maarten ter Huurne * Fixed remaining reads of uninitialised VDP fields. 2003-04-02 David Heremans * First cleanups to prepare for a 'make install' 2003-04-02 Maarten ter Huurne * Minor cleanups in SpriteChecker. 2003-03-31 Maarten ter Huurne * Turned DisplayMode into a class (makes code easier to read). * SpriteChecker no longer checks sprites in text mode. * Various minor cleanups along the way. 2003-03-31 Wouter Vermaelen * Don't abort (only warn) when there occurs an error during processing of autocommands * Converted "frontswitch" command into a setting 2003-03-30 Maarten ter Huurne * Removed fullScreen parameter from Renderer constructors. * Made Renderer constructors private, only available to their respective factories. * VDP subsystem reset methods are no longer called by their constructor, instead they are called explicitly by the VDP. * Removed EmuTime parameter from VDP subsystem constructors. * Rearranged VDP constructor to remove overlap with reset method. * Fixed uses of display mode which could not yet handle the YJK bits. * Fixed a tricky bug that could occur if rendering was performed in the middle of a series of updates that all occur at the same EmuTime. 2003-03-29 Manuel Bilderbeek * Moved other configs from src/cfg to share/machines * Added some more extensions * Changed settings.xml to use cbios-msx2 and added skins/ prefix to ConsoleFont.png * Updated the HOWTO. I wish the make install was finished, so that I can cut 10% of the HOWTO... (it's getting complicated to explain...) 2003-03-29 Wouter Vermaelen * Fixed crashes on missing arguments (e.g. "openmsx -ext") * Added extra FDC names: National --> MB8877A Panasonic --> TC8566AF Philips --> WD2793 The old names are deprecated, as soon as the machine configuartions are changed to use the new names, the old names will be removed. * Fixed crash on missing console font 2003-03-28 Manuel Bilderbeek * More refactoring of Rom objects to add RomInfo: - all Rom objects now have a RomInfo object - get information that was in the romdb from that object - slotmap uses this and prints real Rom info, when available; later, the GUI should be able to use this too, in some way - note that all MSXRom constructors changed :-) - note that it's my first big change, please fix things that could be a lot better and tell me about it :-) Maarten, Wouter and Joost: thanks for your help! * Added loads of machine configs (thanks Atarulum): - when we decide what to do with the patches for the FDC, I'll add the others 2003-03-26 Wouter Vermaelen * Fixed RomPanasonic SRAM * Optimized VDPCmdEngine for common case: no command in progress 2003-03-25 Wouter Vermaelen * Fixed VDP Command Engine bug: - on every sync() the engine processed at least one 'pixel', when you poll the VDP very fast (R800) the time between two syncs is less than one pixel. This screws up the bookkeeping. - Fixes MSXView startup problem, Relax demo, ... 2003-03-24 Wouter Vermaelen * Another directory structure change: moved machines/ -> share/machines/ extensions/ -> share/extensions/ etc/romdb.xml -> share/romdb.xml settings.xml -> share/settings.xml * Create share directory, moved a lot of files around 2003-03-23 Wouter Vermaelen * Reimplemented Panasonic memory system: - in TurboR rom/ram are tightly connected (dram mode, ...) Memorymapper, RomMapper, BiosRom are now implemented as special as special devices - TurboR hardwareconfig.xml updated - MSXView almost works now, without "set cmdtiming broken" openmsx wait for a never ending VDP command. Still investigating... 2003-03-22 Manuel Bilderbeek * Refactored ROM mappertype retrieval/ROM Info (WIP, to enable readout of ROM info in the console.) 2003-03-16 Wouter Vermaelen * Implemented timeout for reading mouse: - this fixes the '"plug joyporta mouse" in settings.xml' bug - current timeout is 1/100s, I've no idea of the timeout value of a real MSX mouse 2003-03-16 Wouter Vermaelen * Various minor optimizations / cleanups, mostly better cache for unmapped memory regions 2003-03-16 Manuel Bilderbeek * When a ROM is found in the romdb, the info about the ROM is now printed. Later, this info could be stored somewhere, so that the GUI can use it to show a ROM title, e.g. 2003-03-15 Wouter Vermaelen * Added HALNOTE mapper type: - Doesn't work yet! Only 'normal' rom switching is emulated. The program also writes to pages 0 en 3 and it selects rom pages > 0x80, I've no idea what this should do. * Fixed format command, apparently I broke it several months ago. 2003-03-13 Wouter Vermaelen * Implemented "vramdump" console command, only available when compiled with DEBUG 2003-03-10 Wouter Vermaelen * Reworked MSXRom: - made a (small) subclass for every mapper type: * Moved MSXRom MSXRam related files to a new directory "memory" * Fixed rom-cartridge SRAM saving, path was wrong: - it is now ~/.openMSX/persistent/roms// 2003-03-05 Wouter Vermaelen * Implemented "Harry Fox" mapper type * Fixed ASCII8 mapper type: Annimal Land works now 2003-03-03 Maarten ter Huurne * Fixed bug in PixelRenderer: finishFrame was called every frame, even with frame skip active. This also fixes the special effects in GL with frame skip active. 2003-03-02 Maarten ter Huurne * Introduced RendererFactory. This should help in making the renderer selection a setting. It will also make it possible to query which renderers are available. 2003-03-02 Wouter Vermaelen * Converted "frameskip" console command into a setting * Implemented BooleanSetting as a specialization of EnumSetting * Fixed path resolution bug: all files were also searched for relative to the current directory 2003-03-01 Maarten ter Huurne * Updated C-BIOS to version 0.15. 2003-03-01 Wouter Vermaelen * Converted "throttle" console command into a setting * Converted "pause" console command into a setting * Converted "mute" console command into a setting * Converted "console" console command into a setting 2003-02-27 Wouter Vermaelen * Converted "speed" console command into a setting 2003-02-26 Wouter Vermaelen * Implemented free slot selection: - this is only a temporary solution, it will very likely change in the next release - when you specify -1 for the primary slot, the cartridge will be inserted in a free external slot. Very usefull to write generic extensions. * romdb.xml is now searched in /opt/openMSX/etc/romdb.xml or in ~/.openMSX/etc/romdb.xml * removed -fmpac and -musmod command line options, they are replaced by extensions 2003-02-24 Wouter Vermaelen * extension directory now has the same structure as the machines directory: - for example the scc extension lives in ~/.openMSX/extensions/scc/hardwareconfig.xml * Implemented Jon's SCC amplitude measurements 2003-02-23 Wouter Vermaelen * Implemented command line extensions: - you can load configuration files located in ~/.openMSX/extensions/ /opt/openMSX/extensions/ with the "-ext" command line option - example: ./openmsx SDNATCH1.DSK -ext scc+ * Removed -msx1 -msx2 -msx2+ -turbor command line options * SRAM of rom cartridges is saved in ~/.openMSX/persistent/roms// 2003-02-19 Wouter Vermaelen * Implemented "console_font" setting: - change the console font at run-time * Fixed SCC+ 2003-02-19 Maarten ter Huurne * Implemented "toggle" command, which toggles any BooleanSetting. * Replaced "fullscreen" command by "toggle fullscreen". * Support key binding of command including parameters. 2003-02-18 Wouter Vermaelen * Reworked File / FileContext classes: - separated "searchpath-resolution" from file opening * Implemented "console_background" setting: - change the console background at run-time 2003-02-16 Maarten ter Huurne * Fixed a bug in the VDP, where display-on was reported before the sync with VDP subsystems was completed. Can cause the command engine to run too slow, among other things. 2003-02-16 Wouter Vermaelen * First step to persistent state directories: - persistent state files are saved in ~/.openMSX/persistent/// - is the name of the directory where we found the hardware description. Maybe we should get this from inside the config file? - it's not yet possible to specify , so for now it's always "untitled" * Default machine can be specified in settings.xml: - see example settings.xml, this will load ~/.openMSX/machine/nms8250/hardwareconfig.xml * Added "-machine" command line option 2003-02-13 Maarten ter Huurne * Made "full screen" into a setting. The "fullscreen" command still works, but will disappear in the future. 2003-02-10 Wouter Vermaelen * Uninline cpu rdmem and wrmem slowpaths: this actually increased performance a little * RTC uses generic SRAM class for persistent data: - SRAM is now the _only_ class in the whole tree that writes files - parameters "filename, load, save" changed to "sramname, loadsram, savesram". This means all configuartion files must be updated. * Implemented SCC+ subtypes: "Snatcher" "SD-Snatcher" "mirrored" "expanded" 2003-02-08 Wouter Vermaelen * Fixed MSX-AUDIO mapper: - it has 4 pages of 32kB instead of only 2 - it has 4kB RAM - is mirrored at 0x8000-0xffff * Fixed Y8950 interrupt masks 2003-02-02 Wouter Vermaelen * Implemented Panasonic MSX-Audio mapper type (untested) 2003-02-02 Wouter Vermaelen * Compiled with some extra warnings enabled and fixed the resulting warnings * Renamed MSXRomDevice to Rom (it isn't a device anymore) * Default values for settings.xml: - all sections in settings.xml now have default values if they are left out the config file - don't abort when settings.xml is not found - but I really advise _against_ using these features 2003-01-31 Wouter Vermaelen * Implemented "user directories" (see settings.xml) * Fixed "specify other config file" bug * Relative-from-config was broken, fixed it 2003-01-30 David Heremans * altered a code comment and added some extra config examples 2003-01-29 Wouter Vermaelen * Implemented home-directory-substitution for local files: When a filename starts with "~", this character is replaced by the content of the environment variable HOME. I'm not sure this will work for non-UNIX OS'es. * Implemented system-directories: - The files romdb.xml, msxconfig.xml and settings.xml are searched in the "system directories". For the moment these are (in this order) ~/.openMSX/ ~/openMSX/ /usr/local/etc/openMSX/ /etc/openMSX/ But we need to discuss about this list. Note that "." is not in the list. 2003-01-27 David Heremans * Increased usefulness of error message in DeviceFactory 2003-01-26 Wouter Vermaelen * Automatically load "settings.xml" on startup: - you can specify an alternative file with the "-setting" command line option - For the moment "settings.xml" must be in the current directory * Moved hard-coded HotKey bindings to settings.xml 2003-01-26 Wouter Vermaelen * Fixed Z80/R800 switching again * Removed "sync_interval" parameter from RealTime 2003-01-26 Maarten ter Huurne * Relaxed over-zealous assert in PixelRenderer by one tick. 2003-01-25 Wouter Vermaelen * Fixed TurboR assertion: targetTime wasn't set properly when switching CPU (Z80 <-> R800) * Added dummy MSX-Midi: Illusion city works now! 2003-01-22 Wouter Vermaelen * Reworked MSX-MUSIC / FMPAC: removed enable/disable logic from MSX-MUSIC 2003-01-22 Wouter Vermaelen * Renamed "TurboR" FDC type to "Panasonic" * Fixed "cpudebug" command (I broke it yesterday) * Fixed MSXMatsushita: this caused FS-4700 build-in word processor hang * Removed ROM files from CVS 2003-01-21 Wouter Vermaelen * Allow muliple commands with the same name: - for example both Z80 and R800 could have a "cpudebug" command at the same time (not implemeted yet) 2003-01-20 Wouter Vermaelen * Removed SearchPath stuff * Relative paths in config files are now relative to the location of the config file: - this together with the change above probably means you have to rewrite some/all of your config files * Moved some #include's from .hh to .cc 2003-01-16 Wouter Vermaelen * Implemented 8-bit unsigned 16-bit signed DAC * Implemented MSX-AUDIO 13-bit DAC: untested because TurboR (needed for modplayer) is broken for the moment 2003-01-16 Wouter Vermaelen * Fixed MSXF4Device: FS-A1FX (re)boots correctly now 2003-01-15 Wouter Vermaelen * Removed possibility to use other than XML config files 2003-01-14 Wouter Vermaelen * Fixed Kanji12 * Removed some unused classes from config directory 2003-01-13 Wouter Vermaelen * Implemented Kanji 12x12: - not tested, I don't have correct ROM * Implemented front switch: - use console command "frontswitch [on/off]" - not tested yet, will do it tomorrow 2003-01-12 Wouter Vermaelen * Added powerOff() method to MSXDevice * Removed getCurrentTime() calls from destructors 2003-01-11 Wouter Vermaelen * removed MSXCPU::getTargetTime() method * added EmuTime argument to the execute() method of a Command: this removes some of the calls to MSXCPU::getCurrentTime() * An empty SCC cartridge no longer needs "/dev/zero" as filename, just don't specify a filename: this also works in OSes that don't support /dev/zero * Removed "readromfile" parameter from SCCPlusCart: if you don't want to read a rom just don't specify one * Better(?) rom placement heuristics: fixes zanac 2003-01-09 Wouter Vermaelen * Fixed CPU on big endian machines * TurboR PCM update: - It now works in Seed of Dragon, although the frequency seems wrong. The game also hangs when you start to play. 2003-01-06 Wouter Vermaelen * Fixed CPU HALT instruction * Semi-fixed CPU/Scheduler interaction: - seems to work, but I still need to take a very close look at the code 2003-01-06 Wouter Vermaelen * Large CPU rewrite: - we never perform IO at a timestamp greater or equal than the earliest sync point - 1% - 2% slowdown compared to previous implementation - ZEXALL tests still pass - still need to verify if the timimng of the instructions is still correct 2003-01-05 Maarten ter Huurne * Fixed mode number for Text 2 in VDP::updateColourBase. * Recalculate pattern and colour base when switching modes. 2003-01-04 Maarten ter Huurne * Implemented colour and pattern index mask calculation. * Fixed remaining Doxygen warnings. 2003-01-03 Maarten ter Huurne * Fixed Doxygen warnings. * Fixed I/O port handling of Matsushita switched device, which I forgot in yesterday's changes. 2003-01-02 Maarten ter Huurne * Moved I/O port registration out of VDP and into DeviceFactory. Eventually, all I/O port registration should move to the machine description file. * Moved I/O port registration of all other I/O devices out of the device and into DeviceFactory (or FDCFactory in one case). 2003-01-01 Maarten ter Huurne * Workaround to prevent out-of-order I/O with the VDP. * Added asserts to VDP code to check timing constraints. * Fix for sprites in planar modes. * Fixed behaviour of port #99, #9A and #9B interference. * Colour and pattern base mask calculation are now done in a single method each. 2002-12-30 Joost Yervante Damad * updated AUTHORS 2002-12-30 Maarten ter Huurne * Let VDPVRAM::Window notify its observer of base/index changes and windows that become disabled. 2002-12-30 Wouter Vermaelen * Autodetect BASIC ROM cartridges: code mostly taken from windows port * Don't abort when "romdb.xml" is missing, just print a warning. * Added a lot of const qualifiers * Implemented TurboR PCM device: - only playing (no recording) - sound quality is really bad (like all our DACSound based devices) 2002-12-29 Maarten ter Huurne * The VDPVRAM::VRAMObserver interface is put to use for the first time, by SpriteChecker. Cleans up the VDP subsystem synchronisation code. 2002-12-29 Wouter Vermaelen * Released 0.2.1 * Better rom placement heuristics: should solve bug 658430 point 3 (rom files without "AB" header) * Allow filenames that contain a ',' on the commandline * Support roms that don't like to be mirrored: - solves bug 658430 point 1 (BASIC prog at 0x8000) - can't be autodetected (yet?), you must specify romtype as "PAGE[...]" (examples "PAGE2", "PAGE01", "PAGE12", ...) - romdb.xml should be updated for these 'problem' roms 2002-12-28 Maarten ter Huurne * Cleaned up sprite checker synchronisation. 2002-12-27 Maarten ter Huurne * Created VDPSettings class, moved cmdTiming there. * Moved limitSprites from config to VDPSettings. 2002-12-23 Wouter Vermaelen * Support for second MSX-AUDIO: - add this to the AUDIO section in the config 2 - alex' modplayer doesn't work yet :-( 2002-12-23 Wouter Vermaelen * Tabcompletion for setting values: example: set accuracy p * Implemented "cmdtiming" setting: Switch between real or instantaneous VDP command timing. Should only be used for debugging purposes. * Implemented YJK/YAE (screen11/12) rendering 2002-12-22 Wouter Vermaelen * Updated RealTime class: - this should improve the cases where emulation is too slow, but openMSX doesn't claim 100% CPU time * SDLLoRenderer inherits from PixelRenderer iso Renderer - SDLLoRenderer now also has "accuracy" setting 2002-12-18 Wouter Vermaelen * Made some IDE stuff configurable: - master/slave device - HD image - HD size is not yet configurable - see someconfig.xml for format of new config 2002-12-17 Wouter Vermaelen * Implemented MSX Bunsetsu Henkan / Jisyo: - I don't have much info on this device, but at least BUNSDUMP.BAS gives the correct result 2002-12-14 Wouter Vermaelen * Fixed assertion in VDP when computer was reset while in PAL mode 2002-12-13 Wouter Vermaelen * Implemented MSXDeviceSwitch: - IO-ports 0x41-0x4F are (possibly) shared between several devices - IO-port 0x40 selects the active device * Converted MSXS1985 to a MSXSwitchedDevice * Converted MSXFS4500SRAM to a MSXSwitchedDevice: - renamed to MSXMatsushita - implemented PUT KANJI function (IO-ports 0x43-0x44) 2002-12-09 Wouter Vermaelen * Implemented correct mirroring for National based FDC's 2002-12-08 Wouter Vermaelen * Implemented mmap() in File classes: - map a file direclty into the process memory range, the OS can perform some optimizations this way: - only read data when actually used - faster swapping - ... - I'm not sure non-UNIX OSes (windows) have a similar function, if not there is a fallback implemented in FileBase (we also need this fallback for FTP, HTTP, ... files) * Simplified/updated MSXRomDevice: - simpler interface: you no longer need to inherit from MSXRomDevice - use mmap() to read files * Implemented FS4500SRAM (suggestions for a better name are welcome): put this in your config file: FS4500SRAM true true FS4500.SRAM 2002-12-04 Wouter Vermaelen * added SRAM class: This is just a small helper class that offers loading and saving of a byte-array. For the moment only MSXRom and MSXFmPac use it. 2002-12-01 Wouter Vermaelen * added CRC16 routine, can be used by FDC / FDCBackends * fixed TC8566AF: completely forgot to send step/side/motor commands to the DiskDrive 2002-11-30 David Heremans * Still working towards raw track read 2002-11-30 Wouter Vermaelen * fixed auto frameskip: probably still needs some finetuning 2002-11-29 Wouter Vermaelen * Fixed FDC bug (DriveMultiplexer) 2002-11-27 David Heremans * Working towards raw track read 2002-11-18 Wouter Vermaelen * FDC rewrite, introduced DiskDrive and DriveMultiplexer classes: - this is a relatively large rewrite, so I may have broken something. I wanted to commit rather soon, so I only tested the Philips FDC. - WD2793 Type I commands are now executed the same as in the flowcharts of the technical datasheet (verify step not yet). 2002-11-18 David Heremans * a small WD2793 update: quick implementation of multi sector read not tested and DSK backend needs to be changed for correct behaviour! 2002-11-18 Wouter Vermaelen * Mapped TurboR keys to left and right windows key: I haven't checked this, so possible I swapped left and right 2002-11-17 Wouter Vermaelen * a few WD2793 updates (David please review): MicrosolFDC partly works now: in BASIC the commands files load save work, but starting a game from disk doesn't work. * converted "deinterlace" from a command to a setting: - you should now use "set deinterlace [on|off]" instead of just "deinterlace [on|off]" * converted "accuracy" from a command to a setting: - you should now use "set accuracy [line|pixel|screen]" instead of just "accuracy [line|pixel|screen]" 2002-11-16 Wouter Vermaelen * renamed BrazilFDC to MicorsolFDC: doesn't work yet, I'm investigating... * cleanups, small fixes in WD2793 2002-11-13 Wouter Vermaelen * Implemented 'PUT KANJI acceleration' of S1985: This fixes the font printing problem of the FS-4600F internal software. AFAIK the FS-4600F now works completely (or at least as good as NMS8250). You need to add this to the FS-4600F config file: S1985 2002-11-11 Wouter Vermaelen * National mapper type fixes: - FS-4600F internal software seems to work, but I'm not certain the 1st and 2nd menu option work as they should. Can someone verify this? * Fixed National FDC 2002-11-11 David Heremans * completed timing in WD for writeTrack command: Timing still needs some fine tunning, but not much * implemented writetrackdata in DSK backend: Formatting with _format in BASIC seems to work Need to compare with some real disks just to be sure. 2002-11-10 Wouter Vermaelen * fixed PhilipsFDC: IDEFDISK doesn't coredump anymore * use old style file functions: should work with both old and new gcc 2002-11-08 Maarten ter Huurne * Improved scanline emulation: the dark line is now an interpolation of the visible lines above and below. * Added horizontal blur: emulates the fact that MSX monitors and TVs are not as sharp as typical PC monitors. Many game graphics are drawn with this blurring in mind and look poor on a sharp display. Note: scanlines and blur are implemented only in the GL renderer. 2002-11-03 Wouter Vermaelen * added VDP reset() methods (not finished) 2002-11-03 Maarten ter Huurne * Initial version of generic settings is working now. Currently there is only 1 setting: scanline alpha. 2002-11-03 Wouter Vermaelen * minor cleanups * fixed a few uninitialized variables: - discoverd with valgrind - some were harmless, fixed anyway to keep valgrind quiet 2002-11-02 David Heremans * Added two calls to the FDC backend: These should later be used to enable the writeTrack command 2002-11-02 Wouter Vermaelen * Basic TC8566AF disk controller support (TurboR): - Based on code from NLMSX written by Frits Hilderink - TurboR boots now! It still has a lot of missing features though. 2002-11-01 Maarten ter Huurne * Scanline emulation in SDLGLRenderer. Very rudimentary in this stage, but it works. 2002-10-31 Maarten ter Huurne * Changed SDLGLRenderer to make it a subclass of PixelRenderer. * Minor cleanups in SDLHiRenderer. 2002-10-27 Wouter Vermaelen * rewrite of FDC infrastructure: - the existing diskroms are too different to handle them all in one class -> made FDCFactory that instantiates the right object - Implemented support for: - Philips based diskroms: were already supported - Brazil based diskroms (needs better name?): IO-based were already supported, but I never tested them I also didn't test the new implementation - National based diskroms (needs better name?): also untested The three diskroms above are all build around the WD2793 (or compatible) controller. - Configuration format changed slightly, see msxconfigFDC.xml for details 2002-10-29 Maarten ter Huurne * Minor cleanups in PixelRenderer and SDLHiRenderer. 2002-10-27 Wouter Vermaelen * Implemented mapper type "NATIONAL": completely untested, will have to wait till this weekend 2002-10-27 Wouter Vermaelen * Replaced all file reading related classes with a new class structure. This structure: - has a simpler and more robust interface - is easier to port(?) a large part of the WIN32 patch deals with file reading stuff - has real filetype separation: rom, disk, tape, config files have their own searchpaths 2002-10-26 Wouter Vermaelen * Implemented "CartridgeSlotManager" 2002-10-25 David Heremans * "frameskip auto" completed 2002-10-24 Wouter Vermaelen * Cartridges are only inserted after configuration is parsed, this allows in the future to have configurable cartridge slots * Added PANASONIC mapper type (for example used in Turbo-R for MSX-VIEW ROM). Untested!! 2002-10-23 Maarten ter Huurne * Fixed bug in sprite drawing of SDLLo. * Fixed bug in initialisation of horizontal adjust. * PixelRenderer now offers left border calculation to its subclasses. * Bug fixes and cleanups in coordinate calculation of SDLHiRenderer::drawDisplay; SCREEN0 no longer fails the asserts. * Cleanups in SDLHiRenderer::drawSprites. Should be applied to other Renderers as well. 2002-10-22 Wouter Vermaelen * Rewrite of "CommandLineParser": - CLI options and CLI file types must be registered now, this allows to move the implementation of, for example the "-fmpac" option, to the MSXFmPac class where it belongs. - This should keep the CLI more up to date with code changes and make it easier to support new CLI options / file types. 2002-10-21 David Heremans * "frameskip auto" implementation started 2002-10-21 Wouter Vermaelen * Replaced "Simple64Kb" device with "RAM" device. This device also supports random sizes, so it is possible to make 8Kb machines. 2002-10-20 Maarten ter Huurne * Moved subdivision of area-to-be-rendered from SDLHiRenderer to PixelRenderer. Also changed subdivision approach: before, displayPhase would draw display area and the borders; while the new drawDisplay only draws the display area and all the border colour drawing is done by drawBorder. 2002-10-19 Wouter Vermaelen * Implemented frameskip command: TODO "frameskip auto", skip frames depending on CPU speed 2002-10-13 Wouter Vermaelen * Some IDE fixes: Harddisk works now! Following is still hardcoded: master: harddisk, size 1GB filename "hd.dsk" slave : not connected I'll change this in the next couple of days 2002-10-16 Joost Yervante Damad * removed compile-time disables for now 2002-10-13 Maarten ter Huurne * Moved absolute X coordinate to screen X coordinate translation from PixelRenderer to SDLHiRenderer. 2002-10-13 Wouter Vermaelen * Implemented Sunrise IDE interface: only interface, no IDE devices yet * Implemented very simple IDE harddisk: IDE-BIOS detects the disk IDE Master:LBA,Mode 4:OPEN MSX HARD DISK IDE Slave :not detected. but the disk can't be used. Probably because the HD isn't partioned yet. 2002-10-12 Maarten ter Huurne * Split off some functionality from SDLHiRenderer into new PixelRenderer. PixelRenderer will contain the common code of the pixel-based renderers (SDLHi, SDLLo, SDLGL). 2002-10-12 Wouter Vermaelen * Fixed sound on high endian machines (untested) 2002-10-07 Wouter Vermaelen * Horizontal adjust is only updated the next scanline: fixes some glitches in the "threedee rules" part of "relax" 2002-10-05 Maarten ter Huurne Last minute Bussum fixes: * Temporarily reverted name table base fix. This fix needs modifications in the renderers as well and I don't have time right now to find out exactly where. * Rewrote PhaseHandlers to specify rectangles in VDP absolute coordinates and using exclusive limits. Fixes crashes on MSX1 and excessive draws, maybe more. Unknown Reality shows only minor glitches, so we can demo with pride! 2002-10-03 Maarten ter Huurne * Fixed bug in VDP: name table base was not adjusted for planar modes. This caused wrong rendering in SCREEN7/8. * Disabled "inside window" check for now. Parts of the code are not ready yet to use the VRAM windows properly. 2002-10-02 Maarten ter Huurne * Updated C-BIOS to version 0.13. 2002-09-30 Maarten ter Huurne * The Great VRAM Rewrite, part 4: Introduction of VRAMObserver interface. Not used yet. * Minor VRAM cleanups. 2002-09-29 Wouter Vermaelen * Read/Write memory cache for SCC+ * Unified Xanadu and Royal Blood mapper types 2002-09-28 Wouter Vermaelen * SCC+ didn't work at all, fixed it. Fixes Snatcher and SDSnatcher. * Fixed RoyalBlood mapper type (not sure about Xanadu) * Fixed Majutsushi, bad sound quality (DAC) though * Implemented CrossBlaim mapper type (untested) 2002-09-28 Maarten ter Huurne * Updated C-BIOS to version 0.12. * I forgot that the cbios.xml used TMS99x8A. With a V9938, C-BIOS can run many MSX2 ROMs as well. I created two separate config files: cbios-msx1.xml and cbios-msx2.xml. 2002-09-25 Wouter Vermaelen * GLFont uses 16x16 character texture instead of 256x1 2002-09-22 Maarten ter Huurne * Updated C-BIOS to version 0.11. Boukichi sure understands "release early; release often". :) 2002-09-20 Maarten ter Huurne * Updated C-BIOS to version 0.10. 2002-09-17 Maarten ter Huurne * Updated C-BIOS to version 0.08. 2002-09-08 Wouter Vermaelen * Added "deinterlace" command: switch at-run-time between stable and unstable interlace only SDLHiRenderer and SDLGLRenderer 2002-09-08 Maarten ter Huurne * Updated C-BIOS to version 0.07. 2002-09-08 Wouter Vermaelen * Enabled pixel accurate rendering in SDLHiRenderer: - for some reason the NOTONLYSNESCANDOTHIS part in Unknown Reality is not extremely slow (it is when using SDLGLRenderer) - remember you have to manually enable pixel accurate rendering with the command "accuracy pixel" * Enabled pixel accurate rendering in SDLLoRenderer 2002-09-08 Joost Yervante Damad * mv configure.in -> configure.ac [autotools recommendation] * configure exits on failure to find SDL_image library 2002-09-07 Wouter Vermaelen * Correct blending in all non-paletted modes, no blending in paletted modes * Implemented "accuracy" command. This allows to switch at-run-time between pixel/line/screen accuracte rendering. For the moment no screen accurate rendering and only for SDLGLRenderer. 2002-09-02 Wouter Vermaelen * Dont't stop when sound device couldn't be opened, just continue without sound. 2002-09-01 Wouter Vermaelen * Added some Turbo-R specific devices: - MSXTurboRPauze: without this BIOS gets stuck in pauze loop - MSXS1990 (minimal): Needed to switch between Z80 / R800 - MSXF4Device (needs a better name): to distinguish between cold/warm boot and Z80/R800 boot-pass - MSXTurboRLeds Turbo-R doesn't boot yet :-( 2002-09-01 Maarten ter Huurne * Updated C-BIOS to version 0.06. 2002-08-31 Maarten ter Huurne * The Great VRAM Rewrite, part 3: SpriteChecker does all of its VRAM reading through VDPVRAM::Window. Only CPU does non-windowed reads anymore. All planar remapping occurs outside of VDPVRAM. 2002-08-31 Wouter Vermaelen * Move common code from SDLConsole and GLConsole to a new parent class * Added R800: there is nothing implemented to switch from Z80 to R800, so for the moment R800 is not yet usable 2002-08-30 Wouter Vermaelen * SDLGLRenderer: small cleanups when interlaced, display odd fields half a line lower 2002-08-29 Wouter Vermaelen * FDC supports 2 drives 2002-08-28 Wouter Vermaelen * Implemented pixel-accurate rendering in SDLGLRenderer: - scope part in Unknown Reality is correct now! - some parts are _very_ slow now, implementation can still be optimized a lot and speed should also improve when VDPVRAM is finished. * Implemented "vdpregs" command to help vdp debugging 2002-08-26 Maarten ter Huurne * Updated C-BIOS to version 0.05. 2002-08-26 Wouter Vermaelen * Implemented partial character rendering for SDLGLRenderer: - fixes top border while vertical scrolling in Space Manbow - fixes Psycho World * Implemented vertical scrolling in TextMode1 in SDLGLRenderer 2002-08-25 Wouter Vermaelen * Use SDL_image to load images (.png .bmp .jpg ...) * Implemented GLConsole for SDLGLRenderer - old console didn't always work for SDLGLRenderer - a lot faster - per pixel alpha blending: ConsoleBackground and ConsoleFont can be true RGBA images (current pictures are .bmp, they don't have an alpha channel) 2002-08-22 Wouter Vermaelen * Implemented R-Type mapper * Fixed vertical scrolling in text modes (except TextMode1 in SDLGLRenderer) 2002-08-21 Maarten ter Huurne * Added C-BIOS 0.04 to Contrib directory. * Added config XML for using C-BIOS to src/cfg. 2002-08-18 Wouter Vermaelen * VDP code: - trivial fixes / cleanups - low resolution (SDLLo) rendering improvements try SCREEN 0 WIDTH 80 only 24bpp modes yet * Z80 fix: IFF2 should be reset while acknowledging an IRQ this fixes music in "Break-In" 2002-08-16 Wouter Vermaelen * major cleanups, minor tweaks / fixes 2002-08-16 Maarten ter Huurne * Fixed wrong use of sizeof(array): it returns #bytes, not #elements. Caused a segfault on Sparc. 2002-08-14 Wouter Vermaelen * Fixed SD-Snatcher loading bug: - disk has a non-standard bootsector (sectors per track and number of sides) is wrong. Updated heuristics to detect 9 sectors per track and 2 sides in case disk image has 80*2*9 sectors. How does the BDOS read this disk? Perhaps it uses the media descriptor? 2002-08-13 Wouter Vermaelen * Split MSXMotherBoard in: - MSXCPUInterface: handles communication between a MSXDevice and CPU - registration of IO- and memory-space - slotselection mechanism - MSXMotherboard: keeps a list of all MSXDevices 2002-08-11 Wouter Vermaelen * more Z80 cleanups * commands can now also be bound to key releases (was only keypresses) example: unbind F9 bind F9 "throttle off" bind f9,up "throttle on" this disables throttling while you hold F9 2002-08-10 Wouter Vermaelen * Z80 fixes: V_FLAG was wrong with SUB/SBC/CP instructions * Z80 fixes: XF and YF flags where wrong with BIT n,r instruction * major Z80 cleanup: - greatly reduced code duplication in CPUCore.n2 2002-08-09 Wouter Vermaelen * More robust Thread class * cleanups, especially in JoyNet * fix bug [592594] MSXFDC doesn't work with single sided disks 2002-08-08 Wouter Vermaelen * Z80 cleanups / fixes: especially fixes for the 2 undocumented flags (bit 3 and bit 5) * New config file format for inserted disks / tapes * Applied Manuel's patch [592591]: romdb.xml is searched with FileOpener 2002-08-06 Wouter Vermaelen * Full support for .XSA disk images 2002-08-05 Wouter Vermaelen * Enabled SDLConsole in SDLGL renderer: current code is only a temporary solution for the following reasons: - use of SDL_OPENGLBLIT is heavily discouraged, see http://www.libsdl.org/pipermail/sdl/2001-November/039852.html - transparancy doesn't work in 16-bit video modes (an SDL limitation) in the future we should make a native GLConsole 2002-08-04 Wouter Vermaelen * Allow multiple "md5" tags per "rom" tag * Low level tape support (experimental) 2002-08-03 Wouter Vermaelen * wrote doc/commands.txt * cleanups, small fixes in RomTypes and MSXRom * added some entries in romdb.xml 2002-08-01 Wouter Vermaelen * EmuTime cleanups: introduced EmuDuration class - the subtraction of 2 EmuTimes results in an EmuDuration, this used to result in another EmuTime - an EmuDuration can be added to / subtracted from an EmuTime, this results in another EmuTime * DACSound: - totally discarded old implementation - new implementation is extremely simple, relatively slow, has poor sound quality, but is bug free 2002-07-31 Wouter Vermaelen * Made "check-db": a primitive tool to compare a romtype database against the build-in rom autodetection algorithm * When console is up, keypresses are blocked for MSX-Keyboard: this implementation should work in all cases (hopefully) 2002-07-29 Wouter Vermaelen * cleanups * Support for "ROM database" 2002-07-26 Wouter Vermaelen * Experimental support for .xsa disk images * Removed "automappertype" parameter, you can still explicitly specify autodetection by setting "mappertype" to "auto" * Added MD5 class: will be used for mappertype detection of difficult ROMs 2002-07-24 Maarten ter Huurne * Added debug option NOTIME_EXECUTION, to make VDP command execute in zero EmuTime. Useful for tracking "no/partial images" bugs. 2002-07-23 Wouter Vermaelen * MSXDiskRomPatch supports 2 drives again 2002-07-22 Maarten ter Huurne * The Great VRAM Rewrite, part 2: SpriteChecker does most of its VRAM reading through VDPVRAM::Window. Updated doc/vram-addressing.txt with details of sprite indexing. Proper support for planar modes is still missing. 2002-07-21 Maarten ter Huurne * The Great VRAM Rewrite, part 1: Renderers do all their VRAM reading through VDPVRAM::Window now. See doc/vram-addressing.txt for background info. 2002-07-14 Wouter Vermaelen * Implemented "bind" and "unbind" command 2002-07-14 Wouter Vermaelen * Moved event related files to new directory * Added Keys class: translates keyCodes to keyNames and vice versa 2002-07-09 David Heremans * Improved portbased interface to MSXFDC 2002-07-08 Wouter Vermaelen * Enabled console in SDLLoRenderer 2002-07-07 Wouter Vermaelen * Reenabled SDLLoRenderer: - just a copy-paste from SDLHi and adjusted a few routines - console is disabled in SDLLo - not very well tested yet 2002-07-07 David Heremans * Added portbased interface to MSXFDC for Brazilian MSX's 2002-07-06 Wouter Vermaelen * Moved cassette related code to its own directory * Cleanups 2002-06-30 David Heremans * Added index mark to the FDC status register (not tested yet!) 2002-06-28 Wouter Vermaelen * Initial version of DiskImageManager (WIP): - insert disk from commandline doesn't work yet - MSXFDC compiles, but not yet tested - MSXDiskROMPatch only supports 1 drive - FDC_DSK backend only supports double sided disks * Insert disk from command line works again: - just a hack, we need a better configuration format for this * MSXFDC still seems to work: - config file changed slightly, see msxconfigFDC.xml - David please check my modifications, especially the error handling code 2002-06-27 Wouter Vermaelen * MSXRom fix: map 32kb ROMs in the right place 2002-06-22 Wouter Vermaelen * Small Mixer fix, cleanups 2002-06-21 Wouter Vermaelen * Enabled console background * Console font and background filename are read from config file 2002-06-20 Wouter Vermaelen * Moved thread related code to its own subdirectory * Added unregisterHotKey() and unregisterHotKeyCommand() methods * Enabled "renderer" command 2002-06-19 Wouter Vermaelen * Console commands and HotKeys are now executed by the main thread: - this removes some (potential) races, so some bugs like "This crashed once, but I can't reproduce it" might be gone. - this is a rather fundamental change, it might still contain some glitches. * Removed all registerAsync__() methods: they aren't used anymore and they shouldn't be in the future * Introduced condition variables (thread locking): used in Scheduler to implement pause * Added unregisterEventListener() method 2002-06-18 David Heremans * Basic timing for all FDC Type I commands 2002-06-18 Wouter Vermaelen * Tab-completion now works for zero-length tokens 2002-06-16 Wouter Vermaelen * Use exceptions for command error reporting 2002-06-15 Wouter Vermaelen * Simplified MSXRomPatchInterface 2002-06-14 Wouter Vermaelen * Scheduler fixes * Removed MSX16KB device: MSXGameCartridge can do everything what MSX16KB could * Renamed: MSXRom -> MSXRomDevice MSXGameCartridge -> MSXRom * Moved common code to MSXRomDevice * "filesize 0" no longer means autodetection, instead use "filesize auto" (or just don't mention filesize) 2002-06-12 Wouter Vermaelen * ConsoleCommand parser now understands quoted tokens or tokens with escaped characters. Examples: diska a\ space.dsk diska "a space.dsk" diska a\"quote.dsk It should now be possible to enter any string as a command token. 2002-06-11 David Heremans * basic FDC fully working: Fixed minor bug (all my tested disks work now) Implemented small speed up 2002-06-10 Wouter Vermaelen * Commands can now be unregistered again * cleanups 2002-06-10 David Heremans * basic FDC implemenation partialy working: DSK backend working All Type I functions working Type II partial (readSector OK, writeSector doesn't check for write protected images yet) No Type III commands yet 2002-06-06 David Heremans * First step towards an FDC implemenation: Basic structure is provided MSXFDC as good as finalized. 2002-06-05 Joost Yervante Damad * preliminary auto* libpng support [David is learning auto* woowoo!] 2002-06-04 Wouter Vermaelen * Implemented "speed" command, try "help speed" in console 2002-06-02 Wouter Vermaelen * MSXGameCartridge cleanup 2002-05-28 Wouter Vermaelen * Fixed PAINTER.ROM: mappertype autodetection doesn't work, start with ./openmsx roms/PAINTER.ROM,64kb * Fixed MSXSCCPlusCart: delete SCC in destructor ignore reads/writes outside address space 2002-05-27 Wouter Vermaelen * writing the same value twice to an (output) connector doesn't change the status of that connector, so don't call the write method of that connector twice (Joystick, PrinterPort, Y8950Keyboard) 2002-05-23 Bas Wijnen * Mutexes added around PRT_* macros 2002-05-22 Maarten ter Huurne * SDLGLRenderer uses block textures in Text1 (SCREEN0.40). * SDLGLRenderer uses block textures in Graphics2 (SCREEN2). * Rendering sprites in SDLGLRenderer is a lot faster now, because textures aren't immediately destroyed after drawing. 2002-05-19 Wouter Vermaelen * small sprite rendering optimizations 2002-05-18 Bas Wijnen * Added files for Xlib renderer. Mostly unimplemented. 2002-05-15 Maarten ter Huurne * SDLGLRenderer uses textures. 2002-05-15 Bas Wijnen * g++-3.0 fixes 2002-05-15 David Heremans * JoyNet cable using TCP/IP implemented 2002-05-13 Wouter Vermaelen * converted some ints to unsingned ints 2002-05-13 Joost Yervante Damad * fixed some files mising in the Makefile.am 2002-05-12 Wouter Vermaelen * made "diska" and "diskb" commands 2002-05-09 Joost Yervante Damad * File, HttpFile, LocalFile [work in progress] 2002-05-08 Bas Wijnen * fixed console-key-pass-bug and some minor things 2002-05-06 David Heremans * Skeleton files for JoyNet configuration 2002-05-05 Bas Wijnen * Game Master 2 is working with SRAM and guessing. 2002-05-03 Bas Wijnen * Created src/FileType.hh for g++-3.0 and some g++-3.0 fixes 2002-05-02 Maarten ter Huurne * Calculate pixel precision coordinates. They are approximately right, but not exactly right yet. 2002-05-02 Joost Yervante Damad * File, HttpFile, LocalFile [work in progress] 2002-05-01 David Heremans * Skeleton files for JoyNet device 2002-04-30 Joost Yervante Damad * s/-fhuge-objects//g * verious g++-3.0 fixes 2002-04-29 Maarten ter Huurne * SDLGLRenderer is working again. * SDLGLRenderer now uses CharacterConverter and BitmapConverter. * Removed double buffering from SDLHiRenderer. It didn't work and without double buffering more optimisations are possible. * Renderers use screen position instead of EmuTime for internal update targets. It was like this before the VDPVRAM introduction and with the cleaned up implementation it is possible again. It also fixes a bug where too many lines were scanline converted. This caused no glitches, but it did waste CPU cycles. * Also made SpriteChecker use screen position rather than EmuTime. 2002-04-29 Joost Yervante Damad * small cleanup FilePath [sorry guys!] * more proper cleanup 2002-04-28 Maarten ter Huurne * Some VDP cleanups. 2002-04-28 Joost Yervante Damad * FilePath stuff for future FileManager 2002-04-28 Wouter Vermaelen * Tab-completion updates 2002-04-28 Maarten ter Huurne * Removed re-entering of SpriteChecker::sync and Renderer::sync. Display enable/disable changes now go through VDPVRAM. Various other cleanups. Most sprite glitches are fixed now. 2002-04-28 Bas Wijnen * Added includes, std:: prefixes and unsigned char casts to allow compile with g++-3 2002-04-27 Maarten ter Huurne * Display mode changes now go through VDPVRAM. It also performs planar reorder on single-byte reads and writes. 2002-04-25 Wouter Vermaelen * VDP Text2 dirty colour table check 2002-04-24 Maarten ter Huurne * Fixed a bug in SpriteChecker and also simplified it. 2002-04-24 Wouter Vermaelen * more accurate VDP command timing: 2002-04-23 Wouter Vermaelen * Enabled VDP command timing: recalculated table, no difference 50/60Hz anymore 2002-04-23 Maarten ter Huurne * Re-enabled SDLGLRenderer. 2002-04-22 Wouter Vermaelen * tuned relative volume Y8950-ADPCM / -FM (thanks Manuel) 2002-04-18 Maarten ter Huurne * Separated sprite checking into a separate class. Works, but with glitches. 2002-04-17 Joost Yervante Damad * added tools/ dir and bin2c tool * added --disable-SCC * added --disable-FMPAC * added --disable-MSXMUSIC * more "--disable-XXX"'s to come ;-) 2002-04-16 Maarten ter Huurne * More VDPVRAM and related cleanups. 2002-04-15 David Heremans * Enhancements to the developpers FAQ 2002-04-15 Joost Yervante Damad * extended commandline parser to support keyinserter 2002-04-15 Wouter Vermaelen * Extended KeyEventInserter so it can be used in Tilburg * Fixed YM2413 drums: playing the same drum twice now works 2002-04-13 Maarten ter Huurne * VDPVRAM and related cleanups. 2002-04-12 Wouter Vermaelen * DACSound cleanup (still has the same(?) bug) * EventDistributor simplification: use Scheduler for synchronous event delivery thanks Maarten for the idea * Made Scheduler thread safe * #include cleanups * Y8950 generates an IRQ on end-of-sample _in_EmuTime_ (was realtime) * Implemented Y8950 keyboard connector: just the connector, no keyboard yet * More accurate ADPCM readback (thanks Maarten) 2002-04-11 David Heremans * Royal blood works, use type ASCII8SRAM2! Xanadu resets to Basic, Hydlide2 hangs. 2002-04-11 Maarten ter Huurne * Introduced "renderer" command to print current renderer and switch to another one. However, switching from SDLHi to SDLGL hangs SDL. Well, at least the renderer destructors are finally implemented. 2002-04-11 Wouter Vermaelen * Finally (?) fixed Y8950 samples: "Arranger 4" sounds ok now * Implemented ADPCM readback (untested) 2002-04-11 David Heremans * Royal blood works, use type ASCII8SRAM2! Xanadu resets to Basic, Hydlide2 hangs. 2002-04-11 David Heremans * Added (not tested) support for ASCII8SRAM type to MSXGameCartridge. 2002-04-08 David Heremans * Added support for Hydlide2 type to MSXGameCartridge. * Added generic support for SRAM to MSXGameCartridge. * Enhanced CommandLineParser to support SRAM filenames for games. 2002-04-08 Maarten ter Huurne * Took character scanline conversion out of SDLHiRenderer as well, its new home is a class called CharacterConverter. 2002-04-07 Maarten ter Huurne * Took bitmap scanline conversion out of SDLHiRenderer and put it in a separate class called BitmapConverter. It is necessary to reduce the size of SDLHiRenderer, because its source had become too large to manage (over 1250 lines). 2002-04-06 Wouter Vermaelen * small update to doc/developersFAQ.txt 2002-04-05 Joost Yervante Damad * added --enable-interlacing ./configure argument see also ./configure --help and src/config.h.in after rerunning ./autogen.sh 2002-04-04 Wouter Vermaelen * Console cleanup * Console is no longer a singleton, instead there is now a singleton ConsoleManager. All Consoles must register with the ConsoleManager. * Made InteractiveConsole subclass of Console: SDLConsole inherit from InteractiveConsole a logging-only console inherits from Console * Bumped version number * ConsoleFont.bmp can now be in any configured directory 2002-04-04 David Heremans * Added more debug info to MSXGameCartrdige. * Fixed an error in SCCplus cartridge * Addapted SCCplus cartridge to use FileOpener 2002-04-03 Wouter Vermaelen * Moved ADPCM part of Y8950 to its own file * Fixed ADPCM bug: addresses where a factor 8 too low, only first sample was played correctly * Made console command "fullscreen", PrtScrn is bound to this command * Console command "mute" takes on/off parameter * Console command "pause" takes on/off parameter * Made console command "console", F10 is bound to this command 2002-04-01 Joost Yervante Damad * FileManager sync [WIP] * a first proposal for a FileManager API, I'll implement it soon if noone objects [or at least something like this!] 2002-03-31 Maarten ter Huurne * Cleaned up VRAM implementation a little. Still plenty of work to be done. 2002-03-30 Maarten ter Huurne * Added new VDPVRAM class, which manages VRAM. It is far from finished, but even in the current state it should be no less accurate than what we had before. 2002-03-30 Joost Yervante Damad * made CommandlineParser xml entity safe 2002-03-28 David Heremans * Added MC6850 and sampleram to '-musmod' CLI option. * Added article written for the Dutch MSX-infoblad. The png's are ment to be printed and where not scaled for webpurposes. 2002-03-28 Wouter Vermaelen * Added dummy MC6850 (ACIA used in MSX Music Module for MIDI): "FAC demo 3" now detects MSX Music Module 2002-03-28 Wouter Vermaelen * amount of sample-ram is now configurable 2002-03-27 Wouter Vermaelen * implemented Y8950 timers * implemented "throttle" command 2002-03-26 Wouter Vermaelen * fixed crash when a specified file did not exists: for some reason C++ doesn't throw exception beyond the constructor, even explicitly (re)throwing an exception in the constructor doesn't work 2002-03-25 Joost Yervante Damad * made VPATH compiles work, fixes 'make distcheck' also * bumped version no 2002-03-25 Wouter Vermaelen * implemented RYTHM sounds for Y8950 (MSX-AUDIO): untested! * reworked IRQ handling: CPU keeps IRQStatus (was CPUInterface) this way CPU can react directly on unannounced IRQs (eg: Y8950 end-of-sample IRQ) 2002-03-24 David Heremans * Added more helptext to the CommandlineParser. * Made the 64 kB roms Manuel send me working. * Enhanced the autodection of MSXGameCartrdige. 2002-03-24 Wouter Vermaelen * Y8950 and YM2413 cleanups 2002-03-24 Joost Yervante Damad * fixed configure.in * continuation of 2002-03-23 Joost Yervante Damad * more CustomConfig framework * started on FilePath CustomConfig * this is WIP, and is not finished yet! 2002-03-21 David Heremans * Again a (total) rewrite of CommandlineParser. A simpler and cleaner design then the previous one, and easy to extend for other CLI-options. 2002-03-20 Joost Yervante Damad * XML::Escape support added to libxmlx * usage is explained in the header * if you make xml that is feeded into libxmlx, you need to escape it first, to allow entity escaping for &, <, >, ... * cleaned up libxmlx dir, libxmlx is now dual licensed GPL and LGPL 2002-03-19 Wouter Vermaelen * updated config files 2002-03-19 Joost Yervante Damad * started on CustomConfig * added src/config/ dir, moved initial files 2002-03-19 Wouter Vermaelen * various Y8950 improvements, not sure adpcm part is completely fixed * fixed getName() for Schedulable (eg VDP) * fixed virtual inheritance constructor invocations 2002-03-18 Joost Yervante Damad * small fix in src/Makefile.am, I hope this solves David's compilation problems 2002-03-17 Maarten ter Huurne * Fixed graphical glitch when switching between PAL and NTSC timing. * Minor clean-ups in SDLGLRenderer. 2002-03-16 Maarten ter Huurne * Implemented blanking in SDLGLRenderer. * Implemented side borders in SDLGLRenderer. * Implemented sprites in SDLGLRenderer. * Only compile SDLGLRenderer if OpenGL was detected. 2002-03-15 Maarten ter Huurne * Improved line rounding in renderer sync. * Fixed side border widths in text mode. 2002-03-15 Wouter Vermaelen * Fixed SCC distortion (was unsigned->signed conversion bug) * [Experimental] First order high-pass IIR filtering in Mixer * Tab completion of filenames for "disk" and "tape" command 2002-03-14 Maarten ter Huurne * Fixed ASCII16K MegaROM mapper. Eggerland 2 works now, but is still autodetected incorrectly. 2002-03-14 Wouter Vermaelen * Fixed tab completion bug * Fixed printed CPU T-States (only printed value was wrong) * Fixed crash when RTC.SAVE or FMPAC.PAC where missing 2002-03-12 Wouter Vermaelen * convert CassettePort to Connector-Pluggable structure * MSXSimple: - converted from MSXIODevice to PrinterPortDevice - renamed to PrinterPortSimple * MSXPrinterLogger: - converted from MSXIODevice to PrinterPortDevice - renamed to PrinterPortLogger 2002-03-11 Wouter Vermaelen * made Connector-Pluggable aware of EmuTime * convert PrinterPort to Connector-Pluggable structure 2002-03-10 Wouter Vermaelen * Console cleanup * Added console prompt * Tab completion for help command * Fixed uninitialized variable (enabledSCC) in MSXGameCartridge * made MSXConfig::getParameterAsXXX() methods throw execptions again 2002-03-08 Wouter Vermaelen * Split Console in Console and CommandController: commands can now execute without a Console * Implemented help command * Re-implemented tab-completion: - completion till longest common match - if there is only one match left a ' ' is added - option for context sensitive completion (not yet tested) * Implemented tab completion for (un)plug command: name of connector and pluggable gets completed 2002-03-07 Maarten ter Huurne * Fixed Generic16K MegaROM mapper. DOS2 works now. 2002-03-07 Wouter Vermaelen * Added plug-connector infrastructure: - only very basic support yet - changed joystick stuff to use this 2002-03-07 David Heremans * New internal structure of CommandlineParser is working This will make it possible to have extra parameters for cartridges,disks, or in a more global context. * Small fix to MSXGameCartridge 2002-03-06 Wouter Vermaelen * split console commands in tokens 2002-03-05 Joost Yervante Damad * simplified auto* support for openGL see src/config.h after running autogen.sh to see which vars to use. For now it searches for or and for -lGL This should allow easy conditional compile of SDLGLRenderer. 2002-03-04 Maarten ter Huurne * Added SDLGLRenderer (work in progress). * Added nms8250.xml to distributed files. * Fixed compile warnings in VDPCmdEngine. 2002-03-04 Wouter Vermaelen * SCC cleanups and tiny tweaks 2002-03-04 Joost Yervante Damad * added auto* support for openGL 2002-03-03 Maarten ter Huurne * Made sure unused bits in GRB palette value are zero. 2002-03-02 Maarten ter Huurne * Implemented fixed palette for sprites in Graphic 7 mode. 2002-03-01 Joost Yervante Damad * cleanup & documentation for libxmlx * tightened interface in xmlx.hh * tiny configure.in fixes * bumped version number 2002-02-28 Maarten ter Huurne * Fixed enlarged sprites. (David, you can fly your heli now! ;) 2002-02-28 Wouter Vermaelen * moved sound related files to new directory "sound" * fixed MSX-MUSIC in CTNG products: a real MSX-MUSIC is enabled on power-on 2002-02-27 Joost Yervante Damad * doxygen cleanups * updated homepage 2002-02-27 Maarten ter Huurne * Fixed even/odd page flipping, it was overzealous. 2002-02-27 Joost Yervante Damad * simplified auto* setup for crosscompiling * added atoll.c code for platforms that don't support that function * crosscompiling now works, xmlxdump.exe works, openmsx.exe doesn't work yet * for instructions, see README.WIN32 * fixed faulty CHECK_FUNC in configure.in * atoll.c is now only used when needed 2002-02-25 Maarten ter Huurne * Implemented even/odd and interlace display. 2002-02-24 Maarten ter Huurne * Fixed port C read bug in PPI. Now keyboard works in SBB promo and CAPS is off at boot time. * Implemented VDP name table masking (R#2) in bitmap modes. The 12 scrolls part of the Source of Power works now. * Implemented blinking in Text2 display mode. * Disabled SDLLoRenderer for now; it is not actively maintained. 2002-02-23 Maarten ter Huurne * Fixed Graphic7 border colour. 2002-02-22 Maarten ter Huurne * Implemented VDP overscan. Can use some more cleanup, but it works. 2002-02-19 Wouter Vermaelen * PrinterPortDevice now receives EmuTime: this is necessary for devices like Simple 2002-02-18 Wouter Vermaelen * moved CPU related files to subdirectory 2002-02-18 David Heremans * added simple and a printerlogger. Two devices that are connect to the printerport on a real MSX. The first is a DAC to play samples, the other logs all the data that a printer would normally print. 2002-02-17 Joost Yervante Damad * added atoll support for platforms that don't have that function [code taken from newlib, a libc for embedded systems] 2002-02-16 Maarten ter Huurne * Moved "display or border" calculation from renderer to VDP. This is a preparation for overscan and for accurate VRAM timing. 2002-02-15 David Heremans * Nicer mappertypes for the MSXGameCartridge: As requested by Maarten you can now specify easier to remember names (like ASCII8, SCC,KONAMI4,...) for the different mapper types instead of the numbers. 2002-02-15 Maarten ter Huurne * Added "palette" console command. 2002-02-15 David Heremans * Nicer mappertypes for the MSXGameCartridge: As requested by Maarten you can now specify easier to remember names (like ASCII8, SCC,KONAMI4,...) for the different mapper types instead of the numbers. 2002-02-13 Wouter Vermaelen * CPU speedup: CPU doesn't check the IRQ line after each instruction anymore, only directly after synchronization points. This also means that all irq.set() instruction must also set a synchronization point. TODO: check this for VDP, Y8950 and document this * VDP bug fix: writes to register > 46 (non existing registers) overwrite other variables 2002-02-13 David Heremans * MSX MUSIC/MSX AUDIO Stereo now possible: The xml has an extra parameter allowing the Y8950 and YM2413 to be activated in mono, left or right channel mode 2002-02-12 Wouter Vermaelen * Fixed FM-modulation error in both Y8950 as YM2413 2002-02-11 Wouter Vermaelen * Fixed some bugs in Y8950: it is usable now, both OPL part as ADPCM part but there are a few bugs left (YM2413 has the same problems) relative volume of opl vs adpcm might need some tuning 2002-02-10 Wouter Vermaelen * Made "cpudebug" command: must be enabled in CPU.hh (#define CPU_DEBUG) * Y8950 (AUDIO) updates * Implemented auto commands: automatic joystick/mouse insertion is now possible 2002-02-10 Maarten ter Huurne * Moved SDL dependent code out of VDP: - Renderer instantiation happens in PlatformFactory (new class) - full screen toggle was moved to Renderer (not its final location) 2002-02-08 Maarten ter Huurne * Fixed secondary slot select bug for real now. The cause was uninitialised variables, the previous "fix" turned out to be no more than a workaround. 2002-02-08 Wouter Vermaelen * Large Console cleanup: convert code to C++ split code in SDL dependent and SDL independent part moved all console code to directory ConsoleSource * Support for 9 joysticks * Stricter syntax checking for joyport command 2002-02-07 Maarten ter Huurne * Fixed ASCII 16K (type 5) mapper. Re-engineered Zanac-Ex ROM works now. * Made MSXMotherBoard console command inner classes private. 2002-02-06 Wouter Vermaelen * More cleanups in ConsoleSource: made SDLFont class, replaces DT_drawtext 2002-02-06 Maarten ter Huurne * A few small fixes in joystick implementation. It works now. Thanks Wouter! 2002-02-06 Wouter Vermaelen * Console cleanups * ConsoleCommand inner classes for Scheduler, MSXMotherBoard * Implemented "disk" command (similar as "tape" command): works only for drive a: 720kb disks * Implemented "joyport" command: joyport[a|b] [unplug|mouse|joystick[1|2]] * First cleanup in ConsoleSource: use hash_map in CON_consolecommand instead of self-made linked list 2002-02-05 Wouter Vermaelen * Implemented "reset" console command. 2002-02-05 Maarten ter Huurne * Added MSXMotherBoard::IRQHelper class. * Removed IRQ helper functionality from MSXDevice. 2002-02-04 Maarten ter Huurne * Took advantage of new raiseIRQ/lowerIRQ semantics in VDP. 2002-02-04 Maarten ter Huurne * Fixed bug where devices in non-expanded slots would only be visible when subslot 0 was selected. * Implemented "slotselect" console command. 2002-02-03 Maarten ter Huurne * Implemented "slotmap" console command. * Console::printOnConsole now accepts multi-line texts. * Fixed buffer overrun in CON_Out. * Renamed DummyDevice's device name to "empty", which makes more sense to the user (who sees it in the slotmap). 2002-02-03 Wouter Vermaelen * Removed class LoadFile: it was only used by MSXRom and it was only usefull for that class (two classes merged now) 2002-02-02 Maarten ter Huurne * Implemented memory overlay behaviour in SCC page (0x3F). 2002-01-30 David Heremans * MSXTapePatch uses console: Now possible to change or eject tapes using the console 2002-01-29 David Heremans * Console enhancements: -calls CommandHelp when tabcomplition has already found a complete command * DiskPatch can now reports problems with disks during initialization: This should help Maarten if he has a 'black screen' :-) 2002-01-28 Joost Yervante Damad * made libxmlx an 'utility' library, this implies that openmsx links this statically, which makes for easier debugging, no more 'wrapper script' for now 2002-01-27 Joost Yervante Damad * Made SDL console autotools enabled 2002-01-26 David Heremans * Console now usable: - registered as ansynchron event listener - Scheduler has now two commands registered 2002-01-26 Wouter Vermaelen * Fixed double delivery of syncronous events 2002-01-25 Wouter Vermaelen * Exception cleanups * Y8950 adpcm support (untested) 2002-01-24 Joost Yervante Damad * added support for streamstring xml config per request of David 2002-01-24 David Heremans * Altered SDL_Console: - C++-ed the code and files - dumped unwanted function - now registers objects from type ConsoleInterface to use for callback instead of C-function pointers * Scheduler has now one (1) registered command with console: - press tab for autocomplete :-) * Added cartridge to help debug ARC protection cartridge * DummyDevice warns about unregistered I/O port calls 2002-01-22 David Heremans * Added an SDL_console: Not usefull for the moment but you can toggle it with F10 No commands possible and double key registration but the effect is "cool" :-) 2002-01-20 David Heremans * Added DSKFMT-implementationr:. Formating of a 360kB dsk file doens't work. A 720kB dsk file can be formated single or double sided. * Autofill of empty,newly generated .dskfiles: No auto formating however, maybe later. 2002-01-19 Joost Yervante Damad * openmsx now uses new config code * features: - supports multiple config files - it's possible to create alternative config backends - no more libxml++ *yipee* - uses libxmlx, right now still linked dynamically, this means that ./openmsx is actually a libtool provided script, soo for debugging use .libs/openmsx and alter the LD_LIBRARY_PATH environment variable if needed - support for save not yet added, but it will be easy * xmlconfig raises exception on duplicate "id" 2002-01-12 Maarten ter Huurne * Compile fix for Thread class: explicitly convert between Runnable pointer and void pointer. 2002-01-12 Wouter Vermaelen * made a Thread class, interface is SDL independent, implemenation uses SDL * made a Mutex class, analog as Thread * sync MSX-MUSIC and MSX-AUDIO on register write * made all sound related classes (except Mixer) SDL independent 2002-01-11 Wouter Vermaelen * Implemented RTC load/save on power on/off (this is not the same as saveState) * Implemented FMPAC-SRAM load/save on power on/off 2002-01-10 Wouter Vermaelen * MSXMemoryMapper <-> MSXMapperIO cleanup (thanks Maarten) 2002-01-10 David Heremans * Added FileOpener. This implements the needed routines to support "rompaths". It also provides easy to use functions to open files in the other devices. 2002-01-09 Maarten ter Huurne * VR resets one line before start of display. Fixes Almost Real Copper Bars part. 2002-01-09 Wouter Vermaelen * Prepared CPU and Z80 class for inclusion of R800: - moved as much code as possible from Z80 to CPU - separated timimg dependent code from the rest of the code - ugly "#inlude-hack" to avoid the overhead of virtual functions 2002-01-09 Maarten ter Huurne * Fixed MSXMemoryMapper so that it can handle over 64K of memory. 2002-01-08 Maarten ter Huurne * Red and green were swapped in Graphic7 rendering. * Apply planar reorder also on CPU reading VRAM and sprite checking. Fixes Hydefos intro, all Graphic6/7 rendering should be OK now. 2002-01-08 Maarten ter Huurne * Preliminary Graphic6/7 rendering. Works somewhat, but not in all cases. * Fixed transparency bug; Psycho World sky is blue again. 2002-01-07 Wouter Vermaelen * DiskRomPatch cleanup: I wanted to fix the PHYDIO routine, but it was already correct (the result in the B register). Maybe it is now more obviously correct? 2002-01-07 Wouter Vermaelen * Z80: fixed HALT instruction (rounding error) * more #include cleanups * getCPURegs() interface cleanup 2002-01-06 Maarten ter Huurne * Implemented rendered line caching in bitmap modes (SDLHi). * Fixed GETDPB in MSXDiskRomPatch: uses static table based on passed media descriptor instead using values from boot sector. 2002-01-06 Wouter Vermaelen * Z80: reverted buggy optimization, fixes undeadline, track&field, flickering in space manbow 2002-01-06 Joost Yervante Damad * small fixes * XMLConfig skeleton + some code 2002-01-06 Maarten ter Huurne * Text mode extra-wide border now drawn at once (SDLHi). 2002-01-05 Maarten ter Huurne * Implemented CC and IC bits of sprite mode 2. Now OR-ed sprite patterns are rendered as they should. 2002-01-05 Wouter Vermaelen * #include cleanup * Changed PSG mute routine: PSG-samples in "time curb" now work! 2002-01-05 Joost Yervante Damad * small libxmlx improvements - should handle comments and pcdata correctly - started modifications of msxconfig code, first in a seperate temporarely program cfgtest, to avoid hindering the other coders 2002-01-04 Wouter Vermaelen * Changed interaction Mixer-SoundDevice: Mixer now calls the updateBuffer() method of each SoundDevice, even if device is muted (device can update internal counter). If the device was muted is must return a null-pointer. 2002-01-03 Maarten ter Huurne * SDLHiRenderer needs to sync on VRAM updates after all. This solves the disappearing boss blocks of Knightmare stage 1. * The VDP (sprite checking) needs to sync on VRAM updates as well. Hopefully this will solve the Knightmare stage 2 boss problem. 2002-01-03 Joost Yervante Damad * libxmlx sync 2002-01-03 David Heremans * Improved tape support, tested with Time_Curb.cas file 2002-01-03 Maarten ter Huurne * Changed pause implementation in Scheduler to make it thread safe. * Fixed PAL timing in SDLHiRenderer. 2002-01-02 Wouter Vermaelen * RealTime syncronizer improvements 2002-01-02 David Heremans * Added tape support, not yet tested * Restored old filesize behaviour in gamecartridge 2002-01-02 Maarten ter Huurne * Improved VDP accuracy. Space Manbow still flashes, but less than before. 2001-12-31 Maarten ter Huurne * SDLHiRenderer uses double buffering. * Prepared SDLHiRenderer for RealTime sync, but if I enable it the emulated MSX slows down (even though host CPU load remains low). * Added FDC values as patches to nms8250.xml, fixes disk ROM hang. 2001-12-31 Joost Yervante Damad * lots of small C++ standard compliancy fixes * Z80Core.hh -> Z80Core.nn * more disk support, still partially works only * disk support now works completely, but not yet for all programs [starquake, on mania036.dsk works completely] * fixes for slotselection [thanks Maarten] 2001-12-31 Maarten ter Huurne * Render accuracy is now one line instead of one frame. * Implemented line interrupt (horizontal scanning interrupt). Timing is still a bit off though. * Implemented horizontal display adjust (vertical not yet). * Implemented HR/VR status bits. * Prepared for caching of rendered lines in bitmap modes. * Command engine cleanups. 2001-12-30 Wouter Vermaelen * Z80: correct inter-instruction timing for DDCB and FDCB instrcutions, 2001-12-30 Joost Yervante Damad * more disk support, it already works a little bit, but the slot switching still needs to be added 2001-12-29 Wouter Vermaelen * Memory reads/writes can now be cached (if possible) measured 10% - 20% performance gain not completely finished, especially documentation 2001-12-29 Joost Yervante Damad * synced in libxmlx skeleton [W.I.P.!] * header file include cleanup, this should avoid alot of useless recompilation 2001-12-27 Wouter Vermaelen * Scheduler now uses a heap instead of sorted set * SyncPoints can now be removed * SyncPoints take an optional userData parameter, this parameter is later passed to executeUntilEmuTime() method * MSXDevice does not inherit from Schedulable anymore, devices that still need to be Schedulable must inherit itself from Schedulable (eg VDP) 2001-12-26 Wouter Vermaelen * added getCPURegs() and setCPURegs() methods in class CPU 2001-12-25 Wouter Vermaelen * small optimization in Scheduler: no overhead when unpaused 2001-12-25 Joost Yervante Damad * added --enable-profile and --enable-release to ./configure * added "debug" and "nodebug" targets to Makefile in src dir [toggle] usage: "make debug" turns on debug for this and next makes "make nodebug" turns it of again 2001-12-24 Maarten ter Huurne * Added "unsigned" to uint64 definition in Scheduler. Before, Scheduler::INFINITY was -1. * Implemented PAL at 50Hz and NTSC at 60Hz. * Restructured VDP timing routines. 2001-12-24 Maarten ter Huurne * Added render routine for Graphic4 mode. * Added support for 212 lines display. * Added partial sprite mode 2 implementation. 2001-12-24 Maarten ter Huurne * Added render routine for Graphic5 mode. * Added support for transparency control (R#8 bit 5). 2001-12-24 Maarten ter Huurne * Finished integration of command engine. It runs, but without render routines for the bitmap modes, it is not possible to visually check the results. 2001-12-23 Maarten ter Huurne * Fixed a design flaw in the Renderer interface. The update methods were called *after* the changed VDP state became effective. That way, delayed rendering operations cannot be completed because the old VDP state is no longer available. In the new interface, update methods are called *before* the new state becomes effective. So the old values can be retrieved from the VDP, while the new values are passed as parameters of the update method. 2001-12-22 Maarten ter Huurne * Fixed dirty check bugs. The "inside name/colour/pattern table" checks were wrong: too much was considered inside, therefore too many characters were considered dirty. Also the attempt to make Text2 use the same dirty checking code as the MSX1 display modes failed, instead I wrote different dirty checkers for different display modes. This was bound to happen in the future anyway, because bitmap modes will require different dirty checks than pattern modes. 2001-12-22 Maarten ter Huurne * Added VDP Command Engine 1.0 from Alex Wulms. Adapted the code to C++ and to openMSX conventions. Only functional change is SCREEN7/8 pixel lookups (two defines). The command engine compiles and links, but cannot run yet. 2001-12-21 Maarten ter Huurne * Implemented Text2 display mode (SCREEN0.80). * Prepared for blinking (not finished yet). 2001-12-21 Maarten ter Huurne * Applied gamma correction to V9938/58 palette. My guess is that the gamma of MSX and PC monitors is slightly different; the palette precalc now compensates for that. 2001-12-21 Maarten ter Huurne * Implemented palette feature of V9938/58. Can be seen by running Nemesis 3 using NMS8250 config. 2001-12-21 Wouter Vermaelen * Fixed uninitialized variable in RP5C01: this caused a delay of several seconds at start-up 2001-12-20 Wouter Vermaelen * added MSX-AUDIO: no ADPCM yet, not optimized * LoadFile and MSXGameCartridge cleanup 2001-12-19 Wouter Vermaelen * Removed more indirections from YM2413 2001-12-18 Wouter Vermaelen * fixed CassettePort: exceptions don't work if you compile with -fno-rtti, removed it 2001-12-18 David Heremans * MapperType guesser can be turned on/off * MapperType now configurable in MSXGameCartrdige. * Integrated MSXKonamiSynthesizer into MSXGameCartrdige. 2001-12-14 Wouter Vermaelen * sound on/off (F11) and pause (PAUSE) now work together * fixed "pure virtual function called" error 2001-12-16 David Heremans * Extende LoadFile to autodetermine file-size. * Renamed MSXMegaRom to MSXGameCartrdige. * MSXGameCartridge can now handle smaller game roms (<= 64kB) 2001-12-15 David Heremans * Added volume to the SCC. * Used F11 as HotKey to sound on/off: 2001-12-14 Wouter Vermaelen * Fixed DACSound, KeyClick now works 2001-12-11 Maarten ter Huurne * Optimised MSX-MUSIC mixing. * Removed indirection on ch array ("Channel *" -> "Channel). 2001-12-12 David Heremans * Added the SCC+ cartridge 2001-12-12 Wouter Vermaelen * Cleanup MSXMusic / MSXFmPac: "CALL FMPAC" now works! 2001-12-11 Maarten ter Huurne * Compacted the SCC mixing and muting code. * Added offset to lookups in SCC::getFreqVol. * SCC::ch_enable is not masked upon write. * Added "currentChipMode = chip" to SCC::setChipMode. * Changed size of waveform array to 32 (was 64). 2001-12-10 Wouter Vermaelen * Implemented Z80 inter-instruction-timing (DD CB instructions not correct yet) 2001-12-11 David Heremans * uploaded SCC soundchip: This chip can emulate the SCC hardware in the 3 know modes - Real SCC - SCC+ cartridge in SCC compatible mode - SCC+ cartridge in SCC+ mode * Changed MegaRom: Megarom of type 2 know use the SCC soundchip. 2001-12-10 Maarten ter Huurne * Implemented indirect register write for V9938/58. * V9938/58 can now have 16K, 64K or 128K of VRAM. * Upgraded CPU interface to read/write more than 16K of VRAM. * Changed video mode naming scheme to match V9938 data book. 2001-12-10 Wouter Vermaelen * Cleanups in MSXMemoryMapper, requires config file change * More config file changes: PSG -> volume parameter MUSIC -> volume parameter PPI -> volume parameter -> key_ghosting parameter Mixer -> frequency parameter -> samples parameter * RealTime cleanups: - MSXRealTime renamed to RealTime - RealTime is no longer a MSXDevice - moved parameters to config file 2001-12-09 Maarten ter Huurne * Faked enough V9938 features to make nms8250.xml boot. 2001-12-09 Maarten ter Huurne * Fixed compilation with Z80DEBUG enabled. * Fixed single-width pixels in SCREEN0 in SDLHiRenderer. * Re-enabled resetting of dirty flags at end-of-frame. This was probably disabled during debugging and accidentally commited to CVS. 2001-12-09 Maarten ter Huurne * Introduced VDP class, which will replace MSXTMS9928a. 2001-12-09 Joost Yervante Damad * Rom Patching Code skeleton * MSXDiskRomPatch skeleton 2001-12-09 Maarten ter Huurne * Fixed uninitialised struct field in SDLLoRenderer. * SDLHiRenderer renders doubled pixels now. 2001-12-09 Maarten ter Huurne * Introduced SDLHiRenderer. Opens 640x480 screen, although it still renders low-res. * Changed configuration: - new category: "renderer" type selects renderer: "SDLLo" or "SDLHi" - "fullscreen" moved to "renderer" and renamed "full_screen" plus it's an actual boolean now - new parameter: "limit_sprites" in "msx1vdp" * Setting "limit_sprites" to false actually works now. 2001-12-08 Maarten ter Huurne * Improved Doxygen comments in MSXTMS9928a and Renderer. * Small optimisations in sprite rendering. * Renamed XPal to Pal: it hasn't been X for quite some time. * Introduced sprite buffering: VDP stores sprite info for one frame, so Renderer can retrieve it on demand. This removes the need for the Renderer to call checkSprites, making the VDP behaviour completely independant of the Renderer used. 2001-12-08 Joost Yervante Damad * Loadfile now handles patching of files 2001-12-08 Wouter Vermaelen * added several missing reset() calls 2001-12-07 Wouter Vermaelen * MSXPPI is no longer a singleton 2001-12-06 Maarten ter Huurne * Small initialisation fix in MSXTMS9928a. Thanks to Wouter for spotting the problem. 2001-12-06 Wouter Vermaelen * removed init() method from MSXDevice: initialization should be done in the constructor * all MSXDevice constructors (former init() methods) now take an EmuTime parameter 2001-12-05 Joost Yervante Damad * MSXRom continued [reworked, no longer inherited from MSXDevice] 2001-12-05 Wouter Vermaelen * Made MSXIODevice and MSXMemDevice both subclasses of MSXDevice: these 2 classes take functionality away from MSXDevice and put it in more specialized classes. They also offer things like automatic slot-registration (and in the future automatic IO-registration) * removed start() and stop() methods from MSXDevice * reset() method in MSXDevice now takes an EmuTime argument 2001-12-04 Joost Yervante Damad * added MSXRom subclass and LoadFile mixin, as first step towards ROM patching support 2001-12-04 Wouter Vermaelen * correct use of register 0x7ff6 for MSX-MUSIC * MSXMotherBoard is no longer a MSXDevice 2001-12-03 Joost Yervante Damad * fixed Config *getConfigById(const std::string &type) * started on disk support "level 2" [not in CVS yet] 2001-12-03 Wouter Vermaelen * Made a new EmuTime class (for details search mailarchives for "[RFC] new EmuTiem class"). This gave a large performance gain, more than I had hoped for. * SoundDevices now unregister themself before destruction 2001-12-02 Maarten ter Huurne * Integrated name/pattern/colour table base addresses and mask into a single mask. This is probably how the hardware does it. * Fixed dirty checks. King's Valley 2 is now actually fixed, blanking just happened to make the problem go away without fixing the bug causing it. * Moved to "pull" model for VDP - Renderer communication: VDP sends update signals when parts of its state change, Renderer can get current state from VDP at all times. 2001-12-02 Wouter Vermaelen * fixed pause: - now works when paused - after pause emulation isn't too fast * correct inline in Z80 * MSXMegaRom cleanup, minor speedup 2001-12-01 Maarten ter Huurne * Fixed compile error in CassettePlayer.cc: PRT_ERROR contains exit(), which needs . 2001-12-01 Maarten ter Huurne * Fixed bug which caused Z80 to fail when methods were not inlined. Problem was that ld_xix_byte() and ld_xiy_byte() called Z80_WRMEM with two parameters, each of which read an opcode, an operation which increases the program counter. This is wrong because the evaluation order of parameters is not guaranteed. 2001-12-01 Wouter Vermaelen * added FMPAC * MSXMotherBoard is now also a CPUInterface, this eliminates one indirection in readMem()-like methods but these get called a few 100 000 times a second. I measured 10%-20% performance gain 2001-11-30 Wouter Vermaelen * made a helper function registerSlots() * made a helper function loadFile() note: config file format changed! 2001-11-29 Wouter Vermaelen * Added a CassettePlayer (no record function yet) A CassettePlayer must be plugged into the CassettePort and you must insert a tape (= .wav file) into the CassettePlayer Currently you can't do either of these operations. 2001-11-27 Maarten ter Huurne * Added updateBlanking to Renderer interface. Fixes redraw problem in King's Valley 2. * Various cleanups in MSXTMS9928a and SDLLoRenderer. 2001-11-26 Maarten ter Huurne * Introduced SpriteInfo in MSXTMS9928a, this is a prelude to sprite info buffering (separating calculation time from rendering time). * Introduced VdpVersion enum in MSXTMS9928a. 2001-11-20 Wouter Vermaelen * Small CassettePort update, implemented very primitive filter 2001-11-25 Maarten ter Huurne * Sprites are now rendered in the screen buffer rather than in the display cache (which replaced "canvas"). As a result, sprite drawing code became simpler and the display cache needs less updates. 2001-11-25 Maarten ter Huurne * Render on demand: New Renderer can render as many lines as requested. Many lines at once has lower overhead, but if necessary it can still render one line at a time. This code can be converted to pixel-precision rendering that has decent performance. * All change tracking (dirty flags etc) is moved to Renderer. * Interface between VDP and Renderer is much cleaner now. (no more public fields) * Got rid of "tms" struct. 2001-11-20 Wouter Vermaelen * added basic support for CassettePort - CassettePort has no filters yet - no output (record) yet - !! no CassttePlayer (must be plugged in a CassettePort) !! 2001-11-18 Maarten ter Huurne * The drawing area (now called "canvas") is now an off-screen SDL surface instead of a pixel array. SDL calls are for blitting and drawing empty lines (top and bottom border). * Cleanup of change tracking in VDP. * Cleanup of Renderer access to VDP state: public fields replaced by inline methods. * Cleanup of VDP fields: slowly getting rid of "tms" struct. 2001-11-18 Wouter Vermaelen * updated KeyEventInserter, it works now but it is not yet useable, needs to read text from config file or something 2001-11-17 Maarten ter Huurne * MSXTMS9928a and SDLLoRenderer respect SIZEOF_BOOL now. * Introduced Renderer: pure abstract superclass to all renderers. * Changed SDLLoRenderer into a template class. All supported colour depths are compiled in. A factory method selects a suitable colour depth automatically. 2001-11-17 Joost Yervante Damad * added sizeof(bool) autoconf macro * rearranged configure.in to avoid problems with simple checks being confused by the extra CXXFLAGS and libs 2001-11-17 Maarten ter Huurne * SDLRenderer is now SDLLoRenderer (low-res: 320x240) and was given its own files. Also removed MESS history comments from MSXTMS9928a. 2001-11-16 Maarten ter Huurne * Split off SDLRenderer from MSXTMS9928a. This makes it easier to support different renderers (320x240, 640x480, 8/16/32bpp). In the near future SDLRenderer will get its own file. 2001-11-16 Maarten ter Huurne * Disabled 512K mapper in cfg/someconfig.xml because it conflicted with the MegaROM. 2001-11-16 Wouter Vermaelen * cleanup EventDistributor/HotKey 2001-11-15 Wouter Vermaelen * Z80: interrupt state is only checked right after a sync point halt now "burns" CPU cycles --> large CPU speedup 2001-11-14 Wouter Vermaelen * an MSXDevice is now associated with an MSXConfig object as soon as it is instantiated. Before this change it was possible that a MSXDevice (mostly singletons) was used before it could access its parameters. * AY8910: fixed uninitialized variables 2001-11-13 Wouter Vermaelen * fixed HotKey: method find() returns a normal iterator, not an iterator that goes over elements that match the search criteria 2001-11-13 David Heremans * openMSX now stops when using the WM close button: * Correct close behaviour: Set a sync point so that if the CPU is scheduled until infinite we still can stop openMSX. Wouter will look into the HotKey event distribution, it is temporarly fixed using if comands. 2001-11-09 David Heremans * quickly add a fullscreen flag in the TMS code: extra parameter in config.xml file use PrintScreen key to togle * openMSX now stops when pressing F12: however make sure that openMSx is full screen when you press F12 2001-11-07 Wouter Vermaelen * reworked CPU related classes: much simpler structure more optimizations possible in the future * Z80: correct wait-state handling 2001-11-05 Wouter Vermaelen * Z80: undocumented instructions like "res 4,(ix+5),b" implemented * Z80: correct(?) timing for undocumented instructions 2001-11-04 Wouter Vermaelen * Z80 cleanup/fixes: fixed DAA instruction, bug in Penguin Adventure should be fixed now correct 'undocumented-flag-handling' for most instruction 2001-10-31 Wouter Vermaelen * fixed bug in Z80, some instruction had a negative T-State count!! Road Fighter works again 2001-10-30 Wouter Vermaelen * added MSX-MUSIC, code largly taken from Mitsutaka Okazaki http://www.angel.ne.jp/~okazaki/ym2413/ no "suspend" function yet 2001-10-29 Joost Yervante Damad * finished migration of CVS and mailinglists to sf.net * thank you sourceforge team!! * http://openmsx.sf.net 2001-10-27 Wouter Vermaelen * fixes, improvements to DACSound (untested) * updated KeyClick, the "click too short" problem should be solved now KeyClick now uses a DACSound object to play sound, playing samples on KeyClick should also be possible now (untested) * pause sound while pause emulation * SoundDevices default now to muted after creation, fixes a race in Mixer::registerSound() 2001-10-25 Wouter Vermaelen * SoundDevices can now mute themselves, mixer doesn't ask for soundbuffer of muted devices * added KeyClick support, PPI had to be made time aware for this doesn't work very well yet because a typical key-click-spike takes about 34us which is shorter than the duration of 1 sample 2001-10-23 Wouter Vermaelen * make DACSound compile again (doesn't work yet) * add HotKey service * openMSX can be paused (pause key), added to demonstrate the use of HotKey. Problems with current pause implementation: - sound must also be paused - realtime keeps running, so after unpausing openMSX tries to catch up and runs too fast for a while * MSXKanji now supports both class 1 as class 2 Kanji * Added MSXPrinterPort and DummyPrinterPortDevice (= no device connected) 2001-10-22 Wouter Vermaelen * Changed Mixer and SoundDevice interface (David's request). Now each SoundDevice must do its own buffer-managment, this gives more flexibility to devices like DAC's 2001-10-21 Wouter Vermaelen * small performance improvement in MSXZ80 2001-10-21 Joost Yervante Damad * added some basic conversions to MSXConfig##Device let me know when more are needed * updated msxconfig.dtd to reflect soon te be added non-device configuration entries * added support for non-device configuration entries this is not thoroughly tested, but should work 2001-10-19 Joost Yervante Damad * started TODO file to collect ideas/things todo 2001-10-19 Wouter Vermaelen * documented SoundDevice interface on David's request * RP5C01 can now optionally sync with host-clock, but this limitates some functionality 2001-10-18 Wouter Vermaelen * implemented test register in RP5C01, corrected 12/24 hour mode, month-wrap-bug fixed * RP5C01 is now emutime synced instead of realtime 2001-10-17 Joost Yervante Damad * added src/cfg dir for storing config file templates * started in KeyEventInserter 2001-10-17 Wouter Vermaelen * made improvements to MSXRealtime * small fixes to MemoryMapper, E6Timer * improvements to RP5C01 (RTC) 2001-10-16 Wouter Vermaelen * fixed bug in Keyboard (uninitialized variable) and made minor performance improvement in keyGhosting * add 1 extra waitState after each instruction * Corrected MSXRealTime, speed is now correct. Deviation was caused by accumulation of rounding errors. 2001-10-15 Wouter Vermaelen * Scheduler can now schedule "Schedulable" objects instead of only MSXDevices, this is necessary for sub-device scheduling (e.g. counters in I8254 2001-10-15 Marcel Harkema * * Set the MAINTAINERCLEANFILES variable in Makefile.am files (for make maintainer-clean) * * EventDistributor.hh should include and not (which is an internal header file) * * Add {XML,SDL}_CFLAGS, {XML,SDL}_LIBS, etc. to CXXFLAGS and LIBS in configure.in (and remove openmsx_LDADD line from src/Makefile.am) * Include , , etc. instead of , , .. [I might have missed some... please check your code] * [patch applied by joost] 2001-10-14 Joost Yervante Damad * Made EmuTime printable [read streamable] for David 2001-10-12 Wouter Vermaelen * Simplified MSXRealTime implementation 2001-10-11 David Heremans * MSXTMS9928a and MSXRealTime updates 2001-10-08 Wouter Vermaelen * update parts of audio-buffer when registers have changed * fixed tone generation in AY8910 (overflow in calculation) 2001-10-09 Joost Yervante Damad * removed all automake/autoconf utility files, use autogen.sh to install them locally 2001-10-08 Wouter Vermaelen * added a real time synchronizer (MSXRealTime) * fixed keyGhosting bugs in Keyboard 2001-10-07 Wouter Vermaelen * renamed Inputs --> Keyboard * forgot to initialize keyboard matrix * moved method keyGhosting() from MSXPPI to Keyboard --> method is now only called when * keymatrix has changed and * keymatrix is read * extended Mixer to support (pseudo)stereo 2001-10-05 Wouter Vermaelen * Made a very simple mixer, made AY8910 register itself as sound generator. 2001-10-03 Joost Yervante Damad * updated automake utility files 2001-10-03 Wouter Vermaelen * "static const int -> enum" cleanup * Reworked EventDistributor, it is now possible to deliver events synchronously and asynchronously. This makes the EventDistributor more complex, but it eliminates locking problems in synchronous ( = almost all) client code. 2001-10-02 Wouter Vermaelen * made Philips mapper-IO behaviour * read mapper behaviour from config file, this needed some restructuring in MapperIO and related classes * Fixed TurboR ST mapperIO 2001-10-01 Wouter Vermaelen * Z80 converted to a C++ class, still needs cleanups * IRQ handling cleanup 2001-09-30 Wouter Vermaelen * second part of Z80 cleanup 2001-09-27 Wouter Vermaelen * #define -> static const int cleanup * first part of Z80 cleanup 2001-09-26 Wouter Vermaelen * reimplemented Scheduler, total new algorithm * made some changes to cpu-device's these need some cleanup, especially the c/c++ mix (Z80) 2001-09-25 Wouter Vermaelen * added locking to class EventDistributor (maybe std::multimap is thread-safe and no locking is necessary) * added locking to class Mouse, there was a small race that could cause some mouse-movement-glitches 2001-09-24 Wouter Vermaelen * implemented Real Time Clock device * implemented joystick support. Cannot be used yet since there is no mechanism to plug a Joystick in a joystickPort yet (dynamically nor statically) * implemented mouse support. Cannot be used yet, same reason as above 2001-09-23 Wouter Vermaelen * made sperate thread for event handler other classes can ask EventDistributor to receive specific events * adapted Inputs for new event model * respond to SDL_QUIT event 2001-09-23 Joost Yervante Damad * various small fixes * started working on making the code work with gcc-3.0 * added autogen.sh: use to regenerate build files * added m4/ dir for own autoconf m4 macros * added fstream_templ.m4, since in gcc-3.0 ifstream is templatized on type, and .read() returns char, not unsigned char, soo this needs ifstream in openmsx, but in gcc-2.95 ifstream is not a template. * added -fno-rtti to compile-flags since we don't use runtime type inspection anyway, and it increases binary size see also: http://gcc.gnu.org/ml/gcc-help/2000-03/msg00064.html 2001-09-22 Wouter Vermaelen * cleanups in most devices * small bug fixes in some devices * Implemented memory mapper all mappers share one MapperIO device reading from mapper ports can be customized 2001-09-21 Wouter Vermaelen * Z80/R800 separation cleaned up: only the class MSXCPU knows there are 2 CPU's, all other devices should talk to MSXCPU instead of MSXZ80 or MSXR800 (nor ask MSXMotherBoard which CPU to talk to) Removed some code marked as "ugly hack" * added support for Kanji ROM * cleanups in MSXRom16KB 2001-09-19 Joost Yervante Damad * various small fixes around the code * the 16k rom still needs a C++ makeover 2001-09-17 Wouter Vermaelen * implemented kana/code led * implemented joystick-ports. This is only the port, not the devices that can be plugged into the port (joystick, mouse, ...) * interupt handling was seriously broken (CPU jumped to 0x38 at every di->ei transition even when there was no device that had raised an IRQ) Fixed now (I think). Also moved interrupt related methods from class Scheduler to class MSXMotherBoard. 2001-09-16 Wouter Vermaelen * implemented sound generation for PSG (code taken from xmame-0.37b) mixer is not finished, so you won't hear anything yet 2001-09-16 Joost Yervante Damad * added endian-ness check to configure.in * removed -DLDB_FIRST, and made it dependant on configure result * added sizeof long autoconf check, to make Z80.cc also work correctly on 64 bit and 128 bit cpu's [untested] 2001-09-15 Wouter Vermaelen * started implemention of MSXPSG (no sound generation yet) 2001-09-15 Joost Yervante Damad * reworked msxconfig.cc by using the xmlhelper * xmlhelper is a simplified xml interface 2001-09-13 Joost Yervante Damad * added xmlhelper class, which I will start using to make xmlconfig code cleaner * made msxconfig more standards-compliant 2001-09-10 Wouter Vermaelen * removed double initialization * CPU is no longer a special case with initialization * fixed various bugs * made Inputs independent from MSXPPI * implemented CAPS LED + support for all other LEDs 2001-09-09 Wouter Vermaelen * print more usefull debug messages * use DummyDevice instead of the general MSXDevice for all the emptyDevice's * registering SP must be done by Scheduler, not Motherboard 2001-09-08 Wouter Vermaelen * some fixes (yesterday discussed with Davy) 2001-09-06 Wouter Vermaelen * fixed a few classes to make them compile again * made some minor addition to emutime 2001-09-05 Wouter Vermaelen * print debug information only if compiled for debugging 2001-09-05 David Heremans * sync : PPI, Z80, ... * Z80 should be completely correct now * started integrating SDL keys * VDP integration Sean's code started * subslot selecting and mainslot selecting imped * MSXMotherboard slotlayout filled with dummy empty devices to avoid 0-pointers 2001-09-03 Wouter Vermaelen * In class Scheduler, use "set" instead of "list" or "sortedlist" * Split MSXPPI in a MSX depended part and a reuseable 8255 part 2001-08-27 Wouter Vermaelen * made a more complete PPI implementation * made new device: E6Timer (TurboR) 2001-08-26 Wouter Vermaelen * removed linkedlist.hh and use stl list instead * made template SortedList and use it in Scheduler this compiles, but does not link yet 2001-08-25 Wouter Vermaelen * updated class Emutime * make use of emutime 2001-08-23 Joost Yervante Damad * msxconfig: added and * msxconfig.hh: externalized nested classes * msxconfig: started saveFile support 2001-08-10 David Heremans * sync : PPI, Z80, ... 2001-08-09 Joost Yervante Damad * reworked msxconfig code, now more C++ * added support for multiple slotted's 2001-07-07 Joost Yervante Damad * added class property to tag in msxconfig * also slightly reworked that code * bumbed version to 0.1.1 * added SDL auto* support 2001-07-06 Joost Yervante Damad * merge David's code in CVS this includes: PPI, Z80, RomDevice, Motherboard, ... 2001-06-26 Wouter Vermaelen * more updates tex docu file 2001-06-23 Wouter Vermaelen * more updates tex docu file 2001-06-23 Joost Yervante Damad * finished readonly MSXConfig interface 2001-06-22 Joost Yervante Damad * added MSXException exception base class. * created MSXConfig exceptions * started using them. * make distcheck now works * openmsx.tex is part of the dist 2001-06-21 Joost Yervante Damad * made MSXConfig code -> this code needs serious cleaning later ! :) 2001-06-21 Wouter Vermaelen * updated tex docu file 2001-06-20 Joost Yervante Damad * initial MSXConfig interface/singleton skeleton * first touch with libxml++ * links smoothly now with libxml++ and libxml * !!warning!! needs libxml++ version 0.13 (debian ships with 0.10) * see also http://lusis.org/~ari/xml++/ 2001-06-21 Wouter Vermaelen * created tex docu file 2001-06-19 Joost Yervante Damad * added autoconf support for libxml * added some $Id magic tags 2001-06-18 Joost Yervante Damad * Emutime tweaks as per Wouter and David 2001-06-16 Joost Yervante Damad * added autoconf support for libxml++ * various small tweaks 2001-05-06 Joost Yervante Damad * made a nice and clean CVS/automake/autoconf/libtool * restructured source * versioned files 2001-05-04 David Heremans * openmsx: initial version.