[General Topics] Menneisyys:
1.3.2.4 Using different screen rendition modes; image downscaling issues

It’s not only the orientation that has a direct effect on the screen estate usage, but also whether borders are displayed and whether the emulator is VGA-aware when running on a VGA device.

First, some math. The full size of the original C64 screen, with borders, is 384 * 272 pixels; while, without borders, it’s 320 * 200. As the resolution of the (Windows Mobile) QVGA screen is 320*240 pixels, you can only display the picture (without the mostly useless borders) of the original C64 without having to drop some pixel columns (and, consequently, rows, if you plan to keep the 8:5 aspect ratio) if you use landscape orientation AND you don’t display any borders.

Landscape mode done this way is supported by all free Pocket PC clients: PocketHobbit, ComeBack64ce and PocketCommodore64 running on a QVGA device. These three all completely ignore the borders and only display the active screen area. In general, this is the best approach because, as has already been mentioned, displaying the border would mean an original horizontal resolution higher than the physical (horizontal) resolution of the QVGA screen; that is, some pixel columns (and rows) would be needed to be thrown away. Example screenshots of PocketCommodore64 (again, running on a QVGA device): 1 2; the latter in the second Landscape mode, without on-screen controls.

PocketCommodore64, when running on a VGA (640 *480) device, behaves differently. As PocketCommodore64 is VGA-aware and it does make advantage of the high resolution of the screen (it’s the only c64 emulator to do so), it is also displaying the borders around the active area so that you can see what the (few) programs (mostly intros and demos) that do use the border do.

Again, as VGA devices have plenty of additional pixels, this doesn’t result in noticeable distortion caused by completely thrown-away pixel rows / columns. Actually, exactly the opposite is happening. That is, because, in VGA mode, PocketCommodore64 needs to stretch 384 columns (and 272 rows) to completely fill in the 640 * 400 (without the on-screen controls, 640 * 480) available screen estate, some pixel rows / columns must be rendered twice. This also means there will be some kind of distortion, but it’s just a bit ugly because of the doubled lines / rows. Column / row doubling is still WAY better than completely throwing away information (that is, not rendering certain pixel columns / rows). The latter results in definite information loss and, in extreme cases (as with downsizing the original 320*200 screen to 176*125 to fit the screen of a low-resolution MS Smartphone in Portrait mode, which means having to drop almost every second rows / columns. The latter results in severely reduced and, at times, plain unreadable text as can be seen for example in THIS screenshot), almost fully unreadable characters.

As opposed to the Landscape mode (where, again, no row / column dropping takes place), in Portrait mode, as you need to force 320 columns in a screen that, physically, has 240 columns only, you already need to throw away every fourth column. If you do stick to the original 8:5 aspect ratio of the C64, then, you also need to drop 50 rows as well, further reducing readability.

As the latter (dropping rows) isn’t really necessary (as there will be a lot of screen estate unused even when you use really big on-screen keyboards / controllers), some emulators don’t necessarily stick to the 8:5 aspect ratio but, instead, render all the original 200 pixel rows. This means they don’t drop a single row, only columns.

In this respect, there are two kinds of emulators. PocketCommodore64 (related screenshot HERE) and ComeBack64ce (screenshot HERE) use the latter, much better and more preferable approach, while PocketHobbit does drop some rows. While the latter “only” drops 30 rows (that is, it doesn’t technically adhere to the 8:5 aspect ratio either), the results are still way worse than with the former two emulators (as can be seen in the screenshot, for example the center line of E’s is completely thrown away. Let me point out that characters in the character ROM of the C64, generally, only contain single rows; this is why they can be made unreadable so easily even with moderate pixel row dropping).

In addition to the default mode, in Portrait mode on QVGA devices, PocketCommodore64 is able to iterate over four different screen configurations so that you can find your favorite (most probably, you’ll prefer the default first). On VGA devices, on the other hand, the four Portrait modes are the same; for example, the only way to get completely rid of the (horizontal) borders is to manually configuring the fourth screen mode (the user mode) by passing the coordinates to display should be using the (default) 32,36,352,236 coordinates as is explained in the sixth chapter (Advanced Features) of the official document, under the 10th bullet. This, however doesn’t seem to work on VGA devices – it must be a VGA-related bug.

1.3.2.5 Joysticks

The C64 has two joystick ports. Most single-player C64 games used the joystick in Port 2. However, you may need a joystick in Port 1 with some games / intros. It's worth knowing what the implications are and how joysticks are emulated.

First, the tested emulators vastly differ in what joystick port is, by default, emulated by the D-pad and the fire button. You can find this information in the "What is D-pad (with desktop emulators, cursor block) by default assigned to?" row of the Chart. As can clearly be seen, PocketCommodore64 assigns both of them. This is probably the best approach as you will rarely need to manually reconfigure what joystick port is being emulated. However, it may result in, with some games, funny results; for example, with the well-known two-player classic Wizard of Wor. When played with the default settings, both players are activated; this means if you press Up on the D-pad, both players' sprites will move up. This is not necessarily what you want; therefore, in these cases, you will want to disable one of the two joystick assignments.

PocketHobbit, as opposed to the rest of the emulators, emulates Port 1 by default. Again, this port is used by far fewer games than Port 2 and, therefore, you will often need to switch over to the latter. Fortunately, doing this is very easy: just click the joystick icon on the main emulation screen and select Joystick 2 in the menu.

Both ComeBack64ce and PocketHobbitSP2003 emulate Port 2 by default; with the latter, you can swap between the two with the phonepad button 5.

Still speaking of the ability to emulate both joysticks at the same time, in the "Can D-pad (on desktop: cursor block) be assigned to both joysticks at the same time to reduce time in finding out how you can go on with a given game / cracker intro? " row, I've explained whether this is doable. As can be seen, only PocketCommodore64 and PocketHobbit are capable of this.

I also listed whether a given emulator supports rapid- and autofire. Unfortunately, only PocketCommodore64 is capable of doing this. You can enable these separately with the lowermost four checkboxes in the Settings / Setup Controls dialog.

Let me quickly explain the difference between the two modes. Rapid fire is only activated when and while you do press the fire button (or the screen, if the fire functionality is assigned to the screen). Auto fire is, on the other hand, always active, no matter whether you press the fire button or not. It's game dependent which one you want to prefer; with shoot'em ups like Katakis where you will always want fire, you'll want to prefer autofire; with games like Wizard of Wor, where autofire greatly slows down the movement when firing at a wall nearby, rapid fire only, if at all.

Finally, I've also elaborated on whether the buttons (most importantly, the fire button - after all, I don't think you will want to use something different than the D-pad to emulate the four (eight) directions of the joystick) of the joystick can be reassigned. As can clearly be seen, only PocketCommodore64, the best C64 emulator allows for this - the other don't. I've also listed the default fire button for all the emulators; as can clearly be seen, PocketHobbit's approach (Button 1 + 3/4) is clearly the worst, while that (the volume up, on the upper left side of the phone, can also be used as a fire button, which is the best solution for landscape playing) of PocketHobbitSP2003 is pretty good, even if you can't actively redefine buttons.