Posts Tagged ‘psplib’

The news and the old..s

Tuesday, August 18th, 2009

Looks like the PS3 will finally be getting a much-needed price cut (not to mention a slimmer model) very soon. Will I finally have an alternative to my 360? We’ll see…

While I don’t plan on porting anything new anytime soon (although release of VICE PSP has flooded me with requests for an Atari ST emulator :) ), I do plan to release sporadic updates for the emulators I currently have out. Software development as a hobby is a double-edged sword – not being compelled to program tends to be a good motivator to program anyway, but when the learning ends, so does the desire to program for a particular platform/purpose. Go figure…

fMSX PSP is probably next in line for a revamp – some of you may be aware that it is my personal favorite emulator (as is the system itself). The usual update to psplib is planned, but two things I feel have been long overdue are improved MegaROM autoselection, and even more importantly, a better saved state format. Because of the unpredictability of save states, I lost my SD Snatcher progress mid-way. Grrr…

At some point, Caprice32 will be updated, but no idea when – the emulator hasn’t been updated for years, and my port doesn’t seem to be popular enough to warrant a rewrite.

Since the release of RACE! PSP, I consider NeoPop dead, so it will not receive rewrites unless something magical happens.

This is a little late, but a fellow named Daniele Fiorentini posted an interview with me on maxconsole.net. It’s from 2007, but most of what it contains is still relevant. I came across it again while I was digging through my list of emails.

Taking a break

Friday, July 10th, 2009

As many of you may have noticed, things have been going slow lately. I’m taking a break from PSP development, and trying other worthwhile things, like web development (another big hobby of mine), and wasting whatever free time I have on books and Xbox Live. If there is another release, it will be most likely in the form of an update to Atari800 PSP, to bring it up to date with the latest release of the emulator. Since it’s been a while since the last version came out, a lot needs to change in the user interface department, to make Atari800 PSP compatible with the latest version of psplib. This has been part of the reason for delay/procrastination.

Something that I’ve been considering lately is porting Game & Watch simulators to the PSP. I’m not aware of any currently out for the PSP, and I can imagine it being something quite enjoyable on a portable platform. Given a solid enough set of simulators, they may be easier to port than emulators, since sophisticated menus are not needed for a G&W unit.

Time

Tuesday, August 26th, 2008

As in, “I wish I had more of it”.

There are at least two emulators that I’m currently working on. Neither is yet definite; I’m trying to split my time between the two to keep things interesting. It’s fairly certain that at least one of them will be finished some time in the near future.

Unfortunately, my free time has been decreasing almost exponentially. Because of this, the successor library to psplib is likely not to be finished; I will do my best to just upgrade the current version. Parts of the UI code make the video rendering library extremely sensitive to change; I would like to rewrite the UI component, but that is a rather hefty task, and one that will require a considerable amount of time.

On an unrelated note, if you like puzzles and have an XBOX 360, try Braid. It’s very rare to see an original game these days; Braid is as brilliant as it is unique.

psplib update

Thursday, August 7th, 2008

I have spent the last few days (weeks?) rewriting psplib into its successor library, libpl. Most importantly, graphics, font and image rendering core is being rewritten from scratch; it’s already significantly better than the older version. Among changes so far:

  • Faster bitmap font rendering (swizzled, VRAM-based fonts)
  • More accurate image resizing (no more scissoring artifacts, as most apparent in fMSX PSP)
  • Support for multiple pixel formats (instead of fixed 16-bit “5551″ format)

Future plans:

  • Support for swizzled images, in-place image swizzling
  • Completely new GUI system

Simple “upgrading” to libpl from psplib no longer seems possible; therefore, emulators will have to be largely rewritten to use the new library. Once the work is finished, I also hope to have some sample code available, in case anyone wants to write applications based off the library.

If you’re interested in the progress, you can find semi-nightly builds in the libpl directory, under the trunk branch of the svn repository. No promises on the code actually compiling (or doing anything useful, for that matter) :)

Many thanks to the ps2dev/psp forum folks for their helpful answers to many of my questions.

Fuse PSP version 0.9.0.25 released

Monday, July 28th, 2008

This update fixes the following issues present in version 0.9.0.2:

  • Palette corruption on various PSP units
  • Bug in the sound rendering engine that would cause occasional sound slowdowns

Updates from 0.9.0.1 (just to reiterate):

  • Added various game image types missing from the initial release
  • New virtual keyboard
  • Added monitor type selection (color/grayscale)
  • Fixed a serious memory leak, which would manifest itself when opening ZIP files
  • Fixed the “tape loading hang” bug
  • Added +3 support
  • Added Kempston joystick support
  • Added “hack cursor” support (keyboard up/down/left/right)
  • Lots of code reshuffling

Download

Fuse PSP version 0.9.0.2 released (updated)

Sunday, July 27th, 2008

New in this version:

  • Added various game image types missing from the initial release
  • New virtual keyboard
  • Added monitor type selection (color/grayscale)
  • Fixed a serious memory leak, which would manifest itself when opening ZIP files
  • Fixed the “tape loading hang” bug
  • Added +3 support
  • Added Kempston joystick support
  • Added “hack cursor” support (keyboard up/down/left/right)
  • Lots of code reshuffling

This version also includes extended DSK support; however, this does not seem to work correctly at the moment. Since the next version of Fuse is going to have drastically revamped 765 support, I’m probably not going to work on this until the next version.

UPDATE At least one user has reported palette corruption problems, so I’m pulling the new version down until I can revert the psplib code back to an older version. Please bear with me, and if you have the version originally released, please don’t distribute it.

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).