Brilliant stuff, I'm at about the halfway point through your tutorials and learning C as I go. So glad curiosity got the better of me and will try out gbdk2020 for the remainder of the videos. Keep them coming!
I watched your video and did learn how to code 1 basic game, nothing fancy. Love the way you show your step by step guide, and quite happy you are back again.
Thanks for another great upload! Thanks to your videos, I have started doing some modest Gameboy hacking. I learnt GBZ80 assembly, managed to understand several chunks of code of my favorite games, and was able to make several tweaks to the games. Your C videos really helped me understand what was happening at a higher level. C + GBZ80 assembly + your videos = perfect combo!
that's awesome man, I'm curious, do you decompile the games or where did you get the source code of them? I would like to do the same (view the source code of my favorite games), right now I'm giving my first steps on ghidra to decompile the ROMs and see how they achieve to do some things, but learning ghidra at a proper level will take me some time, so any advice on how to manage to check the source code of an existing game?
@@mariomejia8518 I used BGB, the GameBoy emulator. It can disassemble (rather than 'decompile') the ROM into possible GBZ80 assembly instructions, much like Ghidra would. It's a bit daunting to stare at a long sequence of such instructions, but it helps dig into it and understand some routines like loading level data or updating lives, etc. Another solution is to use RGBDS, a GameBoy ROM dissasembler written in Python. It works pretty well, and will output a text file of possible GBZ80 assembly instructions, which you can then annotate by hand and try to figure out what does what. Regarding Ghidra: I read that Gekkio (a superstar in the GameBoy research community) wrote a module for Ghidra specifically for GameBoy code, but I haven't looked into it. Feel free to email me if you'd like. I'm no expert, by all means!
thank you so much for existing. A lot of tutorials are written for people who are already very familiar with programming (and also are based only linux which is a brainfuck for noobs like me who are used to windows)
Thank you for all of your tutorials! I had some very basic Python knowledge before finding your videos, but you broke things down so that I could follow along easily!
So great to so GBDK still being developed. Would be great to go over your previous videos and show you porting them for gbdk-2020. Also great to see another GameBoy programming video
That's great news! Unfortunately it seems the project I'm working on right now is so deeply shaped by the previous version's bugs that it seems it will not be worth modifying it for the new version...
Depois de atualizar eu escrevi um monte de funções pro meu, e o GBDK compilou tudo certinho, mas tava demorando um século, aí resolvi compilar usando o GBDK antigo e apareceram mil erros de parse inexplicáveis.
@@Matheus-mf9nz Reparei isso da demora sim, mas aqui ainda tá bem longe da marca de 1 minuto, só alguns segundos mesmo. Tá usando alguma conversão dos sprites e tiles on-the-fly ou direto no código? Acabou que eu insisti e atualizei o projeto pro GBDK2020. Na versão anterior eu tinha que escrever uns loops de forma errada porque o GBDK antigo retornava uns valores bizarros às vezes, pulando do 2 pro 0 ou coisas do tipo, o que naturalmente quase crashava na versão nova hehehe.
A lentidão era eu sendo sonso mesmo. Eu tava experimentando uma forma de mostrar texto na tela sem precisar usar os tiles de fonte incluídos no GBDK. No começo eu tava escrevendo o texto todo no formato {0x00, 0x01,...} ao invés de criar uma função que converte texto normal nos valores em hex correspondentes aos tiles dos caracteres. Depois que eu fiz isso, além de ser mais prático, voltou a compilar rápido
Nitpicking alert: The compiler does NOT convert code into assemblER. The Assembler is a part of the compile process. The eventual code is called assemblY.
I had been trying to use the new compilers to make NES games with it. I am lost on how I can do this. The documentation explains it, but it isn't very good
there are several very important enhancements in GBDK-2020. first of all, __banked functions are working now! also, some serious issues of old GBDK library were fixed, it also has better interrupt handling, support for profiling and debugging with BGB emulator, performance improvements. maybe you can find some time to make a short review?
@@GamingMonsters debugging is one of the most difficult things in gameboy development. that new macros from gb/bgb_emu.h can be of great help for not very experienced developers and worth being reviewed.
is there a gba version of the gb dev kit? I would love to code for the game boy advance, is the programming similar? Could you make a tutorial of Assembly lang? Please I feel like C is Complex.
There is a c library for gba github.com/devkitPro/libgba I have never used it. I have no experience programming Gameboy in asm I’m afraid and no real desire to learn it, you must be the first person I have ever heard express the opinion that C feels more complex than asm?
@@GamingMonsters lol i guess i am, I just like the asm language. If you ever want to learn it, try reading pokemon red's source code. Yes, you may hate reading it. But it was interesting.
Id guess the limit you are hitting is how much background memory you can have loaded at one time rather than running out of room in your rom. The way to have long scrolling backgrounds (like in games like super mario land which is a 1 bank game) is to replace background once it has scrolled off screen with your new background then as the background "wraps" around as you scroll sideways it will appear to be one really long background but actually you are just replacing old background with new as the screen scrolls, does that make sense?
in this video I am just showing using the new GBDK with a sample project github.com/gingemonster/DinosOfflineAdventure its just to show you how to use in your own projects
Brilliant stuff, I'm at about the halfway point through your tutorials and learning C as I go. So glad curiosity got the better of me and will try out gbdk2020 for the remainder of the videos. Keep them coming!
I watched your video and did learn how to code 1 basic game, nothing fancy.
Love the way you show your step by step guide, and quite happy you are back again.
Thanks for another great upload! Thanks to your videos, I have started doing some modest Gameboy hacking. I learnt GBZ80 assembly, managed to understand several chunks of code of my favorite games, and was able to make several tweaks to the games. Your C videos really helped me understand what was happening at a higher level. C + GBZ80 assembly + your videos = perfect combo!
that's awesome man, I'm curious, do you decompile the games or where did you get the source code of them?
I would like to do the same (view the source code of my favorite games), right now I'm giving my first steps on ghidra to decompile the ROMs and see how they achieve to do some things, but learning ghidra at a proper level will take me some time, so any advice on how to manage to check the source code of an existing game?
@@mariomejia8518 I used BGB, the GameBoy emulator. It can disassemble (rather than 'decompile') the ROM into possible GBZ80 assembly instructions, much like Ghidra would. It's a bit daunting to stare at a long sequence of such instructions, but it helps dig into it and understand some routines like loading level data or updating lives, etc.
Another solution is to use RGBDS, a GameBoy ROM dissasembler written in Python. It works pretty well, and will output a text file of possible GBZ80 assembly instructions, which you can then annotate by hand and try to figure out what does what.
Regarding Ghidra: I read that Gekkio (a superstar in the GameBoy research community) wrote a module for Ghidra specifically for GameBoy code, but I haven't looked into it.
Feel free to email me if you'd like. I'm no expert, by all means!
Yay, nice to see a new video from you. Been using GBDK 2020 with ZGB for a little while now and it's great!
thank you so much for existing. A lot of tutorials are written for people who are already very familiar with programming (and also are based only linux which is a brainfuck for noobs like me who are used to windows)
Thank you for all of your tutorials! I had some very basic Python knowledge before finding your videos, but you broke things down so that I could follow along easily!
Was waiting for so long for a new video, can't wait for the next one
So great to so GBDK still being developed. Would be great to go over your previous videos and show you porting them for gbdk-2020. Also great to see another GameBoy programming video
This is nuts! I had to trial and error the heck out of gbdk for my senior capstone project; I can't believe the amazing resources available now!
Perfect. It's nice to see you here again.
Thanks for these videos... Just did a game jam using GBDK having watched most of these videos.
Please do share what you built
@@GamingMonsters fatrobin.itch.io/cat-former source code is linked from there to github... it is from a game jam so it is not pretty...
Have you considered starting a tutorial series for this new version? I would like to watch if you do.
Maybe again one day but life in the way at the moment
Nice way to practice your C program to develop Game boy games
Thanks for emailing me about this and helping with my program!
Great video. Thanks for the update.
That's great news! Unfortunately it seems the project I'm working on right now is so deeply shaped by the previous version's bugs that it seems it will not be worth modifying it for the new version...
Depois de atualizar eu escrevi um monte de funções pro meu, e o GBDK compilou tudo certinho, mas tava demorando um século, aí resolvi compilar usando o GBDK antigo e apareceram mil erros de parse inexplicáveis.
Vc já reparou se o seu código demora mais pra compilar conforme o projeto vai ficando maior? O meu demora ~1min toda vez que eu rodo make.bat.
@@Matheus-mf9nz Reparei isso da demora sim, mas aqui ainda tá bem longe da marca de 1 minuto, só alguns segundos mesmo. Tá usando alguma conversão dos sprites e tiles on-the-fly ou direto no código?
Acabou que eu insisti e atualizei o projeto pro GBDK2020. Na versão anterior eu tinha que escrever uns loops de forma errada porque o GBDK antigo retornava uns valores bizarros às vezes, pulando do 2 pro 0 ou coisas do tipo, o que naturalmente quase crashava na versão nova hehehe.
Eu uso o PNG Converter do Brian pra gerar as strings dos tiles antes de compilar
A lentidão era eu sendo sonso mesmo. Eu tava experimentando uma forma de mostrar texto na tela sem precisar usar os tiles de fonte incluídos no GBDK. No começo eu tava escrevendo o texto todo no formato {0x00, 0x01,...} ao invés de criar uma função que converte texto normal nos valores em hex correspondentes aos tiles dos caracteres. Depois que eu fiz isso, além de ser mais prático, voltou a compilar rápido
Do you have any plans for the future to teach how to utilize the game link cable for gameplay?
Plans yes, deadlines no :-(
Nitpicking alert: The compiler does NOT convert code into assemblER. The Assembler is a part of the compile process. The eventual code is called assemblY.
Lol if that’s the only one you found you haven’t been listening hard enough :-) but thanks always good to try and learn some precision
I had been trying to use the new compilers to make NES games with it. I am lost on how I can do this. The documentation explains it, but it isn't very good
thank you sir, god is with you
Thank you for all you do
is this new version of GBDK simular enough to the older version to follow the tutorial series with the updated one?
Yes but... there have been some bits of code that have broken in gbdk which I have been slowly updating on GitHub (see link in description)
there are several very important enhancements in GBDK-2020. first of all, __banked functions are working now! also, some serious issues of old GBDK library were fixed, it also has better interrupt handling, support for profiling and debugging with BGB emulator, performance improvements. maybe you can find some time to make a short review?
I need to spend a good amount of time playing with it myself I think so that I have had a chance to try all the new features but yes I agree
@@GamingMonsters debugging is one of the most difficult things in gameboy development. that new macros from gb/bgb_emu.h can be of great help for not very experienced developers and worth being reviewed.
I compiled it but the controls doesnt work, the game boots fine tho
I do prefer the old ones but...
This looks good!
I really need to know does gbdk support the link cable because i really wanna make a homebrew Pokémon game
It does yes but I have never tried it
Say what!? This is so exciting :)
is there a gba version of the gb dev kit? I would love to code for the game boy advance, is the programming similar? Could you make a tutorial of Assembly lang? Please I feel like C is Complex.
There is a c library for gba github.com/devkitPro/libgba I have never used it. I have no experience programming Gameboy in asm I’m afraid and no real desire to learn it, you must be the first person I have ever heard express the opinion that C feels more complex than asm?
@@GamingMonsters lol i guess i am, I just like the asm language. If you ever want to learn it, try reading pokemon red's source code. Yes, you may hate reading it. But it was interesting.
Oh hoho! great news! should I update my project
yes give it a go there is a very good chance you won't have to fix anything
i have a question, i want to use a big background but my memory is full, how i can use the "multi banks" for solve it? thanks
Id guess the limit you are hitting is how much background memory you can have loaded at one time rather than running out of room in your rom. The way to have long scrolling backgrounds (like in games like super mario land which is a 1 bank game) is to replace background once it has scrolled off screen with your new background then as the background "wraps" around as you scroll sideways it will appear to be one really long background but actually you are just replacing old background with new as the screen scrolls, does that make sense?
@@GamingMonsters but the game explodes when i add an "#include background2.c", help please
I wonder if you are going to do gba next?
unlikely I just dont have the time at the moment sorry
Where can I find the other files? (Background.c etc.)
in this video I am just showing using the new GBDK with a sample project github.com/gingemonster/DinosOfflineAdventure its just to show you how to use in your own projects
Does the gbdk2020 support programming for gameboy advance as well?
No just the gameboy but there are similar c libraries for gba development however I have no experience with them
www.coranac.com/tonc/text/
This is what you'd need for GBA programming.
Hopefully they’ll make a Mac compatible version.
they do its on the downloads page github.com/Zal0/gbdk-2020/releases
next video: gameboy os