Files

11 KiB
Raw Permalink Blame History

Back to Twitter thread index


title: "People claim assembly is hard. A good counter to that would be showing how to bu" author: "NOTimothyLottes" handle: "@NOTimothyLottes" post_url: "https://x.com/NOTimothyLottes/status/1950860870818439202" post_id: "1950860870818439202" timestamp: "2025-07-31 10:07:31" post_count: 55 reply_count: 37 repost_count: 15 like_count: 312 view_count: 20147

@NOTimothyLottes — People claim assembly is hard. A good counter to that would be showing how to bu

Post 1 (2025-07-31 10:07:31)

People claim assembly is hard. A good counter to that would be showing how to build a x86-64 WIN32 Vulkan based engine from scratch in ASM. Not sure how many people would find that worth watching though.

Post 2 (2025-07-31 10:11:15) — reply to Post 1

If game logic is GPU side there is little point in NOT doing assembly, since the CPU side stuff would always be platform specific.

Post 3 (2025-07-31 10:15:53) — reply to Post 2

ASM provides a good opportunity to show how to convert typical function argument gather into store multicast with linear prefetch for arguments to API calls. Effectively re-arch for cold cache efficiency. And other radically cool stuff that nobody does.

Post 4 (2025-07-31 10:19:15) — reply to Post 1

@NOTimothyLottes I would definitely watch that 🙂

Post 5 (2025-07-31 10:21:03) — reply to Post 1

@NOTimothyLottes definitely interested in anything you put out

Post 6 (2025-07-31 10:26:41) — reply to Post 1

@NOTimothyLottes I would so love that!

Post 7 (2025-07-31 10:30:42) — reply to Post 3

Linux has been all down hill over the years. OSS was fantastic, easy portable Linux system call interface. Also it's easy to do direct X11 with just syscalls. Now with Wayland you are stuck with linking to a garbage library. So might as well do WIN32 for Linux and depend on Wine.

Post 8 (2025-07-31 10:35:00) — reply to Post 7

So Valve standardizing on Proton saves a lot of trouble with porting across ABIs/etc, just do WIN32 as it's way easier to interface with than Wayland and whatever horrible userland audio interface Linux monkeys switch to this era.

Post 9 (2025-07-31 10:39:17) — reply to Post 8

Few probably remember the old Unix before pthreads and ELF. It was better then. Much easier to use fork and shm to do platform audio than today. And that holds for all the vintage workstations (which I did implement back in the day)

Post 10 (2025-07-31 10:44:11) — reply to Post 1

@NOTimothyLottes Please!

Post 11 (2025-07-31 10:53:48) — reply to Post 1

@NOTimothyLottes That'd rock!

Post 12 (2025-07-31 11:48:39) — reply to Post 1

@NOTimothyLottes i agree, if one is ok with 'bottom up' thinking. 99% of my self taught early programming was asm, from demos to music editors (trackers) & it was a joy to work so directly with the machine. im convinced it still underlies my preference/prejudice for straightforward style of code

Post 13 (2025-07-31 12:00:37) — reply to Post 1

@NOTimothyLottes I'm still doing assembly as hobby :) ( 68k assembly, x64 assembly is not as fun to write). I'm interested to see such a tutorial, but please change a bit your font size and coding style :)

Post 14 (2025-07-31 12:21:44) — reply to Post 1

@NOTimothyLottes Would be very interested in it! Also on your Forth inspired languages and the whole mental approach to simplify problem solving with efficiency in mind. Hard to find materials on this, and from what I gather your old projects/thoughts are no longer online.

Post 15 (2025-07-31 12:40:58) — reply to Post 1

@NOTimothyLottes I'm sure it would be invaluable

Post 16 (2025-07-31 12:45:52) — reply to Post 1

@NOTimothyLottes

Post 17 (2025-07-31 12:52:38) — reply to Post 1

@NOTimothyLottes i would!

Post 18 (2025-07-31 13:04:50) — reply to Post 1

@NOTimothyLottes Unrelated, but I would also love a look at your CRTs and how you use them in everyday stuff.

Post 19 (2025-07-31 13:34:45) — reply to Post 1

@NOTimothyLottes I would enjoy watching that.

Post 20 (2025-07-31 13:40:08) — reply to Post 1

@NOTimothyLottes I am interested

Post 21 (2025-07-31 13:45:08) — reply to Post 1

@NOTimothyLottes Given I've only done ASM on Amiga with Devpac, I guess it's probably a limited take, but I enjoyed it and didn't find it harder than say something like C, mostly because the problems I solved back then were 2D domain and the hardware was pretty simple... but not too hard?

Post 22 (2025-07-31 14:24:22) — reply to Post 13

@leonard_coder I think people get confused with my screen gabs because they are on 4k panels and I run low res CRTs (so the bitmap fonts are not small for me). Also I think most of my strange C syntax is to make it more assembly like, so won't all be there in ASM

Post 23 (2025-07-31 14:27:42) — reply to Post 18

@Karyuutensei Showing that setup would be fun. Most of my active CRTs are hooked up to vintage consoles though.

Post 24 (2025-07-31 14:30:00) — reply to Post 21

@SquaredApe ASM could be a pain when mixing with high level languages due to the constant manual register and stack shuffling, but with what I have in mind will factor that out.

Post 25 (2025-07-31 14:33:31) — reply to Post 1

@NOTimothyLottes A lot of people who claim assembly is hard just never did any themselves. In my opinion reading or even programming things in assembly isn't very hard but actually doing some of the optimizations compilers might do seems a lot harder

Post 26 (2025-07-31 14:40:20) — reply to Post 1

@NOTimothyLottes I would, and I think more people would be interested.

Post 27 (2025-07-31 15:04:24) — reply to Post 1

@NOTimothyLottes It was never hard, just tedious.

Post 28 (2025-07-31 15:21:15) — reply to Post 1

@NOTimothyLottes I'm staying maybe for Vulkan, depending on how manageable it gets to me. (Assembly or not)

Post 29 (2025-07-31 15:25:50) — reply to Post 1

@NOTimothyLottes I'd love to watch that.

Post 30 (2025-07-31 15:55:04) — reply to Post 1

@NOTimothyLottes Im learning assembly in my spare time

Post 31 (2025-07-31 16:25:07) — reply to Post 1

@NOTimothyLottes There are a lot of "watch me write this app in assembly" yt videos

Post 32 (2025-07-31 16:25:33) — reply to Post 1

@NOTimothyLottes would watch though

Post 33 (2025-07-31 16:26:16) — reply to Post 1

@NOTimothyLottes Assembly isn't hard, it's tedious. No abstractions, only the raw building blocks of computing. A lot of people just aren't ready or willing to deal with what the reality of an if or string concatenation much less the horrors of what their overly abstract oop code actually is.

Post 34 (2025-07-31 16:48:25) — reply to Post 1

@NOTimothyLottes If you're got a blank canvas go for it. Interfacing to a kernel interrupt is one thing, hooking up to a toolkit ui is another I haven't ever seen, in asm.

That leaves it all to command lines. And meh.

Post 35 (2025-07-31 16:56:08) — reply to Post 1

@NOTimothyLottes Very interested!

Post 36 (2025-07-31 17:24:35) — reply to Post 1

@NOTimothyLottes I've been doing assembly a bit in D with the inline assembler and it's very fun to the point where it's too distracting for me, I don't really get why people are so averse to it generally.

Post 37 (2025-07-31 20:05:38) — reply to Post 1

@NOTimothyLottes Is it already aprils fools again?

Post 38 (2025-07-31 20:32:49) — reply to Post 1

@NOTimothyLottes I have been writing assembly for almost 40 years. The reason we say it is hard, is because it takes more effort to write than higher-level languages like C. Of course its doable, but portability between CPU architecture alone makes assembly only worth doing when warranted.

Post 39 (2025-07-31 22:34:52) — reply to Post 1

@NOTimothyLottes Assembly isn't hard, it's just platform specific, which makes it tedious.

Post 40 (2025-08-01 01:31:29) — reply to Post 1

@NOTimothyLottes I would watch that. So, count me in.

Post 41 (2025-08-01 01:39:01) — reply to Post 1

@NOTimothyLottes VIDEO LINK NOW

Post 42 (2025-08-01 01:53:20) — reply to Post 38

@CUDAHandbook I'm hoping to show how to make it less tedious than C

Post 43 (2025-08-01 01:56:31) — reply to Post 37

@simplex_fx Would it be interesting any other way

Post 44 (2025-08-01 02:06:10) — reply to Post 36

@Stererence Inline assembly in GCC has been a cornerstone of my C code for a long time.

Post 45 (2025-08-01 02:08:33) — reply to Post 34

@konigssohne Look at the older music trackers. All ASM and quite good UIs from a workflow efficiency perspective. They don't emulate a 'windowing system UI' for good reason, it wouldn't ever be as good as what they did do.

Post 46 (2025-08-01 06:17:46) — reply to Post 43

@NOTimothyLottes Worst part of this is not even the asm, but the choice of Vulkan 🤣

Post 47 (2025-08-01 06:38:21) — reply to Post 1

@NOTimothyLottes I know someone who'd be excited @opdroid1234

Post 48 (2025-08-01 08:28:43) — reply to Post 1

@NOTimothyLottes It doesn't really matter what language you call Vulkan from, the pain is all in the API...

Post 49 (2025-08-01 14:02:26) — reply to Post 22

@NOTimothyLottes oh you're on low res CRT? that explain a lot, I was always really surprised by your 3x5 pixels look-alike font :) But yeah Vulkan triangle setup code in assembly is something, I'm in!

Post 50 (2025-08-01 14:43:56) — reply to Post 49

@leonard_coder Oh, yeah, I should disclose, no triangles will be harmed or even used in this project, it's PS-free, or CS-only. All gfx generated the vintage PC way, just on compute GPUs, in human crafted logic instead of fixed function HW.

Post 51 (2025-08-01 14:53:19) — reply to Post 46

@simplex_fx Vulkan for compute is a lot better than say DX12. Because VK has a working pipelinable API construct: VkEvents, where in contrast DX12's pipeline barriers are serializing in the drivers. Also GL has no pipelining. So VK wins by virtue of no other option.

Post 52 (2025-08-01 15:28:08) — reply to Post 50

@NOTimothyLottes it's even better! (at least to me)

Post 53 (2025-08-01 15:51:58) — reply to Post 51

@NOTimothyLottes Highly depends on ones goals.

Post 54 (2025-08-01 17:46:39) — reply to Post 42

@NOTimothyLottes @CUDAHandbook My major problem with programming is the tedium.

GLSL Sandbox is still the best IDE I've ever used...

Live code with instant update, simple automatic version control, cross platform web deployment, basic stripped down math language...

Post 55 (2025-08-01 17:59:16) — reply to Post 54

@Alleycatsphinx @CUDAHandbook I love live systems as "the IDE". This time probably with function keys as a pallet of 'save/restore' points (snapshot the entire project, as one file).