Jump to content
Clint Thompson

Help me start from scratch...

Recommended Posts

Are there known issues with audio clipping when looping music on the U235 sound engine? The few mp3's I've tried pop near the end of the audio clip before restarting in VJ. Maybe it doesn't have that problem on real hardware but asking just in case.

Share this post


Link to post
Share on other sites

 

Well that's a bummer.

 

If it's unable to fade-in then I'm not sure how it would shift the entire screen around randomly fast enough with like a -5/+5 random on the x,y to make it appear to shake?

 

Fading a 16 bit screen would require processing 320x200x2 bytes of data smoothly.

 

Moving the screen around requires changing its x/y position and letting the ObjectProcessor do it's thing.

 

Remember, there is NO DISPLAY BUFFER. The display is entirely build from objects, line by line.

 

Drawing an object at a different x/y is no faster or slower than leaving it where it was :)

  • Like 1

Share this post


Link to post
Share on other sites

can somebody please give a code example of how to properly display a 24 bit static image with RB+. The reason I am wanting this is not so you do the work for me. It's because I had it working this morning and I changed something and now it is not working. The image in question is 354 X 240 it IS 24 bit. Not only do I want the proper code so I can continue forward, I want to know what I changed and exactly WHAT I have done wrong. I don't understand what I did. I had the color mode for the object set to 24. each additional width setting CALLS for a *4 beside it in order for it to work. Instead I tried a *2 on everything and it loaded the image PERFECTLY. Now when I got home from work I remade the title screen and saved it as a 24 bit image (just like this morning) I changed something. I DONT KNOW WHAT, in the rapapin.s file when I came home. Now I can't load anything but 4 bit bmps AGAIN. attached is the wicked bad ass title screen I want.

doger.bmp

Share this post


Link to post
Share on other sites

can somebody please give a code example of how to properly display a 24 bit static image with RB+. The reason I am wanting this is not so you do the work for me. It's because I had it working this morning and I changed something and now it is not working. The image in question is 354 X 240 it IS 24 bit. Not only do I want the proper code so I can continue forward, I want to know what I changed and exactly WHAT I have done wrong. I don't understand what I did. I had the color mode for the object set to 24. each additional width setting CALLS for a *4 beside it in order for it to work. Instead I tried a *2 on everything and it loaded the image PERFECTLY. Now when I got home from work I remade the title screen and saved it as a 24 bit image (just like this morning) I changed something. I DONT KNOW WHAT, in the rapapin.s file when I came home. Now I can't load anything but 4 bit bmps AGAIN. attached is the wicked bad ass title screen I want.

attachicon.gifdoger.bmp

 

Go and read the bit ggn wrote about where it converts it down to 16 bit, change the *4 to *2... other than that, without your code, there's not much else we can say.

Share this post


Link to post
Share on other sites

; title - object 23
; value possible values description rb+ label to access
dc.l 1 ; ; How many sprites like this one do you want in the sprite list?
dc.l is_active ; is_active is_inactive ; Will the sprite be active on screen or inactive? ; R_sprite_active
dc.w 0,0 ; ; Put sprite this many pixels from left side of screen. ; R_sprite_x
dc.w 0,0 ; ; Put sprite this many pixels down from top of screen. ; R_sprite_y
dc.w 0,0 ; ; How many pixels will this sprite move automatically in x? ; R_sprite_xadd
dc.w 0,0 ; ; How many pixels will this sprite move automatically in x? ; R_sprite_xadd
dc.l 352 ; ; Width of sprite in pixels ; * R_sprite_width
dc.l 240 ; ; Height of sprite in pixels ; * R_sprite_height
dc.l is_normal ; is_normal is_flipped ; Will the sprite be mirrored in x? ; R_sprite_flip
dc.l 0 ; ; Collision box x offset - pixel distance from centre of sprite ; * R_sprite_coffx
dc.l 0 ; ; Collision box y offset - pixel distance from centre of sprite ; * R_sprite_coffy
dc.l 352 ; ; Width of collision box from centre in pixels ; * R_sprite_hbox
dc.l 240 ; ; Height of collision box from centre in pixels ; * R_sprite_vbox
dc.l SPRITE_TITLE ; ; Place in memory where the sprite lives: label from RAPAPP.S ; R_sprite_gfxbase
dc.l 24 ; 1 2 4 8 16 24 ; Sprite graphics type: 1,2,4,8,16 or 24 bit ; * R_sprite_?
dc.l is_RGB ; is_RGB is_cry ; Sprite graphics type. RGB or Atari's CRY format. ; * R_sprite_?
dc.l is_opaque ; is_trans is_opaque ; Trans for see-through background, opaque for solid background ; * R_sprite_?
dc.l 352*240*2 ; ; Size of sprite in bytes - used to find next frame of animation ; R_sprite_framesz
; Enter the x-size * the y-size and add the following next:
; /8 for 1bit
; /4 for 2bit
; /2 for 4bit
; nothing for 8bit
; *2 for 16bit
; *4 for 24bit
dc.l 352*2 ; ; Width of a single row of sprite pixels ; * R_sprite_bytewid
; Enter the x-size and add the following:
; /8 for 1bit
; /4 for 2bit
; /2 for 4bit
; nothing for 8bit
; *2 for 16bit
; *4 for 24bit
dc.l 0 ; ; Number of screen updates (VB) before the animation advances ; R_sprite_framedel
dc.l 0 ; ; Additional number of animation frames after the first ; R_sprite_maxframe
dc.l ani_rept ; ani_rept ani_once ; Loop theanimation or play a single time ; R_sprite_animloop
dc.l edge_wrap ; edge_wrap R_edge_kill ; What do you want to do if sprite leaves the edge of the screen? ; R_sprite_wrap
dc.l spr_inf ; spr_inf ; Want sprite to stay forever or a number of frames? ; R_sprite_timer
dc.l spr_linear ; spr_linear ; Use automatic movement above or use a tracking table. ; R_sprite_track
dc.l 0 ; ; If using above tracking table, input the loop point here ; R_sprite_tracktop
dc.l spr_unscale ; spr_unscale spr_scale ; Is the sprite going to be scaleable or not scaled? ; R_spr_scaled
dc.l 32 ; ; 32 is 1:1. 0-31 are scaled down, 33-255 are scaled up. ; R_sprite_scale_x
; It's probably best to think of the binary number %00100000...
; Adding numbers to the right increases the size fractionally...
; Adding them to the left increases buy a factor of one each time
; So %01000000 is scaled 2x bigger than the original
; %00010000 is scaled half size
; %00010001 is a tiny bit bigger than half size
dc.l 32 ; ; 32 is 1:1. 0-31 are scaled down, 33-255 are scaled up. ; R_sprite_scale_y
; See above for more info.
dc.l -1 ; ; Did the sprite collide with another? ; R_sprite_was_hit
; Set to not hit to begin with, used later to flag collisions
dc.l no_CLUT ; no_CLUT ; Define sprite colours. ; R_sprite_CLUT
; no_CLUT for 8, 16 and 24bit
; CLUT number 0 to 15 for 1, 2 and 4bit
dc.l can_hit ; can_hit cant_hit ; Want to be able to check if this sprite hits others? ; R_sprite_colchk
dc.l cd_keep ; cd_keep cd_remove ; What to do if a collision is detected. ; R_sprite_remhit
dc.l single ; single ; Bounding box for collision detect 'single'. Or address of table ; R_sprite_bboxlink
dc.l 1 ; ; Hit points before sprite is killed ; R_sprite_hitpoint
dc.l 0 ; ; Hit points inflicted upon other sprites ; R_sprite_damage
dc.l 352*2 ; ; Width of sprite within larger graphic. ; R_sprite_gwidth
; Enter the x-size and add the following:
; /8 for 1bit
; /4 for 2bit
; /2 for 4bit
; nothing for 8bit
; *2 for 16bit
; *4 for 24bit

Share this post


Link to post
Share on other sites

Turns out it was an image problem the entire time and not a coding issue - what a pain in the ass. XnView doesn't seem to work properly and even doing the same thing a second time, does something weird where the Jaguar refuses to convert it and comes up with some clut error - yes, verified they are both the same size and 24bit so I have no idea what's going on there but since we have one image that works, we just keep pasting into that one and saving over it should we need to change something:

 

post-985-0-75773200-1484977845_thumb.png

 

FINALLY! A nice screen... but then when moving it down, there's a blue background for some reason (and why does this screen look like it's bigger than 240 since the image I'm using is 240 in H?

 

post-985-0-06271500-1484978181_thumb.png

post-985-0-37821400-1484978169_thumb.png

 

Now the blue bar at the top:

 

post-985-0-59695100-1484978218_thumb.png

 

Either way, it looks 1,000% better than this garbage:

 

post-985-0-66863900-1484978239_thumb.png

 

I punched in colour 1 and other variables thinking it could possibly change the background but no love. The blue on the top and black space gap on the bottom is hell, I'm OCD.

 

Also noticed the gfx_clut and no_clut stuff again, since it's a 24bit image, shouldn't the assets be labeled as no_clut or is that not the same thing? Forgive my ignorance.

 

Did stumble upon some cool trickery mess (error I'm sure lol) that reminded me of 2600 scanlines when dropping the ,0 before the 20 x placement, you get nice fast scrollies:

 

post-985-0-76929300-1484978560_thumb.png

 

Also, playing around with chessboard mp3 convert to raw and editing the checkered board results in this quick stupid easy fun:

 

Edited by Clint Thompson
  • Like 2

Share this post


Link to post
Share on other sites

I'm making terrible progress but I am focusing more on experimenting right now anyway... JJ's is looking badass though - post those screenies fool!

 

"You didn't change anything! Oh... the road" -JJ

 

lol

 

post-985-0-73751400-1484981750_thumb.png

 

 

Share this post


Link to post
Share on other sites

post-45896-0-90196400-1484982300_thumb.jpg

post-45896-0-38820900-1484982326_thumb.jpg

https://www.youtube.com/watch?v=hx-uf-y724w&feature=youtu.be

 

 

Ribbit....

 

 

 

Goals for this project.

4 levels

snow

street

lava

beach

Thats it. Also going to try and add a game over screen lives and a score. Hopefully I can knock this out in a week. :) I'm learning fast!

 

Ah I almost forgot, I also want to have an opening intro of the old yellow jaguar from the tv ad back in the day jumping in and eating the Wave 1 Games logo. I have already ripped the animation from the video clip and I think I know how to do it (While playing the sound from high voltage softwares Vid Grid into, all the snarling) ;) Might even throw a made with Raptor engine logo in there!

Edited by Jeffrey_Bones
  • Like 3

Share this post


Link to post
Share on other sites

Really impressed with your progress JJ / recommend you scale down the frog like I did though because you'll never make it through the game with those long ass legs ;) I also noticed there is something wrong (even with regular frog size) with detection on the squabble logs originally in the project and even though you land on it, your frog is a dead dog drowner.

 

+Learned that the blue bar at the top is the underlying street sky graphic background so once you hit A the title screen just goes inactive and the actual game layer is revealed. No wonder the fade-in couldn't work ;)

 

+Learned how to make the frog graphic 16x16 and look normal though I'm still super shitty about GIMP not complying to me export/saving demands of 4bit color.

 

The rest I think I can manage but I simply cannot get the convert MP3 to playback and loop using the SNDZEROPLAY function - that or I don't know where to place it so it'll work properly. I want it in two places - one for intro music and one for in-game music. Please help!

 

The rest I'll still tinker with now that I'm slowly understanding how to manipulate and alter the object list manually.

 

Thanks!

Share this post


Link to post
Share on other sites

Well, I'm really glad you guys are making progress! And don't worry, making things explode is a part of the process - you should have seen what was happening when the language was in alpha stage :).

 

Regarding the audio popping Clint mentioned - is it possible that the sample loop is bad? Can you try playing it looped inside an audio editor? If that sounds ok, what sound engine are you using - Zerosquare's or U235?

 

As for XNview, I'm not sure - we've used it for years and I can't remember it having erratic behaviour. Just mind the conversion steps you do, check that the pic's bit depth is what you want to feed rb+ and hit save - it should be alright. Otherwise, if you can reproduce a problem you can upload it here and I'll take a look.

 

I can't see any other outstanding questions in this thread - let us know if there's something you want to know!

  • Like 1

Share this post


Link to post
Share on other sites

I didn't even realize that Zerosquare's audio player was not the U235 player so there's that (added to Idiot Checklist 101) ;-)

 

Do they both do MP3 conversion to RAW data for the Jaguar to playback? I made sure both front and end of audio clip was silent so the clipping isn't from the audio source though I'm not sure what the Jaguar does when it's looping. It's like it shuts off then shuts back on again once it's loops which is why for the pop or click once the file is played over again?

 

Tell me which one I need to be using but I can't even get the SNDZEROPLAY to work in the Doger project. What do I need to do?

Share this post


Link to post
Share on other sites

I am wanting to create a scrolling text object to come in at the start of the level. I want to use my own .bmps for the text as I like my fonts and typefaces better and the whole Jaguar font thing is a mess from what I can tell. I am guessing a way to trigger this object would be by using one of the joypad call functions. for example you press B and the object becomes active. how would I make it "go away" once it has served its purpose and scrolled to the other side of the screen? A good example of the effect I am talking about is in CJ's Rebboteroids. I believe there are custom sprites that say wave 1 or get ready or something to that effect.

 

One other thing I want to do for this trick is to have all 4 levels text on the same .bmp image. If I am understanding this correctly I think I have to create each new scrolling object and then change the spot of the .bmp or sprite that is shown..... I'm not sure what I'm asking but I know what I'm thinking. Stay tuned for this one I may have a question if I can't figure it out

Edited by Jeffrey_Bones

Share this post


Link to post
Share on other sites

I didn't even realize that Zerosquare's audio player was not the U235 player so there's that (added to Idiot Checklist 101) ;-)

 

Do they both do MP3 conversion to RAW data for the Jaguar to playback? I made sure both front and end of audio clip was silent so the clipping isn't from the audio source though I'm not sure what the Jaguar does when it's looping. It's like it shuts off then shuts back on again once it's loops which is why for the pop or click once the file is played over again?

 

Tell me which one I need to be using but I can't even get the SNDZEROPLAY to work in the Doger project. What do I need to do?

In layman's terms:

 

- U235 sound engine: Can play .mod files and up to 4 uncompressed 8bit samples (raw)

- Zerosquare sound engine: Can play up to 4 samples but they can be compressed (using adpcm). The compressed samples can be 16bit too.

 

U235 sound engine is wired up differently than zerosquare's (you need to edit rapu235.s), so no automatic conversion happening there, sorry.

 

[EDIT] To see how to switch between the two and what commands are available, have a look at the quickref roc (in the docs folder).

 

I am wanting to create a scrolling text object to come in at the start of the level. I want to use my own .bmps for the text as I like my fonts and typefaces better and the whole Jaguar font thing is a mess from what I can tell. I am guessing a way to trigger this object would be by using one of the joypad call functions. for example you press B and the object becomes active. how would I make it "go away" once it has served its purpose and scrolled to the other side of the screen? A good example of the effect I am talking about is in CJ's Rebboteroids. I believe there are custom sprites that say wave 1 or get ready or something to that effect.

 

One other thing I want to do for this trick is to have all 4 levels text on the same .bmp image. If I am understanding this correctly I think I have to create each new scrolling object and then change the spot of the .bmp or sprite that is shown..... I'm not sure what I'm asking but I know what I'm thinking. Stay tuned for this one I may have a question if I can't figure it out

Find sample code for a scroller here: http://atariage.com/forums/topic/237882-tutorial-coding-a-scroller/

Edited by ggn

Share this post


Link to post
Share on other sites

Today has been mostly working on art assets. Maybe I do things ass backwards but I'm doing things I know I can do right away and plus I need to make sure I can get the character graphics to work as intended, which is my next step after changing the sound player - thanks for the tip GGN!

 

"One is the loneliest number that you'll ever do..."

 

Why make 1 frog when you can make a trillion - or in this case, just a few more for possible options. I started rendering my little 32x32 frogs today and decided to give it a possible jump animation. Between the 2nd graphic and a scaled bitmap on each jump to the new graphic in 16-bit (god I can only hope this is actually going to work) it should look... really nice. Either way I know this means the entire thing will have to be changed or altered slightly but such as sliced bread, eh?

 

A little bit of everything...

 

post-985-0-21104600-1485053130_thumb.jpg

 

Then scaled it down and a few more varieties:

 

post-985-0-31418500-1485053173_thumb.jpg

post-985-0-90410500-1485053182_thumb.jpg

 

5 all in all - blue, red, green, yellow and albino...

 

post-985-0-25774700-1485053241_thumb.jpg

 

Then to wiggle them around a little bit for the animation jump:

 

post-985-0-60143300-1485053302_thumb.jpg

 

Had a little bit of time left over so rendered in a new title screen and game over screen.... I'm sure there will be a few more screenies throughout including a suicide image.

 

post-985-0-81304100-1485053397_thumb.jpg

 

post-985-0-05710500-1485053413_thumb.jpg

 

Hopefully I'll be able to figure out this Zerosquare/U235 player music stuff tonight!

  • Like 5

Share this post


Link to post
Share on other sites

One thing to remember with scaled sprites...

 

....there is a bug in the jaguar hardware (Shock! No? Really?) ....

 

keep the rightmost edge of the sprite clear for 1 pixel, or it'll garble when scaling.

  • Like 1

Share this post


Link to post
Share on other sites

One thing to remember with scaled sprites...

 

....there is a bug in the jaguar hardware (Shock! No? Really?) ....

 

keep the rightmost edge of the sprite clear for 1 pixel, or it'll garble when scaling.

 

Thanks for the tip!

 

I just had another success moment after switching out the U235 with Zerosquares music player and was quite pleased with my wobbly bassy dubstep playing to the new title screen.... comes at the sacrifice of control and gameplay because apparently now there's no user input with the Zerosquare but it's with the U235 and you can't have the best of both worlds?

 

So now wtf do I do lol

Edited by Clint Thompson

Share this post


Link to post
Share on other sites

 

Thanks for the tip!

 

I just had another success moment after switching out the U235 with Zerosquares music player and was quite pleased with my wobbly bassy dubstep playing to the new title screen.... comes at the sacrifice of control and gameplay because apparently now there's no user input with the Zerosquare but it's with the U235 and you can't have the best of both worlds?

 

So now wtf do I do lol

 

Different mechanism to read the pad for ZeroPlayer - the DSP handles input in both players, so you have to look in different places for the pad :)

Share this post


Link to post
Share on other sites

 

Different mechanism to read the pad for ZeroPlayer - the DSP handles input in both players, so you have to look in different places for the pad :)

 

Mother f..... I mean, of course! =D lol

 

Anyways, I got the sound to work... far more important than gameplay lol

 

Edited by Clint Thompson

Share this post


Link to post
Share on other sites

You might find this hard to believe but this is pissing me off again...

SUB waitforplayertostart                                            ' The is the subroutine where we wait for the player to push the button.
    DO
	
	    pad1=GETPAD(1)                                        ' Read the jagpad state.
    
        IF pad1=zero_left_pad BAND Input_Pad_A THEN                                          ' If B was pressed, we can move the titles off screen and begin the game.
            RSETOBJ(title,R_sprite_y,-255<<16)
            gamestart=1                                             ' gamestart is set to 1, so the IF.. statement in the main game loop will not be true
        ENDIF                                                       '   and this sub will not be called again.
        
    LOOP UNTIL gamestart=1
END SUB

What am I doing wrong. I've changed pad1= and replaced getpad(1) with ZEROPAD(), which doesn't work, also to pad1=read_pad, which doesn't work and I've probably monkied around a few other ways. If I remove the pad1= from the IF statement and just leave that in there (which I figured wouldn't work since it's not pulling the data from an input variable like the pad1 does) it does load up, flashes the title screen and goes straight to the gameplay.

Edited by Clint Thompson

Share this post


Link to post
Share on other sites

Here is what I did today. This will be my boot up screen for all of the games I make for cartridge using RB+. This can be done in 4 bit using the code from the psemu example.

  • Like 3

Share this post


Link to post
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.

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