File meka.dif of Package meka
--- srcs/Makefile
+++ srcs/Makefile
@@ -87,9 +87,12 @@
MV = mv
MKDIR = mkdir
#--- Definitions
-DEF_OS = -DARCH_UNIX -DX86_ASM -DASM_SYMBOLS_REQUIRE_UNDERSCORE
+DEF_OS = -DARCH_UNIX
+ifeq ($(X86_ASM), yes)
+DEF_OS += -DX86_ASM -DASM_SYMBOLS_REQUIRE_UNDERSCORE
+endif
INC_OS = -Ilibs -I../include # This may require an update
-X86_ASM = yes
+#X86_ASM = no
#--- Libraries
LIB_OS = -Llibs -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L../lib # This may require an update
LIB_OS += -lXcursor -lXpm
@@ -184,7 +187,7 @@
endif
ifeq ($(SYSTEM), unix)
-LIB_SOUND = -lseal
+LIB_SOUND = -laudio
endif
ifeq ($(SYSTEM), macosx)
@@ -267,7 +270,10 @@
OBJ_FEAT = $(OD)/checksum.o $(OD)/db.o $(OD)/vlfn.o $(OD)/patch.o $(OD)/games.o $(OD)/saves.o
OBJ_CFG = $(OD)/config.o $(OD)/config_v.o $(OD)/config_j.o
OBJ_MISC = $(OD)/misc.o $(OD)/build.o $(OD)/fonts.o $(OD)/file.o $(OD)/data.o $(OD)/tools.o $(OD)/tools_t.o $(OD)/keyinfo.o $(OD)/drivers.o $(OD)/message.o $(OD)/capture.o $(OD)/errors.o $(OD)/sdsc.o $(OD)/setup.o
-OBJ_BLIT = $(OD)/blit.o $(OD)/blitintf.o $(OD)/eagle.o $(OD)/hq2x.o $(OD)/hq2x16.o $(OD)/hq2x32.o
+OBJ_BLIT = $(OD)/blit.o $(OD)/blitintf.o
+ifeq ($(X86_ASM), yes)
+OBJ_BLIT += $(OD)/eagle.o $(OD)/hq2x.o $(OD)/hq2x16.o $(OD)/hq2x32.o
+endif
OBJ_CPU = $(OD)/machine.o $(OD)/cpu.o $(OD)/m6502.a
OBJ_VIDEO = $(OD)/video.o $(OD)/video_m2.o $(OD)/video_m5.o $(OD)/video_c.o $(OD)/vdp.o $(OD)/palette.o $(OD)/effects.o $(OD)/fskipper.o
OBJ_MACH = $(OD)/sg1ksc3k.o $(OD)/sf7000.o $(OD)/nes.o $(OD)/nes_maps.o $(OD)/nes_ppu.o $(OD)/coleco.o $(OD)/fdc765.o
@@ -316,7 +322,7 @@
# UNIX/MS-DOS
# RELEASE build
ifeq ($(BUILD), release)
-CFLAGS += -Wall -march=pentium -O6 -ffast-math -fno-strength-reduce -funroll-all-loops -fomit-frame-pointer
+CFLAGS += -Wall $(RPM_OPT_FLAGS) -ffast-math
endif
# DEBUG build
ifeq ($(BUILD), debug)
--- srcs/app_options.c
+++ srcs/app_options.c
@@ -39,7 +39,7 @@
static void Option_Switch_NES_Crap(void)
{
- g_Configuration.enable_NES = FALSE;
+ //g_Configuration.enable_NES = FALSE;
Msg (MSGT_USER_INFOLINE, Msg_Get (MSG_NES_Deny_Facts));
}
--- srcs/blit.c
+++ srcs/blit.c
@@ -49,7 +49,9 @@
blit_cfg.tv_mode_factor = 0.700f; // FIXME-TUNING
// Initialize HQ2X filters
+#ifdef X86_ASM
HQ2X_Init();
+#endif
}
static const t_blitters_table_entry Blitters_Table[BLITTER_MAX] =
@@ -58,8 +60,10 @@
{ Blit_Fullscreen_Double, 2, 2 },
{ Blit_Fullscreen_TV_Mode, 1, 2 },
{ Blit_Fullscreen_TV_Mode_Double, 2, 2 },
+#ifdef X86_ASM
{ Blit_Fullscreen_Eagle, 2, 2 },
{ Blit_Fullscreen_HQ2X, 2, 2 },
+#endif
};
void Blit_Fullscreen_Misc (void)
@@ -184,6 +188,7 @@
Blit_Fullscreen_CopyStretch(Blit_Buffer_Double, 2, 2);
}
+#ifdef X86_ASM
void Blit_Fullscreen_Eagle (void)
{
// Eagle, x1 -> x2
@@ -201,7 +206,9 @@
Blit_Fullscreen_Misc ();
Blit_Fullscreen_CopyStretch(Blit_Buffer_Double, 2, 2);
}
+#endif
+#ifdef X86_ASM
void Blit_Fullscreen_HQ2X (void)
{
// Perform HQ2X into double buffer
@@ -213,6 +220,7 @@
Blit_Fullscreen_Misc();
Blit_Fullscreen_CopyStretch(Blit_Buffer_Double, 2, 2);
}
+#endif
void Blit_Fullscreen_TV_Mode (void)
{
--- srcs/file.c
+++ srcs/file.c
@@ -97,7 +97,12 @@
getcwd (g_Env.Paths.StartingDirectory, countof(g_Env.Paths.StartingDirectory));
// Find emulator directory --------------------------------------------------
- strcpy (g_Env.Paths.EmulatorDirectory, g_Env.argv[0]);
+ strcpy (g_Env.Paths.EmulatorDirectory, "/usr/share/meka/"); //g_Env.argv[0]);
+ sprintf(g_Env.Paths.ConfigDirectory, "%s/.meka", getenv("HOME"));
+ mkdir(g_Env.Paths.ConfigDirectory, 0755);
+ char tmp[PATH_MAX + 80];
+ sprintf(tmp, "cp -p /usr/share/meka/meka.fdb /usr/share/meka/meka.inp %s/", g_Env.Paths.ConfigDirectory);
+ system(tmp);
#ifndef ARCH_UNIX
StrReplace (g_Env.Paths.EmulatorDirectory, '\\', '/');
#endif
@@ -131,12 +136,12 @@
sprintf (g_Env.Paths.SkinFile, "%s/meka.thm", g_Env.Paths.EmulatorDirectory);
sprintf (Patches.filename, "%s/meka.pat", g_Env.Paths.EmulatorDirectory);
- sprintf (VLFN_DataBase.filename, "%s/meka.fdb", g_Env.Paths.EmulatorDirectory);
+ sprintf (VLFN_DataBase.filename, "%s/meka.fdb", g_Env.Paths.ConfigDirectory);
sprintf (Blitters.filename, "%s/meka.blt", g_Env.Paths.EmulatorDirectory);
//sprintf (registered.filename [0], "%s/meka.reg", g_Env.Paths.EmulatorDirectory);
//sprintf (registered.filename [1], "%s/meka.key", g_Env.Paths.EmulatorDirectory);
- sprintf (Desktop.filename, "%s/meka.dsk", g_Env.Paths.EmulatorDirectory);
- sprintf (Inputs.FileName, "%s/meka.inp", g_Env.Paths.EmulatorDirectory);
+ sprintf (Desktop.filename, "%s/meka.dsk", g_Env.Paths.ConfigDirectory);
+ sprintf (Inputs.FileName, "%s/meka.inp", g_Env.Paths.ConfigDirectory);
sprintf (Messages.FileName, "%s/meka.msg", g_Env.Paths.EmulatorDirectory);
// Documentations
@@ -155,7 +160,7 @@
#ifdef ARCH_WIN32
sprintf (g_Env.Paths.ConfigurationFile, "%s/mekaw.cfg", g_Env.Paths.EmulatorDirectory);
#else
- sprintf (g_Env.Paths.ConfigurationFile, "%s/meka.cfg", g_Env.Paths.EmulatorDirectory);
+ sprintf (g_Env.Paths.ConfigurationFile, "%s/meka.cfg", g_Env.Paths.ConfigDirectory);
#endif
// Directories
--- srcs/meka.c
+++ srcs/meka.c
@@ -133,7 +133,7 @@
g_Configuration.enable_BIOS = TRUE;
g_Configuration.show_product_number = FALSE;
g_Configuration.show_fullscreen_messages = TRUE;
- g_Configuration.enable_NES = FALSE;
+ g_Configuration.enable_NES = TRUE;
g_Configuration.allow_opposite_directions = FALSE;
g_Configuration.start_in_gui = TRUE;
--- srcs/meka.h
+++ srcs/meka.h
@@ -144,9 +144,9 @@
// Max path length
// FIXME: Portable way to obtain this at compilation stage?
-#define FILENAME_LEN (512)
+//#define FILENAME_LEN (512)
//#define FILENAME_LEN MAXPATHLEN
-//#define FILENAME_LEN PATH_MAX
+#define FILENAME_LEN PATH_MAX
OPT_TYPE opt;
TGFX_TYPE tgfx;
@@ -207,6 +207,7 @@
typedef struct
{
char EmulatorDirectory [FILENAME_LEN];
+ char ConfigDirectory [FILENAME_LEN];
char StartingDirectory [FILENAME_LEN];
char ConfigurationFile [FILENAME_LEN];
char DataBaseFile [FILENAME_LEN];