25/3/2001
- Added a great deal of the functionality missing in the TZX player (moving through blocks, moving the tape pointer, etc).
- Added a TAP player which works exactly like the TZX one.
- Added options to automatically browse a tape when you open it, listen tape loading noise and loading at max speed.
- Fixed a huge bug which made that if you switched models with the emulator running it changed everything (ROM, timings, etc) but the old loop kept running.
- The TAP player now can move the tape pointer too.
24/3/2001
- Tried once more to put the display routines in a different thread with more success than the other times, but it doesn't get along with my full screen mode (which I just did).
- Sound was widely improved. I was sampling at 22050 Hz without knowing that, so that made some beeper music sound awful ("Spirits", "Sidewize").
- This implied corrected all sound routines and made visible a bug that was crawling somewhere regarding Digisound switching.
23/3/2001
- The debugger now works as a modeless window, so you can have the debugger working along the emulator (before they couldn't run at the same time). It implied rewriting the emulation loop (something which probably introduced new bugs).
- Fixed a bug in the SLL instruction. Now, "GhostBusters 2", which uses Alkatraz encryption loads fine. Also, "Cyberbig" now works OK.
- Fixed a bug which made that two concurrent graphic routines tried to lock the DirectDraw surface at the same time, which crashed the emulator.
- Exiting the emulator while the debugger was still running made that it kept running (pressing CTRL-ALT-DEL showed an instance of the emulator hanged).
- Corrected instructions CPD, CPDR, CPI and CPIR. Now "Zone Trooper" works fine.
- Corrected instructions LDI, LDIR, LDD, LDDR, INI, INIR, IND and INDR. Those starting with IN were just implemented. The rest got its flags corrected.
- Implemented instructions OUTI, OTIR, OUTD and OTDR. Some of them were already implemented but in a "how the hell does this work?" mode.
22/3/2001
- Finally, after days of fighting with the TZX reader, now I may claim that all my loading routines work perfectly. All the TZXs I've tested so far loaded fine, even those Speedlock 7. At last!!!
- Implemented saving and loading snapshots to / from RAM.
19/3/2001
- Solved a display problem in 128K mode. Two games (Abadía del Crimen and Starglider) wouldn't show but they didn't crash. It turned out to be that in certain situations, I was setting up the display reading data from the wrong screen page.
- Solved a bug in port reading. Revolution, which I've fixed once, now works again.
- Since 3 or 4 days ago, I'm working in a TZX "viewer and browser", but since I've lots of troubles with that format, I decided to put it aside for a while.
11/3/2001
- Took out every reference to MFC. Now the code is much more independent from Visual C++.
- Fixed a bug which let nonexistent files appear in the most recently used files.
- Fixed a bug which caused the emulator to hang if two instances where running (I was calling a function pointer which hasn't been initialized yet).
- Now it's possible to specify a default directory to look up for files.
- Fixed little bugs here and there.
- Cleaning up the code and changing stuff in order to enable some more VC++ optimizations, I went from 66 FPS to 92 FPS!!!
- When the file previewer can't find a loading screen for a given file, it shows a message on the preview pane which informs of that.
- I got to test DirectX 24 bits drawing routines, which were completely wrong. Now not only they do work right, but I added some Assembler, which speeded them up.
2/3/2001
- Fixed Mono 16 bits sound mode. Now it sounds OK with Digisound, but sounds slower without it. Also fixed a bit 8 bit modes (but they don't sound right yet, especially regarding AY sound) and speeded a little the sound routines removing some repetitive code.
- Implemented an option to choose whether the display (under DirectX) will use video or system RAM. Usually, video RAM goes slower than system RAM, but, as in my case, it's the other way round, so I'll let the user choose that.