Software renderer implementation - #429
Draft
iProgramMC wants to merge 173 commits into
Draft
iProgramMC wants to merge 173 commits into
iProgramMC wants to merge 173 commits into
Conversation
fix build
Small things
Fix software only builds after recent makefile change
This allows the software renderer to work correctly on big-endian systems like PowerPC Macs. Note that the framebuffer will be byteswapped from little-endian mode.
This fixes Muffet's teapot in her right hand rotating around the wrong point.
…sourceWidth/Height and targetWidth/Height
… the SDL video mode." This reverts commit 5e43ec9.
…into sw-renderer
This allows for dithering in 16 and 8 bit mode too.
…ecial case and stuff)
These are completely unnecessary (srcCalcSrcAlpha always returned alpha) And I don't see myself implementing any other blend modes anytime soon.
…ng of frame Otherwise code might use a stale pointer
…s a placeholder In Deltarune Ch3, drawSpritePos seems to be consistently used to draw Tenna. Luckily, for him specifically, we don't need to do too much. Later, somebody would do actual UV mapped rendering. I won't do it here.
Un1q32
force-pushed
the
sw-renderer
branch
2 times, most recently
from
September 21, 2026 23:32
16c6584 to
d495b1d
Compare
Collaborator
|
IMO this is good enough to merge right away, even if not all features are implemented. I believe undertale is perfect, and deltarune only has a few minor issues. |
Collaborator
|
Merging now means that new vtable functions could be ported to the software renderer as they're designed in PRs for example, instead of after the fact. iProgram tends to go on long hiatuses in between working on this, and merging means changes to the renderer don't accumulate tech dept as much, since the person writing the pr is responsible for making their change work on the software renderer, rather than iProgram or one of the maintainers later on after it's merged. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Continuation of #128
Still a draft because I'm not completely happy with the implementation. However, UNDERTALE mostly works, and I've even been able to play through some of DELTARUNE as well, including the final boss fight of Chapter 3.
(Note: The "stars" attack of the Knight in Deltarune Ch.3 is only possible because I don't implement masking properly. It's actually not playable in Butterscotch at all because a graphics function isn't implemented)