Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nds: add BlocksDS port #359

Merged
merged 13 commits into from
Dec 7, 2023
Merged

nds: add BlocksDS port #359

merged 13 commits into from
Dec 7, 2023

Conversation

asiekierka
Copy link
Contributor

The main difference over the previous toolchain is ~120K smaller binaries, faster memcpy/memset, and the many bugfixes accumulated in the last few weeks. However, even though it appears to be stable (perhaps even better) in testing, as BlocksDS's future is less certain - think "Lindy effect" - I think it's worth keeping it as a separate port for the time being.

@asiekierka
Copy link
Contributor Author

asiekierka commented Oct 18, 2023

Updated, but temporarily blocked by blocksds/sdk#90 , as well as more access() issues (can't descend into root directory). Will get them fixed for BlocksDS 0.9.1, probably.

@asiekierka
Copy link
Contributor Author

The final issue with this port that I'm aware of is solved by blocksds/libnds#45

Makefile Outdated
# As does BlocksDS, currently
#
ifeq (${BUILD_NDS_BLOCKSDS},1)
CFLAGS += -Wno-strict-prototypes -Wno-pedantic -Wno-undef -Wno-declaration-after-statement
Copy link
Owner

@AliceLR AliceLR Dec 6, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checking on the differences between the NDS hack and the BlocksDS hack here:

  • -Wno-undef - does using -isystem for the SDK includes in the BlocksDS Makefile fragment fix the need for this?
  • -Wno-declaration-after-statement - what is this for? If it's in MZX it'd be better to fix the affected code, since MSVC and old compilers don't like declarations after statements.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re -Wno-undef: Apparently, this has been fixed in a later BlocksDS version altogether.

Re -Wno-declaration-after-statement:

  CC       src/counter.c
In file included from /home/asie/toolchains/blocksds/sdk/libs/libnds/include/nds/arm9/boxtest.h:19,
                 from /home/asie/toolchains/blocksds/sdk/libs/libnds/include/nds.h:134,
                 from src/compat.h:91,
                 from src/board.h:23,
                 from src/counter.c:32:
/home/asie/toolchains/blocksds/sdk/libs/libnds/include/nds/arm9/videoGL.h: In function 'glCallList':
/home/asie/toolchains/blocksds/sdk/libs/libnds/include/nds/arm9/videoGL.h:856:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
  856 |     u32 count = *list++;
      |     ^~~

It's in BlocksDS. There's an open issue to fix all such warnings, but it's a lot of work. I'll probably fast-track this one, but only for the next release: blocksds/sdk#4

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, okay then.

@asiekierka asiekierka changed the title nds: experimental BlocksDS port nds: add BlocksDS port Dec 6, 2023
@AliceLR AliceLR merged commit e62e3b8 into AliceLR:master Dec 7, 2023
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants