Jump to content
IGNORED

Graph2fnt


emkay

Recommended Posts

Is there a larger version of the original picture somewhere? The picture in post #999 above is not large enough to bother with repositioning people. They all fit into a 320X240 crop already.

 

As I researched your question, I found that Getty Images claims rights to that image. They offer a 3072 x 2048 version, but the cost seems insane: $575. They have more restrictive terms (limited audience size, limited periods of time, fixed physical installations) at lower prices. Personal use (non-commercial) is allowed via their user agreement, which is what I am doing, but they'll probably frown on the image I placed in the forum, so it has been cropped and blurred. Short of purchasing a high resolution copy, that was the best available resolution that I was able to find online.

 

I appreciate that you help me flag a potential intellectual property issue, but I wish that I could have come up with a more favorable response to your question.

Link to comment
Share on other sites

For those who wish to have a go - there is an image quickly found via Google - that is of slightly higher resolution, than what was originally posted.

Had a quick go - and it's really having the four heads placed horizontally - does not allow for a best fit configuration. Had it been only 2 or 3 heads - it's possible to do an easy recomposite. Also Jack's head tilted - makes it even worse - so that needs to be corrected also - for an end result to look nice.

 

It's looks like Getty's Images are priced for commercial users - say for printing/publication purposes. For us hobbyists - it's out of our price range.

 

Harvey

Link to comment
Share on other sites

Also, your Tramiels ... in PCIN mode:

attachicon.giftramiels-pcin.png attachicon.giftrams-pcin.obx attachicon.giftrams-pcin.asm

 

I used a different source G2F than your render ... and I also converted the picture to Graphics 9 colors using GIMP

attachicon.giftramiels-g10.PNG - Graphics 10 g2f

attachicon.giftramiels-g12.PNG - Graphics 12 g2f

There are optimizations that could still be done, for example, where the PF0-PF3 and BAK colors intersect in the picture, checkerboard dithering can be done to improve the flicker.

 

Synthpopalooza!

 

I hope you'll forgive how long it has taken me to respond. It wasn't that your response was uninteresting or unhelpful. Quite the opposite, actually! I recognized the value of what you've provided, and I really wanted to do a good job of interpreting and implementing it before I came to you for more cool pixel secrets. icon_smile.gif

 

Here shortly, I'm going to borrow your code and finish up my first experiment which combines Graphics 9 with Antic 4. I'm also going to see if it does a faster job (versus my modified G2F "animation" code) of flipping between two Antic 4 screens. Back to the mixed modes, I got most of the way in adapting G2F's boilerplate assembly routine to swap between fields with Graphics 9 and Antic 4, but I stopped just before I dived into why the 5th color didn't seem to be making it into the Antic 4 field. (Don't give this problem any thought, just letting you know where I am with this.)

 

In another experiment, I took your instructions for blending two Antic 4 screens into 9 colors. My workflow was to take an image and use Photoshop to reduce and dither it down to 9 luminances (and with all the individual color palette entries pre-arranged to go from dark to light). I save myself two work-in-progress copies (Field A and Field B) of the resulting image, and then I apply a conversion table (based on your numbers) that reduced the 9 entries down to 5 for each field. (One column for Field A, and one Column for Field B, the result being that their blended combinations re-created the original 9 colors). Actually, here's my table:

 

LUMINANCE

PALETTE ENTRY 1-9 FIELD A FIELD B

(DARK TO LIGHT) INTENSITY INTENSITY

----------------- --------- ---------

1 0 0

2 0 2

3 2 2

4 2 6

5 6 6

6 10 6

7 10 10

8 10 14

9 14 14

 

So I have two translations. 9 color to Field A 5 color, and then 9 color to Field B 5 color. Because these are fixed substitutions, I'm able to save my pre-programmed color palette in Photoshop, and load it back in any time I want to do the conversion. So I have a process that I can repeat over and over very quickly. The only thought I you mentioned doing a checkerboard and reversing it every other set of fields, so I'm not sure how I'd go about that.

 

So I have an awesome picture of a Maserati Boomerang, and this conversion process worked very well, except for one thing. I created the image for a Wide playfield setting, so the available CPU cycles are pretty limited. The modifications that I did to the G2F "animation" code to adopt it to display a new image on every field just couldn't run fast enough, so I'd get a flip every 3 or 4 fields. Not nearly fast enough. I'm wanting to pull in your code to swap between two Antic 4 images every field and create that nice blending illusion. I'm hoping that your code ends up fixing this one. If not, I'll have to modify or write something from scratch.

 

WORK-IN-PROGRESS TITLE: "Maserati Boomerang Interlace Very Flawed"

post-18231-0-88657900-1521608071.png

Maserati Boomerang Interlace Very Flawed.xex

(The image also needs two color conflicts resolved in the driver's lower car door window.)

Once this base image is fixed, I could apply more enhancements to improve the image.

 

You might have noticed that I've stopped saying Frame and started saying Field. Hopefully I've got the right term here. If I've got it wrong, I hope someone will set me straight.

 

Thanks again for all the good stuff,

jmccorm

  • Like 4
Link to comment
Share on other sites

 

WORK-IN-PROGRESS TITLE: "Maserati Boomerang Interlace Very Flawed"

attachicon.gifMaserati Boomerang Interlace Very Flawed.png

attachicon.gifMaserati Boomerang Interlace Very Flawed.xex

(The image also needs two color conflicts resolved in the driver's lower car door window.)

Once this base image is fixed, I could apply more enhancements to improve the image.

 

...beyond that, I now see that the area around the tires needs a consistent intensity selection for those large dark spaces.

 

The download count suggests that a few people have downloaded (and I assume ran) the executable. The problem with the binary is that it isn't switching between the two images fast enough, so depending on what or how you're viewing it: it may look like details or missing, or it may quickly flicker between the two images (but not fast enough), or it may randomly switch between two version of the same image, or some combination of all these things.

 

If you're using Altirra and the left/right edges are cut off, go to View -> Overscan Mode and select Extended. (You'll be viewing a width greater than a CRT would have done, so you get to see some dynamic video garbage on the right hand side.)

 

From there, if you're using Altirra, and you want to see the intended image with a good mix of grayscale and resolution, go to System -> Video and turn on Frame Blending. IMHO, Altirra has been a little too forgiving of inconsistent or slightly extended delays in between fields, but it does a great job of showing what this flawed version of the 9-color image was intended to look like. (The very nice image of the Maserati Boomerang, above, was actually a screenshot that was pulled from Altirra!) This is an observation more than a complaint, because I've always benefited when Altirra has done this.

 

So the image that went with the bianry wasn't so much of a hypothetical best-case image or target image. That should be what an 8-bit is actually capable of displaying on a CRT when two G2F wide-screen Antic 4 images are properly blended together. I just need to make more alterations to the G2F animation viewer, or to use Synthpopalooza's code, or to roll my own solution to get it there. The current version is just too slow in switching when you have a wide playfield Antic 4 image (along with character set changes) leaving just a fraction of the CPU for application code.

Link to comment
Share on other sites

Tebe,

 

FEATURE REQUEST IN IMAGE -> CONVERT TO PMG

 

It would be nice if there was an option to sample at double-width (or an option to select quad-width) . It looks at two screen pixels and converts to one PMG pixel. If either screen pixel is set, then the PMG pixel is set. Then the INPUT could match the OUTPUT that I select in the Size option.

 

REASON:

When my final image uses Priority Mode 4, the PMG is masked by the artwork in PF0-PF3.

In my case, the PMG is used for pixels below the bitmap and above the background.

If I am using the PMG as 6th color which is masked off by the rest of the image, I want to convert at 2X size, save at 2X, import at 2X.

The ability to select sample width in Image -> Convert to PMG will help me do more.

Saving at 2X via thte Size option is understood.

 

WHY THE OBVIOUS ALTERNATIVE DOESN'T WORK:

If I import the image with HResize (or I horizontally resize 50% before importing), when I do Image -> Convert to PMG, I can cover the whole width of what I want. But then I can be missing a lot of the pixels in the final PMG. I would rather have too many PMG pixels (because PF0-PF3 will mask most of them) than too few (and have to go back and repaint a lot of PMG pixels into the image).

 

Thanks,

jmccorm

Link to comment
Share on other sites

One way of improving the speed is to see if you can come up with an algorithm to optimise characters and remove duplicates. I have been trying to do this awhile now, but doing this would reduce the number of fonts needed and the cpu time needed to flip the display.

 

Perhaps a silly question for both of us: How much have you gotten into G2F?

(Hey, you're being gracious to plug in your expertise here, so I totally understand that G2F isn't the center of your toolset.)

The option that Tebe has for this is Options -> Optymizing. [i can't tell if he was being awesome, or if this was just a typo.]

 

In the images below, look at the numbers on the left (representing groups of character sets).

 

BEFORE CHARACTER SET OPTIMIZATION:

post-18231-0-79848400-1521739087_thumb.png

 

AFTER CHARACTER SET OPTIMIZATION (watch the numbers on the left side):

post-18231-0-85023200-1521739089_thumb.png

 

Forgive the odd aspect ratio of the moon.

I usually correct the aspect ratio before I bring it into G2F so that it comes out good in NTSC.

 

So, two cool things to point out. We went from 10 character sets down to 6. That's some efficiency. But one more thing, and let's make this easy to talk about by skipping down to the last three character rows of the image. Do you see what is going on there? It goes back to character set 0, character set 1, and finally character set 4. WOW!

 

So, I checked to make sure that it wasn't vertically flipping the character set, which is an option that G2F lets you manage. (Answer: No.) Then I thought that it might have been reusing at least some of the actual characters. It is reusing the blank space. Perhaps in other circumstances it might do more? (Answer: Yes.) Most of what you see is it going back and finding a use for some of the unused/unassigned characters towards the end of our previously used character sets (before allocating yet another character set). Because these last few lines have less unique data, they require less unique characters to fill, so it could squeeze those into existing character sets that weren't fully utilized.

 

Smart, no? Here's a look at the raw screen data (characters without fonts):

 

RAW CHARACTERS, NO FONTS, AFTER OPTIMIZATION:

post-18231-0-77648700-1521739925_thumb.png

 

You'll see some reuse. Of course, the entire background is represented by the (inverse) blank [space] character, and that's constantly reused (and consistent between character sets). I wonder if Tebe actually forces it to happen that way (or it is just works out that way), because it is really nice to work with.

 

Harder to spot might be the reused characters in the graphically white area inside of the moon. There are some other tricky areas but you just have to look for characters that are out-of-order, so to just pick an example, the second "N" on character set 01. If first appears (in alphabetical order) on the second row of character set 01 and then it appears again on the third row of the character set, after the inverse Z.

 

It looks like Tebe has some really nice optimization code going on in G2F.

 

Another point: You can rely on full frame seen changes and change your font every 2 character lines. It doesn't require a character DLI on each line unlike the MIN mode Antic 4 / gtia 9 code.

 

...and with optimization like Tebe is doing, you can do dynamic DLIs to change fonts at irregular intervals to take advantage of font optimizations (with the fonts otherwise being fairly memory hungry).

 

So much fun stuff to get into!

 

EDIT: Oh! I almost forgot, in case someone wanted to view those moon pictures on the 8-bit. I have this image "moon2" in orange and blue (well, NTSC colors, anyhow) and then a slightly different picture "moon3" in yellow. Simple 5 color, standard width, no massively cool Atari tricks this time. Enjoy.

 

ATARI 8-BIT BINARIES:

moon2-240o.xex Blood Moon!

moon2-240b.xex Blue Moon!

moon3-240y.xex Yellow Alternate Moon!

Edited by jmccorm
  • Like 1
Link to comment
Share on other sites

I have played around with the optimization. What I really want is a means of optimization without having to change the character map. That is, both font screens map to the same optimized character map. In that way, I can then convert the screen to .ICE font files and load the super IRG font into my ICE editor to do touch ups.

 

Graph2font has been an integral part of all my graphic experiments.

  • Like 1
Link to comment
Share on other sites

???

Image -> Convert to PMG (Shift + B)

 

Tebe:

 

I'll try to use pictures to help communicate.

This is a hypothetical example. It is not perfect, but it will illustrate.

 

I want to convert a wide area to PMG. The destination image will be PRIORITY MODE 4. PMG will be used as "6th color" layer below part of the image. (The PMG will exist in front of BAK, but will be masked by PF0-PF3.)

 

WANT TO PRODUCE A GOOD 2X PMG THAT WILL FILL THE RED PIXELS (AND OVERFILL IF IT NEEDS TO):

post-18231-0-43571100-1521816067.png

 

DESTINATION IMAGE WHICH USES PF0-PF3 AS A MASK FOR A 2X PMG:

post-18231-0-00333900-1521814966.png

 

BUT I CAN'T DIRECTLY CREATE THE PMG THAT I WANT SO I HAVE TO RESIZE THE SOURCE IMAGE:

post-18231-0-83942200-1521816521_thumb.png

 

TOO MANY HOLES CREATED WHEN IMPORTING A PMG CREATED FROM HALF WIDTH IMAGE:

post-18231-0-87433700-1521815737_thumb.png

 

(output) Size -> PMG x 2 is perfect.

I would like an Image -> Convert to PMG option that will work with a 2x larger bitmap area as input.

User should select between overfill and underfill when converting a pair of pixels where one is on, one is off.

 

So...

 

INPUT PIXELS ARE XX = OUTPUT PMG = X

INPUT PIXELS ARE __ = OUTPUT PMG = _

INPUT PIXELS ARE _X = USER SELECTS (I WOULD WANT IT TO BE X)

INPUT PIXELS ARE X_ = USER SELECTS (I WOULD WANT IT TO BE X)

 

HOW G2F CURRENTLY CONVERTS (READING 1x, OUTPUT 1x, 2x, 4x):

post-18231-0-49057400-1521813575_thumb.png

 

You know, I could probably get this to work in this particular example by regularly shifting over the starting point of the PMGs with each line, and manually reworking a 4x PMG where I can't. This is an imperfect hypothetical example. Acknowledging that, let's go on...

 

WANT (USER SELECTS READING 2x, OUTPUT 2x AND UNDERFILL WHEN AVERAGING MIXED PIXELS):

post-18231-0-10340700-1521813652_thumb.png

 

WOULD USE HERE (USER SELECTS READING 2x, OUTPUT 2x AND OVERFILL WHEN AVERAGING MIXED PIXELS):

post-18231-0-21026200-1521813680_thumb.png

 

Because the target area has almost no BAK pixels in the middle of the image, I want to import an overfilled PMG that is masked by PF0-PF3 that I can more easily work with.

 

DESIRED FINAL PRODUCT:

post-18231-0-76341600-1521814948.png

 

...so without getting caught up on the details of this particular example:

Is this a decent feature request, or is there a better way to create a 2x PMG from a 2x wide pixel selection that overfills instead of underfills?

 

I was hoping to create something visual that would better communicate what I'm trying to do to Tebe. icon_smile.gif

I acknowledge that I ending up making this too complex of a production. <sigh>

 

With apologies to Nolan Bushnell for mangling his otherwise fine portrait.

Edited by jmccorm
Link to comment
Share on other sites

Synthpopalooza --

 

Trying to figure out how to communicate your request.

 

You have two images.

You want rows with character sets based on those two images.

You want that nice G2F optimization.

 

You might have an image in the first Work Area and an image in the second Work Area.

When the character set is optimized, it looks at both Work Areas but creates character sets which are shared by both.

 

EDIT: Or better yet...

 

Wants Work Area 1 and Work Area 2 to share the same optimized character set.

Even if it requires more frequent character set changes.

Edited by jmccorm
Link to comment
Share on other sites

Stargate Atlantis Daedalus

 

post-18231-0-56279100-1521928630.png

daedalus.xex

 

Original Image was rotated 12 degrees to the right to try to best fill the Atari's visible frame (it probably ends up being too tight unless you've got some additional overscan). I decided not to brighten the image because, at least at full size, it looked CGI or cartoonish that way.

 

I'd put this one as a work in progress. It could use a starfield (or a nebula) and perhaps some colored windows or glow from the engines.

 

Image source: The Stargate Invasion Team

Link to comment
Share on other sites

  • 2 years later...
7 minutes ago, Irgendwer said:

After more than two years, I think it's time to revive this thread.

The RastaConverter images are really nice, but hand drawn things have also some appeal.

 

No color changes, no PMGs:

 

Oceans11.png

Oceans11.xex 8.92 kB · 3 downloads

I totally prefer hand drawn things over converted images. And the image you´ve posted shows why. This is just beautiful. :)

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

To a special degree I really like the possibilities that Rastaconverter offers. 

But only such "handdrawn" G2F images are "something real" , as they look great in thumbnail size and full screen.

Particular the odd method to use a "self made palette" and to show the calculated images using Rastaconverter, makes it the more reasonable to create "real images" .

But what could one do to get TeBe removing the editing bugs that turn image creation sometimes into a nightmare?

 

 

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.
Note: Your post will require moderator approval before it will be visible.

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.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...