mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-11 00:38:10 +03:00
Linux support: first cut
This commit is contained in:
@@ -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
@@ -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
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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';
|
||||
}
|
||||
Reference in New Issue
Block a user