Jump to content
IGNORED

Background Images?


EmOneGarand

Recommended Posts

 

Alright, I've been going through trying to learn the ins and outs of the JagStudio after doing the tutorial, I'm having a hard time understanding how to work from the tutorial block for new assets in the rapinit.s file. I tried basing a background image off of the rapinit entries in a sample that had them but I get an image that is compressed horizontally and has horizontal black lines running through it. The image is 320x200, saved as an 24-bit bmp. The recolored bug2 sprite in the screenshot I did to see if it was just Photoshop messing up the format when I save it, that one showed up fine. How do I get an image to display properly?
How it looks after build:
screen1.thumb.png.8ce5897c6d47630e361c28379848ec23.png

What the image should look like:
bg1.bmp

 

assets.txt and rapinit.s entry

ABS,SPRITE_BUG,gfx_clut16,ASSETS\GFX\bug.bmp
ABS,SPRITE_BUG2,gfx_clut16,ASSETS\GFX\bug2.bmp
ABS,explode_sam,sfx_raw8000,ASSETS\SFX\explosion.wav
ABS,BG_STARS,gfx_clut16,ASSETS\GFX\bg1.bmp
ABS,SPRITE_BUG3,gfx_clut16,ASSETS\GFX\bug3.bmp
  ; BG1
    dc.l    1                                ; (REPEAT COUNTER)                 ; Create this many objects of this type (or 1 for a single object)
    dc.l    is_active                        ; sprite_active                    ; sprite active flag
    dc.w    0,0                              ; sprite_x                        ; 16.16 x value to position at
    dc.w    0,0                              ; sprite_y                        ; 16.16 y value to position at
    dc.w    0,0                              ; sprite_xadd                    ; 16.16 x addition for sprite movement
    dc.w    0,0                              ; sprite_yadd                    ; 16.16 y addition for sprite movement
    dc.l    320                              ; sprite_width                    ; width of sprite (in pixels)
    dc.l    200                              ; sprite_height                    ; height of sprite (in pixels)
    dc.l    is_normal                        ; sprite_flip                    ; flag for mirroring data left<>right
    dc.l    0                                ; sprite_coffx                    ; x offset from center for collision box center
    dc.l    0                                ; sprite_coffy                    ; y offset from center for collision box center    
    dc.l    32/2                             ; sprite_hbox                    ; width of collision box
    dc.l    5/2                              ; sprite_vbox                    ; height of collision box
    dc.l    BG_STARS                         ; sprite_gfxbase                ; start of bitmap data
    dc.l    24                               ; (BIT DEPTH)                    ; bitmap depth (1/2/4/8/16/24)
    dc.l    is_RGB                           ; (CRY/RGB)                        ; bitmap GFX type
    dc.l    !is_trans                        ; (TRANSPARENCY)                ; bitmap TRANS flag
    dc.l    320*200                          ; sprite_framesz                ; size per frame in bytes of sprite data
    dc.l    320                              ; sprite_bytewid                ; width in bytes of one line of sprite data
    dc.l    0                                ; sprite_animspd                ; frame delay between animation changes
    dc.l    0                                ; sprite_maxframe                ; number of frames in animation chain
    dc.l    ani_rept                         ; sprite_animloop                ; repeat or play once
    dc.l    edge_ignore                      ; sprite_wrap                    ; wrap on screen exit, or remove
    dc.l    spr_inf                          ; sprite_timer                    ; frames sprite is active for (or spr_inf)
    dc.l    spr_linear                       ; sprite_track                    ; use 16.16 xadd/yadd or point to 16.16 x/y table
    dc.l    0                                ; sprite_tracktop                ; pointer to loop point in track table (if used)
    dc.l    spr_unscale                      ; sprite_scaled                    ; flag for scaleable object
    dc.l    %00100000                        ; sprite_scale_x                ; x scale factor (if scaled)
    dc.l    %00100000                        ; sprite_scale_y                ; y scale factor (if scaled)
    dc.l    -1                               ; sprite_was_hit                ; initially flagged as not hit
    dc.l    1                                ; sprite_CLUT                    ; no_CLUT (8/16/24 bit) or CLUT (1/2/4 bit)
    dc.l    !can_hit                         ; sprite_colchk                    ; if sprite can collide with another
    dc.l    cd_keep                          ; sprite_remhit                    ; flag to remove (or keep) on collision
    dc.l    single                           ; sprite_bboxlink                ; single for normal bounding box, else pointer to table
    dc.l    1                                ; sprite_hitpoint                ; Hitpoints before death
    dc.l    2                                ; sprite_damage                    ; Hitpoints deducted from target
    dc.l    320                              ; sprite_gwidth                    ; GFX width (of data)

 

Link to comment
Share on other sites

This one is quite simple - don't use 24 bit.  It's a special case, chews bandwidth and isn't fully supported by the API yet.

 

However, given that:

   dc.l    320*200                          ; sprite_framesz                ; size per frame in bytes of sprite data
    dc.l    320                              ; sprite_bytewid                ; width in bytes of one line of sprite data
dc.l    320                              ; sprite_gwidth                    ; GFX width (of data)

framesz 320*200*3 (24 bit is 3 bytes per pixel)

bytewid 320*3

gwidth 320*3

 

Still not sure this will work, due to the above 24 bit, but those numbers are wrong in your file.

Link to comment
Share on other sites

43 minutes ago, CyranoJ said:

This one is quite simple - don't use 24 bit.  It's a special case, chews bandwidth and isn't fully supported by the API yet.

 

However, given that:


   dc.l    320*200                          ; sprite_framesz                ; size per frame in bytes of sprite data
    dc.l    320                              ; sprite_bytewid                ; width in bytes of one line of sprite data

dc.l    320                              ; sprite_gwidth                    ; GFX width (of data)

framesz 320*200*3 (24 bit is 3 bytes per pixel)

bytewid 320*3

gwidth 320*3

 

Still not sure this will work, due to the above 24 bit, but those numbers are wrong in your file.

Well, almost have it looking right. I tried to change the image to 16-bit but it turned out scrambled even when I adjusted it (with *2 instead of *3).
with the 24-bit settings:

dc.l    24                                ; (BIT DEPTH)

dc.l    320*200*3                   ; sprite_framesz

dc.l    320*3                          ; sprite_bytewid

dc.l    320*3                          ; sprite_gwidth

24bit.thumb.png.74788a809612be827fba4e16442d0b69.png

with a 16-bit image and settings:

dc.l    16                                ; (BIT DEPTH)

dc.l    320*200*2                   ; sprite_framesz

dc.l    320*2                          ; sprite_bytewid

dc.l    320*2                          ; sprite_gwidth

16bit.thumb.png.711e29928e7bd357ca50d35b5006d3d1.png

Link to comment
Share on other sites

Checked the file:

 

    dc.l    320                                ; sprite_width                    ; width of sprite (in pixels)
    dc.l    220                                ; sprite_height                    ; height of sprite (in pixels)

 

Your image is 200 high, you have height set at 220.  This is why you are getting junk at the bottom in the first image above. 

Link to comment
Share on other sites

42 minutes ago, CyranoJ said:

Checked the file:

 

    dc.l    320                                ; sprite_width                    ; width of sprite (in pixels)
    dc.l    220                                ; sprite_height                    ; height of sprite (in pixels)

 

Your image is 200 high, you have height set at 220.  This is why you are getting junk at the bottom in the first image above. 

Thanks, that fixed the issue!

  • Like 1
Link to comment
Share on other sites

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...