GithubHelp home page GithubHelp logo

libretro / mame2003-plus-libretro Goto Github PK

View Code? Open in Web Editor NEW
183.0 23.0 109.0 100.32 MB

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements

License: Other

Makefile 0.07% Perl 0.01% C 96.42% C++ 0.05% Objective-C 0.01% Assembly 3.38% Python 0.06%

mame2003-plus-libretro's Introduction

What is MAME 2003-Plus?

pipeline status

MAME 2003-Plus (also referred to as MAME 2003+ and mame2003-plus) is a libretro arcade system emulator core with an emphasis on high performance and broad compatibility with mobile devices, single board computers, embedded systems, and similar platforms.

In order to take advantage of the performance and lower hardware requirements of an earlier MAME architecture, MAME 2003-Plus began with the MAME 2003 codebase which is itself derived from xmame 0.78. Upon that base, MAME 2003-Plus contributors have backported support for an additional 350 games, as well as other functionality not originally present in the underlying codebase.

What games are supported?

View our live compatibility table built using datmagic, a tool created by the MAME 2003-Plus team. Datmagic auto-generates a compatibility table based on the latest XML DAT file. See an incorrect entry? Create a new issue to let us know! This allows us to keep the compatibility table as accurate as possible by fixing it at the source.

Authors: MAMEdev, MAME 2003-Plus team, et al (see LICENSE.md and CHANGELOG.md)

Documentation

User documentation for MAME 2003-Plus can be found in the libretro core documentation library.

Developer documentation can be found in the MAME 2003-Plus wiki.

Development chat

#programming channel of the libretro discord chat server.

Romsets and how to build them for this core

mame2003-plus was originally built from the MAME 0.78 codebase, meaning that 95% or more of MAME 0.78 romsets will work as-is in mame2003-plus, where they immediately benefit from its bugfixes and other improvements. In order to play the new games and games which received ROM updates in mame2003-plus, you will need to find or build the correct romsets.

Read more about rebuilding romsets in the libretro core documentation for mame2003-plus.

mame2003-plus-libretro's People

Contributors

4shpool avatar aliaspider avatar arcadez2003 avatar clienthax avatar dankcushions avatar fr500 avatar frangarcj avatar grant2258 avatar hizzlekizzle avatar inactive123 avatar jamiecurmi avatar jdorigao avatar joolswills avatar kmfdmanic avatar libretroadmin avatar mahoneyt944 avatar markwkidd avatar meowthed avatar mistydreams avatar mudl0rd avatar odarknighto avatar robertvb83 avatar sumavisionq5 avatar udb23 avatar vanfanel avatar webgeek1234 avatar wilstorm avatar zarh avatar zoltan45 avatar zorro2055 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mame2003-plus-libretro's Issues

Building The Romset

im gathering up the roms currently i have 80% fixed and correct via the dat, however of the
Neogeo games i have so far it will not be possible to trackdown a correct version of
Metal Slug 5 as it has one rom 268-m1.bin which has since been redumped and replaced.

What i will do for this game and any others like this i'll simply update the rom in the driver
so we support the newer dumped version of the 268-m1.bin which we'll be able to trackdown.

welcome to the libretro buildbot!

Well @Arcadez , mame2003-plus is starting to roll out onto RetroArch on about a dozen more platforms supported by the buildbot. Woo!

This should make it easy for you to try out some of those games with higher memory requirements on your own PC if you want to -- but either way we'll make sure to give them a try ๐Ÿ‘ ๐Ÿ‘

screenshot 2018-03-25 12 22 19

idea: use BIN2C process on rungun.nv

This is a note to myself, but also an encouragement to find any other games that can be made (more) playable by using the nvram loader to bypass some issue like rungun.

I think the same process that I used to build hiscore.dat into the core binary could be used to build in nvram patches like rungun.nv directly into the mame2003-plus source so there is no need to script its deployment or even put a big annoying instruction on the screen like I did for rungun.

It will be even easier than hiscore because for that file I wanted to keep a 'source' file in the repository and have logic to update what is built into mame2003 in case people add hiscore memory maps for new games. For something like rungun it would never be updated, so it can go directly into the source file and removed as rungun.nv from metadata/nvram.

bin2c works by processing a binary file into a c-source character array that can be added to any source file. Seems like all I need to do is process rungun.nv then add that data to rungun.c. Then, unnder the same condition where I have the warning message now (ie no rungun.nv found in the libretro save path in a subdirectory called nvram) then load the copy of rungun.nv that is stored as the array.

From that point on, the users own nvram file called rungun.nv will be written to that path as usual with any changes based on their use of the game. In other words, the built-in character array data will only be used the first time the core is executed and only if there is not a nvram file already on disk in that location.

I may be able to modify my hiscore.dat code to do this or if not it shouldn't be that much different.

Arkanoid flipped for player 2 by default

Tested Arkanoid (US) (arknoidu). Player 2 is flipped horizontally by default (cocktail mode) but there seems to be no dip switch settings to correct the issue. Would it beneficial to set player 2 as an upright by default or at least enable dip switch settings to allow modification.

New and updated games minor problems

Hi, i've been going through the list of new/updated games, I have checked most of them but this is just a list of minor things I noticed. Using a Raspberry Pi 3.

brapboys (buzzing noise)
backfire (some corrupted graphics, don't know how to control)
crswd2bl (minor sprite flicker) BEST AVAILABLE
drifto94 (bad sound)
dynagear (small black bars at left of screen, nothing major) BEST AVAILABLE
packbang (has music but no sound effects, not sure if it's supposed to be like this ?)
pnyaa (bad sound)
shogwarr (same buzzing noise as brapboys but goes away)
titlef (picture is at top left of screen)

Sound samples need to be in the BIOS/mame2003-plus directory, they don't work in the samples directory.

Kick is rotated 90 degrees and backwards for players 1 and 2

Kick (Upright) (kick) plays rotated 90 degrees on it's left and right side for player 1 and 2. Also all the text is backwards on the screen. No dip switches are available to correct the orientation. It's like the original arcade was mounted 90 degree rotated and used a mirror to project the image.

kick

Denjin makai II

Hello,

I try to load guardians (denjin makai ii) it just return to retroarch after a second, no screen or anything. I know it work on wii because I can load it with FBA core.. and I make sure I have the good rom to load ;)

EDIT: Denjin Makai I doesnt load too, same problem as Denjin Makai II ..

TODO: implement CPU underclock and overclock adjustments as core option

Edit: As of May 12, Brightness and Gamma Correction are implemented but not yet CPU Overclock

The RetroArch way is to do brightness and gamma is with shaders. Not always cool. So cores often keep their native functions for simple image quality manipulation like these.

Also there is some kind of variable CPU overclock option in MAME. To be explored

Should be easy to hook up some time. It would be interesting to know if they operate independently from the Backdrops, or whether these settings would affect the artwork too.

Speed issue with game Ninja baseball bat man

Hello,

there is speed issue with this game on wii. it run very slow, sound and graphics. Other m92 game run fine, only this one have issue.

Maybe somes games just need adjustments to run on Wii ... like Denjin Makai (it doesnt run at all on wii) but it does on FBA.. or spiderman (it just need speed adjustment) etc.

new retropie forum thread

Hello all. The retropie forum thread now is great, but I noticed that there are more than 460 posts! There is some misunderstandings about the relationship between the two cores which are based on the title of the thread and the early posts. Just one example of how it's out of date.

@Wilstorm or someone else, would you be willing to start a new thread with a title that includes the word "mame2003-plus"?

It could be anything. "mame2003-plus: brave new core (testers needed)", "mame2003-plus: brilliant advances and broken builds (testers needed)", "mame2003-plus: what does god need with a starship?"

Sometimes it's awkward for me to post a thread like this in the RetroPie forum when people realize I don't personally have/use RetroPie, just RetroArch.

If such a new thread exists, I'll immediately be on hand as with the existing thread.

removing initial '-' from repo name

OK, there is one more thing @Arcadez which I could use your help with regarding the libretro buildbot.

I am pretty sure first dash character '-' in the name is going to cause problems for some of the build scripts but I can't change the name of this repository. (And I don't really need the power to do so, normally.)

Are you willing to remove that? It is in the "Settings" menu

$250 Bounty - Vector image quality (incl comparison of mame2003_plus and Advmame)

edit: $250 Bounty (as of 8/2018) - Link to mame2003 vector github issue

Something seems off or the settings are not taking effect. They are located in /opt/retropie/configs/all/retroarch-core-options.cfg. The settings I used for each emulator are listed below with screenshots. Quite different if you go back and forth a few times between the two. I tried matching the settings where possible. Also I see no flicker with mame2003_plus.

mame2003_plus settings I used:

mame2003-plus-vector-resolution-multiplier = "1"
mame2003-plus-vector-antialias = "enabled"
mame2003-plus-vector-translucency = "enabled"
mame2003-plus-vector-beam-width = "1"
mame2003-plus-vector-flicker = "10"
mame2003-plus-vector-intensity = "2.5"

tempest

MAME 0.78 settings I used:

mame2003-plus-vector-resolution-multiplier = "1"
mame2003-plus-vector-antialias = "enabled"
mame2003-plus-vector-translucency = "enabled"
mame2003-plus-vector-beam-width = "1"
mame2003-plus-vector-flicker = "10"
mame2003-plus-vector-intensity = "1"

tempest02a

AdvMAME settings I used:

vector/display_resizeeffect filter
vector/display_rgbeffect triad3dot
vector/display_scanlines no
vector/display_antialias yes
vector/display_beam 1.2
vector/display_flicker 10
vector/display_translucency yes
vector/display_intensity 2.5

tempesta

Possible build problem

Just putting this here for now as by adding back in the darkmist driver there might be some build
errors around the t5182 sound reads and writes being defined in the memmaps in both darkmist.c
and mustache.c. although this throws up no errors when i compile a build on my target platform
which is the xbox.

Due to major changes to the memory and CPU code by MAME79 when i backport
anything from later MAME for starters i have to rework the memory and CPU handling
to align with the MAME78 codebase.

With regards to the t5182 soundcore i had to totally rework how it hooks to the drivers as ADDRESS_MAP_EXTERN is not a part of the MAME2003 memory handling, they say a picture
speaks a thousand words so if you fellas find a spare moment or two can you cast and eye
over some of the changes i made using winmerge to to make sure i haven't done it
incorrectly.

original darkmist.c mustache.c and t5182
https://www.sendspace.com/file/e0p37w

darkmist.c mustache.c and t5182 with my changes
https://www.sendspace.com/file/mzrjqr

2003-plus shares sample folder with 2003

Currently, the 2003-plus core shares a sample folder with the 2003 core. Seeing as how they make use of several different samples, the two can't really coexist without issues.

Enable Autocenter on digital Joystick

I'm using mame2003-plus in my arcade cabinet but it miss an autocenter feature when using digital arcade joystick that is present in mame2010, mame2000 and fba.
This make unplayble with arcade joystick a lot of game such as outrun, super hang-on, all lightgun game.
Is possible to enable autocenter in mame2003-plus like the others core?

Taito double and triple screen games

These could be annoying as they'll boot as a tiny slither of graphics across the centre of
the screen we used to change the display in our xbox MAME emulators to make the games
boot single screen.

We found a better way to do via a small aspect ratio display change in the driver similar deal
as with Tecmo Bowl it would be a doddle to set this up for this core should it be needed
unless you have a workaround already..??

games are..........

Darius
Darius 2 (dual screen)
Darius 2 (Triple Screen)
The Ninja Warriors
Warrior Blade - Rastan Saga Episode III

TODO: use core option to show and hide MAME "Tab" menu

I have long thought it would be nice to create a core option like "display-mame-menu" that when enabled would display the MAME menu. This would allow people without a Tab key mapped to easily access the MAME configuration as long as they can get into the RetroArch "Quick Menu"

In other words:

  1. Start mame2003-plus with a game
  2. Open the the RetroArch Quick Menu. Change the core option "Display MAME Menu" to "enabled" and then return to mame2003-plus
  3. Make your changes via the menu. There is no "Exit" button but all other function is as usual.
  4. Return to the Quick Menu. Change the core option "Display MAME Menu" to "disabled"

I will assign this to myself. Brave new world!

Generating a DAT creates very weird results

When creating a DAT in the MAME menu on the latest build the DAT is not created correctly ? It's asking to rename -

1943,1943j,1943kai,1943mii > exedexes
2020bb > 2020bbn
4in1 > batman2
8ball > cvs

etc.

Dragon Spirit is flipped vertically for player 2 by default

Dragon Spirit (dspirit) seems to be flipped for player 2 be default (cocktail mode). Grant added instructions how to flip it correctly through service mode. Would it be beneficial to have it default player 2 as if it was a upright cabinet?

Rotary games

These can be a pain as the controls dont transfer to well to gamepads via the MAME inputs
anyway i have some code handy which for Downtown and Ikari Warriors III would just be
dropping into the source a couple of new Roms which are official versions of these games
but with joystick controls rather than rotary.

In the case of the following these would be Jap bootlegs of some famous SNK games which
hack out the rotary controls replacing them with again a normal joystick control setup
apart from the new roms this would require me to backport some new input code for the
games into the snk.c driver but it's doable

Ikari Warriors
Guerilla War
Victory Road

These are all supported in FBA already but should you fancy them for this ole core also
then lemmie know and i'll add em shouldn't take more than a few hours to port the code
and test the games.

TODO: add mamemagic2003 to mame2003-plus

Grant would you add your scripts to this repo, maybe within the /tools folder?

I had a few ideas in mind to contribute to making it more fully integrated with mame2003 and you reminded me earlier that it is very helpful for RetroPie users who can distinguish between working games and 'testing' games.

Creating a datfile for this new core

Ok dont be scared if you wanna talk datfiles then dont worry i wont bite well not much anyway :)
i recently spent a couple of hours updating the Neogeo driver phasing out the Kwacks roms
adding ones which match up with MAME plus their full CRC and SHA info.

I was however due to code limitations unable to do one for kof2003 as the decryption code
had changed by the time that game was playable to the extent it would not easily drop into
this core without me having to update a whole lotta Neogeo related code which infact would
have been worse as every rom would have needed updated rather than just the handfull i
added support for.

Lemmie know if this has helped with regards to datfile creation..?? also any others you may be
having issues with..?? but if the worst comes to the worst i do have a backup plan which we
should be able to create a full datfile from but it's rather hacky and well better left as a last
resort.

[Android 7.0] MAME2003 fails to start some roms correctly

Android user here. :) At the advice of @markwkidd I was instructed to open an issue that I opened at mame2003-libretro here as well. I was able to get logs but sadly they seem perfectly normal to me and @markwkidd . I can't program or compile but as an active Android user, I'm more than willing to do any testing that needs to be done so long as someone is willing to walk me through whatever needs to be done.

Description:

I tested several roms, mostly Taito games, from the MAME 2003 non-merged reference set, on the Android version of RetroArch using the MAME2003 core. With the exception of bubsympu and bublbob2, these all get stuck on a blank screen, meanwhile the aforementioned two get stuck on a screen saying "Service Switch Error"

Upon further requested testing splatter crashes RetroArch before it can successfully reach the title screen, and altbeast doesn't have sound.

Specs:

OS: Android 7.0 Nougat (32-bit)
RetroArch Version: 1.7.1
MAME 2003 Core Commit: a4f22ed
Device: Motorola Moto G5 Plus (32GB Model)
CPU: Qualcommยฎ Snapdragonโ„ข 625 (64-bit, 2 GHz Octo-core)
GPU: Adreno 506 (650 MHz)
RAM: 2 GB

It's important to note that the affected roms load and play perfectly fine on both Lakka for Raspberry Pi 3B and RetroArch for Debian when using the MAME 2003 core.


Expected Behavior:

The roms should load and play just fine.


Actual Behavior:

The roms get stuck on a blank screen or "Service Switch Error" message. Upon further requested testing, Splatterhouse (rom name splatter) crashes RA, and Altered Beast (rom name altbeast) has no sound.


Steps to Reproduce:

  • Launch RetroArch for Android
  • Load Core
    • Download Core
      • Arcade (MAME 2003)
  • Download any of the following non-merged roms from the MAME2003 Reference Set:
    • bubsympu
    • bublbob2
    • bublbobr
    • sailormn
    • zookeep
  • Load Content
  • Select one of the aforementioned roms
  • Select the Arcade (MAME 2003) core

Example:

Video of problem, recorded with Google Play Games screen recorder: https://streamable.com/u5e1j


Logs:

When using an affected rom: sailormn RA_Android7_MAME2003-grep.txt

TODO: implement TESTDRIVER handler (or something similar) for known-broken games

It seems possible to add a parameter to the XML generator function like int include_not_working. If include_not_working is set, then the XML includes all games. If it is not set, then the XML omits all games flagged as not working.

There could easily be two entries on the MAME menu -- there is probably space for something like Generate 'Working' DAT above Generate 'Full' DAT

What do you think @Arcadez and @grant2258 ?

Spiderman the video game speed and voice speech missing bug

There is a serious glitch for spiderman the video game on wii with retroarch 1.7.1

And if we watch this video, spiderman at 0:25 speak for couple of seconds, when playing that voice is missing....
https://www.youtube.com/watch?v=QVEH-i2qp8M

I try to speed it up with:
static MACHINE_DRIVER_START( system32 )

/* basic machine hardware */
//MDRV_CPU_ADD(V60, OSC_A/2/12) // Reality is 16.somethingMHz, use magic /12 factor to get approximate speed
MDRV_CPU_ADD(V60, 100000) // Reality is 16.somethingMHz, use magic /12 factor to get approximate speed

the intro of the game is now fine. Once in the game it is still very slow ...

PGM Changes

I've just commited a rather large update for the PGM games four more games should now work
plus all of them should now have full on sound via the new ICS2115 soundcore i've also backported.

The reason for going to the trouble of doin this is simple these games perform really well in
older MAME for two reasons the video code is faster plus as the protection is simulated at
this point in the MAME dev cycle.

It's the video changes in MAME105.u2 and the use of the ARM CPU to handle the protection
schemes correctly which makes the games nosedive in performance, so by hooking up the
sound in this ole core we have a viable alternative to FBA for these games now.

Now i've not been able to tryout these changes on my xbox test core as due to memory limitations
these games will not boot we use another MAME emulator for the PGM games, anyway im kinda
confident these will work ok with the code diffs but give em a whirl and let me know either way.

Just to point out before anyone asks :) the PGM core can go no further than what is supported
gamewise as we dont have the ARM CPU core in MAME2003 so no point anyone asking for the
Cave shmups or say Demon Front or The Gladiator Road Of The Sword as it's not possible to
have these in this ole core and as i mentioned above they'd run like crap anyway with the newer
code.

sound support for Fire Shark and others?

@AriaOnThePlanetes was asking about this in Discord, and I encouraged them to post an Issue here but they did not.

In very recent MAME versions, the HD647180 ROM has finally been dumped after years without it. The filename is hd647180.017. @AriaOnThePlanetes also says that "I think Teki Paki, Whoopee and Ghox also could have sound with dumped hd647180 data."

I wanted to start this issue to track the idea in case it may pan out later.

Sample Support Changes

The following samples have been updated to support new and improved versions these
will replace the existing samples from mame2003 and can easily be found via Twistys MAME
samples site.

dkong
dkongjr
vanguard

These ones are new to this core and not supported in mame2003 again they can be
grabbed via Twistys site

cosmica
fantasy
sasuke

incomplete libretro port: mame init video orientation

This is the original code from mame2003 function looking at this code it could be our vector issues as well the game kick isint drawing properly either. Im going to wait till youve finished what you are doing then we can start some work on this and hopefully get the vectors working again. As you can see form looking at the code we need to update the avinfo

int cli_frontend_init (int argc, char **argv)
{
	struct InternalMachineDriver drv;
	char buffer[128];
	char *cmd_name;
	int game_index;
	int i;

	gamename = NULL;
	game_index = -1;

	/* clear all core options */
	memset(&options,0,sizeof(options));

	/* create the rc object */
	rc = cli_rc_create();
	if (!rc)
	{
		fprintf (stderr, "error on rc creation\n");
		exit(1);
	}

	/* parse the commandline */
	if (rc_parse_commandline(rc, argc, argv, 2, config_handle_arg))
	{
		fprintf (stderr, "error while parsing cmdline\n");
		exit(1);
	}

	/* determine global configfile name */
	cmd_name = win_strip_extension(win_basename(argv[0]));
	if (!cmd_name)
	{
		fprintf (stderr, "who am I? cannot determine the name I was called with\n");
		exit(1);
	}

	sprintf (buffer, "%s.ini", cmd_name);

	/* parse mame.ini/mess.ini even if called with another name */
#ifdef MESS
	if (strcmp(cmd_name, "mess") != 0)
	{
		if (parse_config ("mess.ini", NULL))
			exit(1);
	}
#else
	if (strcmp(cmd_name, "mame") != 0)
	{
		if (parse_config ("mame.ini", NULL))
			exit(1);
	}
#endif

	/* parse cmd_name.ini */
	if (parse_config (buffer, NULL))
		exit(1);

#ifdef MAME_DEBUG
	if (parse_config( "debug.ini", NULL))
		exit(1);
#endif

	/* if requested, write out cmd_name.ini (normally "mame.ini") */
	if (createconfig)
	{
		rc_save(rc, buffer, 0);
		exit(0);
	}

	if (showconfig)
	{
		sprintf (buffer, " %s running parameters", cmd_name);
		rc_write(rc, stdout, buffer);
		exit(0);
	}

	if (showusage)
	{
		fprintf(stdout, "Usage: %s [" GAMENOUN "] [options]\n" "Options:\n", cmd_name);

		/* actual help message */
		rc_print_help(rc, stdout);
		exit(0);
	}

	/* no longer needed */
	free(cmd_name);

	/* handle playback */
	if (playbackname != NULL)
	{
        options.playback = mame_fopen(playbackname,0,FILETYPE_INPUTLOG,0);
		if (!options.playback)
		{
			fprintf(stderr, "failed to open %s for playback\n", playbackname);
			exit(1);
		}
	}

	/* check for game name embedded in .inp header */
	if (options.playback)
	{
		INP_HEADER inp_header;

		/* read playback header */
		mame_fread(options.playback, &inp_header, sizeof(INP_HEADER));

		if (!isalnum(inp_header.name[0])) /* If first byte is not alpha-numeric */
			mame_fseek(options.playback, 0, SEEK_SET); /* old .inp file - no header */
		else
		{
			for (i = 0; (drivers[i] != 0); i++) /* find game and play it */
			{
				if (strcmp(drivers[i]->name, inp_header.name) == 0)
				{
					game_index = i;
					gamename = (char *)drivers[i]->name;
					printf("Playing back previously recorded " GAMENOUN " %s (%s) [press return]\n",
							drivers[game_index]->name,drivers[game_index]->description);
					getchar();
					break;
				}
			}
		}
	}

	/* check for frontend options, horrible 1234 hack */
	if (frontend_help(gamename) != 1234)
		exit(0);

	gamename = win_basename(gamename);
	gamename = win_strip_extension(gamename);

	/* if not given by .inp file yet */
	if (game_index == -1)
	{
		/* do we have a driver for this? */
		for (i = 0; drivers[i]; i++)
			if (stricmp(gamename,drivers[i]->name) == 0)
			{
				game_index = i;
				break;
			}
	}

#ifdef MAME_DEBUG
	if (game_index == -1)
	{
		/* pick a random game */
		if (strcmp(gamename,"random") == 0)
		{
			i = 0;
			while (drivers[i]) i++;	/* count available drivers */

			srand(time(0));
			/* call rand() once to get away from the seed */
			rand();
			game_index = rand() % i;

			fprintf(stderr, "running %s (%s) [press return]",drivers[game_index]->name,drivers[game_index]->description);
			getchar();
		}
	}
#endif

	/* we give up. print a few approximate matches */
	if (game_index == -1)
	{
		fprintf(stderr, "\n\"%s\" approximately matches the following\n"
				"supported " GAMESNOUN " (best match first):\n\n", gamename);
		show_approx_matches();
		exit(1);
	}

	/* ok, got a gamename */

	/* if this is a vector game, parse vector.ini first */
	expand_machine_driver(drivers[game_index]->drv, &drv);
	if (drv.video_attributes & VIDEO_TYPE_VECTOR)
		if (parse_config ("vector.ini", NULL))
			exit(1);

	/* nice hack: load source_file.ini (omit if referenced later any) */
	{
		const struct GameDriver *tmp_gd;

		sprintf(buffer, "%s", drivers[game_index]->source_file+12);
		buffer[strlen(buffer) - 2] = 0;

		tmp_gd = drivers[game_index];
		while (tmp_gd != NULL)
		{
			if (strcmp(tmp_gd->name, buffer) == 0) break;
			tmp_gd = tmp_gd->clone_of;
		}

		if (tmp_gd == NULL)
		/* not referenced later, so load it here */
		{
			strcat(buffer, ".ini");
			if (parse_config (buffer, NULL))
				exit(1);
		}
	}

	/* now load gamename.ini */
	/* this possibly checks for clonename.ini recursively! */
	if (parse_config (NULL, drivers[game_index]))
		exit(1);

	/* handle record option */
	if (recordname)
	{
		options.record = mame_fopen(recordname,0,FILETYPE_INPUTLOG,1);
		if (!options.record)
		{
			fprintf(stderr, "failed to open %s for recording\n", recordname);
			exit(1);
		}
	}

	if (options.record)
	{
		INP_HEADER inp_header;

		memset(&inp_header, '\0', sizeof(INP_HEADER));
		strcpy(inp_header.name, drivers[game_index]->name);
		/* MAME32 stores the MAME version numbers at bytes 9 - 11
		 * MAME DOS keeps this information in a string, the
		 * Windows code defines them in the Makefile.
		 */
		/*
		   inp_header.version[0] = 0;
		   inp_header.version[1] = VERSION;
		   inp_header.version[2] = BETA_VERSION;
		 */
		mame_fwrite(options.record, &inp_header, sizeof(INP_HEADER));
	}

	/* need a decent default for debug width/height */
	if (options.debug_width == 0)
		options.debug_width = 640;
	if (options.debug_height == 0)
		options.debug_height = 480;
	options.debug_depth = 8;

	/* no sound is indicated by a 0 samplerate */
	if (!enable_sound)
		options.samplerate = 0;

	/* set the artwork options */
	options.use_artwork = ARTWORK_USE_ALL;
	if (use_backdrops == 0)
		options.use_artwork &= ~ARTWORK_USE_BACKDROPS;
	if (use_overlays == 0)
		options.use_artwork &= ~ARTWORK_USE_OVERLAYS;
	if (use_bezels == 0)
		options.use_artwork &= ~ARTWORK_USE_BEZELS;
	if (!use_artwork)
		options.use_artwork = ARTWORK_USE_NONE;

{
	/* first start with the game's built in orientation */
	int orientation = drivers[game_index]->flags & ORIENTATION_MASK;
	options.ui_orientation = orientation;

	if (options.ui_orientation & ORIENTATION_SWAP_XY)
	{
		/* if only one of the components is inverted, switch them */
		if ((options.ui_orientation & ROT180) == ORIENTATION_FLIP_X ||
				(options.ui_orientation & ROT180) == ORIENTATION_FLIP_Y)
			options.ui_orientation ^= ROT180;
	}

	/* override if no rotation requested */
	if (video_norotate)
		orientation = options.ui_orientation = ROT0;

	/* rotate right */
	if (video_ror)
	{
		/* if only one of the components is inverted, switch them */
		if ((orientation & ROT180) == ORIENTATION_FLIP_X ||
				(orientation & ROT180) == ORIENTATION_FLIP_Y)
			orientation ^= ROT180;

		orientation ^= ROT90;
	}

	/* rotate left */
	if (video_rol)
	{
		/* if only one of the components is inverted, switch them */
		if ((orientation & ROT180) == ORIENTATION_FLIP_X ||
				(orientation & ROT180) == ORIENTATION_FLIP_Y)
			orientation ^= ROT180;

		orientation ^= ROT270;
	}

	/* auto-rotate right (e.g. for rotating lcds), based on original orientation */
	if (video_autoror && (drivers[game_index]->flags & ORIENTATION_SWAP_XY) )
	{
		/* if only one of the components is inverted, switch them */
		if ((orientation & ROT180) == ORIENTATION_FLIP_X ||
				(orientation & ROT180) == ORIENTATION_FLIP_Y)
			orientation ^= ROT180;

		orientation ^= ROT90;
	}

	/* auto-rotate left (e.g. for rotating lcds), based on original orientation */
	if (video_autorol && (drivers[game_index]->flags & ORIENTATION_SWAP_XY) )
	{
		/* if only one of the components is inverted, switch them */
		if ((orientation & ROT180) == ORIENTATION_FLIP_X ||
				(orientation & ROT180) == ORIENTATION_FLIP_Y)
			orientation ^= ROT180;

		orientation ^= ROT270;
	}

	/* flip X/Y */
	if (video_flipx)
		orientation ^= ORIENTATION_FLIP_X;
	if (video_flipy)
		orientation ^= ORIENTATION_FLIP_Y;

	blit_flipx = ((orientation & ORIENTATION_FLIP_X) != 0);
	blit_flipy = ((orientation & ORIENTATION_FLIP_Y) != 0);
	blit_swapxy = ((orientation & ORIENTATION_SWAP_XY) != 0);

	if( options.vector_width == 0 && options.vector_height == 0 )
	{
		options.vector_width = 640;
		options.vector_height = 480;
	}
	if( blit_swapxy )
	{
		int temp;
		temp = options.vector_width;
		options.vector_width = options.vector_height;
		options.vector_height = temp;
	}
}

	return game_index;
}

sound glitches on game: Hook and Undercovers cops

On both game, there is sound glitch. The sound is playing well but the quality is very poor, it sound like a dead speaker. it sould like "psshhhhhh" when the character punch and the game speak (when selecting character) if you look at the game playing in youtube you will hear the difference of quality.

On wii with retroarch 1.7.1

access to this repository / adding it to libretro buildbot

Hello @Arcadez and thanks as always for your work to advance mame2003.

You mentioned you would be willing to give me commit access to this repository. If you would like to do that:

  1. I promise to be careful
  2. I will add mame2003-plus-libretro to the libretro buildbot which will make this version of the core much more accessible to people who use the RetroArch GUI
  3. I will try to help out with the process of merging your improvements back into mame2003 when the time comes for that

Adding me as a collaborator to your repository:

  1. Got to https://github.com/arcadez/-mame2003-plus-libretro/issues/new and click on Settings from the navigation bar
  2. On left click Collaborators
  3. Type in my username, markwkidd

Missing game sets between lr-mame2003 and mame2003-plus

I am not sure if it's an issue but more just an observation. These 2 sets were in the original lr-mame2003 DAT but have been removed from Plus. After comparing the two DATs these are the only 2 that have been completely removed for some reason. The rest are 100% the same minus the updates and additions.

Retropie setup file

As per trying to sort the broken sample support some Rpi users have reported i think we
need a proper Rpi setup file for mame2003-plus which is totally seperate from the original
mame2003 core as i suspect the folder paths are not being picked up correctly due
the one we have currently still using some parts of the mame2003 declerations.

I think this looks correct although if someone with more experience is this dept could cast
an eye over it that would be cool thanks.

https://www.sendspace.com/file/xq0102

YM2151 issue on altbeast

the sound has problems on the YM2151 i updated the cpu core its not that causing it it was doing it before the update to the 68k core. Just to save you the time checking that out arcadez

Transfer ownership of this core

I've been thinking about this these past couple of days and i want to ask @markwkidd
or @grant2258 since your both doin such a good job on this core of late in light of this
i'd like to transfer ownership of the git across to one of ya's

I'll still have contributer status and might chip in with the odd fix and or improvement
from current MAME but apart from that i feel my work is done here and i cant really
be bothered continually having to deal with some of the petty politics and characters
that surround the libretro scene.

I gotta say In my opinion you guys will take this core futher than i ever could anyway.
let me know which one of ya's would like it and i'll put in motion you'll have to delete
your fork firstly and then i can pass it over

Regards

How to install with Retropie

Maybe it's already explained somewhere in the docs, but couldn't find it.
How to install mame2003-plus under Retropie/ES?
Is a Pi3 compiled versions available for download ?
I would imagine best way to install is to create a "new system" in Emulation Station for "mame2003 plus" (basically with the same structure of existing "lr-mame" system but with dedicated runcommand) ; or would there be an additional option for the Arcade folder that allows, per ROM, selection of "mame2003 plus" as the core for that ROM ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.