ZX Recoloring project

Share graphical tips, notes and queries related to our favourite screen layout and its editors.
hikoki
Manic Miner
Posts: 576
Joined: Thu Nov 16, 2017 10:54 am

ZX Recoloring project

Post by hikoki »

Hi. I've found this site called ZX recoloring project http://web-ext.u-aizu.ac.jp/~mozgovoy/z ... about.html
They state it's an easier way than the tool provided by Emuzwin to recolour games with 256 colours (spec256 format)
Ralf
Rick Dangerous
Posts: 2279
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: ZX Recoloring project

Post by Ralf »

I've heard about it. It's an old, probably abandoned project. You may actually see ©2009 on the website ;)

As I know, it has never gained enough momentum, people have never started doing recoloured games with it. So you can't
really tell if it's good or not.

I tried once doing a coloured version of some game in EmuZWin and may tell you that the devil is in the detail. You do a lot of
work, everything works nicely and suddenly you hit some more complicated game behaviour and the colouring engine goes crazy.

Draw some invisible graphics with black on black attribute? No way, they'll get perfectly visible when you apply colour to them.
Use different colour versions of the same sprite? No way, they'll all look the same after you recolour them. And so on... So you end with
almost good result having a few nasty glitches.
hikoki
Manic Miner
Posts: 576
Joined: Thu Nov 16, 2017 10:54 am

Re: ZX Recoloring project

Post by hikoki »

I see the author didn't get much enthusiam on WoS forums. He provided a modified emulator, an editor and a modified game to demonstrate his technology. I find interesting to apply new technologies upon the original games. Things like Obo's tools,VR, AR, sprites recolouring, filters, netplay.. who knows if the Raspberry Pi on the Next will be able to support such things.

EDIT

The author may be contacted at http://web-ext.u-aizu.ac.jp/~mozgovoy/h ... en/zx.html
Ralf
Rick Dangerous
Posts: 2279
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: ZX Recoloring project

Post by Ralf »

I see the author didn't get much enthusiam on WoS forums
I found the thread too:
https://www.worldofspectrum.org/forums/ ... n-games/p2

Damn, it's already over ten years and I would say it was a moment ago. I hate getting old ;)

Some people were really bitter pricks there, getting into this "emulation of nonexistant machine" thing.
I tried to ask some practical question but in the end, I could seem to be negative as well.
A bit shame.
User avatar
zxbruno
Manic Miner
Posts: 213
Joined: Sun Mar 04, 2018 6:13 am

Re: ZX Recoloring project

Post by zxbruno »

I'm sorry for the slightly off-topic comment...

Several people left the WOS forums years ago because of those who were harsh, cold, and aggressive in their way of communicating. The irony is that most of those forum members are also gone.

I'm one of the few who believes most misunderstandings online are due to language barriers. The Portuguese, for example, can sound quite harsh even when they're not upset. I only learned this, and changed, after moving out of Portugal back in 1995. Some people know enough English to communicate, but have no idea (or don't care) about etiquette.

One "bad" visitor who decides to spend some time participating in a forum, is enough to get people to start saying things like "this forum is not what it used to be".
hikoki
Manic Miner
Posts: 576
Joined: Thu Nov 16, 2017 10:54 am

Re: ZX Recoloring project

Post by hikoki »

Was this thread, right? https://www.worldofspectrum.org/forums/ ... ent_353865
If this tool was really easy to use with immediate results, I think Spectrum users would have a lot of fun. Wouldn't you like to paint your favourite games? I remember that thread where people seemed to like painting images for the Hobbit 128K edition. Hey there is one idea for a compo here, though I haven't check out these recoloring tools to see if they are easy enough for everyone.
User avatar
4thRock
Manic Miner
Posts: 415
Joined: Thu Nov 09, 2017 9:35 am
Location: Portugal

Re: ZX Recoloring project

Post by 4thRock »

I experimented with Spec256 once and it works. But it's not user friendly.
For example, how to handle animation frames ? You need some way to preview your work.
The same for sprite parts the get reused, map tiles, etc, etc.

A better approach would be a tool that exported graphic data (from memory or tape...) into a PNG, allowing the user to reposition and clone elements.
Basically, it needs to be able to create a proper sprite sheet.
All editing is then done on whatever program the user prefers (Photoshop if needed :D ).

The tool would need to keep track of the original memory positions, so that you could reverse the process (import back your PNG with edited graphics).

I think that editing the original graphics is better and has more appeal.
There's precedent with Mr. Helli for example:
http://torinak.com/qaop#128#speed=1#l=h ... LI-MOD.tap
AndyC
Dynamite Dan
Posts: 1386
Joined: Mon Nov 13, 2017 5:12 am

Re: ZX Recoloring project

Post by AndyC »

The problem with all these recolouring projects is that they tend to oversell themselves. It's always pitched as something that is easy, requires no programming experience and that will produce great results. In reality it's almost always something that kind of works with some games, but glitches out in other cases. You often need to understand what the game is actually doing in order to avoid some of the quirks. And then there are times when it just flat out won't work with certain games.
User avatar
Bedazzle
Manic Miner
Posts: 303
Joined: Sun Mar 24, 2019 9:03 am

Re: ZX Recoloring project

Post by Bedazzle »

Ralf wrote: Fri Jun 21, 2019 1:44 pm and suddenly you hit some more complicated game behaviour and the colouring engine goes crazy.
Just to add some problem cases:

- on the fly mirrored/rotated sprites
- double buffer
hikoki
Manic Miner
Posts: 576
Joined: Thu Nov 16, 2017 10:54 am

Re: ZX Recoloring project

Post by hikoki »

The author seemed to lose motivation for lack of feedback. I'm sure he could try to patch every particular issue. I see Obo supports a number of different games. In this case, I guess patches could be generalised to many games using the same programming techniques. If you really want to experiment with your favourite games, I'd suggest to give it a go and tell the author the problems you come across.
Ralf
Rick Dangerous
Posts: 2279
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: ZX Recoloring project

Post by Ralf »

I'm sure he could try to patch every particular issue
Yes, if such project should be successful, it can't be "release and forget" thing. The tool author should cooperate with people trying to make games and address problems they encounter.

And I agree also with Andy that
It's always pitched as something that is easy, requires no programming experience and that will produce great results
You know, when people hear about colouring black and white pictures they immediately think of 5 years old kids in a kindergarten ;)

But no, adding colour to Spectrum games isn't a job for 5 years old kids. You must be good at pixel art. You never work at whole object like houses or tree but rather on small tiles and sprite parts. And yes, you need some understanding of assembler as well.
hikoki
Manic Miner
Posts: 576
Joined: Thu Nov 16, 2017 10:54 am

Re: ZX Recoloring project

Post by hikoki »

I may be wrong but this project is different. If you open the sample you'll find the original sprite and the modern one. So the process tries to be transparent to the user as for searching and replacing entire sprites.
It may be a proof of concept which doesn't work on every case yet, but the idea of the author is in there, just replace every sprite by yours. Besides, I understand the modified emulator allows to place any sprite without taking account of any limitation like colour clash or the number of colours.
geecab
Drutt
Posts: 32
Joined: Sun Jun 23, 2019 12:44 pm

Re: ZX Recoloring project

Post by geecab »

Hi there! I decided to register with this forum after I read this thread as am really interested in modifying the graphics on certain speccy games (I've been playing around with emuzwin v2.5, changing the graphics on Fairlight and Amaurote. I'd like to modify MAME to do something similar but that is a subject for a new thread :p).

Anyways, I decided to try out the Iball2 game the developer modified (I downloaded the iball2_remake.rar from his website). It looks and works pretty well. I've read the WOS thread too, it's a real shame he was hit by such harsh/bitter/unfair responses. I think his idea could have gone places, even just for prototyping new colour schemes for old games. I think the configuration (settings.txt) for the modified sprites is clever too (When 2 sprites collide, you can configure which modified sprite should be in the foreground, and which should be in the background).

I think with a game like Iball2, where sprites don't often collide or hide behind each other, then this pixel find/replace method can give good results.

I think this sort of approach lends itself best for games like Rebelstar/Rebelstar2 (Where the graphics are pretty much stationary and never overlap). Might have a go a modifying Rebelstar2 myself...

Something else, but I'd recommend keeping the new sprites the same pixel resolution as the old sprites they are replacing (I.e. Just modifying the pixel colour of the new sprites). Mainly because when sprites overlap/collide (And the emulator has trouble identifying a match), it is less obvious when the old sprites are momentarily displayed (You hardly notice it). Also, keeping everything at the same resolution also looks more faithful to the original game (You look at it and think "wow, that's cool speccy graphics", rather than "This clearly isn't a spectrum game"), but I understand this might just be my personal preference.

:)
User avatar
Bedazzle
Manic Miner
Posts: 303
Joined: Sun Mar 24, 2019 9:03 am

Re: ZX Recoloring project

Post by Bedazzle »

geecab wrote: Wed Jul 03, 2019 1:31 pm I've been playing around with emuzwin v2.5, changing the graphics on Fairlight and Amaurote.
Fairlight will be a problem, cause some graphics is procedure generated.
geecab
Drutt
Posts: 32
Joined: Sun Jun 23, 2019 12:44 pm

Re: ZX Recoloring project

Post by geecab »

Bedazzle wrote: Fri Jul 05, 2019 5:29 am Fairlight will be a problem, cause some graphics is procedure generated.
Thanks Bedazzle! Good to know.
geecab
Drutt
Posts: 32
Joined: Sun Jun 23, 2019 12:44 pm

Re: ZX Recoloring project

Post by geecab »

I've been playing around with the recolouring stuff a bit more. I really like it! It’s very easy to use and I am hooked now. I think it’s really worth trying if you haven't done so already :)

I decided to have a go at recolouring Aquaplane as there aren't many sprites in the game. I've recoloured quite a few of the sprites, it didn't take too long and I'm pretty happy with the way things are looking (See screenshot below). There is an occasional 'flicker' problem with the original sprites in Aquaplane. I have a suspicion the flicker is because Aquaplane does not synchronise its video memory writes with the video interrupt. As the original sprites occasioanly flicker, then so do the new/recoloured sprites, which looks a bit odd. Not sure what can be done about this.

I've also started recolouring Stormbringer (Currently, I've only recoloured the main character/hero sprite. See screenshot below). Things looks great/smooth and there is zero flicker. Something is a little odd though, if say on the screen below, I move the hero character under the big tree or under the green handle of the sword, the emulator fails to recolour the sprite. Move anywhere else and its fine.

I've zipped up everything I've done here incase anyone fancies taking a look:-
https://drive.google.com/open?id=1Ml8vP ... sAV3WvOAsi

Aquaplane screenshot

Stormbringer screenshot

:)
User avatar
druellan
Dynamite Dan
Posts: 1466
Joined: Tue Apr 03, 2018 7:19 pm

Re: ZX Recoloring project

Post by druellan »

Simon Owen's projects are also interesting, using a similar approach: the original codebase working on background, and a new graphic layer on top:
https://simonowen.com/spectrum/augmentinel

Image
AndyC
Dynamite Dan
Posts: 1386
Joined: Mon Nov 13, 2017 5:12 am

Re: ZX Recoloring project

Post by AndyC »

geecab wrote: Sat Jul 06, 2019 2:15 pm I've also started recolouring Stormbringer (Currently, I've only recoloured the main character/hero sprite. See screenshot below). Things looks great/smooth and there is zero flicker. Something is a little odd though, if say on the screen below, I move the hero character under the big tree or under the green handle of the sword, the emulator fails to recolour the sprite. Move anywhere else and its fine.
This is the problem with trying to solve it with image recognition techniques. The relatively low resolution of the image, plus the inherently quirky colour clashing artifacts will most likely cause it to fail at times and end up with a somewhat unsatisfactory result. You could possibly tweak the algorithm to better suit some games, but doing so will likely cause others to behave worse.
User avatar
ZXDunny
Manic Miner
Posts: 498
Joined: Tue Nov 14, 2017 3:45 pm

Re: ZX Recoloring project

Post by ZXDunny »

You need an emulator that reads and writes memory using shadow RAM images.

When a memory read is performed, you read from three extra copies of the 64k that's paged in - and store them in shadow registers. When writing, you either write just the 8 bits you read from main memory (in the case of a general memory write), unless you're writing to the screen in which case you extract 8 bits for PAPER and 8 bits for INK and combine those to a screen that can handle 256 colours. If you have 7 extra banks of RAM, you can easily make graphics that are 256 colours per pixel.

Of course, you can't load games from tape this way, but snapshots are really useful. All you need then is an editor that allows you to identify graphical objects in memory and pre-load those regions with 256 colour representations of their 1s and 0s.

This has already been done, btw, many years ago. But it never gained any traction at all, despite being very simple for the average user to mess around with. You don't need to do image recognition, no need to trap screen display routines.
hikoki
Manic Miner
Posts: 576
Joined: Thu Nov 16, 2017 10:54 am

Re: ZX Recoloring project

Post by hikoki »

[mention]geecab[/mention]
Thanks! You may want to send your work to the author, RG_Software, and tell him about the issues you mention.
Do you think it'd be possible to take the Jet Pac Advance Mod and put Scuba Dive's sprites instead? Using Horace everywhere could also be fun. I'd like to see a different Bruce Lee sprite. Another kind of game to mod could be those with 3d graphics like Ant Attack to use baddies from other Spectrum games giving them a 3d look. What about Double Dragon? there were graphics out there for a remake that never was finished. One could also think of using Renegade graphics for Double Dragon, or take one of these beatemups and give them a Christmas theme like making the Three Wise Kings fight with burglars disguised like Santa Claus. In general it'd be interesting to mod good early games with UDG or simple graphics. Another idea would be making demakes of modern games, Mario sprites from Gabriele Amore comes to mind. Aberrations like these may not deserve to be in the form of real Spectrum game, that's why I see these experiments like any other modern game for PC.
rg_software
Drutt
Posts: 11
Joined: Sun Jul 07, 2019 4:20 am

Re: ZX Recoloring project

Post by rg_software »

Thanks to @geecab for pointing me to this thread! Sorry for a somewhat long reply, but my project rarely gets much attention, so let me use it as an excuse for stating my point of view :)

1) Motivation. I think the idea of "easy remastering" is still relevant today, and I am happy that some people share my view. What's different now. First, a few major titles got "official" remasterings and re-releases, and some companies started fighting with fan-made remakes, which doesn't increase our motivation to do this work. This concerns Speccy scene to a lesser degree, but fun remakes competitions (like organized by remakes.org) are long gone, and I miss those times. Nowadays a decent remake (especially with a blessing of a copyright holder) can be turned into a commercial mobile game, which can be a preferable path for many.

2) Tech stuff. It turns out that only certain types of games would benefit from the approach I proposed in "ZX Recoloring Project", and not all of them are equally easy to convert. Well, this is to be expected, but in practice it just means that one needs love a certain game, have a motivation to do a remake (in spite of my point (1)), be satisfied with my project's capabilities, and be happy that only the graphics gets upgraded. I wanted scrolling and better sound in Joe Blade 3, so I had to write my remake from scratch. I think it is good. Since modern emulators support advanced graphic filters, I bet many people are just happy with them.

3) On good recolorings. In my strictly personal view, a good remake (I imagined when designing ZX Recoloring Proj) should feature double-resolution sprites and updated colors. I like, for example, Deflektor, Exolon and Head over Heels remakes from Retrospec. I tried to play with triple resolution, but it looks weird -- like a huge screen populated with few huge blocky objects and vast empty spaces in between (we upgrade the screen resolution, but the game resolution stays the same). I am not a fan of keeping the initial resolution intact -- yes, I understand that such a game looks "more faithful", but... Even a double resolution is "pixelated enough" nowadays to look retro, and if a game has a version for Amiga or Atari, it would be exactly what you want -- the same game, (nearly) the same resolution, better colors. We've seen a lot of HD remasters today, and now I think we know they can look good if made properly. Say, I really like HD remasterings of Grim Fandango, Full Throttle and Monkey Island. They are good. I don't like Leisure Suit Larry, though, and I completely dislike modern Dizzy made for Android. So it is possible, but it takes time and skill.

4) On the state of "ZX Recoloring Project". I don't consider it "effectively abandoned" -- it is just being postponed every year due to other exciting things I have to do, like my daily job and other semi-hobby projects :) Though in practice the biggest hindrance was graphics. I wanted to create a nice showcase for the project, so I tried to recolor I, Ball 2. Unfortunately, I was never satisfied with the results. I am a reasonably decent coder, but drawing sprites is completely outside my expertise. Yes, I could so something semi-decent, but that's not the purpose of a showcase, right?

Technically the project is in a permanent alpha stage. There are a lot of things (in coding) that must be done there, but it makes sense to invest my effort only if someone really wants and is able to recolor some nice game. I don't think I can do it, but I can help and improve the project if there are any interested people around. Can't promise to do it fast, but I am still alive and capable of doing various stuff.
Ralf
Rick Dangerous
Posts: 2279
Joined: Mon Nov 13, 2017 11:59 am
Location: Poland

Re: ZX Recoloring project

Post by Ralf »

Well and honestly said, Rg_Software.

I believe it was some kind of vicious circle here. Nobody used the tool, because they weren't any nice examples of recoloured
games with it showing what would be possible.

Maybe you actually should have finished this I Ball 2 game, it would give an impression that actually it's possible to complete
something with the tool. On the other hand if it was done with "programmer graphics" ;) then it wouldn't be very encouraging too.

So nobody used the tool because nobody used the tool ;)

And I'll be honest here too, people are afraid of using new, unchecked tools because they are untested and probably buggy.
So working with them may be frustrating and there is a risk that you'll do some work but eventually it'll turn out that
obtaining your goal isn't possible and you have to trash what you've done.

Double resolution was also a thing that put some people away. It should be an option, not a must. And no, working in higher
resolution and using 2x2 pixels just doesn't feel right.

That's what I feel, hope you didn't get offended by it.
hikoki
Manic Miner
Posts: 576
Joined: Thu Nov 16, 2017 10:54 am

Re: ZX Recoloring project

Post by hikoki »

rg_software wrote: Sun Jul 07, 2019 5:21 am
4) On the state of "ZX Recoloring Project". I don't consider it "effectively abandoned" -- it is just being postponed every year due to other exciting things I have to do, like my daily job and other semi-hobby projects :) Though in practice the biggest hindrance was graphics. I wanted to create a nice showcase for the project, so I tried to recolor I, Ball 2. Unfortunately, I was never satisfied with the results. I am a reasonably decent coder, but drawing sprites is completely outside my expertise. Yes, I could so something semi-decent, but that's not the purpose of a showcase, right?

Technically the project is in a permanent alpha stage. There are a lot of things (in coding) that must be done there, but it makes sense to invest my effort only if someone really wants and is able to recolor some nice game. I don't think I can do it, but I can help and improve the project if there are any interested people around. Chan't promise to do it fast, but I am still alive and capable of doing various stuff.
Cool project! Thanks for coming by and telling us you are still alive and kicking.

Would it be possible to use these graphics for a showcase? http://www.smspower.org/Homebrew/BruceLee-SMS
We could ask the authors for permission.
Sprites from other Spectrum games would have a big impact on me, say using Scuba Dive graphics on some other Spectrum game which is not underwater.
rg_software
Drutt
Posts: 11
Joined: Sun Jul 07, 2019 4:20 am

Re: ZX Recoloring project

Post by rg_software »

Ralf wrote: Sun Jul 07, 2019 9:25 am That's what I feel, hope you didn't get offended by it.
No offense, of course. There is no ideological reason for me to restrict the resolution to double size or impose any additional restrictions. When you look at my webpage and see "2009" there, it might give an impression of a long project in a state of stagnation. In reality, it is just an early prototype I dared to put online just in case someone is interested.

However, you are right -- I should find some time and make something workable out of it. I just feel constant lack of time, though.

As suggested below, I can indeed reuse sprites of some other existing port just as a proof of concept. Bruce Lee is one possibility; another one can be to take Dizzy sprites from Amiga and recolor Dizzy 3.5, AFAIK it is Spectrum-only.
geecab
Drutt
Posts: 32
Joined: Sun Jun 23, 2019 12:44 pm

Re: ZX Recoloring project

Post by geecab »

Thanks so much for joining the thread rg_software! Hopefully this thread will ignite enthusiasm back into the project and encourage more people to give it a try :)

I'm going to waffle on about the ZX Relcoloring Project now (I'm going to refer to it as 'ZXRP' in this post as I mention it a few times. Hope that's ok). Nothing is in any particular order, just stuff I have in my head after reading all the posts:-

I really like the fact how quickly with ZXRP you can add a splash of color to a much loved speccy game in a very short amount of time. For me, I'd just be happy seeing a few of my old favorites 'tweaked' a little. Perhaps just adding a dash of color to the hero & enemies so that they no longer blend into the landscape. The games that I'd like to see get the ZXRP treatment, are the games that existed on the Speccy, that didn't get a decent Amiga/AtariST port. Amaroute, Fairlight, TargetRenegade, Marauder to name a few.

I also think ZXRP will be really handy for developers when prototyping game graphics. Say you are working on the graphics for a fighting/platform type game where the hero is an Alien, the enemies are Colonial Marines. You could 'pick' a game from an vast number of Speccy titles (Lets say you pick Renegade), and use ZXRP to change the sprites of the hero/enemies. You could be really imaginative, the original 'Forward-Punch' sprite could be replaced with a 'Alien-Spraying-Acid-From-Mouth' sprite sort of thing. Very quickly you can put together a few sprites in any paint editor, and soon you'll be able to try out your own ideas (The fun part), getting the graphics looking great before progressing.

I do think the spec256 emuzwin 'way' of doing things is very good. I used it quite a lot now and have decent results (Although this varies depending on the game). The problem I've found is, emuzwin is no longer being developed and the 256 color options are a bit buggy (I spent ages recently working on Amaurote, but there are game speed issues with emuzwin running in 256 color mode. Also, with Amaurote, the screen slowly becomes corrupt with random colors and there doesn't seem to be any setting in emuzwin that can help). You also have to rely on emuzwin's sprite editor to add your colors which can be very time consuming, especially when its a case of coloring one pixel at a time. There is also the fact that you will need to know the memory locations of all the graphics you see in the game. The sprites maybe stored in memory in a confusing separated/split/reversed manor (Certainly the case for Amaurote), so that adding your artistic flair, one pixel at a time can be very tricky. Sure, some graphics are easy to find when viewing a memory dump of the game, but some sprites can not be found no matter how much you arrange the memory view/width, and you'll end up getting dirty in a load of machine code looking for them. Whereas, with ZXRP, you can just take a few screen caps of the game when that sprite is showing, bang it into an editor and off you go.

I was also thinking that perhaps one day, ZXRP could be modified as a post processing video add-on for Mame. When Mame has rendered a frame of a game, it gives it to ZXRP for some sprite replacement, before being given back to Mame so that it can be displayed on screen. Kind of like a filter. It could be used for any game platform too, not just the Speccy. Just a thought anyways :)

Once again, really glad you have joined the thread rg_software! Right, sorry for waffling on. Going to get back on do a bit more work with Stormbringer!

Latest screenshot...
Stormbringer2

:)
Post Reply