Bad Apple on the Homebrew CPU!
Ғылым және технология
Viewers have been asking for this. Bad apple is a tune and video with a rich history that has been “ported” to many low powered systems as a technical challenge.
This is one of the most complex demos I’ve implemented on the system with synchronized Audio, Video, SD card and the UART.
You’ll want to watch the follow up video “Porting Bad Apple to the Homebrew CPU!” where I discuss many of the technical challenges and my solutions. • Porting Bad Apple to t...
Пікірлер: 93
Join us on Discord: discord.gg/jmf6M3z7XS (Over 1024 members!) Follow me on Twitter: twitter.com/WeirdBoyJim Support the channel on Patreon: www.patreon.com/JamesSharman
I've seen bad apple ported in some weird and whacky ways - but I love this. It is amazing what can be done on 'limited' hardware, and the JAM-1 is an amazing piece of kit.
@weirdboyjim
Ай бұрын
Thanks! I had to use a lot of tricks to make this work as well as it does. Push hardware's limits has always been a fun challenge!
An amazing port, your CPU ran it so well, it looked and sounded great. All that and capacity to stream the lyrics out with the music, you have every reason to be proud of what you have built
@weirdboyjim
16 күн бұрын
Glad you like it! I've been looking forwards to sharing this demo with everyone!
Rule 86 - If it exists, you can play Bad Apple on it Great work
@weirdboyjim
14 күн бұрын
Glad to be of service!
Your CPU is so beautifully modular, love it. I commend you for having the stamina to go through constructing and building and even making it to "PCB" to make it, even if just for the "I knew I could do it" satisfaction of doing so.
@weirdboyjim
16 күн бұрын
That was always my vision, to be able to show all the parts clearly bad still have it running.
beautiful. A true culmination of your work.
@weirdboyjim
16 күн бұрын
Thank you! It's nice to do something that uses so many of the separate features!
I have no idea what Bad Apple is, but this is great! JAM-1 has come a looooooooong way!
@weirdboyjim
Ай бұрын
I will probably link this video in the public release: kzread.info/dash/bejne/aIWNlsekkcaXj7Q.html
James, You're squeezing some impressive gxf performance out of JAM-1 Well done :-)
@weirdboyjim
Ай бұрын
Thanks! This one has a far few ticks at play.
This is fantastic, James! An awesome demo! 😍😍
@weirdboyjim
Ай бұрын
Thanks George!
Wow! That is truly impressive. I knew about the song and the video, but not much else, so the video explaining Bad Apple was very educational as well!
@weirdboyjim
Ай бұрын
Glad you liked it! I was in a similar position, I knew about bad apple as a "thing" in the demo community but I didn't really know anything about it's history until I started digging into it for this demo.
@damouze
Ай бұрын
@@weirdboyjim Who knows, if I finally get my Stackable Z80 Computer build completed with a VGA circuit, maybe the next port will be to that platform ;-).
I'm very glad, I was part of the big journey :)
@weirdboyjim
15 күн бұрын
Good to have you along!
Wow this was amazing! I love how it exercised seemingly all components so well. I’m excited to see how you pulled off the graphics since they look very bitmapped, as well as how the timing was done (RTC?) the sound, lyrics, visuals all seem very well coordinated.
@weirdboyjim
Ай бұрын
Thanks Brady! I'll explain more in the programming video but the main loop is les than 1/60th of a second so it syncs itself with vertical blanking on the vga.
Seriously impressive just how far JAM-1 has come - awesome work James 👍
@weirdboyjim
16 күн бұрын
Thanks Andrew!
the animation is so smooth
@weirdboyjim
15 күн бұрын
Glad you approve!
Excellent work!!
@weirdboyjim
16 күн бұрын
Thanks!
Looking awesome great job james.
@cj09beira
Ай бұрын
so many questions
@weirdboyjim
Ай бұрын
Hopefully my follow up video will have many of the answers!
Wow. Simply amazing!
@weirdboyjim
16 күн бұрын
Thanks Marcel!
Looks and sounds awesome!
@weirdboyjim
Ай бұрын
Thank you Frank, Glad you like it!
Didn't expect this to happen, thanks chap!
@weirdboyjim
16 күн бұрын
You are welcome!
In a decent and fair world, this video would have hundreds of thousands of views. Considering you created this CPU from scratch, "incredible" don't start to describe what you did there! Also massive kudos to whoever created that demo in first place.
@weirdboyjim
16 күн бұрын
Very kind words! And yes, the original video is impressive itself. I provide some more details in the Porting video.
just SO good
@weirdboyjim
16 күн бұрын
Thanks twobob!
The skeletons Halloween demo is still my favorite audio recording you've ever done
@weirdboyjim
16 күн бұрын
Lol! Glad you liked it!
God damn it, that's epic.
@weirdboyjim
16 күн бұрын
Thanks! Glad people are enjoying it!
It sounds like a washing machine I love it.
@weirdboyjim
12 күн бұрын
For some reason my washing machine plays tunes as well.
Woo hoo! That's fantastic.
@weirdboyjim
Ай бұрын
Thank you!
Awesome.. 👍
@weirdboyjim
16 күн бұрын
Thanks!
Just WOW!
@weirdboyjim
Ай бұрын
Thanks Jerril!
Very impressive. I don't understand where you're storing the video frames. RLE on B/W probably gets you quite far, but to also store 4 channel audio and the lyrics. Looking forward to the follow-up explanation
@weirdboyjim
15 күн бұрын
Data is streamed from the SD card, there is a production video linked in the description that explains more.
@tomasparrado873
15 күн бұрын
Yes, I forgot you added the SD card and I did watch the explanation video. It's still remarkable how you managed to compress the data down to stream it in real time. Only storing the tiles that change was a lovely trick. If you're ever low on ideas for videos I'd be interested in learning more about how you pre-processed the frames assuming this was custom code and not a feature of video editing software. I'm assuming it wasn't written in assembly. Great video as usual
Wow… just wow.
@weirdboyjim
16 күн бұрын
Thanks Scott!
@andymouse
16 күн бұрын
And another Wow for good measure !
Very well done! And I guess I'm one the side of people who lacks words for expression here, it is "*wow*" indeed :D (By the way, the video link in the description is broken/leads to a deleted video)
@weirdboyjim
16 күн бұрын
Thanks for the kind words! Not sure what happened with the link, I fixed it a while back when someone else pointed it out.
really impressive demo! The sound frequencies are not quite in tune with each other. I know that the sound module is quite limited, but I was wondering: Is this due to the rounding in the divided frequencies? Do you think that this could be improved, by building a better clock divider? Have you experimented with capacitors to make the square waves look more like sine waves for a less distorted sound? Also I would be interested in the quality of a direct recording of the audio line, without converting it to airwaves and back again :D
@miege90
11 күн бұрын
it was really enjoyable to see the SD expansion being put to good use :)
@miege90
11 күн бұрын
one particular thing I was thinking about: especially for midi music tracks, you basically have just 11 different frequencies in an octave and for each octave their respective frequency is doubled/halfed. So matching the frequency very precisely relative to each other is probably very important for playing music in tune, and the different octaves could be implemented quite trivial with counter chips.
@weirdboyjim
9 күн бұрын
Thanks. I have a hypothesis that some of the tuning issues that people (With a better ear than me) are reporting is a software issue in my midi convertor. I need to investigate it when I get some time.
Awesome. I take it you are streaming off the SD card. Do you use any video compression, like run length encoding?
@weirdboyjim
Ай бұрын
Lots. There is both run length encoding within frames and delta encoding between frames.
@edgeeffect
Ай бұрын
@@weirdboyjim Woah! Reminds me of my days messing around with a DIY Autodesk Animator player.... But that was in C, not assembly... looking forward to the "making of... DVD extra" ;)
Cool 😎👍
@weirdboyjim
16 күн бұрын
Thanks!
what next? A mod tracker implemented in hardware? 😆
@weirdboyjim
15 күн бұрын
To be honest, the trend would be to do more in software.
Wow
Rad 😎
@weirdboyjim
16 күн бұрын
Thanks! 👍
👍
@weirdboyjim
16 күн бұрын
😎
The tuning on that bass line tho...
@drivers99
16 күн бұрын
Something’s off
@AJMansfield1
16 күн бұрын
@@drivers99 ye, like I'd understand if it was a high arp that was out of tune (the audio circuit has only limited tuning resolution at the high end), but for a bass line that's almost certainly a software issue.
@drivers99
16 күн бұрын
@@AJMansfield1 I wonder if the midi file has things transposed based on the instruments, and so the notes are wrong in the conversion. “Audio from scratch part 10” sounds good enough. This is more like bass being in entire the wrong key
@weirdboyjim
16 күн бұрын
I feel bad that the sound lagged behind the visuals.
Good call with linkin kzread.info/dash/bejne/aIWNlsekkcaXj7Q.html for more explanation. And maybe you link the video itself as well, has only 88m clicks by now. And of course someone needs to mention the efford spent by OSU to "render" the full video in last years r/place. Good job, James, I love it!
@weirdboyjim
Ай бұрын
Glad you liked it Peter!
Bad link to explanation video.
@weirdboyjim
16 күн бұрын
Oops. Try this one: kzread.info/dash/bejne/ZJtlypecn82cmaQ.html
inb4 millions of views
@weirdboyjim
16 күн бұрын
Bold! a few thousand if I'm lucky ;-)
weird flex, but ok. epic display of some serious dedication
@weirdboyjim
16 күн бұрын
Lol Thanks. Was the demo the weird flex or the entire build?
Not bad at all, and also not an apple, this is kinda clickbaity =)