Jump to content
NHL'94 Forums

Photoshop & Tile Molester for SMD / Genesis Sprites


Recommended Posts

Hello folks,

I've had some PM questions about how I use Adobe Photoshop to edit my ROM, so I thought I would start a thread here where I could answer these questions publicly. Ask away!
cheers,

-Adam

  • Thanks 1
Link to comment
Share on other sites

First question to get us started:

1 hour ago, eltoro666 said:

…I've heard people editing sprites in photoshop, how exactly do you do that and inject them into the game?

Answer to follow…

  • Love 1
Link to comment
Share on other sites

How to work with both TileMolester & Photoshop

OK, in order to make work together, you will need to export and import Tiles from TileM and Photoshop. Here is a simple workflow.

  1. In TileM, open up the tileset that you want to edit, with the corresponding colour palette.
    image.png.8893a18edc2b251e03a969bc0366a4df.png
  2. In TileM, go to Edit > Copy To…  and export a PNG of the tileset.
    image.png.5bcd1844fcd38b26a489af34bd53917a.png
  3. Open the resulting PNG in Photoshop. Edit to your heart’s content. Export that edited tiles as a PNG from Photoshop.
     
  4. In TileM, go to Edit > Paste From To… and import that PNG.
    image.png.5bcd1844fcd38b26a489af34bd53917a.png

 

5. Lastly, in TileM, hit the Escape key in order to drop the tiles in place.
image.png.e880db9a5adb6f1fceb79ecb4efc18f3.png

 

This same workflow can presumably be used with any image editing program. Furthermore, in some cases it may also be possible to simply copy and paste pixels from Photoshop into TileM, but I personally stick to using PNG intermediate files for these transfers.

 

Edited by AdamCatalyst
Fixed error.
  • Wow 1
Link to comment
Share on other sites

How do I work in Photoshop within the SMD / Genesis colourspace?

There are probably more high-tech ways of doing this, but I simply stick to the following rules:

  • Only use RGB colours specified in increments of 32, with values ranging from 0–224. So for instance, RGB 0 / 32 / 224 is a valid colour, while 0/40/ 256 is not valid.
  • Only use 16 colours maximum per tile. If you are using a one colour to indicate transparency, then you only have 15 colours left. And if you are using a shared colour palette, you may have to be even more restricted.

As for workflow tips and tricks, I recommend creating a swatch palette to help yourself out. I manually enter my final colour values into the Palette in TileM, however there are other tools that do this more efficiently.

Here is a reference image with all the possible SMD / Genesis colours.

image.png

Link to comment
Share on other sites

Why even both editing in Photoshop or something other than TileM? (suggested workflow)

I personally cannot think very well, when trying to edit something like this:image.png

So what I will do, is export this tileset, and rearrange it in Photoshop, to something that makes way more sense to me:

image.png

Then, when I'm done editing in Photoshop, I will take my edited tileset, scramble it back up into the order that TileM needs it. Finally, I will re-import it into TileM:

image.png

Despite the extra time it takes to de-scramble and re-scramble tiles to and from the necessary order, I found this workflow to be worthwhile, as I was able to make better creative decisions, much quicker. Furthermore, with this method, sometimes I would edit tiles in the context of a full screen mockup in Photoshop. This is how I did the edits for the bench, considering the changes I was making in the context of a full screen in play.

 

Edited by AdamCatalyst
  • Thanks 1
Link to comment
Share on other sites

11 hours ago, AdamCatalyst said:

So what I will do, is export this tileset, and rearrange it in Photoshop, to something that makes way more sense to me:

Then, when I'm done editing in Photoshop, I will take my edited tileset, scramble it back up into the order that TileM needs it. Finally, I will re-import it into TileM:

Despite the extra time it takes to de-scramble and re-scramble tiles to and from the necessary order, I found this workflow to be worthwhile, as I was able to make better creative decisions, much quicker. Furthermore, with this method, sometimes I would edit tiles in the context of a full screen mockup in Photoshop. This is how I did the edits for the bench, considering the changes I was making in the context of a full screen in play.

My workflow is very similar [especially the full screen mock ups] but I have a couple questions and/or I suppose a suggestion regarding this.

First the question: When you say "export" what do you mean by that? Only ask because my version of "export" is just to set magnification at 100% and then print screen and paste it into photoshop, cropping out what I don't need. While quick and dirty, the gamut handling between TM->PC->PS always seems a bit off. Especially when I index an image to 16 colours for the purpose of having better control over how it looks when I import them. As long as I change the colour table to match the RGB values available in the Genesis palette, it works just fine, but if there is a more 1:1 information transferring method, that would probably be worth adopting.

My question/suggestion re: tile reordering: Do you do that in Photoshop as well? I actually did that for one project until the tedium got to me. Now I just import the full image into a scrap file, [usually just a previous version of the game I'm making, sometimes just a blank file] make sure my active colour palettes match, then either rearrange the tiles in the scrap file, or just go straight to cut/pasting into the file I'm working on. [Much better than my original method of using a hidden layer with a grid of 8x8 pixel squares and alternating between wand tool, layer select and cutting and pasting.

  • Thanks 1
Link to comment
Share on other sites

Cool! I was hoping some others might chime in with their workflows.

Answer #1: "Edit > Copy To…" / "Edit > Paste From…"

I should have stated this earlier. I use TileM v0.16. I had tried some newer versions, but I couldn't find the "Edit > Copy To…" / "Edit > Paste From…" commands that I rely on. In the end I found that v0.16 had the best balance of features and stability for me personally. In any case, zero problem with gamut that way. I also use Photoshop's Indexed Colour mode with a custom colour palette when I can, like when I'm doing Player Photos. Was planning on writing a mini tutorial on that when I find time.
 

Answer #2

Yeah, I do that in Photoshop, but I use an intermediate / scrap file as well. Sometimes Photoshop's old "Offset" filter can be useful for the imposition (scrambling / descrambling), but usually I just through down some 8x8 gridlines, and use the marquee tool, copy, paste, repeat. I feel like there must be a less labour intensive method for this, but I'm not clever enough to have thought of one. In the end, I end up with the PNG from TileM, a PSD based on this that's setup to do the imposition, and a PSD to edit in.

 

p.s. I recently stumbled across pixeltao’s Genesis 512 colour palette file. Haven't made use of it myself.

 

Edited by AdamCatalyst
Typos.
  • Love 1
  • Thanks 1
Link to comment
Share on other sites

4 hours ago, AdamCatalyst said:

I should have stated this earlier. I use TileM v0.16. I had tried some newer versions, but I couldn't find the "Edit > Copy To…" / "Edit > Paste From…" commands that I rely on. In the end on I found v0.16 the best balance of features and stability for me personally. In any case, zero problem with gamut that way. I also use Photoshop's Indexed Colour mode with a custom colour palette when I can, like when I'm doing Player Photos. Was planning on writing a mini tutorial on that when I find time.

You know, I was still using v0.15a for just this reason. Downloaded v0.16, but for some reason, never got around to switching my shortcut and promptly forgot about it. The real kicker is that the "Press F5 to Go To Again" function doesn't function in 15a, if you are using it to navigate Relative that is. It just defaults back to Absolute mode and that's not helpful when you are say, putting in logos. I see that 16 fixed that... kind of annoyed at myself on that one. Although speaking of forgetting, when I was starting out, I originally would just use game screen captures to mock up certain assets and only ever used the Import function. I've since graduated to working on individual assets, [although sometimes seeing everything all together helps with design choices] but for 90% of the cases, I already have base photoshop files that I just make a copy of for say, splash and title screens or the tile overlay or team banners. Definitely going to have to try exporting for that other 10%.

4 hours ago, AdamCatalyst said:

I feel like there must be a less labour intensive method for this

To be honest, that's why I use the scrap file. I've done stuff like set up Actions for arranging player photos and a few other things, but for anything that isn't a straightforward import image and move on, I always return to the scrap file. Especially when I'm changing the trophy. Being that it's arranged in 1x4 chunks, I find it easier to just make my working file one tile wide and then paste over the sections.

5 hours ago, AdamCatalyst said:

p.s. I recently stumbled across pixeltao’s Genesis 512 colour palette file. Haven't made use of it myself.

I haven't either, but I will note that for a couple of projects where I've found myself getting very particular with the look of logos, I've Indexed them using a Local palette and then gone into the colour table to change the RGB values to something in the Genesis "Everything is in multiples of 32" range. Very time consuming this way, but I found it was the only way that I get the amount of control I want, especially when I want to fudge some anti-aliasing or make something resembling a gradient. And since old-school consoles didn't rely on dithering the way computers did, I find it the best way to get that look and the separation, when say the source is a gradient of blue between 0-0-180 and 0-0-200, I'll just expand it to 0-0-160 and 0-0-224, and dither the middle just a little bit so that 0-0-192 band in between isn't so sharp. Like I said, time consuming and slightly obsessive. Can not recommend.

  • Thanks 1
Link to comment
Share on other sites

First of all, I really love and appreciate you guys sharing your methods on this topic.  In particular, I'm a big fan of both of your ROM work and your graphics.  

Here's my quick notes on my graphic editing approaches:

  • I export any graphics from TM (v0.16) to png
  • I use MS Paint instead of Photoshop.  I don't know if there are advantages to Photoshop for bitmap editing, but Paint seems to work well.
  • Similarly to you all, I manually rearrange tiles to the full picture in Paint, and keep a reference map of the original picture.
  • I make any changes in Paint.  If I use new/custom colors, I then use @smozoma's Ditherer program to convert it to '94 colors.  I have tried other various methods, but that program saves me a lot of time and I am generally happy with the results.  Especially with the knowledge/expectations of my color limits to begin with.
  • Once satisfied, I re-cut the tiles back into the original layout and paste back in using TM.

FYI, I think TileLayer Pro is a TM alternative that has this arrangement functionality built in, but I was never good with using that program.  At the same time I rarely need to do this kind of editing as much of the graphics work I do has been rearranged already (or I rearrange in the ROM layout).

  • Love 1
  • Thanks 1
Link to comment
Share on other sites

On 10/29/2022 at 5:48 PM, kingraph said:
  • …If I use new/custom colors, I then use @smozoma's Ditherer program to convert it to '94 colors.

    […]

FYI, I think TileLayer Pro is a TM alternative that has this arrangement functionality built in, but I was never good with using that program.  At the same time I rarely need to do this kind of editing as much of the graphics work I do has been rearranged already (or I rearrange in the ROM layout).

What ditherer program is that?

Try as I might, I've not been able to figure out how to "decompress" graphics and then update the ROM accordingly. I would love to be able to wrap my head around that.

Link to comment
Share on other sites

On 10/29/2022 at 2:13 PM, von Ozbourme said:

…when I was starting out, I originally would just use game screen captures to mock up certain assets and only ever used the Import function. I've since graduated to working on individual assets, [although sometimes seeing everything all together helps with design choices] but for 90% of the cases, I already have base photoshop files that I just make a copy of for say, splash and title screens or the tile overlay or team banners. Definitely going to have to try exporting for that other 10%.

YES. I do find exporting the tiles from TileM, and then placing them over a properly scaled screen capture to be a useful compromise when I want to work with some context, without the overkill of a full mockup.

 

On Player Photos

On 10/29/2022 at 2:13 PM, von Ozbourme said:

…I've done stuff like set up Actions for arranging player photos and a few other things, but for anything that isn't a straightforward import image and move on, I always return to the scrap file.

Player photos are the only thing that I use automation for. One initial pass of automation to crop, color-grade, etc. It's never good enough, but puts all the images in the right ballpark.

From there, I go about manually tweaking the adjustment layers, a bunch at a time. And then automation to export them all, and create a contact sheet for comparison. Then I examine the contact sheet, and go back to making more manual tweaks, rinse, lather repeat. One more thing to note about the player photos. I use a simple 8-colour indexed colour palette to give me all the greys that are SMD/Genesis compliant. Here it is, in case that's a help to anyone.

8-Colour Grayscale.act

 

Colour Palettes

On 10/29/2022 at 2:13 PM, von Ozbourme said:

…I will note that for a couple of projects where I've found myself getting very particular with the look of logos, I've Indexed them using a Local palette and then gone into the colour table to change the RGB values to something in the Genesis "Everything is in multiples of 32" range. Very time consuming this way, but I found it was the only way that I get the amount of control I want, especially when I want to fudge some anti-aliasing or make something resembling a gradient.

Yeah, I find setting an indexed palette to usually be overkill, and painfully time consuming as you note. But I do all my colouring manually, just by sticking to the rule of 32s, with an eye on how many colours I have to use in my palette. I only worry about getting the colour palette distribution right in Photoshop. In TileM, I will sometimes make a final tweak to a colour value.

 

On Dithering

On 10/29/2022 at 2:13 PM, von Ozbourme said:

And since old-school consoles didn't rely on dithering the way computers did, I find it the best way to get that look and the separation, when say the source is a gradient of blue between 0-0-180 and 0-0-200, I'll just expand it to 0-0-160 and 0-0-224, and dither the middle just a little bit so that 0-0-192 band in between isn't so sharp.

Oh man, that is hard core. I usually go the other way… I dither with an algorithm, then I go in after the fact and manually repaint pixels to get it to look just right.

 

On Personal Sanity

On 10/29/2022 at 2:13 PM, von Ozbourme said:

Like I said, time consuming and slightly obsessive. Can not recommend.

That's exactly how I would describe my process.

Edited by AdamCatalyst
One more thing.
Link to comment
Share on other sites

2 hours ago, AdamCatalyst said:

What ditherer program is that?

Try as I might, I've not been able to figure out how to "decompress" graphics and then update the ROM accordingly. I would love to be able to wrap my head around that.

Here's is Smoz's program: https://forum.nhl94.com/index.php?/topic/14421-tool-genesis-image-ditherer-to-16-colours/

It takes some time if the file size is big.  In my experience, once the first set of 16 images appears, I close the program and don't wait for the rest.  The variances are too small to sort through.  It'll make sense once you try the tool once.

As far as decompressing graphics, I wrote up this piece to explain how it works in '94 and most EA Sega games I've seen: https://forum.nhl94.com/index.php?/topic/19978-how-to-decompress-graphics-in-sega-genesis/

 

  • Thanks 1
Link to comment
Share on other sites

11 hours ago, kingraph said:

Here's is Smoz's program: https://forum.nhl94.com/index.php?/topic/14421-tool-genesis-image-ditherer-to-16-colours/

It takes some time if the file size is big.  In my experience, once the first set of 16 images appears, I close the program and don't wait for the rest.  The variances are too small to sort through.  It'll make sense once you try the tool once.

As far as decompressing graphics, I wrote up this piece to explain how it works in '94 and most EA Sega games I've seen: https://forum.nhl94.com/index.php?/topic/19978-how-to-decompress-graphics-in-sega-genesis/

 

Thanks for this! Will try out the ditherer tonight, as I'm trying to wrap up my Splash image.

Thanks for sharing your post as well. I did actually work through your post awhile back, but I was never able to get it to work for anything that I was trying to target. In particular, I recall trying to decompress the linesman & referees, and their various gestures. I suspect that those might have been too complex for me to start with. Will try again on something more basic when I find time. 

Link to comment
Share on other sites

Something I wanted to work on this year, that I ended up spending zero time on after christmas break.. was a completely reworked Ditherer that uses all the cores of the CPU to work faster, and lets you select certain settings (such as forcing particular colours, choosing which algorithm...)

Link to comment
Share on other sites

11 hours ago, AdamCatalyst said:

Thanks for this! Will try out the ditherer tonight, as I'm trying to wrap up my Splash image.

Thanks for sharing your post as well. I did actually work through your post awhile back, but I was never able to get it to work for anything that I was trying to target. In particular, I recall trying to decompress the linesman & referees, and their various gestures. I suspect that those might have been too complex for me to start with. Will try again on something more basic when I find time. 

Yeah, sprites/animations are a different animal.  My tutorial was on static images like splash pages/logos. 

The animations will be trickier.  I remember doing that for the "spinning cup" in '95 on the playoff bracket page.  Thought it's been so long I don't recall.  I'll have to check my notes and happy to share any relevant information.  

 

Link to comment
Share on other sites

14 hours ago, AdamCatalyst said:

Thanks for this! Will try out the ditherer tonight, as I'm trying to wrap up my Splash image.

Thanks for sharing your post as well. I did actually work through your post awhile back, but I was never able to get it to work for anything that I was trying to target. In particular, I recall trying to decompress the linesman & referees, and their various gestures. I suspect that those might have been too complex for me to start with. Will try again on something more basic when I find time. 

If I may offer some more info I've acquired on the refs, I was chatting with Jkline3 about them and how every ref/linesman image other than the faceoff popup seems to have some really crazy compression going on there. To the point where the animation, arrangement and image data even looks like it's all smashed into a single tile. Even simple recolouring [him, dasherboards; me, zebra suit] seems to be verboten and guarantees a glitch. Luckily I got to do some of that giant-shoulder standing thing and didn't waste as much time on it as I could have. Definitely more big-brain stuff than I can pull off, but if one of the real big-brains around here is able to dissect those guys, that would be awesome. I just suspect that it was not a big enough priority to look into thus far.

Annoyingly, this seems to also be the reason why there doesn't appear to be any graphics tiles for the EA Sports "watermarks" in the background of all of the stats/pregame screens. As someone who likes to rebrand the games, necessitating a different watermark, it would be nice to, likely, redirect these backgrounds to a different section of the rom where one could put any watermark one pleases. So far the only solution I've found is just setting all of the background colours to the same shade.

Edited by von Ozbourme
  • Thanks 1
  • Like 1
Link to comment
Share on other sites

Glad to see I'm not alone in the de-scramble/re-scramble camp. Would have been devastated to learn there was an easier way!

When editing player sprites using the 1x4 block size was sufficient for many of the poses. Goalies would have been nearly impossible (and were still extremely time-consuming) without scrambling.

  • Like 1
Link to comment
Share on other sites

 

On 11/1/2022 at 12:14 AM, von Ozbourme said:

…Even simple recolouring [him, dasherboards; me, zebra suit] seems to be verboten and guarantees a glitch. Luckily I got to do some of that giant-shoulder standing thing and didn't waste as much time on it as I could have. Definitely more big-brain stuff than I can pull off, but if one of the real big-brains around here is able to dissect those guys, that would be awesome. I just suspect that it was not a big enough priority to look into thus far.

Yeah, I agree.

I was able to do some minor edits to them in their compressed state. But as you say, some pixels absolutely positively cannot be changed without causing graphical glitches. However, many, if not most of the opaque pixels can be changed in their state. But as it's all "compressed," many changes will impact other tiles, and so you have to think about changes very carefully. And then of course, it is like playing a game of mine sweeper, avoiding the unmarked pixels that will cause a glitch. It can be done, but it is a mind-#&$@ trying to get there. In the end I only made extremely minor edits to these sprites, before I had to cut myself off.

Heck, we don't even need to dissect that stuff. We could re-create them from scratch somewhere else in the ROM quickly enough. But I would need someone else to do the pointers, as this has proven to be beyond me to date.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Who's Online   0 Members, 0 Anonymous, 15 Guests (See full list)

    • There are no registered users currently online
×
×
  • Create New...