News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Breaking Baud

Started by ralferoo, 08:55, 20 April 14

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ralferoo

Yesterday at Revision, our new demo "Breaking Baud" was presented, featuring my tape turbo loader for the CPC and more importantly wonderful graphics from JulijanaM and our very own rexbeng, and a sonic smorgasbord from McKlain. The pouët page for the demo is https://www.pouet.net/prod.php?which=62934 and there's a CDT file in the link there if you want to try it out yourself! :)

I've still not prepared a youtube version for this, I'll do this in the next couple of days and tidy up the source a bit for release, along with a post-party version with a couple of things that were planned but didn't quite make it in for the competition deadline.

This project has been a great collaborative effort. Just 5 weeks ago, I had some loading tech but no real demo and after my post here, I soon had several people working with me so it was a definite collaborative effort.

Many thanks to MaV for being the interaction point, translator, and coordinator for the "Lightkeeper" and "Rose" sequences. With his help, a really talented artist created her first "old computer" art based on an image she'd previously created at high res with many colours. It was an amazing foray into the CPC scene for her and the results certainly don't look like her first work in the medium and it's great to see how much of the feeling in her original work comes through into 4 colours and low-res!

Rexbeng's sequence "Bin Renderin" was a real joy to be a part of too. It was amazing to see the kind of colours you can get out of mode 0 when they're put in the hands of a talented graphics artist - it's a really super piece of art that uses colours the C64 can only dream of!

The music too was great! I've listened to McKlain's work many times in the past and when he offered to make some music, I felt truly honoured to have him on board. It was really great that he was watching the demo throughout the process - seeing it take shape and making music that fit the mood so well. Even more amazing that he provided so many different bits of music for each sequence when I was expecting only one tune for the entire demo!

So, thanks to everybody involved for making this the demo it was! It was great to have such a collaborative process! Now I need to catch up on some sleep... :)

redbox

I can't click the Like button enough for this one...!

Congratulations on a great production  :)

tastefulmrship

A great little concept demo. Really fast loading and amazing graphics and sound.
Major congratulations to all concerned. Let's hope this starts a trend for |TAPE demos on CPC!

rexbeng

#3
Well, it was quite funny how the 'Bin Renderin' developed from a simplistic mode1 image (simplistic because there was the time the loader needed to display graphics to be taken into acount) to a quite complicated and very colorful mode0 image! A nice excercise for future projects I think, though I need to point out that pixeling this was really challenging for my eyes and the fact that I had to partialy work on a shity laptop monitor instead of my wonderful IPS desktop monitor didn't help at all!

As 'Bin Renderin' was coming close to completion I thought of making one more image for Breaking Baud and infact asked Doz to wait until the very last moment, but in the meantime I had to do some fast work for another CPC project and in the end it felt as if I'd go blind (ok, I exaggerate). So I decided to let my eyes rest. I cannot dare to imagine what the concequenses would be had I been working images like this one on a CTM monitor. :P

Oh, the dangers of oldschool demomaking I suppose. ;D

About the demo, I find kind of cute how the curly and calm shapes in the girly-ish image are in the exact opposite direction to the rough and tense shapes in the boy-ish image. The changes between the styles and the fitting musics make it interesting for the eye and ear. It could go for another 10 images this way! :D

rb

Bryce

Just watched the Video, what a fantastic demo! How many backups of the Tape did you guys have, just in case one didn't work??

Bryce.

Thanks also for the mention at the end :)

Overflow

Something new on oldschool!? the original idea alone deserves a thumb up.
Then? well, this is Art (Lightkeeper + sound = wow!), thank you for the show.
(And personal thanks for the lesson, teaching to me again that technically impressive is not the only way.)
Unregistered from CPCwiki forum.

MacDeath

#6
doesn't work on 6128PLUS and missing something on 464PLUS... dammit. :laugh:

otherwise nice graphics and sounds... well done, commentaries were great during the streaming.
hope you'll get some price. when can we get the results ?

testd it with Winape, works well but I may not be updates, a few glitches during display of new lines/stuff.

rexbeng

What is a "6128PLUS"?  :P

Gryzor

Whoa, the most original thing I've seen in a long while! Kudos guys, that's really great! I watched it twice in a row, and after posting this I'm going to play it again on my TV.

Great stuff guys, it made me wake up somewhat after the Easter feast! :D

McKlain


tastefulmrship

#10
Quote from: MacDeath on 16:44, 20 April 14
testd it with Winape, works well but I may not be updates, a few glitches during display of new lines/stuff.
I think you'll find that that's the real-time decompression direct to screen-memory.



EDIT: And what the feck has happened to my signature? Ok, my profile settings changed from last night... for some reason the "DO NOT show user's signatures" was ticked! *confused*

Gryzor

Oh, thanks for the video, a chance to watch it *yet* again! ...and also see my name in there, so thanks for the mention too!

Also: wow, data block record, forget about blobs and dots and whatnot!

@tastefulmrship : your sig is right there :D

fgbrain

QuoteWhat is a "6128PLUS"?

Rex, my old friend, I think you will have to learn what a 6128plus IS soon..  (said May?)  ;D
_____

6128 (UK keyboard, Crtc type 0/2), 6128+ (UK keyboard), 3.5" and 5.25" drives, Reset switch and Digiblaster (selfmade), Inicron Romram box, Bryce Megaflash, SVideo & PS/2 mouse, , Magnum Lightgun, X-MEM, X4 Board, C4CPC, Multiface2 X4, RTC X4 and Gotek USB Floppy emulator.

Token


Very good  :)
And the loading is like a fourth AY channel ;)

Gryzor

Quote from: Token on 18:22, 20 April 14
And the loading is like a fourth AY channel ;)


Yeah, noticed that too, it really adds to the whole thing!

rexbeng

Quote from: fgbrain on 18:13, 20 April 14
Rex, my old friend, I think you will have to learn what a 6128plus IS soon..  (said May?)  ;D


Can we at least paint it black?  :P

MacDeath

#16
QuoteWhat is a "6128PLUS"?
:o :( >:(

what an outrage... don't you ever read the Wiki or my numerous posts ?

Anyway yeah, they may somewhat exist in black, but then you may have to re-brand them as Sinclair, which would be a big shame on you...



:D

yeah, poor palette (16 colours palette), attribute text mode, only a buzzer for sounds... it is clealy a Sinclair.
:laugh:




6128PLUS doesn't have the components for tape, but they may be added I guess... are they still findable ?

and 464PLUS doesn't play sounds from the tape as previous CPC did... can it be fixed somewhat ?

So nice way to troll us PLUSers... ;)


nice demo anyway, a kool way to feast for the CPC464 anniversary.

ralferoo

Quote from: Jonah (Tasteful Mr) Ship on 18:02, 20 April 14
I think you'll find that that's the real-time decompression direct to screen-memory.
Yes, I'll post a proper technical explanation of what's actually happening along with the source, but briefly the loader is essentially doing LZ77 compression in addition to having a high base bitrate. In this, any places where 3-255 bytes of data can be copied from somewhere where they've already been loaded, I temporarily store the length and data offset into the first 3 bytes of that buffer and then store a pointer to that buffer in a list and the actually decompression happens as a background task separated from the actual data loading. Unfortunately, the offset is usually a small distance away, so there's usually an FF byte written to RAM at that point. That there are only a few glitches shows how quickly the background task can do the decompression and replace these FF bytes (and there are usually a lot) before the raster gets to that bit of memory!  8)

The compression seems to work very well in practice - for example in rexbeng's section, every section is between 1KB and 1.5KB compressed, even though the input to the compressor is 24KB each time. Because each stage can build on the data that's already been sent previously, most of the data that's already on the screen compresses down to almost nothing... :)

The system was designed so that I could use the spare idle time (yes, there is still plenty of idle time!) to do other demo effects whilst loading, and decompression was just a low-priority background task. Unfortunately, the other code-heavy demoish parts never gone done before the demo was finished, in part because we were already getting close to the maximum running time allowed for the demo, but mostly because I ran out of time as I spent about a week longer on the music playback code than I expected!  :o

McKlain

Watching the demo video I realized that you can't fade out hard instruments, so at the end of 'Bin Renderin' you hear two noises from the bassdrum+hard bass instrument.

BSC

Quote from: ralferoo on 20:01, 20 April 14
Yes, I'll post a proper technical explanation of what's actually happening along with the source, but briefly the loader is essentially doing LZ77 compression in addition to having a high base bitrate. In this, any places where 3-255 bytes of data can be copied from somewhere where they've already been loaded, I temporarily store the length and data offset into the first 3 bytes of that buffer and then store a pointer to that buffer in a list and the actually decompression happens as a background task separated from the actual data loading. Unfortunately, the offset is usually a small distance away, so there's usually an FF byte written to RAM at that point. That there are only a few glitches shows how quickly the background task


Background task while loading from tape?! Holy Jack the Nipper! I can't wait to see the source code..


Congratulations on this very special piece of demo art :) You guys rock!
** My SID player/tracker AYAY Kaeppttn! on github **  Some CPC music and experiments ** Other music ** More music on scenestream (former nectarine) ** Some shaders ** Some Soundtrakker tunes ** Some tunes in Javascript

My hardware: ** Schneider CPC 464 with colour screen, 64k extension, 3" and 5,25 drives and more ** Amstrad CPC 6128 with M4 board, GreaseWeazle.

MacDeath

were there previous examples of such Tape loading effects on CPC ?

I mean, beside Deflektor ?

Does it need a very clean signal (CD or MP3) or would work on any almost old tapes ?

ralferoo

Quote from: MacDeath on 21:51, 20 April 14
were there previous examples of such Tape loading effects on CPC ?
Harvey Headhanger had music and I remember owning another Firebird game with loading music, but I can't think what it was now...
Quote
Does it need a very clean signal (CD or MP3) or would work on any almost old tapes ?
In theory, it should be very tolerant of stretched tapes and worn out motors, as the different between a short pulse and a long pulse is 3x rather than 2x. In practice, it seems quite sensitive to volume level, more than I'd have expected, so it seems to require a bit of trial and error but once it's recorded at the right volume it's very reliable. The volume being too loud or quiet lengthens either the high or low portions of the pulse so it might cause me to incorrectly detect the end of the pilot tone...

In terms of tapes, the first I tried, a TDK CD'ing 90 seemed to work great. Others I've tried haven't worked as well, and some nice brand new tapes I purchased for bringing to the party and making available were totally awful - so bad they couldn't even load the AMSDOS portion no matter what I did to the volume levels! It does seem on the tapes that haven't worked, it often fails in the same place each time, so I suspect it might be the tapes that are just too old - they were last used 20 years ago and had at least one music album on them before...

It'd probably be more reliable to write the data direct from the 464, but the data is too big to fit into memory, so I'd have stream it e.g. via a serial expansion port to do that... But certainly with my home PC at a certain volume level, I can reliably record it on this TDK tapes and load it  100%.

robcfg

That's what I call impressive!


I really love how the images form while loading, the music, and the technical challenge.


Great work guys!  8)

tastefulmrship

Quote from: ralferoo on 00:43, 21 April 14
Harvey Headhanger had music and I remember owning another Firebird game with loading music, but I can't think what it was now...
SPIKY HAROLD and THRUST both had Melvyn Wright music-rolls playing while loading.
His websites - Welcome to Melvyn Wright's Web Sites

arnoldemu

Nice demo!
And thanks for the greetings! :)

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Powered by SMFPacks Menu Editor Mod