Changes in the code to work on AmigaOS4 and release files added

This commit is contained in:
George Sokianos 2023-09-17 17:53:43 +01:00
parent 100218a3c2
commit 64f00204e7
13 changed files with 5714 additions and 4 deletions

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
*.o
*.d
*.lha
rs

55
Makefile.os4 Normal file
View File

@ -0,0 +1,55 @@
SDL_CFLAGS := -I/sdk/local/newlib/include/SDL2 -DNDEBUG=1
# -DUSE_STATIC_SCALER=1
SDL_LIBS := -lSDL2_mixer -lmikmod -lmodplug -lFLAC -logg \
-lSDL2 -lpthread -athread=native -lstdc++
MODPLUG_LIBS := -lmodplug
TREMOR_LIBS := #-lvorbisidec -logg
ZLIB_LIBS := -lz
LIBS = $(SDL_LIBS) $(MODPLUG_LIBS) $(TREMOR_LIBS) $(ZLIB_LIBS)
CXXFLAGS += -Wall -Wextra -Wno-unused-parameter -Wpedantic -MMD $(SDL_CFLAGS) -DUSE_MODPLUG -DUSE_STB_VORBIS -DUSE_ZLIB
SRCS = collision.cpp cpc_player.cpp cutscene.cpp decode_mac.cpp file.cpp fs.cpp game.cpp graphics.cpp main.cpp \
menu.cpp midi_parser.cpp mixer.cpp mod_player.cpp ogg_player.cpp \
piege.cpp prf_player.cpp protection.cpp resource.cpp resource_aba.cpp \
resource_mac.cpp scaler.cpp screenshot.cpp seq_player.cpp \
sfx_player.cpp staticres.cpp systemstub_sdl.cpp unpack.cpp util.cpp video.cpp
#CXXFLAGS += -DUSE_STATIC_SCALER
#SCALERS := scalers/scaler_nearest.cpp scalers/scaler_tv2x.cpp scalers/scaler_xbr.cpp
#CXXFLAGS += -DUSE_MIDI_DRIVER
#MIDIDRIVERS := midi_driver_adlib.cpp midi_driver_mt32.cpp
#MIDI_LIBS := -lmt32emu
LIBS = $(MIDI_LIBS) $(MODPLUG_LIBS) $(SDL_LIBS) $(TREMOR_LIBS) $(ZLIB_LIBS)
OBJS = $(SRCS:.cpp=.o) $(SCALERS:.cpp=.o) $(MIDIDRIVERS:.cpp=.o)
DEPS = $(SRCS:.cpp=.d) $(SCALERS:.cpp=.d) $(MIDIDRIVERS:.cpp=.d)
rs: $(OBJS)
$(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
clean:
rm -f $(OBJS) $(DEPS)
# prepare an archive for the program
release:
@echo "Creating release files..."
@strip rs
@mkdir -p release/
@copy ALL release_files/ release/ QUIET
@mkdir -p release/REminiscence/data
@mkdir -p release/REminiscence/saves
@copy rs "release/REminiscence/"
@copy README.txt "release/REminiscence/"
@copy rs.cfg "release/REminiscence/"
@echo "Creating release archive..."
@lha -aeqr3 a REminiscence.lha release/
@echo "Clean release files..."
@delete release ALL QUIET FORCE
-include $(DEPS)

4
fs.cpp
View File

@ -4,6 +4,10 @@
* Copyright (C) 2005-2019 Gregory Montoir (cyx@users.sourceforge.net) * Copyright (C) 2005-2019 Gregory Montoir (cyx@users.sourceforge.net)
*/ */
#if defined(__amigaos4__)
#include <sys/unistd.h>
#endif
#ifdef _WIN32 #ifdef _WIN32
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#include <windows.h> #include <windows.h>

View File

@ -18,8 +18,8 @@
static const char *USAGE = static const char *USAGE =
"REminiscence - Flashback Interpreter\n" "REminiscence - Flashback Interpreter\n"
"Usage: %s [OPTIONS]...\n" "Usage: %s [OPTIONS]...\n"
" --datapath=PATH Path to data files (default 'DATA')\n" " --datapath=PATH Path to data files (default 'data')\n"
" --savepath=PATH Path to save files (default '.')\n" " --savepath=PATH Path to save files (default 'saves')\n"
" --levelnum=NUM Start to level, bypass introduction\n" " --levelnum=NUM Start to level, bypass introduction\n"
" --fullscreen Fullscreen display\n" " --fullscreen Fullscreen display\n"
" --widescreen=MODE 16:9 display (adjacent,mirror,blur,none)\n" " --widescreen=MODE 16:9 display (adjacent,mirror,blur,none)\n"
@ -195,8 +195,8 @@ static WidescreenMode parseWidescreen(const char *mode) {
} }
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
const char *dataPath = "DATA"; const char *dataPath = "data";
const char *savePath = "."; const char *savePath = "saves/";
int levelNum = 0; int levelNum = 0;
bool fullscreen = false; bool fullscreen = false;
bool autoSave = false; bool autoSave = false;

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,45 @@
# REminiscence for AmigaOS 4.1 FE
REminiscence is a re-implementation of the engine used in the game Flashback
made by Delphine Software and released in 1992. It is developed
by Gregory Montoir and you can find it on GitHub at
https://github.com/cyxx/REminiscence
The icon is based on cedry2kio work as found at
https://www.deviantart.com/cedry2kio/art/Flashback-Icon-1-404447315
## Installation
Extract the archive wherever you want. In the REminiscence there is the
*data* folder where you need to copy the data files for the game. The
*saves* folder is where tha saves files will be stored.
Please read the README.txt file for more information about where to
find the data files.
## I would like to thank
- Gregory Montoir for developing and open sourcing REminiscence
- Capehill for his tireless work on SDL port for AmigaOS 4.1 FE
## Known issues
None yet. If you find any issue please let me know.
## Support
If you enjoy what I am doing and would like to keep me up during the night,
please consider to buy me a coffee at:
https://ko-fi.com/walkero
## Known issues
You can find the known issues at
https://git.walkero.gr/walkero/breakhack/issues
# Changelog
## [0.5.1r1] - 2023-09-17
### Added
- First release for AmigaOS 4

Binary file not shown.

View File

@ -0,0 +1,14 @@
stack 50000
Set title "REminiscence"
Set rcnum `RequestChoice "$title" "Run in window or fullscreen?" "Window" "Fullscreen" "Oh, forget it"`
If $rcnum EQ 1
rs --scaler scale@3
ENDIF
If $rcnum EQ 2
rs --fullscreen
ENDIF

Binary file not shown.

5584
stb_vorbis.c Executable file

File diff suppressed because it is too large Load Diff

View File

@ -608,6 +608,7 @@ void SystemStub_SDL::processEvent(const SDL_Event &ev, bool &paused) {
_pi.quit = true; _pi.quit = true;
break; break;
case SDL_WINDOWEVENT: case SDL_WINDOWEVENT:
#if !defined(__amigaos4__)
switch (ev.window.event) { switch (ev.window.event) {
case SDL_WINDOWEVENT_FOCUS_GAINED: case SDL_WINDOWEVENT_FOCUS_GAINED:
case SDL_WINDOWEVENT_FOCUS_LOST: case SDL_WINDOWEVENT_FOCUS_LOST:
@ -615,6 +616,7 @@ void SystemStub_SDL::processEvent(const SDL_Event &ev, bool &paused) {
SDL_PauseAudio(paused); SDL_PauseAudio(paused);
break; break;
} }
#endif
break; break;
case SDL_JOYHATMOTION: case SDL_JOYHATMOTION:
if (_joystick) { if (_joystick) {

View File

@ -18,6 +18,7 @@
uint16_t g_debugMask; uint16_t g_debugMask;
#ifndef NDEBUG
void debug(uint16_t cm, const char *msg, ...) { void debug(uint16_t cm, const char *msg, ...) {
char buf[1024]; char buf[1024];
if (cm & g_debugMask) { if (cm & g_debugMask) {
@ -32,6 +33,7 @@ void debug(uint16_t cm, const char *msg, ...) {
#endif #endif
} }
} }
#endif
void error(const char *msg, ...) { void error(const char *msg, ...) {
char buf[1024]; char buf[1024];