Having been inspired by a youtube vid which stated that arguably the best 8bit version of the game had by far the worst loading screen, I did this over the last couple of days, in payback for using the amstrad GnG loading screen as the basis for the new c64 GnG arcade loader.
if you want to attach it to a tape/disk image feel free.
Steve
[attachimg=1]
Great picture! 8)
By the way, the hanging gun strap look strange...
Beautifully done. I'm not even that into the game and I think this looks great. Loving the metallic effect on the elite logo too. :)
(http://www.cpcwiki.eu/forum/resource://jid1-xgtdawe3yyuebq-at-jetpack/data/download_off.png)
This is actually a great job! I remember the original screen as particularly horrible! we should exchange it for this one in the DSK :D
Quote from: STE86 on 22:11, 27 August 15
Having been inspired by a youtube vid which stated that arguably the best 8bit version of the game had by far the worst loading screen, I did this over the last couple of days, in payback for using the amstrad GnG loading screen as the basis for the new c64 GnG arcade loader.
if you want to attach it to a tape/disk image feel free.
Steve
Beautiful !! we are waiting for the game with this in a dsk ;D with french fries and a coke ..
Nice! I've just been reading up on another Ikari screen by @darkgate here (http://www.cpcwiki.eu/forum/applications/victory-road-new-screen-beta/msg107707/#msg107707) in the last couple of days. Both great efforts as I know how long these artworks can take.
I really like the little additions of this one like the bunker in behind the bushes and metallic effect on the words.
This is beauuuutiful!
Well, as someone who has converted his fair share of STE's C64 screens to the CPC palette (for which I am eternally apologetic due to a complete lack of permission... ahem!), all I would do is change the CYAN (#10) to WHITE (#13) and the yellow edges of the word "WARRIORS" to the new WHITE (#13) colour.
Other than those personal touches (from someone with NO graphic or artistic talent at all), this screen just proves that the CPC screen layout and palette is FAR, FAR superior to the C64. (Except in regards to GREY shades!) Once again, an amazing pixellated masterpiece from the master of pixels! 10/10
EDIT: In all seriousness, though, with the GHOST AND GOBLINS and COMMANDO reworks, these new arcade title screens are getting the proper pixellation they deserve!
:o 8) Great work, please can you explain me the program wich you have used for made it?
Compliments!!!
Ah please made a version .cdt and .dsk with this screen, if possible someone made a version .cdt with standard loading block with speed write 1 and 0 ;D .
Victory Road screen and still incomplete hope of made a good work, also if don't think of to arrive to this quality. ;)
the image was created in photoshop CS2 with all the antialiasing turned off.
using 160x200 res with 2:1 pixel aspect ratio turned on. and an amstrad full palette loaded.
I do c64 art in the same manner using a different palette but in the c64 case I have to use some photoshop scripting software to check for attribute limitations.
Steve
:( PHOTOHOP CS2 i have only photoshop 6 my computer is very old, i use many photoshop how you made for made the same palette of amstrad? work with photoshop can help me for a fast and more accurate work.
Thank you Steve.
Quote from: DARKGATE on 07:48, 29 August 15
:( PHOTOHOP CS2 i have only photoshop 6 my computer is very old, i use many photoshop how you made for made the same palette of amstrad? work with photoshop can help me for a fast and more accurate work.
Thank you Steve.
You don't need the latest graphics software for CPC pixelling, silly. I use Paint Shop Pro 7 most of the time which is about 15 years old (but thankfully still works without issue on modern Windows) because it does all I want out of a graphics program and it's fast and doesn't use much memory (versions after that got a bit too Photoshoppy for my tastes).
(http://www.cpcwiki.eu/forum/resource://jid1-xgtdawe3yyuebq-at-jetpack/data/download_off.png)
I do use GIMP with custom aspect ratio.
Here's a loading screen I did for a Dragon 32 game:
One of the top 5 cpc games for me.
This artwork is awesome.
Photoshop CS2 isnt the latest version by any means, its 10 years old and can be downloaded legally for FREE here (make a note of the serial number in the publisher details)
Adobe Photoshop CS2 Download - TechSpot (http://www.techspot.com/downloads/3689-adobe-photoshop-cs2.html)
The PC version will run on all windows quite happily AFAIK I have used it on XP and 7. the Mac version only runs on older OS's
As the post above states Gimp will also do 2:1 aspect ratio, layers and is also free.
Pretty much any app that can do 2:1 fat pixel mode, can import palettes and has "layers" is perfect for 8 bit as long as you can turn off all the modern "help" it offers
I opt for photoshop because I am familiar with it as I use it for the "day job" :)
Love the Buzzard Bait screen. remember the game well. I had a dragon for 2 years '83-85 before defecting to the c64. A good mate of mine used to program Dragon games when I first met him. Dave Gibbons. We went on to do ST and Amiga stuff together.
Not the right thread this , so if anyone has a quick answer so not to distort the thread too much. In relation to the Dragon and it being very similar to the CoCo , for what reason is it not compatible with the similar hardware? It seems like it would have made better sense to be compatible? Or was it part of the condition between the two companies?
;D victory road screen is near to complete, look the thread, thank you.
victory road new screen beta (http://www.cpcwiki.eu/forum/applications/victory-road-new-screen-beta/msg108089/#new)
Excellent job.
It looks fantastic. :)
Thank you!
Quote from: Puresox on 14:18, 29 August 15
Not the right thread this , so if anyone has a quick answer so not to distort the thread too much. In relation to the Dragon and it being very similar to the CoCo , for what reason is it not compatible with the similar hardware? It seems like it would have made better sense to be compatible? Or was it part of the condition between the two companies?
it was too a greater degree compatible with the coco 1, requiring only minor tweaks to get sw running between the two. 90% of the best dragon games were licensed coco ones. problem with the coco compatibility is that there were 3 versions of it :)
Some hardware I know ran because I remember plugging Tandy coco carts (some invaders game and "polaris") into my dragon (the foolishness of youth :) ) and they both worked and didnt blow the machine up...
Quote from: STE86 on 22:11, 27 August 15
Having been inspired by a youtube vid which stated that arguably the best 8bit version of the game had by far the worst loading screen, I did this over the last couple of days, in payback for using the amstrad GnG loading screen as the basis for the new c64 GnG arcade loader.
if you want to attach it to a tape/disk image feel free.
Steve
[attachimg=1]
Made a DSK of it...
Hope you like it!
Thank you DEVILMARKUS, when you can please made a .cdt version (Classical standard loader) speed write 1 and 0 :D i love classical loader.
Here you go...
¡¡Turbo!!
Loading this right now. Oh, the sweet screeching sounds...
I have made a 2 hours code to convert a PNG of 160x200 resolution into CPC hex data (16 KBytes) and the colors of the palette for INK.
I have paste the screen hex data into WinAPE data to a fast transfer.
It could be useful next time.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace PNG2CPC
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private byte getNearCPCOneColor(byte one)
{
// En el CPC original hay 3 niveles de luminosidad por cada canal de color.
// Canal apagado, canal a liminosidad intermedia, y canal a liminosidad total.
// 3 canales (RGB=Red Green Blue), en tres posiciones diferentes = 3^3= 27 colores
// Los niveles son: 0, 0x80 y 0xFF. Yo tomo como referencia de proximidad los intermedios
// <=0x40 = 0, >0x40-<0xC0 = 0x80 >=0xC0 = 0xFF
if (one <= 0x40) return 0;
if (one < 0xC0) return 0x80;
return 0xFF;
}
private Color getNearCPCColor(Color rgb)
{
byte r = getNearCPCOneColor(rgb.R);
byte g = getNearCPCOneColor(rgb.G);
byte b = getNearCPCOneColor(rgb.B);
return Color.FromArgb(0xff, r, g, b);
}
byte[] bufferScreen = null;
byte[] byteCpcPallete = new byte[16];
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "PNG Files|*.png";
if (ofd.ShowDialog() != DialogResult.OK) return;
Bitmap b = new Bitmap(ofd.FileName);
List<Color> cpcColorImg = new List<Color>();
for (int w = 0; w < b.Width; w++)
{
for (int h = 0; h < b.Height; h++)
{
Color c = b.GetPixel(w, h);
Color cpcColor = getNearCPCColor(c);
if (!cpcColorImg.Contains(cpcColor))
{
cpcColorImg.Add(cpcColor);
}
}
}
if (cpcColorImg.Count > 16)
{
MessageBox.Show("The image has " + cpcColorImg.Count.ToString() + " colors. It can not be converted.");
return;
}
cpcColorImg.Sort(delegate(Color p1, Color p2)
{
if (p1.GetBrightness() < p2.GetBrightness()) return -1;
if (p1.GetBrightness() > p2.GetBrightness()) return 1;
return 0;
}
);
//Como excepción, quieron que el PEN 1 tenga un color con mucho brillo.
int posMax = cpcColorImg.Count - 1;
Color cMax = cpcColorImg[posMax];
Color c1 = cpcColorImg[1];
cpcColorImg[1]=cMax;
cpcColorImg[posMax] = c1;
Dictionary<int, byte> cpcPallete = new Dictionary<int, byte>();
Dictionary<Color, int> colorToPen = new Dictionary<Color, int>();
cpcColorImg.ForEach(delegate(Color c)
{
int pen = cpcPallete.Count;
byte cpcColorPallete = getCpcColorPallete(c);
colorToPen.Add(c, pen);
cpcPallete.Add(pen, cpcColorPallete);
byteCpcPallete[pen] = cpcColorPallete;
});
// Ahora toca pasar de gráfico PNG a bytes para pantalla CPC
// Recorremos 8 las bandas del CPC, para alinearlas a memoria
// Como modo 0, leemos de 2 en 2 pixels, y lo convertimos a un byte
int nlineas = b.Height >> 3;
int columns = b.Width >> 1;
bufferScreen=new byte[0x4000];
int bufferPos = 0;
for (int pas = 0; pas < 8; pas++)
{
bufferPos = pas * 0x800;
for (int linea = 0; linea < nlineas; linea++)
{
for (int column=0; column < columns; column++)
{
int lineaReal = linea * 8 + pas;
int columnPixe = column * 2;
Color nearColor1 = getNearCPCColor(b.GetPixel(columnPixe, lineaReal));
Color nearColor2 = getNearCPCColor(b.GetPixel(columnPixe+1, lineaReal));
int penPixel1 = colorToPen[nearColor1];
int penPixel2 = colorToPen[nearColor2];
byte byteMode0 = (byte)(
getBitPerPower(penPixel1, 0, 7) ^
getBitPerPower(penPixel2, 0, 6) ^
getBitPerPower(penPixel1, 2, 5) ^
getBitPerPower(penPixel2, 2, 4) ^
getBitPerPower(penPixel1, 1, 3) ^
getBitPerPower(penPixel2, 1, 2) ^
getBitPerPower(penPixel1, 3, 1) ^
getBitPerPower(penPixel2, 3, 0));
bufferScreen[bufferPos++] = byteMode0;
}
}
}
}
private byte getBitPerPower(int penPixel2, byte bitOrig, byte bitDest)
{
bool pixelOn = (penPixel2 & (1 << bitOrig)) != 0;
return (byte)(pixelOn ? 1 << bitDest : 0);
}
private byte getCpcOneColorPalleteSub(byte c)
{
byte c2 = getNearCPCOneColor(c);
if (c2 == 0) return 0;
if (c2 == 0x80) return 1;
return 2;
}
private byte getCpcColorPallete(Color c)
{
byte r = getCpcOneColorPalleteSub(c.R);
byte g = getCpcOneColorPalleteSub(c.G);
byte b = getCpcOneColorPalleteSub(c.B);
return (byte)(b + r * 3 + g * 9);
}
private int getIntColor(Color cpc)
{
int intColor = cpc.R * 0x10000 + cpc.G * 0x100 + cpc.B;
return intColor;
}
private void button3_Click(object sender, EventArgs e)
{
if (bufferScreen == null)
{
MessageBox.Show("The screen has not been readed yet");
return;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bufferScreen.Length; i++)
{
if (i > 0) sb.Append(' ');
sb.Append(bufferScreen[i].ToString("X2"));
}
Clipboard.SetText(sb.ToString());
MessageBox.Show("The hex data of the screen has been copied into clipboard");
}
private void button2_Click(object sender, EventArgs e)
{
if (bufferScreen == null)
{
MessageBox.Show("The screen has not been readed yet");
return;
}
StringBuilder sb = new StringBuilder();
sb.Append("DB ");
for (int i = 0; i < byteCpcPallete.Length; i++)
{
if (i > 0) sb.Append(',');
sb.Append(byteCpcPallete[i].ToString());
}
Clipboard.SetText(sb.ToString());
MessageBox.Show("Assembler of the palette copy to clipboard");
}
}
}
I simply transferred the PNG using JavaCPC Paint :-* 8)
Quote from: Devilmarkus on 19:14, 29 August 15
I simply transferred the PNG using JavaCPC Paint :-* 8)
I didn't know about this!
I couldn't compete with this
JavaCPC Paint image processing demonstration - YouTube (https://www.youtube.com/watch?v=9I1fdpej2SM)
Well, my Routine to convert PNG/JPG etc... to CPC is not very different to yours... ;)
(The basics)
8)
Quote from: STE86 on 22:11, 27 August 15
Having been inspired by a youtube vid which stated that arguably the best 8bit version of the game had by far the worst loading screen, I did this over the last couple of days, in payback for using the amstrad GnG loading screen as the basis for the new c64 GnG arcade loader.
if you want to attach it to a tape/disk image feel free.
Steve
[attachimg=1]
Fantastic Steve. Are you the STE who made a lot of pictures for elite's games?
Why don't you do fullscreen pictures?
no That would be Steve Pickford, amstrad and speccy artist.
you can spot which is his his art because he does STE with a central large T and gaps in the other letters so if you look at it, it could be read as JTC. see the amstrad ghosts and goblins loader.
I am more usually found doing c64 art (since 1986) so usually you will see my sig as STE'86