Jump to content

Bubble Bobble


Recommended Posts

Raine 32 0.64.5


When I'm playing I get a reset to title screen with music still playing ,,,,,,,,mostly happens on round eleven using SDl default / OpenGL. Anybody else suffer this and are there settings to avoid this?



Link to comment
Share on other sites

I really wonder how you did that, because it's probably the arcade game I play the most, and I still play it from time to time, again lately to add the cheat to emulate the bublredux level skipper...

Anyway I just tried it on a fresh install on a very old pentium4 computer (I am not at home), and I played level 11 without problem, I stopped at level 12.

Well no idea, I used the bublbobl set, the original one, nothing special default configuration.

Try to make a savegame just before it happens and if you can reproduce it easily send the savegame and explain how you do it !

Link to comment
Share on other sites

Ok I was finally able to reproduce this, you have to saturate the game with buble so that it happens !

I had never tried that before !

Ok, I'll investigate...


EDIT : what I found so far :

- hard to reproduce, when I restarted a new game I was unable to reproduce this, even at stage 11 and even with fast bubbles I don't know what's needed exactly for this to happen but it seems quite hard to reproduce from scratch.

- it's been there for a long time, even raine 0.60.1 had this already, and so it's not a recent change which produced this at least.


Well I'll take another look later...


EDIT 2 : well I found a work-around, a hack. Apparently you can saturate the cpus with bubbles and if they become too busy then the interrupts start to be on wait and to fill the stack, and since the stack is very small it can quickly crash everything. Now I would love to be able to reproduce this by myself to know if it's specific to raine, but I guess it is, and then find why, but I can't, without your save I can't saturate it enough to create the crash...


The work around (dirty) is simply to add some cycles to the cpus when they become saturated, this way you won't see any slowdown in the game, and it will never crash ! I tried that with your save, it works perfectly.

Of course the real hardware can't do that, so it's quite disturbing, but oh well... I think I'll keep this fix anyway !


EDIT 3 : after some more thinking I think I know why raine crashes here, it's because it doesn't handle the interrupt lines and so there can be many irqs waiting on the stack, which should never happen. So the best theoric fix would be to handle this interrupt line here, but it would be less fun, so I'll keep this work around for now : the game will never slow down anymore !!! :-) (if you use git, the fix is committed, otherwise you'll have to wait for the next binary...).

Edited by Tux
Link to comment
Share on other sites

Thank you for your time and effort looking into and fixing this issue. I use a Linx 8 tablet I got for £60 with a ds4 connected to it with a GCM10 mount and it's a awesome retro handheld thanks to Raine, now time to get 2 million plus on bubble bobble.


Ohh...Blazing Star level 1 boss - sky scrolling jerky.........sorry if I'm a pest.

Link to comment
Share on other sites

No worry it's just surprising that such a simple thing as this sky animation can create such problems so it will take me some time to check this... later then !


EDIT : this little thing comes from an old fix for blazstar stage 2 ! The fix is probably not perfect, there is too much inaccuracy when reading the frame counter in the emulation, I am probably missing something, but this little thing is actually *VERY* tricky !

So I'd suggest ignoring the sky at the end of stage 1 for now, easiest workaround for now, I'll try to find out a better solution for that, but it will take time !


EDIT 2 : it's finally fixed, and pushed to git ! It might also fix the problem reported by mer-curious, I'll have to check that later.

:-) !

For the record, the cause was really a detail : I just computed the frame counter for the animations after drawing the sprites, and it needed to be computed before!

I really didn't expect a game to need this kind of precision but apparently the frame counter is updated during the vbl before starting to draw the screen so it makes sense. Anyway with that blazstar is totally fixed, end of round 1, and the whole stage 2 !

I'll take a break now !

Edited by Tux
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...