Retro C Game ProgrammingIn this video I will show you how to install and setup LibDragon and ARES an accurate N64 emulator, which allows us to test our homebrew ROMs, before porting on to a real N64. I will then show how to setup the LibDragon toolchain and library inside the Codeblocks IDE. And then present a simple project to use as a template to build off of. It could be a while before I make any N64 videos, as I will be creating videos for the 3DS before the N64, as of May 2025. However to get you started I provide a link to a good site to get you started. Remember it is the preview branch I will be covering not the stable branch.
If you have found this info useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues or questions about the video, please let me know below and I will reply next time I am online.
N64 Programming In C - LibDragon Linux InstallRetro C Game Programming2025-05-04 | In this video I will show you how to install and setup LibDragon and ARES an accurate N64 emulator, which allows us to test our homebrew ROMs, before porting on to a real N64. I will then show how to setup the LibDragon toolchain and library inside the Codeblocks IDE. And then present a simple project to use as a template to build off of. It could be a while before I make any N64 videos, as I will be creating videos for the 3DS before the N64, as of May 2025. However to get you started I provide a link to a good site to get you started. Remember it is the preview branch I will be covering not the stable branch.
If you have found this info useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues or questions about the video, please let me know below and I will reply next time I am online.NES Programming in C using VBCC 6502 and LazyNes lib - Extras 1Retro C Game Programming2026-09-04 | In this video, I will go over some more advanced stuff, so that you can create better NES games. First I talk about using Character RAM (CHR RAM) instead of (CHR ROM), as this enables us to dynamically update our graphics at any stage in our game, which means we can have more than just 256 background or Sprite tiles, as we can replace Tiles when needed. Then I talk about banking, using UNROM Mapper 2, so that we can have 64K for our PRG ROMs now. After that I talk about Clipping Sprites to a Viewport/Scroll Camera, which is useful when creating sprites that move on and off screen, like in a Sideways or Vertical Scroller.
Finally I talk about using the Sprite0 Hit trick, on the NES to allow us to create a Heads Up Display. This is something that is also needed for Scrolling games, so we can display game information to the player. I also talk about how I setup the ROM to use 4 Screen Mirroring, but it didnt work on my real PAL NES, but I briefly touch on this, as it works in the emulator and may work on a different EverDrive Cart to the one I use. I am not sure if the NES2Tile program I provided previously has the .C array output, so let me know if you need that, else you can just copy the .ASM data into the .asm file for your tile graphics.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.NES Programming in C using VBCC and LazyNes Lib - Episode 3 - Final - Goomba InvadersRetro C Game Programming2026-08-12 | In this video, I go into detail on the Invader fleet of Goomba's. I go over how they are created using background tiles and how to move large Images made from tiles. I then go over every step of how the Goomba Fleet works, from moving to firing to 2 step Collision detection checks with bullets. The end result is a finished Space Invaders genre game, with Goombas. I also explain how I added Wario and WaLuigi by changing the colour palettes.
At the end of the video, you should be happy to dive in and create your own fleet of Invaders!
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
TimeStamps 00:00 - Intro 01:50 - Game Demo 03:58 - Invader Group Struct 07:08 - Invader Images as Tiles 17:30 - Invader Fleet variables 22:55 - Invader Init Code explained 40:30 - Invader Draw Code explained 53:15 - Invader Group Move Right Code 1:03:18 - Invader Group Move Left Code 1:07:20 - Invader Group Move Down Code 1:11:19 - Invader FireBullet Code 1:23:57 - Invader Collision Code 1:44:00 - Game play Code related to Invaders 1:49:50 - New Player colour palettesNES Programming in C using VBCC and LazyNes Lib - Lets Make a Game Video 2Retro C Game Programming2026-08-05 | In this video, we continue where we left off from last time. But first I will talk about what State Machines are, when talking about code, and why we might use one and their uses. Next I explain how you can make destructible backgrounds, using tiles, like the bunkers in the Goomba Invaders game. I also talk about how to check for collisions, using 2 steps. Next I port across everything but the main Invader code. I talk through the Player Manger code and the Bullet Manager code in detail and also the LevelManager code, which contains the Bunker Collision code. At the end, I leave you with a simple program that has all the code to be a game, except without the main Invaders. That is for the next video. I end the video, after I try and setup the Mothership quickly, but fail during filming. I went back to the code, whilst I was waiting for the editor to convert it to MP4 and changed the timer code, so that the mothership could actually spawn and go on screen. I also added in the correct colour palettes, which I failed to add and updated the Palette_Upload function. So be sure to look at the code there, ready for the next video.
I have also created a Master System port now, so check that out on Itch.io also.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.NES Programming in C using VBCC and LazyNes Lib - Lets Make a Game Video 1Retro C Game Programming2026-07-29 | In this video, I will start my 3 part project, to explain to you how you can create a complete game in C for the NES. I have already made sure I can deliver what I promise. First I go through all the tools you will need to get started, then I go over the key functions I have created and explain what they do. I also show how to convert graphics for our project and show off my Sprite Manger, which will allow you to work with 16x16 and 16x32 sprites and handle Flipping the sprite Image both, horizontally and vertically. Everything you will need to make a game is here, with regards to functions.
If you want to see my little spin, on the finished Game, then check out my Itch.io page, link below. It uses all the same functions, which I have presented today.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.GameBoy Color Programming in C - ROM Bank Switching And Extended Background TilesRetro C Game Programming2026-07-15 | In this video I will show you how you can handle ROM Bank Switching on the GameBoy Color and also how you can use the extra VRAM for more Background tiles. First I talk through how Bank Switching works and then talk about how to organize your project, to span across multiple ROM banks. More details on ROM banking and bank switching can be found in the gbdk 2020 guide, which comes with gbdk 2020 itself. I then explain the ROM bank setup I used for this demo and show the way I instantly switched between the Sprite and Background graphic tiles. Next I talk about how to load your extra tiles into VRAM and then how to access these new tiles.
** I forgot to mention the make files used in the main part of the video, so make sure to watch past me saying the video is finished part, for the actual end.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
TimeStamps
00:00 - Introduction 01:00 - Demo Preview 03:40 - Project Graphics Talk 07:46 - ROM Bank Switching Talk 10:50 - Project Example Diagram 14:25 - ROM Bank Switching Code Talk 34:35 - Extended Background Tiles Talk 38:31 - New Gfx functions for Extended Tiles 42:24 - Make files used for building the projectNintendo Wii Programming In C - Video 10 - Super Homer BrosRetro C Game Programming2026-07-01 | In this video, I will explain to you, how I created Super Homer Bros for the wii. I first show the game and the 3D models I used to make it. Then I show you how I made the levels, which were based on the original NES Mario Bros Levels. I then explain and show how you can update or add your own levels. First you create an image file of the levels map, then use my DS2Tile app, to convert the image in to level data. Finally, you just paste the data into the game code and run it. Next I talk about how scrolling works and how it works for this specific game. I show and explain how the virtual viewport moves along the level and gets rid of old level blocks and imports new level blocks, from the level data array. I then explain how the collisions in the game work, using 3d Collision cubes and explain the new function, which is use to check, if two Cubes collide. Next I go through the Level Collision functions for platforms, walls or Donuts. Then I go over the players jump and collision code. Next I explain how the Baddie Manager moves its Goomba’s towards the player. Then I show you how I implemented a simple lighting system, using GRRLIB's Lighting functions. In this game, I created a light that follows the player along, lighting the scene as it goes. Finally I talk about the new SkyCube and the Water effect, and show you the new Texture Scrolling function for the water.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
Time Stamps
Intro 0:00 Game Preview 00:30 Models Preview 04:00 Levels Talk With 3D Level Blocks 05:40 Scrolling Large Levels - 25:40 Creating Levels - 41:00 Scrolling Code talk - 47:28
Platformer Collisions with Cubes - 1:22:29 LevelManager Collision functions talk - 1:41:10 Player Actor Jumping and Falling - 1:54:50 Simple Enemy Movements - 2:09:28 Lighting Talk - 2:17:11 Skycube and Water effects - 2:21:10 Water Mesh and Scrolling talk - 2:23:34Nintendo Wii Programming in C - Video 9 - AnimationRetro C Game Programming2026-06-17 | In this video I will show you how you can create animations on the wii, by splitting a model into its key parts. With these parts you can then create a set of animation frames, which contain each parts, offset and animation rotations. First I demonstrate in Blender, how to split a model in to parts, then I show how to re create the model from tweaked parts, which now have their own sets of position, rotation and scale. Then I show how to change the parts, to create animation lists. Next I show how to import all of this, in to C code and play it all back. I show you the code to handle playing these animations first and finally how it does this using a Lerp function, which blends float values together and outputs its result for use in animating. I also show the Matrix maths functions which handles it. After the video, you should be all good to get started with your own 3D animations.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
Time Stamps 00:00 - Intro 01:08 - Demo 03:00 - Topics covered talk 04:50 - How animations work diagram 1 08:50 - Splitting Models in Blender 37:00 - Setting up child object offset positions 44:00 - Creating Animations via rotations 50:00 - How to Export Child Model parts 57:40 - AnimModel Structure and setting up 01:04:46 - Lerp function explained 01:36:32 - Scene3D, new Drawing Code functions 01:44:05 - Whats in next videoNintendo Wii Programming in C - Video 8 - The Doh Nut CollectorRetro C Game Programming2026-06-03 | In this video, I show you how to create and use a 3rd person camera. How to create a Level using 2 png images, one for the background tiles and one for the actors. I then go over some of the new functions I have created to assist, in making our coding life, easier. These range from some sound effect commands, to enhancing model texture wrapping scaling. The end result of it all is a little driving game, called The Doh Nut Collector. The game is based off of an old 2d driving maze game, which was out for the bbc micro in the early 1980's. The game was called Race Chase, which was a bbc basic game, which gave me the idea.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
TimeStamps:
00:00 - Introduction 01:52 - Game Demo 04:25 - 3rd Person Camera Theory 06:20 - New 3d Models for the Game 18:50 - Level Design for the Game 24:50 - Minor Code changes 01:06:50 - 3rd Person Camera Code 01:18:00 - Video wrap up and whats nextNintendo Wii Programming in C - Video 7 - Loading ModelsRetro C Game Programming2026-05-20 | In this video I will explain how we can load model data into the Wii, to create our own 3d scene. First I explain the wavefront obj format basics. Then I explain what a Display List is and how to create them on the Wii. Next I show where you can get models from, to test in your own games and to give you an idea of the sort of detail to aim for. When viewing the models which were used in commercial games, it also show examples of how actor parts were created in 3D. Then I show how to import and fix the model to use on the Wii, by using Blender. And also LibreSprite to help create a single texture for our model. Then I export the fixed model as an obj file and convert it to arrays of shorts, using my ObjConversion tool. After that I show how to import and use the model in code, which is easy when you know how its done. And finally we see our new actor in the demo moving around. This should start you off with creating more graphically fun programs on the Wii.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
Video Timestamps:
00:00 - Intro and Demo 07:40 - Wavefront Obj Format, basics explained 24:10 - Fixed Point format 1.3.12 34:25 - DisplayLists on Wii 49:00 - Creating Models in Blender 01:24:25 - ObjConverter program 01:26:30 - Importing Model Data 01:35:45 - Final Result Demo 01:38:20 - Final remarksLets Learn C for Beginners Video 8 - LibrariesRetro C Game Programming2026-05-18 | In this video, I will explain what a Library is, go over the types of Libraries and how to use them. I show 2 demos, one using TinyfileDialogs and the other using SDL2. The demos span across both Windows and Linux, so make sure you don't skip the Windows code, as the main demos are on there. The code shown works for both. The way you link shared and static libraries in Codeblocks is also the same on all operating systems.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
TimeStamps: 0:00 - Intro 01:33 - Library Talk 15:21 - TinyFileDialogs 47:28 - SDL2Nintendo Wii Programming in C - Episode 6 - 3D CubesRetro C Game Programming2026-05-06 | In this video I will explain how you can create 3D Textured Cubes and also how to sort 3D objects by distance, if they have transparent parts. This is how I have got the 3D Sprites in this demo working correctly. I first explain, the basics of how a cube is constructed and then go into more detail on applying textures to each face. This should enable you to be able to map parts of your own textures, to cube faces after watching this. Next I talk about sorting models, which have transparency included in their textures and how it works. Then I show the code that is used for the 3D Sprites. This should allow you to create some more interesting 3D scenes on your wii.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
TimeStamps
00:00 - Intro 01:25 - Project Demo 04:00 - 3D graphics quick refresh from last video 07:40 - 3D Textured Cubes Talk 33:00 - 3D Sprite Talk 40:20 - 3D Sprite Distance Sort function 44:44 - Next Video planLets Learn C for Beginners Video 7 - Using FilesRetro C Game Programming2026-05-04 | In this video I will explain how to save and load Text files and Binary files. I provide 2 useful objects to handle working with both of these. They are CStringList and DataList, I also provide File Load and Save functions which work with these structs. I provide 2 Text File examples and show how you could handle a highscore table or your own text writer. Then I go over using Binary Files with the DataList struct and its functions and how it can work with any datatype, as long as you know where in the list it lives. As it can contain various mixed data types as a byte stream.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
timestamps -----------
00:00 Intro 02:40 File Paths and differences with windows 08:50 CStringList 13:05 Working with files fopen function talk 19:38 Using Argv to get filename and app path 22:30 Textfile example 1 29:40 IO_GetFileName_FromPath function 31:50 IO_PathBackUp function 32:23 IO_SaveTextFile function 40:00 Textfile example 2 - highscore table 48:19 IO_LoadTextFile function 58:05 sscanf function to read and convert text to numbers 01:09:00 Binary files talk 01:14:30 DataList 01:28:00 MakeDataFile - binary file example 01:34:45 IO_SaveDataFile function and saving binary files 01:42:30 IO_LoadDataFile function and loading binary filesNintendo Wii Programming - Episode 5 - Starting 3DRetro C Game Programming2026-04-22 | In this video, I will show how to get started with 3D on the wii. I first go over some 3d basics, like how the 3d coordinates reflect our real world coordinates. I also touch on rotations in 3D. Next I explain how shapes and models are constructed and how to apply images as a skin around models. I then jump in to the code and show how the core stuff works. I explain how to position models in the 3d scene and scale and rotate them. I show how a 1st person camera works, and what you need to do to move it around. Then I show how to draw 3d textured quads, as a floor surface and as 3d sprites. Finally I go over how I created the mini scene map for the demo, using an image as a simple map and how you can add your own mini scenes in the same way.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
Time stamps 00:00 - Intro talk 05:00 - 3D Basics 35:47 - Source Code talk start 42:10 - GRRLIB_2dMode code talk 47:44 - Scene3D Functions talk start 48:02 - Camera Functions 01:01:45 - Draw Floor Quad 01:09:00 - Draw Sprite Quads 01:11:00 - 3D Scene and LevelManager talk 01:15:11 - 3D Model ModelView Matrix (Position,Scale and Rotations) 01:22:00 - TextureManager talk 01:26:57 - How to add additional graphics and sprites 01:38:28 - How to create a 3D scene from an image 01:44:45 - Video wash up and whats nextLets Learn C for Beginners - Video 6Retro C Game Programming2026-04-20 | In this video I explain how to pass arguments to your programs on the command line. I explain what they are, how to use them and their uses if creating a tool. Next I explain how to pass a variable amount of arguments to your functions, using the Var Arg system, with va_list. I give you the code for a CString object, which can be used to hold and work on C Strings i.e (const char arrays) in a nicer and more friendly manner. This object makes good use of Var Args, giving you a real world reason for using it. Next I explain how the memory our programs use, is handled by both the compiler and the operating system that your program runs on. I explain where our variables are placed by the C Compiler when it creates our program. I then explain how to use the 3 dynamic memory creation functions that C has, Malloc, Calloc and Realloc to get blocks of bytes from the operating system. And then use Free to pass back the blocks of bytes after we have finished with them, so we don't create memory leaks. I give you the code for an ArrayList object, which can be used to create dynamic arrays. In this case it holds 'int' but I explain how you could change it to hold and manage anything.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
timelines 00:00 - Intro 02:25 - Command Line Arguments 12:13 - Var Args - Variable Arguments Lists 13:40 - CString - functions 20:27 - vsnprintf - overview 36:45 - Memory Management in Desktops 46:52 - Malloc, Calloc & Realloc 57:59 - ArrayList_Int - functions 01:20:20 - Video wash up and whats in next videoLets Learn C for Beginners - Video 5Retro C Game Programming2026-04-08 | In this video, I explain what Bitwise Operators are and how to use them. Next I explain various ways to compare variables, for equality or if one is bigger or smaller than another. Next I explain how I detect for collisions in games, using the Rect structure and Rect_Overlap function. I also explain how, I ran out of memory and why it happened and finally I finish up with a quick go over, of some of the code. I explain the Rect struct used in this C64 game and the function code. And then I talk about the main game loop and how I use the State Machine Design pattern for this. I also explain how a few things work on the way.
I have updated the Graphics Creator for the Vic20 and C64, but I have not uploaded the new version. Let me know if you would like this or not? The newest version, allows the graphics code to be formatted in assembly format using the .byte and $ sign to indicate hexadecimal numbers.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
Time Stamps 00:00:00 - intro 00:01:43 - Bitwise Operator Talk Start 00:14:40 - Bitwise AND 00:19:57 - Bitwise OR 00:22:55 - Bitwise NOT 00:24:37 - Bitwise Exclusive Or 00:29:40 - Bitshifters 00:38:12 - Compare boolean operators 00:48:08 - Rect Struct and Collisions Talk 00:52:18 - Game Demo 00:54:10 - Game Graphics Overview 00:59:44 - Update vlink vbcc6502 linker script 01:01:18 - Rect collision code 01:18:00 - State Machines and C64 Goomba Invader TalkNintendo Wii Programming in C - Episode 4Retro C Game Programming2026-04-08 | This video is Part 2 to Episode 3, so you will need to have watched that video first, to understand key parts of the game code. In this video, I will show you how to use MP3 files for music and WAV files for sound effects. First I show how to work with sounds on the Wii and how to convert sounds inside Audacity. Next I go over 2 libraries, that handle MP3s and WAV files, and how to play them. Next I talk about state machines, what they are and how to use them in C, then I point out the various locations in the Game Code, that rely on them to work.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
TimeStamps 00:00 - Intro 01:07 - Audio Talk 02:55 - Game Demo 04:04 - SoundManager talk start 04:35 - Audacity sound creation and remixing 32:04 - State Machines Talk 39:33 - Game States and Game TalkNintendo Wii Programming in C - Episode 3Retro C Game Programming2026-03-25 | In this video I will show how to setup and use a large spritesheet for various actors. I show how to create a scrolling effect, with 2 layers of clouds. I show how to create a lookup table of values to create a sine wave, for our enemies to bounce on the screen. I then show how I implemented explosions and bullets and a few updates I made to the Scene2D code for this project.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
Time stamps
00:00:00 - Demo preview 00:03:45 - SpriteSheet talk 00:09:32 - Cloud Manager and Scroll effect 00:32:31 - Enemy Sine Wave table and code 00:59:02 - Explosion Manager 01:06:40 - main.c module talk 01:10:38 - part 2 talk and video wrap upLets Learn C for Beginners - Video 4Retro C Game Programming2026-03-23 | In this video I explain and demonstrate how to use Commodore 64 Sprites and Custom Character Graphics. I first talk about how to create Characters and Sprites. Next I show you how to use my Graphics to Data program for the Commodore 64 and Commodore Vic20, which converts .png to C data arrays. Then I show how to setup VBCC 6502 to configure its memory for us, by setting aside an area for our graphics.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
Timestamps 00:00:00 - Character graphics 00:29:00 - Sprite Graphics 00:39:10 - Graphics Converter 01:16:36 - VBCC Linker Script setup 01:26:43 - Demo ProgramLets Learn C for Beginners - Video 3Retro C Game Programming2026-03-18 | In this video I will show you how to use Header Files, MACROS and Pointers. I will be using the Commodore 64 as my example machine for this, see the VBCC 6502 compiler setup video if you want to follow along.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
Timestamps 00:00:00 - Intro talk 00:02:25 - C64 Talk 00:11:13 - Multi File Projects 00:54:10 - MACROS 01:15:00 - Pointers 01:42:20 - DemoLets Learn C for Beginners - Video 2Retro C Game Programming2026-03-11 | In this video I will explain how and why to use Loops, Structs, Typedefs and Arrays. I also show and explain how to pass and change variables inside functions. I then present a full game, Haunted Cave, which is a text game that you can play online in a C browser or build into an exe file or executable on your operating system. I then go over how to use switch blocks. This builds upon the last videos topics, so be sure to watch that one first.
Let me know in the comments below, which console we should start with in the next Video? (GameBoy, GameBoy Color, GameGear, Master System or NES)
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
TimeStamps 00:00:00 - Loops 00:24:00 - Structs and passing variables by Value and Reference in to functions 00:54:40 - Typedefs 01:05:00 - Arrays and #define keyword 01:44:40 - Haunted Cave Game and enum data types 02:10:56 - Switch BlocksNintendo Wii Programming in C - Episode 2 - Input and 2D SetupRetro C Game Programming2026-03-09 | In this video I quickly go over some history of the Wii first, then I go over how to handle various input devices and what you can use to inspect their return values. I also show a quick ErrorTrapper module, which will allow simple text output. Then I show how to load and draw Images and Sprites from a SpriteSheet. Using my ImageManager code and Scene2D Manager code, for easily handling various 2D Blitting. These use GRRLIB's built in Image Drawing functions. In the next video I intend to code our first 2D Game on the Wii, which will be a scroller of some sort, let me know if you want a vertical scroller or horizontal scroller.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
00:00 - Video Topics Covered 00:47 - How to setup programs to run on a real Wii 02:08 - History and some Hardware information 06:07 - 3 Most Common Input Devices 08:00 - Wii Mote sensors and rotations 11:05 - Tutorial 1 - Input Handling - talk start 37:00 - ErrorTrapper code talk 40:00 - Tutorial 2 - talk start 42:00 - How to Load Images in GRRLIB 45:42 - ImageManager code 52:28 - Scene2D Manager S2D codeLets Learn C for Beginners - Video 1Retro C Game Programming2026-03-05 | In this video I will show you how to get started with C programming. You can either start coding in your browser to begin with, or you can download Codeblocks for Windows or Linux. I describe the best way to do this for Linux in this Video and suggest seeing my previous video on how to setup for windows. I start with a basic history of C and how computers work and then get into some key commands to start with like outputting text into a terminal / console window. And then I go through creating 3 simple games, using the new commands I have talked about previously. I also link to a site that I use to inform me of the standard C commands and how to use them.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
00:00 - Links for C Compiler and sites 10:00 - Quick histroy of C Programming Language 13:45 - How computers work at a basic level 17:00 - Binary Talk 18:05 - Core Computer Data Types (Intel / ARM) 21:30 - ASCII Talk with Chars 23:36 - Computer Memory and Memory Map Layout 28:48: - Computer Number systems explained 32:30 - Hexadecimal C example code 34:25 - How do Negative Numbers work 41:20 - What is a Computer Program 46:08 - Programming Language Types 56:08 - C Data Types in detail 01:08:24 - C Library Useful site link 01:10:10 - printf function talk 01:16:20 - Variable maths symbols 01:44:50 - Program 1 - Guess the Number 01:48:57 - srand, rand and time functions for random numbers and modulo maths operator 02:11:35 - scanf function talk 02:18:00 - comparing numbers with if command for being equal, larger or smaller 02:33:00 - Program 2 - Silly Story 02:33:35 - char array i.e strings of letters talk 02:38:00 - scanf function reading text from command prompt
02:44:47 - RPG Battle 02:47:30 - custom functions for random numbers and dice roll 02:49:44 - strncpy over strcpy - how to copy strings from a const char* to your string 02:55:22 - bool false talk and others ways to represent it in CNintendo 3DS Programming in C - Episode 9 - Super Mario Bros NESRetro C Game Programming2026-02-25 | In this video, I will show you how you can create a 3D Platformer from a 2D Image Level Screen print. First I explain where I found the reference images and how to use them, next I explain how a 3rd person Camera works. Then I show how you can create your own map and how to convert it to level data and then play it in game. Next I cover how actor collision with platforms works. Then I explain how the players jumping and falling code works. I then talk about the Goomba's homing movement. Then finally I go into the LevelManager's code, and show how the scrolling works. I also briefly touch on a new Shader that is added to provide lighting for the scene. I explain how the key components of the Game works in this video but I don't go over, the Game Functions are the same from 2D Coin Game, to save some time.
Key time stamps 00:00 Intro 02:00 Game Music 03:36 Game Player 04:38 Game Models shown in blender 07:49 How 3rd Person Camera works 08:46 How Level Maps were created from NES Game level Images 10:56 Level tileMaps talk 23:08 Create a TestLevel for the video 25:50 DS2Tile converting TileMap Image to Tile Data array 39:30 How Scrolling works with a ViewPort window Rectangle - the theory behind it 51:50 How Plaform Collision code works 59:10 Level Object Struct, properties described in detail 01:07:00 Player Jumping and properties 01:23:09 Player Falling Code 01:28:00 Goomba Collision Code in BadManager 01:38:22 Player Update function talk 01:43:46 Goomba Movement Code and its functions 02:05:10 Goomba Splat Model and how it is used 02:06:34 Level Manager Scrolling and Object Handling Code 02:13:17 Level Debug Mode boolean and what it triggers 02:16:26 InitLevelGfx function code, for switching a levels graphics out 02:20:56 Level Manager Add Object function 02:31:58 Level Manager Render function 02:35:20 Level Manager Scrolling Code explained 02:44:30 Lighting Shader properties and Clear function talk 02:47:50 End talk
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.N64 Programming in C - Episode 10 - NES Super Mario Bros DemoRetro C Game Programming2026-02-18 | In this video, I will show you how I created a simple platformer game, which uses the Animation Code and Actors from the last video. I show how I setup a 3D Camera, how I built the levels based on the original NES Mario Levels. And go over how the scrolling engine works as well as collisions. And then how the players jump and fall works, as well as the baddie Goombas movements. I also talk about the issues I had, when I decided to add lighting to the game and how I fixed this issue. The Issue did not appear in the Emulator, and only showed up on the actual hardware. To convert your levels to data, you will need to use the DS2Tile program and set the width to 1 and the height to 15, I talk about the column sizes in the video, but don't actually show you this part. As I have shown level creation before, but I just wanted to mention this.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
Time Stamps
00:00 Intro 01:45 Game Models preview 07:48 Model Origins Talk 09:56 First Demo Preview 12:32 Demo Levels Included 13:40 3rd Person Camera Talk 19:57 Level Image Conversion into tiles 29:48 How Scrolling works 36:06 LevelManger and Scrolling Code Talk 51:00 How Level Objects are created in the LevelManager 01:05:18 LevelManager Render Function talk 01:07:10 Player Collision Code talk 01:22:50 2D Levels to 3D Levels brief talk again 01:26:00 Scrolling Code Talk part 2 Viewport movement 01:35:40 Player Jumping Code Talk 01:45:20 Player Falling Code Talk part 2 01:48:20 Player Movement Code Talk 01:54:26 Enemy Movement Code Talk 02:06:35 Game Lighting Issues 02:12:44 Video Wrap UpNintendo 3DS Programming in C - Episode 8 - 3D AnimationsRetro C Game Programming2026-02-09 | In this video, I will explain how you can create your own 3D Animations on the 3DS, without a 3rd party library or any fancy code. First I show how I set up the 2 actors in the thumbnail to this video. I show you a site you can visit to look at actual game models, Models Resource. This can be an important way to see how certain actor graphics were created. And also to provide a base model to work from or provide ideas. Next I show how to convert a model in to model mesh parts, for animating. Next I show how to setup your model and parts in Blender and how to position your model for animating. Then I show how to export your model parts and explain how to re-assemble them in code on the 3ds. Next I take you through the code for animating, our actors and explain how it works and how you can use it in your own projects.
Chapter time stamps 00:00 Introduction 00:22 topics covered 00:40 Models Preview 02:37 3DS Program Preview 05:46 How to find Models Resource Site 07:11 Downloaded File parts talk 08:35 Loading in Downloaded .obj Models in Blender 10:00 How to split up a model in to parts in Blender 12:06 How to name and organise mesh parts in Blender 14:13 Texture talk start 17:23 Texturing and Mirror Modifier 26:27 How to set mesh part centres of rotation / mesh origin 28:40 How to adjust the 3d cursor, so it marks the place of a new mesh origin 31:50 Cleaning Model Parts of any rotation or non 1.0 scale values 32:25 How to Copy and Paste Mesh limbs, which are already setup correctly, for mirrored limbs 37:03 Setting up Mesh Part offsets 39:40 Create a Textfile to record an Actors Mesh parts/body parts, offsets from origin 45:00 Creating Animation Frames 46:40 How to record Animation Frames 50:18 How to add new Animation Frames to Game Actors 53:28 How to export Actor Mesh Parts from Blender 56:10 What exported Mesh parts look like in code 56:43 Mesh parts, Animation arrays overview 1:00:00 Play back new Star Jump Animation 1:03:37 AnimMesh code talk through 1:06:30 Animation Frames, how they are used 1:11:21 AnimModel_Init function talk 1:16:00 AnimModel_InitPart function talk 1:17:10 AnimModel_PrepAnim function talk 1:18:30 How to Draw AnimMesh parts using new S3D functions 1:26:33 AnimModel_Play function talk and lerp3f function 1:33:41 How to setup and play an Actor's animations using AnimMesh code 1:40:00 When/How to switch Animation states 1:41:50 Video wrap up and what will be in the next video
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.N64 Programming In C - Episode 9 - 3D AnimationRetro C Game Programming2026-01-28 | In this video, I will build upon my 2 previous videos, which showed how to convert, wavefront '.obj' files to raw data arrays. This time I will show how you can create, model parts, which are used to create 3D Actors. I show 2 Actors - Mario and Goomba and how I created them from Models I found online. I use blender for all the 3D work, which is free for all to use. I show how I split them into parts and created new textures/skins for them. I show a simple way to create animation frames and play them back on the Nintendo 64. This should give you a good idea of how to create and animate your own 3D Actors.
Time stamps 00:00 - Introduction 01:27 - Mario Model Preview 02:28 - Mario Model Parts Preview 02:40 - Model Parts Origin Talk 04:59 - N64 Demo Preview 10:00 - Base Mario Model from SmashBros Texture Talk 11:59 - Models Resource Site talk 14:30 - Importing Models from Models Resource 15:14 - How to Split a Model in to Parts 18:10 - How to Set a Parts Origin/Centre of Rotation 21:14 - How to Correctly Scale A Model and Why 22:10 - Finished Mario Model from Parts 22:37 - Why Scaling models matter 27:40 - Creating Animation Part Offset Data 33:14 - Creating Animation Frames from Rotations, Data 37:33 - Adding a new Animation Frame to the Mario Animations 40:35 - Exporting a Models Body Parts 42:30 - Look at Custom Goomba Model Parts 43:54 - Adding new Animation Data into Exisint Mario Animation Part Arrays 48:40 - Building and Running Updated Demo with exisiting Mario Animation 1:00:38 - Animation Code Talk through 1:02:30 - AnimMesh_Manager Code Talk - How an Actor is setup from Data 1:09:38 - AnimMesh_Manager Code - Functions Talk through 1:19:34 - New Scene3D Functions for Drawing Mesh Parts 1:23:38 - Vector 3f Lerp function code talk 1:25:39 - Video wrap up and whats in next video
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo 3DS Programming in C - Episode 7 - BreakOut 3DRetro C Game Programming2026-01-07 | In this video, I show you how to use all the previous topics I covered, to create a full game. Using the game code, as a template, should enable you to create your own projects with confidence. First I show the working game and models I used, next I show the sound files, as the emulator I use does not work with sound. Next I dive into the code and go through the Game States, in the Game Module and how they tie the whole game together. Next I go into the LevelManager and how it handles the bricks and collisions. Next I go over the Player Manger and Ball Manager code. I also cover a few function name changes in the Scene 3D Module, called S3D. The Assets used and the source code can be found at the link below
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh or buy/donate to one of my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.N64 Programming in C Episode 8 - BreakOut 3DRetro C Game Programming2025-12-24 | In this video I will explain how to structure a full game in C for the Nintendo 64. First I go over the Game Module and header and detail the states each game part needs and then I explain what needs to go in them. Next I go over the collision objects for the Ball,Bat and Bricks and then I give an overview of the code that makes those objects work. I then explain how the LevelManager works and how you can add more levels. Finally I preview the Models used in the game and how to get rid of parts the player wont see. And finally just a few things I have learnt about N64 programming.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo 3DS Programming in C - Episode 6 - Loading ModelsRetro C Game Programming2025-12-13 | In this video, I will show you how I load in Model Data, from Models I have created in Blender, using the Wavefront .OBJ file format. I also explain the basic parts of the format and how I convert floats into fixed point values as s16 (shorts) in hex format. This allows for an easy way to use models, without having to load obj's them selves. Next I show you where you can get models to play with and use as reference for your own creations. I then show you how I fixed the Bowser Junior model. Next I show how to convert your exported OBJ files into data, using my ObjToDS tool, which I use to convert OBJs to Array Data. I also show how I laid out the virtual level / scene, using an image as a map with a colour key, and how that mirrors in the LevelManager code. Finally I show how you can import new models with their textures and add them to your projects. And to finish up I alter the code to add our new model into our scene. I also cover how I created and added a Skybox and SkySphere for our new background.
In the next video, I intend to make a full 3d game, so let me know which of the following you would like me to make: 1. BreakOut 3D 2. Invaders 3D 3. PlantBlitz 3D
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.N64 Programming in C - Episode 7 - Loading OBJ ModelsRetro C Game Programming2025-12-05 | In this video, I will show you how to create Models in Blender then export them into the OBJ (Wavefront) format and then use my OBJ Tool to convert them in to shorts and unsigned shorts. This allows them to be easily compacted into arrays. I explain the OBJ format's key parts that we need and go over some tips on creating low poly models in blender. I then show where you can look at some models, which were used in N64 games, so you can get an idea of the amount of polygons, you should limit yourself to, in your own games. Next I present the code, for loading the LibNDS model data, which my OBJTool converts OBJs into and from there we create a little level scene with some simple animation, using rotations. I also show how I create simple 3D scenes, using images.
In the next video I will look to create a game, let me know which of the following options you would like ShyGuy Invaders ShyGuy BreakOut or Plant Blitz These will be 3D games and use everything I have covered so far.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Programming in C - Creating Fonts, Menus and HUDsRetro C Game Programming2025-11-22 | In this generic video, I will explain how I create my Fontsets for games and to match the ASCII table, using Inkscape and LibreSprite. Next I will explain how to create Title Screen text layouts, using either a textfile or an image, so you know where to place your text. Then I show example code from 4 Games that I created, which demonstrates the above and explains some ways I code HUDs for games. Next I talk about using simple State Machines, to control various program flow, for title screen options and Alertboxes and simple Inputboxes. Next I give an example of mixing 2D and 3D on the DS and how I created a HUD for this type of game. All the code presented in the video can be easily transferred to any console or Desktop game. Hopefully it will show you how you can structure your own programs, to put in to practice any ideas you have about Title Screens, HUDs or Text boxes and InputBoxes. If you have any questions or suggestions, about the video then let me know below, it was a long video and I hope it was of use.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo 3DS Programming in C - Episode 5 - 3D Tutorial 2Retro C Game Programming2025-11-19 | In this video I will show you how to create 3D Textured Cubes, Plains and 3D Sprites, using float arrays for our Mesh data. I will also cover how to correctly organize and sort our 3D Sprites. I also bring back the bottom screen as a 16bit framebuffer, with all its 2d blitting functions and add the ability to draw 32bit 2D on to the top screen above the 3D Layer. You can now load in images as spritesheets, to draw 2d to the top screen. I also provide convenient structs to hold our mesh objects, to make drawing them a breeze. This will allow for more complex models going forward.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.N64 Programming in C - Episode 6 - 3D Tutorial 2Retro C Game Programming2025-11-12 | In this video, I will show you how to create and render 3D textured cubes and depth sorted billboards/sprites, using DisplayLists. Display lists are the fastest way for libDragon to draw 3D mesh/objects. I start off explaining why you should use them, then go over how the 2 cube types are constructed and what the data parts mean. Then present my functions to handle DisplayList creation. Next I explain how the 3D sprites should be sorted, so that their transparent parts, don't corrupt the scene and then step into the code that does this for us. Everything in the video will set us up for using models created in blender, in the next video.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.N64 Programming in C - Episode 5 - 3D IntroductionRetro C Game Programming2025-10-18 | In this video, I go over how to use LibDragon's OpenGL 1.1 implementation. First I quickly touch upon how 3d models are constructed from polygons and some supported types. Then touch on the 3D Co-ordinate system in Opengl, and then some hacks to allow for higher resolution textures. Next I dive into the code a show off the new additions to the previous code in the last video. I present Scene3D, as simple manager for everything 3D as well as Camera to organize various Camera functions. In this video I show how to create a 1st person camera, with strafing, rotating, ect. I then show how to draw 3d plains for floors and 3d Sprites. In the code I construct a little scene, and show how it all works.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.NES Programming in C - VBCC LazyNes Library OverviewRetro C Game Programming2025-10-11 | In this video I properly introduce how to use VBCC and the LazyNES library, I explain why I now use this for my NES Development and why you should to. I show how to make ROMs that feature Horizontal Mirrored Nametables and Vertical Mirrored Nametables. I will show you how to create background and Sprite (OAM) graphics and import them into a VBCC project. Then I go over some of the build blocks of using LazyNES, what lists to use for drawing Tiles, Sprites and changing colour palettes. Then I show the example project, which can be transformed between a horizontal scroller and a vertical scroller, each with their own mini levels. In this demo I show how to easily set tile attributes, and handle any size sprites and their palettes. I would like to thank VBCC coder Dr. Volker Barthelmann and LazyNes coder - Lazycow 2020.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo 3DS Programming In C - Episode 4 - 3D IntroductionRetro C Game Programming2025-10-08 | In this video, I will go over all the things we need to setup, to start creating 3D Scenes and possible games, using 3D Sprites and Plains for floors. First I briefly go over Shaders, then how 3D shapes are created and their parts. Then I go over how to load images and use them as sprite sheets and finally I go over a simple 1st person camera. With all this you should be able to create some fun 3D scenes using 3D Sprites and plains. You may want to brush up on some OpenGL basics, if you want a more in depth description of what matrix are, as I don't go into detail in this video on them. Check out learnopengl.com to get some more information on texture mapping, projection, view and model view matrix. But don't both to look in to the shaders as they are not the same as the 3DS. Some information on meshes could also be useful.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.N64 Programming in C - Episode 4 - SoundsRetro C Game Programming2025-10-01 | In this video I will show you how to use LibDragon to play back wave files. I will use the previous mini Game / Demo - CoinDash as our project, we wish to add sounds to. I should how to organize your audio, in to Music and Sound Effects and play them when needed. I also touch on some issues you may have, when playing sounds on the N64. Note that the sounds in this video, do not reflect how they sound on a REAL NTSC N64. I then show how to add a new music track and play it at the title screen. To find out more about playing and working with audio, check out the awesome N64 Squid site - n64squid.com/homebrew/libdragon
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo Wii Programming in C - Episode 1 - GRRLIB and Codeblocks SetupRetro C Game Programming2025-09-20 | In this video, I will show you how to build GRRLIB which is a library for the Wii that allows 2D and 3D content, to be easily made. I will flip between Windows 10 and Linux Mint to show how to do this for both OS types. Next I will show how to setup a Wii Project in Codeblocks and also use GRRLIB. Then I create 2 test projects and explain how they work, the 2nd project is a quick mini game, to show how to load and load Images. Then finally I explain how to package up your project to run on a real Wii that can use SD Cards.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.VBCC 6502 Compiler - Windows Install and SetupRetro C Game Programming2025-09-17 | In this Video I will show you how to setup the VBCC 6502 Compiler and create 4 project demos for the Commodore Vic20, Commodore 64, BBC Micro Model B and the Nintendo Entertainment System. I show which emulators I use and in the case of the BBC, the extra program you will need to create the virtual floppy discs to load the program onto after it is built. I also mention the additional MSVC140.dll which the BeebEM emulator needs. I build a simple makefile project for each machine, which you can use as a template for your first projects. I intend to create a number of videos for each machines in the future which will end with a complete game on each.
Link to VBCC 6502 compiler http://www.compilers.de/vbcc.html
(Note the BBC and NES projects use a template defined from VIC20 Project) 45:48 - BBC Micro Project start
1:10:37 - NES Project Start
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.N64 Programming in C - Episode 3 - Hardware SpritesRetro C Game Programming2025-09-06 | In this video, I will show you how to use the RDP chip, to draw sprites faster than before. I also explain some of the additional features that can now be used when drawing sprites. Next I show an almost complete game, which I call Coin Dash, this shows how to put everything together into a complete game. I go over how to replace graphics for your own and explain how key parts of code work and their purpose in the game. This could be used as a template to build off of for your own games for the N64.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo 3DS Programming in C - Episode 3 - Audio with CWavLibRetro C Game Programming2025-09-03 | In this tutorial, I will show you how to build and use the CWavLib, for create Music and Sound Effects for your games, on the 3DS. I first show the sites to get the code from, then I show how it can be built in Windows. As this requires using the MYSYS2 console, which is just a normal console window, on Linux and Mac. I then show how to build and use the CWavTool, which has a few gotcha's in the code, that could have you scratching your heads. As it did me, when I first tried to build it. But once it is built it can convert .wav files to bcwav files for use on the 3DS. Next I provide my SoundManager code, to make playing and handling sounds nice and easy. This tutorial builds ontop of the last one, so at the end, we will provide music and sound effects for the Coin Dash game from the last video. To hear the music and sounds, you will need to upload the game on to your real 2DS or 3DS as the emulators I have tested don't seem to play the sounds.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo 3DS Programming in C - Episode 2 - Low Level 2d with Both ScreensRetro C Game Programming2025-08-13 | In this video I will show you how to use both screens as one large screen, for your games, using my Scene2D Blit2Both function. I provide a complete game engine for the Coin Dash game, complete with 2 levels and everything you need, except for sound. I explain what changes have been made to the previous code and what extra functionality has been added. I then show how I build levels using a simple image, and explain how you can add more levels to the game or alter the existing ones. I then show how to add extra players and baddies, and what changes you need to make to add them. After that I go through some of the key parts of the code to explain how you can use it.
If you have any questions about the code let me know below and I will give you some more info if needed.
If you just want to play this on your own 3DS/2DS, then also let me know below and I will look to upload this to Itch.io for you to download and play.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.N64 Programming in C - Episode 2 - Loading 2D AssetsRetro C Game Programming2025-08-09 | In this video, I will replicate the previous video code, but I will use libDragons MakeSprite tool, to convert images for us. And add them to a filesystem folder, which we will include in our N64 ROM. And treat that folder as a virtual filesystem, which we can load images from as we please. I also go over the libDragon way of drawing images, using their graphics commands, as a replacement for the Blitting functions from my last video. Below is a link to the project and all the assets, that are featured in the program. sourceforge.net/projects/retroc-yt-channel/files/N64_Episode_2_Loading_2D_Assets
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.
Just to let you know, that LibDragon updated their compiler, after this video was made, the code is mostly the same you just need to make sure that you include the .aspect_ratio, .pal60, and .overscan setttings now, into the resolution_t struct, when passing to display init, otherwise you code wont work.
resolution_t res;
res.interlaced=INTERLACE_OFF; res.aspect_ratio=0;//1.7777f; res.pal60=false; res.overscan_margin=0; display_init(res,DEPTH_16_BPP,3,GAMMA_NONE,FILTERS_RESAMPLE_ANTIALIAS);N64 Programming in C - Episode 1 - Low Level 2D and Hardware SpecsRetro C Game Programming2025-07-28 | In this video, I will show you how to draw various 16bit Images, using 2D Blitting fuctions. First I briefly go over the hardware inside the N64, according to wikipedia, then I talk a bit about the pixel formats on the N64, before suggesting some programs to use for creating pixel graphics for the N64. Next I show how you can add your own images, using my DS2Tile program, to convert png files to Raw 8bit and 16bit pixel data. These can then be drawn on the N64 using my 2D_Blit function. I also talk a bit about the 2D functions in the Scene2D Module and how you should use them and how they work. Link to the project source code sourceforge.net/projects/retroc-yt-channel/files/N64_Episode_1_2D_FrameBuffers You may also want to check out my DS video on the gfx Converter to get a better understanding of what everything does and how to use it.
Note that on windows the DS2Tile.exe exists, but you will need to build it for Linux or Mac. The project requires the SDL2 library for handling windowing events.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.N64 Libdragon Windows Install and SetupRetro C Game Programming2025-07-24 | In this video, I show you how to set up LibDragon on Windows and how to set up Ares N64 emulator. I will be using MySYS2 as out Linux virtual environment and will show you how to build the LibDragon-preview branch and test that it works from MYSYS2. I then go over how to setup Codeblocks and build one of the examples in there, before swapping out all the code for a program I wrote to demo some quick pixel pushing, using raw 16bit image data. I then show how to create a Template from the project, so you can quickly use it to build new projects from, until my next videos.
If you encounter the install error that I did, when trying to run Ares for the first time then you will need to download the visual studio files from this link. microsoft.com/en-us/download/details.aspx?id=48145
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo 3DS Programming in C - Episode 1 - Tech Specs and 2D Graphics.Retro C Game Programming2025-07-20 | In this video I quickly go over the Tech Specs of the original 3DS and then concentrate on creating 2D Graphics using FrameBuffers and Blitting Functions. I explain how you can create and use 2D images on the 3DS using my DS2Tile program and show how to get them moving and animating quickly on either screen. I also touch on using the ThumbStick or DPAD to move your player around the top screen.
More details about how to use the DS2Tile program can be found in either the GameBoy Advance playlist or the DS Playlist.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo DS Programming in C - Episode 12 - Model AnimationsRetro C Game Programming2025-07-09 | In this video I show how to import a model from the Models Resource site and how to fix it up in Blender, so we can create a list of animation key frames. This is a long video, as I wanted to capture the whole thing from start to finish in one video and to show how to add to any animation frames you have. I show how to fix texture mapped areas and split a model in to parts for working with a skeleton like structure. I then explain the code I have created to handle animating models in this fashion. The code can be used on anything from the DS to Desktop PC using Legacy opengl, with the push and pop matrix commands. The code is quite flexible and can be used with various model animations, with only a few extensions being needed. Link to the code project and assets sourceforge.net/projects/retroc-yt-channel/files/2025_DS_Ep12_Animations
This is my last DS video for now, hopefully it will prove useful in getting nice looking animation sequences into your own DS games.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo DS Programming in C - Episode 11 - Invaders 3DRetro C Game Programming2025-06-21 | In this video, I show how to implement and use everything from the last couple of 3d videos, by creating a simple Invaders game in 3D. I chose a 3rd Person Perspective for the game, to show off a 3rd Person Camera and how to implement one. In this video I first talk about the 3rd Person Camera Code and how to use it. Next up is a quick look at the models used, and how I created the simple Invader Animation in Blender, by exporting 3 variations of the Invader Model, walking. And how I animated the other game objects. Then I walk over the key parts of the code in this game, that I think is useful to know and has not been covered in other videos, like the destructible bases. This is a mostly complete game project, for you to customise and play about with the 3d camera, to get a good feel for 3d on the DS.
If you have found this video useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io
Any issues, questions or suggestions about the video, please let me know below and I will reply next time I am online.Nintendo DS Programming in C - Episode 10 - 3D Tutorial 3 - Using ModelsRetro C Game Programming2025-06-11 | In this video I will give you my Obj Conversion tool and show you how to use it. It allows a textured static 3D Model, to be converted into arrays of data that we can use to redraw it on the DS. I explain some detail about the Wavefront OBJ format, then how the model pieces come together to form the whole. I also explain the DisplayList format used in libnds and provide a Manager to handle working with DisplayLists Then I demo how to create a model in Blender, texture it and export as an OBJ (wavefront) file and then drag and drop it on to the OBJTool to export a text file, which we can use in our code. Next I go over how you can manipulate 3d models and also show how the DS can use Edge Shading, to draw an outline around 3d models. This should give you a good start to using your own 3d models on the DS, with ease.
If you have found this info useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues or questions about the video, please let me know below and I will reply next time I am online.Nintendo DS Programming in C - Episode 9 - 3D Tutorial 2Retro C Game Programming2025-05-28 | In this Video I go over how to create 3D textured cubes, 1st person Camera controlled by the player, Texture Wrapping, Updating textures in real time and converting 8bit to 16bit textures. I also explain how to replace the graphics used for your own, which is the most important thing. Creating 3D levels from 2D level data, by drawing your level as an image first, with sliding collisions. And finally - how to use the realtime clock in the DS, to change the sky colour and brightness of ambient light in the scene. This is a quite long video, but hopefully the demo code will be worth the watch and should be fun to play with on a real DS.
If you have found this information useful, please consider saying thank you by, buying me a coffee at buymeacoffee.com/briangivenh Or buy a game or check out my current games over at Itch.io brig78cx.itch.io Any issues or questions about the video, please let me know below and I will reply next time I am online.