And that's a problem for two reasons. My build environment doesn't like float calculations and gives me errors when I use them. Second, arm9 has no hard float so it's slow. This it especially a problem with 3ds arm9 because, for some reason, it benchmarks much slower than nds arm9. I can't wait to see how slow floats would be if they actually worked.For those that don't know, you should be updating object positioning based on the time it takes to render each frame, and not using any sort of wait/lag commands to adjust game fps. Common practice is to create a render() method to draw everything and an update(deltaTime) method to modify the positioning based on the deltaTime (time since last render in seconds). That way, in your update() method you can put stuff like obj.x += 10*deltaTime; and make it so the object moves 10 pixels per second regardless of lag. Of course, this requires float precision (some use double).
Example of basic game loop: https://github.com/cpp3ds/cpp3ds/blob/master/src/Scene.cpp
I have it working, and I can post an example if I can get the time. The 3ds lib I'm making is based around floating point operations, but I'm trying to position it to be ready for when arm11 is accessible.I can't wait to see how slow floats would be if they actually worked.
What are the contents of the GetSystemTick() function? As we are unable to use any predefined functions I'm assuming you included that in a header file somewhere?For those that don't know, you should be updating object positioning based on the time it takes to render each frame, and not using any sort of wait/lag commands to adjust game fps. Common practice is to create a render() method to draw everything and an update(deltaTime) method to modify the positioning based on the deltaTime (time since last render in seconds). That way, in your update() method you can put stuff like obj.x += 10*deltaTime; and make it so the object moves 10 pixels per second regardless of lag. Of course, this requires float precision (some use double).
Example of basic game loop: https://github.com/cpp3ds/cpp3ds/blob/master/src/Scene.cpp
What are the contents of the GetSystemTick() function? As we are unable to use any predefined functions I'm assuming you included that in a header file somewhere?
What are the contents of the GetSystemTick() function? As we are unable to use any predefined functions I'm assuming you included that in a header file somewhere?
ARM9 doesn't have a Float ULA ? The float are calculated via software :c ?
right, the arm9 has no vfp unit. the arm11 has a vfp unit for each core.
What cpu and arch C flags do I need for compiling code for arm 11?
EDIT: Smealum's ARM 11 Makefile doesn't specify the cpu in the C flags, is just arch needed (-march=armv6)?
How ling will it take for someone to get past Breakout and Tetris and port working trading Pokémon or a port of Mupen64 to the 3DS? That will make me get a 4.5.
#include "main.h"
#include <string.h>
extern char binary_arm11_bin_start[];
extern char binary_arm11_bin_size[];
void c_entry() {
memcpy((void *)0x1FFF4000, binary_arm11_bin_start, (size_t)binary_arm11_bin_size);
main();
}
Line 28: (probably )What cpu and arch C flags do I need for compiling code for arm 11?
EDIT: Smealum's ARM 11 Makefile doesn't specify the cpu in the C flags, is just arch needed (-march=armv6)?
Ta very much love!Line 28: (probably )
https://github.com/insaneKane/3DS_Homebrew_Stuff2/blob/master/build.py
GWLauncher.dat: ROPLauncher.dat
openssl enc -aes-128-cbc -K 580006192800C5F0FBFB04E06A682088 -iv 00000000000000000000000000000000 -in ROPLauncher.dat -out GWLauncher.dat
ROPLauncher.dat: ARM9/arm9.bin
cat lib/p3ds/exp.bin arm9.bin lib/p3ds/pad.bin > ROPLauncher.dat
ARM9/arm9.bin: ARM9/bin/arm11.o
$(MAKE) -C arm9
ARM9/bin/arm11.o: ARM11/arm11.bin
ld -r -b binary -o ARM9/arm11.o ARM11/arm11.bin
ARM11/arm11.bin:
$(MAKE) -C arm11
extern char binary_arm11_bin_start[];
extern char binary_arm11_bin_size[];
memcpy((void *)0x1FFF4000, binary_arm11_bin_start, (size_t)binary_arm11_bin_size);