nesdev.com
http://forums.nesdev.com/

Tile set for Alisha's Adventure
http://forums.nesdev.com/viewtopic.php?f=21&t=12980
Page 3 of 3

Author:  darryl.revok [ Fri Aug 07, 2015 5:56 am ]
Post subject:  Re: Tile set for Alisha's Adventure

rainwarrior wrote:
Aseprite lets you switch frames with a keypress, use several layers each animated separately (GIMP is using layers in lieu of real frames, preventing this possibility), easily change speeds and partial loops, onion skin to trace over previous frames, etc. etc.


Asesprite looks pretty neat. It looks like it's got most of the tools I like from photoshop without the ones that aren't useful for this workflow and a few that photoshop doesn't have.

Can Asesprite export to a CHR file and does it support metasprite editing?

I recently created my first CHR file with NES Screen Tool. It worked great for some things but had some big issues for me. One was that you couldn't arrange your metasprites first and then delete duplicates. Another was that it didn't export metasprite data in a form that was useful for me. It was set up for someone else's workflow.

I'd like to find a tool that will do these things before getting into the bulk of my animation workflow. Does any one know of an option? I'd like to avoid having to learn C at this time and spend a year making software to make my NES software, if that's possible.

Author:  tepples [ Fri Aug 07, 2015 6:02 am ]
Post subject:  Re: Tile set for Alisha's Adventure

darryl.revok wrote:
Can Asesprite export to a CHR file and does it support metasprite editing?

If you have a PNG to CHR converter, anything that can export to a PNG file can export to a CHR file. Then it's just a matter of telling your build system to rebuild the CHR file from the PNG file whenever the PNG file is newer. Are you familiar with GNU Make, Python, or both?

Quote:
Another was that it didn't export metasprite data in a form that was useful for me. It was set up for someone else's workflow.

I think the idea is that you create metasprites with the graphical tool and then run your own tool to convert them for use in your own program.

Quote:
I'd like to avoid having to learn C at this time and spend a year making software to make my NES software, if that's possible.

You don't need to learn C; you can learn something a bit more forgiving such as Python or Node.js.

Author:  thefox [ Fri Aug 07, 2015 6:33 am ]
Post subject:  Re: Tile set for Alisha's Adventure

darryl.revok wrote:
Can Asesprite export to a CHR file and does it support metasprite editing?

No and no.

Quote:
I'd like to find a tool that will do these things before getting into the bulk of my animation workflow. Does any one know of an option? I'd like to avoid having to learn C at this time and spend a year making software to make my NES software, if that's possible.

Unless you want to do a lot of manual work, you're unavoidably going to have to write some custom tools. Existing tools are few and far between. I think it's a small miracle that we even have anything like NES Screen Tool, considering how few good tools there are out there.

Author:  darryl.revok [ Fri Aug 07, 2015 7:00 am ]
Post subject:  Re: Tile set for Alisha's Adventure

tepples wrote:
If you have a PNG to CHR converter, anything that can export to a PNG file can export to a CHR file. Then it's just a matter of telling your build system to rebuild the CHR file from the PNG file whenever the PNG file is newer. Are you familiar with GNU Make, Python, or both?


When you say a PNG to CHR convertor, do you mean an application like NES Screen Tool, Tile Layer Pro, or YY-CHR? This is what I found when I looked up PNG to CHR convertor. NES Screen Tool is the only one that I've used so far because the others looked like ROM hacking tools.

I've heard of Python but I don't know how to program for it or anything. I've never heard of GNU Make. It is a free software programming language?

Quote:
I think the idea is that you create metasprites with the graphical tool and then run your own tool to convert them for use in your own program.


The output is a binary file. How are you supposed to parse that? Even If I could program a tool to read the binary information into something that I could paste into my code, I don't know how the data is arranged.

Quote:
You don't need to learn C; you can learn something a bit more forgiving such as Python or Node.js.

I don't know much about Python, but is it possible to create a graphical interface with it wherein I could arrange metasprites? I'm intimidated to try to learn another language at the same time. I was intimidated about starting 6502 in the first place but I'm enjoying it more than I thought I would.

thefox wrote:
Unless you want to do a lot of manual work, you're unavoidably going to have to write some custom tools. Existing tools are few and far between. I think it's a small miracle that we even have anything like NES Screen Tool, considering how few good tools there are out there.


NES ST is great. With it I was able to create a CHR file and put it in a functional piece of NES software. That's pretty amazing to me. If I showed that to my 6 year old self I'd freak out.

Author:  thefox [ Fri Aug 07, 2015 7:16 am ]
Post subject:  Re: Tile set for Alisha's Adventure

darryl.revok wrote:
The output is a binary file. How are you supposed to parse that? Even If I could program a tool to read the binary information into something that I could paste into my code, I don't know how the data is arranged.

viewtopic.php?p=133350#p133350

Author:  darryl.revok [ Fri Aug 07, 2015 7:28 am ]
Post subject:  Re: Tile set for Alisha's Adventure

Right on! Thank you for that!

So are blank tiles in the metasprite just 0s until the next metasprite begins?

Something that I figured out, that may be helpful to others, is the way NES ST translates 4-bit grayscale to 2-bit NES palette colors. It seems almost random at first, but it assigns them like this: (these are color numbers)

4-bit 2-bit
Input Output
0 = 0
1 = 1
2 = 2
3 = 3
4 = 0
5 = 1
6 = 2
7 = 3
8 = 0
9 = 1
10 = 2
11 = 3
12 = 0
13 = 1
14 = 2
15 = 3


So, I saved a swatch for color 0, color 5, color 10, and color 15, so that I would have choices which were distinguishable from one another.

Author:  tepples [ Fri Aug 07, 2015 7:56 am ]
Post subject:  Re: Tile set for Alisha's Adventure

darryl.revok wrote:
tepples wrote:
If you have a PNG to CHR converter

When you say a PNG to CHR convertor, do you mean an application like NES Screen Tool, Tile Layer Pro, or YY-CHR? This is what I found when I looked up PNG to CHR convertor. NES Screen Tool is the only one that I've used so far because the others looked like ROM hacking tools.

Some of them are command-line programs. You give it a PNG file in indexed color and a spec for a tile data format, and it spits out a CHR file containing the same pixels as the PNG, translated into tile data. There's a command-line PNG to CHR converter written in Python in the tools folder of my project templates for NES and Super NES. (Hint: NES format is 0;1, Game Boy format is 0,1, Super NES format is 0,1;2,3, and Genesis format is 3210.) Are you familiar with command-line tools?

Quote:
I've never heard of GNU Make. It is a free software programming language?

Make is a tool for expressing which files can be created from which other files, and then automatically converting them. For example, you might have a script called a "makefile" that says in essence: "This .sfc file depends on these .asm files and these .chr files, and here's how to build the .sfc file from those files. Each .chr file depends on a .png file, and here's how to convert each .png file into a .chr file."

Quote:
I don't know much about Python, but is it possible to create a graphical interface with it wherein I could arrange metasprites?

There are plenty of UI libraries for Python. Tkinter comes with the standard Windows distribution of Python. Others include wxPython, PyGTK, PyQt, and OcempGUI.

Author:  darryl.revok [ Mon Aug 10, 2015 10:51 am ]
Post subject:  Re: Tile set for Alisha's Adventure

tepples wrote:
Are you familiar with command-line tools?


Vaguely. I grew up using DOS but never really did more in it than directory switching and running applications. My attempts to use Linux as an adult never produced much more than frustration.

Quote:
For example, you might have a script called a "makefile" that says in essence: "This .sfc file depends on these .asm files and these .chr files, and here's how to build the .sfc file from those files. Each .chr file depends on a .png file, and here's how to convert each .png file into a .chr file."


I do remember seeing makefile during any of my failed attempts at Linux. My friend and I were discussing maybe making a Linux move and I might do it. As it stands, I like OS X Snow Leopard, and Windows XP, and anything after that it too bloated for me. Apple used to be simplified and sleek because it was created for a professional graphic design and education market. Now that just kind of seems like a tiny niche to them.

Quote:
There are plenty of UI libraries for Python. Tkinter comes with the standard Windows distribution of Python. Others include wxPython, PyGTK, PyQt, and OcempGUI.


I'm really not sure what higher level language would be the best to go into. It seems like C/C++ would have the greatest functionality but may have a higher learning curve.

This might be silly but does anyone ever build PC apps in x86 ASY? I mean I'm guessing this is possible but very impractical for anything with a GUI.

Author:  Joe [ Mon Aug 10, 2015 11:18 am ]
Post subject:  Re: Tile set for Alisha's Adventure

darryl.revok wrote:
This might be silly but does anyone ever build PC apps in x86 ASY? I mean I'm guessing this is possible but very impractical for anything with a GUI.

Handling the GUI stuff in assembly isn't too bad; the real issue is the massive amount of code you have to write to get simple things done. Of course, some people still use assembly anyway.

Author:  rainwarrior [ Mon Aug 10, 2015 12:42 pm ]
Post subject:  Re: Tile set for Alisha's Adventure

Does ASY mean assembly?

Yeah, there's a fair amount of Win32 assembly programmers. There's plenty of reference material for using the API from assembly: http://win32assembly.programminghorizon.com/tutorials.html

It's a tiny minority for sure, but it's perfectly doable. There's some limited cases where it might actually be the best choice (e.g. making a 1k demo?).

Author:  tepples [ Mon Aug 10, 2015 12:56 pm ]
Post subject:  Re: Tile set for Alisha's Adventure

The NO$ emulators are Win32 applications written in x86 assembly language. Their developer Martin Korth has mentioned code generation inefficiencies of "HLL" (that is, C or C++) code in GBATEK, the reference that accompanies NO$GBA. (And the most common abbreviation for assembly language is asm, not asy.)

This is what a makefile does:
Code:
obj/snes/kitten.chrgb: tilesets/kitten.png
   tools/pngtochr --format gb tilesets/kitten.png obj/snes/kitten.chrgb

This means "The file kitten.chrgb in the obj/snes folder can be created from the file kitten.png in the tilesets folder by running the command tools/pngtochr --format gb tilesets/kitten.png obj/snes/kitten.chrgb." This way you can specify how to run the conversion tool on each file.

Make also allows wildcard rules:
Code:
obj/snes/%.chrsfc: tilesets/%.png
   tools/pngtochr --format snes $< $@

This means "Files in the obj/snes folder named (something).chrsfc can be created from the corresponding file in the tilesets folder named (something).png by running the command tools/pngtochr --format snes followed by the first source file path and the target file path.

If one file has has .include or .incbin directives that refer to another file, you specify multiple dependencies:
Code:
obj/snes/graphics.o: src/graphics.s obj/snes/kitten.chrgb obj/snes/yarnball.chrsfc
   ca65 $< -o $@

This means "The file graphics.o in the obj/snes folder can be created from the file graphics.s in the tilesets folder, the file kitten.chrgb in the obj/snes folder, and the file yarnball.chrsfc in the obj/snes folder by running the command ca65 followed by the first source file path followed by -o followed by the target file path."

Then when you run Make, it'll build a map of what depends on what, find what's up to date and what's out of date based on last modification time, and determine in which order the programs need to be run to build your project. For example, if it has to build kitten.chrgb and yarnball.chrsfc before building graphics.o, it'll do so.

Author:  psycopathicteen [ Mon Jan 18, 2016 4:17 pm ]
Post subject:  Re: Tile set for Alisha's Adventure

Okay, I've been working on a few more tiles.

Attachments:
platform place holder.png
platform place holder.png [ 12.18 KiB | Viewed 1314 times ]

Author:  Espozo [ Mon Jan 18, 2016 6:19 pm ]
Post subject:  Re: Tile set for Alisha's Adventure

The two beige colors are too similar too both exist. Why not just make the new blocks use the old color or vice versa, and use that for something else? Didn't you say you wanted it to be a city-like level? I've never seen lava pits in cities, so I don't really know what you want.

Author:  psycopathicteen [ Mon Jan 18, 2016 7:14 pm ]
Post subject:  Re: Tile set for Alisha's Adventure

You haven't been to Chicago then.

Edit: Made the beige walls a little darker.

Attachments:
platform place holder.png
platform place holder.png [ 12.23 KiB | Viewed 1269 times ]

Page 3 of 3 All times are UTC - 7 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/