About

My name is Akop Karapetyan and I enjoy programming just for the sake of it. I have a Master’s Degree in Computer Science and currently work as a glorified web developer for a university in California.

Programming is my favorite hobby, but I’m also an avid reader and a fan of 8-bit computing, classic and modern gaming, and various forms of music.

For a casual hacker and a fan of classic gaming (I grew up fascinated with the MSX), the PSP is a dream come true - the system is relatively fast, useful, attractive, programmable (thanks to the brilliant minds behind the PSP SDK), and ubiquitous. The number of emulators ported to it is surprisingly large, and in some cases, the ports are extremely solid (NJ’s series of arcade emulators are as good as they come).

I started programming for the PlayStation Portable in 2007, after receiving one as a birthday gift. I eventually got interested in homebrew applications for PSP, especially emulation. When I couldn’t get a 4:3 screen ratio on the MSX emulators of the time, I decided to write my own, and in the process ported fMSX. The library that I created for the emulator proved very scalable, and I have since used it to port other emulators.

Most distinct feature of the ports that I have developed so far is the user interface — I strive to make it intuitive, useful, appealing and consistent. This approach is greatly inspired by the SNES9X emulator for the PSP — easily the most attractive emulator on the PlayStation Portable today, and one that does not sacrifice functionality for the sake of good looks.

Perhaps unsurprisingly, a large portion of my ports is devoted to classic (90’s and prior) systems and computers; I’m especially interested in porting emulators for systems legendary for their music — I consider MSX, C64 and the Amiga (not necessarily in that order) to be in the definite top 3.

When programming, I usually refrain from heavily editing an emulator’s core — my optimizations are generally within the bounds of the port. While this often means that I cannot optimize code for speed beyond a certain threshold, it also allows me to keep up with the main distribution without a lot of headache (sometimes within a few hours, when I can get to it).