Caanoo-Msx: Msx Emulator For Caanoo V1.1.0


Certified Guru
Apr 5, 2007

Hi All,

fMSX is a famous emulator of the MSX, MSX2, and MSX2+ 8bit home computers.
It runs MSX/MSX2/MSX2+ software on many different platforms including Windows and Unix.
See for further informations.

It has been first written by Marat Fayzullin, and later Vincent van Dam ported it on SDL.

Here is a port on Caanoo of the version i've previously ported to Wiz.

I haven't any Caanoo, and i would like to thanks Pedro De quintana for his help on Caanoo beta-testing !

Many new features have been added compared to original version.
Here is a copy of the changelog :

- Cheat support !
- New background images
- Text editor to write your own comments on games
- Text editor to modify the global cheat.txt file
- Display first comment line while browsing game files
- Memory monitoring engine to find your own cheat code !
- Zip rom files are now decompressed in memory (much faster !)
- Improve file requester with virtual keyboard to choose
sequentially rom files beginning with a given letter
- Add documentation for settings in help menu
- Add gzipped disk file support, reduce disk file size from 700k to 50k !
(you may gzip original dsk file using

How to use it ? Everything is in the README.txt file.

It's distributed under Marat Fayzullin's license for the original MSX part, and under GNU license for all the GP2X part.


thanks for another great emu, never really been into the 2600 tbh but nice to have anyway :) and seems to run great

Thanks, I know this one from the Dingoo too, was never that deep into MSX, but what I've seen on the Dingoo, your emu runs fine.

I have found a bug in the emulator, and a proposed patch for a fix. It seems to be running faster than a real MSX, which is specially noticeable in PAL mode: music plays too fast and the game itself runs too quickly.

Comparing the code with the latest fMSX code, it looks like variable UPeriod is causing the issue. It is initialized to 75 in MSX.c (twice in the code), and this means that the emulator is only rendering 75% of the frames; and since synchronization is performed in the rendering code, the emulator is running 25% faster than normal. The variable comment in the code is much clearer in the latest fMSX source.

My proposed patch, tested for now just in the Linux version (I will test on my Caanoo as soon as I can) is just change the two instances of the following in MSX.c

 UPeriod     = 75;


UPeriod     = 100;

BTW, it would also be helpful if switching to PAL mode automatically set 50 as the FPS limit... but I have not prepared a patch yet for this.

for the uperiod we can let it as an option in the settings menu. Concerning the PAL/NTSC 50/60 fps limit, it's a good idea, i will change it in the settings as well.
If game use SSA sound chip and i select another rom from menu and run it - SSA seems doesn't reset. Need to do it manually. Please fix! :blush:
i should publish a new version tomorrow, that fix uperiod issue, pal/ntsc fps, and with usb keyboard support. I've found also one issue with the Caanoo analog pad handler (events are duplicated sometimes, which is make it really hard to use in some games).