Skip to content
a Doom port
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
temp readme update and app release for GUI Jan 7, 2018
.gitignore Initial commit Dec 29, 2017
Makefile beta release Dec 29, 2017
am_map.c beta release Dec 29, 2017
am_map.h beta release Dec 29, 2017
cl_cmds.c super secret multiplayer code Jan 7, 2018
cl_cmds.h beta release Dec 29, 2017
d_englsh.h beta release Dec 29, 2017
d_event.h beta release Dec 29, 2017
d_items.c beta release Dec 29, 2017
d_items.h
d_main.c added FreeDoom IWAD options Jan 7, 2018
d_main.h beta release Dec 29, 2017
d_net.c beta release Dec 29, 2017
d_net.h beta release Dec 29, 2017
d_player.h beta release Dec 29, 2017
d_textur.h beta release Dec 29, 2017
d_think.h beta release Dec 29, 2017
d_ticcmd.h beta release Dec 29, 2017
doomdata.h beta release Dec 29, 2017
doomdef.h beta release Dec 29, 2017
doomstat.c beta release Dec 29, 2017
doomstat.h beta release Dec 29, 2017
doomtype.h beta release Dec 29, 2017
dstrings.c beta release Dec 29, 2017
dstrings.h beta release Dec 29, 2017
f_finale.c beta release Dec 29, 2017
f_finale.h beta release Dec 29, 2017
g_game.c
g_game.h super secret multiplayer code Jan 7, 2018
gpl.txt beta release Dec 29, 2017
hu_lib.c beta release Dec 29, 2017
hu_lib.h beta release Dec 29, 2017
hu_stuff.c beta release Dec 29, 2017
hu_stuff.h beta release Dec 29, 2017
i_main.c super secret multiplayer code Jan 7, 2018
i_sound.c fix sound playback bug for sampling rates above 21846 Hz Dec 30, 2017
i_sound.h super secret multiplayer code Jan 7, 2018
i_system.c super secret multiplayer code Jan 7, 2018
i_system.h beta release Dec 29, 2017
i_video.c beta release Dec 29, 2017
i_video.h beta release Dec 29, 2017
info.c beta release Dec 29, 2017
info.h beta release Dec 29, 2017
m_argv.c beta release Dec 29, 2017
m_argv.h beta release Dec 29, 2017
m_bbox.c beta release Dec 29, 2017
m_bbox.h beta release Dec 29, 2017
m_cheat.c beta release Dec 29, 2017
m_cheat.h beta release Dec 29, 2017
m_fixed.c beta release Dec 29, 2017
m_fixed.h beta release Dec 29, 2017
m_menu.c beta release Dec 29, 2017
m_menu.h beta release Dec 29, 2017
m_misc.c beta release Dec 29, 2017
m_misc.h
m_random.c beta release Dec 29, 2017
m_random.h beta release Dec 29, 2017
m_swap.c beta release Dec 29, 2017
m_swap.h beta release Dec 29, 2017
network.c beta release Dec 29, 2017
network.h beta release Dec 29, 2017
p_ceilng.c beta release Dec 29, 2017
p_doors.c
p_enemy.c beta release Dec 29, 2017
p_floor.c beta release Dec 29, 2017
p_generic.c beta release Dec 29, 2017
p_generic.h beta release Dec 29, 2017
p_inter.c beta release Dec 29, 2017
p_inter.h beta release Dec 29, 2017
p_lights.c beta release Dec 29, 2017
p_local.h beta release Dec 29, 2017
p_map.c beta release Dec 29, 2017
p_maputl.c beta release Dec 29, 2017
p_mobj.c beta release Dec 29, 2017
p_mobj.h beta release Dec 29, 2017
p_pickup.c beta release Dec 29, 2017
p_pickup.h beta release Dec 29, 2017
p_plats.c beta release Dec 29, 2017
p_pspr.c beta release Dec 29, 2017
p_pspr.h beta release Dec 29, 2017
p_saveg.c beta release Dec 29, 2017
p_saveg.h beta release Dec 29, 2017
p_setup.c beta release Dec 29, 2017
p_setup.h beta release Dec 29, 2017
p_sight.c beta release Dec 29, 2017
p_spec.c
p_spec.h beta release Dec 29, 2017
p_switch.c beta release Dec 29, 2017
p_telept.c beta release Dec 29, 2017
p_tick.c beta release Dec 29, 2017
p_tick.h
p_user.c beta release Dec 29, 2017
r_bsp.c beta release Dec 29, 2017
r_bsp.h beta release Dec 29, 2017
r_data.c beta release Dec 29, 2017
r_data.h beta release Dec 29, 2017
r_defs.h beta release Dec 29, 2017
r_draw.c beta release Dec 29, 2017
r_draw.h beta release Dec 29, 2017
r_local.h beta release Dec 29, 2017
r_main.c beta release Dec 29, 2017
r_main.h beta release Dec 29, 2017
r_plane.c beta release Dec 29, 2017
r_plane.h beta release Dec 29, 2017
r_segs.c beta release Dec 29, 2017
r_segs.h beta release Dec 29, 2017
r_sky.c beta release Dec 29, 2017
r_sky.h beta release Dec 29, 2017
r_state.h beta release Dec 29, 2017
r_things.c beta release Dec 29, 2017
r_things.h beta release Dec 29, 2017
readme readme update and app release for GUI Jan 7, 2018
s_sound.c beta release Dec 29, 2017
s_sound.h beta release Dec 29, 2017
sounds.c beta release Dec 29, 2017
sounds.h beta release Dec 29, 2017
st_lib.c beta release Dec 29, 2017
st_lib.h beta release Dec 29, 2017
st_stuff.c make undecided area for gun selection much larger Dec 30, 2017
st_stuff.h beta release Dec 29, 2017
sv_cmds.c
sv_cmds.h beta release Dec 29, 2017
sv_main.c beta release Dec 29, 2017
tables.c beta release Dec 29, 2017
tables.h beta release Dec 29, 2017
v_video.c beta release Dec 29, 2017
v_video.h beta release Dec 29, 2017
w_wad.c beta release Dec 29, 2017
w_wad.h beta release Dec 29, 2017
wi_stuff.c beta release Dec 29, 2017
wi_stuff.h beta release Dec 29, 2017
z_zone.c beta release Dec 29, 2017
z_zone.h beta release Dec 29, 2017

readme

-= kgdoom =-

This is a first beta version of my Doom port.
Intended platform was Nintendo Switch, but in future i will add other.
Right now it is the only supported platform.

This is a quick beta release and likely contains a lot of bugs.

Aim of this port is not to stay compatible with original Doom, but to enhance it's fatures
while keeping oldschool software renderer with all various color additional tricks.

There are already some original Doom bugs fixed and small enhancemets added.

Before you try anything:
- you need firmware version 3.0.0
- learn what pegaswitch is
- sdbcore it will delete your Miis

How to:
- you need firmware version 3.0.0, again
- you need libtransistor to compile this
- you need ace_loader to run this (part of libtransistor)
- you need pegaswitch to run ace_loader
- 'temp' contains compiled ace loader with GUI and kgDoom app directory
- you have to modify pegaswitch to host static files
 * see bellow
 * create new 'files' directory
 * place 'kgdoom.nro' into 'files'
 * place one of original IWADs here too (lowercase name), check command line options below
 * save ace.nro somewhere accessible, can be in 'files'
 * run pegaswitch with sdbcode, runnro ace.nro
- connect using netcat to ACE loader, port 2991 (you have to know switch IP)
- send command 'exec kgdoom.nro', optionaly check command line options below

Command line options:
- to run shareware (doom1.wad), just run 'kgdoom.nro'
- to run doom 1 (doom.wad), run 'kgdoom.nro -doom'
- to run doom ultimate (doomu.wad), run 'kgdoom.nro -doomu'
- to run doom 2 (doom2.wad), run 'kgdoom.nro -doom2'
- to run plutonia (plutonia.wad), run 'kgdoom.nro -plutonia'
- to run TNT (tnt.wad), run 'kgdoom.nro -tnt'
- to run FreeDoom (freedoom1.wad), run 'kgdoom.nro -freedoom'
- to run FreeDoom2 (freedoom2.wad), run 'kgdoom.nro -freedoom2'

Known Bugs and unimplemented stuff:
- HID (controller) initialization fails sometimes
 * try again
- no save / load, including configuration
- no music
- not 100% tested, i was able to finish shareware episode

Switch controls:
- check out options in main menu
- hold 'weapon button' down and use right stick to pick a new weapon
- use + or - to enter main menu
- use A to confirm

Some features planned:
- Lua scripting; use Doom engine for your games (already WIP, about 50% done)
- 3D floors; to add more depth to levels (i did this in a past, easy)
- custom color remaps, sector lightmaps (fog effects), translucency using tables
- renderer update: better math; 320x200 hides all imperfections

Pegaswitch modification, start.js, before line 'app.get('/cache', function (req, res) {':

// static files for GUI
app.use('/files', express.static(path.join(__dirname, 'files')));
// app listing for GUI
app.get('/files/app_list', function (req, res) {
	var app_list = '';
	var dir = path.join(__dirname, 'files') + '/';
	var files = fs.readdirSync(dir);

	for(var i = 0; i < files.length; i++)
		if(fs.statSync(dir + files[i]).isDirectory())
			app_list += files[i] + '\n';

	res.end(app_list);
});

You can’t perform that action at this time.