Coding NES Loops

  Рет қаралды 26,902

NesHacker

NesHacker

Күн бұрын

In this episode I show you how to program with loops on the NES.
Support the channel on Patreon: / neshacker
Get the code: github.com/NesHacker/Assembly...
Chapters:
0:00 Introduction
0:50 Loops Explained
5:10 Multi-Attack Example
7:18 HP Initialization Loop
11:30 Attack Loop
16:10 Conclusion

Пікірлер: 131
@NesHacker
@NesHacker Жыл бұрын
UPDATE: There are multiple issues with how I treat the negative flag in this episode. Both DEX and SBC set the Negative Flag whenever the result has the 7th bit set. This means the flag will be set by a DEX when X = 255, and again with SBC for 200 - 50 = 150 (*1*0010110 in binary). Big mistake on my part, I apologize. Thank you very much to @TheWoodsieLord for pointing the error out! It's been a while! Hope you all like the video and let me know if there's a specific topic you'd like me to tackle next 😁
@RufusTodd
@RufusTodd Жыл бұрын
It’s been a wend.
@NesHacker
@NesHacker Жыл бұрын
@@RufusTodd Did you just make a VBA joke? hahaha
@AndyScott
@AndyScott Жыл бұрын
Yes!!! So happy to see you're still at it!
@thinksie
@thinksie Жыл бұрын
This comment should be pinned, editing deletes the pin. xD
@matte.309
@matte.309 Жыл бұрын
You're videos are really great, I've struggled with the ".byte" ".word" or ".data" directives. I see them a lot in NES disassembly and I have a hard time getting my head around them.
@FloatingSunfish
@FloatingSunfish Жыл бұрын
Not even VS Code can make Assembly programming painless. Really makes you appreciate how far we've come in terms of game programming.
@NesHacker
@NesHacker Жыл бұрын
It can certainly make editing and organizing the files less of a chore, but yeah… assembly is assembly.
@BillAnt
@BillAnt 8 ай бұрын
​@@NesHacker- Assembly/machine code programming is like doing anal instead of regular sex. Enjoyable for some, not for others. lmao
@jaysonl
@jaysonl Жыл бұрын
The last time checked, you had somewhere around 300 subscribers, and now you've blown well past 10k! Well done!
@NesHacker
@NesHacker Жыл бұрын
I think it was like over the course of a month the channel went from 1k to 10k subs, been growing at a good rate ever since.
@jaysonl
@jaysonl Жыл бұрын
@@NesHacker That's super awesome! Keep on going up, friend!
@LorenHelgeson
@LorenHelgeson 9 ай бұрын
37K+ now. He's on fire!
@BillAnt
@BillAnt 8 ай бұрын
​@@LorenHelgeson- The loops are working great, branching out even more. ;)
@ReachTimeToWin
@ReachTimeToWin Жыл бұрын
The return of the king Hope you stay doing more videos.
@NesHacker
@NesHacker Жыл бұрын
:) that's the plan!
@near5148
@near5148 8 ай бұрын
​@NesHacker these videos help me better understand how they work
@SamKickedOut
@SamKickedOut Жыл бұрын
Let’s go, another video!
@NesHacker
@NesHacker Жыл бұрын
Yeppers :), I hope you enjoy it!
@damianvila
@damianvila Жыл бұрын
Great video! It's nice to have you back. :) I personally would like a video explaining how Zelda's initial screen works. Specifically, how the waterfall, heart and fairy (in the scrolling screen) are animated, and how to change palettes on the fly. Cheers!
@NesHacker
@NesHacker Жыл бұрын
Sure I can do something about that, it’s a pretty easy technique called palette cycling. I’m hoping to do another graphics video with more of a focus on programming at some point, so keep an eye out :)
@Favourites669
@Favourites669 Жыл бұрын
Indeed it's been a while, but totally worth the wait. Assembly is still hard for me to 'digest' but it gets much easier when it's explained in an interesting way and within a fun subject like the almighty NES. Keep 'em coming whenever possible man, we know life gets in the way most of the time. And sorry for my crappy english.
@NesHacker
@NesHacker Жыл бұрын
It's a whole thing: learning assembly is rough, but *very* doable for most folks. Also: your English is superb :)
@violator1017
@violator1017 Жыл бұрын
Man, you're PURE GOLD ! A huge thank you and never stop this... it's one of the best if not the best NES related channel EVER MADE ! Again, thanks a lot !🙏
@NesHacker
@NesHacker Жыл бұрын
I will have you know I consist mostly of hydrogen, oxygen, and carbon ;). Thanks, and I hope to make many more videos in the future!
@violator1017
@violator1017 Жыл бұрын
@@NesHacker May the Lord of MOS hear you ! 😉
@TheNuje
@TheNuje Жыл бұрын
I just love love LOVE how the carry flag between the Z80 and the 6502 behave in largely the same way, unless you're comparing and subtracting where it works exactly backwards.
@NesHacker
@NesHacker Жыл бұрын
I should totally do videos on GameBoy programming, that will give me an excuse to dust off my *very* neglected Z80 assembly skills (oh the days of TI-85 game programming... how I miss you).
@TheNuje
@TheNuje Жыл бұрын
@@NesHacker I'd have to get used to not having IX/IY if I ever did anything on the GameBoy, but it would be fun to try it out!
@s14tam
@s14tam Жыл бұрын
Probably the coolest way I could think of to learn assembly programming! Please keep making great videos like these
@NesHacker
@NesHacker Жыл бұрын
Absolutely, there are a lot more to come :)
@ikemkrueger
@ikemkrueger 7 ай бұрын
That's by far the best series to learn assembler! I wanted to learn assembler a long time ago, and now I have a solid basic understanding of it. Thank you very much!
@NesHacker
@NesHacker 7 ай бұрын
You’re very welcome! I am very happy to hear that the series helped :)
@BrianBates128
@BrianBates128 Жыл бұрын
Thank you for returning! Great breakdown of the loop process and explaining unnamed loops
@NesHacker
@NesHacker Жыл бұрын
Oh I never left, I just got a little sidetracked by "life stuff".
@BrianBates128
@BrianBates128 Жыл бұрын
@@NesHacker I totally understand. If you ever need anything else other than subscribers and likes, let us know!
@EastCoastBaja
@EastCoastBaja Жыл бұрын
It's not even that this is the best NES programming series. This is the best series for programming and programming concepts in general. There are college classes that don't go this hard. If you ever decide to teach any other topics, you can bet I'll be on board.
@NesHacker
@NesHacker Жыл бұрын
That's incredibly high praise. Thank you :)
@lunexbot8437
@lunexbot8437 Жыл бұрын
Early Christmas, lovely work!
@NesHacker
@NesHacker Жыл бұрын
I give the gift of knowledge by way of crispy, fast-paced, and irreverent graphics ;)
@vitmaubra
@vitmaubra Жыл бұрын
Your explanations are both deep and very, very , very clear. Hard to find something like that when it comes to programming nowadays. Congratulations.
@3DSage
@3DSage Жыл бұрын
I really enjoy how well you explain this! 😎👍
@NesHacker
@NesHacker Жыл бұрын
And I really enjoy explaining it, thanks so much for watching :)
@randy7894
@randy7894 Жыл бұрын
Very well explained and some entertaining infographics. Thanks!
@NesHacker
@NesHacker Жыл бұрын
Thank you! Did you know that the graphics work take the majority of the time of a video? About 75% of the overall time is spent in editing, graphics, and post production. So your compliment feels particularly nice 'cause I put a lot of time into that part of the process :D
@randy7894
@randy7894 Жыл бұрын
@@NesHacker I'm not surprised. But a treat tob watch.
@liyifenn
@liyifenn Жыл бұрын
I love these videos so much. You and Retro Game Mechanics Explained are so, so, so joyous to listen to.
@luzten
@luzten Жыл бұрын
Just THANK YOU. The production quality is massive as usual with your videos.
@NesHacker
@NesHacker Жыл бұрын
No problem, I like making these as much as you all like to watch them :)
@DonovanMyers
@DonovanMyers 8 ай бұрын
I was literally just at Pinball Pete's last weekend and took that same photo (of the SFII/MVC machines w/ the pinball in the background)! Had to do a double take.
@NesHacker
@NesHacker 8 ай бұрын
That’s awesome, I got that shot off a stock site though 😂
@GustavoValdiviesso
@GustavoValdiviesso Жыл бұрын
I won't complain about how long it take between your videos. I know how it is. Besides, it is worth the wait 😎
@NesHacker
@NesHacker Жыл бұрын
Maybe you should complain more so it motivates me to put out videos faster haha xD
@GustavoValdiviesso
@GustavoValdiviesso Жыл бұрын
@@NesHacker There are other ways to motivate: I am a professor from a Brazilian university, working with Physics simulations, and programming 6502 for fun. Because of you and the way you organize your topics, I felt motivated to give a short course on 6502 asm myself. You see, in general Brazilians know no other languages and they miss so much because of it. So I translated the easy6502 page and used it for a 3h crash course. The feedback was amazing. So, thank you for motivating me 😉 BTW, I have a science education channel in Portuguese called @Cienplifica and I haven't publish anything in three months or so, because of my classes and research. So I understand 👍
@NesHacker
@NesHacker Жыл бұрын
@@GustavoValdiviesso That's super cool, it's awesome to hear that I had such an impact :D
@BDJones055
@BDJones055 Жыл бұрын
NES Hacker is awesome. Thank you so much for providing this knowledge to us! I've been lurking around assembly language for quite a while but I've never found someone who does into a deep dive like this in a easily consumable way. PLEASE Keep doing these videos!
@xcruckx
@xcruckx Жыл бұрын
Love this channel, thank you for your videos! Keep it up! PS: do you have a Patreon?
@NesHacker
@NesHacker Жыл бұрын
Thanks! No Patreon yet, but make sure you’re subbed cause I’ll be announcing something about that soon…
@ZenoTasedro
@ZenoTasedro Жыл бұрын
I consume a lot of deeply technical content, but I am pretty damn sure I've never seen that content look this good
@andreazaffino
@andreazaffino Жыл бұрын
I’m really happy to see you again 👏
@oiyo6241
@oiyo6241 Жыл бұрын
Totally worth the wait ! Keep up the good work!
@Favourites669
@Favourites669 Жыл бұрын
Also, totally jealous of those original NES classics you have there. :)
@seckinseckin3919
@seckinseckin3919 Жыл бұрын
Before i learn asm, i learnt how CPU works, Logisim is a good simulator for learn this. After i learn CPU logic then i wondered how assembly codes are understandable by CPU and where they kept.. and brought me to ROMs, compilers, lexical analysis, parses,tokes... etc.. i dig and dig to the core.. this is how i find videos like yours. Thanx
@jwalshmorrissey
@jwalshmorrissey Жыл бұрын
Glad to see you back.
@NesHacker
@NesHacker Жыл бұрын
It's good to be back :)
@1stacbats
@1stacbats Жыл бұрын
Another fantastic explanation 👌🏻
@NesHacker
@NesHacker Жыл бұрын
Thank you!
@thinksie
@thinksie Жыл бұрын
Next amazing video! Thousand thanks, your videos helped me a lot! I can use nesdev and know what's what and why :D I might be wrong, but: 10:23 11111110(254) still sets the negative flag, any number ranging from 128(10000000) to 255(11111111) will in fact set the negative flag! The negative flag is just the 7th byte of a number. The numbers on NES range from -128 to 127 or 0 to 255. EDIT : 14:50 BPL ==> BCS. Also the carry will be set if it didn't have to borrow when subtracting. I love your vids though! I think I've seen each of your videos on NES minimum twice lol
@NesHacker
@NesHacker Жыл бұрын
Yep, you’re right. I goofed hard. Thanks for pointing it out, I’ll make sure to update the errata in the pinned comment.
@thinksie
@thinksie Жыл бұрын
@@NesHacker The overflow flag would be most useful. I think it is set when the boundaries of signed numbers get crossed. (Nope, it gets way complicated then lol) Glad to could have helped! You're most welcome! ^ ^
@NesHacker
@NesHacker Жыл бұрын
​@@thinksie Added an update to the pinned comment, but still a huge bummer. I need to *not* rush the testing of the programs I put out there :(
@thinksie
@thinksie Жыл бұрын
@@NesHacker Right now I got interested, how to fix that in a program, you know for HP to work using the whole 0-255 we have. Ok, yeah, you'd probably need to use N V C and Z, all these flags, to distinguish the cases and for the program to act accordingly. That really does seem complicated ;-; I was making a table of that in paint, lol my brain explodes C to see if we crossed the byte boundary. V to see if the sign changed ONCE ( if it changed twice, then our C will tell us that :D) N to see the sign Z to check if the HP is 0 Got it, there are 6 possibilities :D for N+ : V+ C+ | Impossible - did change sign, did cross the byte, positive V- C- | 20-5 = 15, didn't change sign, didn't cross the byte, positive V- C+ | 20-180 = (-160) = 95, didn't change sign, did cross the byte, positive V+ C- | 160 - 40 = 120, did change sign, didn't cross the byte, positive for N- : V+ C+ | 50 - 60 = (-10) = 245) did change sign, did cross the byte, negative V- C- | 160 - 5 = (-100) = 155 didn't change sign, didn't cross the byte, negative V- C+ | 140 - 180 = (-40) = 215 didn't change sign, did cross the byte, negative V+ C- | Impossible - did change sign, didn't cross the byte, negative Why two are impossible? N- V+ C+ | it has to cross, has to change the sign(so start as negative) and be positive the smallest negative number is 128. 128 - 100 = 28, didn't cross, 128 - 200 = -72, crossed but is negative, 128-255 = -127, crossed, but still is negative. N+ V+ C- | it cannot cross, has to change the sign(so start as positive) and be positive Whatever number we can subtract from a positive number, we cannot make it go negative all of a sudden without crossing the byte.
@NesHacker
@NesHacker Жыл бұрын
@@thinksie Easiest way I can think to do the check is compare the HP value prior to the subtraction to the amount of damage. If the damage >= current HP then branch to the "lda #0", otherwise perform the subtraction and jump to the "sta $0300, x". But yeah that's way more complex than just "check a flag" 🤦‍♀ hahaha
@patrickcunningham5167
@patrickcunningham5167 Ай бұрын
Once again I find myself comparing this channel to my assembly language course from my CS degree decades 8-| ago. Makes me wish they taught 6502 instead of x86.
@trapr00t
@trapr00t Жыл бұрын
Extremely cool video, enjoyed it a lot! Can't wait to learn how negative arithmetic works. Please do more videos, I simple can't wait! =D
@kythrathesuntamer9715
@kythrathesuntamer9715 Жыл бұрын
My only feedback is you're basically offering the most clear and understandable explainations of 6502 on youtube altogether. You're one of the easiest to actually grasp what you're saying although I should totally rewatch as it's been too long since I started originally. You must work really hard to make this stuff I'm so grateful you see I'm not entirely learning to be a game developer I'm- Interested in Assembly programming and I just am studying via the NES because it's so old tech that it's frustratingly limited and I just feel like when developers had to deal with those limits they wrote code that performed better and the current era has tragically given way to agile development that puts things together as quicky as possible and to hell with how it actually performs and as someone studying coding I just don't want to fall into the camp that doesn't give a fuck if my code actually executes on my machine quickly. I'm not as new to coding as i can come across i just don't have my name on a major project because it's hard to stay consistently on the path.
@jayjasespud
@jayjasespud Жыл бұрын
Yo you're back! Yes!
@NesHacker
@NesHacker Жыл бұрын
Heckin' yeah I am :D
@ebs777
@ebs777 Жыл бұрын
These videos are gold. Thank you so much. I hope you make more very soon
@NesHacker
@NesHacker Жыл бұрын
Thank you, I’m working on them full time now :)
@chrisdemerski1101
@chrisdemerski1101 Жыл бұрын
How I have missed you!
@16bitdude36
@16bitdude36 Жыл бұрын
YO,YOUR BACK!
@NesHacker
@NesHacker Жыл бұрын
Yah, and hopefully for a good while :D
@schlangengrube157
@schlangengrube157 Жыл бұрын
You are back.🙂
@mattmmilli8287
@mattmmilli8287 Жыл бұрын
This has value applied to modern day things for sure. Even higher level languages 🤔
@NesHacker
@NesHacker Жыл бұрын
Mhm, that’s the cool part about CS fundamentals: they’re applicable in all sorts of contexts.
@brunch1572
@brunch1572 Жыл бұрын
I enjoyed the video. Off topic, but I'm wondering if you have heard of the 65c02-based Commander X16 and what you think about it. I totally understand if you are only interested in the NES, its what your channel is about after all.
@NesHacker
@NesHacker Жыл бұрын
I hadn't heard of it, but after a quick search I found some info about it on the C64 Wiki. Looks like a cool idea from what I can tell, though I still think there's something a bit more magical about getting programs to run on original vintage hardware ;D
@wildside4822
@wildside4822 8 ай бұрын
Great vid. I'm a little confused, the code in the Github repo is different to the code in the video?? At 07:25 you are explaining the .byte directive but it is not in the example repo. Thanks again.
@wildside4822
@wildside4822 8 ай бұрын
Ah, OK, I figured it out. I think the Gihub code is a simplified version. Figuring out the .byte directive was the key
@eg6490
@eg6490 Жыл бұрын
Still an enigma when it comes to code, but still fun to watch This is something for much later, but I’d love to see your thoughts on a program out their called NES maker. It’s a cool project that’s supposed to help with nes dev. Would love to see what you think
@NesHacker
@NesHacker Жыл бұрын
Mmm, iirc that's a commercial development product for making NES games? I've not used it personally so I don't know if it is good or bad. Mostly I just hack from scratch :)
@eg6490
@eg6490 Жыл бұрын
@@NesHacker it is commercial. About $40. Whether it’s worth the investment is up to the individual. But it is a neat thing developed by a few dudes in their free time. I still think it’s pretty neat In it’s current state
@annarozin467
@annarozin467 10 ай бұрын
Amazing video editing, how do you do that?! I used to work as C programmer together with asm programmer who wrote the engine on a 8051/8051 chips
@NesHacker
@NesHacker 10 ай бұрын
After effects and final cut pro, just like everyone else haha :D
@ctrlAltReality
@ctrlAltReality Жыл бұрын
yai you are back
@NesHacker
@NesHacker Жыл бұрын
Yes I am :)
@brian8152
@brian8152 Жыл бұрын
"This is called Lupin" :^)
@NesHacker
@NesHacker Жыл бұрын
Just wait until the 3rd installment...
@jengelenm
@jengelenm 10 ай бұрын
Darn that was fast, i think i need to rewatch some videos and this one in slow-motion :)
@toonz9971
@toonz9971 Жыл бұрын
Since we don't have the luxury of something like 'if x10' how are conditionals within a given range typically handled? I'm guessing there is a better way that I don't know about than consecutive comparisons along these lines? : CMP #$01 BCC less-than-one-subroutine CMP #$0B BCS greater-than-or-equals-eleven-subroutine
@NesHacker
@NesHacker Жыл бұрын
Yeah basically. That’s the thing with old school assembly: everything is always broken down into small pieces and put together like that. So there are no higher order operators like “||”. In your example you’d want to use CPX instead of CMP though :)
@zzeck431
@zzeck431 Жыл бұрын
Good video! I was concerned that perhaps you had stopped. This is probably all really weird feedback. You could probably lower your production style significantly, and still get your points across just fine. IMO the essential things are stuff like highlighting the code in the editor, and also the illustration of an arrow pointing at addresses. All the images, video clips, little animated vector art, game screenshots and footage, seem like they would take a lot of time to me! They do add a very polished feel to the video though! Could be I'm wrong about the time because I'm terrible at editing. You might also want to assume a bit more knowledge in the audience. Probably (I speculate) most viewers who find your videos will know something about a loop but be unfamiliar with how they are done in assembly language. So the card analogy might be unneeded then, and you could perhaps instead contrast asm with python or something. There's a bit of a disconnect in having github link, project people would build with command line stuff, etc and not assuming some slight programmin' experience. Maybe some audience survey could help on the community page? Could emphasize that people should go download and follow along through the video perhaps? Might get more people to take the plunge. "Here we can see on line X...", "Stepping through this in Mesen we see..." type of comments in the video or something. Visually, it's there, but I dunno. We also do not get a clear view of the whole file visually, introducing it. "In X file from github..." Anyway, maybe some of that is useful, or I could be just nuts. Next video suggestions: NMIs and how they complicate execution and design, Going through a game's code interacting with the PPU (probably early, simple, single screen game), Audio
@NesHacker
@NesHacker Жыл бұрын
Woah, lots of thoughts there! Thanks for sharing. I think the graphics add a lot and allow me to talk about deeper concepts than just the code. As far as the target audience and what to cover and not to cover, I struggle with that a lot since I don't want to alienate the uninitiated... but I also know my vids can get tedious for those who just want to jump into the code. I've thought about it a lot and mostly just decided to keep trying things out and experimenting. Hopefully I'll find the sweet spot someday :)
@hicknopunk
@hicknopunk Жыл бұрын
I vote yes on the PPU
@mindphaserxy
@mindphaserxy Жыл бұрын
Dawg where you been...it's been months!
@NesHacker
@NesHacker Жыл бұрын
I’ve been around but I’ve also been really busy, haha ;)
@MichaelShulski
@MichaelShulski Жыл бұрын
Can 6502 do recursion?
@NesHacker
@NesHacker Жыл бұрын
Yep, it sure can. Though like any other machine the depth of the recursion is limited by the stack. I was thinking of doing an episode on subroutines and covering this a bit there.
@Shrek321
@Shrek321 11 ай бұрын
there are multiple advanced techniques you saved for other videos, bring those videos please
@stephensteele2844
@stephensteele2844 Жыл бұрын
brotato addiction triggered
@NesHacker
@NesHacker Жыл бұрын
I had no idea what "Brotato" was and now I am all like, "I need to go try that game now..." >.>
@stephensteele2844
@stephensteele2844 Жыл бұрын
@@NesHacker it was the soundtrack, its certainly a fun little game that can soak 100 hours or more if youre not careful :)
@ARCSYS4049
@ARCSYS4049 Жыл бұрын
Your face looks as though it is meant to house a magnificent beard.
@NesHacker
@NesHacker Жыл бұрын
You’d think that, but mostly I just grow a good mustache xD
@alieander
@alieander Жыл бұрын
first lol
@vuurniacsquarewave5091
@vuurniacsquarewave5091 Жыл бұрын
It's always a teeny tiny bit more efficient to count down in 6502 loops because of that convenient N flag behavior.
@NesHacker
@NesHacker Жыл бұрын
Yeah but you can do 128 iterations max because the N flag is set when bit 7 is set, no?
@vuurniacsquarewave5091
@vuurniacsquarewave5091 Жыл бұрын
@@NesHacker Yes, that's definitely a limiting factor but it's also not super common that you need that many iterations of something. If execution time is not that critical, you can even add a byte of zero page as part of your counter, or if both X and Y are constantly needed in the body of your loop. But that's why assembly is awesome, you can always try to adapt things to the situation at hand.
@TurboXray
@TurboXray Жыл бұрын
Unnamed labels are ~poor~ code design for lazy devs haha. Definitely judge anyone who uses them and claiming to come from a professional developer background.
@thinksie
@thinksie Жыл бұрын
Well, technically yeah, I would agree, but for /some/ simple loops it actually wouldn't make sense to give names to each and every one. At least I think so.
@claytonburton7721
@claytonburton7721 Жыл бұрын
Your video was awesome! This content desperately needs Promo`SM!!
Coding NES Subroutines
8:15
NesHacker
Рет қаралды 53 М.
I Learned C++ In 24 Hours
0:32
Neel Banga
Рет қаралды 1,2 МЛН
КАРМАНЧИК 2 СЕЗОН 4 СЕРИЯ
24:05
Inter Production
Рет қаралды 609 М.
NES Graphics Explained
17:23
NesHacker
Рет қаралды 221 М.
Software Emulators vs FPGAs
27:08
What's Ken Making
Рет қаралды 264 М.
Coding A Lexer Part One
3:25
Logan
Рет қаралды 2,7 М.
How NES Games Use State Machines For Everything
8:21
NesHacker
Рет қаралды 29 М.
ASMR Programming - Spinning Cube - No Talking
20:45
Servet Gulnaroglu
Рет қаралды 3,5 МЛН
I Designed My Own 16-bit CPU
15:46
AstroSam
Рет қаралды 1,8 МЛН
RAM & Addition - 6502 Assembly Crash Course 02
18:29
NesHacker
Рет қаралды 37 М.
Emulating a CPU in C++ (6502)
52:28
Dave Poo
Рет қаралды 943 М.
С Какой Высоты Разобьётся NOKIA3310 ?!😳
0:43
Koshyl_Live
Рет қаралды 2,4 МЛН
Хомяк может разблокировать АЙФОН
0:14
Собиратель новостей
Рет қаралды 62 М.
СЛОМАЛСЯ ПК ЗА 2000$🤬
0:59
Корнеич
Рет қаралды 1,8 МЛН
Subscribe for more!! #procreate #logoanimation #roblox
0:11
Animations by danny
Рет қаралды 3,9 МЛН