Closed cecilmax closed 6 years ago
Yeah we get this on the xbox usually with bigger 3D games or ones that the console doesn't have the power to emulate full speed in MAME, this is likely why your getting the sound problems in GA RODA
As for Asterix it should work in MAME78 as for why it doesn't on the Wii i dunno.
Thanks for taking the time to help :) I try to reduce the size of the core to run it on wii so I remove a lot of sources_c and let all the cpus and sounds core in the makefile to make sure I dont miss anything because its not easy to find which game need which cpu/sound cores..
actually I have a dsi error occured when I try to load asterix, I think I just miss to include somes sources_c, how can I check if I didnt forgot a file ?
Example, for xmen, I see in the xmen.c that I need to include konamii.c in the sources_c but when I load it it do nothing, just get back to menu, I added the cpu core konami and I get dsi error occured (but it was a guess)
there is a easy way to know which sources_c is needed for each game ? as for the cpu/sounds core I can include them all, because the file isnt too big after linking.
here is the game I try to include and Im not sure which sources_c to include: spiderman the video game asterix xmen captain america and the avengers
If you have the time, it could be very usefull for us if you can split the makefile and driver.c into parts, so we can have all the game supported on wii with different core, something like makefile.common1, makefile.common2, etc with the corresponding driver1.c driver2.c, then if we want a specific part to compile a core for that list of games we can just copy the part we want to makefile.common and driver.c and compile it and we can name it as we want to run on wii, like mame2003plus-part1.dol of whatever we wish :)
Yeah i do create smaller stripped down cores myself for my Xbox FBA project, to free up some memory so certain games will work as im booting em via the smaller core due to not having a virtual memory manager for that particular arcade emulator.
Obviously if your gonna start stripping down the core to only support certain games the trick is to know what code to keep for all of them which can be difficult for 100's of games considering alotta stuff in MAME is all interconnected and you might get rid of something you need which isn't signposted in the driver.
Im actually retiring from active dev real soon and as such i wont be maintaing this core let alone altering it for use on the Wii platform, thats something you would need to tackle your end.
Here are some key things you should always check for example in asterix.c
Linker files but dont assume everything needed is listed
After the above make sure you have all the files which contain the code needed for stuff which is handled via the memory maps and machine driver
static MEMORY_READ16_START( readmem ) { 0x000000, 0x0fffff, MRA16_ROM }, { 0x100000, 0x107fff, MRA16_RAM }, // Main RAM. { 0x180000, 0x1807ff, K053245_word_r }, // Sprites { 0x180800, 0x180fff, MRA16_RAM }, { 0x200000, 0x20000f, K053244_word_r }, { 0x280000, 0x280fff, MRA16_RAM }, { 0x300000, 0x30001f, K053244_lsb_r }, { 0x380000, 0x380001, input_port_0_word_r }, { 0x380002, 0x380003, control1_r }, { 0x380200, 0x380203, asterix_sound_r }, // 053260 { 0x380600, 0x380601, MRA16_NOP }, // Watchdog { 0x400000, 0x400fff, K054157_ram_half_word_r }, // Graphic planes { 0x420000, 0x421fff, K054157_rom_word_r }, // Passthrough to tile roms MEMORY_END
static MEMORY_WRITE16_START( writemem ) { 0x000000, 0x0fffff, MWA16_ROM }, { 0x100000, 0x107fff, MWA16_RAM }, { 0x180000, 0x1807ff, K053245_word_w }, { 0x180800, 0x180fff, MWA16_RAM }, // extra RAM, or mirror for the above? { 0x200000, 0x20000f, K053244_word_w }, { 0x280000, 0x280fff, paletteram16_xBBBBBGGGGGRRRRR_word_w, &paletteram16 }, { 0x300000, 0x30001f, K053244_lsb_w }, { 0x380100, 0x380101, control2_w }, { 0x380200, 0x380203, K053260_0_lsb_w }, { 0x380300, 0x380301, sound_irq_w }, { 0x380400, 0x380401, asterix_spritebank_w }, { 0x380500, 0x38051f, K053251_lsb_w }, { 0x380600, 0x380601, MWA16_NOP }, // Watchdog { 0x380700, 0x380707, K054157_b_word_w }, { 0x380800, 0x380803, protection_w }, { 0x400000, 0x400fff, K054157_ram_half_word_w }, { 0x440000, 0x44003f, K054157_word_w }, MEMORY_END
static MEMORY_READ_START( sound_readmem ) { 0x0000, 0xefff, MRA_ROM }, { 0xf000, 0xf7ff, MRA_RAM }, { 0xf801, 0xf801, YM2151_status_port_0_r }, { 0xfa00, 0xfa2f, K053260_0_r }, MEMORY_END
static MEMORY_WRITE_START( sound_writemem ) { 0x0000, 0xefff, MWA_ROM }, { 0xf000, 0xf7ff, MWA_RAM }, { 0xf801, 0xf801, YM2151_data_port_0_w }, { 0xfa00, 0xfa2f, K053260_0_w }, { 0xfc00, 0xfc00, sound_arm_nmi_w }, { 0xfe00, 0xfe00, YM2151_register_port_0_w }, MEMORY_END
static MACHINE_DRIVER_START( asterix )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 12000000)
MDRV_CPU_MEMORY(readmem,writemem)
MDRV_CPU_VBLANK_INT(asterix_interrupt,1)
MDRV_CPU_ADD(Z80, 8000000)
MDRV_CPU_FLAGS(CPU_AUDIO_CPU)
MDRV_CPU_MEMORY(sound_readmem,sound_writemem)
MDRV_FRAMES_PER_SECOND(60)
MDRV_VBLANK_DURATION(DEFAULT_60HZ_VBLANK_DURATION)
MDRV_NVRAM_HANDLER(asterix)
/* video hardware */
MDRV_VIDEO_ATTRIBUTES(VIDEO_TYPE_RASTER | VIDEO_HAS_SHADOWS | VIDEO_NEEDS_6BITS_PER_GUN)
MDRV_SCREEN_SIZE(64*8, 32*8)
MDRV_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MDRV_PALETTE_LENGTH(2048)
MDRV_VIDEO_START(asterix)
MDRV_VIDEO_UPDATE(asterix)
/* sound hardware */
MDRV_SOUND_ATTRIBUTES(SOUND_SUPPORTS_STEREO)
MDRV_SOUND_ADD(YM2151, ym2151_interface)
MDRV_SOUND_ADD(K053260, k053260_interface)
MACHINE_DRIVER_END
Your kinda asking me to do the graft you should be doin, as im not gonna know everything off the top of my head and i dont fancy pouring over the source to find out, but your in luck with a couple of games as i actually know what stuff would be needed.
Spiderman The Videogame
It shares the same driver as GA2 RODA so it should be playable already if your supporting system32.c in your core
Captain America And The Avengers
deco32 driver links with.........
CPU's
Arm H6280 M6809 Z80
Soundcores
YM2151 OKIM6295 check ADPCM.c for this in MAME78 BSMT2000 used by Tattoo Assassins
includes.........
deco32.h decoprot.h decocrypt.h deco16ic.h eeprom.h
machine........
decocrypt.c decoprot.c eeprom.c eeprom.h
Vidhrdw............
deco32.c deco16ic.c generic.c generic.h
Finally use common.h from this source as it'll contain bitswap32 which you'll need for some of the Data East decryption and mind and declare the new games in driver.c
Best of luck
Thanks a lot for your help, I got it both working asterix and xmen :) It was just because of somes sources_c files missing.
I have another issue, I try to run 64th street game but it doesn't load, I check what file is supposed to load in the zip and all the roms I found seem to miss the last file named "prom" I dont know what it is exactly, do you have any idea ?
it's a graphical priority prom, but there is no dump of it for 64th street in MAME78, should you run a datfile against your rom using a programe called romcentre then it'll automatically create a dummy file named prom for ya.
ROM_START( 64street ) ROM_REGION( 0x0200, REGION_PROMS, 0 ) / Priority PROM / //ROM_LOAD( "prom", 0x0000, 0x0200, NO_DUMP ) ROM_END
However for quick testing purposes you can just reem it out in the driver and your build wont look for it when loading up the rom.
I try with rom_load commented as you suggest but it still doesnt load. I try with mame 2000 and it load with the same zip file that doesnt have prom and even if in the .dat it have prom .. (but with mame 2000, there is graphics glitch of text letters, I have couple of games with mame 2000 that have text letter glitches, I dont know why)
maybe on mame 2003 I missing include somes sources_c files for 64th street. I have double and tripple check and I dont see what I miss ..
Hello,
I try to use this core with nintendo wii and golden axe 2 revenge of death adder have choppy sound and asterix doesn't load at all. Any idea why ?