This is an automated email from the ASF dual-hosted git repository. acassis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git
commit 5645b32a352be448974929ba5189f97ed88eb224 Author: Matteo Golin <[email protected]> AuthorDate: Fri Oct 16 22:16:28 2026 -0400 games/NXDoom: re-organize Kconfig menus Re-organize Kconfig options into sub-menus for logical separation between items/better readability in the menu. Signed-off-by: Matteo Golin <[email protected]> --- games/NXDoom/Kconfig | 238 +----------------------- games/NXDoom/Kconfig.graphics | 9 + games/NXDoom/Kconfig.input | 20 ++ games/NXDoom/Kconfig.network | 38 ++++ games/NXDoom/{Kconfig => Kconfig.optimizations} | 167 +---------------- games/NXDoom/Kconfig.sound | 24 +++ 6 files changed, 100 insertions(+), 396 deletions(-) diff --git a/games/NXDoom/Kconfig b/games/NXDoom/Kconfig index bdbf4397e..fcf3cdc69 100644 --- a/games/NXDoom/Kconfig +++ b/games/NXDoom/Kconfig @@ -58,242 +58,14 @@ config GAMES_NXDOOM_ENDOOM ---help--- Show the ENDOOM screen (https://www.doomwiki.org/wiki/ENDOOM). -comment "Networking options" +source "$APPSDIR/games/NXDoom/Kconfig.network" -config GAMES_NXDOOM_NET - bool "Enable network features" - default n - ---help--- - Not ported! Will not work. - -if GAMES_NXDOOM_NET - -config GAMES_NXDOOM_NET_LOGS - bool "Enable network logging" - default n - ---help--- - Enables log information from the network features. - -config GAMES_NXDOOM_NET_MAXPLAYERS - int "Maximum number of players" - default 6 - ---help--- - The maximum number of players, multiplayer/networking. - This is the maximum supported by the networking code; individual games - have their own values for MAXPLAYERS that can be smaller. - ChocolateDOOM default was 8. - -config GAMES_NXDOOM_NET_BACKUPTICS - int "Maximum number of backup tics" - default 32 - ---help--- - The maximum number of backup tics to store locally during a net game. - ChocalateDOOM default was 128. - -config GAMES_NXDOOM_NET_MAXPLAYERNAME - int "Maximum player name length" - default 16 - ---help--- - The maximum number of characters in a player name for netgames. - ChocalateDOOM default was 30. - -endif # GAMES_NXDOOM_NET - -comment "Sound options" - -config GAMES_NXDOOM_SOUND - bool "Enable sound features" - default n - ---help--- - Not ported! Will not work. - -if GAMES_NXDOOM_SOUND - -config GAMES_NXDOOM_RTTTL_MUSIC - bool "RTTTL music" - default n - depends on AUDIOUTILS_RTTTL_C - depends on !DISABLE_PTHREAD - ---help--- - Play music using RTTTL. - -config GAMES_NXDOOM_RTTTL_DEVICE - string "RTTTL device" - default "/dev/pwm0" - depends on GAMES_NXDOOM_RTTTL_MUSIC - ---help--- - Device for RTTTL output (only PWM currently supported). - -endif # GAMES_NXDOOM_SOUND - -comment "Graphics options" - -config GAMES_NXDOOM_FBPATH - string "Framebuffer path" - default "/dev/fb0" - ---help--- - Path to the framebuffer character driver to use for rendering. - -comment "Input options" - -choice # Input method - prompt "NXDoom input method" - default GAMES_NXDOOM_KEYBOARD - - config GAMES_NXDOOM_KEYBOARD - bool "Keyboard" - ---help--- - Use a NuttX keyboard character driver. - -endchoice # Input method - -if GAMES_NXDOOM_KEYBOARD - -config GAMES_NXDOOM_KBDPATH - string "Keyboard device path" - default "/dev/kbd0" - ---help--- - Path to the keyboard device to use as input. - -endif # GAMES_NXDOOM_KEYBOARD +source "$APPSDIR/games/NXDoom/Kconfig.sound" -comment "Optimizations" +source "$APPSDIR/games/NXDoom/Kconfig.graphics" -config GAMES_NXDOOM_MAXVISPLANES - int "Maximum number of visplanes" - default 96 - ---help--- - DOOM allocates a static number of 'visplanes' to use for gameplay. The - original ChocolateDOOM source uses 128 of these. They take a significant - amount of memory, so you may reduce the number. However, too few planes - may cause 'visplane overflow' errors, which is more common in complex - levels. - -config GAMES_NXDOOM_MAXOPENINGS - int "Maximum number of openings" - default 32 - ---help--- - DOOM allocates a static number of 'openings' to use for gameplay. These - are defined as multiples of the SCREENWIDTH (320). The original - ChocolateDOOM source uses 64 as the multiplier. They take a significant - amount of memory, so you may reduce the number. However, too few - openings will cause 'opening overflow' errors. - -config GAMES_NXDOOM_MAXVISSPRITES - int "Maximum number of visible sprites" - default 96 - ---help--- - DOOM allocates a static number of 'vissprites' to use for gameplay. The - original ChocolateDOOM source uses 128. They take a significant amount - of memory, so you may reduce the number. However, too few will cause - overflow errors. - -config GAMES_NXDOOM_MAXDRAWSEGS - int "Maximum number of drawsegs" - default 192 - ---help--- - DOOM allocates a static number of 'drawsegs' to use for gameplay. The - original ChocolateDOOM source uses 256. They take a significant amount of - memory, so you may reduce the number. However, too few will cause - rendering issues (overflow is checked to avoid crashes). - -config GAMES_NXDOOM_STATDUMP_MAX_CAPTURES - int "Maximum statdump capture buffer entries" - default 32 - range 1 1024 - ---help--- - Number of diagnostic playtime-statistics capture slots. - -config GAMES_NXDOOM_RANGECHECK - bool "Perform range checks" - default y - ---help--- - The ChocolateDOOM source includes the ability to optionally exclude - range checking on some array operations. - -config GAMES_NXDOOM_FB_CMAP - bool "Draw through the frame buffer colour map" - default n - ---help--- - DOOM draws into an 8-bit palettised buffer and normally converts - every pixel to the pixel format of the frame buffer as it blits. - A frame buffer that has a colour map of its own can do that - conversion in hardware while it scans the display out, so enable - this to load the DOOM palette into the colour map and blit the - palette indices unconverted. - - This needs a frame buffer that is 8 bits per pixel and supports - FBIOPUT_CMAP, such as an STM32 LTDC layer configured for L8. It - both removes the conversion and halves the amount of data written - per frame, which matters most when the frame buffer is external - memory. - -config GAMES_NXDOOM_FILLSCREEN - bool "Stretch the image to the whole display" - default n - ---help--- - By default the 320x200 image is scaled by the largest whole number - that fits, which leaves a border on a display whose size is not an - exact multiple of it. Enable this to stretch the image over the - entire frame buffer instead, which fills the display at the cost of - a scale factor that is not uniform across the image. - -config GAMES_NXDOOM_ROWSTAGE - bool "Build each output row in a staging buffer" - default n - ---help--- - Expand each row into a staging buffer and copy it to the frame - buffer, rather than writing the frame buffer a pixel at a time. - Every frame buffer access then becomes a burst-friendly copy, which - is worth a lot when the frame buffer is external memory and the - data cache is in write-through mode, and little otherwise. - - Costs a few kilobytes of .bss for the buffer. A row that does not - fit is written directly, as if this were disabled. - -config GAMES_NXDOOM_STATIC_SCRNBUF - bool "Place the render target in .bss" - default n - ---help--- - DOOM renders into a 320x200 buffer that is normally taken from the - heap. On a board whose heap is mostly slow external memory the - allocation lands there, which is close to the worst case: the - renderer draws in vertical columns, so consecutive writes are one - screen width apart and none of them coalesce. - - Enable this to make the buffer a static object instead, so the - linker places it in internal RAM along with the rest of .bss. It - costs 64000 bytes of RAM whether DOOM runs or not, so it is only - worth it when internal RAM is plentiful and the heap is not. - -choice # Memory allocation implementaiton - prompt "Memory allocation implementation" - default GAMES_NXDOOM_ALLOC_ZNATIVE - - config GAMES_NXDOOM_ALLOC_ZNATIVE - bool "z_native" - ---help--- - Use the `z_native` allocator, which relies on NuttX's implementation - of `malloc()` and `free()` to handle memory allocation. - - config GAMES_NXDOOM_ALLOC_ZZONE - bool "z_zone" - ---help--- - Use the `z_zone` allocator, which is DOOM's implementation that acts - on an up-front allocated chunk of memory given by `i_zone_base()`. - -endchoice # Memory allocation implementaiton - -if GAMES_NXDOOM_ALLOC_ZZONE - -config GAMES_NXDOOM_ALLOC_ZZONESTATIC - bool "Use static z_zone" - default n - ---help--- - When using the `z_zone` allocator, use static memory to back the - allocations instead of getting the initial memory from the heap - using `malloc()`. +source "$APPSDIR/games/NXDoom/Kconfig.input" -endif # GAMES_NXDOOM_ALLOC_ZZONE +source "$APPSDIR/games/NXDoom/Kconfig.optimizations" endif # GAMES_NXDOOM diff --git a/games/NXDoom/Kconfig.graphics b/games/NXDoom/Kconfig.graphics new file mode 100644 index 000000000..3fafe91db --- /dev/null +++ b/games/NXDoom/Kconfig.graphics @@ -0,0 +1,9 @@ +menu "Graphics options" + +config GAMES_NXDOOM_FBPATH + string "Framebuffer path" + default "/dev/fb0" + ---help--- + Path to the framebuffer character driver to use for rendering. + +endmenu # Graphics options diff --git a/games/NXDoom/Kconfig.input b/games/NXDoom/Kconfig.input new file mode 100644 index 000000000..98ce5acd9 --- /dev/null +++ b/games/NXDoom/Kconfig.input @@ -0,0 +1,20 @@ +choice # Input method + prompt "NXDoom input method" + default GAMES_NXDOOM_KEYBOARD + + config GAMES_NXDOOM_KEYBOARD + bool "Keyboard" + ---help--- + Use a NuttX keyboard character driver. + +endchoice # Input method + +if GAMES_NXDOOM_KEYBOARD + +config GAMES_NXDOOM_KBDPATH + string "Keyboard device path" + default "/dev/kbd0" + ---help--- + Path to the keyboard device to use as input. + +endif # GAMES_NXDOOM_KEYBOARD diff --git a/games/NXDoom/Kconfig.network b/games/NXDoom/Kconfig.network new file mode 100644 index 000000000..1d1903cbe --- /dev/null +++ b/games/NXDoom/Kconfig.network @@ -0,0 +1,38 @@ +menuconfig GAMES_NXDOOM_NET + bool "Networking features" + default n + ---help--- + Not ported! Will not work. + +if GAMES_NXDOOM_NET + +config GAMES_NXDOOM_NET_LOGS + bool "Enable network logging" + default n + ---help--- + Enables log information from the network features. + +config GAMES_NXDOOM_NET_MAXPLAYERS + int "Maximum number of players" + default 6 + ---help--- + The maximum number of players, multiplayer/networking. + This is the maximum supported by the networking code; individual games + have their own values for MAXPLAYERS that can be smaller. + ChocolateDOOM default was 8. + +config GAMES_NXDOOM_NET_BACKUPTICS + int "Maximum number of backup tics" + default 32 + ---help--- + The maximum number of backup tics to store locally during a net game. + ChocalateDOOM default was 128. + +config GAMES_NXDOOM_NET_MAXPLAYERNAME + int "Maximum player name length" + default 16 + ---help--- + The maximum number of characters in a player name for netgames. + ChocalateDOOM default was 30. + +endif # GAMES_NXDOOM_NET diff --git a/games/NXDoom/Kconfig b/games/NXDoom/Kconfig.optimizations similarity index 59% copy from games/NXDoom/Kconfig copy to games/NXDoom/Kconfig.optimizations index bdbf4397e..5f85c10cb 100644 --- a/games/NXDoom/Kconfig +++ b/games/NXDoom/Kconfig.optimizations @@ -1,163 +1,4 @@ -# -# For a description of the syntax of this configuration file, -# see the file kconfig-language.txt in the NuttX tools repository. -# - -config GAMES_NXDOOM - tristate "NXDoom" - default n - depends on ALLOW_GPL_COMPONENTS - depends on VIDEO_FB - depends on CRYPTO - depends on LIBC_LOCALE - ---help--- - Play DOOM on NuttX! - -if GAMES_NXDOOM - -comment "Program options" - -config GAMES_NXDOOM_PRIORITY - int "Priority" - default 100 - ---help--- - The task priority for the NXDoom application. - -config GAMES_NXDOOM_STACKSIZE - int "Stack size" - default 4096 - ---help--- - The stack size for the NXDoom application. - -comment "General game options" - -choice # Language - prompt "Game language" - default GAMES_NXDOOM_LANG_EN - - config GAMES_NXDOOM_LANG_EN - bool "English" - ---help--- - English language support (original). - - config GAMES_NXDOOM_LANG_FR - bool "French" - ---help--- - French language support. -endchoice # Language - -config GAMES_NXDOOM_PREFDIR - string "DOOM data directory" - default "/data" - ---help--- - Directory where DOOM WAD files are stored. - -config GAMES_NXDOOM_ENDOOM - bool "Show ENDOOM" - default n - ---help--- - Show the ENDOOM screen (https://www.doomwiki.org/wiki/ENDOOM). - -comment "Networking options" - -config GAMES_NXDOOM_NET - bool "Enable network features" - default n - ---help--- - Not ported! Will not work. - -if GAMES_NXDOOM_NET - -config GAMES_NXDOOM_NET_LOGS - bool "Enable network logging" - default n - ---help--- - Enables log information from the network features. - -config GAMES_NXDOOM_NET_MAXPLAYERS - int "Maximum number of players" - default 6 - ---help--- - The maximum number of players, multiplayer/networking. - This is the maximum supported by the networking code; individual games - have their own values for MAXPLAYERS that can be smaller. - ChocolateDOOM default was 8. - -config GAMES_NXDOOM_NET_BACKUPTICS - int "Maximum number of backup tics" - default 32 - ---help--- - The maximum number of backup tics to store locally during a net game. - ChocalateDOOM default was 128. - -config GAMES_NXDOOM_NET_MAXPLAYERNAME - int "Maximum player name length" - default 16 - ---help--- - The maximum number of characters in a player name for netgames. - ChocalateDOOM default was 30. - -endif # GAMES_NXDOOM_NET - -comment "Sound options" - -config GAMES_NXDOOM_SOUND - bool "Enable sound features" - default n - ---help--- - Not ported! Will not work. - -if GAMES_NXDOOM_SOUND - -config GAMES_NXDOOM_RTTTL_MUSIC - bool "RTTTL music" - default n - depends on AUDIOUTILS_RTTTL_C - depends on !DISABLE_PTHREAD - ---help--- - Play music using RTTTL. - -config GAMES_NXDOOM_RTTTL_DEVICE - string "RTTTL device" - default "/dev/pwm0" - depends on GAMES_NXDOOM_RTTTL_MUSIC - ---help--- - Device for RTTTL output (only PWM currently supported). - -endif # GAMES_NXDOOM_SOUND - -comment "Graphics options" - -config GAMES_NXDOOM_FBPATH - string "Framebuffer path" - default "/dev/fb0" - ---help--- - Path to the framebuffer character driver to use for rendering. - -comment "Input options" - -choice # Input method - prompt "NXDoom input method" - default GAMES_NXDOOM_KEYBOARD - - config GAMES_NXDOOM_KEYBOARD - bool "Keyboard" - ---help--- - Use a NuttX keyboard character driver. - -endchoice # Input method - -if GAMES_NXDOOM_KEYBOARD - -config GAMES_NXDOOM_KBDPATH - string "Keyboard device path" - default "/dev/kbd0" - ---help--- - Path to the keyboard device to use as input. - -endif # GAMES_NXDOOM_KEYBOARD - -comment "Optimizations" +menu "Optimizations" config GAMES_NXDOOM_MAXVISPLANES int "Maximum number of visplanes" @@ -266,7 +107,7 @@ config GAMES_NXDOOM_STATIC_SCRNBUF costs 64000 bytes of RAM whether DOOM runs or not, so it is only worth it when internal RAM is plentiful and the heap is not. -choice # Memory allocation implementaiton +choice # Memory allocation implementation prompt "Memory allocation implementation" default GAMES_NXDOOM_ALLOC_ZNATIVE @@ -282,7 +123,7 @@ choice # Memory allocation implementaiton Use the `z_zone` allocator, which is DOOM's implementation that acts on an up-front allocated chunk of memory given by `i_zone_base()`. -endchoice # Memory allocation implementaiton +endchoice # Memory allocation implementation if GAMES_NXDOOM_ALLOC_ZZONE @@ -296,4 +137,4 @@ config GAMES_NXDOOM_ALLOC_ZZONESTATIC endif # GAMES_NXDOOM_ALLOC_ZZONE -endif # GAMES_NXDOOM +endmenu # Optimizations diff --git a/games/NXDoom/Kconfig.sound b/games/NXDoom/Kconfig.sound new file mode 100644 index 000000000..ed71b0dd0 --- /dev/null +++ b/games/NXDoom/Kconfig.sound @@ -0,0 +1,24 @@ +menuconfig GAMES_NXDOOM_SOUND + bool "Sound features" + default n + ---help--- + Not ported! Will not work. + +if GAMES_NXDOOM_SOUND + +config GAMES_NXDOOM_RTTTL_MUSIC + bool "RTTTL music" + default n + depends on AUDIOUTILS_RTTTL_C + depends on !DISABLE_PTHREAD + ---help--- + Play music using RTTTL. + +config GAMES_NXDOOM_RTTTL_DEVICE + string "RTTTL device" + default "/dev/pwm0" + depends on GAMES_NXDOOM_RTTTL_MUSIC + ---help--- + Device for RTTTL output (only PWM currently supported). + +endif # GAMES_NXDOOM_SOUND
