Don't forget to read the rules of the forum. No current release restrictions. | Help Search Members Calendar

Logged in as: The Dreamslayer ( Log Out ) | My Controls · 0 New Messages · View New Posts · My Assistant

Mugen DEV Forum -> Development and Help Forums -> Development Help

Max number of sprites? sounds?
Track this topic | Email this topic | Print this topic

Enkephalin | Posted: Dec 9 2003, 08:52 PM
Member Group: Members Posts: 37 Member No.: 4215 Joined: 10-November 03
Is there a maxiumum number of frames I can have in an .sff? Is there an amount that people have found to be unrunnable in Mugen, or difficult to play?
And since I'm probably going to throw in a good bit of sound too, has anyone had problems with running or playing chars over a total filesize?

LyonHrt | Posted: Dec 9 2003, 09:17 PM
Newbie Group: Members Posts: 8 Member No.: 820 Joined: 4-October 02
I don't think theres any limits mugen itself regarding the amount of frames, but obviously you have to think of how much memory it use's, plus the amount happening on screen (plus sound effects). As this could effect pc's.
Its just guess work really (plus having beta testers :P) to see how far you can push it.

BlackJack | Posted: Dec 10 2003, 02:30 AM
Purple Jester Group: Members Posts: 167 Member No.: 1141 Joined: 24-October 02
Taken from the Mugen docs, there is no limit besides the memory of your computer.
I've myself tested very high sprites and anims numbers and it worked.

Winane | Posted: Dec 10 2003, 07:57 AM
MUGEN Grip Group: Members Posts: 314 Member No.: 122 Joined: 14-September 02
Well, I don't think you can have more than 134,217,683 or so sprites in an SFF (and that many only if they're all duplicates, which would be rather useless). In fact, the limit may actually be more like half that, if Elecbyte was silly enough to treat the file offset numbers in the SFF subheaders as signed instead of unsigned, but I'm not about to check. :p
And, if you use duplicate sprite linking (-f in Sprmaker), you'd better not have any sprites linked to the 32,768th or higher sprite.
(I'd have to check the minimum size of a WAV file before I could tell you the limit on how many sounds you can put in a SND file, though.)
In other words, yeah, it really just depends on your system.
This post has been edited by Winane on Dec 10 2003, 08:30 PM

Enkephalin | Posted: Dec 10 2003, 08:15 PM
Member Group: Members Posts: 37 Member No.: 4215 Joined: 10-November 03
I'm not up to 1k frames yet, and I'll probably link to keep the number lower. I've got about 180 sounds, minimum size 380, max 380k, avg 33k. Does that get compressed in the final .snd?
If there's no max, have there been character sizes that have gotten a lot of complaints from users trying to play with them? I've got a semi-powerful system, not sure how this will perform on the average box.
This post has been edited by Enkephalin on Dec 10 2003, 08:22 PM

Renzo | Posted: Dec 11 2003, 12:59 AM
Street Fighter III 3rd Strike addict Group: Members Posts: 179 Member No.: 4184 Joined: 19-October 03
For the number of images, the SFF uses 4 bytes in the file header. That should be enough to store up to 2^32 = 4294967296 (Winane, the number is unsigned).
The group numbers are stored on 2 bytes, the same for the index.
That gives you: 65536 groups x 65536 images per group = 2^32 = 4294967296 images.
To give an idea: With that number of images, you can do a movie of 19884 hours long at 60fps
(((4294967296/60)/60)/60)
voila.
That should do it.
This post has been edited by Renzo on Dec 11 2003, 01:04 AM
--------------------
renzo.studiosmh.com
Thank you Mario, but the princess is in another castle.

Winane | Posted: Dec 11 2003, 04:04 AM
MUGEN Grip Group: Members Posts: 314 Member No.: 122 Joined: 14-September 02
Nope.
My calculation:
4 bytes in the subheaders for the file offset where next subfile is means a maximum size of 2^32 = 4294967296 bytes before the last sprite.
4294967296 bytes
-512 bytes for the main header = 4294966784
-899 bytes for the minimum size of an 8-bit PCX file (with just one pixel) = 4294965885
-0 bytes if all sprites are linked to the first one = 4294965885
/32 bytes per subheader = 134217683.90625
Rounded down to be safe = 134,217,683 sprites
(Or 67,108,819 sprites if the offset number is signed. How are you sure that it isn't?)
=P

Renzo | Posted: Dec 11 2003, 11:55 AM
Street Fighter III 3rd Strike addict Group: Members Posts: 179 Member No.: 4184 Joined: 19-October 03
Bah.
The only thing we are sure is you can put a LOT of sprites on it.
And about the unsigned or signed question, I know because I wrote a library to load SFFs in java
Actually, the bytes for the "file offset where the next subfile is stored" isnīt used properly in mugen. To calculate where Itīs located the next sub-image, mugen uses "length of sub file in bytes", as I tested.
That issue almost break my will for programming because for almost a year I ignored why in the f***** my library crashed only when loading MSMīs SFFs.
Itīs funny when you donīt comply with an specification, even if you defined that specification. Thatīs the case of mugen.
So, my calculations are not bad at all.
This post has been edited by Renzo on Dec 11 2003, 12:14 PM
--------------------
renzo.studiosmh.com
Thank you Mario, but the princess is in another castle.

Enkephalin | Posted: Dec 11 2003, 10:33 PM
Member Group: Members Posts: 37 Member No.: 4215 Joined: 10-November 03
I'm just lazy, and before I get starting making this thing happen, I'd like a guesstimate whether most player's machines can handle a swarm of 7-10 projectiles with 36 frames each, bouncing at walking pace across the screen, accompanied by a 20 second 860k sound effect, without the application crapping out completely.
What's your prognosis?

Winane | Posted: Dec 11 2003, 11:35 PM
MUGEN Grip Group: Members Posts: 314 Member No.: 122 Joined: 14-September 02
Um, Renzo, you got that backwards. Mugen ignores the subfile length, and only uses the next file offset. I'm quite sure of this. Haven't you noticed that MCM and Sprmaker calculate the subfile length differently? And yet, Mugen successfully loads SFFs created with either. :P
And, you didn't really answer my question about how you're sure Mugen treats the offset number as unsigned. :P
Enkephalin:
I've got a sytem with 1 GHz P3, 256 MB RAM, and a GeForce2 Go, and I'm pretty sure my system has never had trouble handling something like that. I wouldn't worry about it too much. But like LyonHrt suggested, just get some people with weak systems to test your stuff for you if you want to make sure you don't exceed many people's systems' capabilities.

Renzo | Posted: Dec 12 2003, 05:55 AM
Street Fighter III 3rd Strike addict Group: Members Posts: 179 Member No.: 4184 Joined: 19-October 03
Yes Winane, you are right. I checked again the code I wrote and I used offsets to calculate file sizes.
Iīm sure about the unsigned values because in java , the unsigned types donīt exist and I had to write an entire routine only to convert the values from signed to unsigned. (explanation below)
When you read a int from the file, Itīs interpreted as signed, but in the practice, the interpretation were wrong. I got negative group numbers and such results. Thatīs why Iīm sure about that.
This post has been edited by Renzo on Dec 12 2003, 05:56 AM
Attached File ( Number of downloads: 4 )
Sff.java
--------------------
renzo.studiosmh.com
Thank you Mario, but the princess is in another castle.

Winane | Posted: Dec 12 2003, 07:50 AM
MUGEN Grip Group: Members Posts: 314 Member No.: 122 Joined: 14-September 02
Actually, negative group and sprite numbers are allowed in Mugen. Once I have a spare moment, I'll test whether it also accepts numbers greater than 32767, but I have already tested negative numbers, and they work for sure.
Check out our modified formats.txt at http://nigaiden.skreel.org/index.php for more details about this stuff.
Now, how did you end up with a large enough value for the file offset to verify that it is indeed interpreted as unsigned? Did you actually make a 2,147,483,648+ byte SFF?
I expect to be soon, but right now I'm afraid I'm not yet familiar enough with Java to make any sense of the code you posted without the comments translated to English.

Renzo | Posted: Dec 12 2003, 07:46 PM
Street Fighter III 3rd Strike addict Group: Members Posts: 179 Member No.: 4184 Joined: 19-October 03
Now, I get your point about the unsigned/signed issue. To be honest, I wrote the code almost two years ago, and I can barely remember exactly when the problem came out.
Anyway is good to interchange comments about this stuff... and realize that I should study more the format.
--------------------
renzo.studiosmh.com
Thank you Mario, but the princess is in another castle.

Winane | Posted: Dec 14 2003, 04:45 AM
MUGEN Grip Group: Members Posts: 314 Member No.: 122 Joined: 14-September 02
Okay, I checked about signed vs. unsigned. I've updated formats.txt accordingly, and attached it to this post (see note #5).
So, Renzo, all that time you spent getting your program to interpret the numbers as unsigned instead of signed...
Attached File ( Number of downloads: 6 )
formats.rar

« Next Oldest | Development Help | Next Newest »

Close Topic Options
Track this topic
Receive email notification when a reply has been made to this topic and you are not active on the board.
Subscribe to this forum
Receive email notification when a new topic is posted in this forum and you are not active on the board.
Download / Print this Topic
Download this topic in different formats or view a printer friendly version.
- M.U.G.E.N Development Forum - Contact an admin - ELECBYTE - Shin Mugen -
Powered by Invision Power Board(U) v1.2 © 2003 IPS, Inc.