]> git.0x19.co - doomgeneric-snom360/commitdiff
fbdoom first version with more generic framebuffer support
authorMaxime Vincent <maxime.vince@gmail.com>
Sat, 2 Dec 2017 10:25:39 +0000 (11:25 +0100)
committerMaxime Vincent <maxime.vince@gmail.com>
Sat, 2 Dec 2017 10:25:39 +0000 (11:25 +0100)
186 files changed:
README.TXT
fbdoom/Makefile [moved from frosted-doom/Makefile with 64% similarity]
fbdoom/am_map.c [moved from frosted-doom/am_map.c with 100% similarity]
fbdoom/am_map.h [moved from frosted-doom/am_map.h with 100% similarity]
fbdoom/config.h [moved from frosted-doom/config.h with 100% similarity]
fbdoom/d_englsh.h [moved from frosted-doom/d_englsh.h with 100% similarity]
fbdoom/d_event.c [moved from frosted-doom/d_event.c with 100% similarity]
fbdoom/d_event.h [moved from frosted-doom/d_event.h with 100% similarity]
fbdoom/d_items.c [moved from frosted-doom/d_items.c with 100% similarity]
fbdoom/d_items.h [moved from frosted-doom/d_items.h with 100% similarity]
fbdoom/d_iwad.c [moved from frosted-doom/d_iwad.c with 100% similarity]
fbdoom/d_iwad.h [moved from frosted-doom/d_iwad.h with 100% similarity]
fbdoom/d_loop.c [moved from frosted-doom/d_loop.c with 100% similarity]
fbdoom/d_loop.h [moved from frosted-doom/d_loop.h with 100% similarity]
fbdoom/d_main.c [moved from frosted-doom/d_main.c with 100% similarity]
fbdoom/d_main.h [moved from frosted-doom/d_main.h with 100% similarity]
fbdoom/d_mode.c [moved from frosted-doom/d_mode.c with 100% similarity]
fbdoom/d_mode.h [moved from frosted-doom/d_mode.h with 100% similarity]
fbdoom/d_net.c [moved from frosted-doom/d_net.c with 100% similarity]
fbdoom/d_player.h [moved from frosted-doom/d_player.h with 100% similarity]
fbdoom/d_textur.h [moved from frosted-doom/d_textur.h with 100% similarity]
fbdoom/d_think.h [moved from frosted-doom/d_think.h with 100% similarity]
fbdoom/d_ticcmd.h [moved from frosted-doom/d_ticcmd.h with 100% similarity]
fbdoom/deh_main.h [moved from frosted-doom/deh_main.h with 100% similarity]
fbdoom/deh_misc.h [moved from frosted-doom/deh_misc.h with 100% similarity]
fbdoom/deh_str.h [moved from frosted-doom/deh_str.h with 100% similarity]
fbdoom/doom.h [moved from frosted-doom/doom.h with 100% similarity]
fbdoom/doomdata.h [moved from frosted-doom/doomdata.h with 100% similarity]
fbdoom/doomdef.c [moved from frosted-doom/doomdef.c with 100% similarity]
fbdoom/doomdef.h [moved from frosted-doom/doomdef.h with 100% similarity]
fbdoom/doomfeatures.h [moved from frosted-doom/doomfeatures.h with 100% similarity]
fbdoom/doomkeys.h [moved from frosted-doom/doomkeys.h with 100% similarity]
fbdoom/doomstat.c [moved from frosted-doom/doomstat.c with 100% similarity]
fbdoom/doomstat.h [moved from frosted-doom/doomstat.h with 100% similarity]
fbdoom/doomtype.h [moved from frosted-doom/doomtype.h with 100% similarity]
fbdoom/dstrings.c [moved from frosted-doom/dstrings.c with 100% similarity]
fbdoom/dstrings.h [moved from frosted-doom/dstrings.h with 100% similarity]
fbdoom/dummy.c [moved from frosted-doom/dummy.c with 100% similarity]
fbdoom/f_finale.c [moved from frosted-doom/f_finale.c with 100% similarity]
fbdoom/f_finale.h [moved from frosted-doom/f_finale.h with 100% similarity]
fbdoom/f_wipe.c [moved from frosted-doom/f_wipe.c with 100% similarity]
fbdoom/f_wipe.h [moved from frosted-doom/f_wipe.h with 100% similarity]
fbdoom/g_game.c [moved from frosted-doom/g_game.c with 100% similarity]
fbdoom/g_game.h [moved from frosted-doom/g_game.h with 100% similarity]
fbdoom/gusconf.c [moved from frosted-doom/gusconf.c with 100% similarity]
fbdoom/gusconf.h [moved from frosted-doom/gusconf.h with 100% similarity]
fbdoom/hu_lib.c [moved from frosted-doom/hu_lib.c with 100% similarity]
fbdoom/hu_lib.h [moved from frosted-doom/hu_lib.h with 100% similarity]
fbdoom/hu_stuff.c [moved from frosted-doom/hu_stuff.c with 100% similarity]
fbdoom/hu_stuff.h [moved from frosted-doom/hu_stuff.h with 100% similarity]
fbdoom/i_cdmus.c [moved from frosted-doom/i_cdmus.c with 100% similarity]
fbdoom/i_cdmus.h [moved from frosted-doom/i_cdmus.h with 100% similarity]
fbdoom/i_endoom.c [moved from frosted-doom/i_endoom.c with 100% similarity]
fbdoom/i_endoom.h [moved from frosted-doom/i_endoom.h with 100% similarity]
fbdoom/i_joystick.c [moved from frosted-doom/i_joystick.c with 100% similarity]
fbdoom/i_joystick.h [moved from frosted-doom/i_joystick.h with 100% similarity]
fbdoom/i_main.c [moved from frosted-doom/i_main.c with 100% similarity]
fbdoom/i_oplmusic.c [moved from frosted-doom/i_oplmusic.c with 100% similarity]
fbdoom/i_pcsound.c [moved from frosted-doom/i_pcsound.c with 100% similarity]
fbdoom/i_scale.c [moved from frosted-doom/i_scale.c with 100% similarity]
fbdoom/i_scale.h [moved from frosted-doom/i_scale.h with 100% similarity]
fbdoom/i_sdlmusic.c [moved from frosted-doom/i_sdlmusic.c with 100% similarity]
fbdoom/i_sdlsound.c [moved from frosted-doom/i_sdlsound.c with 100% similarity]
fbdoom/i_sound.c [moved from frosted-doom/i_sound.c with 100% similarity]
fbdoom/i_sound.h [moved from frosted-doom/i_sound.h with 100% similarity]
fbdoom/i_sound_dummy.c [moved from frosted-doom/i_sound_dummy.c with 100% similarity]
fbdoom/i_swap.h [moved from frosted-doom/i_swap.h with 100% similarity]
fbdoom/i_system.c [moved from frosted-doom/i_system.c with 100% similarity]
fbdoom/i_system.h [moved from frosted-doom/i_system.h with 100% similarity]
fbdoom/i_timer.c [moved from frosted-doom/i_timer.c with 100% similarity]
fbdoom/i_timer.h [moved from frosted-doom/i_timer.h with 100% similarity]
fbdoom/i_video.c [moved from frosted-doom/i_video.c with 100% similarity]
fbdoom/i_video.h [moved from frosted-doom/i_video.h with 100% similarity]
fbdoom/i_video_fbdev.c [moved from frosted-doom/i_video_fbdev.c with 70% similarity]
fbdoom/icon.c [moved from frosted-doom/icon.c with 100% similarity]
fbdoom/info.c [moved from frosted-doom/info.c with 100% similarity]
fbdoom/info.h [moved from frosted-doom/info.h with 100% similarity]
fbdoom/m_argv.c [moved from frosted-doom/m_argv.c with 100% similarity]
fbdoom/m_argv.h [moved from frosted-doom/m_argv.h with 100% similarity]
fbdoom/m_bbox.c [moved from frosted-doom/m_bbox.c with 100% similarity]
fbdoom/m_bbox.h [moved from frosted-doom/m_bbox.h with 100% similarity]
fbdoom/m_cheat.c [moved from frosted-doom/m_cheat.c with 100% similarity]
fbdoom/m_cheat.h [moved from frosted-doom/m_cheat.h with 100% similarity]
fbdoom/m_config.c [moved from frosted-doom/m_config.c with 100% similarity]
fbdoom/m_config.h [moved from frosted-doom/m_config.h with 100% similarity]
fbdoom/m_controls.c [moved from frosted-doom/m_controls.c with 100% similarity]
fbdoom/m_controls.h [moved from frosted-doom/m_controls.h with 100% similarity]
fbdoom/m_fixed.c [moved from frosted-doom/m_fixed.c with 100% similarity]
fbdoom/m_fixed.h [moved from frosted-doom/m_fixed.h with 100% similarity]
fbdoom/m_menu.c [moved from frosted-doom/m_menu.c with 100% similarity]
fbdoom/m_menu.h [moved from frosted-doom/m_menu.h with 100% similarity]
fbdoom/m_misc.c [moved from frosted-doom/m_misc.c with 100% similarity]
fbdoom/m_misc.h [moved from frosted-doom/m_misc.h with 100% similarity]
fbdoom/m_random.c [moved from frosted-doom/m_random.c with 100% similarity]
fbdoom/m_random.h [moved from frosted-doom/m_random.h with 100% similarity]
fbdoom/memio.c [moved from frosted-doom/memio.c with 100% similarity]
fbdoom/memio.h [moved from frosted-doom/memio.h with 100% similarity]
fbdoom/net_client.h [moved from frosted-doom/net_client.h with 100% similarity]
fbdoom/net_dedicated.h [moved from frosted-doom/net_dedicated.h with 100% similarity]
fbdoom/net_defs.h [moved from frosted-doom/net_defs.h with 100% similarity]
fbdoom/net_gui.h [moved from frosted-doom/net_gui.h with 100% similarity]
fbdoom/net_io.h [moved from frosted-doom/net_io.h with 100% similarity]
fbdoom/net_loop.h [moved from frosted-doom/net_loop.h with 100% similarity]
fbdoom/net_packet.h [moved from frosted-doom/net_packet.h with 100% similarity]
fbdoom/net_query.h [moved from frosted-doom/net_query.h with 100% similarity]
fbdoom/net_sdl.h [moved from frosted-doom/net_sdl.h with 100% similarity]
fbdoom/net_server.h [moved from frosted-doom/net_server.h with 100% similarity]
fbdoom/p_ceilng.c [moved from frosted-doom/p_ceilng.c with 100% similarity]
fbdoom/p_doors.c [moved from frosted-doom/p_doors.c with 100% similarity]
fbdoom/p_enemy.c [moved from frosted-doom/p_enemy.c with 100% similarity]
fbdoom/p_floor.c [moved from frosted-doom/p_floor.c with 100% similarity]
fbdoom/p_inter.c [moved from frosted-doom/p_inter.c with 100% similarity]
fbdoom/p_inter.h [moved from frosted-doom/p_inter.h with 100% similarity]
fbdoom/p_lights.c [moved from frosted-doom/p_lights.c with 100% similarity]
fbdoom/p_local.h [moved from frosted-doom/p_local.h with 100% similarity]
fbdoom/p_map.c [moved from frosted-doom/p_map.c with 100% similarity]
fbdoom/p_maputl.c [moved from frosted-doom/p_maputl.c with 100% similarity]
fbdoom/p_mobj.c [moved from frosted-doom/p_mobj.c with 100% similarity]
fbdoom/p_mobj.h [moved from frosted-doom/p_mobj.h with 100% similarity]
fbdoom/p_plats.c [moved from frosted-doom/p_plats.c with 100% similarity]
fbdoom/p_pspr.c [moved from frosted-doom/p_pspr.c with 100% similarity]
fbdoom/p_pspr.h [moved from frosted-doom/p_pspr.h with 100% similarity]
fbdoom/p_saveg.c [moved from frosted-doom/p_saveg.c with 100% similarity]
fbdoom/p_saveg.h [moved from frosted-doom/p_saveg.h with 100% similarity]
fbdoom/p_setup.c [moved from frosted-doom/p_setup.c with 100% similarity]
fbdoom/p_setup.h [moved from frosted-doom/p_setup.h with 100% similarity]
fbdoom/p_sight.c [moved from frosted-doom/p_sight.c with 100% similarity]
fbdoom/p_spec.c [moved from frosted-doom/p_spec.c with 100% similarity]
fbdoom/p_spec.h [moved from frosted-doom/p_spec.h with 100% similarity]
fbdoom/p_switch.c [moved from frosted-doom/p_switch.c with 100% similarity]
fbdoom/p_telept.c [moved from frosted-doom/p_telept.c with 100% similarity]
fbdoom/p_tick.c [moved from frosted-doom/p_tick.c with 100% similarity]
fbdoom/p_tick.h [moved from frosted-doom/p_tick.h with 100% similarity]
fbdoom/p_user.c [moved from frosted-doom/p_user.c with 100% similarity]
fbdoom/r_bsp.c [moved from frosted-doom/r_bsp.c with 100% similarity]
fbdoom/r_bsp.h [moved from frosted-doom/r_bsp.h with 100% similarity]
fbdoom/r_data.c [moved from frosted-doom/r_data.c with 100% similarity]
fbdoom/r_data.h [moved from frosted-doom/r_data.h with 100% similarity]
fbdoom/r_defs.h [moved from frosted-doom/r_defs.h with 100% similarity]
fbdoom/r_draw.c [moved from frosted-doom/r_draw.c with 100% similarity]
fbdoom/r_draw.h [moved from frosted-doom/r_draw.h with 100% similarity]
fbdoom/r_local.h [moved from frosted-doom/r_local.h with 100% similarity]
fbdoom/r_main.c [moved from frosted-doom/r_main.c with 100% similarity]
fbdoom/r_main.h [moved from frosted-doom/r_main.h with 100% similarity]
fbdoom/r_plane.c [moved from frosted-doom/r_plane.c with 100% similarity]
fbdoom/r_plane.h [moved from frosted-doom/r_plane.h with 100% similarity]
fbdoom/r_segs.c [moved from frosted-doom/r_segs.c with 100% similarity]
fbdoom/r_segs.h [moved from frosted-doom/r_segs.h with 100% similarity]
fbdoom/r_sky.c [moved from frosted-doom/r_sky.c with 100% similarity]
fbdoom/r_sky.h [moved from frosted-doom/r_sky.h with 100% similarity]
fbdoom/r_state.h [moved from frosted-doom/r_state.h with 100% similarity]
fbdoom/r_things.c [moved from frosted-doom/r_things.c with 100% similarity]
fbdoom/r_things.h [moved from frosted-doom/r_things.h with 100% similarity]
fbdoom/s_sound.c [moved from frosted-doom/s_sound.c with 100% similarity]
fbdoom/s_sound.h [moved from frosted-doom/s_sound.h with 100% similarity]
fbdoom/sha1.c [moved from frosted-doom/sha1.c with 100% similarity]
fbdoom/sha1.h [moved from frosted-doom/sha1.h with 100% similarity]
fbdoom/sounds.c [moved from frosted-doom/sounds.c with 100% similarity]
fbdoom/sounds.h [moved from frosted-doom/sounds.h with 100% similarity]
fbdoom/st_lib.c [moved from frosted-doom/st_lib.c with 100% similarity]
fbdoom/st_lib.h [moved from frosted-doom/st_lib.h with 100% similarity]
fbdoom/st_stuff.c [moved from frosted-doom/st_stuff.c with 100% similarity]
fbdoom/st_stuff.h [moved from frosted-doom/st_stuff.h with 100% similarity]
fbdoom/statdump.c [moved from frosted-doom/statdump.c with 100% similarity]
fbdoom/statdump.h [moved from frosted-doom/statdump.h with 100% similarity]
fbdoom/stubs.c [moved from frosted-doom/stubs.c with 100% similarity]
fbdoom/tables.c [moved from frosted-doom/tables.c with 100% similarity]
fbdoom/tables.h [moved from frosted-doom/tables.h with 100% similarity]
fbdoom/v_patch.h [moved from frosted-doom/v_patch.h with 100% similarity]
fbdoom/v_video.c [moved from frosted-doom/v_video.c with 100% similarity]
fbdoom/v_video.h [moved from frosted-doom/v_video.h with 100% similarity]
fbdoom/w_checksum.c [moved from frosted-doom/w_checksum.c with 100% similarity]
fbdoom/w_checksum.h [moved from frosted-doom/w_checksum.h with 100% similarity]
fbdoom/w_file.c [moved from frosted-doom/w_file.c with 100% similarity]
fbdoom/w_file.h [moved from frosted-doom/w_file.h with 100% similarity]
fbdoom/w_file_stdc.c [moved from frosted-doom/w_file_stdc.c with 100% similarity]
fbdoom/w_file_stdc_unbuffered.c [moved from frosted-doom/w_file_stdc_unbuffered.c with 100% similarity]
fbdoom/w_main.c [moved from frosted-doom/w_main.c with 100% similarity]
fbdoom/w_main.h [moved from frosted-doom/w_main.h with 100% similarity]
fbdoom/w_merge.h [moved from frosted-doom/w_merge.h with 100% similarity]
fbdoom/w_wad.c [moved from frosted-doom/w_wad.c with 100% similarity]
fbdoom/w_wad.h [moved from frosted-doom/w_wad.h with 100% similarity]
fbdoom/wi_stuff.c [moved from frosted-doom/wi_stuff.c with 100% similarity]
fbdoom/wi_stuff.h [moved from frosted-doom/wi_stuff.h with 100% similarity]
fbdoom/z_zone.c [moved from frosted-doom/z_zone.c with 100% similarity]
fbdoom/z_zone.h [moved from frosted-doom/z_zone.h with 100% similarity]

index ea012de3e7220711c21107e2c56487d3560aef0f..173cccd62ab6ff4ed88b66920c38c348bfb938f3 100644 (file)
@@ -1,10 +1,17 @@
 ================
-= FROSTED DOOM =
+= fbDOOM =
 ================
 
-Port of original DOOM to Frosted operating system.
-Frosted does not yet have a framebuffer nor sound driver,
-so for the moment, it just compiles and links...
+Adaptation of the original DOOM
+to be easily portable to framebuffer devices with minimal depenencies.
+Runs on:
+* Plain desktop Linux framebuffer,
+* Siglent SSA 3021X Spectrum Analyzer,
+* Frosted OS
+
+To build (example):
+* cd fbdoom
+* make CROSS_COMPILE=arm-linux-gnueabihf-
 
 
 Original readme
similarity index 64%
rename from frosted-doom/Makefile
rename to fbdoom/Makefile
index 038ae011a760f004acac955e1ceccbc62dd17329..b627c3311e79138727b2323eae009320ab7f28a8 100644 (file)
@@ -5,7 +5,7 @@
 # $Log:$
 #
 
-ARM?=1
+CROSS_COMPILE ?= #arm-linux-gnueabihf-
 
 ifeq ($(V),1)
        VB=''
@@ -13,24 +13,12 @@ else
        VB=@
 endif
 
-ifeq ($(ARM),1)
-       CROSS_COMPILE = arm-frosted-eabi-
-       OBJS+=$(OBJDIR)/i_video_fbdev.o
-       CFLAGS+=-mthumb -mlittle-endian -mthumb-interwork -ffunction-sections -fdata-sections -mcpu=cortex-m3
-       CFLAGS+=-DCORE_M3 -D__frosted__
-       # COMPILER FLAGS -- No gcc libraries
-       CFLAGS+=-nostartfiles
-       # COMPILER FLAGS -- GOT/PIC
-       CFLAGS+=-fPIC -mlong-calls -fno-common -msingle-pic-base -mno-pic-data-is-text-relative -Wstack-usage=1024
-       # LINKER FLAGS
-       LDFLAGS+=-fPIC -mlong-calls -fno-common -Wl,-elf2flt -lgloss
-else
-       CFLAGS+=-m32 -fsanitize=address -Wunused-const-variable=0 
-       LIBS+=-lXext -lX11 -lnsl -lm -lSDL
-       OBJS+=$(OBJDIR)/i_video.o
-endif
+#LIBS+=-lXext -lX11 -lnsl -lm -lSDL
+#CFLAGS+=-Wunused-const-variable=0 
+#CFLAGS+=-fsanitize=address
+OBJS+=$(OBJDIR)/i_video_fbdev.o
 
-CC=  $(CROSS_COMPILE)gcc  # gcc or g++
+CC=$(CROSS_COMPILE)gcc  # gcc or g++
 CFLAGS+=-ggdb3 -Os
 LDFLAGS+=-Wl,--gc-sections
 CFLAGS+=-ggdb3 -Wall -DNORMALUNIX -DLINUX -DSNDSERV # -DUSEASM
@@ -38,7 +26,7 @@ LIBS+=-lm -lc
 
 # subdirectory for objects
 OBJDIR=build
-OUTPUT=fdoom
+OUTPUT=fbdoom
 
 SRC_DOOM = i_main.o 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_file_stdc_unbuffered.o w_main.o w_wad.o z_zone.o
 OBJS += $(addprefix $(OBJDIR)/, $(SRC_DOOM))
@@ -57,7 +45,6 @@ $(OUTPUT):    $(OBJS)
        -o $(OUTPUT) $(LIBS) -Wl,-Map,$(OUTPUT).map
        @echo [Size]
        -$(CROSS_COMPILE)size $(OUTPUT)
-       -$(CROSS_COMPILE)flthdr $(OUTPUT)
 
 $(OBJS): | $(OBJDIR)
 
@@ -71,7 +58,3 @@ $(OBJDIR)/%.o:        %.c
 print:
        @echo OBJS: $(OBJS)
 
-#############################################################
-#
-#############################################################
-
similarity index 100%
rename from frosted-doom/am_map.c
rename to fbdoom/am_map.c
similarity index 100%
rename from frosted-doom/am_map.h
rename to fbdoom/am_map.h
similarity index 100%
rename from frosted-doom/config.h
rename to fbdoom/config.h
similarity index 100%
rename from frosted-doom/d_englsh.h
rename to fbdoom/d_englsh.h
similarity index 100%
rename from frosted-doom/d_event.c
rename to fbdoom/d_event.c
similarity index 100%
rename from frosted-doom/d_event.h
rename to fbdoom/d_event.h
similarity index 100%
rename from frosted-doom/d_items.c
rename to fbdoom/d_items.c
similarity index 100%
rename from frosted-doom/d_items.h
rename to fbdoom/d_items.h
similarity index 100%
rename from frosted-doom/d_iwad.c
rename to fbdoom/d_iwad.c
similarity index 100%
rename from frosted-doom/d_iwad.h
rename to fbdoom/d_iwad.h
similarity index 100%
rename from frosted-doom/d_loop.c
rename to fbdoom/d_loop.c
similarity index 100%
rename from frosted-doom/d_loop.h
rename to fbdoom/d_loop.h
similarity index 100%
rename from frosted-doom/d_main.c
rename to fbdoom/d_main.c
similarity index 100%
rename from frosted-doom/d_main.h
rename to fbdoom/d_main.h
similarity index 100%
rename from frosted-doom/d_mode.c
rename to fbdoom/d_mode.c
similarity index 100%
rename from frosted-doom/d_mode.h
rename to fbdoom/d_mode.h
similarity index 100%
rename from frosted-doom/d_net.c
rename to fbdoom/d_net.c
similarity index 100%
rename from frosted-doom/d_player.h
rename to fbdoom/d_player.h
similarity index 100%
rename from frosted-doom/d_textur.h
rename to fbdoom/d_textur.h
similarity index 100%
rename from frosted-doom/d_think.h
rename to fbdoom/d_think.h
similarity index 100%
rename from frosted-doom/d_ticcmd.h
rename to fbdoom/d_ticcmd.h
similarity index 100%
rename from frosted-doom/deh_main.h
rename to fbdoom/deh_main.h
similarity index 100%
rename from frosted-doom/deh_misc.h
rename to fbdoom/deh_misc.h
similarity index 100%
rename from frosted-doom/deh_str.h
rename to fbdoom/deh_str.h
similarity index 100%
rename from frosted-doom/doom.h
rename to fbdoom/doom.h
similarity index 100%
rename from frosted-doom/doomdata.h
rename to fbdoom/doomdata.h
similarity index 100%
rename from frosted-doom/doomdef.c
rename to fbdoom/doomdef.c
similarity index 100%
rename from frosted-doom/doomdef.h
rename to fbdoom/doomdef.h
similarity index 100%
rename from frosted-doom/doomkeys.h
rename to fbdoom/doomkeys.h
similarity index 100%
rename from frosted-doom/doomstat.c
rename to fbdoom/doomstat.c
similarity index 100%
rename from frosted-doom/doomstat.h
rename to fbdoom/doomstat.h
similarity index 100%
rename from frosted-doom/doomtype.h
rename to fbdoom/doomtype.h
similarity index 100%
rename from frosted-doom/dstrings.c
rename to fbdoom/dstrings.c
similarity index 100%
rename from frosted-doom/dstrings.h
rename to fbdoom/dstrings.h
similarity index 100%
rename from frosted-doom/dummy.c
rename to fbdoom/dummy.c
similarity index 100%
rename from frosted-doom/f_finale.c
rename to fbdoom/f_finale.c
similarity index 100%
rename from frosted-doom/f_finale.h
rename to fbdoom/f_finale.h
similarity index 100%
rename from frosted-doom/f_wipe.c
rename to fbdoom/f_wipe.c
similarity index 100%
rename from frosted-doom/f_wipe.h
rename to fbdoom/f_wipe.h
similarity index 100%
rename from frosted-doom/g_game.c
rename to fbdoom/g_game.c
similarity index 100%
rename from frosted-doom/g_game.h
rename to fbdoom/g_game.h
similarity index 100%
rename from frosted-doom/gusconf.c
rename to fbdoom/gusconf.c
similarity index 100%
rename from frosted-doom/gusconf.h
rename to fbdoom/gusconf.h
similarity index 100%
rename from frosted-doom/hu_lib.c
rename to fbdoom/hu_lib.c
similarity index 100%
rename from frosted-doom/hu_lib.h
rename to fbdoom/hu_lib.h
similarity index 100%
rename from frosted-doom/hu_stuff.c
rename to fbdoom/hu_stuff.c
similarity index 100%
rename from frosted-doom/hu_stuff.h
rename to fbdoom/hu_stuff.h
similarity index 100%
rename from frosted-doom/i_cdmus.c
rename to fbdoom/i_cdmus.c
similarity index 100%
rename from frosted-doom/i_cdmus.h
rename to fbdoom/i_cdmus.h
similarity index 100%
rename from frosted-doom/i_endoom.c
rename to fbdoom/i_endoom.c
similarity index 100%
rename from frosted-doom/i_endoom.h
rename to fbdoom/i_endoom.h
similarity index 100%
rename from frosted-doom/i_main.c
rename to fbdoom/i_main.c
similarity index 100%
rename from frosted-doom/i_pcsound.c
rename to fbdoom/i_pcsound.c
similarity index 100%
rename from frosted-doom/i_scale.c
rename to fbdoom/i_scale.c
similarity index 100%
rename from frosted-doom/i_scale.h
rename to fbdoom/i_scale.h
similarity index 100%
rename from frosted-doom/i_sound.c
rename to fbdoom/i_sound.c
similarity index 100%
rename from frosted-doom/i_sound.h
rename to fbdoom/i_sound.h
similarity index 100%
rename from frosted-doom/i_swap.h
rename to fbdoom/i_swap.h
similarity index 100%
rename from frosted-doom/i_system.c
rename to fbdoom/i_system.c
similarity index 100%
rename from frosted-doom/i_system.h
rename to fbdoom/i_system.h
similarity index 100%
rename from frosted-doom/i_timer.c
rename to fbdoom/i_timer.c
similarity index 100%
rename from frosted-doom/i_timer.h
rename to fbdoom/i_timer.h
similarity index 100%
rename from frosted-doom/i_video.c
rename to fbdoom/i_video.c
similarity index 100%
rename from frosted-doom/i_video.h
rename to fbdoom/i_video.h
similarity index 70%
rename from frosted-doom/i_video_fbdev.c
rename to fbdoom/i_video_fbdev.c
index 0ea6627705cad1d9edb8c839679850967136f88d..a460981e692b9ef419f535a7859fc0c870eee216 100644 (file)
@@ -45,12 +45,13 @@ rcsid[] = "$Id: i_x.c,v 1.6 1997/02/03 22:45:10 b1 Exp $";
 #include <sys/time.h>
 #include <sys/types.h>
 #include <sys/socket.h>
+#include <linux/fb.h>
 #include <sys/ioctl.h>
 
+//#define CMAP256
 
-#define FB_WIDTH        (480)
-#define FB_HEIGHT       (272)
-#define FB_BPP_RGB565    (16)
+struct fb_var_screeninfo fb = {};
+int fb_scaling = 1;
 
 struct color {
     uint32_t b:8;
@@ -105,7 +106,6 @@ int usemouse = 0;
 
 int vanilla_keyboard_mapping = true;
 
-
 typedef struct
 {
        byte r;
@@ -117,38 +117,56 @@ typedef struct
 
 static uint16_t rgb565_palette[256];
 
-// Last touch state
-
-//static touch_state_t last_touch_state;
-
-// Last button state
+void cmap_to_rgb565(uint16_t * out, uint8_t * in, int in_pixels)
+{
+    int i, j;
+    struct color c;
+    uint16_t r, g, b;
 
-//static bool last_button_state;
+    for (i = 0; i < in_pixels; i++)
+    {
+        c = colors[*in]; 
+        r = ((uint16_t)(c.r >> 3)) << 11;
+        g = ((uint16_t)(c.g >> 2)) << 5;
+        b = ((uint16_t)(c.b >> 3)) << 0;
+        *out = (r | g | b);
+
+        in++;
+        for (j = 0; j < fb_scaling; j++) {
+            out++;
+        }
+    }
+}
 
-// run state
+void cmap_to_fb(uint8_t * out, uint8_t * in, int in_pixels)
+{
+    int i, j, k;
+    struct color c;
+    uint32_t pix;
+    uint16_t r, g, b;
 
-//static bool run;
+    for (i = 0; i < in_pixels; i++)
+    {
+        c = colors[*in];  /* R:8 G:8 B:8 format! */
+        r = (uint16_t)(c.r >> (8 - fb.red.length));
+        g = (uint16_t)(c.g >> (8 - fb.green.length));
+        b = (uint16_t)(c.b >> (8 - fb.blue.length));
+        pix = r << fb.red.offset;
+        pix |= g << fb.green.offset;
+        pix |= b << fb.blue.offset;
+
+        for (k = 0; k < fb_scaling; k++) {
+            for (j = 0; j < fb.bits_per_pixel/8; j++) {
+                *out = (pix >> (j*8));
+                out++;
+            }
+        }
+        in++;
+    }
+}
 
 void I_InitGraphics (void)
 {
-//     gfx_image_t keys_img;
-//     gfx_coord_t coords;
-//
-//     gfx_init_img (&keys_img, 40, 320, GFX_PIXEL_FORMAT_RGB565, RGB565_BLACK);
-//     keys_img.pixel_data = (uint8_t*)img_keys;
-//     gfx_init_img_coord (&coords, &keys_img);
-//
-//     gfx_draw_img (&keys_img, &coords);
-//     lcd_refresh ();
-//
-//     gfx_draw_img (&keys_img, &coords);
-//     lcd_refresh ();
-
-    X_width = SCREENWIDTH;
-    X_height = SCREENHEIGHT;
-
-    printf("I_InitGraphics: w x h: %d x %d\n", X_width, X_height);
-
     /* Open fbdev file descriptor */
     fd_fb = open("/dev/fb0", O_RDWR);
     if (fd_fb < 0)
@@ -157,11 +175,25 @@ void I_InitGraphics (void)
         exit(-1);
     }
 
+    /* fetch framebuffer info */
+    ioctl(fd_fb, FBIOGET_VSCREENINFO, &fb);
+    /* change params if needed */
+    //ioctl(fd_fb, FBIOPUT_VSCREENINFO, &fb);
+    printf("I_InitGraphics: framebuffer: x_res: %d, y_res: %d, x_virtual: %d, y_virtual: %d, bpp: %d, grayscale: %d\n",
+            fb.xres, fb.yres, fb.xres_virtual, fb.yres_virtual, fb.bits_per_pixel, fb.grayscale);
+
+    printf("I_InitGraphics: framebuffer: RGBA: %d%d%d%d, red_off: %d, green_off: %d, blue_off: %d, transp_off: %d\n",
+            fb.red.length, fb.green.length, fb.blue.length, fb.transp.length, fb.red.offset, fb.green.offset, fb.blue.offset, fb.transp.offset);
+
+    printf("I_InitGraphics: DOOM screen size: w x h: %d x %d\n", SCREENWIDTH, SCREENHEIGHT);
+    fb_scaling = fb.xres / SCREENWIDTH;
+    if (fb.yres / SCREENHEIGHT < fb_scaling)
+        fb_scaling = fb.yres / SCREENHEIGHT;
+    printf("I_InitGraphics: Auto-scaling factor: %d\n", fb_scaling);
+
     /* Allocate screen to draw to */
-    //screen_pixels = malloc(X_width * X_height);
-    //
        I_VideoBuffer = (byte*)Z_Malloc (SCREENWIDTH * SCREENHEIGHT, PU_STATIC, NULL);  // For DOOM to draw on
-       I_VideoBuffer_FB = (byte*)Z_Malloc (FB_WIDTH * FB_HEIGHT, PU_STATIC, NULL);     // For a single write() syscall to fbdev
+       I_VideoBuffer_FB = (byte*)malloc(fb.xres * fb.yres * (fb.bits_per_pixel/8));     // For a single write() syscall to fbdev
 
        screenvisible = true;
 }
@@ -169,7 +201,7 @@ void I_InitGraphics (void)
 void I_ShutdownGraphics (void)
 {
        Z_Free (I_VideoBuffer);
-       Z_Free (I_VideoBuffer_FB);
+       free(I_VideoBuffer_FB);
 }
 
 void I_StartFrame (void)
@@ -362,15 +394,18 @@ void I_UpdateNoBlit (void)
 
 void I_FinishUpdate (void)
 {
-#define CMAP256
     int y;
     int x_offset, y_offset, x_offset_end;
     unsigned char *line_in, *line_out;
 
     /* Offsets in case FB is bigger than DOOM */
-    y_offset     = (FB_HEIGHT - SCREENHEIGHT + 1) / 2;
-    x_offset     = (FB_WIDTH -  SCREENWIDTH  + 1) / 2;
-    x_offset_end = (FB_WIDTH -  SCREENWIDTH  - x_offset);
+    /* 600 = fb heigt, 200 screenheight */
+    /* 600 = fb heigt, 200 screenheight */
+    /* 2048 =fb width, 320 screenwidth */
+    y_offset     = (((fb.yres - (SCREENHEIGHT * fb_scaling)) * fb.bits_per_pixel/8)) / 2;
+    x_offset     = (((fb.xres - (SCREENWIDTH  * fb_scaling)) * fb.bits_per_pixel/8)) / 2; // XXX: siglent FB hack: /4 instead of /2, since it seems to handle the resolution in a funny way
+    //x_offset     = 0;
+    x_offset_end = ((fb.xres - (SCREENWIDTH  * fb_scaling)) * fb.bits_per_pixel/8) - x_offset;
 
     /* DRAW SCREEN */
     line_in  = (unsigned char *) I_VideoBuffer;
@@ -380,20 +415,27 @@ void I_FinishUpdate (void)
 
     while (y--)
     {
-        line_out += x_offset;
+        int i;
+        for (i = 0; i < fb_scaling; i++) {
+            line_out += x_offset;
 #ifdef CMAP256
-        memcpy(line_out, line_in, SCREENWIDTH); /* FB_WIDTH is bigger than Doom SCREENWIDTH... */
+            for (fb_scaling == 1) {
+                memcpy(line_out, line_in, SCREENWIDTH); /* fb_width is bigger than Doom SCREENWIDTH... */
+            } else {
+                //XXX FIXME fb_scaling support!
+            }
 #else
-        cmap_to_rgb565(line_out, line_in, SCREENWIDTH);
+            //cmap_to_rgb565((void*)line_out, (void*)line_in, SCREENWIDTH);
+            cmap_to_fb((void*)line_out, (void*)line_in, SCREENWIDTH);
 #endif
+            line_out += (SCREENWIDTH * fb_scaling * (fb.bits_per_pixel/8)) + x_offset_end;
+        }
         line_in += SCREENWIDTH;
-        line_out += SCREENWIDTH + x_offset_end;
     }
 
     /* Start drawing from y-offset */
-    lseek(fd_fb, y_offset * FB_WIDTH, SEEK_SET);
-    write(fd_fb, I_VideoBuffer_FB, SCREENHEIGHT * FB_WIDTH); /* draw only portion used by doom + x-offsets */
-
+    lseek(fd_fb, y_offset * fb.xres, SEEK_SET);
+    write(fd_fb, I_VideoBuffer_FB, (SCREENHEIGHT * fb_scaling * (fb.bits_per_pixel/8)) * fb.xres); /* draw only portion used by doom + x-offsets */
 }
 
 //
@@ -428,6 +470,10 @@ void I_SetPalette (byte* palette)
        //      palette += 3;
        //}
     
+
+    /* performance boost:
+     * map to the right pixel format over here! */
+
     for (i=0; i<256; ++i ) {
         colors[i].a = 0;
         colors[i].r = gammatable[usegamma][*palette++];
@@ -436,7 +482,7 @@ void I_SetPalette (byte* palette)
     }
 
     /* Set new color map in kernel framebuffer driver */
-    ioctl(fd_fb, IOCTL_FB_PUTCMAP, colors);
+    //XXX FIXME ioctl(fd_fb, IOCTL_FB_PUTCMAP, colors);
 }
 
 // Given an RGB value, find the closest matching palette index.
similarity index 100%
rename from frosted-doom/icon.c
rename to fbdoom/icon.c
similarity index 100%
rename from frosted-doom/info.c
rename to fbdoom/info.c
similarity index 100%
rename from frosted-doom/info.h
rename to fbdoom/info.h
similarity index 100%
rename from frosted-doom/m_argv.c
rename to fbdoom/m_argv.c
similarity index 100%
rename from frosted-doom/m_argv.h
rename to fbdoom/m_argv.h
similarity index 100%
rename from frosted-doom/m_bbox.c
rename to fbdoom/m_bbox.c
similarity index 100%
rename from frosted-doom/m_bbox.h
rename to fbdoom/m_bbox.h
similarity index 100%
rename from frosted-doom/m_cheat.c
rename to fbdoom/m_cheat.c
similarity index 100%
rename from frosted-doom/m_cheat.h
rename to fbdoom/m_cheat.h
similarity index 100%
rename from frosted-doom/m_config.c
rename to fbdoom/m_config.c
similarity index 100%
rename from frosted-doom/m_config.h
rename to fbdoom/m_config.h
similarity index 100%
rename from frosted-doom/m_fixed.c
rename to fbdoom/m_fixed.c
similarity index 100%
rename from frosted-doom/m_fixed.h
rename to fbdoom/m_fixed.h
similarity index 100%
rename from frosted-doom/m_menu.c
rename to fbdoom/m_menu.c
similarity index 100%
rename from frosted-doom/m_menu.h
rename to fbdoom/m_menu.h
similarity index 100%
rename from frosted-doom/m_misc.c
rename to fbdoom/m_misc.c
similarity index 100%
rename from frosted-doom/m_misc.h
rename to fbdoom/m_misc.h
similarity index 100%
rename from frosted-doom/m_random.c
rename to fbdoom/m_random.c
similarity index 100%
rename from frosted-doom/m_random.h
rename to fbdoom/m_random.h
similarity index 100%
rename from frosted-doom/memio.c
rename to fbdoom/memio.c
similarity index 100%
rename from frosted-doom/memio.h
rename to fbdoom/memio.h
similarity index 100%
rename from frosted-doom/net_defs.h
rename to fbdoom/net_defs.h
similarity index 100%
rename from frosted-doom/net_gui.h
rename to fbdoom/net_gui.h
similarity index 100%
rename from frosted-doom/net_io.h
rename to fbdoom/net_io.h
similarity index 100%
rename from frosted-doom/net_loop.h
rename to fbdoom/net_loop.h
similarity index 100%
rename from frosted-doom/net_query.h
rename to fbdoom/net_query.h
similarity index 100%
rename from frosted-doom/net_sdl.h
rename to fbdoom/net_sdl.h
similarity index 100%
rename from frosted-doom/p_ceilng.c
rename to fbdoom/p_ceilng.c
similarity index 100%
rename from frosted-doom/p_doors.c
rename to fbdoom/p_doors.c
similarity index 100%
rename from frosted-doom/p_enemy.c
rename to fbdoom/p_enemy.c
similarity index 100%
rename from frosted-doom/p_floor.c
rename to fbdoom/p_floor.c
similarity index 100%
rename from frosted-doom/p_inter.c
rename to fbdoom/p_inter.c
similarity index 100%
rename from frosted-doom/p_inter.h
rename to fbdoom/p_inter.h
similarity index 100%
rename from frosted-doom/p_lights.c
rename to fbdoom/p_lights.c
similarity index 100%
rename from frosted-doom/p_local.h
rename to fbdoom/p_local.h
similarity index 100%
rename from frosted-doom/p_map.c
rename to fbdoom/p_map.c
similarity index 100%
rename from frosted-doom/p_maputl.c
rename to fbdoom/p_maputl.c
similarity index 100%
rename from frosted-doom/p_mobj.c
rename to fbdoom/p_mobj.c
similarity index 100%
rename from frosted-doom/p_mobj.h
rename to fbdoom/p_mobj.h
similarity index 100%
rename from frosted-doom/p_plats.c
rename to fbdoom/p_plats.c
similarity index 100%
rename from frosted-doom/p_pspr.c
rename to fbdoom/p_pspr.c
similarity index 100%
rename from frosted-doom/p_pspr.h
rename to fbdoom/p_pspr.h
similarity index 100%
rename from frosted-doom/p_saveg.c
rename to fbdoom/p_saveg.c
similarity index 100%
rename from frosted-doom/p_saveg.h
rename to fbdoom/p_saveg.h
similarity index 100%
rename from frosted-doom/p_setup.c
rename to fbdoom/p_setup.c
similarity index 100%
rename from frosted-doom/p_setup.h
rename to fbdoom/p_setup.h
similarity index 100%
rename from frosted-doom/p_sight.c
rename to fbdoom/p_sight.c
similarity index 100%
rename from frosted-doom/p_spec.c
rename to fbdoom/p_spec.c
similarity index 100%
rename from frosted-doom/p_spec.h
rename to fbdoom/p_spec.h
similarity index 100%
rename from frosted-doom/p_switch.c
rename to fbdoom/p_switch.c
similarity index 100%
rename from frosted-doom/p_telept.c
rename to fbdoom/p_telept.c
similarity index 100%
rename from frosted-doom/p_tick.c
rename to fbdoom/p_tick.c
similarity index 100%
rename from frosted-doom/p_tick.h
rename to fbdoom/p_tick.h
similarity index 100%
rename from frosted-doom/p_user.c
rename to fbdoom/p_user.c
similarity index 100%
rename from frosted-doom/r_bsp.c
rename to fbdoom/r_bsp.c
similarity index 100%
rename from frosted-doom/r_bsp.h
rename to fbdoom/r_bsp.h
similarity index 100%
rename from frosted-doom/r_data.c
rename to fbdoom/r_data.c
similarity index 100%
rename from frosted-doom/r_data.h
rename to fbdoom/r_data.h
similarity index 100%
rename from frosted-doom/r_defs.h
rename to fbdoom/r_defs.h
similarity index 100%
rename from frosted-doom/r_draw.c
rename to fbdoom/r_draw.c
similarity index 100%
rename from frosted-doom/r_draw.h
rename to fbdoom/r_draw.h
similarity index 100%
rename from frosted-doom/r_local.h
rename to fbdoom/r_local.h
similarity index 100%
rename from frosted-doom/r_main.c
rename to fbdoom/r_main.c
similarity index 100%
rename from frosted-doom/r_main.h
rename to fbdoom/r_main.h
similarity index 100%
rename from frosted-doom/r_plane.c
rename to fbdoom/r_plane.c
similarity index 100%
rename from frosted-doom/r_plane.h
rename to fbdoom/r_plane.h
similarity index 100%
rename from frosted-doom/r_segs.c
rename to fbdoom/r_segs.c
similarity index 100%
rename from frosted-doom/r_segs.h
rename to fbdoom/r_segs.h
similarity index 100%
rename from frosted-doom/r_sky.c
rename to fbdoom/r_sky.c
similarity index 100%
rename from frosted-doom/r_sky.h
rename to fbdoom/r_sky.h
similarity index 100%
rename from frosted-doom/r_state.h
rename to fbdoom/r_state.h
similarity index 100%
rename from frosted-doom/r_things.c
rename to fbdoom/r_things.c
similarity index 100%
rename from frosted-doom/r_things.h
rename to fbdoom/r_things.h
similarity index 100%
rename from frosted-doom/s_sound.c
rename to fbdoom/s_sound.c
similarity index 100%
rename from frosted-doom/s_sound.h
rename to fbdoom/s_sound.h
similarity index 100%
rename from frosted-doom/sha1.c
rename to fbdoom/sha1.c
similarity index 100%
rename from frosted-doom/sha1.h
rename to fbdoom/sha1.h
similarity index 100%
rename from frosted-doom/sounds.c
rename to fbdoom/sounds.c
similarity index 100%
rename from frosted-doom/sounds.h
rename to fbdoom/sounds.h
similarity index 100%
rename from frosted-doom/st_lib.c
rename to fbdoom/st_lib.c
similarity index 100%
rename from frosted-doom/st_lib.h
rename to fbdoom/st_lib.h
similarity index 100%
rename from frosted-doom/st_stuff.c
rename to fbdoom/st_stuff.c
similarity index 100%
rename from frosted-doom/st_stuff.h
rename to fbdoom/st_stuff.h
similarity index 100%
rename from frosted-doom/statdump.c
rename to fbdoom/statdump.c
similarity index 100%
rename from frosted-doom/statdump.h
rename to fbdoom/statdump.h
similarity index 100%
rename from frosted-doom/stubs.c
rename to fbdoom/stubs.c
similarity index 100%
rename from frosted-doom/tables.c
rename to fbdoom/tables.c
similarity index 100%
rename from frosted-doom/tables.h
rename to fbdoom/tables.h
similarity index 100%
rename from frosted-doom/v_patch.h
rename to fbdoom/v_patch.h
similarity index 100%
rename from frosted-doom/v_video.c
rename to fbdoom/v_video.c
similarity index 100%
rename from frosted-doom/v_video.h
rename to fbdoom/v_video.h
similarity index 100%
rename from frosted-doom/w_file.c
rename to fbdoom/w_file.c
similarity index 100%
rename from frosted-doom/w_file.h
rename to fbdoom/w_file.h
similarity index 100%
rename from frosted-doom/w_main.c
rename to fbdoom/w_main.c
similarity index 100%
rename from frosted-doom/w_main.h
rename to fbdoom/w_main.h
similarity index 100%
rename from frosted-doom/w_merge.h
rename to fbdoom/w_merge.h
similarity index 100%
rename from frosted-doom/w_wad.c
rename to fbdoom/w_wad.c
similarity index 100%
rename from frosted-doom/w_wad.h
rename to fbdoom/w_wad.h
similarity index 100%
rename from frosted-doom/wi_stuff.c
rename to fbdoom/wi_stuff.c
similarity index 100%
rename from frosted-doom/wi_stuff.h
rename to fbdoom/wi_stuff.h
similarity index 100%
rename from frosted-doom/z_zone.c
rename to fbdoom/z_zone.c
similarity index 100%
rename from frosted-doom/z_zone.h
rename to fbdoom/z_zone.h