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

Remilia Scarlet

Members
  • Content count

    5068
  • Joined

  • Last visited

Status Updates posted by Remilia Scarlet

  1.  

    Alternate link for those who want a privacy-respecting interface: https://invidious.slipfox.xyz/watch?v=hXLCDDVdFQg

     

    This is not ACS or Rube Goldberg BS (aka voodoo dolls/conveyor belts).  This is in Doomsday and is using nothing but XG line types.  The layout is a VERY rough draft implemented quickly, so just a simple blockout with just enough implemented to test the core mechanic.  So expect temporary textures, enemy placement, sector movement timing, etc.  There's still work to be done, detailing to be done, optimizing, and I need to fix the sounds.  Also ignore the snake dudes seeing you right off the bat >_>

     

    Just excited to do this.  I've never used "ticker" and "mobj_gone" line types before.

     

    Sometimes I'm just reminded how much I love Doomsday.  Yeah, it isn't the fastest engine (especially with the current renderer), and yeah it's missing some things... but damnit, I love it.  I want to see more stuff for it, too, because it deserves it 🖤

    EDIT: yes I use Eureka and Rakefiles for my Doom projects.  I have for a while now.


  2. A little something I've been working on for about a month now... CrDoom is my own source port of Doom to the Crystal programming language.  It's based on Managed Doom, but is using a basic OpenGL renderer that's based on my CL-DoomView program.

    It's obviously far from finished, but the gamesim is partially working, and enough gets drawn that you can at least get around the levels (and die).

    Source code:
    https://chiselapp.com/user/MistressRemilia/repository/CrDoom/

  3. "May the 4th be wi-"

     

    qkyn3rgnqhvy.jpg

    1. Liberation

      Liberation

      For the Emperor!

  4. *Checks her calendar and clock*

    *It's now the 5th*

     

    Yay I'm 38 now!

     

    I'll be back to more consistent Dooming again in January. I need some time off to take care of some family stuff.

  5. *needs to remove unused textures from a pk3 file*

     

    *Opens up Emacs*

     

    *Starts SLIME, loads up her Waddle library*

     

    *Types up some Common Lisp REPL fun*

    (let ((textures (check-for-unused-textures-in-wads
                     "/home/alexa/storage/bin/games/doom/Mine/Heretic Map/corax.pk3"
    
                     '("textures/redsky1.png" "textures/underwater.png"
                       "textures/q1hrtex/cop1_2.png" "textures/QFLAT07.png"
                       "textures/adel_v80.png")
    
                     #P"/home/alexa/storage/bin/games/doom/Mine/Heretic Map/corax-start.wad"
                     #P"/home/alexa/storage/bin/games/doom/Mine/Heretic Map/corax01.wad"
                     #P"/home/alexa/storage/bin/games/doom/Mine/Heretic Map/corax02.wad"
                     #P"/home/alexa/storage/bin/games/doom/Mine/Heretic Map/corax03.wad"
                     #P"/home/alexa/storage/bin/games/doom/Mine/Heretic Map/corax04.wad"
                     #P"/home/alexa/storage/bin/games/doom/Mine/Heretic Map/corax31.wad")))
    
      (format t "~%** Found ~a unused textures~%" (length textures))
    
      (format t "Writing textures to output file and modifying pk3~%")
      (with-open-file (out #P"/mnt/storage/alexa-extended/bin/games/doom/Mine/Heretic Map/unused-textures.txt"
                           :direction :output
                           :if-exists :supersede :if-does-not-exist :create)
        (loop for tex across textures
           do (progn
                (write-line tex out)
                (sb-ext:run-program
                 "zip" (list "-d" "/mnt/storage/alexa-extended/bin/games/doom/Mine/Heretic Map/corax.pk3" tex)
                 :search t :wait t
                 :output *standard-output*)))))
    

     

    And that's how I optimized SoTNR's pk3 in just a few minutes :D  I really need to wrap that in a command line program someday.

     

    Speaking of which, I've gotten a lot of things in the past few days, so SoTNR is now 95-98% done.  All that's left is:

    • More playtesting and last-minute tweaking
    • Text file proofreading
    • Music tweaks
    • Tweak some brightmaps
    1. Show previous comments  5 more
    2. DoctorGenesis

      DoctorGenesis

      What's SLIME?

    3. Remilia Scarlet

      Remilia Scarlet

      "Superior Lisp Interaction Mode or Emacs".  It essentially turns Emacs into a Common Lisp IDE on steroids. 

    4. DoctorGenesis

      DoctorGenesis

      @YukiRaven Huh, that's rather interesting.

  6. Made this for dinner tonight, but I wasn't paying attention and added way too much pork.

     

    So... ants harvesting a dense forest of vines?

    1. Show previous comments  3 more
    2. Albertoni

      Albertoni

      The language is easy to abuse to make some simple silly poetry, so they obviously do that.

       

      There's a Brazilian dish called "vaca atolada", "cow stuck in mud" that's almost the same thing, but with cow and cassava instead of pork and noodles. When done right, it does turn into a thick cream.

      The story for that one is that when a cow did get stuck, you couldn't get to the lower meats, so they just killed it, took off the rib meat and that was it. It's traditionally done with rib meat, but eh. Traditions are made to be improved. :P

    3. baja blast rd.

      baja blast rd.

      That reminds me: I want to try century eggs one day. I've never heard of 'ants climbing up a tree', but now I'm tempted to look up some 'interestingly' named foods. 

    4. GarrettChan

      GarrettChan

      @rdwpa Oh, I remember that this thing was said to be one of the most disgusting foods in the world? Lol. It's funny that the English name sounds like an expired egg or something like that. Besides eating it directly, one classic is porridge with this and water-cooked pork slice (don't know whether this is described correctly...).

    1. esselfortium

      esselfortium

      I notice there doesn't seem to be a date confirmed for either of them, though, so I don't think this is really anything we didn't already know...

    2. MrGlide

      MrGlide

      you see kong yet? I highly advise it, it was really really really good.

    3. Remilia Scarlet

      Remilia Scarlet

      @esselfortium well I hadn't heard it yet, so it was something I didn't know ^_^

       

      @MrGlide Not yet, but I've heard it's good.  I did see the post-credits scene, however, and uhh... yeah I lost my shit.

  7. 00flRQG.png

     

    I'm away from home and stuck on a bargain bin laptop for up to a week currently.  So, to pass the time, I've decided to do a study where I do a map for Doom in vanilla format in just one week.  The catch: the map will be done entirely in Eureka.

     

    Got this concept area hammered out last night to establish a bit of a visual theme.

     

    I unfortunately also did not have my mouse with me last night, and so this was also done just with a touchpad and therefore took longer than I wished ^_^;

    1. Argenteo

      Argenteo

      Looks very cool! I play with a touchpad on a laptop and I have tried Eureka several years ago. Cant wait to see what you do on it.  :)

    2. 00_Zombie_00
    3. Remilia Scarlet

      Remilia Scarlet

      This is taking just slightly longer to complete because I had some IRL stuff come up ^_^  Just a few more days, though!

  8. tlQfTda.png

     

    This is about 5 days worth of work.  I think I've gotten faster.

    1. DMPhobos

      DMPhobos

      It would take at least 3 full weeks of work for me to make something this size and with half the details
      Really impressive!

    2. riderr3

      riderr3

      Yeah. Pretty well done.

      Here what I've done for 2 weeks:
      hyRGqDK.jpg

      Some days earlier:

      Spoiler


      oaG1Itd.jpg

      I leaving detailing for later.

    3. Remilia Scarlet

      Remilia Scarlet

      I've been alternating. I block out areas and test the gameplay for a day or two, then I spend two days detailing. Basically how I've always worked, but I've extended it a bit.

  9. unknown.png

     

    99.9% done with the world geometry.  Now to finish scripting and bug squashing, then test everything all over again.

    1. Show previous comments  3 more
    2. Avoozl

      Avoozl

      Well we can't all be slaughtermap enthusiasts. :P

    3. Nine Inch Heels

      Nine Inch Heels

      A couple hundred cybies and Viles a Slaughtermap don't make.

      Depending on use and placement those are.

       

      Grammar from Yoda learned I have.

    4. riderr3

      riderr3

      My biggest is about 1100 sectors, but I am feeling tired to test such a complex maps.

  10. buttons.png.00a36ec4ddfaee68b27c29f42de4aa38.png

    Wait... wait... how long have these buttons been here in GZDoom Builder?!

    1. Misty

      Misty

      As far I as first time booted gzdoom builder few years ago? 

    2. Remilia Scarlet
  11. So!  Doom stuff!

     

    As I sorta mentioned before, I'm splitting Eschatology up into multiple releases. This is being done mostly for mental health reasons, and partially so I can focus more on other hobbies, like programming and music. Here's how it'll work:

    1. Eschatology's story will be told over a series of individual releases, just like with Freaky Panties, but with a bit more emphasis on the story. Freaky Panties' story is kinda just background fluff that's almost non-existent ("Doomguy searching for his favorite pair of panties, which the demons stole"), but Eschatology's will be obvious (and more serious).
    2. Eschatology will have no start map. Each release is an individual pk3 that you load up and play. Just like Freaky Panties.
    3. Eschatology 1 ("esc01") will be out this coming week (!!!). It will include the map "Decayed Faith".
    4. Eschatology 2 ("esc02") will be out sometime between the 20th and 30th. It will have the map "Dismembered Doll Parts".
    5. Eschatology 3 ("esc03") will be out in the late fall or early winter, depending on my programming projects. It will be the map "Colombian Necktie", which is the one with the hellfire.
    6. Eschatology 4 ("esc04") will be out just before December, and will be the remixed/expanded version of Halls of The Goat Child.
    7. Eschatology 5 ("esc05") will be started on next year sometime.
    8. I'll try to slip in a Freaky Panties map or another non-Eschatology map in this year, too.

    Eschatology will still require K8Vavoom to run, so be sure to download it if you want to play Eschatology.  It will not run in GZDoom.

  12. A few days ago I mentioned something about a Quake map I had sitting around on my hard drive, and I was trying to decide what to do with it.  Well, I've cleaned it up and decided what it'll be.  But first a bit of backstory...

     

    For a while I've been wanting to do a sequel to Shadows of The Nightmare Realm that continues on with the storyline, but I hadn't come up with anything solid.  All I had was a few ideas and test maps.  Since it wasn't going anywhere, I decided to put it on the back burner while I worked on a new project ("Kuroneko Project") that deals with a coven of witches.  This was originally going to be for Quake, but for various reasons I switched over to Heretic and GZDoom early on.

     

    Before the switch, I had a start map and a normal level mostly finished - the thing that's been sitting on my hard drive for a while now.  Well, the other day, I a flash of inspiration for this SoTNR sequel that I put on the back burner... and what's more, I realized I could use this level in the sequel.

     

    So it is, the sequel of Shadows of The Nightmare Realm will use Quake.  This new project is called Xala'noth and will be released in pieces/episodes. This new level (and the start map) is the first piece and is called "The Shore of Shadows".

     

    So yeah, it'll be out middle of next month.  I'm currently waiting on some things for my Heretic project anyway, so this is the perfect time to get this out the door.

     

    spasm0007.png.531e5b3b26f1464f79758b1e956bd61c.png

    1. StormCatcher.77

      StormCatcher.77

      Holy names... So much good content appears around me all the time and I don't have (at all) time to play it. Year by year... I haven't even tried Shadows of The Nightmare Realm until now. Life is pain...

      And yes, godlike stuff! c:
      I'm always glad to see something new from you.

    2. Remilia Scarlet

      Remilia Scarlet

      Thank you!  I appreciate all your support <3

  13. A little something I made tonight just for fun: connecting my CL-MeltySynth library to a MIDI editor through JACK to use it as an actual virtual synthesizer.  Actually anything can be connected that can send MIDI data through JACK.  The video goes up to 4k 60fps in case the text is hard to read.

     

     

    The GUI is done in an obscure GUI toolkit called McCLIM, which is an open source implementation of the Common Lisp Interface Manager.  I have an odd fascination with this ancient GUI :-P

  14. A little something I've been playing with the past two days: PC Engine/TurboGrafx-16 music playback in 100% pure Common Lisp.

     

    Still a tiny bit buggy, and there aren't any optimizations in place yet, but it's at least somewhat usable.  I'm launching it from within my editor right here.  This is the opening music from a SuperGrafx game called Aldynes (which is a fun shmup if you haven't played it).

    I'll probably port this to Crystal once I clean up the structure and figure out some of the small bugs remaining.

     

     

    1. Remilia Scarlet

      Remilia Scarlet

      Improved.  I think I have most of the bugs in the PC Engine emulation squished now.  The song this time is the main table theme from Devil's Crush, a BADASS pinball game for the PC Engine.

      https://social.sdf.org/@MistressRemilia/109872623197898436

       

       

    2. Remilia Scarlet

      Remilia Scarlet

      ...ok, half of the MSX2 support is working now as well.  It's lacking AY-1-8910 support right now, but the K051649 is implemented.

      Song is the first stage from Space Manbow.
      https://social.sdf.org/@MistressRemilia/109874737261105263

  15. A new unfinished room in my Quake map.  I think I'm finally starting to get comfortable with 3D level editing.  Still not sure what I'm going to call the level, though.

     

    SR59pPf.png

     

    Having this reference for lighting has helped me tremendously as well.

    1. Lila Feuer

      Lila Feuer

      I love it, it looks fucking evil.

    2. leodoom85

      leodoom85

      Quote

      Still not sure what I'm going to call the level, though.

      idk...call it Inner Fear or something similar ;)

  16. After sitting on it for ~25 years or so, I suppose it's about time I finally finish up and release the Doom project I started back circa 1995/1996.

     

    So, coming very soon: Kill - A previously unreleased megawad I did as a teenager for Doom 1, in all its mid 90s glory.

  17. Ale and Ginger Chicken.  Super simple, super old, but super tasty.

    • 2 boneless chicken breasts
    • 2 cups water
    • 12oz ale (I use Alaskan Amber)
    • 1/2 rounded tsp black pepper
    • 1/4 tsp salt
    • 2 1/2 tsp powdered ginger
    • 10-20 threads saffron, OR 1/2 tsp paprika and 1/4 tsp turmeric
    • 1 tbsp butter
    • Corn starch, for thickening
    1. Heat up a pressure cooker without the lid.  Add butter.  Once melted, add the chicken and sear on all sides.
    2. Add everything else, mix well.
    3. Cover pressure cooker and cook for 30 minutes.
    4. Realize 10 minutes in you forgot the saffron.  Uncover, add, then restart the pressure cooker.
    5. Use corn starch mixed with a bit of water to thicken
    6. Serve with rice.
    1. Show previous comments  1 more
    2. Remilia Scarlet

      Remilia Scarlet

      Actually, after making this quite a few times, I think I'm going to adjust my recipe and put in double the pepper and salt.  Otherwise it came out good as always.

    3. Zakken

      Zakken

      Came to Doomworld for the Doom content; stayed for the culinary recipes.

    4. Fonze

      Fonze

      Yes 

      Pics please; my eyes hunger for the foodpr0ns ;p

  18. Aww yeah, fixed the cubic interpolation bug... by removing it from the oscillator.

    Instead, there's now proper oversampling in CL-MeltySynth/Haematite and midi123.  From 1x (none, the default) to 32x (lol).  The oversampling uses Hermite interpolation to generate the new samples that get placed between the original ones.  I'll add more options for other methods soon.  Yay for finding out about the "Elephant Paper".

     

    There is a downside, though: oversampling takes place when the SoundFont data is loaded.  Since the entire SoundFont is loaded into RAM, that means the entirety of the oversampled data gets stored in RAM.  So the sc-55.sf2 that I always use (I dunno which SC-55 SoundFont it even is anymore, except that it's not trevor0402's) has about 103mb of PCM data at 44.1KHz.  Without oversampling (aka, 1x), this is stored as 103mb in RAM.  Oversampling 2x means that 207mb of PCM resides in RAM.  4x means 412mb is used.  32x... yeah.

    So oversampling is basically a new performance knob you can tweak, where you balance memory usage vs quality.

    But that's not all... SoundFonts usually use 16-bit signed integer for a sample format (and some use 24-bit I think, but I don't support them yet).  You can also tell the library how you want to store the oversampled data, with options for Int16 (original), Float32, and Float64 (which is what it gets converted to during synthesis anyway).  The interpolation functions all spit out 64-bit floating point samples, so converting those back to int16 (the default) incurs a very slight accuracy penalty.  Using one of the two float formats uses more RAM, however.  Without oversampling (aka, 1x) and using float64, my 103mb SC-55 soundfont is stored as 412mb in RAM.  Oversampling 2x means that 824mb of PCM resides in RAM.  4x means 1648mb is used.  32x oversampling + float64 is about 12.9GB.

    Of course, 32x + float64 is just absurd and not practical unless you want to show off :-P  I don't see anything over 4x being useful, but I'll leave them in there because large numbers can be fun.

    Sometime in the future I plan to still implement an option to load only the samples that are actually needed into RAM, but that's a long ways off, because that'll require a lot of planning and restructuring.  That would, however, let you do 32x + float64 without needing a ton of RAM.

    This is effectively another new performance knob you can tweak.  I'm thinking actual end-user programs would just hide these two performance settings behind a generic "quality" setting, where quality 1 means 1x and Int16, while quality 20 (or whatever) would be 32x and Float64.

    The good news?  Almost no CPU impact during playback unless you turn oversampling up over 4x, and then it still isn't that big of a hit.  Loading the SoundFont is a bit slower each time you go up in oversampling, but not by much, and that only has to happen once.

    Anyway, the defaults of 1x and int16 storage, which is just like the original behavior.

     

    https://files.catbox.moe/crf60b.mp4

     

    1. Sectorslayer

      Sectorslayer

      As a web services backend person I have no idea what you're writing about. But as a programmer I love every word.

  19. Awww yeah! :D  I just added support for rendering multiple MIDIs in parallel using midi123. It can render the entire Rise of The Triad soundtrack (34 separate MIDI files) to separate WAVs in about 13 seconds.

     

    For the record, rendering these to WAV in serial takes 1 minute 37 seconds on my machine, so... yeah, nice speed improvement by doing stuff in parallel.

     

     

    Also, some geekier stuff:

    Spoiler

    Up until now, CL-MeltySynth and midi123 both required SBCL, the Common Lisp compiler/implementation I tend to use most often.  It's known to be a very good Lisp implementation.  But I've also added support for using Clozure CL (that's "Clozure" with a Z, not a J) since I sometimes use it instead of SBCL.  Both compile Common Lisp code to native machine code.

     

    Well, adding support for ClozureCL gave me a chance to benchmark the two implementations with actual real-world code, and so I did by rendering "Stalker" from Duke Nukem 3D to a WAV:

    • SBCL (cubic interpolation, Zita-Rev1 reverb, soft clipping, TPDF dithering): 4.995071 seconds
    • SBCL and using Freeverb: 4.138059 seconds
    • SBCL and using Freeverb, no chorus, and linear interpolation: 3.831054 seconds
    • Clozure CL (cubic interpolation, Zita-Rev1 reverb, soft clipping, TPDF dithering): 37.679654 seconds
    • Clozure CL using Freeverb: 43.52037 seconds
    • Clozure CL and using Freeverb, no chorus, and linear interpolation: 41.71585 seconds
    • Unfinished Crystal port (Freeverb, no chorus, linear interpolation, no soft clipping, no dithering): ~3.7 seconds

    Definitely a larger difference in compiled code speed than I expected :-P

     

    That last one was merely a curiosity since I tend to use Crystal (think "Ruby-inspired, but compiled to native code with LLVM) whenever I don't use Common Lisp.  I think I may actually finish my old unfinished Crystal port just because it gives me a really good real-world benchmark to use.

     

    FWIW, FluidSynth tended to take about 2.9-3.2 seconds on my machine for this same file, and it uses something based on Freeverb for its reverb afaik.

     

    1. Sectorslayer

      Sectorslayer

      Interesting. Never heard about Crystal. I guess programming languages are coders next favorite pet after frameworks. 😏

    2. Remilia Scarlet

      Remilia Scarlet

      Crystal is a nice language, quite easy and fun to work with.  And their compiler produces really nice native code, it seems.  I helped out with the Crystal dependency manager/build tool called Shards not long ago by add Fossil support to it.

       

      My only problem with Crystal is that I'm not sure quite how to fit it into my normal workflow.  Crystal seems to be especially good for things like command line programs (which I normally do in Lisp) and web-based programs (which I almost never write, save for Matrix bots).  So I haven't really found much benefit in using it over Common Lisp.  But I keep hoping I'll find more use for it because damn is it a nice language to work with, and I find its syntax particularly pleasant.

       

      Oddly, Crystal was the language that actually got me interested in Ruby and using it for things like Rakefiles and some other scripting tasks.  Most people seem to go the other way, where they were Ruby users first, then became Crystal users.

  20. Been a while since I posted about midi123.

     

     

    The code in the repo's trunk supports native MUS playback, XSPF playlists (and JSPF), PulseAudio as an alternative to PortAudio, a new reverb type (MVerb), reverb presets and full configurable parameters, and the ability to take an HTTP/HTTPS or Gemini URL and play a file straight from there.  Still have some more to add for the next version, but that's what I've been up to.

  21. Benben v0.1.0 is now out! This is the first release of my command line VGM music player written in Crystal.  Think "vgmplay", but with more features (and pretty much identical performance).
     

    Source code and an x86-64 Linux AppImage are here: https://chiselapp.com/user/MistressRemilia/repository/benben/technote?name=07c9c37c82d3feba1a46fa98ba67276cd2bccf0f
     

    If you don't have any VGM files, you can some at https://vgmrips.net Just keep in mind that Benben supports many, but not all, of the chips right now (but it will!)

    This uses my own VGM library, YunoSynth, which also has its first v0.1.0 release today: https://chiselapp.com/user/MistressRemilia/repository/yunosynth/
     

     

     

     

  22. CL-MeltySynth and midi123 v1.1.0 is now released! This update adds selectable interpolation modes (linear, the original mode; and cubic spline), as well as some minor performance improvements.  You can select the interpolation mode that midi123 uses like this: "midi123 -s mysoundfont.sf2 -f mymidi.mid --interpolation cubic".  Or replace "cubic" with "list" to see available modes.  I may add additional options in the future.

     

    Source code repository: https://chiselapp.com/user/MistressRemilia/repository/CL-MeltySynth/

     

    Linux binary (x86_64 only): https://alexa.partition36.com/files/midi123/midi123-v1.1.0-x86_64.tar.bz2 (sha1: c7a4ec06d19ea9028dd84c50abb74cd38c49d9ce)

×