41 Commits

Author SHA1 Message Date
aa72969f36 happy_mask_salesman: unrot 2025-07-25 20:34:19 -05:00
6eda2bba0a examples/cube: unrot 2025-05-15 20:04:34 -05:00
32a294c209 add majora model 2024-09-15 19:16:02 -05:00
7e1c251a22 gen: move to separate repository 2024-09-15 19:14:56 -05:00
ed46a806b7 examples: add happy_mask_salesman 2024-09-11 13:27:28 -05:00
b49f61292f model: enable 4-color and 16-color modes 2024-09-11 12:16:03 -05:00
3aea58f4a9 arm9: use instruction TCM 2024-09-11 08:58:05 -05:00
b7720547c7 ulala: use VTX_16 2024-09-11 06:26:23 -05:00
0fe7105d44 examples: add ulala 2024-09-11 06:20:44 -05:00
e13e4ba987 main: rename to "2d_engine" 2024-09-10 12:43:37 -05:00
62d6a3b2a6 arm7: copy to exclusive internal ram
Before this commit, attempting to start the rom on real NDS/DSi
hardware would result in the display of a solid white screen, with
no apparent evidence of the arm9 program running.

After much testing, I found that this issue was directly caused "main
mmeory" bus contention. Because arm7 and arm9 are both attempting to
read instructions from ewram at the same time, and arm9 bus access
stalls completely.

I also found that this could not be mitigated with giving arm9
priority in EXMEMCNT.

The solution appears to be to relocate arm7 code execution from
main/shared memory to an arm7-internal memory.

After this commit, the examples now function as intended on real
NDS/DSi hardware.
2024-09-10 12:16:19 -05:00
95baf481d7 examples/majora: slight cleanup 2024-09-05 10:45:41 -05:00
6d464a6d9b texture build process rework 2024-09-05 10:39:56 -05:00
140f243ad3 examples: add majora 2024-09-04 22:03:27 -05:00
909e041082 examples: add icosphere 2024-09-04 01:51:23 -05:00
ba8201acee cube: enable backface culling 2024-09-03 23:26:29 -05:00
a6a18162bf cube: add perspective matrix 2024-09-03 23:26:20 -05:00
df31f45fd1 examples: add cube 2024-09-03 22:42:12 -05:00
fb624b986b examples: add texture example 2024-09-03 14:00:37 -05:00
751d15a31c triangle_rotating: add display squareness correction 2024-09-03 03:08:54 -05:00
8a56e6de94 examples: add triangle_rotating example 2024-09-03 02:54:56 -05:00
73428f90b1 examples: add triangle 2024-09-03 02:10:42 -05:00
14c5ecb076 math: add sin and cos 1.12 fixed point functions. 2024-09-03 00:25:47 -05:00
3b7a18bb5d header: correct device capacity / hook addresses 2024-09-02 23:04:13 -05:00
85c41eed53 dump.py: initial 2024-09-02 23:03:14 -05:00
838388caaf patch.py: add secure area crc 2024-09-02 23:02:51 -05:00
c0395c9a7e Makefile: add arm9/arm7 rules 2024-09-02 23:02:38 -05:00
04cfb2ea0e rework build process 2024-09-01 23:01:00 -05:00
3459842128 spinning triangle 2024-09-01 04:34:08 -05:00
76dc15b1c0 3d engine bits 2024-09-01 00:52:18 -05:00
9e6cd43860 rotating bowser 2024-08-31 12:59:45 -05:00
4dd7a033ac palette 2024-08-31 10:28:27 -05:00
9e9764ef38 bg 2024-08-31 07:13:36 -05:00
ec85edbc14 add oam, more bits 2024-08-31 04:20:12 -05:00
810c6975b1 registers: add graphics_engine_bits for DISPCNT 2024-08-31 01:58:07 -05:00
977213d712 add trivial example program 2024-08-30 05:49:23 -05:00
b2e8b3b1ea registers: add struct declarations 2024-08-30 04:26:57 -05:00
46cfc93060 remove DB_ prefix 2024-08-30 04:25:20 -05:00
3e2f9fddc1 base16 offset static assertions 2024-08-30 02:44:20 -05:00
f3b11ed49f add graphics engine header files 2024-08-30 02:39:53 -05:00
710afdfc43 initial 2024-08-30 01:47:21 -05:00