EmOneGarand Posted February 22, 2022 Share Posted February 22, 2022 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: 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) Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted February 22, 2022 Share Posted February 22, 2022 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. Quote Link to comment Share on other sites More sharing options...
EmOneGarand Posted February 22, 2022 Author Share Posted February 22, 2022 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 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 Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted February 22, 2022 Share Posted February 22, 2022 Probably easier if you post the tile and the rapinit.s ... ... or try us on the Atari Jaguar Fans discord channel? Quote Link to comment Share on other sites More sharing options...
EmOneGarand Posted February 22, 2022 Author Share Posted February 22, 2022 18 minutes ago, CyranoJ said: Probably easier if you post the tile and the rapinit.s ... ... or try us on the Atari Jaguar Fans discord channel? test.zip Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted February 22, 2022 Share Posted February 22, 2022 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. Quote Link to comment Share on other sites More sharing options...
EmOneGarand Posted February 22, 2022 Author Share Posted February 22, 2022 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! 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.