EarlyMorning - Progress & Discussion

One suite to code them all. An complete IDE and assembler for all your z80 projects!

Moderators: benryves, kv83

Post Reply
User avatar
kalan_vod
Calc King
Posts: 2932
Joined: Sat 18 Dec, 2004 6:46 am
Contact:

Post by kalan_vod »

gangsta wrote:tootin' ur own horn, eh Tim? but I second you. and kalan_vod, what are you talking about?
I didn't realize that he was an anime char....
Edit: Its cool what 2 mins. in photoshop can do.
Last edited by kalan_vod on Tue 06 Dec, 2005 3:14 am, edited 1 time in total.
User avatar
Timendus
Calc King
Posts: 1729
Joined: Sun 23 Jan, 2005 12:37 am
Location: Netherlands
Contact:

Post by Timendus »

gangsta wrote:tootin' ur own horn, eh Tim? but I second you.
Thank you :) I don't want to bother anyone with it, but I really believe it can help people make better software, so yes, I like to promote it :oops:
http://clap.timendus.com/ - The Calculator Link Alternative Protocol
http://api.timendus.com/ - Make your life easier, leave the coding to the API
http://vera.timendus.com/ - The calc lover's OS
User avatar
kv83
Maxcoderz Staff
Posts: 2735
Joined: Wed 15 Dec, 2004 7:26 pm
Location: The Hague, Netherlands
Contact:

Post by kv83 »

Thanks for the comments.
Jim e wrote:So when can I make request? :D
Right now?
Image
User avatar
NanoWar
Extreme Poster
Posts: 365
Joined: Fri 17 Dec, 2004 6:39 pm
Location: #$&"%§!
Contact:

Post by NanoWar »

For making the sprites I would like to have something like:
http://www.onlythebestfreeware.com/prog ... ram_id=135
Left click / right click = different colour etc...
I will probably use this program often :).
Revolution Software
User avatar
kv83
Maxcoderz Staff
Posts: 2735
Joined: Wed 15 Dec, 2004 7:26 pm
Location: The Hague, Netherlands
Contact:

Post by kv83 »

Just a quick update; I worked today again on the tool. Not major things, just some right-click-menu's for reordering the maps/sprites. Next feature I'll implent will please some CalcGS users. When adding/deleting a sprite or reodering sprites, the editor will check whether the SpriteSheet is used in a map, and if it's used he'll ask if he should update that map or not. :)
Image
necro
Calc King
Posts: 1619
Joined: Sat 26 Mar, 2005 2:45 am
Location: your shadow

Post by necro »

so, will this support animate tiles/maps?
User avatar
Jim e
Calc King
Posts: 2457
Joined: Sun 26 Dec, 2004 5:27 am
Location: SXIOPO = Infinite lives for both players
Contact:

Post by Jim e »

kv83 wrote:
Jim e wrote:So when can I make request? :D
Right now?
Requests:
  • Support masking and different method of drawing, i.e. OR then XOR, to support trasparency and invert.
  • Reordering of the mask layers(to satisfiy code end)
  • Individual sprite size idependant of the other sprites(unlike how calcGS is purely TILE editor)
  • Support submaps to save memory with tiles(like ducks zelda)
  • Maps support entries 8bit or 16bit(incase I need alot of tiles :wink: )
  • Allow indicator bits on the map and methods of flagging them(you know defineing whats walkable)
That's all for now.
Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

Probably a little useless for the TI world (?) but one thing that could be useful is an option to import a bitmap, have your application split it into 8x8 tiles, discard any redundant tiles (identical) and possibly even match tiles as redundant if they just need a flip, then build the map/tile set out of that image.
User avatar
kv83
Maxcoderz Staff
Posts: 2735
Joined: Wed 15 Dec, 2004 7:26 pm
Location: The Hague, Netherlands
Contact:

Post by kv83 »

Heh, thanks for the idea's guys, I'll reply to those indiidually:
so, will this support animate tiles/maps?
Animation is something handled in the code. You just place the start tile on the map, and your code should recognize it as 'start tile'. The editor will not show the sprite animated in first versions. But maybe I'll add something later on.
Support masking and different method of drawing, i.e. OR then XOR, to support trasparency and invert.
I don't get what you're saying. Isn't this something the code handles? Maybe you can explain it more in detail or even better with examples.
Reordering of the mask layers(to satisfiy code end)
Neither do I understand this one. What I can say is that I plan to use something like a 'build script' to indicate how the map and sprite data is converted (compressed or not, order, extra indicators) into the include file for the z80 source.
Individual sprite size idependant of the other sprites(unlike how calcGS is purely TILE editor)
You can create different spritesheets. Spritesheets can have different sizes. Sprites within a spritesheet have to be the same size. Maps can only use one spritesheet as tileset. Is that good enough? Or are you requesting something else?
Support submaps to save memory with tiles(like ducks zelda)
Can you explain me the concept behind this? I'll see what I can do then.
Maps support entries 8bit or 16bit(incase I need alot of tiles Wink )
In first versions sprites will be limited to an ammount of 255 (8bit). However, I plan to expand that to a 16bit value as soon as you add more than 255 sprites.
Allow indicator bits on the map and methods of flagging them(you know defineing whats walkable)
Isn't this just a 2nd map? Just create a 2nd map collection and then create a 'Spritesheet' to make 1x1 sprites or something to indicate different states. Finally you draw the map of walkable tiles and which are not. In the build script you include that you don't want to include the 2nd map collection. Another way to do this, if you have walls which are walkable and which are not, to create a 2nd sprite which get's another number. In that case you'll only have to check in your code which wall-tile it is.
Probably a little useless for the TI world (?) but one thing that could be useful is an option to import a bitmap, have your application split it into 8x8 tiles, discard any redundant tiles (identical) and possibly even match tiles as redundant if they just need a flip, then build the map/tile set out of that image.
Import functions is certainly planned, but I have yet to determine the ammount of features.
Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

I was giving this some more thought - I've been more tied up in Latenite/Brass, and just been accepting that kv was writing this nifty sprite/map editor for us.
What I reckon would be ideal would be for kv to decide on a file extension for these files - .em or something, up to him, but such a file extension that when double-clicked in Latenite will open up in EarlyMorning. Along with this, we'd need to be able to get the sprites from EarlyMorning into our binaries somehow, so a .incsprite and .incmap directive for Brass would appear to be sensible (assuming I can work out the internal format of the XML files EarlyMorning saves). This sort of thing:

Code: Select all

sprites:
.incsprite "resources/sprites.em", 0, 9	; Include sprites 0->9
title_map:
.incmap "resources/sprites.em", 0 ; Include map 0
tiles:
.incsprite "resources/sprites.em", 10, 42 ; Include sprites 10->42
main_maps:
.incmap "resources/sprites.em", 1, 9 ; Include maps 1->9
This sort of approach could be used with, say, the MirageOS icon - double-click "icon.em", and up pops EarlyMorning, displaying the 16x15 icon for MirageOS (I assume EM will support non-power-of-two sprites?)
User avatar
kv83
Maxcoderz Staff
Posts: 2735
Joined: Wed 15 Dec, 2004 7:26 pm
Location: The Hague, Netherlands
Contact:

Post by kv83 »

Well, the plan I had in mind is that, when you are in EarlyMorning, you can hit a "build" button to build the .inc file for the project. I want to give programmers/artists the ability to define how they want their data. Do they want a "terminator" after a map or do they want a "length indication" in front of the map. Do they want compressed data or not. They can define those things in a "build sheet". EarlyMorning will match both, data and build sheet and generate a .inc file to be included in the ASM project. :) This gives more flexebility I think. You can also define in the buildsheet to generate different .inc for different spritesheets/mapcollections.

Opening just a sprite in EarlyMorning will be difficult. EarlyMorning is not a sprite tool. Just like LateNite is not a sprite editor. Both are more. Together they form an IDE. Every sprite needs to be in a SpriteSheet (which defines things as the size) and every SpriteSheet needs to be in a project. All resources (spritesheets and mapcollections) + buildsheet are stored in the EarlyMorning XML file (Or better: The Resource.xml).

What latenite should/could do. Is read the XML information/tree and display it it's project tree (maybe just the file, but a whole tree could be possible). When double clikcing the Resource.xml file and/or a spritesheet/sprite/mapcollection/map in the project-tree in latenite, EarlyMorning would pop up and display the selected "resource".

I hope that's not to complicated. Just look at the XML file, I send you, ben. You'll see that at the moment there is a entity called "resources", then in there are spritesheets with sprites and mapcollections with maps. Ultimatly, the only thing you would've to do is to create a resource.xml when starting a new project with the title of the project. Than you check whether there is a resource.xml or not. If there is one, you read in the (tree)information and when the user hits a particular spritesheet/sprite/mapcollection/map EarlyMorning starts and displays the selected node. The last thing can be a little complicated, but I'm sure we'll figure it out.
Image
User avatar
benryves
Maxcoderz Staff
Posts: 3087
Joined: Thu 16 Dec, 2004 10:06 pm
Location: Croydon, England
Contact:

Post by benryves »

OK, when I mentioned opening up in EarlyMorning on a double-click I did mean the entire XML file, not just a single sprite (but if you added support to jump to a particular sprite/map - "-s43" on the commandline, sort of thing, that would be ace). Your build system sounds ideal - after all, I'm hoping EarlyMorning will be an excellent stand-alone sprite editor, regardless of what Latenite has to do with it. Getting the two to talk to eachother is the icing on the cake. :)
Using the XML file as a virtual folder is a nice idea - tricky from my POV, but doable. :D
User avatar
Jim e
Calc King
Posts: 2457
Joined: Sun 26 Dec, 2004 5:27 am
Location: SXIOPO = Infinite lives for both players
Contact:

Post by Jim e »

Support masking and different method of drawing, i.e. OR then XOR, to support trasparency and invert.
I don't get what you're saying. Isn't this something the code handles? Maybe you can explain it more in detail or even better with examples.
Reordering of the mask layers(to satisfiy code end)
Neither do I understand this one. What I can say is that I plan to use something like a 'build script' to indicate how the map and sprite data is converted (compressed or not, order, extra indicators) into the include file for the z80 source.
Well for me when I do greyscale sprites I will have mask layer, light grey layer and a dark gray layer. So If I had to use calcGS, grey was easy enough but I had to make the mask layer seperate(even in a seperate gst file). Real pain if I needed to make hundreds of those things.

Second, changing the order of the layer is also important, like if I want the mask to come before the grey layers or vice-versa. Sure this can be done on the code end but it may be incredible helpful.

Last for this is that most mask sprite routines AND then OR a sprite....but thats wasteful. If you OR then XOR you get the option of an invert color. I was just hoping you could add that capabilty.
Support submaps to save memory with tiles(like ducks zelda)
Can you explain me the concept behind this? I'll see what I can do then.
The thing is that in games like zelda there are a lot of redundant blocks on the map(like trees, paths, buildings) so submaps can save drawing time and compress the map a great deal. Basically what I am asking is if it's possible to treat a set of small sized maps(like 2x2,3x3,4x4) as if they were tiles and use them to draw a bigger map. So it would go:
1)Big map
2)Sub maps
3)Tiles
Allow indicator bits on the map and methods of flagging them(you know defineing whats walkable)
Isn't this just a 2nd map?
Problem with a second map is that it's wasteful, if I am only using seven bits in the actual map, adding an extra bit per tile will only cost memory and not gain anything. Also if I update one map I'd have to update the other seperately.
Image
User avatar
kv83
Maxcoderz Staff
Posts: 2735
Joined: Wed 15 Dec, 2004 7:26 pm
Location: The Hague, Netherlands
Contact:

Post by kv83 »

If Ben can update, I can too :D

I Worked a little on EM this day. Managed to get the sprite-editor-load-thingy working, which means you can load now a sprite into the editor... I also recreated some objects, split up the spritesheet object and next thing I'll do is create a pallete object (Don't feel bad if you don't understand a thing I am brabling, it's most behind the scenes to enhance maintanability!).

In other words EM is nearing it's first beta... hooray!

P.s.: @Jim, I think the best thing we could do is wait for a beta, which gives you more an idea of EM and the possibility to point-down suggestions on a way I understand them (I am very stupid, you must know :P)
Image
User avatar
kv83
Maxcoderz Staff
Posts: 2735
Joined: Wed 15 Dec, 2004 7:26 pm
Location: The Hague, Netherlands
Contact:

Post by kv83 »

Ok. Another update. Progress is going steady. I finished the pallete class and the split up the spritesheet and sprite classes, as I would. I also managed to get the "New File" thing working, aswell as loading and saving. Now create some dialog (not much work) to let the user define where to save and load it :D

And then we get the hard part :) The "export to z80" thingie. I'll still have to come up with a good and "easy-to-do" way, which is quite hard. Especially if you think about how "flexible" this system has to be. The programmer should have the ability to "form" the data the way he wants it. Hmmm...

If I get that working, I'll release a first beta for you guys to play with. It will still lack a lot of nice things like drawing tools, import options and other stuff, but the core business should be in it. Maybe even LateNite "support" :)
Image
Post Reply