VOGONS


Quake2 + Acebot for DOSBox (128mb)

Topic actions

Reply 42 of 862, by Maraakate

User metadata
Rank Oldbie
Rank
Oldbie

I don't know what the particle issue is. It may even be a dosbox emulation issue. We already ran into issues with dosbox not respecting dpmi linear locking/unlocking when we were trying to add SVGA and had it blow up on real hardware.

Reply 43 of 862, by ggorts

User metadata
Rank Member
Rank
Member

That must be it because even one of the older alpha binaries has the issue. It doesn't make sense since there are few changes in that version; I could run a diff against that version, if possible, but I bet it's dosbox specific, too.

Reply 45 of 862, by Maraakate

User metadata
Rank Oldbie
Rank
Oldbie

It's also recommended to use qemu or pcem if you can. Qemu emulates NICs rather easily (i know there are ne2000 dosbox ports too) so you can get online with it and have some fun as well.

Reply 46 of 862, by ggorts

User metadata
Rank Member
Rank
Member

I'll run inside pcem as you said. Attached is a picture, but the screenshot method I used is not ideal.

Attachments

  • particles.PNG
    Filename
    particles.PNG
    File size
    174.97 KiB
    Views
    906 views
    File comment
    Particles
    File license
    Fair use/fair dealing exception

Reply 48 of 862, by Maraakate

User metadata
Rank Oldbie
Rank
Oldbie

Also, you really need to be using doslfn for Q2DOS. Especially online, some skin names use the skinname_i.pcx format and the _i truncates and it thinks its loading a skin twice. It causes all kinds of funny problems.

Reply 51 of 862, by ggorts

User metadata
Rank Member
Rank
Member

I ran a diff against our ref_soft dirs, and this seems like a possibility:
+extern cvar_t *sw_particle_size_override; // FS
+extern cvar_t *sw_particle_size; // FS
+extern cvar_t *sw_particle_size_min; // FS
+extern cvar_t *sw_particle_size_max; // FS

At least it points to a feature and not a bug!

Edit:
+ sw_particle_size_override = ri.Cvar_Get ("sw_particle_size_override", "0", CVAR_ARCHIVE);
+ sw_particle_size_override->description = "Enable this to override particle size scaling with sw_particle_size, sw_particle_size_min, and sw_particle_size_max.";
+ sw_particle_size = ri.Cvar_Get ("sw_particle_size", "8", CVAR_ARCHIVE);
+ sw_particle_size->description = "How many bits to shift for particle sizes. Higher numbers are smaller particles. Use sw_particle_size_override to enable.";
+ sw_particle_size_min = ri.Cvar_Get ("sw_particle_size_min", "1", CVAR_ARCHIVE); // FS
+ sw_particle_size_min->description = "Minimum particle size. Standard formula is resolution width divided by 320. Use sw_particle_size_override to enable.";
+ sw_particle_size_max = ri.Cvar_Get ("sw_particle_size_max", "8.5", CVAR_ARCHIVE); // FS
+ sw_particle_size_max->description = "Minimum particle size. Standard formula is resolution width divided by 80 plus 0.5. Use sw_particle_size_override to enable.";

Reply 52 of 862, by ggorts

User metadata
Rank Member
Rank
Member

Please try the attached patch (using the diff tool and reversing the changes in the patch) to compare the particle size to without the patch. At least to find out the parameter values to the particles as intended. :)

Attachments

  • Filename
    refsoft.diff
    File size
    4.64 KiB
    Downloads
    52 downloads
    File comment
    Patch for particles
    File license
    Fair use/fair dealing exception

Reply 53 of 862, by ggorts

User metadata
Rank Member
Rank
Member

Actually it's not a bug. :)

The particles look as expected by changing a parameter to another default value:

- sw_particle_size_override = ri.Cvar_Get ("sw_particle_size_override", "0", CVAR_ARCHIVE);
+ sw_particle_size_override = ri.Cvar_Get ("sw_particle_size_override", "1", CVAR_ARCHIVE);

Update: on further testing, I think the -ffast-math will be ok, but after confirming that there is a real speedup, as you noted.

Reply 54 of 862, by Maraakate

User metadata
Rank Oldbie
Rank
Oldbie

Well I see a typo in my description. But don't change the code to default to it to be ON. It may mean I screwed up the scaling for the video height. In SVGA modes (Q1 also has the same issue) the particles are scaled way too huge and looked ridiculous. I spent a few hours testing every resolution to come up with something I felt looked appropriate. But, everyone may not agree, so I made a CVAR to override those values. It may even be possible that I didn't test it very thoroughly on 320x200 as I was more focused on getting the SVGA modes to not look silly.

Reply 56 of 862, by Maraakate

User metadata
Rank Oldbie
Rank
Oldbie

My ports are mostly for my own amusement. When I play them (and I play them often!) whenever I see something that annoys me it has to be changed if it's within my skill level. I try to make everything toggleable by a CVAR for someone who wants a true vanilla experience.

Dunno if you had a chance to look at the emulator code yet, but apologies if it's messy. I spent a week on it getting it to a point that it worked fairly reliably. However, I've never tested it on a large scale with 100 people all talking to it at the same time, but at present it has over 700 servers listed on it and obviously a few people here have been using it for Q2DOS and it hasn't crashed or shown any extreme memory leaks so I guess it's OK.

I also noticed you stripped out gamespy (or used an older build?) and ogg/vorbis stuff and renamed or removed some comments. Some of the comments may look stupid, but I have only been programming for about 4-5 years now and I remember when I started sometimes it was really hard to understand what was going on. I try to make it as easy as possible for someone else to look and see what is happening.

Reply 58 of 862, by Maraakate

User metadata
Rank Oldbie
Rank
Oldbie

I should also mention the emulator code has only been tested on visual studio 6. It may work in linux with minor changes. I tried it in DJGPP with WATT32 but I believe it overflowed the MTU or WATT32's async i/o may be broken (it's stated as such on their site for both of these problems).

Reply 59 of 862, by ggorts

User metadata
Rank Member
Rank
Member

I stripped out some of the features so that I wouldn't conflict with your extensive work. I noted that in my post. So I removed anything not easily accessed from dosbox, such as networking over tcp/ip, or the use of ogg since dosbox can mount a cue/bin image. I'm not planning on updating those binaries much further, it was mainly experimental. I use an old fashioned text editing system of coding, so I may have inadventently removed comments during the copy/paste/diff procedure, but I tried to minimize my error there.