C64 Games memories - Rampage
ฝัง
- เผยแพร่เมื่อ 8 ก.ค. 2024
- In this Commodore 64 video we look at Rampage. How it uses three sprite grids for the players, with dynamic sprite frames, find the graphics data, and background redraw with dynamic bullet characters.
github.com/martinpiper/Debugg...
00:11 Introduction
01:09 Loading the disk
01:51 Nice loading screen
02:46 Next loading screen
02:59 Game instructions screen
03:10 Player selection
03:19 Player use large sprite grids
03:38 Hardware sprite limitations
04:04 Other game objects use multiplexing
06:19 Analysing the hardware sprite usage
11:15 Destroying the buildings
11:47 Tape version in ICU64
12:48 Dynamic sprites
16:01 Double buffered text screens
16:41 Background drawing every frame
17:09 Dynamic characters for bullets
18:45 Finding player graphics data
22:07 Thoughts on the rendering - เกม
A technically impressive, faithful rendition of a very addictive arcade game.
Yeah I'm really quite surprised at how accurate it is.
This stuff is seriously interesting. Huge respect to the people who not only understand this stuff but can help someone like me understand it too!
Great episode. Thank you. I was curious how the big characters are solved. It's completely different here than in Barbarian. Duplicate sprites are a cool technique. It's strange that the processor has so much graphics copying. And yet it works. The programmer had to optimize it well. :)
The regular spacing of the sprite grids help, because the code can more easily organise when to update the sprite registers for the next part of the sheet. It really is a good effect for the time period when this game was released.
@@MartinPiper6502 Ánd the IRQ handler was re-written one week before the completions to save about 6 CPU cycles / IRQ. This is why the IRQ handler as absolute values and not form memory addresses, the IRQ was poked all over all the time critical, and zero flicker. I could of gone on to larger sprites, but memory limits make it somewhat impossible.
Thanks!
Thank you for the very generous support. :)
I'm 8 seconds in... and I know this is going to be good!!
Glad you liked it :)
@@MartinPiper6502 I love the 6502 on your name, Martin. I've just noticed it!! Have you done a Gribbly's day out video? I'd be interested to see if Braybrook used similar techniques to what he did in Paradroid in the scrolling routine.
I will add it to the list :)
@@MartinPiper6502 Thanks!
Some very clever programming for the sprites in this. I used wonder why programmers didn't just use 8 spites in a row on a horizontal line and then before the raster beam finishes drawing the 8th sprite (but after drawing the others), just redefine and move the first sprite to a position after the 8th sprite so that you could have more than 8 on a line, but apparently the hardware cannot do this. Not sure if it's a limitation of the VIC-II chip or the clock speed of the hardware.
If I recall correctly, the video chip will only clock out the pixels for each sprite once per horizontal line, when the sprite X position reaches the currently displayed pixel position in the horizontal line.
This means even if sprite0 has an X position on the left of the screen, then halfway during the horizontal line the X position is moved to the right, the sprite won't be displayed again on that line.
The latches for when to clock out the sprite pixels are reset for each horizontal line.
@@MartinPiper6502 That sounds about right. Perhaps the VIC-II chip has a one-line buffer that it constructs the next line in and only scans the sprite info once before updating that buffer. I knew there was a reason that coders didn't do it, though they did discover the open-borders glitch, so who knows what capabilities are still lurking inside that old chip? ;)
and then the structure of games was re invented when nintendo launched the famicom
The U.S. version of Rampage is a much better game.
I think I need to have a look at that version at some point :)
@@MartinPiper6502 yes, the sampled sound and better animation on the main characters also helps the game beat the UK version.
Thanks!
Thank you for the continued support. :)