DieHard Wolfers Forum Index DieHard Wolfers
A Wolfenstein 3d Fan Community


  Hosted by: MCS & Areyep.com - Designed by: BrotherTank

Original Yahoo Forum - Die Hard Archives

AReyeP HomepageAreyep Homepage DieHard Wolfenstein BunkerDieHard Wolfenstein Bunker Log inLog in RegisterRegister Banlist FAQFAQ Search ForumsSearch

  Username:    Password:      Remember me       

Getting to 200 actors in DOS
Page 1 of 1
DieHard Wolfers Forum Index -> Code Crackers View Previous TopicRefresh this PageAdd Topic to your Browser FavoritesSearch ForumsPrint this TopicE-mail TopicGoto Page BottomView Next Topic
Post new topicReply to topic
Author Message
Barry
DieHard Officer
DieHard Officer


Joined: 27 Aug 2008
Last Visit: 01 May 2018

Topics: 64
Posts: 566

blank.gif

PostPosted: Tue Jul 12, 2016 1:11 pm
   Subject: Getting to 200 actors in DOS
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Next PostGoto Bottom of Posts

In order for the DOS version of my mod to not be handicapped, I need to free up enough memory to get to 200 actors (and 600 static objects). So far, I've been able to get to 165 without "abnormal program termination" with the various memory tweaks posted here and at the Wolf3D Dome, but haven't been able to get any farther than that. Anybody have any advice for how to free up enough memory to get to 200 actors in DOS?
Tricob
Moderator
<B>Moderator</B>


Joined: 14 Mar 2005
Last Visit: 0:10 ago.

Topics: 163
Posts: 8146
Location: Neo-traditions, Inc.
usa.gif

PostPosted: Tue Jul 12, 2016 5:15 pm
   Subject: Re: Getting to 200 actors in DOS
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

I believe this is what you're looking for. Smile
Barry
DieHard Officer
DieHard Officer


Joined: 27 Aug 2008
Last Visit: 01 May 2018

Topics: 64
Posts: 566

blank.gif

PostPosted: Tue Jul 12, 2016 7:59 pm
   Subject: Re: Getting to 200 actors in DOS
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

Tricob wrote:
I believe this is what you're looking for. Smile


Thanks.

I've already done a lot of that stuff, but I need to figure out something else. I've implemented the stuff that I've added since porting to SDL in my DOS code and get "Block Not Found" after doing almost anything once I start a level. Kind of frustrating. I think it might be related to the new music I added.
AlumiuN
DieHard Wolfer
DieHard Wolfer


Joined: 29 Nov 2007
Last Visit: 13:27 ago.

Topics: 38
Posts: 2458
Location: Christchurch, New Zealand
newzealand.gif

PostPosted: Tue Jul 12, 2016 8:40 pm
   Subject: Re: Getting to 200 actors in DOS
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

If you think you can afford it, you can add 'far' to a declaration of something large to free up the near memory; it will add to the executable size though. Back in my DOS days I shoved tilemap and actorat into far memory, and it seemed to work fine.
Barry
DieHard Officer
DieHard Officer


Joined: 27 Aug 2008
Last Visit: 01 May 2018

Topics: 64
Posts: 566

blank.gif

PostPosted: Tue Jul 12, 2016 8:59 pm
   Subject: Re: Getting to 200 actors in DOS
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

AlumiuN wrote:
If you think you can afford it, you can add 'far' to a declaration of something large to free up the near memory; it will add to the executable size though. Back in my DOS days I shoved tilemap and actorat into far memory, and it seemed to work fine.


So what exactly would I do? I tried Chris' changing actorat into a byte but that didn't seem to resolve the issue. It definitely is the music, as if I remove it from audiowl6.h I no longer get the crashes.

At this point, the sole reason I am still working on the DOS version is for people who prefer to play in DOS. After porting this to SDL, it's been so nice to not have to worry about these limitations. As things are now, the new songs will likely be exclusively in the SDL version.
AlumiuN
DieHard Wolfer
DieHard Wolfer


Joined: 29 Nov 2007
Last Visit: 13:27 ago.

Topics: 38
Posts: 2458
Location: Christchurch, New Zealand
newzealand.gif

PostPosted: Tue Jul 12, 2016 9:08 pm
   Subject: Re: Getting to 200 actors in DOS
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

It's been a long time but I believe what you need to do is stick 'far' between the type and variable name (so 'word far actorat', for example). You'll need to do this both in WL_DEF and where it's actually declared (which I think is WL_GAME).
Tricob
Moderator
<B>Moderator</B>


Joined: 14 Mar 2005
Last Visit: 0:10 ago.

Topics: 163
Posts: 8146
Location: Neo-traditions, Inc.
usa.gif

PostPosted: Wed Jul 13, 2016 1:27 pm
   Subject: Re: Getting to 200 actors in DOS
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

Barry wrote:
So what exactly would I do? I tried Chris' changing actorat into a byte but that didn't seem to resolve the issue. It definitely is the music, as if I remove it from audiowl6.h I no longer get the crashes.
Could you post the contents of your AUDIO*.H file? It sounds like there's something you need to change in that file to make the EXE accept the new music.
Barry
DieHard Officer
DieHard Officer


Joined: 27 Aug 2008
Last Visit: 01 May 2018

Topics: 64
Posts: 566

blank.gif

PostPosted: Fri Jul 15, 2016 9:34 am
   Subject: Re: Getting to 200 actors in DOS
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

Tricob wrote:
Barry wrote:
So what exactly would I do? I tried Chris' changing actorat into a byte but that didn't seem to resolve the issue. It definitely is the music, as if I remove it from audiowl6.h I no longer get the crashes.
Could you post the contents of your AUDIO*.H file? It sounds like there's something you need to change in that file to make the EXE accept the new music.


Here is my AUDIOWL6.H file that works. I would like to add 8 new songs to the DOS version to match what I have in the SDL version. For whatever reason, when I define the new songs the game starts fine but crashes once in game.

::: CODE :::
/////////////////////////////////////////////////
//
// MUSE Header for .WL6
// Created Tue Jul 14 15:04:53 1992
//
/////////////////////////////////////////////////

#define NUMSOUNDS      87
#define NUMSNDCHUNKS      288

//
// Sound names & indexes
//
typedef enum {
      HITWALLSND,              // 0
      SELECTWPNSND,            // 1
      SELECTITEMSND,           // 2
      HEARTBEATSND,            // 3
      MOVEGUN2SND,             // 4
      MOVEGUN1SND,             // 5
      NOWAYSND,                // 6
      NAZIHITPLAYERSND,        // 7
      SCHABBSTHROWSND,         // 8
      PLAYERDEATHSND,          // 9
      DOGDEATHSND,             // 10
      ATKGATLINGSND,           // 11
      GETKEYSND,               // 12
      NOITEMSND,               // 13
      WALK1SND,                // 14
      WALK2SND,                // 15
      TAKEDAMAGESND,           // 16
      GAMEOVERSND,             // 17
      OPENDOORSND,             // 18
      CLOSEDOORSND,            // 19
      DONOTHINGSND,            // 20
      HALTSND,                 // 21
      DEATHSCREAM2SND,         // 22
      ATKKNIFESND,             // 23
      ATKPISTOLSND,            // 24
      DEATHSCREAM3SND,         // 25
      ATKMACHINEGUNSND,        // 26
      HITENEMYSND,             // 27
      SHOOTDOORSND,            // 28
      DEATHSCREAM1SND,         // 29
      GETMACHINESND,           // 30
      GETAMMOSND,              // 31
      SHOOTSND,                // 32
      HEALTH1SND,              // 33
      HEALTH2SND,              // 34
      BONUS1SND,               // 35
      BONUS2SND,               // 36
      BONUS3SND,               // 37
      GETGATLINGSND,           // 38
      ESCPRESSEDSND,           // 39
      LEVELDONESND,            // 40
      DOGBARKSND,              // 41
      ENDBONUS1SND,            // 42
      ENDBONUS2SND,            // 43
      BONUS1UPSND,             // 44
      BONUS4SND,               // 45
      PUSHWALLSND,             // 46
      NOBONUSSND,              // 47
      PERCENT100SND,           // 48
      BOSSACTIVESND,           // 49
      MUTTISND,                // 50
      SCHUTZADSND,             // 51
      AHHHGSND,                // 52
      DIESND,                  // 53
      EVASND,                  // 54
      GUTENTAGSND,             // 55
      LEBENSND,                // 56
      SCHEISTSND,              // 57
      NAZIFIRESND,             // 58
      BOSSFIRESND,             // 59
      SSFIRESND,               // 60
      SLURPIESND,              // 61
      TOT_HUNDSND,             // 62
      MEINGOTTSND,             // 63
      SCHABBSHASND,            // 64
      HITLERHASND,             // 65
      SPIONSND,                // 66
      NEINSOVASSND,            // 67
      DOGATTACKSND,            // 68
      FLAMETHROWERSND,         // 69
      MECHSTEPSND,             // 70
      GOOBSSND,                // 71
      YEAHSND,                 // 72
      DEATHSCREAM4SND,         // 73
      DEATHSCREAM5SND,         // 74
      DEATHSCREAM6SND,         // 75
      DEATHSCREAM7SND,         // 76
      DEATHSCREAM8SND,         // 77
      DEATHSCREAM9SND,         // 78
      DONNERSND,               // 79
      EINESND,                 // 80
      ERLAUBENSND,             // 81
      KEINSND,                 // 82
      MEINSND,                 // 83
      ROSESND,                 // 84
      MISSILEFIRESND,          // 85
      MISSILEHITSND,           // 86
      LASTSOUND
        } soundnames;

//
// Base offsets
//
#define STARTPCSOUNDS      0
#define STARTADLIBSOUNDS   87
#define STARTDIGISOUNDS      174
#define STARTMUSIC      261

//
// Music names & indexes
//
typedef enum {
      CORNER_MUS,              // 0
      DUNGEON_MUS,             // 1
      XFUNKIE_MUS,             // 2
      GETTHEM_MUS,             // 3
      HEADACHE_MUS,            // 4
      XJAZNAZI_MUS,            // 5
      INTROCW3_MUS,            // 6
      NAZI_NOR_MUS,            // 7
      NAZI_OMI_MUS,            // 8
      POW_MUS,                 // 9
      XGETYOU_MUS,             // 10
      SEARCHN_MUS,             // 11
      SUSPENSE_MUS,            // 12
      VICTORS_MUS,             // 13
      WONDERIN_MUS,            // 14
      FUNKYOU_MUS,             // 15
      ENDLEVEL_MUS,            // 16
      GOINGAFT_MUS,            // 17
      PREGNANT_MUS,            // 18
      ULTIMATE_MUS,            // 19
      NAZI_RAP_MUS,            // 20
      ZEROHOUR_MUS,            // 21
      TWELFTH_MUS,             // 22
      XPUTIT_MUS,              // 23
      URAHERO_MUS,             // 24
      XDEATH_MUS,              // 25
      XTIPTOE_MUS,             // 26
      LASTMUSIC
        } musicnames;

/////////////////////////////////////////////////
//
// Thanks for playing with MUSE!
//
/////////////////////////////////////////////////
Chris
DieHard Wolfer
DieHard Wolfer


Joined: 11 Mar 2003
Last Visit: 14 Jun 2018

Topics: 55
Posts: 2132
Location: Canada
blank.gif

PostPosted: Fri Jul 15, 2016 9:49 am
   Subject: Re: Getting to 200 actors in DOS
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Next PostGoto Bottom of Posts

Hi Barry,

When you add a song in DOS, you also have to update NUMSNDCHUNKS. So if you add songs 27-34, NUMSNDCHUNKS (at the top) should be 296. You can also do like SDL where it moves NUMSNDCHUNKS to bottom and uses (STARTMUSIC + LASTMUSIC).

It sounds like you got your 200 actors figured out? If you look 2 posts below yours, I posted some code and a test exe of how to get 800 static objects, 250 actors, 200 visible, and 100 doors without needing to do the actorat thing if you still need tips. Wink
Barry
DieHard Officer
DieHard Officer


Joined: 27 Aug 2008
Last Visit: 01 May 2018

Topics: 64
Posts: 566

blank.gif

PostPosted: Fri Jul 15, 2016 10:17 am
   Subject: Re: Getting to 200 actors in DOS
   [ IP : Logged ]
Reply with quote
Goto Top of PostsGoto Previous PostGoto Bottom of Posts

Chris wrote:
Hi Barry,

When you add a song in DOS, you also have to update NUMSNDCHUNKS. So if you add songs 27-32, NUMSNDCHUNKS (at the top) should be 296. You can also do like SDL where it moves NUMSNDCHUNKS to bottom and uses (STARTMUSIC + LASTMUSIC).

It sounds like you got your 200 actors figured out? If you look 2 posts below yours, I posted some code and a test exe of how to get 800 static objects, 250 actors, 200 visible, and 100 doors without needing to do the actorat thing. Smile


Thanks!

I actually just changed my DOS code to handle it like the SDL version (STARTMUSIC + LASTMUSIC) and that appears to have worked.

Still working on the 200 actor thing, but now that I have the music fixed, I can release Phase 1 of Hollenteufel with the DOS version being equal with the SDL version. Phase 2 levels will need more actors. I'll take a look at link you posted as an alternative to doing the actorat thing.
Display posts from previous:   
Post new topicReply to topic Time synchronized with the forum server time
DieHard Wolfers Forum Index -> Code Crackers View Previous TopicRefresh this PageAdd Topic to your Browser FavoritesSearch ForumsPrint this TopicE-mail TopicGoto Page TopView Next Topic
Page 1 of 1
Jump to:  

Related topics
 Topics   Replies   Views   Last Post 
No new posts Sticky: [Info] Freeing Up Memory - A Must Read!
Author: Ripper
140 37822 Mon Feb 06, 2012 7:52 am
lemm View latest post
No new posts Throwable objects - Grenades, Molatov Cocktails...
Author: Xarkon
17 4117 Thu Oct 27, 2011 2:03 pm
RichterBelmont12 View latest post
No new posts [Info] Breakable or Exploding Objects (colums or barrels)
Author: wolf3dbreaker
37 7682 Tue Feb 08, 2005 5:44 am
Guest View latest post
No new posts Altering the "This Episode is not in the shareware!&quo
Author: Guest
1 71 Mon Aug 30, 2004 1:16 am
TexZK View latest post
No new posts [Info] Assigning Static Objects problem.
Author: Guest
1 104 Sun Jul 06, 2003 1:25 pm
Guest View latest post
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
   You cannot delete your posts in this forum
You cannot vote in polls in this forum


Copyright ©2003-2008 DieHard Wolfers
A Modified subBunker Theme by BrotherTank
Powered by phpBB © 2001, 2005 phpBB Group