Skip to content

Commit d7b13f7

Browse files
authored
Merge pull request #13 from turol/dos
DOS support with Allegro and DJGPP
2 parents 613f870 + a1b8c56 commit d7b13f7

16 files changed

+1402
-35
lines changed

.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
*.o
22
*.obj
3+
*.exe
34
*.DS_Store
45
*.log
56
*.user
7+
*~
68
.vs/
79
Debug/
8-
Release/
10+
Release/

doomgeneric/Makefile.djgpp

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
################################################################
2+
#
3+
# $Id:$
4+
#
5+
# $Log:$
6+
#
7+
8+
.PHONY: all clean print
9+
10+
.SUFFIXES:
11+
12+
ifeq ($(V),1)
13+
VB=''
14+
else
15+
VB=@
16+
endif
17+
18+
19+
20+
CC:=i386-pc-msdosdjgpp-gcc
21+
OPTFLAGS:=-O3
22+
CFLAGS+=-std=gnu89
23+
CFLAGS+=$(OPTFLAGS)
24+
CFLAGS+=-Werror
25+
CFLAGS+=-DDOOMGENERIC_RESX=320 -DDOOMGENERIC_RESY=200
26+
CFLAGS+=-DFEATURE_SOUND=1
27+
CFLAGS+=-DCMAP256
28+
29+
# link time optimization, no significant effect on performance
30+
# CFLAGS+=-flto
31+
# LDFLAGS+=-flto $(OPTFLAGS)
32+
33+
# debug
34+
# CFLAGS+=-g
35+
# LDFLAGS+=-g
36+
37+
LIBS+=-lalleg
38+
#LIBS+=-lalld # debug library
39+
40+
# subdirectory for objects
41+
OBJDIR:=djgpp
42+
OUTPUT:=doomgen.exe
43+
44+
SRC_DOOM = dummy.o am_map.o doomdef.o doomstat.o dstrings.o d_event.o d_items.o d_iwad.o d_loop.o d_main.o d_mode.o d_net.o f_finale.o f_wipe.o g_game.o hu_lib.o hu_stuff.o info.o i_cdmus.o i_endoom.o i_joystick.o i_scale.o i_sound.o i_system.o i_timer.o memio.o m_argv.o m_bbox.o m_cheat.o m_config.o m_controls.o m_fixed.o m_menu.o m_misc.o m_random.o p_ceilng.o p_doors.o p_enemy.o p_floor.o p_inter.o p_lights.o p_map.o p_maputl.o p_mobj.o p_plats.o p_pspr.o p_saveg.o p_setup.o p_sight.o p_spec.o p_switch.o p_telept.o p_tick.o p_user.o r_bsp.o r_data.o r_draw.o r_main.o r_plane.o r_segs.o r_sky.o r_things.o sha1.o sounds.o statdump.o st_lib.o st_stuff.o s_sound.o tables.o v_video.o wi_stuff.o w_checksum.o w_file.o w_main.o w_wad.o z_zone.o w_file_stdc.o i_input.o i_video.o doomgeneric.o doomgeneric_allegro.o mus2mid.o i_allegromusic.o i_allegrosound.o
45+
OBJS += $(addprefix $(OBJDIR)/, $(SRC_DOOM))
46+
47+
all: $(OUTPUT)
48+
49+
clean:
50+
rm -rf $(OBJDIR)
51+
rm -f $(OUTPUT)
52+
rm -f $(OUTPUT).gdb
53+
rm -f $(OUTPUT).map
54+
55+
$(OUTPUT): $(OBJS)
56+
@echo [Linking $@]
57+
$(VB)$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) \
58+
-o $(OUTPUT) $(LIBS)
59+
60+
$(OBJS): | $(OBJDIR)
61+
62+
$(OBJDIR):
63+
mkdir -p $(OBJDIR)
64+
65+
$(OBJDIR)/%.o: %.c
66+
@echo [Compiling $<]
67+
$(VB)$(CC) $(CFLAGS) -c $< -o $@
68+
69+
print:
70+
@echo OBJS: $(OBJS)
71+

doomgeneric/doomgeneric.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#include "doomgeneric.h"
66

7-
uint32_t* DG_ScreenBuffer = 0;
7+
pixel_t* DG_ScreenBuffer = NULL;
88

99
void M_FindResponseFile(void);
1010
void D_DoomMain (void);

doomgeneric/doomgeneric.h

+17-1
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,27 @@
44
#include <stdlib.h>
55
#include <stdint.h>
66

7+
#ifndef DOOMGENERIC_RESX
78
#define DOOMGENERIC_RESX 640
9+
#endif // DOOMGENERIC_RESX
10+
11+
#ifndef DOOMGENERIC_RESY
812
#define DOOMGENERIC_RESY 400
13+
#endif // DOOMGENERIC_RESY
14+
15+
16+
#ifdef CMAP256
17+
18+
typedef uint8_t pixel_t;
19+
20+
#else // CMAP256
21+
22+
typedef uint32_t pixel_t;
23+
24+
#endif // CMAP256
925

1026

11-
extern uint32_t* DG_ScreenBuffer;
27+
extern pixel_t* DG_ScreenBuffer;
1228

1329
void doomgeneric_Create(int argc, char **argv);
1430
void doomgeneric_Tick();

0 commit comments

Comments
 (0)