Author Topic: Ikari Warriors loading screen  (Read 4479 times)

0 Members and 1 Guest are viewing this topic.

Offline STE86

  • CPC664
  • ***
  • Posts: 79
  • Country: gb
  • Liked: 143
Ikari Warriors loading screen
« on: 00:11, 28 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]

Offline TotO

  • 6128 Plus
  • ******
  • Posts: 2.964
  • Country: fr
    • ?area=showdonations;u=4
    • Cent Pour Cent [dot net]
  • Liked: 2080
Re: Ikari Warriors loading screen
« Reply #1 on: 00:21, 28 August 15 »
Great picture!  8)
By the way, the hanging gun strap look strange...
Unregistered from CPCwiki forum.

Offline Carnivius

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.383
  • Country: gb
  • Mayhem Attack Squad
    • index.php?action=treasury
  • Liked: 936
Re: Ikari Warriors loading screen
« Reply #2 on: 00:31, 28 August 15 »
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.  :)
Favorite CPC games: SwitchBlade, Stryker in the Crypts of Trogan, Turrican II, UN Squadron, Oh Mummy

Offline ||C|-|E||

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 1.751
  • Country: gb
    • index.php?action=treasury
    • Mundo CPC
  • Liked: 977
Re: Ikari Warriors loading screen
« Reply #3 on: 01:19, 28 August 15 »
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

Offline Guy0me

  • CPC664
  • ***
  • Posts: 144
  • Country: fr
  • Liked: 51
Re: Ikari Warriors loading screen
« Reply #4 on: 01:39, 28 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 ..

Offline Morri

  • CPC6128
  • ****
  • Posts: 283
  • Country: nz
  • Liked: 234
Re: Ikari Warriors loading screen
« Reply #5 on: 01:50, 28 August 15 »
Nice! I've just been reading up on another Ikari screen by @darkgate here 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.
Keeping it Kiwi since 1977

Offline Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 14.517
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 2677
Re: Ikari Warriors loading screen
« Reply #6 on: 20:45, 28 August 15 »
This is beauuuutiful!

Offline SuTeKH/Epyteor

  • 6128 Plus
  • ******
  • Posts: 1.247
  • Country: 00
  • Perma-ban = PERMANENANT BAN! No? Obviously not!
    • PERMANENANT BAN DOES NOT MEAN PERMENANT BAN!
  • Liked: 1128
Re: Ikari Warriors loading screen
« Reply #7 on: 21:10, 28 August 15 »
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!
« Last Edit: 21:20, 28 August 15 by SuTeKH/Epyteor »
PERMANENANT BAN DOES NOT MEAN PERMENANT BAN!

Offline DARKGATE

  • CPC6128
  • ****
  • Posts: 156
  • Country: it
  • Liked: 54
Re: Ikari Warriors loading screen
« Reply #8 on: 22:13, 28 August 15 »
 :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. ;)
« Last Edit: 22:18, 28 August 15 by DARKGATE »
Do not underestimate the power of AMSTRAD CPC.

Offline STE86

  • CPC664
  • ***
  • Posts: 79
  • Country: gb
  • Liked: 143
Re: Ikari Warriors loading screen
« Reply #9 on: 05:19, 29 August 15 »
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

Offline DARKGATE

  • CPC6128
  • ****
  • Posts: 156
  • Country: it
  • Liked: 54
Re: Ikari Warriors loading screen
« Reply #10 on: 09: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.
Do not underestimate the power of AMSTRAD CPC.

Offline Carnivius

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.383
  • Country: gb
  • Mayhem Attack Squad
    • index.php?action=treasury
  • Liked: 936
Re: Ikari Warriors loading screen
« Reply #11 on: 10:15, 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). 
Favorite CPC games: SwitchBlade, Stryker in the Crypts of Trogan, Turrican II, UN Squadron, Oh Mummy

Offline robcfg

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.988
  • Country: se
  • 8-Bit Technomancer
    • index.php?action=treasury
  • Liked: 825
Re: Ikari Warriors loading screen
« Reply #12 on: 11:00, 29 August 15 »
I do use GIMP with custom aspect ratio.

Here's a loading screen I did for a Dragon 32 game:

Offline VincentGR

  • 6128 Plus
  • ******
  • Posts: 771
  • Country: gr
    • Parts from the past.
  • Liked: 341
Re: Ikari Warriors loading screen
« Reply #13 on: 13:37, 29 August 15 »
One of the top 5 cpc games for me.
This artwork is awesome.
To blit, or not to blit?
Amiga 1200 Black Project

Offline STE86

  • CPC664
  • ***
  • Posts: 79
  • Country: gb
  • Liked: 143
Re: Ikari Warriors loading screen
« Reply #14 on: 14:17, 29 August 15 »
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

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.
« Last Edit: 14:21, 29 August 15 by STE86 »

Offline Puresox

  • 6128 Plus
  • ******
  • Posts: 1.290
  • Country: 00
  • Liked: 246
Re: Ikari Warriors loading screen
« Reply #15 on: 16: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?

Offline DARKGATE

  • CPC6128
  • ****
  • Posts: 156
  • Country: it
  • Liked: 54
Re: Ikari Warriors loading screen
« Reply #16 on: 18:26, 29 August 15 »
 ;D victory road screen is near to complete, look the thread, thank you.
victory road new screen beta
« Last Edit: 18:28, 29 August 15 by DARKGATE »
Do not underestimate the power of AMSTRAD CPC.

Offline alex76gr

  • CPC664
  • ***
  • Posts: 134
  • Country: gr
  • Liked: 82
Re: Ikari Warriors loading screen
« Reply #17 on: 18:42, 29 August 15 »
Excellent job.
It looks fantastic. :)
Thank you!
I still believe that i got my myopia from the green GT-65 monitor, but i can't prove it! :)

Offline STE86

  • CPC664
  • ***
  • Posts: 79
  • Country: gb
  • Liked: 143
Re: Ikari Warriors loading screen
« Reply #18 on: 18:45, 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...

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.039
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1007
Re: Ikari Warriors loading screen
« Reply #19 on: 18:58, 29 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!
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Offline DARKGATE

  • CPC6128
  • ****
  • Posts: 156
  • Country: it
  • Liked: 54
Re: Ikari Warriors loading screen
« Reply #20 on: 19:09, 29 August 15 »
Thank you DEVILMARKUS, when you can please made a .cdt version (Classical standard loader) speed write 1 and 0   :D i love classical loader.
Do not underestimate the power of AMSTRAD CPC.

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.039
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1007
Re: Ikari Warriors loading screen
« Reply #21 on: 19:25, 29 August 15 »
Here you go...

When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Offline CECPC

  • CPC464
  • **
  • Posts: 37
  • Country: es
  • Liked: 18
Re: Ikari Warriors loading screen
« Reply #22 on: 19:39, 29 August 15 »
¡¡Turbo!!



Offline Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 14.517
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 2677
Re: Ikari Warriors loading screen
« Reply #23 on: 20:05, 29 August 15 »
Loading this right now. Oh, the sweet screeching sounds...

Offline CECPC

  • CPC464
  • **
  • Posts: 37
  • Country: es
  • Liked: 18
Re: Ikari Warriors loading screen
« Reply #24 on: 20:45, 29 August 15 »
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.

Code: [Select]
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");
        }
    }
}