Parametrage De L'afficage Des Jeux Avec Mame 147B


Messages recommandés

Bonjour à tous,

Je viens d'installer une version 147b de Mame (affichage dos) pour l'utiliser avec hyperspin (comme conseillé).

Ca marche très bien, mais comment peut-on paramétrer l'affichage des jeux avec la version 147B de Mame qui ne propose pas d'interface graphique.

Faut-il installer un autre logiciel ?

D'avance merci pour vos infos.

Jean-Marc

Lien vers le commentaire
Partager sur d'autres sites

Salut, si tu utilise HyperSpin celà doit être comme avec les autres interfaces comme QMC2 ou EmuLoader. C'est l'interface graphique qui lance un jeu MAME avec la configuration. Si tu lance directement MAME, alors il y a des configs pour chaques jeux, chaques drivers ou une config globale. Mame sauvegarde la config dans un fichier .ini. et pour un jeu, la config sera sauvegardée avec le nom du zip.

Exemple avec Strret Fighter 2 (World) -> D:\MAME\cfg\sf2.cfg

Donc soit tu lance MAME directement et donc il y aura des fichiers .ini pour les configurations, soit tu passe par hyperspin qui lui aussi sauvegarde la config dans un fichier. J'utilise pas hyperspin mais MAME on peut le lancer avec des agruments ce qui ensuite va faire que le jeux sera lancé avec une configuration bien précise.

Aussi quand tu es dans l'interface de MAME c'est le boution TAB qui ouvre la fenêtre pour configurer MAME. Il y a plusieurs build de MAME et le meilleur pour utiliser les filtres en gardants l'interface MAME c'est advanceMAME. Il y a aussi pinMAME pour le flipper, etc ... Il y a aussi une version de MAME et MESS combinée UME.

Universal Machine Emulator -> http://mamedev.emulab.it/haze/

Pour ma part j'utilise QMC2 + MAME Ash Build car mon utilisation de MAME c'est sur un PC et pas sur un MAME Cab. Après tout dépend de ta config, du moniteur, etc ...

EDIT: et là MAME est en version 0.153. Si c'est à cause des chd que tu reste sur MAME 0.147b, il suffif de convertir tes chd avec chdman.exe, c'est un outils en ligne de commande. Aussi il y a pas mal de CHD Naomi qui ont été redumpés car c'était des BAD DUMPS donc là il faudra le fichier.diff pour les patcher.

EDIT2: aussi prend la peine de lire le fichier config.txt. Il est dans le répertoire de MAME/docs/config.txt tout est expliqué comment lancer les jeux avec les option spécifiques et les configurations.

donc pour MAME tu fait un fichier .bat et dedans tu met le non de ton exécutable MAME avec l'argument -cc. Il va te faire un fichier mame.ini ou tu pourra ensuite modifier la config de MAME.

Exemple: mon build de mame a le nom mamep64.exe. Je fait un fichier texte et j'écrit un ligne dedans mamep64.exe -cc. je le sauvegarde avec l'extension .bat et je le lance et le mame.ini vas être mis dans la racine du répertoire MAME.

EDIT3: voilà le lien si tu veut un bon guide pour utiliser MAME en ligne de commande.

http://easyemu.mameworld.info/mameguide/mameguide-options.html

Modifié par ALI
Lien vers le commentaire
Partager sur d'autres sites

Bonjour Ali,

En fait, j'ai mis un PC à l'intérieur d'une borne, avec Mame et j'essaie des Frontend avant une installation définitive. J'ai essayé Maximus, très bien, et là j'essaie hyperspin très bien également.

Pour revenir au sujet d'origine

Donc, J'ai recopié dans Mame 0153 les fichiers cfg et ini de plusieurs jeux déjà configurés (en fait, je souhaite que l'affiche soit un peu plus large ; modifications effectuées à partir d'une version Mame avec interface graphique). ça marche, l'affichage vidéo est déjà bien conservé. dans Mame 0153.

Par contre, je n'ai toujours pas réussi à retirer les infos des jeux lors de leurs lancements. Avec un Mame muni de l'interface graphique, la commande est prévue, mais pour la version 0153, je ne sais pas comment faire

Par ailleurs, je n'ai pas bien saisi la différence entre les fichiers cfg et ini.

Lien vers le commentaire
Partager sur d'autres sites

Pour enlever le warning screen ou il faut appuiez sur ok il faut compiler avec un diff et le préciser dans la compilation.

Compiler MAME c'est pas trop compliqué et y a même des softs pour le faire assez rapidement. Le fichier .diff je peu te le donner.

diff -Nru src-old/emu/ui.c src/emu/ui.c
--- src-old/emu/ui.c	2013-01-11 08:32:48.000000000 +0100
+++ src/emu/ui.c	2013-01-19 14:31:34.000000000 +0100
@@ -312,14 +312,14 @@
 int ui_display_startup_screens(running_machine &machine, int first_time, int show_disclaimer)
 {
 	const int maxstate = 3;
-	int str = machine.options().seconds_to_run();
+	/* int str = machine.options().seconds_to_run(); */
 	int show_gameinfo = !machine.options().skip_gameinfo();
 	int show_warnings = TRUE;
 	int state;
 
 	/* disable everything if we are using -str for 300 or fewer seconds, or if we're the empty driver,
 	   or if we are debugging */
-	if (!first_time || (str > 0 && str < 60*5) || &machine.system() == &GAME_NAME(___empty) || (machine.debug_flags & DEBUG_FLAG_ENABLED) != 0)
+	/* if (!first_time || (str > 0 && str < 60*5) || &machine.system() == &GAME_NAME(___empty) || (machine.debug_flags & DEBUG_FLAG_ENABLED) != 0) */
 		show_gameinfo = show_warnings = show_disclaimer = FALSE;
 
 	/* initialize the on-screen display system */

Ensuite tu compile avec la prise en charge du diff. Si tu veux pas/connait pas comment compiler MAME je te conseil de passer par MAME Auto Compile Script http://www.emu-france.com/news/25305-mame-support-files-mame-compiler-automated-scripts-v0-212/

Il y a d'autre solutions mais moi c'est celui que j'utilise pour ajouter mes drivers sous MAME.

Autrement tu as le forum d'hyperspin ou il y a beaucoup d'info pour le configurer.

http://www.hyperspin-fe.com/forum/showthread.php?1968-Mame-Command-Line-Opts

En fait pour le fichier .cfg tu en a pas besoin puisque c'est hyperspin qui lance tes jeux. En fait quand tu lance un jeu via Hyperspin, il le lance avec les arguments en ligne de commande sur l’exécutable MAME et ton jeu s'affiche avec la config voulue.

Et la différence le fichier .cfg c'est juste un fichier xml utilisé par les frontends.

Modifié par ALI
Lien vers le commentaire
Partager sur d'autres sites

Les fichiers diff ce sont des fichiers en C pour justement ajouter ou enlever des choses pendant la compilation. Et là il suffit d'enregistrer le code que je t'ai donné (il est pas de moi le code mais il fonctionne). Tu l'enregistre sous nonag.diff et avec MAME auto compile tu as un champ pour ajouter des fichiers diff qui seront pris en compte quand tu vas compiler ton binaire MAME.

Lien vers le commentaire
Partager sur d'autres sites

Bonjour Ali,

J'ai chercher difféents tuto sur l'utilisation de mcas. Je n'ai rien trouvé.

Ensuite, j'ai recherché "comment créer un diff pour mame" rien non plus.

Ce que tu m'as indiqué, c'est le contenu du fichier diff que je dois nommé "nonag.diff". Mais, Ce diff, je le crée comment.

Ensuite je dois dois ajouter ce fichier diff au fichier Mame.exe ? en le compilant avec l'outil MCAS.

sI tu avait une documentation claire et progressive sur le sujet et l'utilisation de MCAS, ce me serait d'un grand secours.

Merci pour ton attention.

Jean-Marc

Lien vers le commentaire
Partager sur d'autres sites

Tu as un bon tuto ici pour compiler MAME.
http://headsoft.com.au/index.php?category=mame&page=mc64
Le code que t'a donné Ali tu le colles dans un fichier texte que tu renommes ensuite xxxxxxx.diff (en changeant l'extension donc), peut importe comment tu le nommes avant le point, ça peut être nonag ou autre on s'en fout.
Ensuite tu suis le tuto en récupérant les sources de MAME, le logiciel pour compiler et voilà, y a rien de très compliqué.

Après, si tu veux un diff plus complet, tu peux prendre celui-là (c'est pour la version 0.153 de MAME) :

diff -Nru src/emu/emu.mak src/emu/emu.mak
--- src/emu/emu.mak 2014-04-05 16:59:36.000000000 +0200
+++ src/emu/emu.mak 2014-04-07 22:05:14.000000000 +0200
@@ -44,6 +44,7 @@

#-------------------------------------------------
# emulator core objects
+# MKCHAMP - ADDED hiscore.o TO LIST TO COMPILE THE HISCORE PIECE
#-------------------------------------------------

EMUOBJS = \
@@ -87,6 +88,7 @@
  $(EMUOBJ)/emupal.o \
  $(EMUOBJ)/fileio.o \
  $(EMUOBJ)/hash.o \
+ $(EMUOBJ)/hiscore.o \
  $(EMUOBJ)/image.o \
  $(EMUOBJ)/info.o \
  $(EMUOBJ)/input.o \
diff -Nru src/emu/emuopts.c src/emu/emuopts.c
--- src/emu/emuopts.c 2014-04-07 08:04:18.000000000 +0200
+++ src/emu/emuopts.c 2014-04-07 22:16:03.000000000 +0200
@@ -53,6 +53,10 @@
  { OPTION_SNAPSHOT_DIRECTORY,                         "snap",      OPTION_STRING,     "directory to save screenshots" },
  { OPTION_DIFF_DIRECTORY,                             "diff",      OPTION_STRING,     "directory to save hard drive image difference files" },
  { OPTION_COMMENT_DIRECTORY,                          "comments",  OPTION_STRING,     "directory to save debugger comments" },
+
+ // MKCHAMP - ADDING CFG OPTION TO SPECIFY HISCORE DIRECTORY..."hi" BY DEFAULT
+ { NULL,                                              NULL,        OPTION_HEADER,     "CORE OUTPUT DIRECTORY OPTIONS" },
+ { OPTION_HISCORE_DIRECTORY,                          "hi",        OPTION_STRING,     "directory to save hiscores" },

  // state/playback options
  { NULL,                                              NULL,        OPTION_HEADER,     "CORE STATE/PLAYBACK OPTIONS" },
@@ -175,6 +179,12 @@
  { OPTION_HTTP,                                       "0",         OPTION_BOOLEAN,    "enable local http server" },
  { OPTION_HTTP_PORT,                                  "8080",      OPTION_STRING,     "http server listener port" },
  { OPTION_HTTP_PATH,                                  "web",       OPTION_STRING,     "path to web files" },
+
+ // MKChamp Hiscore Diff options
+ { NULL,                                              NULL,        OPTION_HEADER,     "CORE MKChamp OPTIONS" },
+ { OPTION_DISABLE_HISCORE_PATCH,                      "0",         OPTION_BOOLEAN,    "disable hiscore saving" },
+ { OPTION_DISABLE_NAGSCREEN_PATCH,                    "0",         OPTION_BOOLEAN,    "disable suppression of nagscreens" },
+ { OPTION_DISABLE_LOADING_PATCH,                      "0",         OPTION_BOOLEAN,    "disable suppression of loading screens /white box" },
  { NULL }
};

diff -Nru src/emu/emuopts.h src/emu/emuopts.h
--- src/emu/emuopts.h 2014-03-02 15:21:32.000000000 +0100
+++ src/emu/emuopts.h 2014-04-07 22:10:05.000000000 +0200
@@ -66,6 +66,8 @@
#define OPTION_SNAPSHOT_DIRECTORY   "snapshot_directory"
#define OPTION_DIFF_DIRECTORY       "diff_directory"
#define OPTION_COMMENT_DIRECTORY    "comment_directory"
+//MKCHAMP - DECLARING THE DIRECTORY OPTION FOR HIGH SCORES TO BE SAVED TO
+#define OPTION_HISCORE_DIRECTORY   "hiscore_directory"

// core state/playback options
#define OPTION_STATE                "state"
@@ -179,6 +181,11 @@
#define OPTION_AUTOBOOT_DELAY       "autoboot_delay"
#define OPTION_AUTOBOOT_SCRIPT      "autoboot_script"

+/* MKChamp Hiscore Diff Options */
+#define OPTION_DISABLE_HISCORE_PATCH  "disable_hiscore_patch"
+#define OPTION_DISABLE_NAGSCREEN_PATCH  "disable_nagscreen_patch"
+#define OPTION_DISABLE_LOADING_PATCH  "disable_loading_patch"
+
#define OPTION_HTTP                 "http"
#define OPTION_HTTP_PORT            "http_port"
#define OPTION_HTTP_PATH            "http_path"
@@ -234,6 +241,9 @@
  const char *snapshot_directory() const { return value(OPTION_SNAPSHOT_DIRECTORY); }
  const char *diff_directory() const { return value(OPTION_DIFF_DIRECTORY); }
  const char *comment_directory() const { return value(OPTION_COMMENT_DIRECTORY); }
+
+ // MKCHAMP - hiscore directory options
+ const char *hiscore_directory() const { return value(OPTION_HISCORE_DIRECTORY); }

  // core state/playback options
  const char *state() const { return value(OPTION_STATE); }
@@ -337,6 +347,11 @@
  bool skip_gameinfo() const { return bool_value(OPTION_SKIP_GAMEINFO); }
  const char *ui_font() const { return value(OPTION_UI_FONT); }
  const char *ram_size() const { return value(OPTION_RAMSIZE); }
+
+ // MKChamp Hiscore Diff options
+ bool disable_hiscore_patch() const { return bool_value(OPTION_DISABLE_HISCORE_PATCH); }
+ bool disable_nagscreen_patch() const { return bool_value(OPTION_DISABLE_NAGSCREEN_PATCH); }
+ bool disable_loading_patch() const { return bool_value(OPTION_DISABLE_LOADING_PATCH); }

  bool confirm_quit() const { return bool_value(OPTION_CONFIRM_QUIT); }
  bool ui_mouse() const { return bool_value(OPTION_UI_MOUSE); }
diff -Nru src/emu/hiscore.c src/emu/hiscore.c
--- src/emu/hiscore.c 1970-01-01 01:00:00.000000000 +0100
+++ src/emu/hiscore.c 2014-04-09 01:11:26.000000000 +0200
@@ -0,0 +1,376 @@
+/***************************************************************************
+
+    hiscore.c
+
+    Manages the hiscore system.
+
+    This is an unofficial version based on MAME.
+    Please do not send any reports from this build to the MAME team.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "emuopts.h"
+#include "hiscore.h"
+
+
+#define MAX_CONFIG_LINE_SIZE 48
+
+static emu_timer *timer;
+
+struct memory_range
+{
+ UINT32 cpu, addr, num_bytes, start_value, end_value;
+ struct memory_range *next;
+};
+
+static struct
+{
+ int hiscores_have_been_loaded;
+ memory_range *mem_range;
+} state;
+
+
+static void copy_to_memory (running_machine &machine, int cpu, int addr, UINT8 *source, int num_bytes)
+{
+ int i;
+ address_space *targetspace;
+
+ if (strstr(machine.system().source_file,"cinemat.c") > 0)
+ {
+  targetspace = &machine.cpu[cpu]->memory().space(AS_DATA);
+ }
+ else
+ {
+  targetspace = &machine.cpu[cpu]->memory().space(AS_PROGRAM);
+ }
+
+ for (i=0; i<num_bytes; i++)
+ {
+      targetspace->write_byte(addr+i, source[i]);
+ }
+}
+
+static void copy_from_memory (running_machine &machine, int cpu, int addr, UINT8 *dest, int num_bytes)
+{
+ int i;
+ address_space *targetspace;
+
+ if (strstr(machine.system().source_file,"cinemat.c") > 0)
+ {
+  targetspace = &machine.cpu[cpu]->memory().space(AS_DATA);
+ }
+ else
+ {
+  targetspace = &machine.cpu[cpu]->memory().space(AS_PROGRAM);
+ }
+
+ for (i=0; i<num_bytes; i++)
+ {
+  dest[i] = targetspace->read_byte(addr+i);
+ }
+}
+
+/*  hexstr2num extracts and returns the value of a hexadecimal field from the
+    character buffer pointed to by pString.
+    When hexstr2num returns, *pString points to the character following
+    the first non-hexadecimal digit, or NULL if an end-of-string marker
+    (0x00) is encountered. */
+static UINT32 hexstr2num (const char **pString)
+{
+ const char *string = *pString;
+ UINT32 result = 0;
+
+ if (string)
+ {
+  for(;;)
+  {
+   char c = *string++;
+   int digit;
+
+   if (c>='0' && c<='9')
+   {
+    digit = c-'0';
+   }
+   else if (c>='a' && c<='f')
+   {
+    digit = 10+c-'a';
+   }
+   else if (c>='A' && c<='F')
+   {
+    digit = 10+c-'A';
+   }
+   else
+   {
+    /* not a hexadecimal digit */
+    /* safety check for premature EOL */
+    if (!c)
+     string = NULL;
+    break;
+   }
+   result = result*16 + digit;
+  }
+  *pString = string;
+ }
+ return result;
+}
+
+/*  given a line in the hiscore.dat file, determine if it encodes a
+    memory range (or a game name).
+    For now we assume that CPU number is always a decimal digit, and
+    that no game name starts with a decimal digit. */
+static int is_mem_range (const char *pBuf)
+{
+ char c;
+
+ for(;;)
+ {
+  c = *pBuf++;
+  if (c == 0)
+   return 0; /* premature EOL */
+  if (c == ':')
+   break;
+ }
+
+ c = *pBuf; /* character following first ':' */
+
+ return (c>='0' && c<='9') || (c>='a' && c<='f') || (c>='A' && c<='F');
+}
+
+/*  matching_game_name is used to skip over lines until we find <gamename>: */
+static int matching_game_name (const char *pBuf, const char *name)
+{
+ while (*name)
+ {
+  if (*name++ != *pBuf++)
+   return 0;
+ }
+ return (*pBuf == ':');
+}
+
+/* safe_to_load checks the start and end values of each memory range */
+static int safe_to_load (running_machine &machine)
+{
+ memory_range *mem_range = state.mem_range;
+ address_space *srcspace;
+
+ if (strstr(machine.system().source_file,"cinemat.c") > 0)
+ {
+  srcspace = &machine.cpu[mem_range->cpu]->memory().space(AS_DATA);
+ }
+ else
+ {
+  srcspace = &machine.cpu[mem_range->cpu]->memory().space(AS_PROGRAM);
+ }
+
+ while (mem_range)
+ {
+  if (srcspace->read_byte(mem_range->addr) != mem_range->start_value)
+  {
+   return 0;
+  }
+
+  if (srcspace->read_byte(mem_range->addr + mem_range->num_bytes - 1) != mem_range->end_value)
+  {
+   return 0;
+  }
+
+  mem_range = mem_range->next;
+ }
+ return 1;
+}
+
+/* hiscore_free disposes of the mem_range linked list */
+static void hiscore_free (void)
+{
+ memory_range *mem_range = state.mem_range;
+
+ while (mem_range)
+ {
+  memory_range *next = mem_range->next;
+  global_free_array(mem_range);
+  mem_range = next;
+ }
+ state.mem_range = NULL;
+}
+
+static void hiscore_load (running_machine &machine)
+{
+ file_error filerr;
+   emu_file f(machine.options().hiscore_directory(), OPEN_FLAG_READ);
+   filerr = f.open(machine.basename(), ".hi");   
+ state.hiscores_have_been_loaded = 1;
+
+ if (filerr == FILERR_NONE)
+ {
+  memory_range *mem_range = state.mem_range;
+
+  while (mem_range)
+  {
+   UINT8 *data = global_alloc_array(UINT8, mem_range->num_bytes);
+
+   if (data)
+   {
+    /*  this buffer will almost certainly be small
+                   enough to be dynamically allocated, but let's
+                   avoid memory trashing just in case */
+             f.read(data, mem_range->num_bytes);
+    copy_to_memory (machine,mem_range->cpu, mem_range->addr, data, mem_range->num_bytes);
+    global_free_array(data);
+   }
+   mem_range = mem_range->next;
+  }
+  f.close();
+ }
+}
+
+static void hiscore_save (running_machine &machine)
+{
+ file_error filerr;
+   emu_file f(machine.options().hiscore_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS);
+   filerr = f.open(machine.basename(), ".hi");
+
+ if (filerr == FILERR_NONE)
+ {
+  memory_range *mem_range = state.mem_range;
+
+  while (mem_range)
+  {
+   UINT8 *data = global_alloc_array(UINT8, mem_range->num_bytes);
+
+   if (data)
+   {
+    /*  this buffer will almost certainly be small
+                        enough to be dynamically allocated, but let's
+                        avoid memory trashing just in case */
+    copy_from_memory (machine, mem_range->cpu, mem_range->addr, data, mem_range->num_bytes);
+    f.write(data, mem_range->num_bytes);
+    global_free_array(data);
+   }
+   mem_range = mem_range->next;
+  }
+  f.close();
+ }
+}
+
+/* call hiscore_update periodically (i.e. once per frame) */
+static TIMER_CALLBACK( hiscore_periodic )
+{
+ if (state.mem_range)
+ {
+  if (!state.hiscores_have_been_loaded)
+  {
+   if (safe_to_load(machine))
+   {
+    hiscore_load(machine);
+    timer->enable(false);
+   }
+  }
+ }
+}
+
+/* call hiscore_close when done playing game */
+void hiscore_close (running_machine &machine)
+{
+ if (state.hiscores_have_been_loaded)
+  hiscore_save(machine);
+ hiscore_free();
+}
+
+/* call hiscore_open once after loading a game */
+void hiscore_init (running_machine &machine)
+{
+ memory_range *mem_range = state.mem_range;
+ address_space *initspace;
+ file_error filerr;
+   const char *name = machine.system().name;
+ state.hiscores_have_been_loaded = 0;
+
+ while (mem_range)
+ {
+  if (strstr(machine.system().source_file,"cinemat.c") > 0)
+  {
+   initspace = &machine.cpu[mem_range->cpu]->memory().space(AS_DATA);
+   initspace->write_byte(mem_range->addr, ~mem_range->start_value);
+   initspace->write_byte(mem_range->addr + mem_range->num_bytes-1, ~mem_range->end_value);
+   mem_range = mem_range->next;
+  }
+  else
+  {
+   initspace = &machine.cpu[mem_range->cpu]->memory().space(AS_PROGRAM);
+   initspace->write_byte(mem_range->addr, ~mem_range->start_value);
+     initspace->write_byte(mem_range->addr + mem_range->num_bytes-1, ~mem_range->end_value);
+   mem_range = mem_range->next;
+  }
+ }
+
+ state.mem_range = NULL;
+ emu_file f(OPEN_FLAG_READ);
+   filerr = f.open("hiscore", ".dat");
+
+ if(filerr == FILERR_NONE)
+ {
+  char buffer[MAX_CONFIG_LINE_SIZE];
+  enum { FIND_NAME, FIND_DATA, FETCH_DATA } mode;
+  mode = FIND_NAME;
+
+  while (f.gets(buffer, MAX_CONFIG_LINE_SIZE))
+  {
+   if (mode == FIND_NAME)
+   {
+    if (matching_game_name (buffer, name))
+    {
+     mode = FIND_DATA;
+    }
+   }
+   else if (is_mem_range (buffer))
+   {
+    const char *pBuf = buffer;
+    mem_range = (memory_range *)malloc(sizeof(memory_range));
+
+    if (mem_range)
+    {
+     mem_range->cpu = hexstr2num (&pBuf);
+     mem_range->addr = hexstr2num (&pBuf);
+     mem_range->num_bytes = hexstr2num (&pBuf);
+     mem_range->start_value = hexstr2num (&pBuf);
+     mem_range->end_value = hexstr2num (&pBuf);
+
+     mem_range->next = NULL;
+     {
+      memory_range *last = state.mem_range;
+      while (last && last->next) last = last->next;
+
+      if (last == NULL)
+      {
+       state.mem_range = mem_range;
+      }
+      else
+      {
+       last->next = mem_range;
+      }
+     }
+
+     mode = FETCH_DATA;
+    }
+    else
+    {
+     hiscore_free();
+     break;
+    }
+   }
+   else
+   {
+    /* line is a game name */
+    if (mode == FETCH_DATA)
+     break;
+   }
+  }
+  f.close();
+ }
+
+ timer = machine.scheduler().timer_alloc(FUNC(hiscore_periodic));
+ timer->adjust(machine.first_screen()->frame_period(), 0, machine.first_screen()->frame_period());
+
+ machine.add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(hiscore_close), &machine));
+}
diff -Nru src/emu/hiscore.h src/emu/hiscore.h
--- src/emu/hiscore.h 1970-01-01 01:00:00.000000000 +0100
+++ src/emu/hiscore.h 2014-04-07 22:10:05.000000000 +0200
@@ -0,0 +1,19 @@
+/***************************************************************************
+
+    hiscore.h
+
+    Manages the hiscore system.
+
+    Copyright (c) 1996-2006, Nicola Salmoria and the MAME Team.
+    Visit http://mamedev.org for licensing and usage restrictions.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __HISCORE_H__
+#define __HISCORE_H__
+
+void hiscore_init( running_machine &machine );
+
+#endif /* __HISCORE_H__ */
diff -Nru src/emu/machine.c src/emu/machine.c
--- src/emu/machine.c 2014-03-11 17:54:58.000000000 +0100
+++ src/emu/machine.c 2014-04-13 19:27:44.000000000 +0200
@@ -75,6 +75,8 @@
#include "debugger.h"
#include "render.h"
#include "cheat.h"
+//MKCHAMP - ADDING HEADER FILE HISCORE FOR INCLUSION
+#include "hiscore.h"
#include "ui/selgame.h"
#include "uiinput.h"
#include "crsshair.h"
@@ -110,6 +112,8 @@
//  running_machine - constructor
//-------------------------------------------------

+int cpunum;
+
running_machine::running_machine(const machine_config &_config, osd_interface &osd, bool exit_to_game_select)
  : firstcpu(NULL),
   primary_screen(NULL),
@@ -158,6 +162,11 @@
   }
  screen_device_iterator screeniter(root_device());
  primary_screen = screeniter.first();
+
+ //MKCHAMP--initialize the cpu for hiscore
+  cpu[0] = firstcpu;
+  for (cpunum = 1; cpunum < ARRAY_LENGTH(cpu) && cpu[cpunum - 1] != NULL; cpunum++)
+   cpu[cpunum] = cpu[cpunum - 1]->next();

  // fetch core options
  if (options().debug())
@@ -299,6 +308,10 @@
  // initialize lua
  m_lua_engine.initialize();

+ //MKCHAMP - INITIALIZING THE HISCORE ENGINE
+ if (! options().disable_hiscore_patch())
+  hiscore_init(*this);
+
  // disallow save state registrations starting here
  m_save.allow_registration(false);
}
diff -Nru src/emu/machine.h src/emu/machine.h
--- src/emu/machine.h 2014-04-07 08:04:18.000000000 +0200
+++ src/emu/machine.h 2014-04-13 19:30:24.000000000 +0200
@@ -258,6 +258,7 @@

  // CPU information
  cpu_device *            firstcpu;           // first CPU
+ device_t *          cpu[8];             // MKChamp--CPU for hiscore support

private:
  // video-related information
diff -Nru src/emu/mame.c src/emu/mame.c
--- src/emu/mame.c 2014-04-07 08:04:18.000000000 +0200
+++ src/emu/mame.c 2014-04-07 22:20:19.000000000 +0200
@@ -79,6 +79,8 @@
#include "debugger.h"
#include "render.h"
#include "cheat.h"
+//MKCHAMP - ADDING HEADER FILE HISCORE FOR INCLUSION
+#include "hiscore.h"
#include "ui/ui.h"
#include "uiinput.h"
#include "crsshair.h"
diff -Nru src/emu/profiler.c src/emu/profiler.c
--- src/emu/profiler.c 2013-10-16 10:14:49.000000000 +0200
+++ src/emu/profiler.c 2014-04-07 22:10:06.000000000 +0200
@@ -156,6 +156,8 @@
   { PROFILER_BLIT,             "OSD Blitting" },
   { PROFILER_SOUND,            "Sound Generation" },
   { PROFILER_TIMER_CALLBACK,   "Timer Callbacks" },
+  //MKCHAMP - INCLUDING THE HISCORE ENGINE TO THE PROFILER
+  { PROFILER_HISCORE,          "Hiscore" },
   { PROFILER_INPUT,            "Input Processing" },
   { PROFILER_MOVIE_REC,        "Movie Recording" },
   { PROFILER_LOGERROR,         "Error Logging" },
diff -Nru src/emu/profiler.h src/emu/profiler.h
--- src/emu/profiler.h 2013-10-16 10:14:49.000000000 +0200
+++ src/emu/profiler.h 2014-04-13 19:31:49.000000000 +0200
@@ -51,6 +51,8 @@
  PROFILER_BLIT,
  PROFILER_SOUND,
  PROFILER_TIMER_CALLBACK,
+ //MKCHAMP - INCLUDING THE HISCORE ENGINE TO THE PROFILER
+ PROFILER_HISCORE,
  PROFILER_INPUT,             // input.c and inptport.c
  PROFILER_MOVIE_REC,         // movie recording
  PROFILER_LOGERROR,          // logerror
diff -Nru src/emu/romload.c src/emu/romload.c
--- src/emu/romload.c 2014-03-25 00:05:08.000000000 +0100
+++ src/emu/romload.c 2014-04-07 22:10:06.000000000 +0200
@@ -481,7 +481,10 @@
static void display_loading_rom_message(romload_private *romdata, const char *name, bool from_list)
{
  char buffer[200];
-
+ //MKCHAMP - DISABLING WHOLE SUB ROUTINE TO ELIMINATE LOADING MESSAGES
+  //REMOVING ALWAYS
+  //if (!options_get_bool(mame_options(), OPTION_DISABLE_LOADING_PATCH))
+   return;
  if (name != NULL)
   sprintf(buffer, "Loading %s (%d%%)", from_list ? "Software" : emulator_info::get_capstartgamenoun(), (UINT32)(100 * (UINT64)romdata->romsloadedsize / (UINT64)romdata->romstotalsize));
  else
diff -Nru src/emu/ui/ui.c src/emu/ui/ui.c
--- src/emu/ui/ui.c 2014-04-07 08:04:18.000000000 +0200
+++ src/emu/ui/ui.c 2014-04-13 19:41:14.000000000 +0200
@@ -332,11 +332,17 @@
   switch (state)
   {
    case 0:
+    //MKCHAMP - BREAKING OUT SO DISCLAIMERS AREN'T SHOWN
+    if (!machine().options().disable_nagscreen_patch())
+      break;
     if (show_disclaimer && disclaimer_string(messagebox_text).len() > 0)
      set_handler(handler_messagebox_ok, 0);
     break;

    case 1:
+    //MKCHAMP - BREAKING OUT SO WARNINGS AREN'T SHOWN
+    if (!machine().options().disable_nagscreen_patch())
+     break;
     if (show_warnings && warnings_string(messagebox_text).len() > 0)
     {
      set_handler(handler_messagebox_ok, 0);
@@ -348,6 +354,9 @@
     break;

    case 2:
+    //MKCHAMP - BREAKING OUT SO GAME INFO ISN'T SHOWN
+    if (!machine().options().disable_nagscreen_patch())
+        break;
     if (show_gameinfo && game_info_astring(messagebox_text).len() > 0)
      set_handler(handler_messagebox_anykey, 0);
     break;
@@ -358,12 +367,18 @@
   while (machine().input().poll_switches() != INPUT_CODE_INVALID) ;

   // loop while we have a handler
-  while (m_handler_callback != handler_ingame && !machine().scheduled_event_pending() && !ui_menu::stack_has_special_main_menu())
+  //MKChamp Disabling of whitebox
+  if (machine().options().disable_nagscreen_patch())
+  {
+     while (m_handler_callback != handler_ingame && !machine().scheduled_event_pending() && !ui_menu::stack_has_special_main_menu())
    machine().video().frame_update();
+  }

   // clear the handler and force an update
   set_handler(handler_ingame, 0);
-  machine().video().frame_update();
+  //MKChamp Disabling of whitebox
+  if (machine().options().disable_nagscreen_patch())
+   machine().video().frame_update();
  }

  // if we're the empty driver, force the menus on
@@ -383,14 +398,22 @@
  osd_ticks_t curtime = osd_ticks();

  // copy in the new text
- messagebox_text.cpy(text);
- messagebox_backcolor = UI_BACKGROUND_COLOR;
+ //MKCHAMP -- DISABLE IS NOT DISABLED :-)
+ if (machine().options().disable_nagscreen_patch())
+ {
+  messagebox_text.cpy(text);
+  messagebox_backcolor = UI_BACKGROUND_COLOR;
+ }

  // don't update more than 4 times/second
  if (force || (curtime - lastupdatetime) > osd_ticks_per_second() / 4)
  {
   lastupdatetime = curtime;
-  machine().video().frame_update();
+  //MKCHAMP - CALLING NEW SUB CALLED video_frame_update_hi SO WHITE BOX DOES NOT SHOW BUT REFRESHSPEED IS STILL CALCULATED
+  if (!machine().options().disable_loading_patch())
+   machine().video().frame_update_hi();
+  else
+   machine().video().frame_update();
  }
}

diff -Nru src/emu/video.c src/emu/video.c
--- src/emu/video.c 2014-04-07 08:04:18.000000000 +0200
+++ src/emu/video.c 2014-04-07 23:06:12.000000000 +0200
@@ -472,6 +472,67 @@
  m_movie_frame = 0;
}

+/*-------------------------------------------------
+   MKCHAMP - BELOW IS THE NEW SUB CALLED FROM UI.C. ONLY DIFFERENCE BETWEEN THIS SUB AND
+   frame_update IS IT CALLS NEW SUB CALLED update_hi INSTEAD OF update (located
+   in osd/windows/video.c)
+-------------------------------------------------*/
+
+void video_manager::frame_update_hi(bool debug)
+{
+ // only render sound and video if we're in the running phase
+ int phase = machine().phase();
+ bool skipped_it = m_skipping_this_frame;
+ if (phase == MACHINE_PHASE_RUNNING && (!machine().paused() || machine().options().update_in_pause()))
+ {
+  bool anything_changed = finish_screen_updates();
+
+  // if none of the screens changed and we haven't skipped too many frames in a row,
+  // mark this frame as skipped to prevent throttling; this helps for games that
+  // don't update their screen at the monitor refresh rate
+  if (!anything_changed && !m_auto_frameskip && m_frameskip_level == 0 && m_empty_skip_count++ < 3)
+   skipped_it = true;
+  else
+   m_empty_skip_count = 0;
+ }
+
+ // draw the user interface
+ machine().ui().update_and_render(&machine().render().ui_container());
+
+ // update the internal render debugger
+ debugint_update_during_game(machine());
+
+ // if we're throttling, synchronize before rendering
+ attotime current_time = machine().time();
+ if (!debug && !skipped_it && effective_throttle())
+  update_throttle(current_time);
+
+ // ask the OSD to update
+ g_profiler.start(PROFILER_BLIT);
+ machine().osd().update_hi(!debug && skipped_it);
+ g_profiler.stop();
+
+ // perform tasks for this frame
+ if (!debug)
+  machine().call_notifiers(MACHINE_NOTIFY_FRAME);
+
+ // update frameskipping
+ if (!debug)
+  update_frameskip();
+
+ // update speed computations
+ if (!debug)
+  recompute_speed(current_time);
+
+ // call the end-of-frame callback
+ if (phase == MACHINE_PHASE_RUNNING)
+ {
+  // reset partial updates if we're paused or if the debugger is active
+  if (machine().first_screen() != NULL && (machine().paused() || debug || debugger_within_instruction_hook(machine())))
+   machine().first_screen()->reset_partial_updates();
+ }
+}
+

//-------------------------------------------------
//  add_sound_to_recording - add sound to a movie
diff -Nru src/emu/video.h src/emu/video.h
--- src/emu/video.h 2014-03-11 17:54:58.000000000 +0100
+++ src/emu/video.h 2014-04-07 22:10:27.000000000 +0200
@@ -79,6 +79,9 @@

  // render a frame
  void frame_update(bool debug = false);
+
+ // MKCHAMP - DECLARING THE NEW video_frame_update_hi SUB
+  void frame_update_hi(bool debug = false);

  // current speed helpers
  astring &speed_text(astring &string);
diff -Nru src/mame/machine/cps2crpt.c src/mame/machine/cps2crpt.c
--- src/mame/machine/cps2crpt.c 2014-02-28 01:05:11.000000000 +0100
+++ src/mame/machine/cps2crpt.c 2014-04-07 19:56:43.000000000 +0200
@@ -111,6 +111,7 @@
*******************************************************************************/

#include "emu.h"
+#include "emuopts.h"
#include "cpu/m68000/m68000.h"
#include "ui/ui.h"
#include "includes/cps1.h"
@@ -672,9 +673,13 @@

   if ((i & 0xff) == 0)
   {
-   char loadingMessage[256]; // for displaying with UI
-   sprintf(loadingMessage, "Decrypting %d%%", i*100/0x10000);
-   machine.ui().set_startup_text(loadingMessage,FALSE);
+    //MKCHAMP - DISABLING THE DECRYPING MESSAGE 
+    if (machine.options().disable_loading_patch())
+    {
+     char loadingMessage[256]; // for displaying with UI
+     sprintf(loadingMessage, "Decrypting %d%%", i*100/0x10000);
+     machine.ui().set_startup_text(loadingMessage,FALSE);
+    }
   }


diff -Nru src/osd/osdepend.c src/osd/osdepend.c
--- src/osd/osdepend.c 2014-02-19 08:07:32.000000000 +0100
+++ src/osd/osdepend.c 2014-04-07 22:10:27.000000000 +0200
@@ -86,6 +86,22 @@
  //
}

+//-------------------------------------------------
+//  MKChamp update_hi - periodic system update
+//-------------------------------------------------
+
+void osd_interface::update_hi(bool skip_redraw)
+{
+ //
+ // This method is called periodically to flush video updates to the
+ // screen, and also to allow the OSD a chance to update other systems
+ // on a regular basis. In general this will be called at the frame
+ // rate of the system being run; however, it may be called at more
+ // irregular intervals in some circumstances (e.g., multi-screen games
+ // or games with asynchronous updates).
+ //
+}
+

//-------------------------------------------------
//  init_debugger - perform debugger-specific
diff -Nru src/osd/osdepend.h src/osd/osdepend.h
--- src/osd/osdepend.h 2013-10-16 10:14:49.000000000 +0200
+++ src/osd/osdepend.h 2014-04-07 22:10:27.000000000 +0200
@@ -64,6 +64,9 @@

  // video overridables
  virtual void *get_slider_list();
+
+ //MKCHAMP - DECLARING THE NEW osd_update_hi SUB
+  virtual void update_hi(bool skip_redraw);

private:
  // internal state
diff -Nru src/osd/windows/video.c src/osd/windows/video.c
--- src/osd/windows/video.c 2014-01-29 13:47:56.000000000 +0100
+++ src/osd/windows/video.c 2014-04-07 22:10:27.000000000 +0200
@@ -193,6 +193,28 @@
  check_osd_inputs(machine());
}

+//============================================================
+//  MKCHAMP - BELOW IS THE NEW SUB CALLED FROM emu/video.c. ONLY
+//  DIFFERENCE BETWEEN THIS SUB AND osd_update IS IT CALLS NEW SUB CALLED winwindow_video_window_update_hi
+//  INSTEAD OF winwindow_video_window_update (located in osd/windows/window.c)
+//============================================================
+
+void windows_osd_interface::update_hi(bool skip_redraw)
+{
+ // ping the watchdog on each update
+ winmain_watchdog_ping();
+
+ // if we're not skipping this redraw, update all windows
+ if (!skip_redraw)
+  for (win_window_info *window = win_window_list; window != NULL; window = window->next)
+   winwindow_video_window_update_hi(window);
+
+ // poll the joystick values here
+ winwindow_process_events(machine(), TRUE, FALSE);
+ wininput_poll(machine());
+ check_osd_inputs(machine());
+}
+


//============================================================
diff -Nru src/osd/windows/window.c src/osd/windows/window.c
--- src/osd/windows/window.c 2013-12-24 09:24:51.000000000 +0100
+++ src/osd/windows/window.c 2014-04-07 22:10:27.000000000 +0200
@@ -817,6 +817,85 @@
  mtlog_add("winwindow_video_window_update: end");
}

+//============================================================
+//  MKCHAMP - LAST OF THE NEW SUB CHAIN. FOR THOSE FOLLOWING, THE PATH IS:
+//  emu/ui.c->ui_set_startup_text CALLS emu/video.c->video_frame_update_hi WHICH CALLS
+//  osd/windows/video.c->osd_update_hi WHICH CALLS THIS SUB.
+//  THE ONLY DIFFERENCE BETWEEN THIS SUB AND winwindow_video_window_update IS IT DOES NOT
+//  perform PostMessage(window->hwnd, WM_USER_REDRAW, 0, (LPARAM)primlist) OR
+//  SendMessage(window->hwnd, WM_USER_REDRAW, 0, (LPARAM)primlist)
+//  ALL THIS DOES IS ALLOW MAME TO PROPERLY RUN TO CALCULATE THE REFRESHSPEED/ETC. WITHOUT
+//  GIVING THE WHITE BOX THAT SEEMS TO ANNOY SOME PEOPLE!
+//============================================================
+
+void winwindow_video_window_update_hi(win_window_info *window)
+{
+ int targetview, targetorient;
+ render_layer_config targetlayerconfig;
+
+ assert(GetCurrentThreadId() == main_threadid);
+
+ mtlog_add("winwindow_video_window_update: begin");
+
+ // see if the target has changed significantly in window mode
+ targetview = window->target->view();
+ targetorient = window->target->orientation();
+ targetlayerconfig = window->target->layer_config();
+ if (targetview != window->targetview || targetorient != window->targetorient || targetlayerconfig != window->targetlayerconfig)
+ {
+  window->targetview = targetview;
+  window->targetorient = targetorient;
+  window->targetlayerconfig = targetlayerconfig;
+
+  // in window mode, reminimize/maximize
+  if (!window->fullscreen)
+  {
+   if (window->isminimized)
+    SendMessage(window->hwnd, WM_USER_SET_MINSIZE, 0, 0);
+   if (window->ismaximized)
+    SendMessage(window->hwnd, WM_USER_SET_MAXSIZE, 0, 0);
+  }
+ }
+
+ // if we're visible and running and not in the middle of a resize, draw
+ if (window->hwnd != NULL && window->target != NULL && window->drawdata != NULL)
+ {
+  int got_lock = TRUE;
+
+  mtlog_add("winwindow_video_window_update: try lock");
+
+  // only block if we're throttled
+  if (window->machine().video().throttled() || timeGetTime() - last_update_time > 250)
+   osd_lock_acquire(window->render_lock);
+  else
+   got_lock = osd_lock_try(window->render_lock);
+
+  // only render if we were able to get the lock
+  if (got_lock)
+  {
+  // render_primitive_list *primlist;
+
+   mtlog_add("winwindow_video_window_update: got lock");
+
+   // don't hold the lock; we just used it to see if rendering was still happening
+   osd_lock_release(window->render_lock);
+
+   // ensure the target bounds are up-to-date, and then get the primitives
+  // primlist = (*draw.window_get_primitives)(window);
+   (*draw.window_get_primitives)(window);
+   // post a redraw request with the primitive list as a parameter
+   last_update_time = timeGetTime();
+   mtlog_add("winwindow_video_window_update: PostMessage start");
+  // if (multithreading_enabled)
+  //  PostMessage(window->hwnd, WM_USER_REDRAW, 0, (LPARAM)primlist);
+  // else
+  //  SendMessage(window->hwnd, WM_USER_REDRAW, 0, (LPARAM)primlist);
+   mtlog_add("winwindow_video_window_update: PostMessage end");
+  }
+ }
+
+ mtlog_add("winwindow_video_window_update: end");
+}


//============================================================
diff -Nru src/osd/windows/window.h src/osd/windows/window.h
--- src/osd/windows/window.h 2013-12-16 18:08:45.000000000 +0100
+++ src/osd/windows/window.h 2014-04-07 22:10:27.000000000 +0200
@@ -119,6 +119,8 @@
BOOL winwindow_has_focus(void);
void winwindow_update_cursor_state(running_machine &machine);
void winwindow_video_window_update(win_window_info *window);
+//MKCHAMP - DECLARING THE NEW SUB winwindow_video_window_update_hi
+void winwindow_video_window_update_hi(win_window_info *window);
win_monitor_info *winwindow_video_window_monitor(win_window_info *window, const RECT *proposed);

LRESULT CALLBACK winwindow_video_window_proc(HWND wnd, UINT message, WPARAM wparam, LPARAM lparam);
diff -Nru src/osd/windows/winmain.h src/osd/windows/winmain.h
--- src/osd/windows/winmain.h 2013-10-16 10:14:49.000000000 +0200
+++ src/osd/windows/winmain.h 2014-04-13 19:46:57.000000000 +0200
@@ -316,6 +316,8 @@

private:
  static void osd_exit(running_machine &machine);
+ //MKChamp - Declaring hi subroutine
+ virtual void update_hi(bool skip_redraw);

  static const int DEFAULT_FONT_HEIGHT = 200;
};

Il inclut le no nag screen, les hiscores et d'autres trucs.
L'avantage c'est que tu peux les activer/désactiver depuis le fichier mame.ini une fois que ce sera compilé.

Modifié par Blinker
Lien vers le commentaire
Partager sur d'autres sites

Bonjour Blinker,

J'ai installé le logiciel Mame compilateur 64

Puis WinGW en C:\WinGW

Dans ce dossier, j'ai installer le diff (fichier txt transformé en diff avec le long contenu du diff que l'on peut activé ou désactivé) dans le sous-dossier patches

Et j'ai installer le fichier source de Mame 0153 dans le sous-dossier "source"

J'ai indiqué les chemin comme dans le tuto à l'aide des boutons prévus à cet effet.

Quand je clique sur Apply Patch, j'obtiens un message d'erreur :

Error Applying Patch.
PatchDiff(): Le chemin d'accès spécifié est introuvable

Pourtant le chemin du patch est juste (S'agit-il d'un chemin pour un autre fichier ?)

Lorsque que je clique sur "Go!", un autre message d'erreur s'affiche :

Compiling Mame...
Using Parameters TARGETOS=win32 TARGET=mame OSD=windows NOWERROR=1

Error Compiling Mame.
CompileMame(): Le chemin d'accès spécifié est introuvable

Est-ce que j'oublie de paramétrer quelque chose (J'ai un windows vista 32 bits avec un Intel Celeron)

Par ailleurs, le tuto, fait référence à MameUI, puis copier un dossier "scr" j'ai installé MameUI pour voir de quoi il s'agissait, mais je n'ai pas de dossier "scr"

Est-ce que j'oublie une étape ?

Par ailleurs, la source, c'est le fichier de Mame au format zip ? j'ai essayé également également avec le fichier exe, mais j'obtiens toujours le même résultat.

Par ailleurs, j'ai également essayé avec le dif d'ali, mêmes messages d'erreur.

Voilà où j'en suis ?

J'espère que je suis suffisamment explicite.

Merci pour votre aide

Jean-Marc

Lien vers le commentaire
Partager sur d'autres sites

Le tuto que je t'ai donné, faut l'adapter avec les récentes mises à jour de MAME.

Etape 1 à 3 : ça devrait être bon pour toi déjà.

Etape 4 : le hiscore c'est celui-là : http://mamestuff.lowtrucks.net/MKChamp/hi_153.txt (c'est le fichier du code que je t'ai donné dans mon précédent message, tu changes l'extension en diff)

Etape 5 : c'est pas la version 0.147u3 que tu dois prendre, mais la 0.153b, ici : http://mamedev.org/downloader.php?file=releases/mame0153s.zip

Etape 6 : tu t'en fout.

Etape 7 : sources de MAMEUI : http://www.mameui.info/MameUIs.7z (site officiel : http://www.mameui.info/)

Etape 8 : Tu t'en fout.

Etape 9 : tu appliques uniquement le patch que je t'ai filé (celui récupéré en Etape 4)

Etape 10 : il te faut cocher ça c'est important : "check you have the WinUI build option selected under OSD"

C'est dans l'onglet Target, au champ OSD, tu dois sélectionner MAMEUI

En espérant que ça t'aura aidé. Tiens nous au courant. :)

Modifié par Blinker
Lien vers le commentaire
Partager sur d'autres sites

Bonjour à tous,

J'ai essayé de nouveau avec les fichier indiqués, même résultat.

Je me suis rabattu sur MCAS; j'ai placé dans le source : MAME0153S.zip et MamUIs153.7z

J'ai placé le très long diff (fichier format diff) dans le dossier Extra.

En suivant un tuto

J'ai choisi Mame, indiqué la version 153, MINGW-MAME20121207. je choisis 32 bits

je clique sur start, je vois défilé des fichiers pendant plusieurs minutes.

un nouveau dossier Mame153s est créé il contient plusieurs dossiers, mais pas de Mame.exe

J'ai ensuite sélectionné mon fichier diff à l'aide du bouton extra.

Je clique ensuite sur start.

Nouveau défilement.

Je pense que le diff 's'intègre', secompilt dans le dossier mame0153s qui ne contient toujours pas de Mame.exe.

J'ai recopié ce dossier ajouté, dans ce dossier j'ai ajouté mame.exe de la version 153 et les dossiers manquants avec mes roms de façon à avoir un mame complet

Mame se lance, Mais les infos des jeux s'affichent toujours.

Faut-il effectuée un manipulation particulière.

Ce logiciel me semble plus simple, mais le résultat n'est pas encore là

J'espère que vos précieux conseils vont pouvoir m'aider.

Un grand merci à vous

Jean-Marc

Lien vers le commentaire
Partager sur d'autres sites

Normalement tu dois récupérer un mame.exe qui se créé à la fin de la compilation.

Et tu as juste à déplacer le mame.exe dans ton MAME habituel en remplaçant l'ancien mame.exe.

Ensuite, tu ouvres mame.ini. Si tu n'as pas de mame ini, tu créés un fichier texte et tu mets ça dedans :

mame.exe -cc

Tu enregistres et tu renommes le .txt en .bat puis tu double clique sur le fichier, ça va te créer le mame.ini (à la racine de ton MAME normalement).

Ensuite, dans le mame.ini tu places ça quelque part où tu veux :

disable_hiscore_patch     0
disable_nagscreen_patch   0
disable_loading_patch     0

Si tu ne vois plus les messages quand tu lances un jeu, c'est que la compilation de MAME a bien fonctionné.

Sinon, c'est qu'il y a une couille quelque part.

Modifié par Blinker
Lien vers le commentaire
Partager sur d'autres sites

  • 2 weeks later...

Bonjour,

J'ai ajouter un mameui à mon mame, je peux configurer l'affichage de tous les jeux ou de chaque jeu. Je peux également supprimer l'affichage des messages au lancement des jeux.

J'obtiens le résultat que je souhaitais. J'essaierai un peu plus tard la compilation qui est une solution plus technique.

Merci pour votre attention

Jean-Marc

Lien vers le commentaire
Partager sur d'autres sites

  • 2 months later...

Bonjour,

Pour la compilation de mame, il y a des "espace" ou des nom avec des accents ou caractère spéciaux dans les chemins de tes fichiers? Car si c'est le cas, le probleme vient de la.

Je compile et patch des mame sous linux, la methode est presque identique. En general je met nonag, neogeo overclock et hiscore.

Et pour avoir un mini menu pour ton mame compilé, il faut appuyer sur la touche "tab" une fois l'emulateur lancer

Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share