Linux support: first cut

This commit is contained in:
kichikuou
2016-04-03 13:23:32 +09:00
parent b442d4d966
commit 382fcdf31e
6 changed files with 132 additions and 7 deletions
+39
View File
@@ -0,0 +1,39 @@
# -*- Makefile -*-
SDL_CFLAGS := $(shell sdl2-config --cflags)
SDL_LFLAGS := -lSDL2_ttf $(shell sdl2-config --libs)
CXXFLAGS = -Isrc -Isrc/sys -D_SYSTEM3 -D_DEBUG_CONSOLE -MMD $(SDL_CFLAGS) -g
LIBS =
OBJS = src/fileio.o \
src/sdlmain.o \
src/sys/ags.o \
src/sys/ags_bmp.o \
src/sys/ags_cursor.o \
src/sys/ags_draw.o \
src/sys/ags_pms.o \
src/sys/ags_text.o \
src/sys/ags_vsp.o \
src/sys/ags_window.o \
src/sys/dri.o \
src/sys/mako.o \
src/sys/mako_midi.o \
src/sys/nact.o \
src/sys/nact_crc32.o \
src/sys/nact_input.o \
src/sys/nact_sys3.o \
src/linux/nact_linux.o \
src/linux/mako_linux.o \
src/linux/unicode.o
DEPS := $(OBJS:%.o=%.d)
system3: $(OBJS)
$(CXX) $(OBJS) $(SDL_LFLAGS) $(LIBS) -o $@
clean:
rm -f src/*.o src/sys/*.o src/win/*.o src/res3/*.o system3 $(DEPS)
-include $(DEPS)
+8 -1
View File
@@ -9,13 +9,13 @@
#include <SDL.h>
#include <assert.h>
#include <limits.h>
// tchar.h shim
typedef char _TCHAR;
#ifndef _T
#define _T(s) s
#endif
#define _tfopen_s fopen_s
#define _tcscpy_s strcpy_s
#define _tcslen strlen
#define _stprintf_s sprintf_s
@@ -28,6 +28,13 @@ typedef signed char int8;
typedef signed short int16;
typedef signed long int32;
#ifndef WIN32
#define _MAX_PATH PATH_MAX
#define sscanf_s sscanf
#define sprintf_s snprintf
void strcpy_s(char* dst, size_t n, const char* src);
#endif
// utilities
uint16 sjis_to_unicode(uint16 sjis);
+6 -6
View File
@@ -28,17 +28,17 @@ bool FILEIO::Fopen(_TCHAR *filename, int mode)
fp = NULL;
if(mode == FILEIO_READ_BINARY) {
_tfopen_s(&fp, filename, _T("rb"));
fp = fopen(filename, _T("rb"));
} else if(mode == FILEIO_WRITE_BINARY) {
_tfopen_s(&fp, filename, _T("wb"));
fp = fopen(filename, _T("wb"));
} else if(mode == FILEIO_READ_WRITE_BINARY) {
_tfopen_s(&fp, filename, _T("r+b"));
fp = fopen(filename, _T("r+b"));
} else if(mode == FILEIO_READ_ASCII) {
_tfopen_s(&fp, filename, _T("r"));
fp = fopen(filename, _T("r"));
} else if(mode == FILEIO_WRITE_ASCII) {
_tfopen_s(&fp, filename, _T("w"));
fp = fopen(filename, _T("w"));
} else if(mode == FILEIO_READ_WRITE_ASCII) {
_tfopen_s(&fp, filename, _T("r+w"));
fp = fopen(filename, _T("r+w"));
}
return (fp != NULL);
}
+45
View File
@@ -0,0 +1,45 @@
#include "mako.h"
#include <fcntl.h>
#include <unistd.h>
static int midifd = -1;
void MAKO::initialize_midi()
{
midifd = open("/dev/midi1", O_RDWR);
}
void MAKO::release_midi()
{
if (midifd >= 0)
close(midifd);
}
void MAKO::reset_midi()
{
if (midifd < 0)
return;
const uint8 gs_reset[11] = {0xf0, 0x41, 0x20, 0x42, 0x12, 0x40, 0x00, 0x7f, 0x00, 0x41, 0xf7};
write(midifd, gs_reset, 11);
}
void MAKO::send_2bytes(uint8 d1, uint8 d2)
{
if (midifd < 0)
return;
uint8 data[2];
data[0] = d1;
data[1] = d2;
write(midifd, data, 2);
}
void MAKO::send_3bytes(uint8 d1, uint8 d2, uint8 d3)
{
if (midifd < 0)
return;
uint8 data[3];
data[0] = d1;
data[1] = d2;
data[2] = d3;
write(midifd, data, 3);
}
+21
View File
@@ -0,0 +1,21 @@
#include <stdio.h>
#include "nact.h"
void NACT::text_dialog()
{
}
void NACT::initialize_console()
{
}
void NACT::release_console()
{
}
void NACT::output_console(char log[])
{
#if defined(_DEBUG_CONSOLE)
fputs(log, stderr);
#endif
}
+13
View File
@@ -0,0 +1,13 @@
#include "common.h"
uint16 sjis_to_unicode(uint16 code)
{
// TODO: correct impl
return code;
}
void strcpy_s(char* dst, size_t n, const char* src)
{
strncpy(dst, src, n);
dst[n - 1] = '\0';
}