- Видео 220
- Просмотров 97 091
Martin Piper
Сингапур
Добавлен 9 авг 2006
From electronics projects, to retro games dev, and contemporary dev.
This all links back to my open source repositories: github.com/martinpiper
This all links back to my open source repositories: github.com/martinpiper
C64 Demos peek - Fast any direction bitmap scrolling
In this demos peek video, we look at fast Commodore 64 any direction bitmap scrolling using a combination of HSP/DMA delay and line crunch.
All three parts as one video: ruclips.net/video/zLOKaoX4oAY/видео.html
Horizontal scroll: ruclips.net/video/8RxzkriK3rs/видео.html
Vertical scroll: ruclips.net/video/bh8rEjq8T7g/видео.html
Example code: github.com/martinpiper/C64Public/blob/master/RasterTest/RasterTest2.a
Codebase link: codebase64.org/doku.php?id=base:agsp_any_given_screen_position
Debugging details text file: github.com/martinpiper/DebuggingDetails/blob/main/Fast%20bitmap%20scrolling.txt
All three parts as one video: ruclips.net/video/zLOKaoX4oAY/видео.html
Horizontal scroll: ruclips.net/video/8RxzkriK3rs/видео.html
Vertical scroll: ruclips.net/video/bh8rEjq8T7g/видео.html
Example code: github.com/martinpiper/C64Public/blob/master/RasterTest/RasterTest2.a
Codebase link: codebase64.org/doku.php?id=base:agsp_any_given_screen_position
Debugging details text file: github.com/martinpiper/DebuggingDetails/blob/main/Fast%20bitmap%20scrolling.txt
Просмотров: 715
Видео
C64 Demos peek - Fast vertical bitmap scrolling
Просмотров 8967 часов назад
In this demos peek video, we look at fast Commodore 64 bitmap scrolling using line crunch. All three parts as one video: ruclips.net/video/zLOKaoX4oAY/видео.html Horizontal scroll: ruclips.net/video/8RxzkriK3rs/видео.html Any direction scroll: ruclips.net/video/cfRyT04SG6c/видео.html Example code: github.com/martinpiper/C64Public/blob/master/RasterTest/RasterTest2.a Codebase link: codebase64.or...
C64 Demos peek - Fast bitmap scrolling - All parts
Просмотров 3847 часов назад
In this demos peek video, we look at fast Commodore 64 bitmap scrolling, using a couple of VIC trick techniques that need some precise cycle timing to work properly. This video contains all three parts, starting with HSP/DMA delay, then looking at line crunching, and finally using both together and providing some example source code. Horizontal scroll: ruclips.net/video/8RxzkriK3rs/видео.html V...
C64 Demos peek - Fast horizontal bitmap scrolling
Просмотров 1 тыс.7 часов назад
In this demos peek video, we look at fast Commodore 64 bitmap scrolling using HSP/DMA delay. All three parts as one video: ruclips.net/video/zLOKaoX4oAY/видео.html Vertical scroll: ruclips.net/video/bh8rEjq8T7g/видео.html Any direction scroll: ruclips.net/video/cfRyT04SG6c/видео.html Example code: github.com/martinpiper/C64Public/blob/master/RasterTest/RasterTest2.a Codebase link: codebase64.or...
C64 Demos peek - Layers
Просмотров 6 тыс.19 часов назад
In this Commodore 64 video, I look at how a screen rotation with parallax scroll works. The demo "Layers" can be downloaded from: csdb.dk/release/?id=242834 There is a detailed textual description here: csdb.dk/forums/?roomid=12&topicid=166046 Rotation by shearing explanation: ruclips.net/video/tHekokkHmlM/видео.html
C64 Games memories - Gribbly's Day Out
Просмотров 71014 дней назад
In this Commodore 64 games memories, we have a technical look at "Gribbly's Day Out". How the game scrolling routine works, its animated dynamic characters, and level data layout. Also there are some dynamic sprites, which is always nice to see. Lastly the enemy collision detection using the level data in memory. There are some similarities to Paradroid, also programmed by Andrew Braybrook. Par...
C64 Games memories - Rampage - Bonus
Просмотров 29914 дней назад
In this Commodore 64 video we look at Rampage, again. This time it's a quick bonus video to show how all of the player animation frames can be displayed, and to remove the background graphics so we can more clearly see the players. github.com/martinpiper/DebuggingDetails/blob/main/Rampage.txt 00:11 Introduction 00:24 Displaying all the player animation frames 14:08 Removing the background
C64 Games memories - Rampage
Просмотров 82921 день назад
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/DebuggingDetails/blob/main/Rampage.txt 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 Pla...
C64 Games memories - Bandits 1983
Просмотров 89228 дней назад
In this video we look at Bandits from 1983. How it uses bitmap and text modes, draws bullets and enemies, and uses dynamic character sets for lots of software sprites. github.com/martinpiper/DebuggingDetails/blob/main/Bandits 1983.txt github.com/martinpiper/C1541-Tweaks 00:11 Introduction 00:43 Using C64DebugGUI to examine the graphics 01:20 Title sequence using bitmap 02:50 Nice transition bet...
C64 Games memories Mega Apocalpyse
Просмотров 633Месяц назад
In this video we look at Mega Apocalypse. How it uses bitmap mode, draws stars with a large lookup table, and plays sample sound effects using a timed non-maskable interrupt. github.com/martinpiper/DebuggingDetails/blob/main/Mega Apocalypse.txt
C64 Games memories - Crazy Comets
Просмотров 878Месяц назад
A quick video to look at a relatively small game in terms of memory, Crazy Comets. A good use of character based effects, thumping music, loud sound effects, and sprites whizzing around that makes for a very enjoyable blaster.
C64 Games memories - Scarabaeus
Просмотров 701Месяц назад
In this video I look at Commodore 64 "Scarabaeus", in America known as "Invaders of the Lost Tomb". Having a look at the 3D view rendering, game maps in memory, and finding a bit of a cheat for collecting items. github.com/martinpiper/DebuggingDetails/blob/main/Scarabaeus.txt 00:11 Introduction 01:00 Intro sequence graphics 03:53 Initial investigation with C64DebugGUI 10:23 Finding a few map vi...
C64 Games memories - Skool Daze
Просмотров 613Месяц назад
In this video I look at Commodore 64 "Skool Daze", noting how it uses a single screen bitmap mode, mostly software sprites with a few hardware sprites, and a very cool minimal dirty rectangle update for drawing the screen. github.com/martinpiper/DebuggingDetails/blob/main/Skool Daze.txt 00:11 Introduction 00:20 Creating a prg from the tape version 11:59 Run it in C64DebugGUI, note sprites and g...
MegaWang 2000 Turbo Edition - 27 - RGB565 Colour comparison
Просмотров 334Месяц назад
This video shows the MegaWang with a comparison of the old RGB444 colour and the new RGB565 colour palette. Most of the improvements can be seen in the graduated sky colours. This is part of a modular audio and video hardware for retro machines like the Commodore 64. Designed to use 74LS series TTL ICs available back in the 1980s/1990s, something you can solder at home from parts or order ready...
C64 Games memories - Barbarian
Просмотров 1 тыс.2 месяца назад
In this video I look at Commodore 64 Barbarian, noting how it uses a single screen bitmap mode, the background transition and animation, and how software sprites are mostly used with some hardware sprites. github.com/martinpiper/DebuggingDetails/blob/main/Barbarian 1.txt 00:12 Introduction 00:30 Quick graphical overview 01:54 Player characters in more detail 03:50 Looking at the memory access 0...
MegaWang 2000 Turbo Edition - 26 - External RAM and DMA
Просмотров 5622 месяца назад
MegaWang 2000 Turbo Edition - 26 - External RAM and DMA
C64 Games memories - Nebulus - Part 2
Просмотров 3722 месяца назад
C64 Games memories - Nebulus - Part 2
MegaWang 2000 Turbo Edition - 25 - More colours RGB565
Просмотров 6842 месяца назад
MegaWang 2000 Turbo Edition - 25 - More colours RGB565
C64 Games memories - Bubble Bobble
Просмотров 1,2 тыс.2 месяца назад
C64 Games memories - Bubble Bobble
C64 Games memories International Karate Plus
Просмотров 1,6 тыс.3 месяца назад
C64 Games memories International Karate Plus
C64 Reverse Engineering - Horizontal SEUCK goes left
Просмотров 4033 месяца назад
C64 Reverse Engineering - Horizontal SEUCK goes left
C64 Reverse Engineering - Horizontal SEUCK and enhancements
Просмотров 4203 месяца назад
C64 Reverse Engineering - Horizontal SEUCK and enhancements
C64 Games memories - Parallax scrolling - Technical
Просмотров 2,7 тыс.3 месяца назад
C64 Games memories - Parallax scrolling - Technical
C64 Reverse Engineering - SEUCK - Sound effects and title screen
Просмотров 3953 месяца назад
C64 Reverse Engineering - SEUCK - Sound effects and title screen
C64 Games memories - Paradroid - Technical
Просмотров 1 тыс.3 месяца назад
C64 Games memories - Paradroid - Technical
C64 Reverse Engineering - SEUCK - Player limitations and score panel
Просмотров 2544 месяца назад
C64 Reverse Engineering - SEUCK - Player limitations and score panel
C64 Games memories - Thrust - Technical
Просмотров 7854 месяца назад
C64 Games memories - Thrust - Technical
C64 Reverse Engineering - SEUCK - Enemy bits (properties)
Просмотров 2744 месяца назад
C64 Reverse Engineering - SEUCK - Enemy bits (properties)
C64 Games memories - Creatures - Technical
Просмотров 5814 месяца назад
C64 Games memories - Creatures - Technical
Extremely impressive. Parallax by swapping tiles was a pretty common thing on many 8-bit systems but I haven't seen it with this much rotation before. If any... Of course Amiga Demos did similar things but they had the blitter, dual playfield and sprites so many other techniques. I don't even know if hotswapping a screen full of text would work on the Ami
Wow!, those easy to use tools you got impressed me more than the scrolling method. No wonder modern "demos" are more impressive than in the 80s.
Thank you so much, Dr., for this as well as the treasure trove of all your informative and eye-opening videos. I continue to learn a lot from your insight and contributions to the benefit of this world.
Hello, the row on the top of the sprites are for masking, some sort of drawing artifacts?
Yes, if the top of the sprites are cleared (made transparent) then the top line of the screen shows some unintended graphics.
That's interesting - lots of effort to avoid a freeze frame type cartridge just ripping memory I was only skim watching - but it seems to try and confuse any freeze cart before the game is anywhere near memory.
Yeah, filling the memory with that pattern makes it harder to compress and could fool some cartridges into thinking all of the memory is used.
Grazie.
Thank you kindly for the support.
Really appreciate these demo technique dissections. Would love to see more!
Thank you kindly for the support :)
Thanks!
Thank you kindly :)
Thanks, always wondered how these things worked!
Glad to help!
C64 debuggers are on another level.
Yeah it really helps make these things much easier to understand
Thank you so much for explaining how this great effect works !!! Also à million thanks for sharing the code !!! That's just so kind !!!!
No problem. Sharing is caring. :)
So these effects can be used in a proper video game context, or might I need to watch this again (like I’ll do anyway ;)? Space shooter immediately comes to mind.
Yes, this can be used in a game. Some games use the horizontal scrolling method, like Creatures.
@@MartinPiper6502 understood, thank you. I’ll have to take a closer look at the game you’ve mentioned. Great channel and great episodes you’ve got here. I really appreciate the DemoScene decomps that you walk us through. They’re very informative.
I had a video about Creatures using this effect at 24 minutes... ruclips.net/video/DM3Dh3zWoZ8/видео.html
@@MartinPiper6502 Very cool, thank you. Much appreciated.
The demo‘ed effect is top notch. Timing is hard, getting scrolling right with the mapping as well.
yeah the timing is quite tricky, especially for the horizontal movement.
Interesting video ... great to see you venture into investigating demo code tricks! 👍
Glad you enjoyed it!
hahahahaha
Haha
@@MartinPiper6502hahaha
Hahahahaha
Some demo coders say that using VSP can damage some of the old VIC chips. I assume they have proof of this to believe it. The demo called "Next Level" by Performers boasts it doesn't use VSP.
I've never seen any reliable evidence of the C64 VIC being harmed by this. There was a poke on the old Commodore PET that could cause damage due to video hardware timing, but that's not going to work on the C64 since the video hardware is different.
Interesting technique, I learned something new today 👍 I always assumed these large bouncing logos were made from character graphics and moved around using traditional scrolling.
I love this machine. :)
Does this hardware trick work on all c64 hardware revisions?
Almost all. Some get corrupted memory.
Awesome awesome awesome awesome awesome 😎 ...this video is my happy place.
Thank you so much 😀
imagine if they put a set of h/w base memory offsets for the screen for the VIC, would of saved a shit load of code for block copying zillions of scrolling games. But such was life! then the C64 would of been like some of the arcade hardware, thought they tended to have larger character windows to allow large tile plotting which wrapped correctly. And many were only 32 or 64 characters wide so width/heights memory wrapping was nicely handled. Something name gives a good insight into with it's f4 debug overlay!.
@@michaeljarcher all they needed to do was expose the internal vcbase counter to a couple of external registers
@@MartinPiper6502 Yep, I wonder why they never thought about that. When they put in x y scroll, they must have had some thoughts about it, actual games and scrolling. Hidesight is never a clear thing. It would have made the demo scene a little more boring! If it did everything perfectly. :-)
This is essentially the idea behind the Amiga bitmap hardscrolling.
I've not commented on your videos much recently as I'm knee deep in my own C64 projects, but I'm still watching, enjoying and learning. Have a couple of £ and have a coffee or similar on me!
Thank you kindly for the coffee :)
Its says in debug....standard text mode........but it looks quite crisp is .its 2 colors and if its interupting the resolution is 320x400
@Mr.1.i yes it's in hires text mode
@MartinPiper6502 there are pokes that allow you to use the boarder for graphical instruction
@@Mr.1.i yes I'll be getting into those in another video
Does this demo work on a VICE emulator, I know it is very good but this demo will test it for sure.
Yes, even old Vice in ICU64 runs the demo.
I think Steve Mould showed in a video how every rotation is just a couple of integer translations and sheering operations
Great video! Thank you.
Still pretty darn clever. Shows the flexibility of the VIC-II chip for sure. Still finding new ways to do things with the VIC-II and the SID chip as well, even 40+ years later.
I'm very sure new effects are yet to be found.
@@MartinPiper6502 Yep. I can remember vividly the first time I saw a demo with the top and bottom borders opened up. I wonder who was the first demo coder to figure that one out?
This page seems to have a list of first use of effects codebase64.org/doku.php?id=base:demo_world_records_and_world_firsts#border_top_bottom
@@MartinPiper6502 I'll check it out. Thanks!
@@MartinPiper6502 Funny it took the coders 6 more months to figure out side borders. Sadly I have no idea what some of the effects listed are, such as FLD and VSP. I guess this is a page for demo-sceners so that makes sense.
can't wait to see what kind of c64 demos and games gpt8 comes up with, where it optimizes every byte of memory and cycle mixing every mode in combinations in space and time, in ways no human would conceive of, to facilitate surprising game types and depth never imagined on the old hardware, generated anew on demand and personalised, 24/7...
Really nice deep dive ! More demo effects deep dive would of course be welcome :)
Glad you like it. More to come!
@@MartinPiper6502 Excellent news! Thanks, I love these kind of deep dives.
you forget to mention that it actually wasnt MTs last game on the C64 ;-)
Indeed, I will probably cover Enforcer: Fullmetal Megablaster later on :)
I am so glad you took a turn on this part of the demo. I hope to see more demos being pick a part like this. Next Level 100 games part would be fun to see.
I plan to do more demos. The tricky thing is to make them understandable.
@@MartinPiper6502 The way you explain makes it easy to follow along and get into all the details. Been following you for a loooong time now and it's like C-64 meditation to watch/listen how you explain all. :)
FIG are C=64 Killer Machines
great stuff
what is this sorcery?!
I just watched your WinCE video before this one 😂❤
It is the magic of Serato. He is a crazy man.
I know right? :) This is effect is quite new, it's done differently to other similar visual effects, I have no doubt there are other new C64 VIC effects waiting to be found.
@@MartinPiper6502it's a similar effect to m.ruclips.net/video/Q5iqSzKYZoQ/видео.html
yes very much like that
Thanks! 🙂
Thank you for the kind support :)
What a demo! Someone had a LOT of thoughts on this one. Subbed!
Yeah it's a really cool effect.
So good watching this - thanks, Dude!
Glad you enjoyed it!
This is awesome! Would love to see more analyses of demos.
More to come!
I've written some rotating "demos" in asm and high level languages on 286-486 computers, and have at least some knowledge of the VIC-computer internals. But I understood almost nothing of this during my first watch. Probably need to look up the word shear, or similar :)
I always liked this game as much as it drove me insane.
Thank you. I appreciate you doing this one, Martin.
No problem. :) It's a nice game. Good memories.
I would like to see a video on the tools. While I've loaded them up, they do seem to offer a great deal of cool stuff. Keep up the good work always entertaining.
I, too, would like to see a video on your work setup and how you start / pause / warp the game. That would be interesting. Love Gribbly's great game. Not sure about it being simple. I always recall there being a lot going on. 😂
Yes, this is on my list. I'm just wondering how to make it interesting. :)
What a great game to take a look at - thanks! Have you considered doing a breakdown of effects in (somewhat) recent C64 demos; they seem to do impossible things sometimes. 😊
Also, on my list of things to do. They can often be very technical though.
@@MartinPiper6502 Yeah, I can imagine. That's why I thought just looking at a single effect might be plenty for a video.
@@MartinPiper6502 Just a quick follow-up. This is the demo I was thinking of. I mean, the initial, big scroller... How on earth? ruclips.net/video/tUyUzk1XyHU/видео.html
Here you go: ruclips.net/video/eA98gwA3SR8/видео.html
Thanks a lot :)
Thank you for the support :)
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!
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.
and then the structure of games was re invented when nintendo launched the famicom
I was the game's programmer, and if anyone wants to know. I released all the source code to this and all my other C64 games on GitHub a few years ago. It was my suggestion for this game. I know it a little Vaniety lol. Actually, I forgot some of the stuff I had to do. So it's always interesting watching this content! And there were, at the time, very few people who understood how this was achievable. Quite possibly, this is one of the few titles that have achieved so many sprites! I'm not sure if anyone has questions, but Ill try to answer as best I can.
Oh splendid, it's always great to find an old developer from back in the day.
This repository? github.com/milkeybabes/Rampage
@@MartinPiper6502 Yes, this is the one. Sorry not many comments, but there was never the time to do such things when you are sleeping on a floor working 20 hours to finished a game. 😄
I sometimes used to sleep under the desk at Argonaut's offices. Back then being 19 years old, didn't need much sleep really.
@@MartinPiper6502 Lol Jez never was about much. Not seen him in a long time.
Thanks!
Thank you for the very generous support. :)
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? ;)