+CyranoJ Posted December 7, 2014 Share Posted December 7, 2014 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. Quote Link to comment Share on other sites More sharing options...
+Stephen Posted December 19, 2014 Share Posted December 19, 2014 How many FPS can you get from this in an emulator? Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted December 19, 2014 Author Share Posted December 19, 2014 Please keep this thread for bug reports only. Quote Link to comment Share on other sites More sharing options...
sh3-rg Posted January 15, 2015 Share Posted January 15, 2015 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...? Quote Link to comment Share on other sites More sharing options...
sh3-rg Posted January 25, 2015 Share Posted January 25, 2015 (edited) 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 volumeU235SE_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 ySNDVOLRESET(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 January 25, 2015 by sh3-rg Quote Link to comment Share on other sites More sharing options...
ggn Posted January 25, 2015 Share Posted January 25, 2015 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 . 2 Quote Link to comment Share on other sites More sharing options...
Christos Posted January 25, 2015 Share Posted January 25, 2015 For the RND function, it depends on how good the random number generator is on BCX. In ehbasic, it wasn't really good. Quote Link to comment Share on other sites More sharing options...
LinkoVitch Posted February 2, 2015 Share Posted February 2, 2015 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 But then I have a worrying affinity with how my brain works, so it's understandable it doesn't make sense to everyone 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 HTH Quote Link to comment Share on other sites More sharing options...
ggn Posted February 2, 2015 Share Posted February 2, 2015 Ok, I think I got the idea - now waiting for someone to really need the commands so I'll implement them 1 Quote Link to comment Share on other sites More sharing options...
sh3-rg Posted February 2, 2015 Share Posted February 2, 2015 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!) 1 Quote Link to comment Share on other sites More sharing options...
saboteur Posted March 12, 2015 Share Posted March 12, 2015 (edited) 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 March 12, 2015 by saboteur 1 Quote Link to comment Share on other sites More sharing options...
sh3-rg Posted March 12, 2015 Share Posted March 12, 2015 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. Quote Link to comment Share on other sites More sharing options...
sh3-rg Posted March 12, 2015 Share Posted March 12, 2015 (edited) 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 March 12, 2015 by sh3-rg Quote Link to comment Share on other sites More sharing options...
saboteur Posted March 12, 2015 Share Posted March 12, 2015 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 2 Quote Link to comment Share on other sites More sharing options...
ggn Posted March 13, 2015 Share Posted March 13, 2015 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. 2 Quote Link to comment Share on other sites More sharing options...
sh3-rg Posted March 13, 2015 Share Posted March 13, 2015 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 *** Quote Link to comment Share on other sites More sharing options...
+CyranoJ Posted March 13, 2015 Author Share Posted March 13, 2015 The global flag is only set it an object is removed. Health has to go negative, correct. Quote Link to comment Share on other sites More sharing options...
sh3-rg Posted March 13, 2015 Share Posted March 13, 2015 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. Quote Link to comment Share on other sites More sharing options...
omf Posted August 27, 2015 Share Posted August 27, 2015 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 3 Quote Link to comment Share on other sites More sharing options...
ggn Posted August 27, 2015 Share Posted August 27, 2015 (edited) 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 . Edited August 27, 2015 by ggn 2 Quote Link to comment Share on other sites More sharing options...
Sporadic Posted August 31, 2015 Share Posted August 31, 2015 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 :/ Quote Link to comment Share on other sites More sharing options...
sh3-rg Posted August 31, 2015 Share Posted August 31, 2015 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. 1 Quote Link to comment Share on other sites More sharing options...
ggn Posted August 31, 2015 Share Posted August 31, 2015 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!) 1 Quote Link to comment Share on other sites More sharing options...
Sporadic Posted August 31, 2015 Share Posted August 31, 2015 Ah yeah, I remember you mentioning that now sh3 thanks guys Quote Link to comment Share on other sites More sharing options...
Sporadic Posted August 31, 2015 Share Posted August 31, 2015 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. 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.