Page 1 of 1

ESP32-Doom available

Posted: Mon Jul 03, 2017 11:27 am
by ESP_Sprite
Hi all,

Okay, if you happen to have hardware with a rev1 ESP32, psram and a LCD, I have something for you: you can run a version of Doom (the 1993 version, not the recent one) on your hardware!

The backstory, for whoever is interested in reading: Back when we started working on PSRam support for the ESP32, I decided to try and port Doom over to the ESP32, specifically the PrBoom version of Doom. Unfortunately, as you all know, Psram support for the ESP32 has been a slightly more rocky road than we expected, and Doom turned out to be a pretty good indication on if we still had bugs left... it's a pretty complicated program that has a pretty extensive set of memory access patterns, so whenever for example the demo de-synced or the program crashed, we knew we still had work to do. Needless to say: Doom at the moment runs stable on our hardware (as long as you don't try to do something we didn't implement.)

At the moment, the code is capable of running in 320x240 with a speed of around 20FPS. You can actually get a few FPS by clocking the flash at 80MHz instead 40MHz, but because Wrover-Kits do not work well at that speed out-of-the-box, we didn't enable it in the default sdkconfig.

We didn't implemented all things: there is no sound, no music, no savegame support and because we didn't include all data that PrBoom has (because we wanted it all to fit in 4MiB of flash) some menus will crash. Also, because of the 4MiB flash limitation, we only tested a stripped down version of the shareware Doom game data. With more flash, you can theoretically run other game data as well, but we did not test this. In general, this code comes as is: we do not expect to add any more features to it, although we're receptive to pull requests if you do.

A video, for those without the hardware: https://www.youtube.com/watch?v=Gb_JFDa0AIo

And for those with the hardware: the code repository is here: https://github.com/espressif/esp32-doom . Sorry, because of the licensing of PrBoom I'm not sure if we can spread compiled binaries around. The code needs the PSRAM SDK branch (plus toolchain) to work.

(And yes, I know E1L1 by heart now and can tell you exactly how the first demo goes and where it crashes if we have memory problems...)

Re: ESP32-Doom available

Posted: Mon Jul 03, 2017 3:26 pm
by rudi ;-)
chocolate doom ESP32 port?

Not sure but i think the needed wad from here can be used?
this is 93/95 public version ( PR version )

not sure which is the right :

FYI: ( german )
doom1.wad public in this PR download version

index.png
index.png (36.48 KiB) Viewed 3421 times


or this ( doomarchive.com ) shareware
index2.png
index2.png (13.91 KiB) Viewed 3421 times


hope this helps.

best wishes
rudi ;-)

Re: ESP32-Doom available

Posted: Mon Jul 03, 2017 3:36 pm
by ESP_Sprite
There's a working (and somewhat stripped to fit in the remainder of a 4MiB flash) version of the shareware Doom wad linked in the readme of the Git repository.

Re: ESP32-Doom available

Posted: Mon Jul 03, 2017 4:47 pm
by rudi ;-)
ESP_Sprite wrote:There's a working (and somewhat stripped to fit in the remainder of a 4MiB flash) version of the shareware Doom wad linked in the readme of the Git repository.


good work!

how look's this to you`?
( i need first a controller)

Code: Select all

....
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x3e (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0008,len:4
load:0x3fff000c,len:4276
load:0x40078000,len:11120
load:0x40080000,len:268
entry 0x40080034
I (44) boot: ESP-IDF v2.0-rc1-891-g9faf9c9 2nd stage bootloader
I (45) boot: compile time 18:26:04
I (60) boot: Enabling RNG early entropy source...
I (62) boot: SPI Speed      : 40MHz
I (75) boot: SPI Mode       : DIO
I (87) boot: SPI Flash Size : 4MB
I (100) boot: Partition Table:
I (111) boot: ## Label            Usage          Type ST Offset   Length
I (134) boot:  0 factory          factory app      00 00 00010000 000e8000
I (157) boot:  1 wifidata         WiFi data        01 02 000fc000 00004000
I (180) boot:  2 wad              unknown          42 06 00100000 00300000
I (204) boot: End of partition table
I (217) boot: Disabling RNG early entropy source...
I (234) boot: Loading app partition at offset 00010000
I (1354) boot: segment 0: paddr=0x00010018 vaddr=0x00000000 size=0x0ffe8 ( 65512)
I (1355) boot: segment 1: paddr=0x00020008 vaddr=0x3f400010 size=0x2c334 (181044) map
I (1371) boot: segment 2: paddr=0x0004c344 vaddr=0x3ffb0000 size=0x0b6cc ( 46796) load
I (1417) boot: segment 3: paddr=0x00057a18 vaddr=0x40080000 size=0x00400 (  1024) load
I (1425) boot: segment 4: paddr=0x00057e20 vaddr=0x40080400 size=0x091a8 ( 37288) load
I (1469) boot: segment 5: paddr=0x00060fd0 vaddr=0x400c0000 size=0x00000 (     0) load
I (1478) boot: segment 6: paddr=0x00060fd8 vaddr=0x00000000 size=0x0f030 ( 61488)
I (1503) boot: segment 7: paddr=0x00070010 vaddr=0x400d0018 size=0x734f8 (472312) map
I (1530) cpu_start: PSRAM mode: flash 40m sram 40m
I (1545) cpu_start: PSRAM initialized, cache is in even/odd (2-core) mode.
I (1569) cpu_start: Pro cpu up.
I (1580) cpu_start: Starting app cpu, entry point is 0x40080f30
I (0) cpu_start: App cpu up.
I (4234) heap_alloc_caps: SPI SRAM memory test OK
I (4235) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (4241) heap_alloc_caps: At 3F800000 len 00400000 (4096 KiB): SPIRAM
I (4262) heap_alloc_caps: At 3FFAE2A0 len 00001D60 (7 KiB): DRAM
I (4283) heap_alloc_caps: At 3FFCF4F8 len 00008B08 (34 KiB): DMAONLY
I (4305) heap_alloc_caps: At 3FFD8000 len 00008000 (32 KiB): DRAM
I (4325) heap_alloc_caps: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (4347) heap_alloc_caps: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (4368) heap_alloc_caps: At 400895A8 len 00016A58 (90 KiB): IRAM
I (4389) cpu_start: Pro cpu start user code
I (4448) cpu_start: Starting scheduler on PRO CPU.
I (2853) cpu_start: Starting scheduler on APP CPU.
spi_lcd_init()
*** Display task starting.
I (2863) gpio: GPIO[2]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (2863) gpio: GPIO[4]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (2873) gpio: GPIO[14]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (2883) gpio: GPIO[27]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
No PSX/PS2 controller detected (0xFF). You will not be able to control the game.
Joystick task starting.

prboom v2.5.0 (http://prboom.sourceforge.net/)
preinitgfxmask for stdout console output: ICWEFDA
M_LoadDefaults: Load system defaults.
 default file: prboom.cfg
IWAD found: DOOM1.WAD
PrBoom (built Jul  3 2017), playing: DOOM Shareware
PrBoom is released under the GNU General Public license v2.0.
You are welcome to redistribute it under certain conditions.
It comes with ABSOLUTELY NO WARRANTY. See the file COPYING for details.
V_Init: allocate screens.
D_InitNetGame: Checking for network game.
W_Init: Init WADfiles.
 adding DOOM1.WAD
I_Open: open DOOM1.gwa failed
W_InitCache

M_Init: Init miscellaneous info.
R_Init: Init DOOM refresh daemon -
R_LoadTrigTables: Endianness...ok.
R_InitData: Textures Flats Sprites Tranmap build [........]
R_Init: R_InitPlanes R_InitLightTables R_InitSkyMap R_InitTranslationsTables R_InitPatches
P_Init: Init Playloop state.
I_Init: Setting up machine state.
S_Init: Setting up sound.
HU_Init: Setting up heads up display.
I_InitGraphics: 320x240
I_UpdateVideoMode: 320x240
V_InitMode: using 8 bit video mode
I_SetRes: Using resolution 320x240
gamepadInit: Initializing game pad.
ST_Init: Init status bar.
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
P_LoadSideDefs2: sidedef 123 has out-of-range sector num 65535


Re: ESP32-Doom available

Posted: Mon Jul 03, 2017 11:15 pm
by nicolas
In psxcontroller.c , I can see you still use some delay (with a series of nops in asm) between gpio writes as a workaround to prevent discarded writes in fast, subsequent accesses to the same register.
(alternative register addresses were provided in the "ESP32 bugs and workarounds" document, but i seem to remember this wasn't ideal for some other reason, if you could clarify this point again ...)

Please can you tell us why you are still using this trick with up-to-date silicon, and what is the status of this annoying bug (possibly limiting GPIO throughput) with revision 1 ESP32 ?

Re: ESP32-Doom available

Posted: Tue Jul 04, 2017 2:11 am
by ESP_Sprite
Rudi: Hmm, I saw that before, forgot what the cause was... will look into it, I may have forgotten to push my latest changes to Github or something stupid like that. Even without a controller, Doom is supposed to play a few demos.

Nicolas: Because the code is a copy-paste from the NES project, which is pretty old. It's actually not even meant as a workaround for the GPIO issue (which wasn't known at the time I wrote that code), it's literally only meant to introduce a slight delay.

Re: ESP32-Doom available

Posted: Tue Jul 04, 2017 3:39 am
by ESP_Sprite
Rudi: Ah, I remember now. (Seems the coffee kicked in.) That was a small bug in the mmap code of esp-idf that I fixed just before releasing Doom; if you are still on an old version of the branch you will see that. Please git pull in the esp-idf directory and recompile to fix it.

Re: ESP32-Doom available

Posted: Tue Jul 04, 2017 8:17 am
by rudi ;-)
this idx[...ded1cd3] of this LOG line is much better
thanks for the hint!

Code: Select all

I (44) boot: ESP-IDF v2.0-rc1-892-gded1cd3 2nd stage bootloader


bootlog:

Code: Select all

rst:0x1 (POWERON_RESET),boot:0x3e (SPI_FAST_FLASH_BOOT)
flash read err, 1000
Falling back to built-in command interpreter.
OK
>ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x3e (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0008,len:4
load:0x3fff000c,len:4276
load:0x40078000,len:11120
load:0x40080000,len:268
entry 0x40080034
I (44) boot: ESP-IDF v2.0-rc1-892-gded1cd3 2nd stage bootloader
I (45) boot: compile time 09:36:29
I (60) boot: Enabling RNG early entropy source...
I (62) boot: SPI Speed      : 40MHz
I (75) boot: SPI Mode       : DIO
I (87) boot: SPI Flash Size : 4MB
I (100) boot: Partition Table:
I (111) boot: ## Label            Usage          Type ST Offset   Length
I (134) boot:  0 factory          factory app      00 00 00010000 000e8000
I (157) boot:  1 wifidata         WiFi data        01 02 000fc000 00004000
I (180) boot:  2 wad              unknown          42 06 00100000 00300000
I (204) boot: End of partition table
I (217) boot: Disabling RNG early entropy source...
I (234) boot: Loading app partition at offset 00010000
I (1354) boot: segment 0: paddr=0x00010018 vaddr=0x00000000 size=0x0ffe8 ( 65512)
I (1355) boot: segment 1: paddr=0x00020008 vaddr=0x3f400010 size=0x2c344 (181060) map
I (1371) boot: segment 2: paddr=0x0004c354 vaddr=0x3ffb0000 size=0x0b6cc ( 46796) load
I (1417) boot: segment 3: paddr=0x00057a28 vaddr=0x40080000 size=0x00400 (  1024) load
I (1425) boot: segment 4: paddr=0x00057e30 vaddr=0x40080400 size=0x091a8 ( 37288) load
I (1469) boot: segment 5: paddr=0x00060fe0 vaddr=0x400c0000 size=0x00000 (     0) load
I (1478) boot: segment 6: paddr=0x00060fe8 vaddr=0x00000000 size=0x0f020 ( 61472)
I (1503) boot: segment 7: paddr=0x00070010 vaddr=0x400d0018 size=0x73510 (472336) map
I (1530) cpu_start: PSRAM mode: flash 40m sram 40m
I (1545) cpu_start: PSRAM initialized, cache is in even/odd (2-core) mode.
I (1569) cpu_start: Pro cpu up.
I (1580) cpu_start: Starting app cpu, entry point is 0x40080f30
I (0) cpu_start: App cpu up.
I (4234) heap_alloc_caps: SPI SRAM memory test OK
I (4235) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (4241) heap_alloc_caps: At 3F800000 len 00400000 (4096 KiB): SPIRAM
I (4262) heap_alloc_caps: At 3FFAE2A0 len 00001D60 (7 KiB): DRAM
I (4283) heap_alloc_caps: At 3FFCEFF8 len 00009008 (36 KiB): DMAONLY
I (4305) heap_alloc_caps: At 3FFD8000 len 00008000 (32 KiB): DRAM
I (4325) heap_alloc_caps: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (4347) heap_alloc_caps: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (4368) heap_alloc_caps: At 400895A8 len 00016A58 (90 KiB): IRAM
I (4389) cpu_start: Pro cpu start user code
I (4448) cpu_start: Starting scheduler on PRO CPU.
I (2853) cpu_start: Starting scheduler on APP CPU.
spi_lcd_init()
*** Display task starting.
I (2863) gpio: GPIO[2]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (2863) gpio: GPIO[4]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (2873) gpio: GPIO[14]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (2883) gpio: GPIO[27]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
No PSX/PS2 controller detected (0xFF). You will not be able to control the game.
Joystick task starting.

prboom v2.5.0 (http://prboom.sourceforge.net/)
preinitgfxmask for stdout console output: ICWEFDA
M_LoadDefaults: Load system defaults.
 default file: prboom.cfg
IWAD found: DOOM1.WAD
PrBoom (built Jul  4 2017), playing: DOOM Shareware
PrBoom is released under the GNU General Public license v2.0.
You are welcome to redistribute it under certain conditions.
It comes with ABSOLUTELY NO WARRANTY. See the file COPYING for details.
V_Init: allocate screens.
D_InitNetGame: Checking for network game.
W_Init: Init WADfiles.
 adding DOOM1.WAD
I_Open: open DOOM1.gwa failed
W_InitCache

M_Init: Init miscellaneous info.
R_Init: Init DOOM refresh daemon -
R_LoadTrigTables: Endianness...ok.
R_InitData: Textures Flats Sprites Tranmap build [........]
R_Init: R_InitPlanes R_InitLightTables R_InitSkyMap R_InitTranslationsTables R_InitPatches
P_Init: Init Playloop state.
I_Init: Setting up machine state.
S_Init: Setting up sound.
HU_Init: Setting up heads up display.
I_InitGraphics: 320x240
I_UpdateVideoMode: 320x240
V_InitMode: using 8 bit video mode
I_SetRes: Using resolution 320x240
gamepadInit: Initializing game pad.
ST_Init: Init status bar.
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
R_NewVisSprite: reallocing vissprites array to 128
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes

...
(still do the demos)
very good work jeroen!
it work's now demo for demo
thank you!
...

Code: Select all

G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes


btw, do we need to mark this repo and thread now? :)
( german )

best wishes
rudi ;-)

Re: ESP32-Doom available

Posted: Wed Jul 05, 2017 1:48 am
by nicolas
@Sprite: ok sorry, with the delay between writes to the same register, and the "nops" sequence, it looked very similar to the code examples previously provided as a workaround (I hope the bug has been fixed in the new revision though).

Re: ESP32-Doom available

Posted: Mon Jul 17, 2017 7:09 pm
by rudi ;-)
@Jeroen

Wrover Kit V3
SoC
112017
PCKA36

1.8V Flash removed
1.8V PSRAM removed

3.3V Flash soldered
3.3V PSRAM 64Mbit soldered

MTDI ( IO12 ) pulled down for VDD_SDIO 3.3V

DOOM compiled, flashed
and

it work's

Code: Select all

ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x1e (SPI_FAST_FLASH_BOOT)
flash read err, 1000
Falling back to built-in command interpreter.
OK
>ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x1e (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0008,len:4
load:0x3fff000c,len:4276
load:0x40078000,len:11120
load:0x40080000,len:268
entry 0x40080034
I (44) boot: ESP-IDF v2.0-rc1-892-gded1cd3 2nd stage bootloader
I (45) boot: compile time 09:36:29
I (45) boot: Enabling RNG early entropy source...
I (62) boot: SPI Speed      : 40MHz
I (75) boot: SPI Mode       : DIO
I (87) boot: SPI Flash Size : 4MB
I (100) boot: Partition Table:
I (111) boot: ## Label            Usage          Type ST Offset   Length
I (134) boot:  0 factory          factory app      00 00 00010000 000e8000
I (157) boot:  1 wifidata         WiFi data        01 02 000fc000 00004000
I (180) boot:  2 wad              unknown          42 06 00100000 00300000
I (204) boot: End of partition table
I (217) boot: Disabling RNG early entropy source...
I (234) boot: Loading app partition at offset 00010000
I (1354) boot: segment 0: paddr=0x00010018 vaddr=0x00000000 size=0x0ffe8 ( 65512)
I (1355) boot: segment 1: paddr=0x00020008 vaddr=0x3f400010 size=0x2c344 (181060) map
I (1371) boot: segment 2: paddr=0x0004c354 vaddr=0x3ffb0000 size=0x0b6cc ( 46796) load
I (1417) boot: segment 3: paddr=0x00057a28 vaddr=0x40080000 size=0x00400 (  1024) load
I (1425) boot: segment 4: paddr=0x00057e30 vaddr=0x40080400 size=0x091a8 ( 37288) load
I (1469) boot: segment 5: paddr=0x00060fe0 vaddr=0x400c0000 size=0x00000 (     0) load
I (1477) boot: segment 6: paddr=0x00060fe8 vaddr=0x00000000 size=0x0f020 ( 61472)
I (1503) boot: segment 7: paddr=0x00070010 vaddr=0x400d0018 size=0x73510 (472336) map
I (1530) cpu_start: PSRAM mode: flash 40m sram 40m
I (1545) cpu_start: PSRAM initialized, cache is in even/odd (2-core) mode.
I (1569) cpu_start: Pro cpu up.
I (1580) cpu_start: Starting app cpu, entry point is 0x40080f30
I (0) cpu_start: App cpu up.
I (4234) heap_alloc_caps: SPI SRAM memory test OK
I (4235) heap_alloc_caps: Initializing. RAM available for dynamic allocation:
I (4240) heap_alloc_caps: At 3F800000 len 00400000 (4096 KiB): SPIRAM
I (4262) heap_alloc_caps: At 3FFAE2A0 len 00001D60 (7 KiB): DRAM
I (4283) heap_alloc_caps: At 3FFCEFF8 len 00009008 (36 KiB): DMAONLY
I (4305) heap_alloc_caps: At 3FFD8000 len 00008000 (32 KiB): DRAM
I (4325) heap_alloc_caps: At 3FFE0440 len 00003BC0 (14 KiB): D/IRAM
I (4347) heap_alloc_caps: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (4368) heap_alloc_caps: At 400895A8 len 00016A58 (90 KiB): IRAM
I (4389) cpu_start: Pro cpu start user code
I (4448) cpu_start: Starting scheduler on PRO CPU.
I (2853) cpu_start: Starting scheduler on APP CPU.
spi_lcd_init()
*** Display task starting.
I (2863) gpio: GPIO[2]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (2863) gpio: GPIO[4]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (2873) gpio: GPIO[14]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (2883) gpio: GPIO[27]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
No PSX/PS2 controller detected (0xFF). You will not be able to control the game.
Joystick task starting.

prboom v2.5.0 (http://prboom.sourceforge.net/)
preinitgfxmask for stdout console output: ICWEFDA
M_LoadDefaults: Load system defaults.
 default file: prboom.cfg
IWAD found: DOOM1.WAD
PrBoom (built Jul  4 2017), playing: DOOM Shareware
PrBoom is released under the GNU General Public license v2.0.
You are welcome to redistribute it under certain conditions.
It comes with ABSOLUTELY NO WARRANTY. See the file COPYING for details.
V_Init: allocate screens.
D_InitNetGame: Checking for network game.
W_Init: Init WADfiles.
 adding DOOM1.WAD
I_Open: open DOOM1.gwa failed
W_InitCache

M_Init: Init miscellaneous info.
R_Init: Init DOOM refresh daemon -
R_LoadTrigTables: Endianness...ok.
R_InitData: Textures Flats Sprites Tranmap build [........]
R_Init: R_InitPlanes R_InitLightTables R_InitSkyMap R_InitTranslationsTables R_InitPatches
P_Init: Init Playloop state.
I_Init: Setting up machine state.
S_Init: Setting up sound.
HU_Init: Setting up heads up display.
I_InitGraphics: 320x240
I_UpdateVideoMode: 320x240
V_InitMode: using 8 bit video mode
I_SetRes: Using resolution 320x240
gamepadInit: Initializing game pad.
ST_Init: Init status bar.
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
R_NewVisSprite: reallocing vissprites array to 128
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes
G_DoPlayDemo: playing demo with doom/doom2 v1.9 compatibility
P_GetNodesVersion: using normal BSP nodes




best wishes
rudi ;-)