What is JMA?

Strictly for discussing ZSNES development and for submitting code. You can also join us on IRC at irc.libera.chat in #zsnes.
Please, no requests here.

Moderator: ZSNES Mods

bohdy
Rookie
Posts: 13
Joined: Sun Feb 13, 2005 9:28 pm

Post by bohdy »

A stand alone JMA compresser, separate from NSRT and not yet released to the public, can put multiple files in a JMA. It can JMA any file you want, not just SNES ROMs.
Can you spot where the problem is, for a representative of the public at large like myself? :roll: :wink:
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Post by Nach »

bohdy wrote:What is the point of telling us that Zsnes can handle solid multi-file JMA's if there is no way for us to make such JMA's?
It was requested, and has been taken care of already.
bohdy wrote: Is there an ETA for this feature in NSRT? Preferably at least allowing the user to JMA all roms under each parent name together?
Yes, ETA is for NSRT 3.4, not sure when it will be ready though as I have a lot on my plate.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Post by Nach »

bohdy wrote:
A stand alone JMA compresser, separate from NSRT and not yet released to the public, can put multiple files in a JMA. It can JMA any file you want, not just SNES ROMs.
Can you spot where the problem is, for a representative of the public at large like myself? :roll: :wink:
Yeah, your group is too unintelligent to use buggy software. So you'll have to wait till things are ironed out.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
kieran_
Mugwump
Posts: 824
Joined: Fri Jul 30, 2004 9:05 pm

Post by kieran_ »

Thanks, Nach.
MasaMuneCyrus
New Member
Posts: 5
Joined: Tue Apr 11, 2006 5:32 am
Contact:

Post by MasaMuneCyrus »

grinvader wrote:Cowering has nothing to do with jma. And he won't have anything to do about it for a while if things keep on being what they are currently.

JMA features an incredible efficiency of compression for roms. For single OR solid archives, jma is better than zip, rar, and 7z.
Aha! In a test of 10 roms, a best compression rar was 200 kb SMALLER than a .jma of Tengai Makyou Zero (J). Oddly enough, the solid rar archive was larger than the non-solid archive, so I used the non-solid archive for comparison.


That said, JMA beat (or matched within 10 kb) the other 9.
grinvader
ZSNES Shake Shake Prinny
Posts: 5632
Joined: Wed Jul 28, 2004 4:15 pm
Location: PAL50, dood !

Post by grinvader »

How about you post numbers, so we can at least try to see by ourselves.
Also, mention which JMA level you used for compression.
皆黙って俺について来い!!

Code: Select all

<jmr> bsnes has the most accurate wiki page but it takes forever to load (or something)
Pantheon: Gideon Zhi | CaitSith2 | Nach | kode54
Clements
Randomness
Posts: 1172
Joined: Wed Jul 28, 2004 4:01 pm
Location: UK
Contact:

Post by Clements »

MasaMuneCyrus wrote:Aha! In a test of 10 roms, a best compression rar was 200 kb SMALLER than a .jma of Tengai Makyou Zero (J). Oddly enough, the solid rar archive was larger than the non-solid archive, so I used the non-solid archive for comparison.
I think not.

4,480,499 bytes - Tengai Makyou Zero (J) [!].rar (Best, Solid)
4,480,499 bytes - Tengai Makyou Zero (J) [!].rar (Best)
4,439,798 bytes - Tengai Makyou Zero (J) [!].jma (whatever the default is)
RockyMM
New Member
Posts: 3
Joined: Tue Apr 05, 2005 2:15 pm
Location: Zemun, Serbia
Contact:

Post by RockyMM »

Only thing from stoping me from switching my rom archive from 7zip to jma is that there is not goodtool that supports jma.
Or am I wrong?
funkyass
"God"
Posts: 1128
Joined: Tue Jul 27, 2004 11:24 pm

Post by funkyass »

why would you need a goodtool if you have NSRT?
Does [Kevin] Smith masturbate with steel wool too?

- Yes, but don’t change the subject.
RockyMM
New Member
Posts: 3
Joined: Tue Apr 05, 2005 2:15 pm
Location: Zemun, Serbia
Contact:

Post by RockyMM »

And what about multiple files in an archive. As far as I understand, that is not yet supported. And how ZSNES would handle multiple files in an archive. When that feature is added, I'm definitly going to switch to JMA and NSRT.
byuu

Post by byuu »

why would you need a goodtool if you have NSRT?
Consistency across different consoles? Not that I'm advocating the use of badtools. Just saying...
Only thing from stoping me from switching my rom archive from 7zip to jma is that there is not goodtool that supports jma.
So tell me, what were you going to do with all of that extra space? Store the first 20 minutes of a movie? An extra 1/3rd of a music CD in FLAC format? You simply must take advantage of all that extra space. I mean, you're probably saving pennies on storage space there. Smart, crafty, and on the bleeding edge of technology. Who cares about silly little things like time and convenience? You're my hero.

Let's have some fun though, shall we?

RAR - 4,480,499
JMA - 4,439,798

RAR-JMA = 40701
SNES library size = ~3000 unique games, of which you probably own 10. Let's say you're one of ten people who really own every game ever made.
40701 * 3000 = 122,103,000. Or 122mb.

http://www.newegg.com/Product/Product.a ... 6822136003

High end 320GB hard drive, $130. Ok, so then:

$130 / 320,000MB * 122MB = 4.95 cents. Hell, let's say five cents. Congratulations! You're going to spend two hours converting your entire SNES ROM collection to a format that is not supported by any operating system, many SNES emulators, nor your GoodTools program natively, to save a nickel.

Image
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Post by Nach »

byuu wrote:Congratulations! You're going to spend two hours converting your entire SNES ROM collection to a format that is not supported by any operating system, many SNES emulators, nor your GoodTools program natively, to save a nickel.
Last I checked all the SNES emulators still in development support JMA, but none of them support RAR 3.x+.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
byuu

Post by byuu »

Last I checked all the SNES emulators still in development support JMA, but none of them support RAR 3.x+.
Indeed, thanks to your help :)
RAR is a lousy example (and a lousy format), isn't the actual format closed to the public still? I didn't have Tengai's ZIP file size to compare to. Does SNESGT, MESS and Super Sleuth really support JMA? I haven't checked, and I should. I thought SS was written in Delphi and that you didn't even know GIGO. Then there's all of the VM emulators that are popping up as of late. Jario, JSNES, Infinity, not sure which of those are active and which aren't.

But even that's still not the point. The point is that your compression format is extremely impressive in that it beats out even the best commercial alternatives. However, it is not, and will never be, mainstream like ZIP is. And honestly, who really wants 800 compression formats? For those that do, now think about writing your own emulator / SNES utility / whatever. Do YOU want to add code to support all of these formats?

bsnes for example incurred a 3% speed decrease by requiring the /EHsc flag for MSVC to compile JMA, gained 30-60kb in EXE size, 82kb in source size, and takes 1-2 seconds longer per fresh compile, or 4-6 seconds with gcc. All to save 40kb per SNES ROM. And this is why I'm so bitchy about it.

Nach, all of your ideas to date have been impressive and innovative. NSRT, NPS, ZSNES<>mplayer bridge, even JMA. I mean no disrespect, but I still for the life of me can't figure out why you have released JMA into the open, and are allowing people to try and convert all their ROMs to this obscure format. I too have created superior compression algorithms under the basis that file size is more important than compression speed. But I did it for the technical challenge alone. I realized my format would only complicate the lives of any programmer who had to support it.
Even storing the entire SNES library on the most expensive flash memory device would still only cost you an extra three dollars tops with ZIP, and that price is only going down. JMA might be a good idea for DVD ISOs, but never for ~2-4mb SNES ROMs :(
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Post by Nach »

byuu wrote: Nach, all of your ideas to date have been impressive and innovative. NSRT, NPS, ZSNES<>mplayer bridge, even JMA. I mean no disrespect, but I still for the life of me can't figure out why you have released JMA into the open, and are allowing people to try and convert all their ROMs to this obscure format. I too have created superior compression algorithms under the basis that file size is more important than compression speed. But I did it for the technical challenge alone. I realized my format would only complicate the lives of any programmer who had to support it.
Even storing the entire SNES library on the most expensive flash memory device would still only cost you an extra three dollars tops with ZIP, and that price is only going down. JMA might be a good idea for DVD ISOs, but never for ~2-4mb SNES ROMs :(
There are several things most probably don't realize.

I didn't write JMA just to be some simple SNES toy like NSRT or ZSNES or IPSEDIT is. My goal is to improve it enough to the point where I can actually really do something with it. So right now I get free bug testing from hundreds or perhaps thousands of people, and free word of mouth if ever I decide to sell something JMA related.

And JMA just doesn't win on best compression algorithm. If you'd look at the results I'm getting listed on my site of the upcoming changes, I even have it compressing faster than ZIP does for big files.
The library is also easy to use, flexible, and fully portable, something which you only fine in zlib, and libbz2, and they have their issues.

With JMA, I am now also able to fit my entire SNES ROM collection on a single CD, oh sure I get get GB upon GB on a hard drive, but if I go somewhere that has a PC, I didn't bring my laptop, and I'm bored, I got all the games I want to play on one CD.

Also, we've been getting many "requests" for RAR and 7z, which is getting rediculous. JMA now beats both compression wise, and once I work in parent/sibling based solid compression into NSRT, and a way for the emulators to browse a JMA archive like a directory, I never have to hear the please support solid archiving whine again. Because right now without JMA it's rediculous, not a single library available that has solid compression and works nicely, isn't it mind boggling?
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
byuu

Post by byuu »

My goal is to improve it enough to the point where I can actually really do something with it.
Are you willing to share this, possibly via PM? I don't think a commercial compression algorithm would be publically viable, given the alternatives really aren't that much worse, and they're free. But I wish you the best of luck at any rate.
With JMA, I am now also able to fit my entire SNES ROM collection on a single CD
A DVD would work all the same, burners go for $30-$40 now, disks for $2 tops. It is convenient that your personal archive fits on one CD now though, so that's definitely a good thing, but more an exception than a rule.
Also, we've been getting many "requests" for RAR and 7z, which is getting rediculous.
That's because people are stupid. Some of them more than others. "Hey, can you support GCA compression? Or can you add SNESCD support, preferrably the Sony model and not the Phillips model? How about a button where I can change the menubars from the default color to red and green, which displays a tiny Santa Claus in the bottom right that bounces around and gives me complements and advice while I play games, but only on days that are also Mersenne primes?".
The library is also easy to use, flexible, and fully portable, something which you only fine in zlib, and libbz2, and they have their issues.
Yes, I can definitely attest to that. I've never had even a single warning or bug with JMA compilation. Now if only it didn't require run-time error handling ... ;)
Because right now without JMA it's rediculous, not a single library available that has solid compression and works nicely, isn't it mind boggling?
I'm sure you'd end up with a complete set that's 20-40% smaller with a huge solid state archive thanks to all of the minor variants and regional ports, but what kind of PC would you need to extract "Zoop" from such an archive?

And now we have another problem, how do other emulators implement support for solid state JMA archives? :/
Jipcy
Veteran
Posts: 768
Joined: Thu Feb 03, 2005 8:18 pm
Contact:

Post by Jipcy »

byuu wrote:
Because right now without JMA it's rediculous, not a single library available that has solid compression and works nicely, isn't it mind boggling?
I'm sure you'd end up with a complete set that's 20-40% smaller with a huge solid state archive thanks to all of the minor variants and regional ports, but what kind of PC would you need to extract "Zoop" from such an archive?

And now we have another problem, how do other emulators implement support for solid state JMA archives? :/
I think Nach was thinking more along the lines of solid archiving all ROMs belonging to a single parent ROM, or something like that. So all regions/revisions of one actual game are in one solid archive. Not the entire set...
Last edited by Jipcy on Tue Apr 18, 2006 10:37 am, edited 1 time in total.
[url=http://zsnes-docs.sf.net]Official ZSNES Docs[/url] | [url=http://zsnes-docs.sf.net/nsrt]NSRT Guide[/url] | [url=http://endoftransmission.net/phpBB3/viewtopic.php?t=394]Using a Wiimote w/ emulators[/url]
pagefault
ZSNES Developer
ZSNES Developer
Posts: 812
Joined: Tue Aug 17, 2004 5:24 am
Location: In your garden

Post by pagefault »

The compression you get from compressing all the SFX roms together is amazing.
PHoNyMiKe
Retrosexual
Posts: 1011
Joined: Wed Jul 28, 2004 2:09 am
Location: Rapture

Post by PHoNyMiKe »

byuu wrote:You're going to spend two hours converting your entire SNES ROM collection to a format that is not supported by any operating system, many SNES emulators, nor your GoodTools program natively, to save a nickel.

Image

bewm, I think this is the coolest post on the zsnes forums ever. I don't know about you guys, but I don't keep the entire snes collection on my hard drive anymore. in fact, the only snes roms I have is the first goodsnes set somewhere on cd-rs that are blank on one side, and blue on the other. that being said, unless some amazing compression comes out, that can put 3,000 snes roms on 1 700MB cd, then your next best bet is to put them on one single layer dvd, in which case you mine as well use zip, because you don't want to go hunt down some proprietary software to manage your data when you actually use this dvd years in the future for one game.

I love winrar, but would only use rar when splitting large files. I love zip for single files, just like I love mp3 for music. fuck you idiots with your ogg and other shit. mp3 + zip = internets. plus mp3s work in my car.
[url=http://www.alexchiu.com/affiliates/clickthru.cgi?id=phonymike]ultimate immortality[/url]
[url=http://www.sloganizer.net/en/][img]http://www.sloganizer.net/en/image,zsnes,white,purple.png[/img][/url]
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Post by Nach »

byuu wrote:
My goal is to improve it enough to the point where I can actually really do something with it.
Are you willing to share this, possibly via PM? I don't think a commercial compression algorithm would be publically viable, given the alternatives really aren't that much worse, and they're free. But I wish you the best of luck at any rate.
If you want to discuss more details with me come on IRC. I have been talking to technicall buisiness people, and one person was thinking of doing something hardware based, so I don't neccesarily have to compete or only compete with WinZip and WinRAR.
byuu wrote:
With JMA, I am now also able to fit my entire SNES ROM collection on a single CD
A DVD would work all the same, burners go for $30-$40 now, disks for $2 tops. It is convenient that your personal archive fits on one CD now though, so that's definitely a good thing, but more an exception than a rule.
Yes, but not everywhere I go has a DVD player. There's also the possibility of using a USB memory stick now, but not everywhere I go has a USB port, although USB ports are more common than DVD players.

byuu wrote:
Also, we've been getting many "requests" for RAR and 7z, which is getting rediculous.
That's because people are stupid. Some of them more than others. "Hey, can you support GCA compression? Or can you add SNESCD support, preferrably the Sony model and not the Phillips model? How about a button where I can change the menubars from the default color to red and green, which displays a tiny Santa Claus in the bottom right that bounces around and gives me complements and advice while I play games, but only on days that are also Mersenne primes?".
Yes that is rediculous, but this is something I'm doing anyway, and worth while to some extent, to add it to all the emulators wasn't that hard.
byuu wrote: I'm sure you'd end up with a complete set that's 20-40% smaller with a huge solid state archive thanks to all of the minor variants and regional ports, but what kind of PC would you need to extract "Zoop" from such an archive?
You'd need a PC which has enough memory. The size needed to extract IIRC, is the size of the uncompressed data rounded up to the next power of 2, plus the size of the compressed data, plus half a megabyte or so.
So if you had 10MB of ROMs and compressed it to 2MB, you'd need ~18.5MB to extract. In the actual case of my SFX set which is ~40MB uncompressed and ~6MB compressed, it would be a total of ~70.5MB to deal with. The latter case is rare for an SNES set, but most people shouldn't have a big deal with 20-30MB requirements for a moment especially for those OSs with virtual memory.
byuu wrote: And now we have another problem, how do other emulators implement support for solid state JMA archives? :/
I'd handle it one emulator at a time. If loaded via a command line, a simple UI will do which can be supported the same across all emulators. For loading via the GUI, might need some menu editing to make it act like a directory, or perhaps pop up some time of scrolling select box. I'd worry about this bridge when it is time to cross it.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
PHoNyMiKe
Retrosexual
Posts: 1011
Joined: Wed Jul 28, 2004 2:09 am
Location: Rapture

Post by PHoNyMiKe »

Nach wrote:and one person was thinking of doing something hardware based
I can't program a compression algorithm any better than I can finger my butthole, but whoever even joked about the words "hardware based jma codec" must have been smoking heavy crack piled on top of lethal amounts of alcohol, plus a little meth and x mixed in there.

I applaude your effort to advertise jma, but it's something only a mother could love. I can't imagine more than five people on the planet actually using it. it's target base would be hardcore snes emu gamers who are misers when it comes to hard drive space. the eventual removal of the jma decompression from zsnes would save more space (from all users downloading and not using it) then the 5 hardcore snes emu gamers would save on hard drive space.

you mine as well create a toaster plugin for every emulator out there. at least that way it'd be funny, and compatible with more emulators.

seriously, what kind of numbers are we talking about here? is jma not 7-zip just tweaked a little bit?
[url=http://www.alexchiu.com/affiliates/clickthru.cgi?id=phonymike]ultimate immortality[/url]
[url=http://www.sloganizer.net/en/][img]http://www.sloganizer.net/en/image,zsnes,white,purple.png[/img][/url]
kode54
Zealot
Posts: 1140
Joined: Wed Jul 28, 2004 3:31 am
Contact:

Post by kode54 »

Since JMA borrowed its primary compression algorithm (LZMA) from 7-zip's LZMA SDK, a hardware implementation would also go towards supporting the 7-zip format. And I think that format is seeing ever so slightly wider use at this time. Still not terribly useful for unpacking juarez.
nemo
Rookie
Posts: 13
Joined: Sat Oct 30, 2004 3:28 am

Wow, it's been a while...

Post by nemo »

propaganda++;
Image
I suck at photoshop.
(I lie, I'm a cheap GIMP user)
(On a mac)
(X11 Gimp, didn't even pony up the cash for MacGIMP)
Good to see the community is still thriving. Good luck on your new project, Nach.

edit: Wow, forgot about the purge shortly after I stopped coming here, my post count used to be like 500+ haha. 2 now....
Nach
ZSNES Developer
ZSNES Developer
Posts: 3904
Joined: Tue Jul 27, 2004 10:54 pm
Location: Solar powered park bench
Contact:

Post by Nach »

Haha, thanks for the image.
May 9 2007 - NSRT 3.4, now with lots of hashing and even more accurate information! Go download it.
_____________
Insane Coding
adventure_of_link
Locksmith of Hyrule
Posts: 3634
Joined: Sun Aug 08, 2004 7:49 am
Location: 255.255.255.255
Contact:

Post by adventure_of_link »

Too bad it fails at grammar though:

It should be "You're compressing with Hitler."
<Nach> so why don't the two of you get your own room and leave us alone with this stupidity of yours?
NSRT here.
sweener2001
Inmate
Posts: 1751
Joined: Mon Dec 06, 2004 7:47 am
Location: WA

Post by sweener2001 »

It should be, "You compress with Hitler."

So as to better fit with the scheme. DUH

And who are you to talk about grammar? I've been telling you that your sig is messed up for quite awhile.

EDIT: I just noticed that you changed it. Still, it was messed up and you broadcast it to the world.
[img]http://i26.photobucket.com/albums/c128/sweener2001/StewieSIGPIC.png[/img]
Post Reply