Posts: 273
Threads: 51
Joined: May 2002
Are there any programs out there like pp256 that can create full screen 320x200 pictures, and can load a cutomized 768 byte palette? It's for my vertical shooter. For the base layer, instead of drawing a bunch of tiles, I want to draw out the terrain for all levels. It would look much better.
edit: oh by the way, my engine is coming along very nicely. It'll be able to handle a lot. If anybody's interrested in drawing some terrain or ennemies, let me know.
Posts: 6,419
Threads: 74
Joined: Mar 2002
I use the one and only Deluxe Paint IIe v.3. You can download it here: http://usuarios.lycos.es/qbsux/utils.html
You won't be able to load your palette, but you can put that palette into a PCX and load that PCX. Anyhow, the program's palette handling is superb (to create colour gradients, or to translate a section of the palette to another place, doing colour replacements...). This proggie is the one and only proggie I use for my pixel art.
Posts: 3,522
Threads: 189
Joined: Dec 2003
The easiest way would be to write a small sub that dumps the entire screen to a file, included with the palette.
The you do like this:
use QB's own gfx commands, line pset circle, aso to draw it.
Then call your sub to save the entire screen as your custom BMP.
Sure, some editing will be tough (antialising, blur aso :wink: ) but this is the easiest way, maybe not the fastest.
You could also try a BMP loader, here's one I'm using, it's originaly by rel, i just added so you can specify some things:
Code: TYPE BMPHeaderType 'All values are for 320*200*256 bmp
ID AS STRING * 2 '"BM"
Size AS LONG 'width*heigth+1078= 65078
RSV1 AS INTEGER '0 Reserved
RSV2 AS INTEGER '0 Reserved
offset AS LONG '1078 First Pixel(Scanline order)
HORZ AS LONG '40
WID AS LONG '320
HEI AS LONG '200
PLANES AS INTEGER '1 num of Planes
BPP AS INTEGER '8 Bits per Plane
COMPRESSION AS LONG '0
IMAGESIZE AS LONG '64000 Width *Height
XRES AS LONG '3790 X pels
YRES AS LONG '3780 Y pels
CLRUSED AS LONG '0 Colors used
CLRIMPORT AS LONG '0 Colors Important
Pal AS STRING * 1024 'Order=Blue*4, Green*4, Red*4, 0 * 4
END TYPE
'
'Rel.LoadBMP
'Original author: Relsoft
'Modified to use NVXFS and X, Y by Z!re (I removed the NVXFS support here)
'I also modified it to support anysized bmps (uncompressed and <320x200)
'
'segxRes% is the X lenght of the segment you are drawing to, screen 13 is 320.
'This is because I'm drawing to memory segments that may be < 320 wide
'
SUB Novix.LoadBMP (DestSeg%, segxRes%, sX%, sY%, File$, SwitchPal%, trans%)
'Loads a BMP to a layer or directly to the screen
'if you want it to be on screen pass &HA000 as DestSeg%
'only supports 256 color BMPs.
DIM BMP AS BMPHeaderType
F% = FREEFILE 'Get free filenum
OPEN File$ FOR BINARY AS #F% 'Binary read
GET #F%, , BMP 'Get header
'Our File Pointer points to 55 byte seek 55, first byte
'Pal should be 1024 in length
Pall$ = BMP.Pal
IF SwitchPal% THEN
IF LEN(Pall$) = 1024 THEN
OUT &H3C8, 0
FOR i% = 1 TO 1024 STEP 4
B% = ASC(MID$(Pall$, i%, 1)) \ 4
G% = ASC(MID$(Pall$, i% + 1, 1)) \ 4
r% = ASC(MID$(Pall$, i% + 2, 1)) \ 4
OUT &H3C9, r%
OUT &H3C9, G%
OUT &H3C9, B%
NEXT i%
END IF
END IF
'Read and Write time!!!
'Notes: Bad MS(I don't get it why they stored it backwards?)
Byte$ = SPACE$(BMP.WID)
DEF SEG = DestSeg%
Wide% = BMP.WID - 1 'Sub 1 since we start at zero
Hite% = BMP.HEI - 1
FOR Y% = Hite% TO 0 STEP -1
GET #F%, , Byte$
FOR X% = 0 TO Wide%
c% = ASC(MID$(Byte$, X% + 1, 1))
IF c% <> trans% THEN POKE (sX% + X%) + (sY% + Y%) * (segxRes + 0&), c%
'PSET (x%, y%), c%
NEXT X%
NEXT Y%
CLOSE #F
END SUB
Full credit to Rel for it... I just messed with it... No credit taken...
Posts: 1,752
Threads: 21
Joined: Jun 2002
I made a program waaaaay back in '98 called "QuickPaint" that can do that. It flickers quite a bit because I hadn't figured out double buffering, and I didn't use any libraries. One of these days I'll get around to making the next version...in the meantime, here's the old crappy version if you want it.
(Unfortunately, it doesn't work with NT/2K/XP...it has trouble reading the directory structure and refuses to load any files.)
You can load custom palettes by choosing File -> Load and then choosing a .PAL file (768-byte binary only). It will keep the current image open.
Posts: 273
Threads: 51
Joined: May 2002
Thanks guys
Zire: Oh, I already know how to do all that, like saving the screen to a binary file, I just don't want to have to write a whole bmp drawing program. Would I be able to use Photoshop? If I have all the RGB values from my palette, can I customize a 256 color palette in photoshop so when my picture is done, the colors would load fine in QB?
Posts: 3,522
Threads: 189
Joined: Dec 2003
I'm using photoshop...
Just use any paint program capable of saving 256color uncompressed bitmaps (MS paint, photoshop...)
But you have to think about the fact that, when you load a custompalette that fits the background your "ship" might get it's colors screwed.
For example, if the ship is blue and using palette index 9 (original palette) and your BMP uses color index 9 as black... you get it..
Posts: 440
Threads: 65
Joined: Sep 2001
My favourite is AutoDesk Animator for DOS. It's a 320x200, 256 color DOS image/fli editor and animator. Really cool, packed with tools.
Quote:I use the one and only Deluxe Paint IIe v.3. You can download it here: http://usuarios.lycos.es/qbsux/utils.html
Nathan, I was wondering what ZIP utility you used to create this zip. My winzip unzips it as empty, but PKZIP for DOS does it fine. Weird. Thanks for the tool, btw.
- Dav
Posts: 273
Threads: 51
Joined: May 2002
Thanks guys. That should be good for now
Posts: 6,419
Threads: 74
Joined: Mar 2002
Quote:Nathan, I was wondering what ZIP utility you used to create this zip. My winzip unzips it as empty, but PKZIP for DOS does it fine. Weird. Thanks for the tool, btw.
Most likely I used Norton Commander to ZIP it (easy, you mark at the files & dirs and press ALT+F5, enter a name, and done). It's really odd, I never had with it problems before. When I have time I'll reupload the file.
Posts: 26
Threads: 5
Joined: Mar 2004
anyone still use QB Draw 1.0 by Lior Zur? I never used it much but do have it still. if anyone needs it. I always thought it was a good prg.
Other than that, I'd just make my own drawing prg, it's always hard to figure out how to use other peoples stuff.
Like I use my sprite editor and save the sprites in a file with DATA 0,1,20 etc.. so I can just copy/paste it into another prg, or load it into a prg I made that will trim it down, create a mask, and bsave it.
I still like prgs that have everything included in 1 .bas file if possible.
'work in progress...''
|