programming

311 readers
1 users here now

  1. Post about programming, interesting repos, learning to program, etc. Let's try to keep free software posts in the c/libre comm unless the post is about the programming/is to the repo.

  2. Do not doxx yourself by posting a repo that is yours and in any way leads to your personally identifying information. Use reports if necessary to alert mods to a potential doxxing.

  3. Be kind, keep struggle sessions focused on the topic of programming.

founded 2 years ago
MODERATORS
26
27
28
1
Prolog Basics Explained with Pokémon (unplannedobsolescence.com)
submitted 5 months ago* (last edited 5 months ago) by AernaLingus@hexbear.net to c/programming@hexbear.net
 
 

This blog post introduces the basics of Prolog, then motivates and describes a project the author created where they built a Prolog database that allows them to easily make incredibly specific queries about Pokémon (which would be unwieldy in a relational database query language like SQL). For an idea of how powerful it is, here's one which "finds all the Special moves that Tornadus learns which are super-effective against any member of Justin’s team" (the Prolog database was set up to help the author in planning their teams for a Pokémon draft tournament):

?- justin(Target), learns(tornadus, Move), super_effective_move(Move, Target), move_category(Move, special).
   Target = charizardmegay, Move = chillingwater
;  Target = terapagosterastal, Move = focusblast
;  Target = alomomola, Move = grassknot
;  Target = scizor, Move = heatwave
;  Target = scizor, Move = incinerate
;  Target = runerigus, Move = chillingwater
;  Target = runerigus, Move = darkpulse
;  Target = runerigus, Move = grassknot
;  Target = runerigus, Move = icywind
;  Target = screamtail, Move = sludgebomb
;  Target = screamtail, Move = sludgewave
;  Target = trapinch, Move = chillingwater
;  Target = trapinch, Move = grassknot
;  Target = trapinch, Move = icywind
;  false.
?-
29
30
31
1
Programming Sucks (www.stilldrinking.org)
submitted 5 months ago by git@hexbear.net to c/programming@hexbear.net
32
33
 
 

a laptop, then ported the same algorithm to a Commodore 64.

Very cool stuff. In an age of throwing ungodly amounts of compute at LLMs, it's nice to see someone approach a problem with the goal of making it as lightweight as possible. Like the author, the extreme resource limitations are one of the reasons that I love retro tech, since they breed ingenious solutions.

34
35
36
37
38
39
40
41
42
1
CSS is DOOMed! (nielsleenheer.com)
submitted 6 months ago by git@hexbear.net to c/programming@hexbear.net
43
44
45
 
 

Crossposting here because I found the fastmem and floating point arithmetic improvements to be technically quite interesting!

cross-posted from: https://hexbear.net/post/7926055

Two blog posts in less than a month? They're spoiling us!

This is a real humdinger of a progress report, too. High-level summary:

  • (link) Massive performance improvements to the two Rogue Squadron games through a combination of emulation improvements and settings changes, which now allow for it to run at full speed on high-end hardware (and very playable speeds on low-end hardware)
  • (link) Further improvements to the newly-added Triforce arcade emulation (check out the previous blog post for more info about Triforce)
  • (link) Core emulation improvement to an edge case of floating-point arithmetic that fixes a desync in Mario Strikers Charged; now, Dolphin can play online with real Wiis in that game. I think this was my favorite bit in the post—a real team effort with perseverance over many years!
  • (link) Rough timings implemented for Wii NAND management to allow for better performance on that menu
  • (link) The ability to preload entire games into RAM, a long-requested feature. The reason it hadn't been implemented earlier is that it's completely unnecessary with any modern storage, since even a crappy USB stick is faster than disc access on a GC/Wii, but this is apparently helpful for people who have their games stored on a NAS where disks might actually spin down, causing lag spikes.
  • (link) New GUI settings for SDL controller tweaks, specifically SDL hinting (apparently helpful for using Joycons as separate Nunchuck + Wiimote as well as fixing DS4 connectivity issues).
  • (link) Performance patches for a half dozen games, most notably Need For Speed: Hot Pursuit 2 (my beloved) and 007: Quantum of Solace. For those not in the know, there's a relatively new feature in Dolphin which allows for games to be patched on-the-fly to fix issues like uncapped framerates and complex idle loops that can bring the emulator to its knees even though it can otherwise run the games fine.

Aside from the interesting technical details, reading these progress reports always gives me the warm fuzzies. I love hearing about how all these different people come together and use their unique talents to improve emulation for everyone.

46
47
48
49
50
view more: ‹ prev next ›