Monday, 29 May 2017

TZXDuino 1.6

Now that I have my CPC464 all set I've been testing .CDT files and have noticed a few issues. The first is that when I altered the code that sped up things for the Spectrum I messed things up for the CPC so that has been rolled back. The second is that with the CPC the motor control and pause after blocks is very important and TZXDuino isn't calculating a long enough pause for some games which causes them to fail. This seems to be a limit to the TimerOne library of 8,191 milliseconds (1F FF). This obviously is a big issue that needs more investigation.

Changes:
*Fixed the garbled text bug (thanks to Rafael Malins Chesserot for that one)
*Rolled back an update that made files load faster on the Spectrum but broke files on the CPC.
*Added a 2.25 second delay on playback after a motor control pause to fix issues with compacted multiload games from http://cngsoft.no-ip.org/cpc_lzx.htm

ToDo
* There is a discrepancy between length of time of pause after block and what the actual pause time is. This affects some Ocean games (Rainbow Islands, Batman The Movie, Salamander). Sometimes they load as they should but other times they don't.
* A more efficient way of moving back one folder that uses up less memory.

The latest version can be downloaded from here

Sunday, 21 May 2017

Gotten hold of a CPC464

I've finally managed to get hold of a CPC464 so I can see what compatibility is like with TZXDuino.

One of the first things I did was add a DIN so that I could connect the TZXDuino to it. Rather than the normal 5-pin DIN that the CPC664/6128 use I decided that as I already have the cable for the MSX I would add an 8 pin DIN.
After some testing I found the best places to solder the connections and now it is up and running with full motor control.

As there are no TOSEC like downloads for CDT files I have been using both CPCRulez and CPCPower for the downloads.
TZXDuino compatibility is quite good with CDT files although there are a few that use the ID15 block which currently is not compatible but I did notice some issues.
Some games seemed to have insufficient pause blocks and whilst they worked on emulators they did not with either TZXDuino or WinTZX playback. These were quite easily fixed by adding a pause block to the CDT file (Aliens, Ghouls and Ghosts, Turbo Outrun).
Others however posed greater difficulty with the latest version of the firmware (Rainbow Islands, and Salamander). These contained a Speedlock 1 followed by a Speedlock 2 block and adding a pause block between them sometimes worked and sometimes didn't. I've now gone back on some of the improvements that were made to the speed of the TZXDuino to something more akin to version 1.0 and added "newTime += 12" back to the Wave function in TZXProcessing and this has had some success but it is erratic. Unfortunately I'm no longer sure as to whether it's my fault due to how I've wired in the DIN or if it's due to the TZXDuino code itself. I will however keep on persevering.

Tuesday, 2 May 2017

TZXDuino Firmware Update

TZXDuino user and Luca Forattini has added the ability to load AY files with Spec AY on any Spectrum with an AY chip to TZX.

First you load LOADER.TAP from SpecAY. Once that is loaded just select the .AY file you want to load and away you go.

You can download version 1.5 of the firmware from Here.

You can download Luca's original version of the firmware which is for an Arduino Mega with LCD and buttons shield from Here. Interestingly Luca has added a filesize counter with his firmware so that you can see how large the file currently selected is.


You can watch a video of Luca's TZXDuino at work here.