Handmade Hero»Episode Guide
Debugging Multi-tile Import
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:01Welcome and set the stage for the day
🗩
0:01Welcome and set the stage for the day
🗩
0:01Welcome and set the stage for the day
🗩
0:17Set up to try cdbg1 and codeclap2 debuggers
🗩
0:17Set up to try cdbg1 and codeclap2 debuggers
🗩
0:17Set up to try cdbg1 and codeclap2 debuggers
🗩
1:43A few words on the need for better ways to fund open-source tool development
🗩
1:43A few words on the need for better ways to fund open-source tool development
🗩
1:43A few words on the need for better ways to fund open-source tool development
🗩
6:11On charging for your work, and possible ways to do this
🗩
6:11On charging for your work, and possible ways to do this
🗩
6:11On charging for your work, and possible ways to do this
🗩
8:06A few preliminary words on cdbg and codeclap
🗩
8:06A few preliminary words on cdbg and codeclap
🗩
8:06A few preliminary words on cdbg and codeclap
🗩
11:07Launch cdbg, with initial thoughts on its user interface
🗹
11:07Launch cdbg, with initial thoughts on its user interface
🗹
11:07Launch cdbg, with initial thoughts on its user interface
🗹
13:29Step through optimised win32_handmade.exe, noting that we don't expect parsing of this binary to work
🗹
13:29Step through optimised win32_handmade.exe, noting that we don't expect parsing of this binary to work
🗹
13:29Step through optimised win32_handmade.exe, noting that we don't expect parsing of this binary to work
🗹
15:01Step through debug win32_handmade.exe, noting that we're missing disassembly, but that it feels way snappier than the debugger we're used to
🗹
15:01Step through debug win32_handmade.exe, noting that we're missing disassembly, but that it feels way snappier than the debugger we're used to
🗹
15:01Step through debug win32_handmade.exe, noting that we're missing disassembly, but that it feels way snappier than the debugger we're used to
🗹
18:59Scour cdbg's list of keys for "set breakpoint by name"
🗹
18:59Scour cdbg's list of keys for "set breakpoint by name"
🗹
18:59Scour cdbg's list of keys for "set breakpoint by name"
🗹
21:48Set up to take a look at advanced features of cdbg, including linked list viewing
🗹
21:48Set up to take a look at advanced features of cdbg, including linked list viewing
🗹
21:48Set up to take a look at advanced features of cdbg, including linked list viewing
🗹
22:50Try out cdbg's fbreak "set breakpoint by function name" command on AcquireAssetMemory()
🗹
22:50Try out cdbg's fbreak "set breakpoint by function name" command on AcquireAssetMemory()
🗹
22:50Try out cdbg's fbreak "set breakpoint by function name" command on AcquireAssetMemory()
🗹
25:57List breakpoints in cdbg, to see that our AcquireAssetMemory() breakpoint is absent
🗹
25:57List breakpoints in cdbg, to see that our AcquireAssetMemory() breakpoint is absent
🗹
25:57List breakpoints in cdbg, to see that our AcquireAssetMemory() breakpoint is absent
🗹
26:45Continue to step through AcquireAssetMemory(), and try out cdbg's advanced lta "linked-list to array" command
🗹
26:45Continue to step through AcquireAssetMemory(), and try out cdbg's advanced lta "linked-list to array" command
🗹
26:45Continue to step through AcquireAssetMemory(), and try out cdbg's advanced lta "linked-list to array" command
🗹
29:11Try out cdbg's advance image "display image" command
🗹
29:11Try out cdbg's advance image "display image" command
🗹
29:11Try out cdbg's advance image "display image" command
🗹
31:16Final notes on our desired functionality of cdbg so we can switch: working break point list, F9 to toggle breakpoints, and disassembly
🗹
31:16Final notes on our desired functionality of cdbg so we can switch: working break point list, F9 to toggle breakpoints, and disassembly
🗹
31:16Final notes on our desired functionality of cdbg so we can switch: working break point list, F9 to toggle breakpoints, and disassembly
🗹
32:37Launch codeclap, with initial thoughts on its user interface, admiring the inline display of variable values
🗹
32:37Launch codeclap, with initial thoughts on its user interface, admiring the inline display of variable values
🗹
32:37Launch codeclap, with initial thoughts on its user interface, admiring the inline display of variable values
🗹
35:10Step in to Win32LoadXInput() in codeclap, triggering the appearance of the floating "Output" pane, and admiring the Expressions pane's command completion
🗹
35:10Step in to Win32LoadXInput() in codeclap, triggering the appearance of the floating "Output" pane, and admiring the Expressions pane's command completion
🗹
35:10Step in to Win32LoadXInput() in codeclap, triggering the appearance of the floating "Output" pane, and admiring the Expressions pane's command completion
🗹
37:16Continue to step lines in codeclap, finding that it's started to struggle with something
🗹
37:16Continue to step lines in codeclap, finding that it's started to struggle with something
🗹
37:16Continue to step lines in codeclap, finding that it's started to struggle with something
🗹
38:39Note nice features of codeclap, and our desired increase of usability and reliability
🗹
38:39Note nice features of codeclap, and our desired increase of usability and reliability
🗹
38:39Note nice features of codeclap, and our desired increase of usability and reliability
🗹
39:16Try to check out codeclap's "Mixed" source and assembly view, which unfortunately crashes
🗹
39:16Try to check out codeclap's "Mixed" source and assembly view, which unfortunately crashes
🗹
39:16Try to check out codeclap's "Mixed" source and assembly view, which unfortunately crashes
🗹
40:46Final optimistic thoughts and thanks to the developers of both cdbg (by Nick Slivca) and codeclap (by spx)
🗹
40:46Final optimistic thoughts and thanks to the developers of both cdbg (by Nick Slivca) and codeclap (by spx)
🗹
40:46Final optimistic thoughts and thanks to the developers of both cdbg (by Nick Slivca) and codeclap (by spx)
🗹
43:09Run the game and set up for today's work on the asset system
🏃
43:09Run the game and set up for today's work on the asset system
🏃
43:09Run the game and set up for today's work on the asset system
🏃
46:10Rename our art asset files using a new set of tags
🗹
46:10Rename our art asset files using a new set of tags
🗹
46:10Rename our art asset files using a new set of tags
🗹
57:21Consider splitting the character heads and bodies into separate files
🗩
57:21Consider splitting the character heads and bodies into separate files
🗩
57:21Consider splitting the character heads and bodies into separate files
🗩
1:01:23Organise our orphan character asset files into a "pending" directory, and continue to tag our remaining art asset files
🗹
1:01:23Organise our orphan character asset files into a "pending" directory, and continue to tag our remaining art asset files
🗹
1:01:23Organise our orphan character asset files into a "pending" directory, and continue to tag our remaining art asset files
🗹
1:04:43Enable ParsePieces() to parse out and tag both the body and head tiles of character asset files
1:04:43Enable ParsePieces() to parse out and tag both the body and head tiles of character asset files
1:04:43Enable ParsePieces() to parse out and tag both the body and head tiles of character asset files
1:12:00Add our new tags to the asset_tag_id enum and NameTags array
1:12:00Add our new tags to the asset_tag_id enum and NameTags array
1:12:00Add our new tags to the asset_tag_id enum and NameTags array
1:18:44Run the game to find that we are a large, misaligned cat, and that our multi-tile import is a bit buggy
🏃
1:18:44Run the game to find that we are a large, misaligned cat, and that our multi-tile import is a bit buggy
🏃
1:18:44Run the game to find that we are a large, misaligned cat, and that our multi-tile import is a bit buggy
🏃
1:21:05Check out our local.hha in TabView to see that all looks fine
🗹
1:21:05Check out our local.hha in TabView to see that all looks fine
🗹
1:21:05Check out our local.hha in TabView to see that all looks fine
🗹
1:23:20Refamiliarise ourselves with ProcessMultiTileImport()
📖
1:23:20Refamiliarise ourselves with ProcessMultiTileImport()
📖
1:23:20Refamiliarise ourselves with ProcessMultiTileImport()
📖
1:29:02Scrutinise ExtractImage() for any obvious bugs
📖
1:29:02Scrutinise ExtractImage() for any obvious bugs
📖
1:29:02Scrutinise ExtractImage() for any obvious bugs
📖
1:31:26Scrutinise Downsample() for any obvious bugs
📖
1:31:26Scrutinise Downsample() for any obvious bugs
📖
1:31:26Scrutinise Downsample() for any obvious bugs
📖
1:34:28Fix Downsample() to correctly handle images with an odd number of rows
1:34:28Fix Downsample() to correctly handle images with an odd number of rows
1:34:28Fix Downsample() to correctly handle images with an odd number of rows
1:36:23“Don't forget to like and subscribe”α
🗩
1:36:23“Don't forget to like and subscribe”α
🗩
1:36:23“Don't forget to like and subscribe”α
🗩
1:36:26Run the game to find that we have fixed the striding bug, but that we remain to be a large, misaligned cat
🏃
1:36:26Run the game to find that we have fixed the striding bug, but that we remain to be a large, misaligned cat
🏃
1:36:26Run the game to find that we have fixed the striding bug, but that we remain to be a large, misaligned cat
🏃
1:39:51Q&A
🗩
1:39:51Q&A
🗩
1:39:51Q&A
🗩
1:40:54vateferfout Q: I don't really understand the size bug. Don't you ask for a specific size when you push the hero's sprites?
🗪
1:40:54vateferfout Q: I don't really understand the size bug. Don't you ask for a specific size when you push the hero's sprites?
🗪
1:40:54vateferfout Q: I don't really understand the size bug. Don't you ask for a specific size when you push the hero's sprites?
🗪
1:42:46macielda Q: I am having trouble understanding the difference between tag and basic type
🗪
1:42:46macielda Q: I am having trouble understanding the difference between tag and basic type
🗪
1:42:46macielda Q: I am having trouble understanding the difference between tag and basic type
🗪
1:43:58vtlmks Q: Just wanted to thank you for the link to the "Pseudo band-limited pixel art filter".3 It was exactly what I needed
🗪
1:43:58vtlmks Q: Just wanted to thank you for the link to the "Pseudo band-limited pixel art filter".3 It was exactly what I needed
🗪
1:43:58vtlmks Q: Just wanted to thank you for the link to the "Pseudo band-limited pixel art filter".3 It was exactly what I needed
🗪
1:44:11pulp_user Q: When I issue an OpenGL / DirectX call (creating a vertex-buffer, for example) that takes a while to complete, will the CPU be busy while the GPU makes it happen, or will the thread be suspended, so that Windows can schedule something else?
🗪
1:44:11pulp_user Q: When I issue an OpenGL / DirectX call (creating a vertex-buffer, for example) that takes a while to complete, will the CPU be busy while the GPU makes it happen, or will the thread be suspended, so that Windows can schedule something else?
🗪
1:44:11pulp_user Q: When I issue an OpenGL / DirectX call (creating a vertex-buffer, for example) that takes a while to complete, will the CPU be busy while the GPU makes it happen, or will the thread be suspended, so that Windows can schedule something else?
🗪
1:45:41vateferfout Q: If I understand correctly, since the sprites are clamped depending on the space that is actually occupied, doesn't it mean you'll need to adapt the sprite dimensions to the sprite that is being drawn?
🗪
1:45:41vateferfout Q: If I understand correctly, since the sprites are clamped depending on the space that is actually occupied, doesn't it mean you'll need to adapt the sprite dimensions to the sprite that is being drawn?
🗪
1:45:41vateferfout Q: If I understand correctly, since the sprites are clamped depending on the space that is actually occupied, doesn't it mean you'll need to adapt the sprite dimensions to the sprite that is being drawn?
🗪
1:46:01hayai Q: Can you pet the cats?
🗪
1:46:01hayai Q: Can you pet the cats?
🗪
1:46:01hayai Q: Can you pet the cats?
🗪
1:46:090lpbm Q: Why not make the hha file generator also load the files and generate the tags?
🗪
1:46:090lpbm Q: Why not make the hha file generator also load the files and generate the tags?
🗪
1:46:090lpbm Q: Why not make the hha file generator also load the files and generate the tags?
🗪
1:46:38nordicplayer Q: OpenGL or Vulkan, for a complete beginner?
🗪
1:46:38nordicplayer Q: OpenGL or Vulkan, for a complete beginner?
🗪
1:46:38nordicplayer Q: OpenGL or Vulkan, for a complete beginner?
🗪
1:46:53Jim0_o Q: So what would it look like if you activated the snake code now, and made them cats? (Just seeing cats walk around randomly in the rooms will be so cool, just adding random stop_and_lick_your_paw calls and you basically have created life). ((Or I should just deal with having to wait for tomorrow.))
🗪
1:46:53Jim0_o Q: So what would it look like if you activated the snake code now, and made them cats? (Just seeing cats walk around randomly in the rooms will be so cool, just adding random stop_and_lick_your_paw calls and you basically have created life). ((Or I should just deal with having to wait for tomorrow.))
🗪
1:46:53Jim0_o Q: So what would it look like if you activated the snake code now, and made them cats? (Just seeing cats walk around randomly in the rooms will be so cool, just adding random stop_and_lick_your_paw calls and you basically have created life). ((Or I should just deal with having to wait for tomorrow.))
🗪
1:47:25garryjohanson Q: Advice on logging events or core dumping in case game crashes on a customer's machine? I guess the question is how to prepare for helping customers who had the game crashed
🗪
1:47:25garryjohanson Q: Advice on logging events or core dumping in case game crashes on a customer's machine? I guess the question is how to prepare for helping customers who had the game crashed
🗪
1:47:25garryjohanson Q: Advice on logging events or core dumping in case game crashes on a customer's machine? I guess the question is how to prepare for helping customers who had the game crashed
🗪
1:48:05vateferfout Q: I mean that the idle body sprite will be smaller (in pixels) than the dodge left, for example, so if the sprite dimensions you send to the graphics card are the same, won't the dodge left sprite be squashed?
🗪
1:48:05vateferfout Q: I mean that the idle body sprite will be smaller (in pixels) than the dodge left, for example, so if the sprite dimensions you send to the graphics card are the same, won't the dodge left sprite be squashed?
🗪
1:48:05vateferfout Q: I mean that the idle body sprite will be smaller (in pixels) than the dodge left, for example, so if the sprite dimensions you send to the graphics card are the same, won't the dodge left sprite be squashed?
🗪
1:49:13guybru5h_vi Q: What's wrong with Vulkan?
🗪
1:49:13guybru5h_vi Q: What's wrong with Vulkan?
🗪
1:49:13guybru5h_vi Q: What's wrong with Vulkan?
🗪
1:49:22xspe Q: Thank you, Casey, for giving both debuggers a try even though codeclap failed really bad this time. I will give my best to improve windows support, but I don't know about the "VS as a standard" thing"
🗪
1:49:22xspe Q: Thank you, Casey, for giving both debuggers a try even though codeclap failed really bad this time. I will give my best to improve windows support, but I don't know about the "VS as a standard" thing"
🗪
1:49:22xspe Q: Thank you, Casey, for giving both debuggers a try even though codeclap failed really bad this time. I will give my best to improve windows support, but I don't know about the "VS as a standard" thing"
🗪
1:50:05macielda Q: How would you approach a bitmap that needs to be generated frequently on-the-fly? Would you add it to your asset system and reference it through your asset system? Or would you skip the asset system in that case?
🗪
1:50:05macielda Q: How would you approach a bitmap that needs to be generated frequently on-the-fly? Would you add it to your asset system and reference it through your asset system? Or would you skip the asset system in that case?
🗪
1:50:05macielda Q: How would you approach a bitmap that needs to be generated frequently on-the-fly? Would you add it to your asset system and reference it through your asset system? Or would you skip the asset system in that case?
🗪
1:50:38nordicplayer Q: And between DirectX and OpenGL, which one would you recommend for a beginner?
🗪
1:50:38nordicplayer Q: And between DirectX and OpenGL, which one would you recommend for a beginner?
🗪
1:50:38nordicplayer Q: And between DirectX and OpenGL, which one would you recommend for a beginner?
🗪
1:50:47remedialman Q: (Super off-topic) Can you offer me an explanation as to why there have never been PS/2 based PC controllers since it's a specific input port that sends CPU interrupts?
🗪
1:50:47remedialman Q: (Super off-topic) Can you offer me an explanation as to why there have never been PS/2 based PC controllers since it's a specific input port that sends CPU interrupts?
🗪
1:50:47remedialman Q: (Super off-topic) Can you offer me an explanation as to why there have never been PS/2 based PC controllers since it's a specific input port that sends CPU interrupts?
🗪
1:52:07xxthebigfoxx Q: How long does the VoD of an episode usually take to come up online?
🗪
1:52:07xxthebigfoxx Q: How long does the VoD of an episode usually take to come up online?
🗪
1:52:07xxthebigfoxx Q: How long does the VoD of an episode usually take to come up online?
🗪
1:52:55noxnode Q: How do you like the progress of Handmade Hero so far?
🗪
1:52:55noxnode Q: How do you like the progress of Handmade Hero so far?
🗪
1:52:55noxnode Q: How do you like the progress of Handmade Hero so far?
🗪
1:54:53Wrap up the stream
🗩
1:54:53Wrap up the stream
🗩
1:54:53Wrap up the stream
🗩