Having written and tested my original next graphics tool, I found it was lacking a few features and contained some bugs that needed fixing, so rather than continuing with the development of the command line option I decided to write a whole new version using .net.
Presenting Version 2
What does it do? it will take most image formats and cuts them up into sprites/tiles for use in code with Spectrum Next games programming, It will allow you select images from sequences outputted from other tools, it will allow you to extract the palettes from images, edit those palettes, and then save them for later use.
During the processing of your images, it it will remap the images to the closest colours in your palette, remapping multiple images to a single palette if required. Also it will check for repeated, mirrored (both X and Y) and rotated sprites or tiles.
The output format of the tool is can be 4-bit or 8-bit sprites or 4-bit tiles, which are exported to either Assembly include file, a basic include file or a combination of a Assembly include file and a binary data file.
Instructions
I have tried to keep it simple to use while making it versatile and feature packed.
Projects
I have made the project files in XML format, so they can be humanly readable, yet they store all the your project settings so that you can simply continue where you left off over multiple sessions.
New Project
The new project button allows you to set the project name, this name is important as it forms the basis of your labels in the exported assembly / basic files, therefore I suggest you keep the name short but meaningful.
You can rename the project at any time by double clicking the project name in the project panel.
I have yet to implement a complete reset of the application as its just as simple to close it and open it again.
Open project
Opening a project from your computer
Save project
Save your project on your computer
Add images to your project
Clicking this button will allow you to add multiple images to your project, currently the application supports BMP, DIB, RLE, JPG, JPEG, JPE, JFIF, GIF, TIFF and PNG files, with the following formats.
8-bits per pixel Indexed colour images
32-bits per pixel R G B images
32-bits per pixel A R G B (8-8-8-8)
24-bits per pixel R G B (8-8-8)
16-bits per pixel R G B (5-6-5)
16-bits per pixel A R G B (1-5-5-5)
16-bits per pixel R G B (5-5-5)
You can add images to your project at any time, however to update the image in memory you will need to remove the image first using the remove image button on the project window. Simply highlight the image you wish to remove and click the button.
Also you can reorganise the order of your images, as you may want to organize your animations or tile sets different to how they are loaded, again you simply highlight the image you wish to reposition and click the up or down buttons.
Now to the meat and gravy of the application
The palette
The palette window is one of the main features of the application, as it allows you to remap you graphics to different pallets and allows you to create and edit the palettes before you map them.
So let’s have a look at the palette panel.
As you can see there are quite a few options available to you, so i will go through them one by one.
Colour mapping
You can select to have your graphics mapped to the standard Spectrum Next colour palette of 256 colours or 512 colours, this is nice, but it will mean that your sprites and characters would take up more space than necessary so its best to use the custom palette for games.
Custom pallets
The main feature is the custom pallet, using the palette tool you can import the palette from an image (first 256 on non palletised images), or you can import the colours from a Windows (Photoshop) .ACT file or a Apple .8BCT file. The palette import tool allows you to extract all or some of the colours and place them in any position in your 256 colour custom palette.
From is the index to start the import from, Count is how many colours to import, and Where to is the index in your custom palette you want to start the import at.
You can import as many colours as you like, you could even download some art from the internet and extract the palette to any location in your custom palette and then remap all your graphics to that palette if you want.
Other features of the palette tool allow you to save the palette in Windows (Photoshop) .ACT file or Apple .8BCT file formats.
You can also set the transparency index of your artwork by picking the colour in the palette, and or restrict the amount of colours you want your graphics to be mapped to.
If all that was not enough for you, you can also edit or define the colours by hand using the colour mixer, simply click any colour in the custom palette or import palettes and select the colour mixer from the pop up menu, choose a nice colour and add it to your custom palette.
From that popup menu in both the import and custom palettes you can also clear, copy and paste colours to arrange them exactly how you want them.
All that and we haven’t even got onto the output features yet :p
Output
The make button, cuts all the images in your image list into blocks/tiles or sprites, remapping them depending on the settings in the palette panel and output settings.
But before we get to the output I wish to discuss names, in the Spectrum next they call the character based screen a tile map which for me is fundamentally wrong, I understand why they may have done it but it does not gel in my mind.
Back in the day the Commodore 64 had a character based screen with each each character is 8×8 pixels, which was allowed game developers to remap the character set to game graphics, and use them for the background of games.
Does this sound familiar?
If you are making a large scolly game it becomes quite difficult to make a whole level just using 8×8 characters, placing them one character at a time. And with large 8×8 game level stored in memory, it would up loads of space, which is not good on a 8-bit machine. So along the way the developers at the time invented blocks which are groups of characters forming familiar objects which would be easy to map with and would take up much less space. So your map is made up of block references and you get the character indexes from inside the blocks.
Flexible
Which is why the blocks structure has been primarily implemented within Next Graphics, even though I have also allowed you completely ignore the blocks and map with the 8×8 characters instead if you wish. The tool will cut your art up into Sprites, which are simple 16×16 pixel blocks of graphical data and characters (Tiles) which are 8×8 pixel blocks of graphical data. It will save them as basic include file or an assembly file or even as raw binary data, with basic or assembly reference files.
Structure
When your art is drawn as a larger object both the sprites and the tiles produce a reference map (block) to how the object can be constructed in the game.
So for sprites it would be something like this (all byte values)
number of 16×16 sprites wide
number of 16×16 sprites tall
x offset from center of sprite
y offset from center of sprite
Palette offset with the X mirror,Y mirror, Rotate bits if set
4 bit colour bit and pattern offset bit if set
Index of the sprite at this position that makes up the frame
…… repeated wide * tall times
And for blocks / tiles
number of tiles (characters) tall
number of tiles (characters) wide
Palette offset with the X mirror,Y mirror, Rotate bits if set
index of the character at this position that makes up the block;
… repeated wide * tall times
So the output panel
Sprites vs Blockset
As mentioned previously you can choose between Sprite/Object or Tiles/blocks output, selecting sprites the output is 16×16 pixels, and blockset the output will be 8×8 pixels.
Width and Height
The width and height define the size in pixels of each object on your sprite sheet or block on your blockset.
Settings
I think the settings panel is mostly self explanatory however I will go through it one section at a time.
Ignore repeats of
By default the tool will remove repeated, mirrored, rotated or transparent graphics as space is limited and the hardware in the Spectrum Next has attributes that can be set to mirror and rotate.
However some games may need these retained therefore I have allowed you the option to keep them in the outputted data if you require them.
Output settings
Transparent first
This checkbox allows you to organise the output so that the characters/tiles with any transparent pixels are first in the tileset, this is mostly for something I am working on but you may find it useful.
4-Bit Sprites
Obviously the characters/blocks will be outputted in 4 bits per pixel format, however you have the option when producing sprites. Therefore when this checkbox is checked and you are creating sprites the output would be remapped using 4 bits per pixel output.
Binary+
The binary plus checkbox will change the Sprite and Tileset output into a binary file leaving just the mirror/rotation settings and frames in the source files.
Comments
The comments level dropdown allows you to remove the comments from the source file output as once you have coded up your engine using my data format you don’t need the comments anymore and depending on how many graphics you have in your game it may make it compile a little quicker.
Sprite Centre
As the name and layout of the panel suggests this allows you to add an offset to the base position of your sprite in the output file. For example a running walking character would probably have its base position at his feet where as a Spaceship would be better having its centre in the middle of the sprite. Anyhow the choice is yours depending on how you make your game.
Saving your output
Writing your output
Once you are happy with the output of your graphics it is time to chose your output file format where you have a choice of an Assembly or a Basic include file output by selecting the .asm or .bas file extension on the save file drop down.
Mapping tiles
Apart from the Assembly or Basic code files outputting a blockset/tileset, when checked it will also output a a bitmap that can be used for mapping with Mappy or Tiled.
Again quite self evident, with how many tiles to a row on the output bitmap, and the format of the bitmaps. BMP/PNG/JPG.
DEBUG
In these builds it opens a black window that is 2 x zoom of the output for my debugging purposes which may make its way into the app.
Reverse
In the latest versions below I have implemented a tool for turning the exported characters/tiles back into a blocks bitmap
why I hear you shout?
Well its so I can add details to the character set after they have been reduced and checked for mirrors or rotations, then when I turn them back into blocks for mapping all the repeats and mirrors etc, will have all the details.
Like here I made all the blocks and then processed them, then added all the noise using the dithered layer in photoshop, by doing it to the tile set after they have been processed, I don’t end up will a million different tiles with loads of different noise!
Where to Get it?
The windows source code is available on Git here, It will compile under window using Visual Studio .net and probably under mono for linux or OSX. To be fair your best bet is to clone the git project and build it on windows that way you will get all the updates! However I have compiled an windows version which again will run under mono for linux and I believe it will run under mono on OSX but it needs to be signed (please let me know if it does or doesn’t)
Windows/Linux 64-bit version 2.0.2.0 (unsigned)
Windows/Linux/Osx 32-bit version 2.0.2.0 (unsigned)
Typical Output from the Tool
The assembly file will look like this
// MyGame.asm // Created on Monday, November 2, 2020 10:06:58 AM by the NextGraphics tool from // patricia curtis at luckyredfish dot com MyGameColours: equ 7 MyGamePalette: db %11100011 // 255,0,255 db %00010111 // 3,169,219 db %10011011 // 156,203,233 db %10011011 // 156,204,233 db %00001001 // 1,81,106 db %11100000 // 255,0,0 db %01100000 // 123,0,0 MyGameSpritesSize: equ 128 MyGameSprites: equ 8 MyGameSprite0: .db $00,$00,$01,$11,$11,$10,$00,$00 .db $00,$00,$12,$32,$22,$31,$00,$00 .db $00,$11,$11,$11,$11,$11,$11,$00 .db $00,$11,$11,$45,$54,$41,$11,$00 .db $01,$11,$15,$55,$35,$54,$11,$10 .db $01,$11,$55,$53,$33,$55,$11,$10 .db $11,$11,$55,$53,$35,$55,$11,$11 .db $11,$16,$55,$55,$55,$55,$61,$11 .db $11,$16,$65,$55,$55,$55,$61,$14 .db $41,$11,$66,$66,$66,$66,$11,$14 .db $01,$11,$66,$66,$66,$66,$11,$10 .db $04,$11,$16,$66,$66,$61,$11,$40 .db $00,$41,$13,$16,$61,$31,$14,$00 .db $00,$44,$11,$33,$33,$11,$44,$00 .db $00,$00,$44,$11,$11,$44,$00,$00 .db $00,$00,$04,$44,$44,$40,$00,$00 MyGameSprite1: .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$11,$22,$33,$11,$00,$00 .db $00,$01,$22,$11,$11,$23,$10,$00 .db $00,$13,$11,$15,$51,$11,$21,$00 .db $01,$22,$15,$55,$35,$51,$12,$10 .db $01,$21,$55,$53,$33,$55,$13,$10 .db $11,$21,$55,$53,$35,$55,$13,$11 .db $11,$26,$55,$55,$55,$55,$62,$11 .db $11,$36,$65,$55,$55,$55,$62,$11 .db $41,$21,$66,$66,$66,$66,$12,$14 .db $01,$12,$66,$66,$66,$66,$31,$10 .db $04,$11,$31,$66,$66,$12,$21,$40 .db $00,$41,$13,$23,$32,$31,$14,$00 .db $00,$04,$41,$11,$11,$14,$40,$00 .db $00,$00,$44,$44,$44,$44,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 MyGameSprite2: .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$01,$11,$11,$10,$00,$00 .db $00,$01,$32,$35,$53,$33,$10,$00 .db $00,$13,$15,$55,$35,$51,$21,$00 .db $01,$31,$55,$53,$33,$55,$12,$10 .db $11,$21,$55,$53,$35,$55,$12,$11 .db $11,$26,$55,$55,$55,$55,$61,$11 .db $41,$21,$65,$55,$55,$55,$13,$11 .db $41,$12,$66,$66,$66,$66,$22,$14 .db $04,$11,$31,$66,$66,$13,$31,$40 .db $00,$41,$11,$32,$32,$11,$14,$00 .db $00,$04,$44,$11,$11,$44,$40,$00 .db $00,$00,$04,$44,$44,$40,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 MyGameSprite3: .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$05,$50,$00,$00,$00 .db $00,$00,$15,$55,$35,$51,$00,$00 .db $00,$11,$55,$53,$33,$55,$11,$00 .db $01,$11,$55,$53,$35,$55,$11,$10 .db $11,$16,$55,$55,$55,$55,$61,$11 .db $11,$11,$11,$55,$55,$11,$11,$14 .db $04,$11,$11,$32,$23,$21,$11,$40 .db $00,$44,$44,$41,$14,$44,$44,$00 .db $00,$00,$44,$44,$44,$44,$00,$00 .db $00,$00,$00,$06,$60,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 MyGameSprite4: .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$05,$50,$00,$00,$00 .db $00,$00,$05,$55,$35,$50,$00,$00 .db $00,$00,$55,$53,$33,$55,$00,$00 .db $01,$11,$11,$11,$11,$11,$11,$10 .db $41,$11,$11,$11,$11,$11,$11,$11 .db $44,$44,$44,$44,$44,$44,$44,$44 .db $04,$44,$44,$44,$44,$44,$44,$40 .db $00,$00,$66,$66,$66,$66,$00,$00 .db $00,$00,$06,$66,$66,$60,$00,$00 .db $00,$00,$00,$06,$60,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 MyGameSprite5: .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$05,$50,$00,$00,$00 .db $00,$00,$11,$32,$23,$11,$00,$00 .db $00,$11,$11,$11,$11,$11,$11,$00 .db $04,$44,$44,$44,$44,$44,$44,$10 .db $44,$44,$44,$45,$54,$44,$44,$44 .db $44,$46,$65,$55,$55,$55,$64,$44 .db $04,$41,$66,$66,$66,$66,$14,$40 .db $00,$44,$66,$66,$66,$66,$44,$00 .db $00,$00,$46,$66,$66,$64,$00,$00 .db $00,$00,$00,$06,$60,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 MyGameSprite6: .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$01,$13,$21,$10,$00,$00 .db $00,$01,$11,$11,$11,$11,$10,$00 .db $00,$11,$14,$44,$44,$41,$11,$00 .db $04,$44,$44,$43,$34,$44,$44,$10 .db $44,$44,$55,$53,$35,$55,$44,$44 .db $44,$44,$55,$55,$55,$55,$44,$44 .db $44,$46,$65,$55,$55,$55,$64,$44 .db $44,$41,$66,$66,$66,$66,$14,$44 .db $04,$41,$66,$66,$66,$66,$14,$40 .db $00,$44,$16,$66,$66,$61,$44,$00 .db $00,$04,$41,$16,$61,$14,$40,$00 .db $00,$00,$04,$44,$44,$40,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 MyGameSprite7: .db $00,$00,$00,$00,$00,$00,$00,$00 .db $00,$00,$01,$22,$32,$10,$00,$00 .db $00,$01,$11,$11,$11,$11,$10,$00 .db $00,$11,$11,$44,$44,$11,$11,$00 .db $01,$11,$44,$55,$35,$44,$11,$10 .db $01,$44,$45,$53,$33,$54,$41,$10 .db $44,$44,$55,$53,$35,$55,$44,$44 .db $44,$16,$55,$55,$55,$55,$64,$44 .db $44,$16,$65,$55,$55,$55,$61,$44 .db $44,$11,$66,$66,$66,$66,$11,$44 .db $04,$11,$66,$66,$66,$66,$11,$40 .db $04,$41,$16,$66,$66,$61,$14,$40 .db $00,$44,$11,$36,$63,$11,$44,$00 .db $00,$04,$41,$11,$11,$14,$40,$00 .db $00,$00,$04,$44,$44,$40,$00,$00 .db $00,$00,$00,$00,$00,$00,$00,$00 // number of sprites wide // number of sprites tall // x offset from center of sprite // y offset from center of sprite // Palette offset with the X mirror,Y mirror, Rotate bits if set // 4 bit colour bit and pattern offset bit // index of the sprite at this position that makes up the frame //...... repeated wide x tall times MyGameFrame0: .db 2,2, 0,0,0,128,0, 16,0,0,192,1, 0,16,0,128,0, 16,16,0,128,0 MyGameFrame1: .db 2,2, 0,0,0,128,2, 16,0,0,192,3, 0,16,0,128,0, 16,16,0,128,0 MyGameFrame2: .db 2,2, 0,0,0,128,4, 16,0,0,192,5, 0,16,0,128,0, 16,16,0,128,0 MyGameFrame3: .db 2,2, 0,0,0,128,6, 16,0,0,192,7, 0,16,0,128,0, 16,16,0,128,0 MyGameFrames: .dw MyGameFrame0,MyGameFrame1,MyGameFrame2,MyGameFrame3
The basic for the same sprites will look like this
10000 REM MyGame.bas 10005 REM Created on Monday, November 2, 2020 10:07:48 AM by the NextGraphics tool from 10010 REM patricia curtis at luckyredfish dot com 10015 LET MyGameColours = 7 10020 REM 10025 REM 10030 REM MyGame Palette starts here 10035 REM 10040 DATA 227,23,155,155,9,224,96 10045 LET MyGameSpritesSize = 128 10050 LET MyGameSprites = 8 10055 REM 10060 REM MyGameSprite0 Starts here 10065 REM 10070 DATA 0,0,1,17,17,16,0,0 10075 DATA 0,0,18,50,34,49,0,0 10080 DATA 0,17,17,17,17,17,17,0 10085 DATA 0,17,17,69,84,65,17,0 10090 DATA 1,17,21,85,53,84,17,16 10095 DATA 1,17,85,83,51,85,17,16 10100 DATA 17,17,85,83,53,85,17,17 10105 DATA 17,22,85,85,85,85,97,17 10110 DATA 17,22,101,85,85,85,97,20 10115 DATA 65,17,102,102,102,102,17,20 10120 DATA 1,17,102,102,102,102,17,16 10125 DATA 4,17,22,102,102,97,17,64 10130 DATA 0,65,19,22,97,49,20,0 10135 DATA 0,68,17,51,51,17,68,0 10140 DATA 0,0,68,17,17,68,0,0 10145 DATA 0,0,4,68,68,64,0,0 10150 REM 10155 REM MyGameSprite1 Starts here 10160 REM 10165 DATA 0,0,0,0,0,0,0,0 10170 DATA 0,0,17,34,51,17,0,0 10175 DATA 0,1,34,17,17,35,16,0 10180 DATA 0,19,17,21,81,17,33,0 10185 DATA 1,34,21,85,53,81,18,16 10190 DATA 1,33,85,83,51,85,19,16 10195 DATA 17,33,85,83,53,85,19,17 10200 DATA 17,38,85,85,85,85,98,17 10205 DATA 17,54,101,85,85,85,98,17 10210 DATA 65,33,102,102,102,102,18,20 10215 DATA 1,18,102,102,102,102,49,16 10220 DATA 4,17,49,102,102,18,33,64 10225 DATA 0,65,19,35,50,49,20,0 10230 DATA 0,4,65,17,17,20,64,0 10235 DATA 0,0,68,68,68,68,0,0 10240 DATA 0,0,0,0,0,0,0,0 10245 REM 10250 REM MyGameSprite2 Starts here 10255 REM 10260 DATA 0,0,0,0,0,0,0,0 10265 DATA 0,0,0,0,0,0,0,0 10270 DATA 0,0,1,17,17,16,0,0 10275 DATA 0,1,50,53,83,51,16,0 10280 DATA 0,19,21,85,53,81,33,0 10285 DATA 1,49,85,83,51,85,18,16 10290 DATA 17,33,85,83,53,85,18,17 10295 DATA 17,38,85,85,85,85,97,17 10300 DATA 65,33,101,85,85,85,19,17 10305 DATA 65,18,102,102,102,102,34,20 10310 DATA 4,17,49,102,102,19,49,64 10315 DATA 0,65,17,50,50,17,20,0 10320 DATA 0,4,68,17,17,68,64,0 10325 DATA 0,0,4,68,68,64,0,0 10330 DATA 0,0,0,0,0,0,0,0 10335 DATA 0,0,0,0,0,0,0,0 10340 REM 10345 REM MyGameSprite3 Starts here 10350 REM 10355 DATA 0,0,0,0,0,0,0,0 10360 DATA 0,0,0,0,0,0,0,0 10365 DATA 0,0,0,0,0,0,0,0 10370 DATA 0,0,0,5,80,0,0,0 10375 DATA 0,0,21,85,53,81,0,0 10380 DATA 0,17,85,83,51,85,17,0 10385 DATA 1,17,85,83,53,85,17,16 10390 DATA 17,22,85,85,85,85,97,17 10395 DATA 17,17,17,85,85,17,17,20 10400 DATA 4,17,17,50,35,33,17,64 10405 DATA 0,68,68,65,20,68,68,0 10410 DATA 0,0,68,68,68,68,0,0 10415 DATA 0,0,0,6,96,0,0,0 10420 DATA 0,0,0,0,0,0,0,0 10425 DATA 0,0,0,0,0,0,0,0 10430 DATA 0,0,0,0,0,0,0,0 10435 REM 10440 REM MyGameSprite4 Starts here 10445 REM 10450 DATA 0,0,0,0,0,0,0,0 10455 DATA 0,0,0,0,0,0,0,0 10460 DATA 0,0,0,0,0,0,0,0 10465 DATA 0,0,0,5,80,0,0,0 10470 DATA 0,0,5,85,53,80,0,0 10475 DATA 0,0,85,83,51,85,0,0 10480 DATA 1,17,17,17,17,17,17,16 10485 DATA 65,17,17,17,17,17,17,17 10490 DATA 68,68,68,68,68,68,68,68 10495 DATA 4,68,68,68,68,68,68,64 10500 DATA 0,0,102,102,102,102,0,0 10505 DATA 0,0,6,102,102,96,0,0 10510 DATA 0,0,0,6,96,0,0,0 10515 DATA 0,0,0,0,0,0,0,0 10520 DATA 0,0,0,0,0,0,0,0 10525 DATA 0,0,0,0,0,0,0,0 10530 REM 10535 REM MyGameSprite5 Starts here 10540 REM 10545 DATA 0,0,0,0,0,0,0,0 10550 DATA 0,0,0,0,0,0,0,0 10555 DATA 0,0,0,0,0,0,0,0 10560 DATA 0,0,0,5,80,0,0,0 10565 DATA 0,0,17,50,35,17,0,0 10570 DATA 0,17,17,17,17,17,17,0 10575 DATA 4,68,68,68,68,68,68,16 10580 DATA 68,68,68,69,84,68,68,68 10585 DATA 68,70,101,85,85,85,100,68 10590 DATA 4,65,102,102,102,102,20,64 10595 DATA 0,68,102,102,102,102,68,0 10600 DATA 0,0,70,102,102,100,0,0 10605 DATA 0,0,0,6,96,0,0,0 10610 DATA 0,0,0,0,0,0,0,0 10615 DATA 0,0,0,0,0,0,0,0 10620 DATA 0,0,0,0,0,0,0,0 10625 REM 10630 REM MyGameSprite6 Starts here 10635 REM 10640 DATA 0,0,0,0,0,0,0,0 10645 DATA 0,0,0,0,0,0,0,0 10650 DATA 0,0,1,19,33,16,0,0 10655 DATA 0,1,17,17,17,17,16,0 10660 DATA 0,17,20,68,68,65,17,0 10665 DATA 4,68,68,67,52,68,68,16 10670 DATA 68,68,85,83,53,85,68,68 10675 DATA 68,68,85,85,85,85,68,68 10680 DATA 68,70,101,85,85,85,100,68 10685 DATA 68,65,102,102,102,102,20,68 10690 DATA 4,65,102,102,102,102,20,64 10695 DATA 0,68,22,102,102,97,68,0 10700 DATA 0,4,65,22,97,20,64,0 10705 DATA 0,0,4,68,68,64,0,0 10710 DATA 0,0,0,0,0,0,0,0 10715 DATA 0,0,0,0,0,0,0,0 10720 REM 10725 REM MyGameSprite7 Starts here 10730 REM 10735 DATA 0,0,0,0,0,0,0,0 10740 DATA 0,0,1,34,50,16,0,0 10745 DATA 0,1,17,17,17,17,16,0 10750 DATA 0,17,17,68,68,17,17,0 10755 DATA 1,17,68,85,53,68,17,16 10760 DATA 1,68,69,83,51,84,65,16 10765 DATA 68,68,85,83,53,85,68,68 10770 DATA 68,22,85,85,85,85,100,68 10775 DATA 68,22,101,85,85,85,97,68 10780 DATA 68,17,102,102,102,102,17,68 10785 DATA 4,17,102,102,102,102,17,64 10790 DATA 4,65,22,102,102,97,20,64 10795 DATA 0,68,17,54,99,17,68,0 10800 DATA 0,4,65,17,17,20,64,0 10805 DATA 0,0,4,68,68,64,0,0 10810 DATA 0,0,0,0,0,0,0,0 10815 REM 10820 LET MyGameFrame0Width = 2 10825 LET MyGameFrame0Height = 2 10830 LET MyGameSprite0XOffset0 = 0 10835 LET MyGameSprite0YOffset0 = 0 10840 LET MyGameSprite0Attribute2Bits0 = 0 10845 LET MyGameSprite0FourBitBits0 = 128 10850 LET MyGameTile0Index0 = 0 10855 REM 10860 LET MyGameSprite0XOffset1 = 16 10865 LET MyGameSprite0YOffset1 = 0 10870 LET MyGameSprite0Attribute2Bits1 = 0 10875 LET MyGameSprite0FourBitBits1 = 192 10880 LET MyGameTile0Index1 = 1 10885 REM 10890 LET MyGameSprite0XOffset2 = 0 10895 LET MyGameSprite0YOffset2 = 16 10900 LET MyGameSprite0Attribute2Bits2 = 0 10905 LET MyGameSprite0FourBitBits2 = 128 10910 LET MyGameTile0Index2 = 0 10915 REM 10920 LET MyGameSprite0XOffset3 = 16 10925 LET MyGameSprite0YOffset3 = 16 10930 LET MyGameSprite0Attribute2Bits3 = 0 10935 LET MyGameSprite0FourBitBits3 = 128 10940 LET MyGameTile0Index3 = 0 10945 REM 10950 REM 10955 LET MyGameFrame1Width = 2 10960 LET MyGameFrame1Height = 2 10965 LET MyGameSprite1XOffset0 = 0 10970 LET MyGameSprite1YOffset0 = 0 10975 LET MyGameSprite1Attribute2Bits0 = 0 10980 LET MyGameSprite1FourBitBits0 = 128 10985 LET MyGameTile1Index0 = 2 10990 REM 10995 LET MyGameSprite1XOffset1 = 16 11000 LET MyGameSprite1YOffset1 = 0 11005 LET MyGameSprite1Attribute2Bits1 = 0 11010 LET MyGameSprite1FourBitBits1 = 192 11015 LET MyGameTile1Index1 = 3 11020 REM 11025 LET MyGameSprite1XOffset2 = 0 11030 LET MyGameSprite1YOffset2 = 16 11035 LET MyGameSprite1Attribute2Bits2 = 0 11040 LET MyGameSprite1FourBitBits2 = 128 11045 LET MyGameTile1Index2 = 0 11050 REM 11055 LET MyGameSprite1XOffset3 = 16 11060 LET MyGameSprite1YOffset3 = 16 11065 LET MyGameSprite1Attribute2Bits3 = 0 11070 LET MyGameSprite1FourBitBits3 = 128 11075 LET MyGameTile1Index3 = 0 11080 REM 11085 REM 11090 LET MyGameFrame2Width = 2 11095 LET MyGameFrame2Height = 2 11100 LET MyGameSprite2XOffset0 = 0 11105 LET MyGameSprite2YOffset0 = 0 11110 LET MyGameSprite2Attribute2Bits0 = 0 11115 LET MyGameSprite2FourBitBits0 = 128 11120 LET MyGameTile2Index0 = 4 11125 REM 11130 LET MyGameSprite2XOffset1 = 16 11135 LET MyGameSprite2YOffset1 = 0 11140 LET MyGameSprite2Attribute2Bits1 = 0 11145 LET MyGameSprite2FourBitBits1 = 192 11150 LET MyGameTile2Index1 = 5 11155 REM 11160 LET MyGameSprite2XOffset2 = 0 11165 LET MyGameSprite2YOffset2 = 16 11170 LET MyGameSprite2Attribute2Bits2 = 0 11175 LET MyGameSprite2FourBitBits2 = 128 11180 LET MyGameTile2Index2 = 0 11185 REM 11190 LET MyGameSprite2XOffset3 = 16 11195 LET MyGameSprite2YOffset3 = 16 11200 LET MyGameSprite2Attribute2Bits3 = 0 11205 LET MyGameSprite2FourBitBits3 = 128 11210 LET MyGameTile2Index3 = 0 11215 REM 11220 REM 11225 LET MyGameFrame3Width = 2 11230 LET MyGameFrame3Height = 2 11235 LET MyGameSprite3XOffset0 = 0 11240 LET MyGameSprite3YOffset0 = 0 11245 LET MyGameSprite3Attribute2Bits0 = 0 11250 LET MyGameSprite3FourBitBits0 = 128 11255 LET MyGameTile3Index0 = 6 11260 REM 11265 LET MyGameSprite3XOffset1 = 16 11270 LET MyGameSprite3YOffset1 = 0 11275 LET MyGameSprite3Attribute2Bits1 = 0 11280 LET MyGameSprite3FourBitBits1 = 192 11285 LET MyGameTile3Index1 = 7 11290 REM 11295 LET MyGameSprite3XOffset2 = 0 11300 LET MyGameSprite3YOffset2 = 16 11305 LET MyGameSprite3Attribute2Bits2 = 0 11310 LET MyGameSprite3FourBitBits2 = 128 11315 LET MyGameTile3Index2 = 0 11320 REM 11325 LET MyGameSprite3XOffset3 = 16 11330 LET MyGameSprite3YOffset3 = 16 11335 LET MyGameSprite3Attribute2Bits3 = 0 11340 LET MyGameSprite3FourBitBits3 = 128 11345 LET MyGameTile3Index3 = 0 11350 REM
Blocks/tiles output would be similar.
Looks amazing. đŸ™‚
Looks like just what I’ve been looking for – when will it released – or have I missed a download link?
Just sorting it!
Wow! Almost too good to be true! Just started salivating uncotrollably…
When, When?
NOW!!
Many thanks, Patricia!
First, let me congratulate you for your courage and present you my support to your publication of your gender change.
Hope you encourage and ease someone else’s life with your publication.
Secondly, I hope to have time and will to use your great program with something I can share with you in the next Next :).
Like you, I’m waiting for it after the Kickstarter 2.
I admire your curriculum in the games industry.
Keep up with your great contributions for us Next users.
All the best!
Cheers,
Carlos