Jump to content

Photo

Bug Reports


28 replies to this topic

#1 CyranoJ ONLINE  

CyranoJ

    Quadrunner

  • 5,320 posts
  • RAPTOR in LOCAL
  • Location:Adelaide, SA

Posted Sat Dec 6, 2014 7:22 PM

If you think you've found a bug, let us know here and, if confirmed, we will attempt to fix it.

 

I'll start:

 

LOCATE is one character out horizontally.

 

Already fixed - will be corrected in the 0.1.5 release.



#2 Stephen OFFLINE  

Stephen

    Quadrunner

  • 7,094 posts
  • A8 Gear Head
  • Location:No longer in Crakron, Ohio

Posted Thu Dec 18, 2014 10:49 PM

How many FPS can you get from this in an emulator?



#3 CyranoJ ONLINE  

CyranoJ

    Quadrunner

  • Topic Starter
  • 5,320 posts
  • RAPTOR in LOCAL
  • Location:Adelaide, SA

Posted Thu Dec 18, 2014 11:23 PM

Please keep this thread for bug reports only.



#4 sh3-rg OFFLINE  

sh3-rg

    River Patroller

  • 3,388 posts
  • doge + tie = dothemath
  • Location:BOLTON, England

Posted Thu Jan 15, 2015 11:59 AM

I have a number of bugettes, I'm collecting them in a jar and shall be sending them along shorty. Is nobody else finding these bugs... am I the only one using it...?
bug.gif



#5 sh3-rg OFFLINE  

sh3-rg

    River Patroller

  • 3,388 posts
  • doge + tie = dothemath
  • Location:BOLTON, England

Posted Sun Jan 25, 2015 8:16 AM

1 bug and some requests/suggestions, reported here due to IRC network being unavailable.
 
 
firework project built with current RB+ works fine in VJ but black screens after a period on hardware, usually within a matter of seconds.
 
Vote to change the following command names and functionality:
U235PAD(x) to GETPAD(x) - I know it's linko's from the SE, but it'd read better without that prefix  :)
U235MOD(x) to MODPLAY(x) - x to be mod number or 0 for U235SE_PLAYMOD

U235MOD(x) to SNDPLAY(x,y,z)- change name and functionality: x-sound, y-offset into data, z-frequency in Hz.

 
Requesting support for the U235 features:
 
U235SE_music_vol as MODVOL(x) - set mod music volume (x in range 0-63)

U235SE_sfx_vol as SNDVOL(x) - set global sfx volume (x in range 0-63)

Sample command 1 - stop voice as SNDKILL(x) where x is channel number

Sample command 3 - set volume as SNDDELTA(x,y) where x is 0-63 for volume, y is signed number to alter sample volume
U235SE_playbackmode (for switching to and from stereo and double mono sfx) as SNDSTEREO(x)

MODJUMP(x) - jump module to position (to support main track and mini tracks in same mod)

SNDFREQ(x,y) - use command 7 to change replay frequency of sample x to frequency y
SNDVOLRESET(x) - resets volume of current sample on channel x

SNDFREQRESET(x) - resets frequency of current sample on channel x

 
 
Is there any value to having a command URND to grab the auto-generated 16bit U235RND?


Edited by sh3-rg, Sun Jan 25, 2015 8:56 AM.


#6 ggn OFFLINE  

ggn

    Stargunner

  • 1,357 posts
  • Location:Athens, Greece

Posted Sun Jan 25, 2015 11:11 AM

1 bug and some requests/suggestions, reported here due to IRC network being unavailable.
 
 
firework project built with current RB+ works fine in VJ but black screens after a period on hardware, usually within a matter of seconds.


No idea about this - will have to check.

 

Vote to change the following command names and functionality:
U235PAD(x) to GETPAD(x) - I know it's linko's from the SE, but it'd read better without that prefix  :)
U235MOD(x) to MODPLAY(x) - x to be mod number or 0 for U235SE_PLAYMOD
U235MOD(x) to SNDPLAY(x,y,z)- change name and functionality: x-sound, y-offset into data, z-frequency in Hz.
 
Requesting support for the U235 features:


Firstly, I think it's better if people posted feature requests on the updates thread as it can get a bit confusing :)

That said...
 
U235PAD(x) to GETPAD(x)  - done, will commit in a bit
U235MOD(x) to MODPLAY(x)  - done, will commit in a bit
U235MOD(x) to SNDPLAY(x,y,z) - err typo? For the moment this was just renamed, will have to see about the extra functionality
U235SE_music_vol as MODVOL(x) - done, will commit in a bit
U235SE_sfx_vol as SNDVOL(x) - done, will commit in a bit
Sample command 1 - stop voice as SNDKILL(x) - see below
Sample command 3 - set volume as SNDDELTA(x,y) - see below
U235SE_playbackmode- see below
MODJUMP(x) - see below
SNDFREQ(x,y)- see below
SNDVOLRESET(x)- see below
SNDFREQRESET(x)- see below

 

I can't implement the "see below" features because even after reading the docs I have absolutely no idea how to access the U-235 :). Hope Linkovitch doesn't take it too personal but mate, your docs are really confusing! If you (or anyone else) could provide some example code I'd be more than happy to implement these.

 

Is there any value to having a command URND to grab the auto-generated 16bit U235RND?

 

Firstly, is that signed or unsigned (Linko? ;)). Secondly, this will give us a random integer number from 0 to 63355 - if people want a fractional one it's easy to convert it like "(URND * maximum number you'd like + $8000)/65536" ($8000 = rounding constant, can be removed of course). But I'm not sure if that does wonders for code readability! Of course it can be integrated into the command and hidden away from the user, but then you also hide the multiplication and I don't know if I want to do that - i.e. we're obviously going to do that for speed reasons. Of course using the built in random function will be slower as it works with floats etc. Which brings us to the conclusion of I've no idea what people want so I'll prolly not do it right now :).



#7 Christos OFFLINE  

Christos

    Stargunner

  • 1,008 posts
  • Location:Thessaloniki, Greece

Posted Sun Jan 25, 2015 11:50 AM

For the RND function, it depends on how good the random number generator is on BCX. In ehbasic, it wasn't really good.



#8 LinkoVitch OFFLINE  

LinkoVitch

    River Patroller

  • 2,504 posts
  • Location:Manchester UK

Posted Mon Feb 2, 2015 6:27 AM

I can't implement the "see below" features because even after reading the docs I have absolutely no idea how to access the U-235 :). Hope Linkovitch doesn't take it too personal but mate, your docs are really confusing! If you (or anyone else) could provide some example code I'd be more than happy to implement these.

 
Heh :) It makes sense to me :D  But then I have a worrying affinity with how my brain works, so it's understandable it doesn't make sense to everyone :D
 
Not quite sure what bit you are struggling with, but the basic way to communicate with the SE is to produce a list of commands for it, ending with a terminator, then you point the command list pointer at the head of your list and it process them next time a command run happens in the SE core.
 
So you might have say:
 

SE_command_list:
 
dc.l $00000a12 ; Command 2 : Play sample 10 (a) on voice 1 $0000 = Data Y $0a = Data X 1 = voice 2 = command
dc.l $3e800027 ; Command 7 : Adjust playback rate on voice 2 to 16000Hz ($3e80).  $3e80 = Data Y $00 = Data X 2 = voice 2 7 = command
dc.l 0  ; Command list terminator

You would then put the addess of SE_command_list into the address U235SE_playlist_ptr

lea	U235SE_sfxplaylist_ptr,a1
move.l	#SE_command_list,d0
move.l	d0,(a1)

Does that make more sense? The commands for the SE and the structure (Data Y, Data X, voice, command) are in the manual on page 15
 

Firstly, is that signed or unsigned (Linko? ;)). Secondly, this will give us a random integer number from 0 to 63355 - if people want a fractional one it's easy to convert it like "(URND * maximum number you'd like + $8000)/65536" ($8000 = rounding constant, can be removed of course). But I'm not sure if that does wonders for code readability! Of course it can be integrated into the command and hidden away from the user, but then you also hide the multiplication and I don't know if I want to do that - i.e. we're obviously going to do that for speed reasons. Of course using the built in random function will be slower as it works with floats etc. Which brings us to the conclusion of I've no idea what people want so I'll prolly not do it right now :).

It's a 15bit binary randomness generator.. up to you if you want it signed or not :D

 

HTH
 



#9 ggn OFFLINE  

ggn

    Stargunner

  • 1,357 posts
  • Location:Athens, Greece

Posted Mon Feb 2, 2015 7:03 AM

Ok, I think I got the idea - now waiting for someone to really need the commands so I'll implement them ;)



#10 sh3-rg OFFLINE  

sh3-rg

    River Patroller

  • 3,388 posts
  • doge + tie = dothemath
  • Location:BOLTON, England

Posted Mon Feb 2, 2015 7:05 AM

Ok, I think I got the idea - now waiting for someone to really need the commands so I'll implement them ;)

 

<cough> I need them!

 

I'd like to be able to play a sample at any other rate than 16000kHz, I think that's all I can do for now (either that or I don't know what I'm doing, as usual!)



#11 saboteur OFFLINE  

saboteur

    Chopper Commander

  • 109 posts

Posted Thu Mar 12, 2015 3:04 PM

Not sure if this is the place to post.

 

Just got the latest build and tried all the examples.

 

I couldn't get either of the doger, nyandodge or nyandodgeROM to run using build doger etc.

 

Can't seem to be able to copy the errors out of the command shell either :), but can post screenshots if you can't replicate.

 

Thanks for all the great work.


Edited by saboteur, Thu Mar 12, 2015 3:05 PM.


#12 sh3-rg OFFLINE  

sh3-rg

    River Patroller

  • 3,388 posts
  • doge + tie = dothemath
  • Location:BOLTON, England

Posted Thu Mar 12, 2015 3:20 PM

Not sure if this is the place to post.

 

Just got the latest build and tried all the examples.

 

I couldn't get either of the doger, nyandodge or nyandodgeROM to run using build doger etc.

 

Can't seem to be able to copy the errors out of the command shell either :), but can post screenshots if you can't replicate.

 

Thanks for all the great work.

 

Please do, those all being the latest projects seems to hint at it being a little problem with a quick fix. There was something like this a day or two ago when one of us made a fresh grab on another machine. Thanks for the feedback.



#13 sh3-rg OFFLINE  

sh3-rg

    River Patroller

  • 3,388 posts
  • doge + tie = dothemath
  • Location:BOLTON, England

Posted Thu Mar 12, 2015 3:52 PM

I took a fresh install of rB+ from github and tried the three projects giving errors.
 
nyandodgerom - this one looks to have been taken from the wrong source - it's an internal version GGN is working on with an additional sound engine - those missing .S files aren't public yet, so that should be a quick fix once he's home from a work trip and back in the swing of things or you could dig for an older version.
 
nyandodge - the assets.txt file is an old one for some reason, it should look like this:
abs,BMP_PLAYER,gfx_clut,ASSETS\GFX\_nyancat.bmp
abs,BMP_ENEMY,gfx_clut,ASSETS\GFX\_ufo.bmp
abs,Module1,modfile,ASSETS\sfx\mod\Module1.mod
abs,explode_sam,modfile,ASSETS\SFX\SND\EXPLODE.RAW
doger - the assets.txt file is completely missing in the ZIP, I've managed to reconstruct a compatible one from my current build, just save this text as assets.txt and it'll build:
ABS,SPRITE_BG,gfx_clut,ASSETS\GFX\background.bmp
ABS,SPRITE_POULPES,gfx_clut,ASSETS\GFX\poulpes.bmp
ABS,SPRITE_NYAN,gfx_clut,ASSETS\GFX\nyan.bmp
ABS,SPRITE_TITLE,gfx_clut,ASSETS\GFX\doger.bmp
ABS,SPRITE_DOGE,gfx_clut,ASSETS\GFX\doge.bmp
ABS,SPRITE_DEAD,gfx_clut,ASSETS\GFX\dogedead.bmp
ABS,MOD_BOING,module0,ASSETS\Music\dobranocki.mod
ABS,SFX_WOOF,sfx_woof_bark,assets\sfx\snd\woofbark.raw
ABS,SFX_LAUGH,sfx_ha_ha_ha,assets\sfx\snd\laugh.raw

Edited by sh3-rg, Thu Mar 12, 2015 3:53 PM.


#14 saboteur OFFLINE  

saboteur

    Chopper Commander

  • 109 posts

Posted Thu Mar 12, 2015 5:34 PM

Holy snikey :)

 

Response time to maximum scotty.

 

Thanks for the reply. I'll have another bash in the a.m

 

Looking forward to trying my hand at some coding over the weekend



#15 ggn OFFLINE  

ggn

    Stargunner

  • 1,357 posts
  • Location:Athens, Greece

Posted Fri Mar 13, 2015 5:45 AM

The entire REPOSITORY was scanned for bugs!

Anyway, will probably fix those and push them to github/bitbucket when I get home in the evening.

#16 sh3-rg OFFLINE  

sh3-rg

    River Patroller

  • 3,388 posts
  • doge + tie = dothemath
  • Location:BOLTON, England

Posted Fri Mar 13, 2015 10:13 AM

Found what I think are issues with collision detection using RHIT, but need CJ to take a look to know for sure:

Example 1:

Bullet has 200 HP damage

Enemy has 200 HP life

Enemy takes 2 shots to kill and be automatically removed.

--

Example 2:

Bullet has 200 HP damage

Enemy has 199 HP life

Enemy takes 1 shot to kill

--

So sprite death seems to be checking for <=-1 HP remaining, not 0. That's easy to work around, though.

--

Other issue with RHIT:

In first example, RHIT is only returning <>-1 after the 2nd hit (i.e. on death of sprite) but not after first hit, it remains -1.

In second example, RHIT is set after the first hit, as the enemy is dead.

Example:

Bullet has 1 HP damage

Enemy has 200 HP life

RHIT returns -1 200 times and then <>-1 on the next hit.

So it's effectively only flagging death of targets, not actual hits.

*** OR I'M DOING IT WRONG *** :lolblue:

#17 CyranoJ ONLINE  

CyranoJ

    Quadrunner

  • Topic Starter
  • 5,320 posts
  • RAPTOR in LOCAL
  • Location:Adelaide, SA

Posted Fri Mar 13, 2015 5:06 PM

The global flag is only set it an object is removed.

 

Health has to go negative, correct.



#18 sh3-rg OFFLINE  

sh3-rg

    River Patroller

  • 3,388 posts
  • doge + tie = dothemath
  • Location:BOLTON, England

Posted Fri Mar 13, 2015 5:11 PM

The global flag is only set it an object is removed.

 

Health has to go negative, correct.

 

So you can't tell if *something* is hit without manually checking everything?

 

The Raptor manual read a bit differently, hence the report:

 

"This flag will indicate if anything collided during the check. It will not tell us what collided, only that something did"

 

But it's not a collision, it's a death.



#19 omf OFFLINE  

omf

    Dragonstomper

  • 773 posts

Posted Thu Aug 27, 2015 7:31 AM

not a bug as such, but:

the npes_saved.txt file has four occurrences of CD $(CURRENT_DIRECTORY)\..

 

it should read CD $(CURRENT_DIRECTORY)\..\.. because the build.bat is not in the projects folder, you need to go up one more level to find it



#20 ggn OFFLINE  

ggn

    Stargunner

  • 1,357 posts
  • Location:Athens, Greece

Posted Thu Aug 27, 2015 8:11 AM

not a bug as such, but:
the npes_saved.txt file has four occurrences of CD $(CURRENT_DIRECTORY)\..
 
it should read CD $(CURRENT_DIRECTORY)\..\.. because the build.bat is not in the projects folder, you need to go up one more level to find it


Hmm, it makes sense when you haven't installed rb+ via the installer - build.bat won't be on your path then.

Thanks for the report and fix - it's already committed to the repository head :D.

Edited by ggn, Thu Aug 27, 2015 8:11 AM.


#21 Sporadic OFFLINE  

Sporadic

    Moonsweeper

  • 490 posts
  • Probably RB+ing
  • Location:UK

Posted Mon Aug 31, 2015 1:06 PM

Not sure if bug or by design but;

 

when 'R_spr_scaled' is set to 'spr_scale' in the object list and 'R_sprite_scale_y' is set to 32 then the sprite defaults to height-1 px.

int x = RGETOBJ(block2,R_sprite_height)

In the above, x will equal the height-1 when scale is set to 32.

 

The width reports correctly, so no probs there.

 

Tested with a 64 and 128 px high sprite.

 

Will supply test project / code if that helps.   Plus, hope this makes sense  :/



#22 sh3-rg OFFLINE  

sh3-rg

    River Patroller

  • 3,388 posts
  • doge + tie = dothemath
  • Location:BOLTON, England

Posted Mon Aug 31, 2015 1:25 PM

I think this is a Jaguar bug (I've always understood it that way at least and documented it as such on the rb+ site).

 

Y-scaling gives some weird results, missing top line and very thin bottom line (?) I've been padding stuff vertically to avoid the iffiness.



#23 ggn OFFLINE  

ggn

    Stargunner

  • 1,357 posts
  • Location:Athens, Greece

Posted Mon Aug 31, 2015 1:38 PM

Not sure if bug or by design but;

 

when 'R_spr_scaled' is set to 'spr_scale' in the object list and 'R_sprite_scale_y' is set to 32 then the sprite defaults to height-1 px.



int x = RGETOBJ(block2,R_sprite_height)

In the above, x will equal the height-1 when scale is set to 32.

 

The width reports correctly, so no probs there.

 

Tested with a 64 and 128 px high sprite.

 

Will supply test project / code if that helps.   Plus, hope this makes sense  :/

 

Well, at least I'm sure that RSETOBJ/RGETOBJ don't mess with the data they're reading/writing.I'll pass this on to CJ or someone who knows the hardware (I sure don't!)



#24 Sporadic OFFLINE  

Sporadic

    Moonsweeper

  • 490 posts
  • Probably RB+ing
  • Location:UK

Posted Mon Aug 31, 2015 1:51 PM

Ah yeah, I remember you mentioning that now sh3 :) thanks guys 



#25 Sporadic OFFLINE  

Sporadic

    Moonsweeper

  • 490 posts
  • Probably RB+ing
  • Location:UK

Posted Mon Aug 31, 2015 3:12 PM

Also, another thing I noticed earlier,

 

When creating a new project with "build scaler new" , the rinitapp.s (or whatever its called) had the default controller/sound module set to the new zerosquare one as opposed to the original one.

 

That had me head scratching for a while, wondering why the getpad(1) etc weren't working. Now that I know that, I'll look out for it.

 

However, a beginner will get confused and not know to change that. Plus the tutorials are all written for the original method too.





Reply to this topic



  


0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users