Jump to content
Search In
  • More options...
Find results that contain...
Find results in...


  • Content count

  • Joined

  • Last visited


About Sinshu

  • Rank

Recent Profile Visitors

349 profile views
  1. I played E1M1 on the classical guitar.
  2. Sinshu

    Weird demos

    The switching between SSG and shotgun seems to happen without releasing '3'. Besides, holding '3' keeps switching between SSG and shotgun. I didn't know that.
  3. Regarding /idgames, I have no plan to upload to there, since this is an experimental thing. If you want to run this mod on DOS Doom, DOOM2.EXE must be modified via DeHackEd, but I have never tried that...
  4. @Redneckerz I wanted to achieve the following things: The bots' rate of fire and firing animation are exactly the same as that of a real player. Bots never stop moving until they kill the player, even when they are attacking or in pain. To achieve these two things at the same time was not easy. Monsters that can move while attacking has already been accomplished in many mods. A simple way to accomplish that is to insert the A_Chase code pointer to the attack animation. However, in this way, since A_Chase might reset the monsters' animation to the initial attack frame even in middle of the attack animation, we cannot make a long attack animation like reloading SSG. The solution of this problem is not to use any attack states. In this mod, bots does not have attack state, so that we can ensure that A_Chase will not break the animation. Bots only have spawn, walk, pain and death states. So how do they attack the player? The walk animation is arranged like this: (1) One cycle of walking animation (One cycle of marine's walking sprites) (2) The A_CPosRefire code pointer (3) The attack animation with A_Chase inserted (4) Go to (3) After one cycle of the walking animation, bots always try to shoot the player. (2) is the code pointer used for chaingunners to stop attacking when the player is not visible. So bots will return to (1) if they cannot see the player. Thus, bots will shoot the player only when they can see the player, as if they have the attack state.
  5. There have been several attempts to make deathmatch bot for Vanilla Doom with DeHackEd. This is yet another attempt to make the combat more realistic. Here is a demo video: Ports required to play Any vanilla compatible ports should work. I've tested the following ports. Chocolate Doom Crispy Doom PrBoom+ Files Download link: https://github.com/sinshu/fake-bot-for-vanilla-doom/releases/tag/v1.1 fbot.deh The DEH file which turns monsters into deathmatch opponents. fbottest.wad A deathmatch map in which you endlessly fight against opponents. IWAD DOOM2.WAD is recommended, since fbottest.wad replaces MAP01. Recommended options To make the game enjoyable, -deathmatch and -solo-net options are highly recommended. For example: -deh fbot.deh -file fbottest.wad -deathmatch -solo-net -warp 1
  6. Sinshu

    Classic Doom source code questions

    That's what I want to know, too. By the way, if only the 1st quadrant is used as the LUT, the table size can be further reduced by using unsigned 16-bit integers.
  7. Sinshu

    [vanilla] "linedef" scripting

    Has anyone tried scripting using DeHackEd and monster's hitscan attack? Something like this:
  8. Sinshu

    Post your Doom video! [but don't quote video]

    By sacrificing resolution and color, I was able to improve the rendering speed. @Mr. Kong Doom is running on a program that is separate from Excel, and it controls Excel to display the rendered image as a colored cell.
  9. Sinshu

    Post your Doom video! [but don't quote video]

    Trying to run Doom on Excel, but the rendering speed is super slow...
  10. Sinshu

    Managed Doom - A Doom port written in C#

    It has been a long time since I last posted about v1.1a here. I've improved various parts of Managed Doom, and would like to inform you about them. Fixed crashes caused by various factors. Added full DeHackEd support. The SoundFont MIDI synthesizer has been re-implemented from scratch, with improved quality and support for reverb and chorus. Added drag & drop support for loading WADs. Improved demo playback compatibility. I've tried a number of D2ALL speedrun demos, and none of them went desync so far. Fixed issue where zoom keys do not work on some keyboards (thanks to Mr.Rocket). Refactored the platform dependent code for better portability. The newest Windows binary (v1.2e) is here: https://github.com/sinshu/managed-doom/releases By the way, a friend of mine reported that this port runs on Mac without any difficulty. I didn't notice this because I only have a Windows machine, but Microsoft has done a great job of making .NET cross-platform.
  11. Sinshu

    What's your Favorite Beer?

  12. I wanted to make a realistic deathmatch bot using only vanilla-compatible DeHackEd.
  13. Sinshu

    Neapolitan Doom v0.02

    It seems that the top & bottom values in visplanes overflow. In hi-res, since the screen height can be > 255, the type of these values should be 16-bit or greater integer. Here is how Crispy Doom does for this: https://github.com/fabiangreffrath/crispy-doom/blob/a3b7534cfe4b142a0b46180d7edf9b10a5df9e12/src/doom/r_defs.h#L475
  14. Sinshu

    Make a savegame edit

    It's not encrypted, but shown as hex numbers. Though I'm not familiar with your hex editor, the following procedure should work. Suppose you want to change the player's health. The position of the health value is 54 in hex (see my previous post). Move the vertical position of the cursor to the offset 00000050. Move the horizontal position of the cursor to the offset 04. You will see the health value on the right window at the row "Int32". Change the value to what you want.
  15. Sinshu

    Make a savegame edit

    All the values are 4-byte integer numbers (little endian). 54: Health (integer) 58: Armor points (integer) 5C: Armor type (integer) 60: Power-up 1 (integer) 64: Power-up 2 (integer) 68: Power-up 3 (integer) 6C: Power-up 4 (integer) 70: Power-up 5 (integer) 74: Power-up 6 (integer) 78: Card 1 (0 or 1) 7C: Card 2 (0 or 1) 80: Card 3 (0 or 1) 84: Card 4 (0 or 1) 88: Card 5 (0 or 1) 8C: Card 6 (0 or 1) 90: Backpack (0 or 1) AC: Weapon 1 (0 or 1) B0: Weapon 2 (0 or 1) B4: Weapon 3 (0 or 1) B8: Weapon 4 (0 or 1) BC: Weapon 5 (0 or 1) C0: Weapon 6 (0 or 1) C4: Weapon 7 (0 or 1) C8: Weapon 8 (0 or 1) CC: Weapon 9 (0 or 1) D0: Ammo 1 (integer) D4: Ammo 2 (integer) D8: Ammo 3 (integer) DC: Ammo 4 (integer) E0: Max ammo 1 (integer) E4: Max ammo 2 (integer) E8: Max ammo 3 (integer) EC: Max ammo 4 (integer)