I was just looking through gba_compression.h, and I noticed that none of the system calls declared the "source" pointer as const. They are just plain void* pointers.
Also, the Vram functions should probably indicate that the destination pointer is a unsigned short pointer ...
Search found 43 matches
- Fri Sep 30, 2011 6:20 am
- Forum: Bug Reports
- Topic: Libgba: gba_compression.h doesn't have const source pointer
- Replies: 3
- Views: 8978
- Sat Jul 30, 2011 5:48 pm
- Forum: Off Topic
- Topic: NO$GBA hates the "push sp" instruction, libgcc uses it
- Replies: 5
- Views: 15239
Re: NO$GBA hates the "push sp" instruction, LibGCC uses it
Development stopped in Feb 2008, he even stopped shipping the product to people who wanted to pay for it, and disappeared from the face of the internet. Rumor has it that Nintendo bought it out and turned it into their debugger, but that's just a rumor.
And if I wanted to hack the EXE to try to fix ...
And if I wanted to hack the EXE to try to fix ...
- Fri Jul 29, 2011 8:02 am
- Forum: Off Topic
- Topic: NO$GBA hates the "push sp" instruction, libgcc uses it
- Replies: 5
- Views: 15239
Re: NO$GBA hates the "push sp" instruction, LibGCC uses it
To clarify, this post concerns the libgcc THUMB library that is included in devkitARM, specifically the file "C:\devkitpro\devkitARM\lib\gcc\arm-eabi\4.5.1\thumb\libgcc.a".
edit: I have just confirmed that the problem also happens in version 4.6.1 as well.
edit: I have just confirmed that the problem also happens in version 4.6.1 as well.
- Fri Jul 29, 2011 7:46 am
- Forum: Off Topic
- Topic: NO$GBA hates the "push sp" instruction, libgcc uses it
- Replies: 5
- Views: 15239
NO$GBA hates the "push sp" instruction, libgcc uses it
It appears that NO$GBA does not emulate the push (stmfd) instruction correctly when SP is one of the registers which is pushed onto the stack.
Unfortunately, libgcc uses this instruction a few times:
_aeabi_ldivmod
_aeabi_uldivmod
_arm_cmpdf2
_arm_cmpsf2
libunwind
For example, in _aeabi_ldivmod ...
Unfortunately, libgcc uses this instruction a few times:
_aeabi_ldivmod
_aeabi_uldivmod
_arm_cmpdf2
_arm_cmpsf2
libunwind
For example, in _aeabi_ldivmod ...
- Tue May 26, 2009 2:43 pm
- Forum: GBA Development
- Topic: Missing parenthesis on register address equates
- Replies: 0
- Views: 6454
Missing parenthesis on register address equates
I was just noticing that gba_timers.h formats them like this:
when it should be like this:
Code: Select all
#define REG_TM0CNT *(vu32*)(REG_BASE + 0x100)
Code: Select all
#define REG_TM0CNT (*(vu32*)(REG_BASE + 0x100))
- Sat May 16, 2009 2:14 am
- Forum: devkitARM
- Topic: Memset and memcpy suck
- Replies: 0
- Views: 3424
Memset and memcpy suck
I don't see any ldmia's or stmia's in the implementations of memset or memcpy. Care to provide a better one?
For reference, here is memcpy's inner loop when doing a word-aligned copy:
8000b58: 6826 ldr r6, [r4, #0]
8000b5a: 601e str r6, [r3, #0]
8000b5c: 6866 ldr r6, [r4, #4]
8000b5e: 605e ...
For reference, here is memcpy's inner loop when doing a word-aligned copy:
8000b58: 6826 ldr r6, [r4, #0]
8000b5a: 601e str r6, [r3, #0]
8000b5c: 6866 ldr r6, [r4, #4]
8000b5e: 605e ...
- Tue May 12, 2009 3:40 am
- Forum: Bug Reports
- Topic: [devkitARM] Objdump's disassembler is broken!
- Replies: 0
- Views: 4026
[devkitARM] Objdump's disassembler is broken!
I'm trying to use objdump to disassemble an ARM binary file.
For some reason, the disassembler does some nasty stuff like this:
30028a0: e1a03c45 asr r3, r5, #24
30028a4: e2588c09 subs r8, r8, #2304 ; 0x900
30028a8: 0001 lsls r1, r0, #0
30028aa: f10054d9 undefined instruction 0xf10054d9
It's ...
For some reason, the disassembler does some nasty stuff like this:
30028a0: e1a03c45 asr r3, r5, #24
30028a4: e2588c09 subs r8, r8, #2304 ; 0x900
30028a8: 0001 lsls r1, r0, #0
30028aa: f10054d9 undefined instruction 0xf10054d9
It's ...
- Mon Mar 16, 2009 7:58 pm
- Forum: DS/DSi Development
- Topic: Get rid of static gl_hidden_globals* glGlob = &glGlobalData;
- Replies: 2
- Views: 4122
Re: Get rid of static gl_hidden_globals* glGlob = &glGlobalData;
Okay...
I am using the source code for the FCS2 DLDI driver, and I'm building it. It doesn't use any of libnds's functions, but includes nds.h anyway, probably so it can have the data types and memory region names.
Inside the ASM code generated are these lines:
.section .data.rel,"aw",%progbits ...
I am using the source code for the FCS2 DLDI driver, and I'm building it. It doesn't use any of libnds's functions, but includes nds.h anyway, probably so it can have the data types and memory region names.
Inside the ASM code generated are these lines:
.section .data.rel,"aw",%progbits ...
- Tue Mar 03, 2009 12:34 am
- Forum: DS/DSi Development
- Topic: Get rid of static gl_hidden_globals* glGlob = &glGlobalData;
- Replies: 2
- Views: 4122
Get rid of static gl_hidden_globals* glGlob = &glGlobalData;
Please get rid of this declaration from videogl.h:
static gl_hidden_globals* glGlob = &glGlobalData;
This is executable code in a header file, which forces the linker to include videogl.a no matter what.
I recommend you replace it with:
#define glGlob (&glGlobalData)
static gl_hidden_globals* glGlob = &glGlobalData;
This is executable code in a header file, which forces the linker to include videogl.a no matter what.
I recommend you replace it with:
#define glGlob (&glGlobalData)
- Sat Feb 21, 2009 1:16 am
- Forum: GBA Development
- Topic: disc_io.h missing?
- Replies: 0
- Views: 6622
disc_io.h missing?
Disc_io.h appears to be missing when I compile a GBA program which uses Libfat.