Graphic enhancements in games!

edited May 2009 in Games
(this message was also posted at http://www.retroremakes.com/forum/viewtopic.php?f=6&t=12431)

Hello to everyone!
A couple of years ago I tried to develop an idea to "recolor" old (mainly ZX Spectrum-based) games to give them new look and make them more attractive. It would be easier than to make a full-fledged remake. At least for Speccy, in many cases gameplay and sound are already adequate, but graphics does not look good enough anymore.

Now I would like to announce the first attempt to organize semi-automatic game recoloring. It is created thanks to UnrealSpeccy emulator and the idea of its author SMT on sprite search/replace.

Have a look at the pictures below ([I, Ball II game -- original and retouched):

95f89ac00bc2.jpg

475563aaf0b8.jpg

I recolored only this level, and not yet completely. Maybe, the coloring is too agressive sometimes, but I just wanted to show clearly the potential of the technology.

The (recolored) game itself can be downloaded here:
Rapidshare
Onlinedisk
(just depack and run src.exe)

How it works. The emulator is given two sets of pictures -- "original" and "new". Before producing the next frame, the program looks for the pictures from the "original" set and subsitutes them with pictures from "new" set. That's it.

The "new" pictures" are created in double resolution (screen size 256*2 x 192*2), so the graphics will be not only better-colored, but also smooth. To create them, I used the filter, proposed by Head Over Heels PC creators.

Sure, this approach cannot be applied everythere (clearly, we need a sprite-based game, not ELITE or Stunt Car Racer). Also, there are problems with overlapping sprites, color collisions, etc. But for many problems I can find an appropriate solution.

Probably, the many problem for now is performance. The game now works fine on my PC, but generally by increasing the number of sprites we can considerably slowdown the process.

I have some thoughts about possible optimizations that can make the process two or more times faster.

Also, UnrealSpeccy has a "magic" parameter "t-states/frame -- number of tacts in a frame" that can (as I feel) take out all the problems, but I am quite infamiliar with it yet (maybe someone knows better!)

So, that's all. I am waiting for the feedback! If someone wants to color some game, I will share the technology with great pleasure, since I am much better programmer than a painter, so there is no reason to expect many cool-looking colorful games from me ;)
Post edited by rg_software on
«1

Comments

  • edited December 2008
    So, that's all. I am waiting for the feedback!

    Looks nice. But I'm not interested, thanks.
    I like to play my games as I did back then. No enhancements, no nothing. I'm not even interest on remakes. I'm on this thing for the feeling of playing a ZX Spectrum game and get transported back to those days. And while I'm keen to take a look at new games still being produced, they have to run on one of the ZX Spectrum machines with no strings attached, or I'll loose interest.

    I do have a fondness for retro-looking games though. But these have to be original and are most for the late 80s and early 90s PC. An example is the work from Jeff Vogel (http://www.spiderwebsoftware.com/)
  • edited December 2008
    Hey mate, it does look good. Trouble is (for me) I won't really be able to play them if they need special processing by the Spectrum emulator, as I use Fuse PSP and Fuse-X (for the PSP and XBox respectively) which don't offer the same extensions as UnrealSpeccy.

    It's the same situation as the 256 colour Spectrum games that EmuZWin can run (see:

    http://www.yantragames.com/ZX256.html

    http://spectrummagic.emuunlim.com/Spectrum%20Magic%20256%20Games.htm

    and

    http://home.earthlink.net/~zx_makeovers/id2.html

    for screenshots and downloads). Some of these games are really well done, but of course only EmuZWin (and the very basic Spec256) can run them, so I can't use them on my PSP or XBox, sadly. If FUSE ever gets the ability to run coloured games like yours and the others I've mentioned then I will definately use them, but for the moment there's no practical way for me to.

    Still, some people no doubt love them on the PC based emulators (UnrealSpeccy, EmuZWin, etc) so please keep at it and let us know of your progress. Instead of using Rapidshare or whatever, you should really set up a WWW site with your recoloured games, to show what you've done, and this will hopefully encourage emulator authors to add the ability to run these games to their emulators.
  • edited December 2008
    rahtgaz wrote: »
    I like to play my games as I did back then. No enhancements, no nothing. I'm not even interest on remakes.

    Well, that's perfectly fine, but this does not mean that nobody is interested :)
    There are, at least, retroremakes.com and retrospec.sgn.net communities that specialize on remakes, and they are quite active.
  • edited December 2008
    Maybe full-fledged remakes are more difficult to make, but they far superior and have no limitations, which your method full of. Remake can use really high resolution (640x480 is ancient history already) with full-resolution movements (your method only increase graphic details, but movements still low-res) and it does not waste tons of processing power. Remakes also can use all resources of target platform - advanced video effects, good sound, control methods, network and online features, etc. They also can fix gameplay problems, can be cross platform (Flash, Java, open source with SDL, etc).

    I think, your method has only one advantage comparing to Spec256 - slightly easier to make recoloring. But it also has many new problems and limitations.
  • edited December 2008
    I think, your method has only one advantage comparing to Spec256 - slightly easier to make recoloring. But it also has many new problems and limitations.

    No, that's not right -- in Spec256 you are still limited to 256*192 screen resolution.
    With my idea, it is possible to use 2x screen (or even 3x, 4x screen, why not -- if 640*480 resolution is not enough -- there is no inherent limitations to 640*480).
    Processing power is also not THAT important -- if the game can be run on the average hardware.

    As of other limitations -- you are right, they do exist.
    But if we have a look at actual remakes (not hypothetical ones), many of them are faithful enough, and do not extend gameplay, scrolling or movements. Say, already mentioned Head over heels, which is IMHO nice. Also (if I remember correctly) Sir Fred, Highway Encounter, etc. remakes are nearly the same as originals, except much better graphics.
  • edited December 2008
    Same with me, these new 256 colour versions wont work on the emulators i use so theyre not any use to me really.

    They do sound good but i must admit i prefer to play the games in their 'natural' state
  • edited December 2008
    With my idea, it is possible to use 2x screen (or even 3x, 4x screen, why not -- if 640*480 resolution is not enough -- there is no inherent limitations to 640*480).

    The whole "256 colour games are the greatest thing since sliced bread" lasted about a month before people realised that an old game with improved graphics is just an old game with graphics worse than an modern game. I don't see why this is actually any different...
  • edited December 2008
    No, that's not right -- in Spec256 you are still limited to 256*192 screen resolution.
    Spec256 itself have this limitation, but method used in Spec256 allows to increase screen resolution too.
  • edited December 2008
    Well, that's all nice things, but:
    1) hi-color games IMHO do have sense. At least, I enjoyed Head over Heels, Sir Fred, and Highway Encounter remakes, and I was not the only one ;) All these pieces of software are basically recoloring works.
    2) "Spec256-styled" technology indeed can be extended. But it is harder to use, and, more important, I don't see anyone who is ready to upgrade Spec256/EmuZwin for higher resolutions.
    3) Automatic graphic filters are fine, but that's a separate niche... They will not turn black-and-white game into a colorful one...
  • edited December 2008
    2) "Spec256-styled" technology indeed can be extended. But it is harder to use, and, more important, I don't see anyone who is ready to upgrade Spec256/EmuZwin for higher resolutions.
    Actually, there is many active emu developers, and I'm sure many of them could add this feature in their own emulators, if they found it worthwhile. Problem is that nobody really want this - neither developers nor users. Spec256 was made in 1999, and to this moment only Kladov implemented this feature in two of his emulators.
  • edited December 2008
    Well, I like the idea of adding colors to Zx Spectrum games, but I must say that it used to be a hard and tedious work. You had to find the graphics (sometimes distorted or broken into small pieces) in the snapshot memory and individuaslly paint each pixel... I remember WOS members saying proudly that it is a job for 5 years old kids, but it just doesn't work this way.

    If you can make a nice utility for coloring Zx Spectrum games, and I don't care for high resolution here, just coloring is enough, I will appreciate it for sure. Todays we have 15 years old Spanish Dos emulator and buggy EmuZwin editor. I would love to see modern, stable, easy to use tool to color Spectrum games. I would personally use it for sure.
  • edited December 2008
    You are right, I am just not sure why it is so.
    When I asked Kladov, he replied that extending the graphics processor emulation would be computationally demanding, slowing down the emulator.
    I am not sure that's the case.
    I think, Ralf is right -- I also found "spec256" approach being rather hard for wide use.

    Anyway, thanks for the feedback! I'll see what can I do next :)
  • edited December 2008
    Have you tried any of the emus with graphic filters?
    Sure. But I think no automatic method can make results better than human work.
    Palettes also can be nice, but if the original sprite is, say, black-and-white, no filter will give it ten colors :)
  • edited December 2008
    aowen wrote: »
    Also remember that the majority of emulator authors are only interested in emulating hardware that actually exists.
    Is emulating non-existent hardware actually emulation?
    I wanna tell you a story 'bout a woman I know...
  • edited December 2008
    Is emulating non-existent hardware actually emulation?
    Java virtual machine? .NET Framework?
  • edited December 2008
    Is emulating non-existent hardware actually emulation?

    Interesting question. I checked Wikipedia:

    The word emulation refers to an ambition and effort to equal, excel or surpass another; to compete or rival with some degree of success, especially through imitation.

    According to this definition it is emulation.

    There are also games which are called simulations where you fly X-Wing, Tie Fighter or even a dragon. It is also simulation of unexisting object :)
  • edited December 2008
    err... no. Copying a non existing machine is not emulation. Not in the sense traditionally given to the emulation scene... and not even as the word is described.

    It is, at best, simulating a non existing machine.

    EDIT: And I think Karingal's question was only rhetorical, to call the attention to a possible logic mistake.
  • edited December 2008
    I really enjoy the enhanced graphics of 256 games, and so I use EmuZWin as my main Spectrum emulator on my PC. Hoever, I do most of my Spectrum gaming on the Nintendo DS which doesn't support the 256 games (as do not most emulators) but when I use my PC I usually go for the 256 recolourings of Head Over Heals or Jet Pac, both of which are superb.

    I am interested in your graphical enhancement method and will definitely take a look at some of the finished enhance products, but if it could be picked up and included in Fuse or something else widely ported it would have a much wider audience.
  • LCDLCD
    edited December 2008
    So how about writing a LOKI emulator (And then based on it, a real machine)? The Problem is: Nobody knows how a LOKI was supposed to work, so a LOKI Emulator cannot be acurate and so it is not Emulation. Porting games to SAM Coupe using Spectrum code and Atari ST Graphics is okay, because SAM Coup? exists. Making games for not existent hardware is not a emulation of a existing machine, but a emulation of a product of phantasy. It is like Building LEGO castles out of normal non-LEGO Bricks, so it is not LEGO anymore.
  • edited December 2008
    While we are talking about 256 color games you remembered me that I started (with EmuZWin) and abandoned 256 colors version of Renegade.

    Here are some screenshots:

    f_Renegade1m_039874a.png


    f_Renegade2m_073c74a.png

    I may finish it one day, but don't hold your breath. There are several problems too with that.

    I think that If you, Rg-Software would like to work on 256 color games you have two choices:

    -write a new emulator from scratch
    -write a plugin for existing emulator

    I thnk personally that second approach could be better. You have less work and more chances to succeed that way. I would like to see 256 color emulation as a part of stable Windows emulator like Spectaculator or SpecEmu.

    I don't know what the emulator authors would say about it but maybe it's worth to ask.
  • edited December 2008
    Wow. Very nice looking. Better than the arcade version. never liked the game on the arcades.
  • edited December 2008
    rahtgaz wrote: »
    EDIT: And I think Karingal's question was only rhetorical, to call the attention to a possible logic mistake.
    It's an statement I've been challenging for years, there has been some argument that an emulator with a debugger is no longer an emulator because it performs a function not capable of the original machine. But I think thats nitpicking personally.
    I wanna tell you a story 'bout a woman I know...
  • edited December 2008
    karingal wrote: »
    It's an statement I've been challenging for years, there has been some argument that an emulator with a debugger is no longer an emulator because it performs a function not capable of the original machine. But I think thats nitpicking personally.

    Yup. I agree that's nitpicking. Some level of extra features not directly linked to the core emulation make all sense. Otherwise we would also have to question the fact a Z80A emulator uses buttons and windows, something a Z80A machine couldn't do. Or worse... fastloading would have to go :)

    Of course these presents us with the obvious problem; What then is acceptable and what is not? And who says?

    I think the question is easier than it might seem. An emulator, to be a respectable emulator, must emulate the target machine to the best of its abilities. No problems there (argumentatively. Not programmatically, hehe).
    This means, that an user must be able to use the emulator while ignoring any extra features and this will give them the closest possible experience to the real machine. If this is achieved, then we have an emulator.

    Then it's up to the author if they want or not to present the user with additional features. As long as they don't conflict or hinder the emulaton experience in any way, there's is nothing stopping them from being implemented. While I may not personally welcome these features (because I'd rather prefer time had been spent on the emulation and not eye candy) they don't shock me. If Fuse, Spud, Spin or Spectaculator were to implement 256 color simulation (this is not emulation), as long as I kept being able to use them without it enabled, who really cares?
  • edited December 2008
    Although I love the look I have to fall to the side of it no longer being a Spectrum game as it wouldn't run on any actual hardware. If you were to write it for the Sam, QL, or Spectrum SE, then I'd go for it, but otherwise it's just not cricket.
  • edited December 2008
    rahtgaz wrote: »
    Of course these presents us with the obvious problem; What then is acceptable and what is not? And who says?

    Who gets to determine what is "acceptable" is incredibly easy. In the case of Fuse, it's me (and the rest of the Fuse team). In the case of Spin, it's Dunny, Marko and Woody. In the case of Spectaculator, it's Jon. Anyone who doesn't like what we determine to be "acceptable" in our software is more than welcome to use software which does meet whatever arbitrary criteria you're putting on it.
  • edited December 2008
    Who gets to determine what is "acceptable" is incredibly easy. In the case of Fuse, it's me (and the rest of the Fuse team). In the case of Spin, it's Dunny, Marko and Woody. In the case of Spectaculator, it's Jon. Anyone who doesn't like what we determine to be "acceptable" in our software is more than welcome to use software which does meet whatever arbitrary criteria you're putting on it.
    Or write your own emulator to your own specifications...
    I wanna tell you a story 'bout a woman I know...
  • edited December 2008
    The whole "256 colour games are the greatest thing since sliced bread" lasted about a month before people realised that an old game with improved graphics is just an old game with graphics worse than an modern game. I don't see why this is actually any different...

    I don't agree 100% with that, as a great game with properly recoloured graphics is a great game with better graphics. I think the final result depends on the quality of the gameplay and original graphics combined with the skill of the person doing the recolouring. Some of them, such as Head over Heels and Jetpac looked amazing. I'd like to see FUSE gain the ability to run these recoloured game, but given how few they are (aparently it's quite hard to do, and limited to 48K games (although most of the best Speccy games were 48K), I don't know how resource intensive running these games are) then it's not exactly a priority. Plus, being Speccy owners we are used to (so presumably accept) little colour in many games, and in fact done properly, monochrone graphics can look great.

    Ralf, your recolouring of Renegade looks excellent - I'd love to see it finished.
  • edited December 2008
    Anyone who doesn't like what we determine to be "acceptable" in our software is more than welcome to use software which does meet whatever arbitrary criteria you're putting on it.

    Brave words.
    I guess some manner of user feedback is acceptable... or not really?

    I hear this type of argument quiet often. It's quiet curious that is almost always from the emulating scene. I'm not sure what happens around here. But people tend to be more assertive of their work. *shrug*

    While I can understand part of the reasons, I don't really see why it shouldn't be accompanied with a little disclaimer. Unless, of course, there isn't any. But in that case, I wonder why are our users then asked to test new features, help with bug reporting or suggest improvements. Cattle?
  • edited December 2008
    rahtgaz wrote: »
    But in that case, I wonder why are our users then asked to test new features, help with bug reporting or suggest improvements. Cattle?
    But they are.

    Most emulator authors have designated beta testers, they just don't advertise the fact. If you check the Emulators forum you'll see numerous threads for bug reporting, feedback and feature suggestions.

    Dunny is very receptive to suggested features but as with all emulators, he being the author has the last word on whether or not he chooses to implement.
    Remember, writing an emulator is a labour of love and the author more often than not receives nor asks for any financial recompense. It is written primarily for the author and if anyone else enjoys the fruits of labour then that is a bonus.
    I wanna tell you a story 'bout a woman I know...
  • edited December 2008
    The great thing about any GPL'd emulators (or GPL'd software in general), is of course the ability for the end user to add or change whichever feature they like to the existing app, tailoring it to their specific needs.

    They can then even redistribute their version also under the terms of the GPL.

    So, if you just wanted to change something minor in an emulator that was otherwise 99% suitable for your needs, you are welcome to implement the changes and you don't have to write an entire new emulator from scratch again.

    At work, I have occasionaly taken GPL'd software and modded it for our specific on-site requirements.

    This is in the spirit of true freedom allowed by the GPL.

    So if the question is "I don't agree with the direction you are taking your emulator in, what can I do about it?"

    Then the answer is "Fork off".

    And I mean that in a polite way. :D
Sign In or Register to comment.