Skip to content
Archive of entries posted on September 2008

Studying Opengl ES

I have purchased two books about OpenGL ES. The one on the right “OpenGL ES game development” I bought several years ago. Its primary focused for an average developer, who wants to learn OpenGL ES and has OpenGL background. The book has chapter about fixed point math and other limitations to deal with mobile devices. So it’s really not ideal for a mobile developer, who want’s to learn OpenGL ES. It’s a good book about limitations of mobile platform, but not really good book for learning to develop for OpenGL ES.

The book on the left”Mobile 3D Graphics with OpenGL ES and M3G” I got recently. It is primary targeting mobile developers, who want to create 3d-grapcics. So this was the right book for me. The first chapters handle 3d graphics and math in general levels and the later chapters tell you about OpenGL ES and M3G. The book also had chapter about EGL, which is used to create OpenGL surfaces in Symbian OS, so it really has everything that I need for developing OpenGL ES for Symbian/S60.

Continue reading ‘Studying Opengl ES’ »

Using the Snes9x frame as opengl texture

The Opengl ES framework requires that the texture size must be powers of two. My current version outputs 320×208 pixels frames, so they can not be used as textures.

I looked at the porting instructions and it says that GFX.Pitch should point how many bytes there as per frame. With this I should be able to get 256×239 or 256×224 resolutions. It shouldn’t be too hard to add few back scan lines to the image to get it 256×256. My current Snes9x version has some nasty resolution hacks and it doesn’t have any settings for GFX.Pitch (or it doesn’t se it at least). I think that I will try to take out the rendering part from dr. PocketSnes and merge it with my code. It main.cpp defines 320×240 resolution for frames, but the GFX.Pitch is used as expected, so I hope that the rendering part will output 256×240 frames as well.

I’m also going to make a small optimization trick to the current rendering part and see how much I can get with “decent” rendering routine. However I’m still planning to use OpenGL ES for the rendering.

Continue reading ‘Using the Snes9x frame as opengl texture’ »

Snes9x core ported to symbian

supermario world

I managed to port the Snes9x c-core into Symbian. It was a lot easier than fighting with the ASM-core. The image is not blitted into whole screen as you can see and it’s really slow. It’s slow because the CDirectScreen access in Symbian doesn’t allow user to write directly into the screen buffer. So currently frame is written into Snes9x frame buffer, then copied into CFbsBitmap and then written into the screen with DSA. It’s really slow…about 2 FPS.

My next step will be OpenGL ES based rendering. I will put the frame as texture into the opengl pipeline and then render it to a surface. I hope that I will get decent FPS with this method.

Welcome to my blog

Hi there, I finaly got my blog up and running. Currently I’m planning to release Snes9x port on N95. I have the source code from notaz UIQ version and I’m using that as baseline.

At first I thought that I only need to port everything into EKA2 model plus write my own launcher for the emulator. Currently it seems, that there is a lot more work to be done. The audio and video renderers must be rewritten for N95.

I also encounttered some nasty problems during porting the assembly code into the N95. I thought that the ARM11 in N95 would run that code without problems, but I keep encouttering these “Signal Exception 0 received: A data abort exception has occurred ” errors after a while.

Therefore I did what I had to: I backported the original C-core instead of the ASM-core. Currently I should be able to run the emulator and worry only about the rendering (sound and video) part.