You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Greg Ewing is the author of Pyrex, the extension language on which dspython bases its libnds wrapper.
Preparing the environment
The following steps detail how to setup a development environment to rebuild dspython. All of the following assumes you are using a Windows O.S., but I got reports of people successfully building the project under various Linux flavors.
Please note that if you just want to write scripts with dspython and you don't want to develop dspython itself (e.g. adding new wrappers, supporting more libraries, etc...) then you should stop reading here.
Still here? Well.
Devkitpro
Install DevkitPro's DevkitARM: this is a port of gcc compiler for the ARM CPU used in Nintendo DS and Gameboy Advance. An automated installer is available.
this will use distutils facilities to create a nice installer in dist/; install pyrex with such installer.
(note: I have experienced weird random crashes of dspython if cython is used instead of pyrex, but never investigated them - long story short, just use pyrex at least on your first try)
Actual building process
Execute all the following steps in the console environment created by
msys_pyds.bat file.
Compile zlib
cd zlib-1.2.3
make
Compile libpython
cd slp-250
sh configure --host=arm-eabi --config-cache
make libpython2.5.a
During make, on some machines pgen has been reported to crash. Just ignore it.
Alter devkitarm linker settings
We need to alter linker settings so that Python gets enough stack to run on DS.
Edit $(DEVKITARM)\arm-eabi\lib\ds_arm9.mem and change:
ewram : ORIGIN = 0x02000000, LENGTH = 4M - 4k
to
ewram : ORIGIN = 0x02000000, LENGTH = 4M - 260k
Edit $(DEVKITARM)\arm-eabi\lib\ds_arm9.ld and change:
__sp_usr = __sp_irq - 0x100;
to
__sp_usr = __ewram_end + 0x40000;
Compile libnds wrappers
cd wrap_libnds/
make
Compile NDSPython
cd NDSPython
make
Create a NDSPython running environment
At this point, you should copy in the root of your homebrew storage:
the NDSPython.nds file produced through the build process;
the python directory you can find in NDSPython/nitrofiles.
Now, place a main.py file in the python directory, and run NDSPython.nds.
TODO
Document how to put files in a nitrofs, so that the .nds file can be run in an emulator.
About
A port of the Python programming language for Nintendo DS