No video

Learn to code and write games on the Nintendo Game Boy | MVG

  Рет қаралды 263,172

Modern Vintage Gamer

Modern Vintage Gamer

Күн бұрын

Пікірлер: 1 200
@ModernVintageGamer
@ModernVintageGamer 3 жыл бұрын
let me know if you liked this content and want to see more from other console homebrew scenes. have a great week
@JoePro
@JoePro 3 жыл бұрын
I love the Dreamcast homebrew scene. They've really kept the system alive a lot longer than Sega has. You should cover that.
@dominicguy9242
@dominicguy9242 3 жыл бұрын
nice
@npdump402
@npdump402 3 жыл бұрын
Do a ps2 scene video, and bring some light to it. That scene has been hurting for a while. Swear Jay-Jays reuploads saved me from tons of broken links years ago. PS thank you for your hard work on the OG xbox!!
@digital-b4177
@digital-b4177 3 жыл бұрын
original xbox homebrew coding would be cool to see.
@zxcvb_bvcxz
@zxcvb_bvcxz 3 жыл бұрын
Yes please! PS2 in particular is pretty rough to get into.
@TheRetroFuture
@TheRetroFuture 3 жыл бұрын
I’m gunna code a new game about bricks falling from above and you have to align them and make complete lines to get points.
@valfonso678
@valfonso678 3 жыл бұрын
that would never work
@stanstaniboy7655
@stanstaniboy7655 3 жыл бұрын
and it's gonna be "our" game not your game
@TheRetroFuture2
@TheRetroFuture2 3 жыл бұрын
Pfft that game already exists it’s called Super Mario Land... idiot
@mi-nk
@mi-nk 3 жыл бұрын
@@TheRetroFuture2 no its sudoku dumb dumb
@megamanfan3
@megamanfan3 3 жыл бұрын
Lol, Alexey Pajitnov beat you to it. 😆🤓
@maria_remedios
@maria_remedios 3 жыл бұрын
The fact you can just write this in C blows my mind, I was expecting some assembly brain torture but was pleasantly surprised. This is very encouraging.
@marcello4258
@marcello4258 3 жыл бұрын
basically, you can use C for everything.. C is just a standard all you need is a compiler chances are that someone built a compiler
@nullplan01
@nullplan01 3 жыл бұрын
@@marcello4258 Yeah, but you couldn't use C back when the system was current, because there weren't any compilers for the destination chip. And the compilers of the time were hot garbage about optimization, and on that system you needed every possible edge.
@marcello4258
@marcello4258 3 жыл бұрын
@@nullplan01 that might be right, but wasn't my point though. Just speaking of today mari does as well.
@baldguywithbeard
@baldguywithbeard 3 жыл бұрын
Well in all honesty, if you want your code to be as optimized and as quick as possible, you still have to use assembly. The gbdk is more of a wrapper of sorts, which of course reduces performance, but hell - for 99% of the cases it will be more than enough. It can still get really mind-twisting when you start working with all the registers, seeing as not all of them are mapped in gbdk (or at least not on the version I was using, I think gbdk 2020 is way further in that regard), but it is still quite enjoyable to use! I've ran stuff only on an emulator so far, so the next step would be to get an everdrive or an ez-flash. Oh and btw the gbdk can also be used for gbc stuff, not only gb, but I still can't wrap my head round how pallets work :D Oh and programming sound on the gb is a nightmare... waaaay harder than programming graphics or even game logic, but I'm drifting off here...
@DasAntiNaziBroetchen
@DasAntiNaziBroetchen 3 жыл бұрын
@@nullplan01 I thought I remembered reading a post by a guy who worked in the industry back then and that they absolutely did use C to make game boy games, which surprised me.
@svetaphantom
@svetaphantom 3 жыл бұрын
I've gotten really into the idea of making a game -- couldn't have posted this at a better time!
@aluckyshot
@aluckyshot 3 жыл бұрын
Download Unreal Engine... you will have more fun than making tetris 2.0 for your gameboy.
@rayan0468
@rayan0468 3 жыл бұрын
@@aluckyshot yes but its waay harder than making a Tetris 3.0
@FreDEV_OFFICIAL
@FreDEV_OFFICIAL 3 жыл бұрын
@@rayan0468 lol u wish, Tetris is *very* complicated
@theultimateninja
@theultimateninja 3 жыл бұрын
Just download Engine001. You don't have to code and its superrrrr easy.
@mhopkins7954
@mhopkins7954 3 жыл бұрын
Need an artist and or support writer
@NicholasLash
@NicholasLash 3 жыл бұрын
I appreciate this because you aren’t dumbing things down. There’s plenty of beginning from nothing courses for coding on KZbin already, so this is a breath of fresh air.
@iraniansuperhacker4382
@iraniansuperhacker4382 3 жыл бұрын
writing a gameboy rom in c to try and learn is a bit counter productive tho
@3333218
@3333218 3 жыл бұрын
So true!!
@ChristianMiersch
@ChristianMiersch 3 жыл бұрын
Many of these co called "courses" are just people bragging about themself with little to none educational value and missing key information. Where as this is a concise pointer in a particular direction whith encouragement to go further.
@Bruh-hd4rj
@Bruh-hd4rj 2 жыл бұрын
@@iraniansuperhacker4382 no xD
@doomfatlikesbluesphere9984
@doomfatlikesbluesphere9984 3 жыл бұрын
The nice thing about the gameboy is how well documented everything is
@Cyranek
@Cyranek 3 жыл бұрын
I'm gonna make a game about an italian plumber who fights a giant lizard. I think it'll take off.
@nonkl8819
@nonkl8819 3 жыл бұрын
you should make him fight a turtle 🤔
@nak_vgm
@nak_vgm 3 жыл бұрын
A video game about a... Plumber? Who would play that?
@miguel_leugim
@miguel_leugim 3 жыл бұрын
Just make sure the plumber doesn't wear a tie. Because plumbers don't wear ties.
@MrPreska
@MrPreska 3 жыл бұрын
They took my snake and they turned it into a plumber. They made the eggs into barrels. The pine tree they made into a gorilla but I recognize my design. Donkey Kong my ass! That's Construction Snake.
@wobblysauce
@wobblysauce 3 жыл бұрын
Don't forget multiplayer, give him a brother.
@therealcthulhu9813
@therealcthulhu9813 3 жыл бұрын
I would love a whole series of this. I would really love to program the DS.
@SummonerArthur
@SummonerArthur 3 жыл бұрын
Same here, I've tried before and I couldnt figure out how to do anything besides printing text when I press the ds's buttons. It would be great if he did it
@TiagoSantos-lt4do
@TiagoSantos-lt4do 3 жыл бұрын
For that I recommend using the PAlib library, also in C. I created some games about 15 years ago
@SummonerArthur
@SummonerArthur 3 жыл бұрын
@@TiagoSantos-lt4do interessante, ill check it out.
@baldguywithbeard
@baldguywithbeard 3 жыл бұрын
You can have a look at devkitPro, specifically the devkitARM. It has a built in library called "libnds". What you do need to be prepared for, is that the ds is an insanely complex console, that still works very similar to the entire gb family, most closely to the gba. So it's probably a better idea to start programming for the gba, since you won't have to juggle between the two screens (and two separate graphic engines) of the ds.
@thefredo1000
@thefredo1000 3 жыл бұрын
THANK YOU SO MUCH I'VE BEEN WAITING FOR THIS VIDEO FOR YEARS!!!
@amateusz2137
@amateusz2137 3 жыл бұрын
Same here. I’ve made some flashcarts years ago, but only recently wanted to really start writing stuff for it.
@LaAnkhaHuasa
@LaAnkhaHuasa 3 жыл бұрын
YEEEEE MADAFACAAA
@EndOfLineTech
@EndOfLineTech 3 жыл бұрын
@@amateusz2137 @thefredo1000 yeah because this is the very first and only bit of information on the Internet on this topic
@firstlast7112
@firstlast7112 3 жыл бұрын
No you haven't. Probably don't even know how to code.
@thefredo1000
@thefredo1000 3 жыл бұрын
@@firstlast7112 Hi, I've been in the GBA homebrew community for some years, I'm also a Google intern, so I do know how to code.
@Asobitech
@Asobitech 3 жыл бұрын
Great to see GBDK getting some love from you. Nice use of the LYC register for the parallax. It's exactly what is used for the HUD and the moving mist in Super JetPak DX. Looking forward to seeing what you come up with in this series.
@bloodypommelstudios7144
@bloodypommelstudios7144 3 жыл бұрын
I haven't tried GDBK but I've had a play around with GB Studio and I agree the pallet and resolution restrictions make it super quick to develop for. Within a couple of hours I was able to create a decent looking tile map, a dozen or so sprites and a character walk cycle from 4 different directions as a mediocre artist.
@nathanddrews
@nathanddrews 3 жыл бұрын
A lot of people talk about emulation as a form of game preservation, but rarely demonstrate anything beyond setting up emulators or sketchy advice about acquiring ROMs. You have a clear and obvious love of game preservation and it shows in your desire to learn about games, how they're made, and share that knowledge. Thanks!
@dodgykebaab
@dodgykebaab 3 жыл бұрын
“Making game boy games is easy” “You know C right?”
@Damaniel3
@Damaniel3 3 жыл бұрын
Considering that 99% of commercial Game Boy game were written in Z80(-ish, the Sharp LR35902 was a mix of the Intel 8080 and the Z80) assembly, C is actually an upgrade. I'm curious how efficient C code generated by this compiler would be compared to the more direct assembly option - I'd be concerned about how well it scales to game-scale projects since RAM and ROM size are so constrained.
@CasualPokePlayer
@CasualPokePlayer 3 жыл бұрын
@@Damaniel3 C is anything but efficient compared to typical assembly. It's gotten a lot better since the original GBDK, but ultimately with C being a stack oriented language and the stack being slow to use on the GB you'll end up with quite a performance hit compared to assembly, and if you want to push the hardware you pretty much have to write everything in assembly.
@Syke1337
@Syke1337 3 жыл бұрын
There's GB Studio for people that don't.
@undefinednan7096
@undefinednan7096 3 жыл бұрын
@@CasualPokePlayer its worse than that -- the Sharp SM83 (and i8080 and to a lesser extent the Z80) is a horrible target for C (for example, it doesn't have some of the addressing modes useful for a C compiler), and the most commonly used gameboy C compiler isn't a particularly good C compiler. However, I would like to point out that these faults are because C is a bad match for the SM83, not because C is particularly less efficient than assembly on a more modern architecture (that's a completely different story, so I won't discuss it).
@CasualPokePlayer
@CasualPokePlayer 3 жыл бұрын
@@undefinednan7096 Most of the problems with GBDK are fixed with GBDK-2020, and yes I know, the GB is fundamentally a bad platform for C, hence a performance hit over typical assembly.
@TN_AU
@TN_AU 3 жыл бұрын
For those who might not appreciate game developers, now is probably the time, this small demo took a few hours, imagine a full fledged game, debugging etc... Very time consuming indeed, for me, I dont have the patience for it but Im glad someone elss does.
@johnsimon8457
@johnsimon8457 3 жыл бұрын
Alleyway (Breakout/Arkanoid clone) can’t have taken more than a few weeks even before the gameboy hardware was finished. I look at some videos of Japanese programmers at the time and they’re all in their early 20’s, some of the bedroom game devs on the spectrum were teenagers. this isn’t rocket science but it takes a bored teenager’s enthusiasm 😁
@karioken
@karioken 3 жыл бұрын
You really have a high quality KZbin channel. Finally some REAL engineer/hacker that shows how things are done. KZbin is flooded with consumer-only videos (Unbox Therapy, MKBHD, ..) , where the channel owners have no clue about technology. Thanks for the tutorial! Keep the great work up. We former Xbox hackers have to stick together :p
@annedrieck7316
@annedrieck7316 3 жыл бұрын
Hey, no need to throw shade on other youtuber just because there're not qualified enough to talk about the things you want.
@karioken
@karioken 3 жыл бұрын
@@annedrieck7316 Shouldn't be any bad criticism, but they often talk BS when they dig deeper into the matter :D
@BrunodeSouzaLino
@BrunodeSouzaLino 3 жыл бұрын
Of course Bisqwit, Jeff Gerling, Dave's Garage and others are not channels that exist.
@karioken
@karioken 3 жыл бұрын
@@BrunodeSouzaLino Of course they exist and they are also super professional. The problem is that you really need to search for them, because the YT algorithm is not preferring these kind of videos
@BrunodeSouzaLino
@BrunodeSouzaLino 3 жыл бұрын
@@karioken Good content does not simply plop on your lap. What plops on your lap it's what's popular.
@brodown64
@brodown64 3 жыл бұрын
I have been watching tutorials the past month about how to make GB homebrew and games, this came at the right time, thanks MVG!
@milanzuiderveld5189
@milanzuiderveld5189 3 жыл бұрын
Just use GB studio
@djxfade90
@djxfade90 3 жыл бұрын
GBDK is quite nice. You also have RGBDS if you would like to delve into ASM. If low lever programming is too difficult, you also have GB Studio which is a tool like Game Maker for the Gameboy. It utilises GBDK under the hood, and even allows you to modify the game engine itself if you know how.
@solidblueskys2158
@solidblueskys2158 3 жыл бұрын
Can you do more videos on homebrew for different consoles? I'd love to see an in depth homebrew video like this on the PSP, Ps2, Gamecube etc.
@nathanmead140
@nathanmead140 3 жыл бұрын
GBA and DS too
@johneygd
@johneygd 3 жыл бұрын
Atari lynx as well.
@jackthejuggler
@jackthejuggler 3 жыл бұрын
Wii.
@solidblueskys2158
@solidblueskys2158 3 жыл бұрын
@Risen General It is, however the PS2 also had 3D development kits like Renderware which was responsible for being the game engine for many many PS2 titles.
@solidblueskys2158
@solidblueskys2158 3 жыл бұрын
@Risen General I think you might be confused with 'Renderman'.
@xboxnews7976
@xboxnews7976 3 жыл бұрын
The GameBoy holds a special place in our hearts
@holymegadave
@holymegadave 3 жыл бұрын
Its like the flint and steel of the consoles. When the power goes down... you put a pair of AA batteries and you can play like a Chad in any environment :) post apocalyptic console xD
@dodder2419
@dodder2419 3 жыл бұрын
I had a friend named Maddie who loves the gameboy. She made her own puzzle game for it, even with a full story.
@ArpeggioPegasusMusic
@ArpeggioPegasusMusic 3 жыл бұрын
How long has it been since you talked to her ?
@dodder2419
@dodder2419 3 жыл бұрын
@@ArpeggioPegasusMusic about a year ago.
@dodder2419
@dodder2419 3 жыл бұрын
kzbin.info/door/VYDU8oQJFiHYLco5qVtayw this is her youtube channel, though.
@xmlthegreat
@xmlthegreat 3 жыл бұрын
More details would be nice. Where to find the game, etc.
@dodder2419
@dodder2419 3 жыл бұрын
@@xmlthegreat the game is free and up on her youtube channel. kzbin.info/www/bejne/fWeuk2uVa9ODj9E this is the game with the download link. it's a neat little POC and it can be played on any gb emulator.
@ihavelostcontrol
@ihavelostcontrol 3 жыл бұрын
Nostalgia from when I used to play around in the homebrew PSP scene back in the day! Used a custom homebrew SDK then too, that's where I first really learned to code in c - Awesome to see content like this!
@cbabbx
@cbabbx 3 жыл бұрын
I've only been watching your channel for a few weeks now. But I've consumed so much of your uploaded content that I need more. I subscribed rather quickly after watching the piracy and graphics videos. I think the nicest thing I can say about you and your channel is it's like a video game version of How It's Made. The sound of your narrative voice, the quality and composition of your videos and the music. I thoroughly enjoy all your educational content. You sir, are awesome. 😁🎮
@aadityakiran_s
@aadityakiran_s 3 жыл бұрын
Pretty good. everyone just starts with Unity but this is a good way to teach people from the basics. Nice. Am looking forward to seeing the release of the full series.
@schwarzenegger_begger8810
@schwarzenegger_begger8810 3 жыл бұрын
Ah, GBDK. Such nostalgia, some of my first experience programming in C started with that.
@piratelechuck1911
@piratelechuck1911 3 жыл бұрын
Just sourced an OG GB locally after seeing this video. Can't wait to start cranking out chiptunes and demos 🤓 Thanks for the content! This coming weekend will be epic!
@Pichuscute
@Pichuscute 3 жыл бұрын
That scrolling looks surprisingly great. Would love to see more content like this.
@jordanwardle11
@jordanwardle11 3 жыл бұрын
I dont have a gameboy, i have no patience for coding, yet here i am
@Gold753
@Gold753 3 жыл бұрын
*cough* GB studio *cough*
@reubeb8820
@reubeb8820 3 жыл бұрын
perfect, now time to get doom running on this!
@Sinistar1983
@Sinistar1983 3 жыл бұрын
Just look at a gameboy game called tyrannosaurus tex for the gameboy color. Its a real technical achievement of raycasting on the colorful brick.
@SDLearmonth
@SDLearmonth 3 жыл бұрын
@@Sinistar1983 faceball 2000 as well
@jmaynard84
@jmaynard84 3 жыл бұрын
This is a really awesome series idea! It would be so much fun to have this community get together and make a collection of games based on code started in your video, seeing all the branches that come from it. Start at gameboy and make our way up to modern game engines like Godot!
@DasAntiNaziBroetchen
@DasAntiNaziBroetchen 3 жыл бұрын
His code is so simple, it's almost nonexistent. Making games based on it makes no sense.
@planchetflaw
@planchetflaw 3 жыл бұрын
Who'd have thought in the 80s that two lines forming mountains would be so iconic and enjoyable to see nearly 40 years later.
@AcornElectron
@AcornElectron 3 жыл бұрын
Brilliant! Even at 43 I learned something new. Those are some powerful dev tools.
@overlordalfredo
@overlordalfredo 3 жыл бұрын
I sadly have no time or opportunity anymore to get back into coding, but I so much appreciate your effort doing such an introduction guide for many people to jump onto this and start their own projects! *If any of my boys ever is interested in coding or making video games I will for sure use your videos to give him some assistance!*
@TiagoSantos-lt4do
@TiagoSantos-lt4do 3 жыл бұрын
Congratulations, great video, I developed for DS many years ago, using the PAlib library also in C. It would be a good video too. In fact, do a part 2 of the Game Boy teaching the inclusion of sprites!
@IchinoseRodrigo
@IchinoseRodrigo 3 жыл бұрын
This channel is one of a my favorites channels for all time! I'm from Brazil and I learn english with your videos. Thanks for this amazing content! (And sorry if my english write is not good now :P)
@ZVINTAO
@ZVINTAO 3 жыл бұрын
brasil enois caralhooo
@wellyngtonweller6575
@wellyngtonweller6575 3 жыл бұрын
Além de melhorar o inglês o conteúdo também é excelente. Desbloqueei meu nintendo wii e o PSP depois de assistir os vídeos dele :)
@programmingforfun6484
@programmingforfun6484 3 жыл бұрын
No need to be sorry, you do good.
@okarowarrior
@okarowarrior 3 жыл бұрын
Sopa do maca
@erasmobellumat3973
@erasmobellumat3973 3 жыл бұрын
Opa, tamo junto! Tem um outro canal que eu recomendo e é esse aqui. É nessa mesma pegada, mas mais técnico ainda: kzbin.info/www/bejne/fGnOqWhshL-Ensk&ab_channel=javidx9
@alcatrazclad
@alcatrazclad 3 жыл бұрын
I figured you would be coding in Assembly. Interesting that this is in C.
@TenaciousJ728
@TenaciousJ728 3 жыл бұрын
Same! Coding for GB suddenly got more interesting, didn't it?
@sakurajin_noa
@sakurajin_noa 3 жыл бұрын
You can still write parts of the code in Assembly because it is C. Even when the gameboy was releassed basically no game developer was interested in wrtiting a game in Assembly since games tend to get complex (try programming pokemon in Assmebly it will take you a few years). This is even worse when you have more than one person working on the same codebase. So C which allows injecting Assembly when needed and it being fast enough was the obvious choice for game development for a long time.
@awilliams1701
@awilliams1701 3 жыл бұрын
C is only JUST above assembly. In fact translating C to assembly (what a compiler does) is usually pretty straight forward. But it greatly simplifies coding. For example assembly doesn't have a printf so that would have to be copied and pasted from somewhere else. I used to write code for my TI-83 in C++ back in the day. It's a Z80. I think the GB is also a Z80.
@hypurban
@hypurban 3 жыл бұрын
@@sakurajin_noa Most roms for the 8 bit era were entirely written in ASM. Even in the 16 bit era, very few games were written in C. ASM really isn't that hard. C does add some overhead in terms of CPU usage, especially the older compilers that would have been available in the actual 8/16 bit days.
@alcatrazclad
@alcatrazclad 3 жыл бұрын
@@awilliams1701 I’m aware of that. I had to convert Assembly to C and vice versa for a comp org class back in college. I SHOULDN’T be too surprised, but from what little I know of game development from the 70s to the 90s, it was mostly done in Assembly. It was a pleasant surprise that it’s in a language that I can actually read 😄
@909crime
@909crime 3 жыл бұрын
the sega genesis homebrew scene is really good too! like REALLY good! You can code in BASIC, C, Assembly, and new games come out VERY often!
@L4rk3s
@L4rk3s 3 жыл бұрын
Yes, please, keep this series going, I'm interested as it gets
@cactoidpinata
@cactoidpinata 3 жыл бұрын
Thanks for an awesome startup guide and tutorial! I'd love to see more of this, especially with the 16 bit consoles. Also, that palette/backlight swap button on your Game Boy is amazing.
@eskomies
@eskomies 3 жыл бұрын
I need to dig out my hobbyist's hat again from the dust and dig into GBDK.
@egemenozan5641
@egemenozan5641 3 жыл бұрын
Time to demake doom for gameboy
@OmegaPhlare
@OmegaPhlare 3 жыл бұрын
Gameboy games written in C++ with pre-defined macros to do common tasks like SHOW_BKG and DISPLAY_OK. This development framework and/or library is absolutely amazing! Thank you for showing this.
@drahsid2
@drahsid2 3 жыл бұрын
MVG: 30 Me, in panic: "That's 48!"
@mrzozelowh
@mrzozelowh 3 жыл бұрын
I too was also concerned about the hex values lol
@kendiacono1570
@kendiacono1570 3 жыл бұрын
You have secured future game coders and helped bring back to life some of the older consoles.! Who knows if the next number one hit game and company will spawn thanks to your little bit of help and expertise in this area.!! Thank you so much for always being there for everyone who needed it.!!
@martynrandles
@martynrandles 3 жыл бұрын
Well said! 100% agree!
@BenjjjDW
@BenjjjDW 3 жыл бұрын
Didn’t even know GameBoy had a homebrew scene, love it!
@brodown64
@brodown64 3 жыл бұрын
Similar to what MVG said, there's homebrew scenes for a lot of consoles
@samporterbridges2766
@samporterbridges2766 3 жыл бұрын
It has been around for a long time
@renakunisaki
@renakunisaki 3 жыл бұрын
This is really neat, but there are a lot of bad practices shown. - your first demo doesn't have any vblank wait, so it will waste battery. - the background didn't work because they have a max size of 32x32. To go beyond that you need to change it on the fly. - mixing up 30 and 0x30, using hex where it's not really needed, just confusing. - you added a comment explaining what each variable does - good, but why not give them meaningful names instead? - the interrupt handler wastes cycles by comparing LYC_REG to multiple values in the same call. Using "else if" would help. The Game Boy is only 4MHz (and really more like 1MHz since every instruction takes a multiple of 4 cycles) so it's very important not to waste time. - including C files is ugly and leads to complications and slow compile times. They should be compiled separately and referenced using `extern`. Besides all that, you really need to use assembly for anything reasonably complex, since the GB is so weak, the overhead of even highly efficient and optimized C can be a lot. It's still a great platform to learn on, since the assembly is really simple. You can of course mix assembly and C too.
@rupertocampo8965
@rupertocampo8965 3 жыл бұрын
This will be a fun project for anyone who wants to start making games. Any kind of computer programming all has basic concepts and there are a number of many basic ones that have been very briefly demo'd here. If you have the will to do it, MVG is giving you the know-how.
@PlGGS
@PlGGS 3 жыл бұрын
Hard coding those scroll offsets really interrupts my buffer
@apollolux
@apollolux 3 жыл бұрын
Originally came to this video expecting an overview of GB Studio (which uses GBDK behind the scenes), but this turned out to be a more satisfying raw programming intro video!
@nintendofreak11
@nintendofreak11 3 жыл бұрын
This is fantastic. Im an electronic engineering student and we have learned a decent foundation for programming in C, and a project like this looks a blast.
@WolfIsMySpiritAnimal
@WolfIsMySpiritAnimal 3 жыл бұрын
You sir, are a genius. I can build and bench-test a computer, but this all just makes me feel like an infant. Would love to learn to code, but it's hard to find an entry-point. You would make a great teacher and can be very proud of your skills.
@AndrewSayman
@AndrewSayman 3 жыл бұрын
The video said there'd be a link to the source code in the description, but I don't see one? In particular it looked to me like your parallax scrolling method was wrong because it set the register rather than reacting to it. You said that you fixed it up but never showed the final code. I need to know if I was right or wrong! :-P
@SebastianXpander
@SebastianXpander 3 жыл бұрын
I've been experimenting with this off and on, and don't have it it fully working yet. I'll post a reply if I get it going.
@SebastianXpander
@SebastianXpander 3 жыл бұрын
Hi again - I found a working parallax example using GBDK over on GitHub from 2019 ( github.com/leo-rp/gbdk-parallax-example ), which shows an example of using the add_LCD and add_VBL interrupt methods. What MVG did not show was how to increment the background's position every time the screen refreshes (in the V-blank interrupt method). This example is quite elegant, by bitshifting the movement of the foreground to calculate the movement of the midground and background. He's also checking the LY_REG instead of LYC_REG to figure out what scanline he's on, and he's moving the background with SCX_REG and SCY_REG instead of the move_bkg function. Big respect to MVG and to leo-rp (on Github) for making this information publicly available!
@raik9536
@raik9536 3 жыл бұрын
That would be excellent sir! Used to try coding with the GBDK but never got pass the few basic stages. With your expertise, great explanation and interesting videos I'm sure that ill be able to finally make a fully fledge game with this GBDK. So please do so sir, it would be a blessing to the entire community!
@Sqwaush
@Sqwaush 3 жыл бұрын
I was literally just thinking about doing something like this the other day! Please make more development videos! :)))
@ROMAQHICKS
@ROMAQHICKS 3 жыл бұрын
I looked into writing DMG game and spent a decent amount of time reading about the memory layouts and op codes and was prepared to write it in assembly; never got around to starting for the last few months. All this research and I didn't know someone had a nice toolchain all setup. I might still do it in assembly for the experience, but this is a great resource.
@junehanabi1756
@junehanabi1756 2 жыл бұрын
assembly is needed for serious games because c is unoptimized and inefficient and bulkier. There are many things that require efficient timing and if anything requires that it probably won't work well or at all in c/gbdk.
@jonhatanlopez8622
@jonhatanlopez8622 3 жыл бұрын
I really want to do a Metal Slug-style game using the GBDK
@MrRobbyvent
@MrRobbyvent 3 жыл бұрын
having those results with just a bunch of lines of code looks very exciting. So please go ahead!
@farsidesc4044
@farsidesc4044 3 жыл бұрын
You should have posted a disclaimer that learning programming has a side effect of altering how you view almost everything.
@squishmastah4682
@squishmastah4682 3 жыл бұрын
I'd love to hear you two expounding upon this thought.
@crytocc
@crytocc 3 жыл бұрын
@@squishmastah4682 Programming is (from a technical perspective) a highly logical endeavour; computers are very unforgiving, and will do exactly what you tell them, exactly how you tell them to, even if what you told them to do was completely wrong. There's no room for nuance, and a computer can't infer from the context what you meant for it to do. Once you get used to that 'model of thinking', it tends to leak through to other aspects of your life. You might start to get annoyed when people give instructions that are missing details that you *could* have guessed at, for example; the stereotypical example is cooking with recipes, which often use ambiguous units of measurement. Likewise, you'll probably start recognizing more processes in everyday life, causes and effects, reason about them as if they were defined in code, and so on. Which can lead to nagging questions like "wait, why *do* things work this way?", or spotting what seems like logical errors in how people approach things. Now I should be clear; this is not an *accurate* view of the world, even if programmers tend to forget this. Code is primarily written for humans to read, not for computers to execute, for example. And often what seems like a logical error in someone elses behaviour actually turns out to make total sense, you just didn't have all the information (but you wrongly believed that you did). But nevertheless, it's how many programmers start looking at the world around them.
@farsidesc4044
@farsidesc4044 3 жыл бұрын
"I think differently than you," is a statement hard to articulate, because we all communicate differently as well. So, I'll try to just provide some outlines below, with sources that expound on those ideas. Coding principles help keep your mind disciplined for everyday tasks. As you program and discipline yourself with your code, you'll notice your thought patterns shift to apply some of the key coding principles (in the link below). Discipline is good for everyone. www.geeksforgeeks.org/7-common-programming-principles-that-every-developer-must-follow/ I had a few more paragraphs written up here and realized that I'm not actually able to articulate it well. So, like the best of us in programming, I'm going to import someone else's work! www.quora.com/How-does-programming-change-your-way-of-thinking There are many, many answers on that page which can articulate much better the ways that I've changed my thinking.
@kinsbeans
@kinsbeans 3 жыл бұрын
@@crytocc Could totally relate man, I solely depend on instructions now and I find it hard to improvise. 😹
@edsonsilva-id1sx
@edsonsilva-id1sx Жыл бұрын
Thank you for recorded this video. Since I became a pro developer I was wandering to start builting a GBC game. This video is a good way to start looking at it! Huge thanks!!!
@fleefie
@fleefie 3 жыл бұрын
The very week i start learning GBZ80 ASM this video comes out. Noice :> edit : isn't GBDK, like, extremely unoptimized ? Eh, ig it's good enough for beginers :)
@wasd____
@wasd____ 3 жыл бұрын
I have this idea for a game about, this is gonna sound crazy but hear me out, a guy with long ears and a green shirt who goes out sailing looking for adventure. But he gets shipwrecked and loses his trusty sword and shield when he washes up on a remote island full of secrets. The very first part is about how he has to find his stuff on the beach, and then from there, he has to find keys to open up various dungeons and defeat the monsters that lurk within, because they're guarding musical instruments that he needs to play a song. Playing this song will save the mysterious island... _or will it???_
@arsenlifestyle
@arsenlifestyle 3 жыл бұрын
Who didn't know what the heck was going on, but still watched the whole thing?
@centeguahan3760
@centeguahan3760 3 жыл бұрын
Not a clue, but It happened & I didn't learn much but yea...idk its cool....development of coding & gaming & stuff...
@diegocrusius
@diegocrusius 3 жыл бұрын
i thought GBDK was a simple, straightforward, drag and drop dev kit for the GB. This channel delivers
@martynrandles
@martynrandles 3 жыл бұрын
GB Studio & GB Studio 2 are sort of more drag & drop SDK for GB, but still require a bit of tinkering. They are both amazing, & I'm sure will get better & better. But GBDK is so addictive. Check out: GamingMonsters GBDK series, if you haven't already, I highly recommend it. kzbin.info/aero/PLeEj4c2zF7PaFv5MPYhNAkBGrkx4iPGJo
@joshuabergeron9731
@joshuabergeron9731 3 жыл бұрын
Dude you should stream building a game and let the chat decide how to go about it. That would be fun I think.
@kevinmcdonaghscotland
@kevinmcdonaghscotland 3 жыл бұрын
This is great material. I'd watch you code homebrew for hours! Anyone else have some more recommendations of exactly this kind of content?
@kevinmcdonaghscotland
@kevinmcdonaghscotland 3 жыл бұрын
@The programming crypto guy thanks, that's another 100 hours sorted 👍
@mikes333
@mikes333 3 жыл бұрын
Mario in this game: I swear, I've passed those mountains for the like the 50th time already!!! ;-)
@benjaminbenson2817
@benjaminbenson2817 3 жыл бұрын
this mad lad is putting out videos every monday for 2021. Don't burn yourself out please. I'd rather you get some sleep and live a healthy life that put out videos every week
@D-Ragon84
@D-Ragon84 3 жыл бұрын
Everybody gangsta until MVG starts coding homebrew
@TDT7
@TDT7 2 жыл бұрын
It's really nice that you made this video. I am sure it will help some people getting into GB development. Some rants tho. - Dayum, you read the docs, but not fully. The tile ram is 20*18, so you can't stuff more tiles in it. That's why you had to resize your map. But you are probably still erasing the start of your scroll because you try to load 30 tiles horizontally. - Also, the tile is 8px, so for your scanline scrolling, you just have to use 8 multiples. - Your memory is really small if you want to make a simple 32k game (the simplest, cheapest cartridge format), so you could draw your tiles to better fit the grid (0 ok, 1and2 should be the same, 3 should be slided up to align with tile border, can keep 4, but can remove it too, because you can have the same effect with 5 and 6, 5and5 ok, 7and8 can be deleted (because you aligned 3 with the grid), 9 ok, 10 is likely to be the same as 1) You can reduce from 11 tiles to 6-7 with a visual almost identical. - GBDK has really improved these years, and that's a good thing. "Tile designed", "map builder" and the "pan Doc" are really obsolete now, but could still be used. Don't hesitate to look for newer, more complete alternatives. I am pretty sure you now know all of this and that it's obsolete knowledge, but if some beginner see my message, it will help to gove good habbits. In addition to that, you say you did that in a handful of hours, that's impressively fast, so it's normal to have a few hit and misses. So, again, thank you for this video, it's good to see some content like that! And if you are a beginner, read the doc, and welcome to this new rabbit hole! The most useful doc is probably the awesome gbdev curated list: github.com/gbdev/awesome-gbdev This video is also really good, even if a bit deep: kzbin.info/www/bejne/fqrddWumg9Gjras Lastly, I don't like discord because everything there is going to be lost to the sands of time, but still, the GBDev and GBDK groups are a good place to ask questions. Also, have a look at GB Studio. See ya, and have a nice coding on GB!
@Waifu4Life
@Waifu4Life 3 жыл бұрын
"Learn to code"... I see what you did there 😁
@fm-jl7xe
@fm-jl7xe 3 жыл бұрын
?
@c0smo709
@c0smo709 3 жыл бұрын
?
@Vicer_Exciser
@Vicer_Exciser 3 жыл бұрын
We had an amazing 2000-level class at Georgia Tech that essentially taught C to fresh faced CS kids using a Game Boy Advance game design assignment. I’ve gone back and made about a dozen more over the years since then - this is a fantastic way to spark a passion for programming!
@LiquidTurbo
@LiquidTurbo 3 жыл бұрын
How the **** did devs create a game like Metroid 2 outta this?
@ungratefulmango
@ungratefulmango 3 жыл бұрын
Here before the Retro Future
@juancarlossotobarrera3092
@juancarlossotobarrera3092 3 жыл бұрын
I would actually like to know more about this so I could colorize WarioLand
@Epsilonsama
@Epsilonsama 3 жыл бұрын
You need to know Assembly and have access to Wario Land disassembly to be able to do that or know hex editing and hack away. If you want to do some real work on the Gameboy sooner or later you need to get your hands on Assembly because of the limited resources the Gameboy has. For many things C works fine and you could make a functional little demo on the Gameboy using just C but if you want to know how to truly work with the system you gotta learn Assembly. C has much more overhead, aka bloat than Assembly and on a system like the the Gameboy with limited resources you will be using a ton of CPU to do something that in Assembly will use much less. Assembly is 1:1 with the machine instructions and it is dependent on the microcontroller in question. In modern embedded programming we use C mostly because it is definitely easier and faster to write code for but you will find times where you might need to be really specific with how you want certain things to operate and thats when you might need to use assembly. Many compilers, havent check this one allows you to do what it's called inline assembly which is to use assembly instructions on C which is used when you want to override the compiler on a specific situation. In practice you could use C for things that dont require much CPU while you optimize things using Assembly. That being said this is a great starting point to learn C and you will end up learning a lot about the hardware cause working with the GB will force you to know the ins and out of said hardware.
@kilobytedump
@kilobytedump 3 жыл бұрын
That was FANTASTIC! More of these please. \o/
@jasonpawloski
@jasonpawloski 3 жыл бұрын
Did you #include a .c file, you monster?
@SoicBR
@SoicBR 3 жыл бұрын
Yes, he did
@LuigiElettrico
@LuigiElettrico 3 жыл бұрын
As I said in some comment reply before, it also bothers my soul a lot :P
@3DSage
@3DSage 3 жыл бұрын
I just made a minecraft type game on the GBA! It's fun to program on.
@nyxelplex
@nyxelplex 3 жыл бұрын
Please GBA Development!!!
@curtisss
@curtisss 3 жыл бұрын
You're the best teacher I've ever had MVG
@johnpenguinthe3rd13
@johnpenguinthe3rd13 3 жыл бұрын
I wish I had a teacher like this in college when it came to coding. For thousands of dollars per semester, I had some professors who would teach us crap and criticized us if we dared raise our hands to ask questions and then left us to figure everything out ourselves with a confusing and poorly written book. This guy puts together a FREE seventeen minute video which teaches coding better than many college courses do in an entire semester.
@kahveciderin
@kahveciderin 3 жыл бұрын
fun fact: 14 people cannot be first!
@lordhexeda7225
@lordhexeda7225 3 жыл бұрын
I'm the best
@kgduder1231
@kgduder1231 3 жыл бұрын
Firts
@mazor13
@mazor13 3 жыл бұрын
I WANT PROOF
@Deutschehordenelite
@Deutschehordenelite 3 жыл бұрын
what if they tie?
@tenowano4291
@tenowano4291 3 жыл бұрын
What if they comment on the same frame of existence
@froilanrivero2826
@froilanrivero2826 3 жыл бұрын
Finally my moment has come . Thanks MVG Greatest video ever please continue the series
@jeremyhuston1
@jeremyhuston1 3 жыл бұрын
Definitely going to be following this series! Brings me back to my days as a kid with the TI 994a. They used to send out a magazine with code in it, to type up and play a new game. That's how I learned to program, by experimenting with all the different lines of code to see what it would do?
@sandrucristian1983
@sandrucristian1983 3 жыл бұрын
every boy dream console of 90's, speaking of gameboy never gets old.thenx
@N3tech
@N3tech 3 жыл бұрын
I’m an engineer (focus on embedded systems and robotics) I just find retro video games and how their hardware works really interesting. I think you did such a great job here explaining code, because you actually showed how to troubleshoot. You didn’t just write out a perfect program first try, you showed HOW to go about finding the problem when an error occurs. Great video as always man!!!
@dereksmithson5271
@dereksmithson5271 3 жыл бұрын
This video was AWESOME! I had no idea GameBoy was so reasonably accessible - I always assumed I'd need to crack out some assembly :)
@Roccowschiptune
@Roccowschiptune 3 жыл бұрын
Love that backlight mod. Screen looks hecking sharp
@RetroBreak
@RetroBreak 3 жыл бұрын
Great to see more gameboy home-brew videos! It's definitely my favourite system for home-brews, there's so much out there, and lots of cool new stuff being made too! I've done lots of game boy homebrew reviews if anyones interested in checking some games out made with GBDK, and Gameboy Studio.
@jadeskye6755
@jadeskye6755 3 жыл бұрын
I'm just a tech, not a programmer, but videos like this really give me an insight into computers in a way i just can't grasp.
@thew0rstds224
@thew0rstds224 3 жыл бұрын
This has made my entire day. I love programming and development but lately in my job, I've been kind of burnt out and put off. Having something like the gameboy development kit amongst other projects I've been researching, my programming spark has been reignited.
@nak_vgm
@nak_vgm 3 жыл бұрын
Unironically very excited for the Brackeys arc of MVG.
@Nintendude.
@Nintendude. 3 жыл бұрын
Dang, this gives me goosebumps in a good way.
@esotericsean
@esotericsean 3 жыл бұрын
Glad to see you using GBDK 2020, but you should know there are updated version of tile designer and map builder that allow for different monitor resolutions, better copying and pasting, and some other small improvements that make things MUCH easier! :)
@dermannohnenamen7183
@dermannohnenamen7183 3 жыл бұрын
I consider your video as a real quick "how-to" for a bit experienced people. People, who already did some music, made some tiles (or know, what to do to get one) and had their first experience in programming languages. But a tool for music making is missing (and perhaps an example). Now it's up to you to make such videos for more consoles.. :-D
@LuisAlbertoAhumadaMartens
@LuisAlbertoAhumadaMartens 3 жыл бұрын
Nice T-Shirt! One of my best friends donated to the Wildfires on Australia by the Bungie Store, and the shirt arrived to my house. I still haven't given him his shirt. Ps: Thank you for the guide, it's being very useful
@thetuner3333
@thetuner3333 3 жыл бұрын
This is so cool, it's not a tutorial, but for people with knowledge is an awesome guideline to start, I'll give it a try and hope I can make some demos or interactive videos
@mondherbouazizi4433
@mondherbouazizi4433 3 жыл бұрын
I have always thought these things in the background in Mario Land were Pyramids!! Today I learned something new!
@daharlekiin
@daharlekiin 3 жыл бұрын
Before this video I didn't know that I really need to develop a gameboy game in my life! Thanks a lot for this wonderful video and the inspiration!
@jamiecranton
@jamiecranton 3 жыл бұрын
Honestly dude like 50% of what you say I don't understand because I have zero programming knowledge but I still love your videos
@FrancoisBuhagiar
@FrancoisBuhagiar 3 жыл бұрын
You know someone is a passionate developer when they say "this isn't the most elegant piece of code i ever written" as to say "Don't judge me based on this, please". Thanks for this video MVG
@cy6459
@cy6459 3 жыл бұрын
I never coded for the GB but its tiles are 8x8 px and the LCD does scan 144 lines (= 144px = resolution height), so if you want an interrupt on a scanline to be after an exact number of tiles (relative to the vertical scrolling offset), you just do Scanline = NumberOfTiles * 8 I am somewhat active on the 3DS scene and am making homebrew apps, released on GitHub, which you're likely not interested in, though. If you are, my name on there is “CyberYoshi64”, yet it's somewhat empty due to me also working on SmileBASIC 4 apps (a programming environment on Nintendo Switch, which even runs on stock Switches)
@cros108
@cros108 3 жыл бұрын
I've been interested in getting into 3DS development, is there a discord or some other centralised hub for the 3DS dev scene?
@WikiPeoples
@WikiPeoples 3 жыл бұрын
My favorite video that you have ever done! Thanks for going into this. Looking forward to more.
@RichardHartness
@RichardHartness 10 ай бұрын
Man, I'd love for you to pick this up again and make that promised series. Thanks for this tutorial, though.
Secrets of the Nintendo Game Boy Boot Logo | MVG
11:52
Modern Vintage Gamer
Рет қаралды 540 М.
NES Development Environment
14:58
NesHacker
Рет қаралды 351 М.
1ОШБ Да Вінчі навчання
00:14
AIRSOFT BALAN
Рет қаралды 5 МЛН
Nurse's Mission: Bringing Joy to Young Lives #shorts
00:17
Fabiosa Stories
Рет қаралды 14 МЛН
How Graphics worked on the Nintendo Game Boy | MVG
12:56
Modern Vintage Gamer
Рет қаралды 527 М.
Hacking the Game Boy cartridge protection
10:01
stacksmashing
Рет қаралды 553 М.
I Made a 1D Game 🎮
11:18
Mashpoe
Рет қаралды 1,7 МЛН
Why Are Open Source Alternatives So Bad?
13:06
Eric Murphy
Рет қаралды 627 М.
How the Game Boy Advance knew it was running a Game Boy Game | MVG
12:27
Modern Vintage Gamer
Рет қаралды 388 М.
How we fit an NES game into 40 Kilobytes
12:04
Morphcat Games
Рет қаралды 3,5 МЛН
What is the Smallest Possible .EXE?
17:57
Inkbox
Рет қаралды 381 М.
Nintendo’s Lawyers are Ready This Time - Nintendo Wii Dev Kit
15:06
Linus Tech Tips
Рет қаралды 1,5 МЛН
WiFi Game Boy Cartridge
14:52
there oughta be
Рет қаралды 961 М.
I've never seen ANYTHING like this before... Temple OS
17:57
Linus Tech Tips
Рет қаралды 4,2 МЛН
1ОШБ Да Вінчі навчання
00:14
AIRSOFT BALAN
Рет қаралды 5 МЛН