Just played around a little with this. Nice tool! I was thinking if it would be possible to use this for creating bitmaps for some of the higher resolutions Mike and I developed over the years? Right now there is the 256-character-limit in your editor. Our display modes re-use characters by updating them on the fly. However for your editor I suppose you could add more "virtual" characters so one can edit higher resolution graphics?
For a 208x256 bitmap you would need 832 characters and for 224x280 you would need 980. Files could be saved as "straight" bitmap-data. The modes use such files anyway when Mike's PPM-converter does its job. I have another converter that takes the raw bitmap-data and generates the viewable file on the VIC.
Since there is no other way to pixel in those resolutions yet, and requests have been made pixel-artists this would be a welcome feature
Increasing the number of characters shouldn't present a problem, but I'm not sure what you mean by ~ "Files could be saved as "straight" bitmap-data. ".
I have a backlog of features to add to this when time permits, the main one of which is bitmap import.
beamrider wrote:I'm not sure what you mean by ~ "Files could be saved as "straight" bitmap-data."
The text screen contents of these overscan bitmap modes are constant. Their file formats thus don't bother to save the text screen along with the "character definitions" (a.k.a. bitmap in that context). Rather, the display routine of these modes can reconstruct the (address generating) text screen by itself.
Of course, the colour information (colour RAM and VIC registers $900E/$900F, possibly per scanline) also is retained.
MG pictures likewise don't store the text screen. The text screen contents are either restored by a routine in MINIGRAFIK itself, or by the built-in display routine located at $2188 when the picture is loaded to the normal BASIC start at $1201 and then RUN.
Sort all characters by screen usage
------------------------------------------
As the name suggests, this sorts all the UDC characters by screen order i.e. any screen using them. Any characters appearing on more than one of the 5 screens are placed first and so don't need to be swapped in/out. All references to the characters from screen ram are adjusted preserving screen layoutsBUT PROBABLY NOT ANY BITMAPS. [It may disturb the intra screen refs so you will need to update any refs to specific characters from your code..]
This facility is very useful when you are developing multi screen games (like Popeye for instance) where the graphics won't all fit in UDC space at once and require that [character] data be swapped in for each particular screen/level. .
The export now provides a commented report section showing the utilisation of the UDCs between the various screens as shown in the extract below. In this instance chars common to all screen finish at char 20, sreen 0 uses additional chars 20-49 and screen 1 starts at 49. So I can dynamically load screen 1 chars at position 20 when needed and apply a -29 char displacement anywhere they are referenced in code. Same for screens 2,3,4....
; Char Usage Report
; ================= 00 01 02 03 04
; Char Index (00) TotalScreenCount:03 ScreenUsage [0-4]: 22,22,06,--,--,
; Char Index (01) TotalScreenCount:02 ScreenUsage [0-4]: 03,--,01,--,--,
; Char Index (02) TotalScreenCount:02 ScreenUsage [0-4]: 16,67,--,--,--,
; Char Index (03) TotalScreenCount:03 ScreenUsage [0-4]: 40,93,41,--,--,
; Char Index (04) TotalScreenCount:02 ScreenUsage [0-4]: 02,01,--,--,--,
; Char Index (20) TotalScreenCount:03 ScreenUsage [0-4]: 09,11,60,--,--,
; Char Index (21) TotalScreenCount:01 ScreenUsage [0-4]: 03,--,--,--,--,
; Char Index (22) TotalScreenCount:01 ScreenUsage [0-4]: 01,--,--,--,--,
; Char Index (23) TotalScreenCount:01 ScreenUsage [0-4]: 02,--,--,--,--,
; Char Index (49) TotalScreenCount:01 ScreenUsage [0-4]: --,01,--,--,--,
; Char Index (50) TotalScreenCount:01 ScreenUsage [0-4]: --,13,--,--,--,
; Char Index (51) TotalScreenCount:01 ScreenUsage [0-4]: --,03,--,--,--,
; Char Index (64) TotalScreenCount:01 ScreenUsage [0-4]: --,--,02,--,--,
; Char Index (65) TotalScreenCount:01 ScreenUsage [0-4]: --,--,01,--,--,
; Char Index (66) TotalScreenCount:01 ScreenUsage [0-4]: --,--,01,--,--,
Smart Swap Pair
----------------------
Allows tweaking to the order by swapping character pairs but preserving any screen refernces.
Pleased to report a new release to version 0.65 which includes Image Import Functionality (experimental)...!
IMAGE IMPORT
=============
It is now possible to import a bitmap/jpg/png etc. into the Bitmap Editor. To do this prepare a bitmap as follows;
1) Select some screen cells for your bitmap to appear in (256 cells max)
2) Select a start character for your bitmap from the character table on the right of the screen - tick the multicolor box if you want the bitmap to be 4 color multi-color mode otherwise it will be monochrome.
3) Select "layout columns" to populate the selection with ordered characters
4) Select "Edit as Bitmap" (the bitmap editor opens) - Resize as required
... in the Bitmap Editor
5) Click "Choose File" to browse to the required file (a thumb nail of the selected file will be shown)
6) Click "Select All" (or select a smaller area with the mouse) to receive the imported image.
7) Choose conversion options as required.
8 ) Click "Paste to selection" to apply the image to the bitmap editor window.
(steps 7 & 8 can be repeated as required to achieve the best possible image)
9) After importing experiment with the background/border/aux colors at the top of the screen.
10) Character colors in the bitmap change be changed en mass by selecting the required characters on the screen and performing a "Fill" operation with the mask "Selected Operation Mask" set to only color selected. Click any character on the right and choose the required color before clicking fill.
11) The color registers used by the pixels within each character can be adjusted using the new "Select Screen Selection" function (see below).
Select Screen Selection
====================
This is a new button on the right hand side character editor. When clicked it selects in the table the any characters used in the screen selection rectangle. Using this it is then possible to adjust the color registers using the MC SWAP buttons. In the example image below, this was used to change the color of the Popeye letters below (which came out as border color[cyan]) to use the character color instead. A red character color was then filled as per step 11 above. This is extremely useful when working with bitmaps as it allows you to select areas of the bitmap and swap the color registers that the import may have chosen incorrectly.
**Notes**
- Feature is not 100% stable and needs code tidying. (I'll get around to this at some stage, but going back to work on Popeye again next...)
It sometimes may not work a second time you try or if you change the file etc. Please close browser window and retry if you experience difficulties.
- you may get better results if you pre-process images and simplfy them in a paint package before importing.
Good luck.
Last edited by beamrider on Tue Oct 13, 2015 6:19 am, edited 2 times in total.
pixel wrote:Are you planning to implement automatic character reuse anytime soon to go full size?
Yeah, that did occur to me, but it's on hold now as I'm back on Popeye. The main motivator was to get the title screen converted.
It's not too dificult to do manually tho, just copy and paste "similar" characters in the screen editor and then use the "Sort all characters by screen usage" feature to shuffle the unsused ones higher up the list.
Could you add a real pixel ratio feature to the main window?
If I select a 8x16 chars and update rows / cols values, it's difficult to draw things.
Automatic canvas stretch feature? 1xzoom, 2xzoom etc.