Homebrew Question about Mame etc and 240p

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
- Copy mame2003_libretro_wii.a to the retroarch source and rename to libretro_wii.a
- Open command prompt with Win+R type cmd and click OK.
- Type make -f Makefile.wii.salamander
-
Rename retroarch-salamander_wii.dol as boot.dol
- Type make -f Makefile.griffin platform=wii

I've just tried on my win partition.

hmm I still have the same error trying to compile with makefile.wii.salamander

makefile:10: config.mk: no such file or directory
config.mk is outdated or non-existing. run ./configure again.
 

Wiimpathy

Well-Known Member
Member
Joined
Mar 3, 2010
Messages
1,013
Trophies
2
XP
3,121
Country
France
Wow. Still no luck.
You don't type the command correctly. config.mk isn't even used in Makefile.wii.salamander file. We're already at 3 pages just for compiling. Read the instructions carefully once again.
Redownload a fresh https://github.com/libretro/RetroArch just in case. I'm sorry it can't be clearer. Perhaps, you should familiarize with simpler wii projects and makefiles first. Retroarch and mame are a bit tricky.
 

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
- Copy mame2003_libretro_wii.a to the retroarch source and rename to libretro_wii.a
- Open command prompt with Win+R type cmd and click OK.
- Type make -f Makefile.wii.salamander
-
Rename retroarch-salamander_wii.dol as boot.dol
- Type make -f Makefile.griffin platform=wii

I've just tried on my win partition.

Ok I got it :) but now I have another error:

/c/devkitPro/devkitPPC/bin/powerpc-eabi-g++ -o retroarch_wii.elf -DHW_RVL -mrvl
-DGEKKO -mcpu=750 -meabi -mhard-float -DMSB_FIRST -Wl,-Map,retroarch_wii.elf.ma
p,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,strdup
,-wrap,strndup,-wrap,malloc_usable_size -T bootstrap/gx/rvl.ld -Lwii/libogc/lib
s/wii -L. griffin/griffin.o wii/app_booter/app_booter.binobj -lretro_wii -lo
gc -lwiiuse -lbte
.\libretro_wii.a: error adding symbols: Archive has no index; run ranlib to add
one
collect2.exe: error: ld returned 1 exit status
make: *** [retroarch_wii.elf] Error 1

--------------------- MERGED ---------------------------

Wow. Still no luck.
You don't type the command correctly. config.mk isn't even used in Makefile.wii.salamander file. We're already at 3 pages just for compiling. Read the instructions carefully once again.
Redownload a fresh https://github.com/libretro/RetroArch just in case. I'm sorry it can't be clearer. Perhaps, you should familiarize with simpler wii projects and makefiles first. Retroarch and mame are a bit tricky.

Maybe it was the notepad programmers I use to run make, because I try it with console window and it run, I dont know what notepad programmer do that make the difference ;)

however, now I have the other error I posted :/

--------------------- MERGED ---------------------------

Wow. Still no luck.
You don't type the command correctly. config.mk isn't even used in Makefile.wii.salamander file. We're already at 3 pages just for compiling. Read the instructions carefully once again.
Redownload a fresh https://github.com/libretro/RetroArch just in case. I'm sorry it can't be clearer. Perhaps, you should familiarize with simpler wii projects and makefiles first. Retroarch and mame are a bit tricky.

hmm, I just try to compile it with window console without the -f parameter and I got the same error about config.mk, it is like notepad programmer is running make without -f flag ...
 

Wiimpathy

Well-Known Member
Member
Joined
Mar 3, 2010
Messages
1,013
Trophies
2
XP
3,121
Country
France
Not sure about programmer's notepad but the integrated make command is generic. That's why I said to open cmd. When you type make only, it will use Makefile by default. To use a specific Makefile (here Makefile.wii.salamander etc.) you must use -f parameter (-f for file).
Maybe, you should do a make -f Makefile.wii.salamander clean and a make -f Makefile.griffin platform=wii clean before recompiling.
You're almost there!
 

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
Not sure about programmer's notepad but the integrated make command is generic. That's why I said to open cmd. When you type make only, it will use Makefile by default. To use a specific Makefile (here Makefile.wii.salamander etc.) you must use -f parameter (-f for file).
Maybe, you should do a make -f Makefile.wii.salamander clean and a make -f Makefile.griffin platform=wii clean before recompiling.
You're almost there!

Yes I was able to edit option in notepad and add -f filename parameter and now it run without the error of config.mk :)

But I still have the error:

/c/devkitPro/devkitPPC/bin/powerpc-eabi-g++ -o retroarch_wii.elf -DHW_RVL -mrvl
-DGEKKO -mcpu=750 -meabi -mhard-float -DMSB_FIRST -Wl,-Map,retroarch_wii.elf.ma
p,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,strdup
,-wrap,strndup,-wrap,malloc_usable_size -T bootstrap/gx/rvl.ld -Lwii/libogc/lib
s/wii -L. griffin/griffin.o wii/app_booter/app_booter.binobj -lretro_wii -lo
gc -lwiiuse -lbte
.\libretro_wii.a: error adding symbols: Archive has no index; run ranlib to add
one
collect2.exe: error: ld returned 1 exit status
make: *** [retroarch_wii.elf] Error 1
 

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
Not sure about programmer's notepad but the integrated make command is generic. That's why I said to open cmd. When you type make only, it will use Makefile by default. To use a specific Makefile (here Makefile.wii.salamander etc.) you must use -f parameter (-f for file).
Maybe, you should do a make -f Makefile.wii.salamander clean and a make -f Makefile.griffin platform=wii clean before recompiling.
You're almost there!

Ok I fix the ranlib error by just run ranlib lol but now I have this error:

Process Exit Code: 2
> Time Taken: 00:09
griffin/griffin.o: In function `libretro_get_system_info':
griffin.c:(.text.libretro_get_system_info+0x4c): undefined reference to `retro_set_environment'
griffin.c:(.text.libretro_get_system_info+0x64): undefined reference to `retro_set_environment'
griffin.c:(.text.libretro_get_system_info+0x70): undefined reference to `retro_get_system_info'
griffin/griffin.o: In function `command_event_init_core':
griffin.c:(.text.command_event_init_core+0x272): undefined reference to `retro_init'
griffin.c:(.text.command_event_init_core+0x27a): undefined reference to `retro_init'
griffin.c:(.text.command_event_init_core+0x286): undefined reference to `retro_deinit'
griffin.c:(.text.command_event_init_core+0x28a): undefined reference to `retro_deinit'
griffin.c:(.text.command_event_init_core+0x296): undefined reference to `retro_api_version'
griffin.c:(.text.command_event_init_core+0x29a): undefined reference to `retro_api_version'
griffin.c:(.text.command_event_init_core+0x2a2): undefined reference to `retro_get_system_info'
griffin.c:(.text.command_event_init_core+0x2a6): undefined reference to `retro_get_system_info'
griffin.c:(.text.command_event_init_core+0x2ae): undefined reference to `retro_get_system_av_info'
griffin.c:(.text.command_event_init_core+0x2b2): undefined reference to `retro_get_system_av_info'
griffin.c:(.text.command_event_init_core+0x2ba): undefined reference to `retro_set_environment'
griffin.c:(.text.command_event_init_core+0x2be): undefined reference to `retro_set_environment'
griffin.c:(.text.command_event_init_core+0x2c6): undefined reference to `retro_set_video_refresh'
griffin.c:(.text.command_event_init_core+0x2ca): undefined reference to `retro_set_video_refresh'
griffin.c:(.text.command_event_init_core+0x2d2): undefined reference to `retro_set_audio_sample'
griffin.c:(.text.command_event_init_core+0x2d6): undefined reference to `retro_set_audio_sample'
griffin.c:(.text.command_event_init_core+0x2de): undefined reference to `retro_set_audio_sample_batch'
griffin.c:(.text.command_event_init_core+0x2e2): undefined reference to `retro_set_audio_sample_batch'
griffin.c:(.text.command_event_init_core+0x2ea): undefined reference to `retro_set_input_poll'
griffin.c:(.text.command_event_init_core+0x2ee): undefined reference to `retro_set_input_poll'
griffin.c:(.text.command_event_init_core+0x2f6): undefined reference to `retro_set_input_state'
griffin.c:(.text.command_event_init_core+0x2fa): undefined reference to `retro_set_input_state'
griffin.c:(.text.command_event_init_core+0x302): undefined reference to `retro_set_controller_port_device'
griffin.c:(.text.command_event_init_core+0x306): undefined reference to `retro_set_controller_port_device'
griffin.c:(.text.command_event_init_core+0x30e): undefined reference to `retro_reset'
griffin.c:(.text.command_event_init_core+0x312): undefined reference to `retro_reset'
griffin.c:(.text.command_event_init_core+0x31a): undefined reference to `retro_run'
griffin.c:(.text.command_event_init_core+0x31e): undefined reference to `retro_run'
griffin.c:(.text.command_event_init_core+0x326): undefined reference to `retro_serialize_size'
griffin.c:(.text.command_event_init_core+0x32a): undefined reference to `retro_serialize_size'
griffin.c:(.text.command_event_init_core+0x332): undefined reference to `retro_serialize'
griffin.c:(.text.command_event_init_core+0x336): undefined reference to `retro_serialize'
griffin.c:(.text.command_event_init_core+0x33e): undefined reference to `retro_unserialize'
griffin.c:(.text.command_event_init_core+0x342): undefined reference to `retro_unserialize'
griffin.c:(.text.command_event_init_core+0x34a): undefined reference to `retro_cheat_reset'
griffin.c:(.text.command_event_init_core+0x34e): undefined reference to `retro_cheat_reset'
griffin.c:(.text.command_event_init_core+0x356): undefined reference to `retro_cheat_set'
griffin.c:(.text.command_event_init_core+0x35a): undefined reference to `retro_cheat_set'
griffin.c:(.text.command_event_init_core+0x362): undefined reference to `retro_load_game'
griffin.c:(.text.command_event_init_core+0x366): undefined reference to `retro_load_game'
griffin.c:(.text.command_event_init_core+0x36e): undefined reference to `retro_load_game_special'
griffin.c:(.text.command_event_init_core+0x372): undefined reference to `retro_load_game_special'
griffin.c:(.text.command_event_init_core+0x37a): undefined reference to `retro_unload_game'
griffin.c:(.text.command_event_init_core+0x37e): undefined reference to `retro_unload_game'
griffin.c:(.text.command_event_init_core+0x386): undefined reference to `retro_get_region'
griffin.c:(.text.command_event_init_core+0x38a): undefined reference to `retro_get_region'
griffin.c:(.text.command_event_init_core+0x392): undefined reference to `retro_get_memory_data'
griffin.c:(.text.command_event_init_core+0x396): undefined reference to `retro_get_memory_data'
griffin.c:(.text.command_event_init_core+0x39e): undefined reference to `retro_get_memory_size'
griffin.c:(.text.command_event_init_core+0x3a2): undefined reference to `retro_get_memory_size'
collect2.exe: error: ld returned 1 exit status
"make": *** [retroarch_wii.elf] Error 1

> Process Exit Code: 2
> Time Taken: 00:04
 

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
Not sure about programmer's notepad but the integrated make command is generic. That's why I said to open cmd. When you type make only, it will use Makefile by default. To use a specific Makefile (here Makefile.wii.salamander etc.) you must use -f parameter (-f for file).
Maybe, you should do a make -f Makefile.wii.salamander clean and a make -f Makefile.griffin platform=wii clean before recompiling.
You're almost there!

I finally compiled it successfully :) I used the the libretro-super-master to fetch the mame2003 core source instead of downloading it and I compiled it with the script libretro-build-wii.sh instead of trying to build it manually. I dont know what is the difference between that and compiling it with make ..

For the moment, I didnt remove any games just for testing purpose. However the .a file of mame 2003 have size of 43mb and the .dol created by compiling with retroarch is around 21mb. How's that possible ? 21mb doesnt seem too much to fit all in wii memory ?
 

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
First, are you able to compile a full build? What are the errors you have?
You'll find an itech32 Makefile.common and driver.c in the attached archive. You have to alter both files for other drivers.

I wonder if we need to modify both file ? I just edit the makefile.common and remove entries and the file is less bigger :) I guess its more complicating to add games from empty files then just remove them from the complete file ?
 

Hakaisha

Well-Known Member
Member
Joined
Sep 17, 2014
Messages
236
Trophies
0
XP
1,456
Country
United States
I am able to successfully compile a resized Mame2003 itech32 core using Wiimpathy's makefile.common and driver.c files without any issues. The resulting dol boots fine.

I do still, however, run into problems with 'undefined references' from usrintrf.c pertaining to neogeo mcd and memcard lines while compiling the core, if I ever choose to omit any of the neogeo machine/vidhrdw/drivers lines from the makefile.common file. Is there any way to exclude NeoGeo from the build entirely?

If I leave the NeoGeo lines in makefile.common, those undefined references will go away. But I'm still getting undefined references only to the drivers/game name tites I've exclusively put in driver.c.

For example: .\libretro_wii.a(driver.o):(.data.driver+0x0): undefined reference to 'driver.tmnt'

I'm assuming I just haven't included all the necessary CPU/drivers/sound files to the makefile.common, but I'm certain I've included all the necessary files, and I usually will get an undefined reference if any of those files are missing.
 
Last edited by Hakaisha,

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
Now I am trying to compile mame 2010 but I have this error: any idea what it is ??


emu/info.o


make: *** [obj/retro64/emu/hash.o] Error 1

make: *** Waiting for unfinished jobs....

make: *** wait: No children. Stop.


1 core(s) failed:


mame2010

--------------------- MERGED ---------------------------

I wonder why I have that "error" when I run make with clean ? it doesnt stop it from compiling succesfully but what I a am doing wrong ?

=== MAME 2003 (0.78)

Building mame2003...


cd "/c/Users/Mew/Downloads/libretro-super-master/libretro-super-master/libretro-mame2003"

make platform="wii" -j7 clean

creating bin2c working folder and compiling bin2c executable tool...

# Use a temporary file to hold the list of objects, as it can exceed windows shell command limits

rm -f @clean.in mame2003_libretro_wii.a

/usr/bin/rm: cannot remove 'clean.in': No such file or directory

make: *** [clean] Error 1
 

Wiimpathy

Well-Known Member
Member
Joined
Mar 3, 2010
Messages
1,013
Trophies
2
XP
3,121
Country
France
I am able to successfully compile a resized Mame2003 itech32 core using Wiimpathy's makefile.common and driver.c files without any issues. The resulting dol boots fine.

I do still, however, run into problems with 'undefined references' from usrintrf.c pertaining to neogeo mcd and memcard lines while compiling the core, if I ever choose to omit any of the neogeo machine/vidhrdw/drivers lines from the makefile.common file. Is there any way to exclude NeoGeo from the build entirely?

If I leave the NeoGeo lines in makefile.common, those undefined references will go away. But I'm still getting undefined references only to the drivers/game name tites I've exclusively put in driver.c.

For example: .\libretro_wii.a(driver.o):(.data.driver+0x0): undefined reference to 'driver.tmnt'

I'm assuming I just haven't included all the necessary CPU/drivers/sound files to the makefile.common, but I'm certain I've included all the necessary files, and I usually will get an undefined reference if any of those files are missing.

To exclude neogeo, you have to create another define (or maybe use CPSMAME for ex.) to skip memcard and other neo related code in usrintrf.c and cheat.c.
If you omit the corresponding source files and CPU/SOUND, you'll get undefined reference. The driver.c must have the drivers too.

Now I am trying to compile mame 2010 but I have this error: any idea what it is ??


emu/info.o


make: *** [obj/retro64/emu/hash.o] Error 1

make: *** Waiting for unfinished jobs....

make: *** wait: No children. Stop.


1 core(s) failed:


mame2010

--------------------- MERGED ---------------------------

I wonder why I have that "error" when I run make with clean ? it doesnt stop it from compiling succesfully but what I a am doing wrong ?

=== MAME 2003 (0.78)

Building mame2003...


cd "/c/Users/Mew/Downloads/libretro-super-master/libretro-super-master/libretro-mame2003"

make platform="wii" -j7 clean

creating bin2c working folder and compiling bin2c executable tool...

# Use a temporary file to hold the list of objects, as it can exceed windows shell command limits

rm -f @clean.in mame2003_libretro_wii.a

/usr/bin/rm: cannot remove 'clean.in': No such file or directory

make: *** [clean] Error 1

I already told you why you should forget mame2010. Well, I'm going to sleep. Good luck.
 

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
First, are you able to compile a full build? What are the errors you have?
You'll find an itech32 Makefile.common and driver.c in the attached archive. You have to alter both files for other drivers.

Hi, I try to compile with theses files, compiling mame 2003 core no problem but when using the .a I have theses errors .... it is possible there is something missing in theses files ??

usrintrf.c:(.text.init_user_interface+0x48c): undefined reference to `discrete_sh_adjuster_count'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x114): undefined reference to `z180_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x118): undefined reference to `z180_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x11c): undefined reference to `z180_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x120): undefined reference to `z180_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x124): undefined reference to `z180_burn'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x128): undefined reference to `z180_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x12c): undefined reference to `z180_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x130): undefined reference to `z180_get_cycle_table'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x134): undefined reference to `z180_set_cycle_table'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x138): undefined reference to `z180_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x13c): undefined reference to `z180_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x140): undefined reference to `z180_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x144): undefined reference to `z180_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x148): undefined reference to `z180_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x14c): undefined reference to `z180_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x158): undefined reference to `z180_icount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x19c): undefined reference to `i8080_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1a0): undefined reference to `i8080_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1a4): undefined reference to `i8080_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1a8): undefined reference to `i8080_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1b0): undefined reference to `i8080_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1b4): undefined reference to `i8080_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1c0): undefined reference to `i8080_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1c4): undefined reference to `i8080_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1c8): undefined reference to `i8080_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1cc): undefined reference to `i8080_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1d0): undefined reference to `i8080_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1d4): undefined reference to `i8080_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1e0): undefined reference to `i8085_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x224): undefined reference to `i8085_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x228): undefined reference to `i8085_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x22c): undefined reference to `i8085_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x230): undefined reference to `i8085_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x238): undefined reference to `i8085_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x23c): undefined reference to `i8085_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x248): undefined reference to `i8085_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x24c): undefined reference to `i8085_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x250): undefined reference to `i8085_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x254): undefined reference to `i8085_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x258): undefined reference to `i8085_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x25c): undefined reference to `i8085_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x268): undefined reference to `i8085_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2ac): undefined reference to `m6502_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2b0): undefined reference to `m6502_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2b4): undefined reference to `m6502_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2b8): undefined reference to `m6502_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2c0): undefined reference to `m6502_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2c4): undefined reference to `m6502_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2d0): undefined reference to `m6502_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2d4): undefined reference to `m6502_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2d8): undefined reference to `m6502_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2dc): undefined reference to `m6502_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2e0): undefined reference to `m6502_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2e4): undefined reference to `m6502_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x2f0): undefined reference to `m6502_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x334): undefined reference to `m65c02_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x338): undefined reference to `m65c02_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x33c): undefined reference to `m65c02_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x340): undefined reference to `m65c02_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x348): undefined reference to `m65c02_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x34c): undefined reference to `m65c02_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x358): undefined reference to `m65c02_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x35c): undefined reference to `m65c02_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x360): undefined reference to `m65c02_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x364): undefined reference to `m65c02_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x368): undefined reference to `m65c02_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x36c): undefined reference to `m65c02_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x378): undefined reference to `m6502_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3bc): undefined reference to `m6510_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3c0): undefined reference to `m6510_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3c4): undefined reference to `m6510_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3c8): undefined reference to `m6510_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3d0): undefined reference to `m6510_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3d4): undefined reference to `m6510_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3e0): undefined reference to `m6510_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3e4): undefined reference to `m6510_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3e8): undefined reference to `m6510_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3ec): undefined reference to `m6510_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3f0): undefined reference to `m6510_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x3f4): undefined reference to `m6510_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x400): undefined reference to `m6502_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x444): undefined reference to `n2a03_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x448): undefined reference to `n2a03_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x44c): undefined reference to `n2a03_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x450): undefined reference to `n2a03_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x458): undefined reference to `n2a03_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x45c): undefined reference to `n2a03_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x468): undefined reference to `n2a03_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x46c): undefined reference to `n2a03_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x470): undefined reference to `n2a03_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x474): undefined reference to `n2a03_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x478): undefined reference to `n2a03_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x47c): undefined reference to `n2a03_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x488): undefined reference to `m6502_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x4cc): undefined reference to `deco16_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x4d0): undefined reference to `deco16_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x4d4): undefined reference to `deco16_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x4d8): undefined reference to `deco16_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x4e0): undefined reference to `deco16_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x4e4): undefined reference to `deco16_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x4f0): undefined reference to `deco16_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x4f4): undefined reference to `deco16_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x4f8): undefined reference to `deco16_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x4fc): undefined reference to `deco16_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x500): undefined reference to `deco16_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x504): undefined reference to `deco16_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x510): undefined reference to `m6502_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x554): undefined reference to `h6280_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x558): undefined reference to `h6280_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x55c): undefined reference to `h6280_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x560): undefined reference to `h6280_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x568): undefined reference to `h6280_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x56c): undefined reference to `h6280_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x578): undefined reference to `h6280_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x57c): undefined reference to `h6280_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x580): undefined reference to `h6280_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x584): undefined reference to `h6280_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x588): undefined reference to `h6280_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x58c): undefined reference to `h6280_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x598): undefined reference to `h6280_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x5dc): undefined reference to `i86_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x5e0): undefined reference to `i86_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x5e4): undefined reference to `i86_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x5e8): undefined reference to `i86_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x5f0): undefined reference to `i86_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x5f4): undefined reference to `i86_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x600): undefined reference to `i86_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x604): undefined reference to `i86_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x608): undefined reference to `i86_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x60c): undefined reference to `i86_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x610): undefined reference to `i86_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x614): undefined reference to `i86_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x620): undefined reference to `i86_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x664): undefined reference to `i86_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x668): undefined reference to `i86_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x66c): undefined reference to `i86_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x670): undefined reference to `i186_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x678): undefined reference to `i86_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x67c): undefined reference to `i86_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x688): undefined reference to `i86_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x68c): undefined reference to `i86_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x690): undefined reference to `i86_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x694): undefined reference to `i86_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x698): undefined reference to `i186_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x69c): undefined reference to `i186_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x6a8): undefined reference to `i86_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x6ec): undefined reference to `v20_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x6f0): undefined reference to `v20_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x6f4): undefined reference to `v20_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x6f8): undefined reference to `v20_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x700): undefined reference to `v20_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x704): undefined reference to `v20_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x710): undefined reference to `v20_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x714): undefined reference to `v20_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x718): undefined reference to `v20_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x71c): undefined reference to `v20_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x720): undefined reference to `v20_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x724): undefined reference to `v20_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x730): undefined reference to `nec_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x774): undefined reference to `v30_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x778): undefined reference to `v30_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x77c): undefined reference to `v30_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x780): undefined reference to `v30_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x788): undefined reference to `v30_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x78c): undefined reference to `v30_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x798): undefined reference to `v30_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x79c): undefined reference to `v30_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x7a0): undefined reference to `v30_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x7a4): undefined reference to `v30_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x7a8): undefined reference to `v30_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x7ac): undefined reference to `v30_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x7b8): undefined reference to `nec_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x7fc): undefined reference to `v33_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x800): undefined reference to `v33_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x804): undefined reference to `v33_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x808): undefined reference to `v33_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x810): undefined reference to `v33_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x814): undefined reference to `v33_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x820): undefined reference to `v33_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x824): undefined reference to `v33_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x828): undefined reference to `v33_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x82c): undefined reference to `v33_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x830): undefined reference to `v33_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x834): undefined reference to `v33_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x840): undefined reference to `nec_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x884): undefined reference to `v60_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x888): undefined reference to `v60_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x88c): undefined reference to `v60_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x890): undefined reference to `v60_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x898): undefined reference to `v60_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x89c): undefined reference to `v60_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x8a8): undefined reference to `v60_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x8ac): undefined reference to `v60_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x8b0): undefined reference to `v60_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x8b4): undefined reference to `v60_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x8b8): undefined reference to `v60_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x8bc): undefined reference to `v60_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x8c8): undefined reference to `v60_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x90c): undefined reference to `v70_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x910): undefined reference to `v60_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x914): undefined reference to `v60_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x918): undefined reference to `v60_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x920): undefined reference to `v60_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x924): undefined reference to `v60_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x930): undefined reference to `v60_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x934): undefined reference to `v60_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x938): undefined reference to `v60_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x93c): undefined reference to `v60_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x940): undefined reference to `v70_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x944): undefined reference to `v70_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x950): undefined reference to `v60_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x994): undefined reference to `i8035_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x998): undefined reference to `i8035_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x99c): undefined reference to `i8035_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x9a0): undefined reference to `i8035_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x9a8): undefined reference to `i8035_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x9ac): undefined reference to `i8035_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x9b8): undefined reference to `i8035_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x9bc): undefined reference to `i8035_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x9c0): undefined reference to `i8035_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x9c4): undefined reference to `i8035_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x9c8): undefined reference to `i8035_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x9cc): undefined reference to `i8035_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x9d8): undefined reference to `i8039_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa1c): undefined reference to `i8039_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa20): undefined reference to `i8039_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa24): undefined reference to `i8039_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa28): undefined reference to `i8039_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa30): undefined reference to `i8039_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa34): undefined reference to `i8039_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa40): undefined reference to `i8039_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa44): undefined reference to `i8039_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa48): undefined reference to `i8039_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa4c): undefined reference to `i8039_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa50): undefined reference to `i8039_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa54): undefined reference to `i8039_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xa60): undefined reference to `i8039_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xaa4): undefined reference to `i8048_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xaa8): undefined reference to `i8048_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xaac): undefined reference to `i8048_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xab0): undefined reference to `i8048_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xab8): undefined reference to `i8048_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xabc): undefined reference to `i8048_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xac8): undefined reference to `i8048_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xacc): undefined reference to `i8048_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xad0): undefined reference to `i8048_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xad4): undefined reference to `i8048_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xad8): undefined reference to `i8048_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xadc): undefined reference to `i8048_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xae8): undefined reference to `i8039_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb2c): undefined reference to `n7751_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb30): undefined reference to `n7751_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb34): undefined reference to `n7751_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb38): undefined reference to `n7751_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb40): undefined reference to `n7751_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb44): undefined reference to `n7751_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb50): undefined reference to `n7751_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb54): undefined reference to `n7751_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb58): undefined reference to `n7751_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb5c): undefined reference to `n7751_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb60): undefined reference to `n7751_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb64): undefined reference to `n7751_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xb70): undefined reference to `i8039_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbb4): undefined reference to `i8x41_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbb8): undefined reference to `i8x41_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbbc): undefined reference to `i8x41_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbc0): undefined reference to `i8x41_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbc8): undefined reference to `i8x41_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbcc): undefined reference to `i8x41_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbd8): undefined reference to `i8x41_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbdc): undefined reference to `i8x41_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbe0): undefined reference to `i8x41_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbe4): undefined reference to `i8x41_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbe8): undefined reference to `i8x41_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbec): undefined reference to `i8x41_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xbf8): undefined reference to `i8x41_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xff4): undefined reference to `m6805_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xff8): undefined reference to `m6805_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0xffc): undefined reference to `m6805_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1000): undefined reference to `m6805_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1008): undefined reference to `m6805_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x100c): undefined reference to `m6805_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1018): undefined reference to `m6805_get_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x101c): undefined reference to `m6805_set_reg'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1020): undefined reference to `m6805_set_irq_line'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1024): undefined reference to `m6805_set_irq_callback'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1028): undefined reference to `m6805_info'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x102c): undefined reference to `m6805_dasm'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1038): undefined reference to `m6805_ICount'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x107c): undefined reference to `m68705_init'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1080): undefined reference to `m68705_reset'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1084): undefined reference to `m68705_exit'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1088): undefined reference to `m68705_execute'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1090): undefined reference to `m68705_get_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x1094): undefined reference to `m68705_set_context'
.\libretro_wii.a(cpuintrf.o):(.rodata.cpuintrf+0x10a0): undefined reference to `m68705_get_reg'

etc......
 

Wiimpathy

Well-Known Member
Member
Joined
Mar 3, 2010
Messages
1,013
Trophies
2
XP
3,121
Country
France
There's nothing missing, you haven't cleaned your previous mame build. Try this to fix 'make clean' under windows. In Makefile, in 'else ifeq ($(platform), wii)' add this : SPLIT_UP_LINK = 0
 

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
There's nothing missing, you haven't cleaned your previous mame build. Try this to fix 'make clean' under windows. In Makefile, in 'else ifeq ($(platform), wii)' add this : SPLIT_UP_LINK = 0

I made a clean but I still get theses errors ....

--------------------- MERGED ---------------------------

I made a clean but I still get theses errors ....
There's nothing missing, you haven't cleaned your previous mame build. Try this to fix 'make clean' under windows. In Makefile, in 'else ifeq ($(platform), wii)' add this : SPLIT_UP_LINK = 0

I think the clean still doesn't work, I have all the .o in the folder, will try to fix it first :)
 

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
fba, neogeo, cps1 and cps2 are all from fba2012 but the source code is also split :
https://github.com/libretro/fbalpha2012
https://github.com/libretro/fbalpha2012_cps1
etc...

Mame 2000 is different, it's an early mame version, good for old devices (but incomplete drivers):
https://github.com/libretro/mame2000-libretro

You could also try this mame2003 fork, that's supposed to improve some drivers :
https://github.com/libretro-mirrors/mame2003-plus-libretro


To add a game, you first need to know the driver used. With http://www.progettoemma.net/ you search asterix. You'll see the driver and the corresponding .cpp file (in retroarch it's a .c file).
You have to add these .c files (game driver + video driver, in vidhrdw folder + sound driver in sndhrdw folder) to SOURCES_C += ... in Makefile.common.
In Tech info, you'll see which chips are used (Z80 ...). In Makefile.common, that's the CPUS+= and SOUNDS+= variables.
You can compare with the original Makefile to check what's needed.
In driver.c you copy the driver names, the same as your games zips.

Yes, it's a tedious task...

I try to compile with your makefile.common and driver.c with asterix.c but I have this error, do I miss something ?
I checked the original driver.c and common file and I added
$(CORE_DIR)/vidhrdw/asterix_vidhrdw.c $(CORE_DIR)/drivers/asterix.c \
in the common file with the driver in driver.c

-DMSB_FIRST -c -osrc/driver.o src/driver.c
make: *** [src/drivers/asterix.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** wait: No children. Stop.
 

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
I try to compile with your makefile.common and driver.c with asterix.c but I have this error, do I miss something ?
I checked the original driver.c and common file and I added
$(CORE_DIR)/vidhrdw/asterix_vidhrdw.c $(CORE_DIR)/drivers/asterix.c \
in the common file with the driver in driver.c

-DMSB_FIRST -c -osrc/driver.o src/driver.c
make: *** [src/drivers/asterix.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** wait: No children. Stop.

Ok I found it lol

for the other who may have trouble compiling when adding a game:
1. try to compile without the retroarch-wii-build.sh script, just compile with make platform=wii, you will get more specific error message
2. with this error message you can see whats missing in the makefile.common and driver.c, try to compare with the original both files.
3. you can also have succeed compiling the core but you can still have error when linking with retroarch.
tip: if the error say something like: undefined reference to xyz... just search with windows search inside your source folder for the function name missing and you will find the source.c file or whatever it found, so you can say that is the file missing.. add it in your makefile.common and driver.c by looking into the originals files how it was and try to recompile again ..
 

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
I made a clean but I still get theses errors ....

--------------------- MERGED ---------------------------




I think the clean still doesn't work, I have all the .o in the folder, will try to fix it first :)

Hi, I sucessfully compiled the core with asterix and retroarch, however when I try to load the game, it do nothing and just get back to retroarch menu. I checked if I have the correct rom with the correct files in asterix.zip, I am out of ideas ..could it possible I forgot to include something in common file and driver.c that the compiler doesnt show as error ? I could try to debug but I dont know where is the code when we hit run to launch a game, I could add a prompt to see what happen after I click run ..

I just try with another game I just added: xmen, and when I load it I got a DSI error exception ..

there is must be something I forgot to include in the compilation but I dont know what, since the compiler doest return any error ..


hmmm I just try something, I added the cpu of Konami with the konami machine.c and xmen work perfectly.. That mean there is some dependencies the compiler doesnt tell us..
 
Last edited by Cecilmax,

Cecilmax

Well-Known Member
Member
Joined
Mar 7, 2015
Messages
451
Trophies
0
Age
44
XP
1,196
Country
Canada
I try to compile mame2003-plus but I have this error: any idea how to fix it ?

^~~~

src/drivers/system32.c:492:24: warning: 'system32_eeprom_w' defined but not used [-Wunused-function]

static WRITE16_HANDLER(system32_eeprom_w)

^

src/memory.h:133:40: note: in definition of macro 'WRITE16_HANDLER'

#define WRITE16_HANDLER(name) void name(UNUSEDARG offs_t offset, UNUSEDARG data16_t data, UNUSEDARG data16_t mem_mask)

^~~~

src/drivers/system32.c:487:23: warning: 'system32_eeprom_r' defined but not used [-Wunused-function]

static READ16_HANDLER(system32_eeprom_r)

^

src/memory.h:132:39: note: in definition of macro 'READ16_HANDLER'

#define READ16_HANDLER(name) data16_t name(UNUSEDARG offs_t offset, UNUSEDARG data16_t mem_mask)

^~~~

make: *** [src/drivers/system32.o] Error 1
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: https://www.youtube.com/@legolambs