this post was submitted on 17 Jun 2023
12 points (100.0% liked)

Programming Horror

22 readers
1 users here now

Welcome to Programming Horror!

This is a place to share strange or terrible code you come across.

For more general memes about programming there's also Programmer Humor.

Looking for mods. If youre interested in moderating the community feel free to dm @Ategon@programming.dev

Rules

Credits

founded 1 year ago
MODERATORS
 
top 5 comments
sorted by: hot top controversial new old
[–] Torty 2 points 1 year ago (1 children)

I can't tell who you hate more. Yourself or your teammates lol.

[–] stratts@programming.dev 1 points 1 year ago

You can't beat yourself up too much over code you wrote in the past, especially if you're just starting and you learn from your mistakes.

I'm the only dev at my company, so most of the code was written by an external dev a while back. They very occasionally do some work for us still and their code written today is just a shitty as it was 4 years ago.

[–] fogetaboutit@programming.dev 0 points 1 year ago (1 children)

Context please, what is this bit shifting shenanigans that im witnessing right now?

[–] impossible_silver@programming.dev 3 points 1 year ago (1 children)

PA_ prefixed functions seem to be from palibds, which is a Nintendo DS homebrew development library.

DS being a constrained device it is logical that whoever wrote this code packed multiple byte-sized info into a bigger 16-bit short and using bit shifting to extract a specific byte

[–] stratts@programming.dev 3 points 1 year ago

You're right, this is some homebrew I wrote for my DS when I was in highschool.

But it was nothing as clever or logical as that! I think I had read somewhere that floats were really expensive on the DS ARM9 CPU, as was division (?). So to allow fractional values for object positions, etc, you would store them in an integer at 256x their true value, then shift it by 8 to the right to 'divide' by 256 and get the proper value back.

Not sure whether this was actually true, but either way this would've been completely cancelled out by calling that 'lowestXInObj' function 20 times per frame - it loops through every object in the scene!

load more comments
view more: next ›