- Видео 253
- Просмотров 141 117
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 Games memories James Pond II - Robocod
In this Commodore 64 retro games memories video, I look at "James Pond II - Robocod". A quick look at how the game stores its large maps.
Debugging notes: github.com/martinpiper/DebuggingDetails/blob/main/James%20Pond%20II.txt
Debugging notes: github.com/martinpiper/DebuggingDetails/blob/main/James%20Pond%20II.txt
Просмотров: 1 122
Видео
MegaWang 2000 Turbo Edition - 33 - RAM Expansion with DMA - V2.0
Просмотров 792День назад
This video shows the MegaWang board with a new Commodore 64 RAM V2.0 expansion board. This provides an extra 2MB (up to 16MB) of RAM via the user port and keeps the cartridge port free. C64 16KHz sample playback is demonstrated. Also testing the fast DMA functionality from expansion RAM to the MegaWang hardware without blocking the C64 CPU. This is part of a modular audio and video hardware for...
Commodore C65 (C64DX) for sale 1
Просмотров 1,9 тыс.14 дней назад
Sale listing: www.ebay.com.sg/itm/176689954213
C64 Coding - Make Alleykat demo playable
Просмотров 1,8 тыс.14 дней назад
In this Commodore 64 coding video, I make a self playing demo of Alleykat (by Hewson) playable. This means finding the fake joystick input routine, replacing it with a real joystick input, and changing the attract mode to start the game. Games that weren't game page: www.gamesthatwerent.com/2024/10/alleykat-non-playable-demo/ Download the playable prg: github.com/martinpiper/DebuggingDetails/ra...
C64 Games memories - Ghosts 'n Goblins
Просмотров 2,8 тыс.21 день назад
In this Commodore 64 retro games memories video, I look at "Ghosts 'n Goblins". A quick look at the disk and tape versions, the sprite multiplexor, extracting level data from memory, and a long ago remembered cheat code.
C64 Demos peek - Multiverse by Nah Kolor
Просмотров 1,5 тыс.28 дней назад
In this Commodore 64 demos peek video, I look at some parts of Multiverse by Nah-Kolor. Especially the multiple spiky balls falling down the screen and memory patterns visible in some parts. Demo download: csdb.dk/release/?id=242830 The tools video: ruclips.net/video/LOUCV-x31U4/видео.html
C64 Games memories - Kingdom of the Seven Stones
Просмотров 1 тыс.Месяц назад
In this video I have a look at "Kingdom of the Seven Stones" which is a new adventure game, on a 1MB cartridge, for our beloved retro Commodore 64. A lot of compression is used to fit everything inside. The game can be found here: www.tfw8b.com/product/kingdom-of-the-seven-stones/
MegaWang 2000 Turbo Edition - 32 - A quick diversion to MAME for some assets
Просмотров 672Месяц назад
In this video, I cover some code changes made to MAME to allow Sega X-board sprite data to be extracted with correct palettes, and also allow Sega model1 PCM audio and music to be extracted to an editable XM (MOD) file. This is great for preserving the graphics and especially music in formats that can be edited, tweaked, and analysed. This allows me to automatically gather arcade quality graphi...
C64 Games memories - Scramble Infinity
Просмотров 1,4 тыс.Месяц назад
I look at "Scramble Infinity", its expanded intro screen with open borders, the title screen with many sprites, the game bitmap scroll, and the level data streamed from disk during the level. Download: csdb.dk/release/?id=212590 Other video about bitmap scrolling: ruclips.net/video/8RxzkriK3rs/видео.html
C64 Technical peek - How to write a sprite multiplexor
Просмотров 1,9 тыс.Месяц назад
In this Commodore 64 technical peek video, I look at how to write a sprite multiplexor, how video displays work, raster timing and video chip updates. sprite duplication, complex sprite patterns, and sorting algorithms. There is a lot of source code and examples along the way. Note: This is meant to be readable and understandable code, not very optimised. Code: github.com/martinpiper/DebuggingD...
C64 Games memories - Starquake
Просмотров 1,6 тыс.Месяц назад
I look at Commodore 64 "Starquake", a good conversion from the Spectrum that uses the extra sprite and graphics hardware of the C64 to good effect. I also look at how 512 screens are squeezed into memory. github.com/martinpiper/DebuggingDetails/blob/main/Starquake.txt
C64 Games memories Jack the Nipper 2
Просмотров 1,8 тыс.Месяц назад
I look back at Commodore 64 "Jack the Nipper 2", to investigate how a single load contains such a large map. Source code links: github.com/martinpiper/DebuggingDetails/blob/main/Jack the Nipper 2.txt And the CTM file: github.com/martinpiper/DebuggingDetails/blob/main/Jack the Nipper 2.ctm
Amiga - New executable compression
Просмотров 8512 месяца назад
In this #Amiga programming video, I look at a C/C /asm SDK (running in VSCode) and create a new test for executable compression. I use the LZMPiU compression method from my #Commodore64 dev tools and port the decompressor to the Amiga, then optimise for size. Debugging notes: github.com/martinpiper/DebuggingDetails/blob/main/Amiga memories.txt Source code: github.com/martinpiper/AmigaDecompress...
C64 Games memories - Hunter's Moon Remastered - Video compression
Просмотров 5792 месяца назад
I look back at Commodore 64 video sequences in Hunter's Moon Remastered, which were made possible by using delta compression and cartridge storage space. Buy the game: thalamusdigital.itch.io/hunters-moon-remastered Source code links: github.com/martinpiper/C64Public/tree/master/AnimationBitmap github.com/martinpiper/C64Public/tree/master/Animation/DeltaCompression
Amiga - Devpac assemble Amiga Format Bullfrog source code
Просмотров 6932 месяца назад
Join me as I quickly assemble the Bullfrog example source code found on the old Amiga Format cover disks. Using Devpac assembler and battling with LHA archives. Technical notes and links: github.com/martinpiper/DebuggingDetails/blob/main/Amiga memories.txt
Amiga - Using Devpac to assemble Amiga Format Menace source code
Просмотров 7282 месяца назад
Amiga - Using Devpac to assemble Amiga Format Menace source code
C64 Games memories - Nosferatu the Vampyre
Просмотров 9552 месяца назад
C64 Games memories - Nosferatu the Vampyre
C64 Games memories Turbo Outrun Bonus
Просмотров 6712 месяца назад
C64 Games memories Turbo Outrun Bonus
C64 Technical peek - Multiplexor priority
Просмотров 6372 месяца назад
C64 Technical peek - Multiplexor priority
C64 Technical peek - BASIC Sprite Multiplexing
Просмотров 1,2 тыс.2 месяца назад
C64 Technical peek - BASIC Sprite Multiplexing
C64 Demos peek - Swirling patterns and text
Просмотров 1,5 тыс.2 месяца назад
C64 Demos peek - Swirling patterns and text
MegaWang 2000 Turbo Edition - 31 - C64 RAM expansion DMA transfers - 2
Просмотров 2303 месяца назад
MegaWang 2000 Turbo Edition - 31 - C64 RAM expansion DMA transfers - 2
MegaWang 2000 Turbo Edition - 30 - C64 RAM expansion DMA transfers
Просмотров 3253 месяца назад
MegaWang 2000 Turbo Edition - 30 - C64 RAM expansion DMA transfers
MegaWang 2000 Turbo Edition - 29 - C64 RAM expansion USB interface
Просмотров 3823 месяца назад
MegaWang 2000 Turbo Edition - 29 - C64 RAM expansion USB interface
C64 Games memories - Snow effects - Bonus - Creature 2
Просмотров 4653 месяца назад
C64 Games memories - Snow effects - Bonus - Creature 2
MegaWang 2000 Turbo Edition - 28 - C64 RAM expansion
Просмотров 1,2 тыс.3 месяца назад
MegaWang 2000 Turbo Edition - 28 - C64 RAM expansion
Thanks!
Great deep dive (as always); I just got my Kingdom of the Seven Stones cartridge in the mail last week. My retirement gaming goals are piling up. :D
Thanks for looking into the maps. 2x2 suprised me somewhat. I was expecting 4x4 or 5x5 quite frankly and a smaller memory footprint, but all that loading is very painful. I think if it would benefit greatly by being a cartridge game these days.
Two things: Have you tried using coktail-sort instead of Gnome? Have you tried optimizing the bubblesort steps by not rewriting the index values in-place, but instead writing to a new buffer so as to avoid overwrites? (You kind of need two differing versions of the same code so as to write the values back to the old buffer in the second pass.)
Cocktail and bubble are both worse because of the code complexity. Adding direction, index pointers, and swapped flags all add extra instructions. The gnome sort optimises well.
A dive into PDS would also be interesting 🙂
Good idea
The Swizzel is handy, I went to look at my old maps on Alien3, and found I also just indexed them for speed of plotting. Shame Charpad hadn't thought of this on C64 games which I'm sure if a common storage method for tiles. I long lost what editor was used. ( lost as in memory brain cells depleted to remember!)
I always find this so interesting , and you have a calm pleasant way of teaching this . Keep up the awesome work !!!
Thank you very much!
That is quite an impressive Frankenstein contraption you have been building there - I love it! 😊 Godspeed to you for still developing new interesting hardware for the C64, 42 years after its release. 🙏😌
Can't wait till we have such a portable module hanging out the back of our c64's ;)
Amazing!! Such a passive explanation for such a talent. I am in awesome of your knowledge and ability
Wow, thank you!
So can we expect a Xenon 2 port ?
@@NickFellows quite technically possible
Thanks for your work! It would be very interesting to see the differences between the disk and tape versions in terms of small gameplay changes. The tape and disk versions had several differences, the most apparent ones are the laser upgrade that can't reach its max level in the tape version, and the missing introduction. However there are other minor gameplay differences that make me consider the tape version the best one: for example, it's easier to get the six 1-Up's at the beginning of level 2-2 (the vertical tunnel which you have to climb destroying the hives to make your way). In the disk version, the hives disappear if they go offscreen, so if you fall down you won't be able to get the extra lives anymore. In the tape version I find that some of the hives don't disappear even if you fall, so you can still have some chance to make it (it's still difficult but less infuriating). I would be interested in finding out every little difference like this in this awesome game!
I only had the disk version way back int he day, so didn't notice any differences. Good idea to see if there's anything in there that is different.
I hope you get a good price for it m8.
Commodore we're allways making computers of a lesser spec than what they allready have taken over the market with................the c16,the 128 and the c65.........know why it was never marketed.......the amiga Does it comes with 1341 joystick as standard I bet that is what commodore we're going to come up with until they met the amiga team
ebay offer starting at US $25000 ... i would rather buy something more versatile like an oldtimer ^^ but i liked my "commodore zoo" back in the 80s & 90s, brings back memories ... The Last V8 & Last Ninja 2 2x c64, 2 c128, plus4, 1541, 2 1541-II,2 1571, 1581, 2 datasette, printers, monitors and loads of 5,25" and 2,5" disks with software from all over the world (i guess ^^)
It's S$ not US$
@@MartinPiper6502 i thought it was missing the U(gly) prefix. ^^ wether or not it is still to expensive (for me) without having some software to use it.
So it allocated an entire 32KiB for the map?!?! That's incredible.
Yeah it certainly seems so
It's a beauty in excellent condition 👍 It really belongs in a museum. A shame Commodore went with the C16, Plus/4 and C128 line of computers instead of doing the C65 in parallel with the Amiga.
The c16 and plus4 were done before commodore bought Amiga. The c128 might have been started, it was certainly ready earlier. IIRC project that became the c65, started around 1986 and was cancelled something like 7 years later
Well, the "Dennis Jarvis" Prototype has a silkscreen naming the machine "Commodore Amiga C65 H/W V02 Rev 1.1". I can see why the project was canned ... it would have failed both, as a C64 (never being 100% compatible and more expensive) and as an Amiga (sporting really bad performance). The most interesting prototype remains the 364 to me because it's just so out of place when looking at the 264 line.
There were exactly 65 likes in this video when I, guiltly, added my like, breaking the magic.
Good heavens to Betsy, are you _sure_ you want to sell that? You'll never get another one...
Looks like the horizontal $d016 scroll register is being used in a raster to compensate the 8 pixel wide character jumps.
Yes as pointed out at 1:30
I've always admired how you keep your C65s in good shape! If I were ever to buy a C65 I'd want to buy one from you. Best of luck!
🤤I'll trade you 8 c64's, 3 VIC20's, 3 1541's, 2 C128D's and a Plus4 with 1551 drive + datasette for it 🙏 (almost half of my collection 🤯)
No 1581s? Pfff
@@8BitNaptime Yeah I know 😢
Sorry no trades. Just cash.
good luck with the sale 👍
I'm very curious what this sells for. s$25k sounds like a metric F-ton of money.
I wonder if there was a fat-fingering of an extra zero on the listing. S$25k is 17k€. I'd consider nearly 2 grand for a machine like this, but not a price that would also buy a car!
The last few from other sources sold for more.
@@MartinPiper6502 Wow well in that case I'm definitely curious to see the final price . Best of luck!
While I'd value the machine way lower (I was offered to keep one for 2 months at my place for some -paid- servicing, but declined due to lack of interest) $25k is lower than what I've seen most of those sell for. Condition and configuration also seems nice. On the other hand a loose acquaintance of mine (VICE dev actually) sold his (personally dumpsterdiven) C65 for 400€ almost 25 years ago - which already was a ton of money for a virtually useless (every C64 supports more software) retro computer back then.
Armalyte graphics?
Sideways seuck graphics. Don't know where from.
This is a real C65, not a Mega65! Impressive!
A mega 65 is 10 times quicker and thirty times cheaper. It's an easy decision not to buy it.
@@phill6859 That's a logical calculation, but it's not reflecting the reality. If you want C65 and have enough money 💰, you sure won't get Mega 65 because it's faster and cheaper.
@@miselzivanovic2181 I want a c65 and I have the money to buy it. But there are other things I want too, you can only spend money once.
Where is Fat Agnus?
I'm Agnus, and I'm pretty sensitive about my weight if you don't mind, I'm currently sat down, watching Love Island, I'm disgusted with how these people behave, have they no shame? I was contemplating cooking a Pizza for dinner, but now considering a salad after being reminded about my weight. Hope this answers your question.
Probably off-screen, in an Amiga, were it belongs?
Times appear tough in the UK.
He lives in Singapore
thanks again for keeping sharing such good stuff !
Thank you again for the support :)
probably my favorite c64 game! Andrew Braybrook is a genius!
Amazing! That was super fun to watch! I'm probably missing something, but couldn't you have put the patch in the spot where the random movement routine was?
Oh yes I could have . :) When I do these things I tend to try to not disturb the original code as much as possible.
@@MartinPiper6502 that's what I was missing then 😊 thanks for the reply.
That is amazing work Martin, and thank you so much for taking the time to take the demo apart. I'll update the page now with a download + a link to your video.
Great video, and a fun little project! Well done!
Thanks! I still enjoy playing this game on my Amstrad CPC, and like the C64 & ZX Spectrum versions too. I even drew out my own map for the CPC version as a teenager, so as to find the teleporter rooms easily.
There's actually lots of versions of Alleykat. I found that during the Graftgold logo display during the title attract sequence, if you mash the function keys a message appears displaying the version. If it's post official release it says "Live Edition" and a number and release date. I have seen numbers from 001-006. This demo version says "Demo Edition 000" and a date. I recall also seeing a preview version.
I remember watching a self-playing Alleykat demo on a C64 at a store back in the day. Could well have been this one. I want to say it was in Milton Keynes, but can’t remember the retailer.
Back in those days, it could have been Tandy, Boots, John Lewis, WH Smith, et al
I want to say it was a local indie chain called Hobbyte, but can't find any evidence now that they had a MK location.
Softly in CMK shopping centre 🤔
Wow this was an interesting find of a very unusual way to deal with it. Seems to me that the programmer came from computers were hires was done with tiles only. We always played through the game entirely back in childhood days, which was easy due to unlimited CONTINUES and we took about 1 hour for both levels (BEGINNER A-Z and ADVANCED A-Z): yes, there are levels were you go up and down in the C64 as well. There are also UFO levels, and tank levels, mines on the ground and some kind of vulcans, as well as many other enemies.
Just a guess: the non-appearance of that initial timer might be due to the fast load code using the Kernal screen clear routine but expecting Kernal v1 or v2. IIRC, Kernal v1 clear set the chars to white, v2 set chars to the current background colour, v3 set chars to the current cursor colour.
That's what I thought initially, but the colour RAM is cleared by the kernal to light blue. Only the top row of the colour RAM is cleared to black by the turbo loader after the novaload completes its next stage load.
I always wondered how they did this wonderful conversion, this video is an excellent explanation for the animation. But there is still a mistery! Where is the levels data? I suppose some clever compression system to fit 100 screens in memory without multiload.
I will do a short video about that
01:27:00 Fortunately it wasn't his last C64 game after all, he did do "The Enforcer" (Katakis 2) later on :)...
Yes that game is in my todo list.
Extremely interesting. But I always hated the fade in/face out effect in T2, it was soooo much better in T1 (in fact the Amiga-T2 version still used that). No idea, why they changed it, when it looked so cool in C64-T1
Thank you for the membership :)
All of Chris Butler's early games store the maps.uncompressed, some of them (like Z I believe) 32kb of uncompressed map! Chris Harvey (Bomb Jsck coder) apparently tried to get him to RLE the data but Chris didn't oblige. It was only his later few games where he finally introduced compression.
Nice bit of history there. Thank you.
This is really cool. Please do a similar video on Summer Games, Winter Games or Labyrinth.
Color ram scrolling is a nuisance.
If I remember correctly, this, and Chris Butler's other game with multiplexor glitching, Commando, have since been "fixed" in recent years. Commando got all 8 levels in the remake. I can't actually remember if G&G got any added extras?
Time-scales were so short in those days that plex glitching was considered a reasonable trade-off. I mean, technically there isn't really much of a work-around as if you have >8 sprites within the same "band", you are going to see tearing. As the whole point of general-purpose multiplexing is to transparently double (or more) the number of hardware sprites, the thought was always that you'd just manage your usage to make such scenarios uncommon. At the end of the day, its a purely optical artifact as colis handling is almost always done based on coordinate comparison, so its not too impactful on gameplay.
@@inxe8 I know, great explanation, though. I was writing 6502 back then. To be fair, my first plexor back then was one I just ripped off (from Gary Liddon) and modified.
@@alanbenson1505 Cheers mate, and never feel shady about using someone else's plex code! Common implementations like the Ocean one were the work of so many people and spread with variations so widely its hard to pin down exactly who wrote what in the first place.
@@inxe8 Precisely. A lot of code I used back them was lifted/learned from a friend I had, Craig Wight, who worked on commercial games. I mainly wrote tools that could be used to make development easier. With regards to Chris Butler, he was a very clever coder in the 80s. If I'd have written Commando back then, the only thing I'd have done differently would've been using characters/software sprites for the fast moving bullets.
Super interesting. Thanks a lot for your technical videos looking behind the curtains of what is going on inside the C64 while running those great games. So here is some more information and trivia: THe reason why you the sprite is still there when outside is due to the way enemies and sprite-based powerups work outside the view... they are effectively killed (they vanish) once you are too far away, so they are not using any CPU anymore. To not let them vanish right away they go a bit over the view. I guess Manfred decided that the multiplexer is still fast enough with them just displaying. I think the loading after high score is not loading, but saving the high score, if I remember correctly. I always found it funny how "Loading level 1-1" from menu looked different to "Loading level X-X" of any other level :-D I guess they didn't update the display code from the title screen to reflect what was used later. Diamonds are sprites in some levels like this, but in later characters, thats why they look entirely different in world 2 than world 1. The advantage of the world 2 rendition is of course that much more diamonds can be placed. I would love to see how level data is compressed in memory and idle enemy/powerup position is fetched, because the levels are so huge. The Ghost'n'Goblins method of just putting it plain into memory is of course impossible with just 64(+0,5)k of RAM. By the way, isn't it possible to see the rasterlines live in that tool so that you don't have to increment?
If I recall, the level are 4x4 map blocks, with variable sized maps. Each character has a colour.
Hello everybody, here is how the Grayscale 3D objects were made. And yes they are animated. Originally the objects were made in a tool called Notch based on specific requirements by NTSC. And later adjusted for usuage on C64. They all are prerendered animations packed into 256 charset tiles. The packer loaded all animations with originally insane number of tiles and forcefully merged pairs to minimize total error after each step, eventually reaching 256 unique ones. Add a touch of simple irq-based transitions to cover loading next parts and a scene with multiple such animations overlaid (the raining stars) and done. :) Great work by our coder KK. Another nice anecdote is that this part was already done back in oktober 2018. But mainly becoz of the pandemic Multiverse was developed even bigger and better untill the first X party which was held finally in 2023. In Vandalism News #74 diskmag you can read the entire making of Multiverse. Cheers everybody! Greetz, Magic/Nah-Kolor
One of my favourites back in the day. I'm surprised to see how unoptimised it is but you could also tell from the later levels of the C64 version that it wasn't properly finished. The recent demoscene update is kind of brilliant but I still have a soft spot for what Butler and Cooksey managed to do with the original release.
How are the characters colored? Is it through an coloured to a palette , ie. colour ram ? I wasn’t quite clear on what you meant by scrolling colour ram.
In this game, the characters have static color RAM values. The color RAM does not scroll in this game at all. So there are just 3 colors + black available for background graphics. The first stage gets a bit more colors by horizontally striping the color RAM values, but they're still static. This is possible, because there's no vertical scrolling.
On the C64 in "text mode" (which uses custom defined graphics) each screen has 40x25 characters, 1000 bytes storing values from 0 to 255. There is also separate area of memory for colour (called colour RAM) which has 40x25 bytes that only effectively store values from 0-15. This means to character scroll the entire screen with colour information needs the CPU to move 1000 bytes of character data, and 1000 bytes of colour RAM. But having a screen that has constant colour RAM (or horizontal strips of colour if scrolling horizontally, or the same vertically) means that those 1000 bytes of colour RAM do not need to be all moved by the CPU, which saves time.
@@MartinPiper6502 do games ever store other data in the colour RAM if only half the byte is getter accessed ? Is it addressable ? the game looks great with constant color. do you have a good example of a game animating colour?
@@SamsungPhone-bd9ge Turrican II has a good full colour scroll
@@SamsungPhone-bd9ge It's only 4 bit wide RAM. So you can write anything, but 4 bits are going to be lost. Can't store any extra data there (except 24x 4 bits at the end, I guess).
Very typical style of code for its day, but well executed. I always like Chris Butler's stuff. Sticking with single-buffered screens was always the best bet provided cpu-time was kept relatively constant. More space in the Vic bank, less effort syncing sprite positions during scrolling. No surprise with the lack of colour scrolling, to be honest I recall it usually being considered more trouble than it was really worth - the fashion of the mid-late eighties was less about being as colourful as possible, and more about using simple shading (bas-relief etc) in MC mode and letting the natural softness of CRT output smooth it all out.