Forum Replies Created
-
AuthorPosts
-
Jeremy WilliamsKeymaster
Yes, the Y-axis is inverted. Do you see this? I’ve attached an example of the same image saved from Photoshop and Mac Preview (Export -> Windows BMP).
If you open them in a HEX editor, you’ll plainly see that all of the image bytes are written in opposite orders. In the Photoshop file, the bytes are written from the bottom up, and in the Mac version they’re top-down. I suppose the Mac version makes more logical sense, but it’s not the standard.
If you look at the file headers at offset 16, you’ll see the vertical resolution of the image represented as a 32-bit signed integer. The photoshop file is 64 (40 00 00 00). The Mac file is -64 (C0 FF FF FF).
Attachments:
You must be logged in to view attached files.Jeremy WilliamsKeymasterAndreas is right. Game Frame was developed on Arduino 1.0.1 though, so you may need the earlier version of the IDE. I briefly tried 1.0.5 and remember some library incompatibility issue. Don’t recall specifics.
Jeremy WilliamsKeymasterRegarding a more flexible alternative to “panoff,” that sounds like a great community firmware mod. I want to start things as simple as possible, thus a binary solution. The implementation works perfectly for throwing old arcade characters on the screen that walk/drive/fly across, and everything eBoy’s wanted to do. It also works for film strips.
To your other question, if 0.bmp has a MoveX/Y value > 0, and 1.bmp is present (or more graphics), it will offset X/Y pixels each frame AND iterate through the files each frame. This combines multi-file animation with translation. Does that make sense? eBoy has put this to great use in a couple impressive animations.
If you want to sequence from one animation to another, there are two options. You can use the last entry in CONFIG.INI, or you can nest numerical folders. For instance, if you wanted to create a sequence of animations from Pacman:
/pacman/0 (includes pacman animation)
/pacman/1 (includes ghost animation)
/pacman/2 (includes blue ghost animation)
/pacman/3 (includes pacman going the other direction)This works just as well with filmstrips or multi-file animations. The only difference between the two methods (CONFIG.INI or nested folders) is how the next button works. With nested, it will skip subsequent folders. With CONFIG.INI, it will go to what’s specified.
March 12, 2014 at 3:30 pm in reply to: Some SNES and Doom sprites and animations I put together. #688Jeremy WilliamsKeymasterThat’s just eerie, Fogleman. It’s like you already have one!
Jeremy WilliamsKeymasterYeah, sorry about that. It looks like my browser got routed back to the old server and the message was posted there. Anyway, here’s the post:
Interestingly, seq.bmp is formatted correctly, whereas your fireflies BMP (sync.bmp) is in reverse, the typical Mac format. Were they both created with ImageMagick?
Jeremy WilliamsKeymasterHi Dudemullet,
Unfortunately the PCB does not expose SPI pins, which you’d need for the Arduino Wifi shield. I think the best (and least expensive) option for WiFi is to figure way to write to wifi enabled SD cards, and then just code firmware to watch for changes on disc. I’m looking forward to seeing what happens there.
Jeremy WilliamsKeymasterVery cool. I just want to be sure the firmware is finished before it’s released, and I’m still making minor tweaks. However, my BMP/display code is just a combination of two sources that Adafruit has released.
For reading BMP files, see the bmpDraw function here:
https://github.com/adafruit/Adafruit-ST7735-Library/blob/master/examples/shieldtest/shieldtest.pdeFor rendering to ws2812 strips, see their library here:
https://github.com/adafruit/Adafruit_NeoPixelHave fun! Can’t wait to see what you end up with.
Jeremy WilliamsKeymasterExcellent, I was looking forward to figuring out imagemagick when I had the time. Can you post one of your output BMP files so I can see if it’s compatible with Game Frame?
Jeremy WilliamsKeymasterMax frame rate is about 24 fps, but it’s set in terms of milliseconds to hold each frame. You can configure this as 0, but in reality the system bottoms out between 40-50.
You can have it hold images as long as you want.
Jeremy WilliamsKeymasterI’m sure it does. I’m on PC most of the time these days, and just hopped into OS X yesterday and downloaded some graphics from the web to try your tool real quickly.
Jeremy WilliamsKeymasterTo combine several images into a film strip (not required, but it has advantages) I’ve tried several apps, and these are the best I’ve found so far.
Mac:
Image Stitcher (.99 cents)
https://itunes.apple.com/gb/app/image-stitcher/id819501444?mt=12The author is very approachable, and actually added BMP to the export options for me. Unfortunately, it uses the standard Mac image library which stupidly encodes BMP bytes in reverse order. So, while this tool does a great job stacking images, it won’t play more than the first frame on Game Frame until you open the file in another App (like Photoshop) and save it out again (24 bit). I haven’t found an alternative to Photoshop on the Mac that saves the byte order correctly, but I haven’t spent much time looking yet. Would love some help here.
PC:
GlueIt 1.06 (Free)
http://www.varcade.com/blog/glueit-sprite-sheet-maker-download/Super simple, works great. You want a single-column image. It saves a 32-bit BMP though, so you need to open the exported file in another App (Photoshop or Irfanview work well) and save as a 24-bit BMP.
Jeremy WilliamsKeymasterThis is absolutely remarkable! You just pass it a PNG file, and it works flawlessly. The way you overlay the pixel texture with the color value is spot on. I even got animations to play. Nice work. I’ll get the animation specs up here tomorrow. It’s been an insanely busy day.
Jeremy WilliamsKeymasterHey Damage. Sounds great! Please keep us posted about your progress with lots of photos. For Game Frame, I’m just using one data pin (digital pin 6), and the grid zig zags from the top like this:
0 1 2 3
7 6 5 4
8 9 A B
F E D CAt 16×16, of course. Actually, it may start right-to-left on the top row… I have the final panel in route from China right now and will let you know when it arrives. I have versions of the firmware for both variations, since I’ve received both kinds.
Jeremy WilliamsKeymasterHey Andreas! Have you looked into what Arduino pins are required to do such a thing? (Analog, PWM, etc.) The pins I’ve exposed are all analog pins, plus 5V+ and ground.
Jeremy WilliamsKeymasterI have no plans to release the whole board spec, but maybe in the future. I can certainly tell you the pinouts for the expansion area. Those will be unsoldered through holes on the PCB, so you can add female or male headers to suit your needs. Let me get get the final PCB design in order and then I’ll get back to you.
-
AuthorPosts