rasky/mvs64

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

rasky commented

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.

rasky commented

@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
rasky commented

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
rasky commented

Goops this should be fixed as well now

z8CkjH9nbl

๐Ÿ‘Œ Now it works properly. Many thanks for your work and your help.

Edit: It does not seem to work on the real hardware with the ED64P + custom/Alt64 fw.

rasky commented

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.