Getting error with debugf function on emu.c
Closed this issue ยท 10 comments
Libdragon is running properly, but I'm getting an undeclared function on emu.c:
Building mvs64
[CC] emu.c
emu.c: In function 'cpu_trace':
emu.c:22:2: error: implicit declaration of function 'debugf' [-Werror=implicit-function-declaration]
22 | debugf("trace: %06x %-30s", pc, inst);
| ^~~~~~
cc1: all warnings being treated as errors
n64rasky.mk:73: recipe for target 'build/mvs64/emu.o' failed
make: *** [build/mvs64/emu.o] Error 1
Process exited with code 2
make: *** [Makefile:18: mvs64] Error 2
Thanks, I forget I was using a version of libdragon with the debugging library already merged (DragonMinded/libdragon#130). I've now pushed a change that makes it possible to compile it mvs64 even on standard master.
@rasky Excuse me, but I'm getting the same error for assertf, which seems related to that debugging library as well.
@stranno that's weird, I can compile correctly with standard libdragon version now. Can you show me the compilation error?
Yeah, sure. I re-downloaded libdragon just in case, but I'm getting this:
stranno@ubuntu:~/Documents/mvs64$ make mvs64 BIOS=../sp-1v1_3db8c.bin ROM=../pbobblen.zip
Building mvs64
[CC] mvsmakerom.c
[CC] miniz.c
[LD] mvsmakerom
[CC] emu.c
[CC] roms.c
[CC] hw.c
[CC] video.c
[CC] m68kcpu.c
[CC] m68kops.c
[CC] platform_n64.c
[CC] m68kdasm.c
[CC] sprite_cache.c
[CC] lib/rdl.c
In file included from lib/rdl.c:1:
lib/rdl.c: In function 'rdl_flush':
lib/rdl.h:228:61: error: implicit declaration of function 'assertf'; did you mean 'assert'? [-Werror=implicit-function-declaration]
228 | if (rdl->__cur + _count_varargs(__VA_ARGS__) > rdl->__end) assertf(0, "display list is full"); \
| ^~~~~~~
lib/rdl.h:241:28: note: in expansion of macro '_rdl_push_multi'
241 | #define rdl_push(rdl, ...) _rdl_push_multi(rdl, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
lib/rdl.c:27:5: note: in expansion of macro 'rdl_push'
27 | rdl_push(dl, RdpSyncPipe());
| ^~~~~~~~
In file included from lib/rdl.h:283,
from lib/rdl.c:1:
lib/rdl.c: In function 'rdl_sprite':
lib/rdp_commands.h:24:19: error: 'tf' may be used uninitialized in this function [-Werror=maybe-uninitialized]
24 | #define cast64(x) (uint64_t)(x)
| ^
lib/rdl.c:88:9: note: 'tf' was declared here
88 | int tf, dsdx, dsdy;
| ^~
cc1: all warnings being treated as errors
n64rasky.mk:73: recipe for target 'build/mvs64/lib/rdl.o' failed
make: *** [build/mvs64/lib/rdl.o] Error 1
Process exited with code 2
make: *** [Makefile:18: mvs64] Error 2
OK try again it should work now.
Thanks @rasky for the feedback. Seems like function problems have been solved, but now I'm getting this:
stranno@ubuntu:~/Documents/mvs64$ make mvs64 BIOS=../sp-1v1_3db8c.bin ROM=../pbobblen.zip -j6
Building mvs64
[CC] mvsmakerom.c
[CC] miniz.c
[LD] mvsmakerom
[CC] emu.c
[CC] roms.c
[CC] hw.c
[CC] video.c
[CC] m68kcpu.c
[CC] m68kops.c
[CC] platform_n64.c
[CC] m68kdasm.c
[CC] sprite_cache.c
[CC] lib/rdl.c
[AS] hw_n64.S
make: *** No rule to make target 'build/mvs64/rsp_lspc.text.o', needed by 'mvs64-pbobblen.elf'. Stop.
Process exited with code 2
make: *** [Makefile:18: mvs64] Error 2
Goops this should be fixed as well now
The fix layer seems corrupted in that picture... it does work for me in both cen64 and real hardware.
Not sure why it doesn't work with ed64p... let me know if you can isolate the cause
The fix layer seems corrupted in that picture... it does work for me in both cen64 and real hardware.
Not sure why it doesn't work with ed64p... let me know if you can isolate the cause
Really? Compilation went fine and I'm using the latest build of CEN64 for Windows.
About ED64P I'm not sure. It throws a black screen with vertical dark stripes. I have tried none and flash save types, but I assume it does not save memory at all. You can't change anything else on ED64P custom firmware. As far as I know, official ED64 has slightly better compatibility for prototypes.. and maybe homebrew.
I always have the expansion pack inserted. I will try to test without it.