Repository navigation
games/NXDoom: Add an option to disable the screen wipe. - #3870
Closed
wwlapaki310 wants to merge 1 commit into
Closed
wwlapaki310 wants to merge 1 commit into
wwlapaki310 wants to merge 1 commit into
Conversation
The melt effect that DOOM shows whenever the game state changes allocates two more 64000 byte buffers while it runs. On a board with little RAM, such as the Spresense with 1.5 MB, that allocation fails and the game stops with: z_malloc: failed on allocation of 64000 bytes Add GAMES_NXDOOM_NOWIPE to cut straight to the new screen instead of melting the old one away. The option is disabled by default, so existing configurations are not affected. Tested on a Spresense: with the option the game runs past the point where it stopped before. Assisted-by: Claude:claude-sonnet-5-5 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: satoru akita <wwlap24@gmail.com>
This was referenced Oct 18, 2026
Author
|
Closing in favour of #3860, which adds the same |
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.
Summary
Add
CONFIG_GAMES_NXDOOM_NOWIPE, an option that cuts straight to the new screen instead of melting the old one away.DOOM melts the old screen away whenever the game state changes. That takes two more 64000 byte buffers while it runs. On a board with little RAM, such as the Spresense with 1.5 MB, the allocation fails and the game stops:
With the option on, the wipe is skipped before its buffers are allocated. The option is off by default.
This is one of three pull requests that let NXDoom run on the Spresense: the nuttx configuration and documentation (apache/nuttx#20774) and the serial terminal keys (#3869). The nuttx one shows how the three fit together, so it may help to read it first. The two nuttx-apps pull requests are independent of each other and should be merged first.
Impact
#ifndef CONFIG_GAMES_NXDOOM_NOWIPE.Testing
Result: with the option on, the game no longer stops at the screen change and runs for more than two minutes.
Host: Windows 11, build in a Docker container (Ubuntu 24.04),
arm-none-eabi-gcc13.2.1.Board: Spresense main board with the extension board and an ILI9340 display,
spresense:nxdoomfrom the nuttx pull request, with a one-level IWAD. To try it before that is merged, use thenxdoom-spresensebranch of https://github.com/wwlapaki310/nuttx together with the two nuttx-apps pull requests.Before, the game stopped after about a minute:
After, a new game was started and played, and the game ran for more than two minutes without stopping:
PR verification Self-Check