Archive for July, 2008

Optimizations make strange bedfellows

Sunday, July 20th, 2008

In the process of making changes to psplib’s video rendering routines, I came across a strange problem – calling a certain library function resulted in screen and palette corruption. Since the function was used to access contents of the VRAM, I figured it was because I was writing to the wrong location in memory somewhere.

The strange thing was that I had a similar function already in place, and except for some minor semantic differences, the code was the same. Even more surprisingly, commenting out the code that called the function did not help – the only thing that did was completely removing the function’s definition.

I finally tracked down the problem to the compiler’s optimization flag (O2). Completely disabling optimization with (-O0) got rid of the corruption. I’m not sure if this will have any detrimental effects on the rendering library in terms of speed (I doubt that it will, as psplib’s renderer is extremely frugal), but I suppose that I’ll eventually find out.

UPDATE It looks like optimization (much like the proverbial chinaman) is not the main issue here. While I haven’t completely resolved the issue, it is fairly certain that it’s related to reading/writing to VRAM. The issue seems to be commonplace, and I’ve found possible explanations here and here (see section marked Important).

Changes in the virtual keyboard

Wednesday, July 16th, 2008

As I mentioned before, psplib is currently undergoing some changes; some will be noticeable immediately; others will take a while. One of these changes is an improved virtual keyboard interface, which should resemble an actual system keyboard more closely. The new keyboard will be released with the next version of Fuse PSP.

psplib released under GPL

Wednesday, July 16th, 2008

After some discussion at worldofspectrum, I learned that the problem with Fuse PSP is psplib’s restrictive disclaimer, which prohibited commercial use of the code. psplib is the library that I initially wrote for fMSX PSP; it is common to all the ports I’ve done to date. While the disclaimer wasn’t actually meant to serve as a legal document (as I mentioned in the forum, I’ve always considered psplib public domain software), Philip’s argument is that it went against GPL, which prohibits user restrictions.

To resolve this incompatibility, I’ve decided to license psplib under the GPL. The library is already undergoing structural changes (parts of it have needed tweaks for a while now), so now seems as good a time as any. The updated library is in the trunk branch of Fuse PSP’s repository.

Fuse PSP binaries are once again downloadable.

Fuse PSP binaries

Tuesday, July 15th, 2008

Philip Kendall (author of Fuse) has asked me to stop distributing binaries to Fuse PSP because of technical issues with the GPL license. I’m currently unsure which library is causing the conflict, but as I don’t wish to go against the wishes of the original authors, for now, I am removing EBOOT.PBP from the download.

You can still download and compile your own copy (svn).

UPDATE Fuse PSP is once again downloadable. See next post for more information

The [F]use is lit…

Sunday, July 13th, 2008

Joining the cornucopia of emulators today is a port of the Free Unix Spectrum Emulator (Fuse), a Sinclair Spectrum emulator. A nice addition to the PSP port is support for ZIP files.

I’m happy with most of the port, however, there is an issue with intermittent tape loading hangs that I will be investigating further. To mitigate this issue (and Spectrum’s slow tape loads), I’m (grudgingly, for those of you who remember Caprice32 ;) ) adding support for Z80 files from the game tab. The ‘autoload slot’ feature is also available.

Please check the documentation for any other issues. Feedback is always appreciated!

Download

Bad news, nobody

Thursday, July 10th, 2008

A new emulator is currently in the works. If all goes well, there should be a release within the next couple of weeks.

Second, according to the folks at the MSX Resource Center, there is an MSX ROM mapper database, licensed under GPL. This may well mean the end of ROM type selection for fMSX. Special thanks to Manuel Pazos and Manuel Bilderbeek for their help.

If you can help with similar information for the Atari800 (ROM CRC and ROM type information), please let me know.

Great time to be part of open source development, to be sure.

The votes are in

Wednesday, July 2nd, 2008

Thanks to all of you who responded to the Commodore message; I’ve tried to read responses on this weblog, as well as those at dcemu. My original question was regarding the C64 and VIC-20 systems, but it seems like most of you would rather see an Amiga emulator than a C64/VIC-20 emulator.

I’ve also noticed interest in the Spectrum series (ZX-81 certainly hasn’t missed any opportunities to remind me of the need for such an emulator ;) ), so I’ll keep both of these in mind.

I am interested in finding out why those of you interested in these systems don’t use PSPUAE and PSPectrum, however.