Free Sprites

Libraries, utilities, bootloaders...

Re: Free Sprites

Postby adekto » Fri Apr 11, 2014 9:10 am

um there are legal iseus with that mostly nintendo sega sony and others these RIPED sprites are basically stolen and these rules the guy post are bs

this is not something i recommend using for commercial use so id dont like to use it for gamebuino personally
User avatar
adekto
 
Posts: 448
Joined: Tue Feb 25, 2014 9:47 pm
Location: belgium

Re: Free Sprites

Postby ripper121 » Fri Apr 11, 2014 9:15 am

we dont sell the games, so its not commercial
User avatar
ripper121
 
Posts: 224
Joined: Fri Apr 04, 2014 2:02 pm
Location: Germany

Re: Free Sprites

Postby adekto » Fri Apr 11, 2014 9:20 am

im sorry but we arent going to bundle games with ripped sprites
really try to bring original content (even in art)

if u want sprites that are legal check out opengameart.org dont forget to credit people
User avatar
adekto
 
Posts: 448
Joined: Tue Feb 25, 2014 9:47 pm
Location: belgium

Re: Free Sprites

Postby adekto » Fri Apr 11, 2014 10:09 am

anyway here is how to convert sprites

photoshop: image->mode->index color set to custom and add 3 colors (white/black/grey)
fireworks: set to greyscale edit levels until u get 3 grey levels
pixen: grab color on the pallet and change it to one of the 3 colors u want to replace that color

universal tool: use the bucket fill on a color to change it
also u may want to edit e few parts to flesh out some lighting issues

(source cc by Stephen Challener)
Attachments
Redshrike.png
Redshrike.png (4.99 KiB) Viewed 7904 times
User avatar
adekto
 
Posts: 448
Joined: Tue Feb 25, 2014 9:47 pm
Location: belgium

Re: Free Sprites

Postby ripper121 » Fri Apr 11, 2014 10:56 am

Or save it with paint in monochrom.
How far is the knowledge about the possibility of 3 colors with the 3310 LCD ?
User avatar
ripper121
 
Posts: 224
Joined: Fri Apr 04, 2014 2:02 pm
Location: Germany

Re: Free Sprites

Postby adekto » Fri Apr 11, 2014 11:30 am

grey is possible but not in large area's the example images will probably not work very wel
User avatar
adekto
 
Posts: 448
Joined: Tue Feb 25, 2014 9:47 pm
Location: belgium

Re: Free Sprites

Postby ripper121 » Fri Apr 11, 2014 12:11 pm

Can someone test how big the max grey area is possible?
Becouse when some useres develope now images and they cant dispaly, the work was useless.
User avatar
ripper121
 
Posts: 224
Joined: Fri Apr 04, 2014 2:02 pm
Location: Germany

Re: Free Sprites

Postby Myndale » Fri Apr 11, 2014 2:02 pm

I just tested this and I'm able to do full-screen displays at around 300FPS. What I am noticing is that even at these extremely high frame rates I'm getting a small amount of flicker at certain rates and virtually none at others. 3ms is significantly above the persistence of the liquid crystal, so what appears to be happening is that the display updates are aliasing with the 5110 refresh circuitry. Clamping the refresh rate to a more sane value should fix it but I'll have to check the LCD's datasheet to determine what the ideal rate should be.

Sadly, my tests seem to indicate that flicker-free 4-color grey-scale isn't going to be possible...the 5110 update circuitry just isn't fast enough to support it :(

So in summary: full-screen 3-color grey-scale will be possible, and with sufficiently optimized code you'll have plenty of cycles to space.

Here's my test code for anyone that wants to confirm my findings:

Code: Select all
#define PIN_SCE   A1
#define PIN_RESET A0
#define PIN_DC    A2
#define PIN_SDIN  11
#define PIN_SCLK  13

#define PORT_SCLK PORTB
#define SCLK_BIT  5
#define PORT_SDIN PORTB
#define SDIN_BIT  3

#define LCD_C     LOW
#define LCD_D     HIGH

#define LCD_X     84
#define LCD_Y     48

void LcdInitialise(void)
{
  pinMode(PIN_SCE, OUTPUT);
  pinMode(PIN_RESET, OUTPUT);
  pinMode(PIN_DC, OUTPUT);
  pinMode(PIN_SDIN, OUTPUT);
  pinMode(PIN_SCLK, OUTPUT);
  digitalWrite(PIN_RESET, LOW);
  digitalWrite(PIN_RESET, HIGH);
  LcdWrite(LCD_C, 0x21 );  // LCD Extended Commands.
  LcdWrite(LCD_C, 0xB9 );  // Set LCD Vop (Contrast).
  LcdWrite(LCD_C, 0x04 );  // Set Temp coefficent. //0x04
  LcdWrite(LCD_C, 0x14 );  // LCD bias mode 1:48. //0x13
  LcdWrite(LCD_C, 0x0C );  // LCD in normal mode.
  LcdWrite(LCD_C, 0x20 );
  LcdWrite(LCD_C, 0x0C );
}

void LcdClear(void)
{
  for (int index = 0; index < LCD_X * LCD_Y / 8; index++)
  {
    LcdWrite(LCD_D, 0x00);
  }
}

void LcdWrite(byte dc, byte data)
{
  digitalWrite(PIN_DC, dc);
  digitalWrite(PIN_SCE, LOW);
  shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
  digitalWrite(PIN_SCE, HIGH);
}

void gotoXY(int x, int y)
{
  LcdWrite( 0, 0x80 | x);  // Column.
  LcdWrite( 0, 0x40 | y);  // Row. 
}

void setup(void)
{
  LcdInitialise();
  LcdClear();
  Serial.begin(9600);
  pinMode(PIN_SDIN, OUTPUT);
  pinMode(PIN_SCLK, OUTPUT);
}

#define bitOut(val, bit)             \
  if (val & (1 << bit))              \
    PORT_SDIN |= _BV(SDIN_BIT);      \
  else                               \
    PORT_SDIN &= ~_BV(SDIN_BIT);     \
  PORT_SCLK |= _BV(SCLK_BIT);        \
  PORT_SCLK &= ~_BV(SCLK_BIT);

void byteOut(uint8_t val)
{
  bitOut(val, 0);
  bitOut(val, 1);
  bitOut(val, 2);
  bitOut(val, 3);
  bitOut(val, 4);
  bitOut(val, 5);
  bitOut(val, 6);
  bitOut(val, 7);
}


void loop(void)
{
  for (int i=0; i<135; i++)
  {
    gotoXY(0,0);
    for (int i=0; i<42; i++)
    {
      digitalWrite(PIN_DC, LCD_D);
      digitalWrite(PIN_SCE, LOW);
      byteOut(0x55);
      byteOut(0xaa);
      byteOut(0x55);
      byteOut(0xaa);
      byteOut(0x55);
      byteOut(0xaa);
      byteOut(0x55);
      byteOut(0xaa);
      byteOut(0x55);
      byteOut(0xaa);
      byteOut(0x55);
      byteOut(0xaa);
      digitalWrite(PIN_SCE, HIGH);
    }
   
    // 1
    gotoXY(0,0);
    for (int i=0; i<42; i++)
    {
      digitalWrite(PIN_DC, LCD_D);
      digitalWrite(PIN_SCE, LOW);
      byteOut(0xaa);
      byteOut(0x55);
      byteOut(0xaa);
      byteOut(0x55);
      byteOut(0xaa);
      byteOut(0x55);
      byteOut(0xaa);
      byteOut(0x55);
      byteOut(0xaa);
      byteOut(0x55);
      byteOut(0xaa);
      byteOut(0x55);
      digitalWrite(PIN_SCE, HIGH);
    }
   
  }
 
  Serial.println("This string causes the TX pin to flash so I can see how long that took.");
}
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Re: Free Sprites

Postby Myndale » Fri Apr 11, 2014 3:19 pm

I just plugged phi's Moon Patrol concept into my code, here's the result:

20140412_010719.jpg
20140412_010719.jpg (64.64 KiB) Viewed 7878 times


There's a bit of hashing visible in this image due to the relatively high capture rate of my mobile phone, it's not that apparent to the naked eye.

Erico it would be interesting to see your version for comparison, any chance you could convert it to an 84x48 image for me so I can test it?
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Next

Return to Software Development

Who is online

Users browsing this forum: No registered users and 18 guests

cron