C64 Games memories - Bubble Bobble
HTML-код
- Опубликовано: 30 апр 2024
- In this video I look at Commodore 64 Bubble Bobble and how its software sprite rendering works and demonstrate how the code can render extra sprites.
github.com/martinpiper/Debugg...
GMA disk loader: • Disk fast load digital...
00:12 Introduction
00:29 Disk "Bleep load"
01:07 Memories
01:21 Looking for hardware sprites
01:32 ... and software sprites
02:38 More character masking
03:54 Starting to see dynamic characters
05:16 Two character sets!
05:48 Lots of hardware sprite frames
08:18 Memory write debug, for character sets
09:55 Using the machine code monitor
12:35 Backup screen data
14:15 Dynamic characters for each level
15:26 Collision data
18:18 Finding software sprite code
35:56 Finding frame, xpos and ypos tables
39:01 Rendering new sprites!
41:50 Technical summary Игры
Martin, your ability to reverse engineer these games is unparalleled. I love the narrative approach as you figure it out, well done. Pretty nutty the bubbles are drawn using chars mixing in the background data.
Really interesting. Never played much the game but now I understand that the bobbles were not multiplexed sprites.
Really impressive engine.
One thing that surprises me is how many of these games use a double-buffered screen. Back in the day I thought I had managed to pretty much rule that out as a viable way to make a game just because of the amount of memory it used, but clearly I got that wrong.
These deepdives into C64 games (this and IK+) just blow my mind. I have wondered and guessed for years how they were actually made. Nice to finally see that I wasn't too far off. Thanks Martin!
Glad you like them!
I dug around in the code for this myself some years ago. So very cleverly done and probably way beyond what I would be capable of, even with the ease of development because of the modern tools today! Thanks for the breakdown though!
Very interesting stuff as always! Thankyou for doing this!
Thank you for making this videos and making access to the code!
The "separate collision buffer" also contains the bubble wind current.
oh cool! :)
FOND memories!
Nice reverse engineering 👍I always thought Bubble Bobble was an excellent conversion for the C64, but I never imagined they were using quite advanced software sprites for all the bubbles. It's very impressive, especially considering what they had to work with back in the mid/late 80s.
Very interesting video as usual, thanks for making it. I wonder wether Bandits works in a similar way.
I'll add it to the list...
Hi Martín, good morning! As always fantastic review. Sorry, you surely pointed out previously, but let me ask what kind of environment do you are using for “scraping” games?
I started to mess with games with rather simple tool (vice monitor, 64 java based disassembler) but your tools are incredible.
Any hint to let me improve?
Google "ICU64"
Thanks for these videos. Please do Zybex or Soldier of Fortune (Graftgold) if you can!
Thank you for the generous support. They're on the list. :)
Great explanation - as always! How about Barbarian - I think that also used SW sprites?
it's on the list!
In two player mode, there must be at least 32 bubbles floating around... did you try that off camera?
If a screen takes 16kb of data to fill does that mean double buffering is using 32k?
A VIC bank is 16KB, the screen takes about 1KB, ignoring the characters and colours.
Replace the sw rendering with hw sprite multiplexing!
0:12 It’s Bubble Bobble, not Bubble Bubble
I say Bubble Bobble, but the auto-captions are wrong.
"Software sprite"????? B U R N T H E W I T C H. "software sprite" is an oxymoron.
Yawn. That's what most developers call them, whether or not the term is technically correct, it has stuck and when you say 'software sprite' everyone knows what you mean. If there was a more succinct, pithy and accurate term for them, we'd already be using it.
We do tend to call them software sprites...
csdb.dk/forums/index.php?roomid=11&topicid=25151&showallposts=1