Jump to content
IGNORED

Sprite Engine - new version


Gury

Recommended Posts

This information is now little old :) I added a new version here, which also appears below the post.

 

Documentation is at: http://gury.atari8.info/sprite_engine/sprite_engine.htm

 

Hi Atarians,

 

I introduce you my first finished program for our little Ataris called Sprite Engine (on disk SENGINE.XEX). It is simple and easy player missile editor, but it will grow with new features as needed. All comments and suggestions are welcome.

 

Program as is currently has dozen of standard options to choose from: fill, mirror, inverse, horizontal and vertical move (pressing "H" or "V", or "ctrl-H", "ctrl-V" for opposite way). Pressing trigger you draw or erase dot, by pressing "space" key you enable/disable drawing. You can save player image to Action!, Atari BASIC and Assembler source code by pressing "D" key. For now there is no way to enter filename, it is fixed to PMGDAT... It will be added in next version. You can watch the player in all three widths by pressing "W" key.

 

Color option gives you selection of any color you choose by selecting "C" key. Next, to select hue move joystick up or down, to select luminance, move it left or right.

 

Regards

sengine1.zip

Edited by Gury
Link to comment
Share on other sites

cool. but few questions...

 

does it support multicolour pmgs?

 

possible to load data?

Sure, I will add overlaying more sprites together and another option in which you will be able to select specific player and work on any of the players separatly. I just have to decide the layout for new features. I will add saving and loading data in next version.

Link to comment
Share on other sites

does it support multicolour pmgs?

 

possible to load data?

Hi, here is new version with some amendments. Now you can edit all 4 players with their individual colors and shapes. Editing is improved, also diagonal moving is added. More support for multicolour pmgs will come in later version and I will appreciate any help for testing new versions. If you come by with any new idea for easy dealing with multicolor images, Heaven, just tell me.

 

Options (some are the same from previous version):

- "P" - select a player (0 - 3)

- "W" - choose the width for selected player

- "C" - Color for selected player then move joystick up/down - left/right for hue and luminance

- "D" - source code for image data (current player)

- "Space bar" - draw

- "H", "Ctrl-H" - horizontal move

- "V", "Ctrl-V" - vertical move

- ...

 

When new features will be added, I will prepare user documentation.

Edited by Gury
Link to comment
Share on other sites

I also invite you to help me with providing me the syntax of other languages for source code outputs from generated images... besides Action!, assembler and Atari BASIC already included.

 

Maybe Forth, Pascal, C, assembler variations?

Edited by Gury
Link to comment
Share on other sites

I also invite you to help me with providing me the syntax of other languages

 

For use with CC65, I think the best thing would be to write it as an .S file (assembler source) so that it can be included in both C projects as well as assembly only projects.

 

The format would be something like this:

 

.export _pmdata

.data

_pmdata:   .byte  $00,$08,$10,$18,$20,$28,$30,$38,$40,$48,$50,$58,$60,$68,$70,$78
 .byte  $80,$88,$90,$98,$A0,$A8,$B0,$B8,$C0,$C8,$D0,$D8,$E0,$E8,$F0,$F8
 .byte  $00,$08,$10,$18,$20,$28,$30,$38,$40,$48,$50,$58,$60,$68,$70,$78
 .byte  $80,$88,$90,$98,$A0,$A8,$B0,$B8,$C0,$C8,$D0,$D8,$E0,$E8,$F0,$F8
 .byte  $00,$08,$10,$18,$20,$28,$30,$38,$40,$48,$50,$58,$60,$68,$70,$78
 .byte  $80,$88,$90,$98,$A0,$A8,$B0,$B8,$C0,$C8,$D0,$D8,$E0,$E8,$F0,$F8
 .byte  $00,$08,$10,$18,$20,$28,$30,$38,$40,$48,$50,$58,$60,$68,$70,$78
 .byte  $80,$88,$90,$98,$A0,$A8,$B0,$B8,$C0,$C8,$D0,$D8,$E0,$E8,$F0,$F8

etc....

 

You need to have the underscore character on the label or else C programs cannot see the exported symbol (I'm pretty sure), and from within a C program you would reference it as pmdata, after declaring it. Of course, in CC65 you can always use the .incbin statement and just include straight binary data in your project, so in the end I don't think it matters much as long as your sprite editor can save the data as binary data with no headers or extraneous data.

Link to comment
Share on other sites

Here is new fixed version, LOADING and SAVING image data now works ok. If you press "L" or "S", you save the image to default name for selected player, for example SPRITE0 for player0. Using control key simultaneously with "L" or "S", you can save or load the image with your own filename. You can save also to drive 2 or any other if supported.

 

Thank you for the hint Shawn. I replaced ASM source code output to final 'S' file for assembler and CC65. I already wanted to include CC65 output, but those brackets in standard 'C' are not available in the Atari set. I also included source code header for Quick programming language.

 

You can also see the current POKE value for selected player.

 

Regards!

Edited by Gury
Link to comment
Share on other sites

Hi,

 

Here is new version of Sprite Engine. You can now put together all players to form multicolor player, use as player image data any Atari character from ATASCII set, position selected player around the screen with joystick to check new coordinates, mirror image vertically/horizontally, copy/paste image to another player and all options from previous versions. The option menu will grow, so for now there are two menus which you can choose by pressing Select console key.

 

Please check all the options and their key counterparts at http://gury.atari8.info/sprite_engine/sprite_engine.htm

 

Loading and saving player data includes atributes for color and luminance, and data is saved in decimal form (not binary as before). Saving to source code output now includes also ValForth (and similar) plus volksForth (thanks to Carsten)

 

ATR image includes MyDOS and autorun file, but if you like to run program manually (or program doesn't run automatically), use file SENGINE.XEX on disk.

 

I will appreciate any comments, suggestions and bug reports.

Enjoy!

Edited by Gury
Link to comment
Share on other sites

Looking really nice Gury. I like the option to overlay the sprites to see what they would look like as a single multi-coloured sprite. And you have a host of output options!!! I really must get my finger out and sort the pascal option for you.

Link to comment
Share on other sites

Thank you Pengwin and I am glad you like it. I will really appreciate if you do this for me, because Pascal output is still missing. I know the Pascal syntax is similar to each other, but maybe Draper Pascal is little different from Kyan Pascal. Maybe not syntax-side, but probably feature rich-side.

Link to comment
Share on other sites

and something else, feel free to take any cover scans you might be missing.

 

I shall be adding some more books soon, but I think you already have them.

Very kind of you, I will surely check what I am still missing. Your book covers will be of great help, also those of Atari User magazine you scanned. Evcerything on your site is great, from chatroom, to blog, software and other reading (including Atmos and Spectrum).

Link to comment
Share on other sites

Hi,

 

Here is new version of Sprite Engine. You can now put together all players to form multicolor player, use as player image data any Atari character from ATASCII set, position selected player around the screen with joystick to check new coordinates, mirror image vertically/horizontally, copy/paste image to another player and all options from previous versions. The option menu will grow, so for now there are two menus which you can choose by pressing Select console key.

 

Please check all the options and their key counterparts at http://gury.atari8.info/sprite_engine/sprite_engine.htm

 

Loading and saving player data includes atributes for color and luminance, and data is saved in decimal form (not binary as before). Saving to source code output now includes also ValForth (and similar) plus volksForth (thanks to Carsten)

 

ATR image includes MyDOS and autorun file, but if you like to run program manually (or program doesn't run automatically), use file SENGINE.XEX on disk.

 

I will appreciate any comments, suggestions and bug reports.

Enjoy!

Some people are probably confused with some of the options, like changing the color ("C" key) or position of the players ("N" key). In any of this options, when selecting new values, just press "Esc" key to go back. This is the way such options will work in my program. In final version it will be indicated more clearly, so everyone will know what to do. When multicolor player option is selected, just press Control-U to position your players to original positions.

 

Regards

Edited by Gury
Link to comment
Share on other sites

  • 1 month later...

Here is final version of the program with some little amendments: title screen added, additional line at the top and some optimizations and bug fixes. Documentation and download is here: http://gury.atari8.info/sprite_engine/sprite_engine.htm

 

DOS used is Atari DOS 2.5 with automatic loading of the program.

 

Regards

Edited by Gury
Link to comment
Share on other sites

Here is final version of the program with some little amendments: title screen added, additional line at the top and some optimizations and bug fixes. Documentation and download is here: http://gury.atari8.info/sprite_engine/sprite_engine.htm

 

DOS used is Atari DOS 2.5 with automatic loading of the program.

 

Regards

 

I've just had a very quick look at the final version, Gury. Love it. Very professional.

 

I can see this being used by a number of games programmers.

Link to comment
Share on other sites

  • 1 month later...

Hello there,

 

Here is a new version of Sprite Engine. Loading (Control-L) and saving (Control-S) of your players is more comfortable now, because you can enter filename without drive number (default drive is D: or D1:). Added is hexadecimal view of color and player position values. Source code output is richer with addition of Pascal declaration for player data. I don't know if there are any differences in declaring data types between several Pascal languages for Atari, like Draper, Kyan or Atari Pascal. If you are aware of those differences, please let me know. Every operation is intended with inverse text to know which one is in progress. Documentation and program download is available here: http://gury.atari8.info/sprite_engine/sprite_engine.htm. Any comments or suggestions most appreciated.

 

Regards

sengine1.zip

Link to comment
Share on other sites

  • 1 month later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...