News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Utilities: Snara - Idiot proof, multi-operating system IPS patching  (Read 9461 times)

RHDNBot

  • Guest
Update By: Matthew Callis

Snara is a solution to the eternal problem of idiot proof distribution of IPS patches.

By taking care of any problems for you user, you can easily and safely distribute patches wrapped into Snara. Snara is an Adobe Air application making it universal, so anywhere you can run Air your users can patch. You can also incorporate a read me file, screenshots or other media.

It's built using Adobe Flex, so anyone with Flex can build it. You can also make it multilingual. I made an example using Hamelin no Violin Hiki English patch by J2E.

Staff note: You can also find the current (as of this afternoon) source here at RHDN.

Relevant Link: (http://eludevisibility.org/snara/)

Kitsune Sniper

  • Hero Member
  • *****
  • Posts: 3503
  • Complaining about mods == trolling, whee
    • View Profile
    • Foxhack.net
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #1 on: September 22, 2009, 03:46:09 pm »
Uh...

What the hell is Adobe Air? Is it some newfangled technology that has just been released or something? :\
For any further project updates, please visit my website. I do not wish to belong to a site where a user has no voice.

Tauwasser

  • Hero Member
  • *****
  • Posts: 1392
  • Fantabulous!!
    • View Profile
    • My blog
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #2 on: September 22, 2009, 04:27:51 pm »
It's Adobe's solution to an anywhere installer/runtime.

cYa,

Tauwasser

Rolen47

  • Full Member
  • ***
  • Posts: 128
    • View Profile
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #3 on: September 22, 2009, 07:33:06 pm »
By "idiot proof" does that mean it's able to detect SNES headers in ROMs? Cause that's the most common problem newbies have when trying to patch an SNES ROM. If not, then you may want to implement that in some way.

Matthew Callis

  • Jr. Member
  • **
  • Posts: 11
    • View Profile
    • SNES Development Wiki
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #4 on: September 22, 2009, 08:19:16 pm »
Some patches want a header, some don't so I didn't include it in the on I used as an example. I just updated the source with a simple header check:

Code: [Select]
trace(fileData.length);
if((fileData.length & 0x200) == 0x200){
trace("Header");
}
else{
trace("No Header");
}

creaothceann

  • Hero Member
  • *****
  • Posts: 2619
  • SPINESHARK
    • View Profile
    • creaothceann's website
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #5 on: September 22, 2009, 08:57:20 pm »
Somewhat related: Note that not all emulators will be using IPS. :)

Matthew Callis

  • Jr. Member
  • **
  • Posts: 11
    • View Profile
    • SNES Development Wiki
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #6 on: September 22, 2009, 09:38:24 pm »
Somewhat related: Note that not all emulators will be using IPS. :)

Not sure why I didn't mention it here, but I', working on validation and UPS support, I posted it on my site though.

Nezz

  • Guest
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #7 on: September 23, 2009, 06:47:27 am »
Somewhat related: Note that not all emulators will be using IPS. :)
:laugh: Hilarious, thanks for sharing.

If I had one penny for every idealist coder who told me he could force people to use their computers in the One Correct Way (which is always his own), I'd be a rich man now.


Kernigh

  • Jr. Member
  • **
  • Posts: 24
    • View Profile
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #8 on: September 23, 2009, 06:06:40 pm »
Snara is an Adobe Air application making it universal, so anywhere you can run Air your users can patch.

If ROM hackers start requiring Snara, then I will be locked out from playing those ROM hacks, unless I can still use the normal IPS or UPS file.

Adobe Air requires Linux, Macintosh or Windows (and Linux might mean Linux/i386), which means that Adobe Air is not universal. I run OpenBSD/powerpc, so I cannot use Adobe Air.

OpenBSD/powerpc and Linux/i386 belong to the same family of Unix clones. Systems in this family are mostly source-compatible, but not binary-compatible. Programs that have source (like Snes9x-GTK) support many systems in this family, but Adobe Air does not.

By "idiot proof" does that mean it's able to detect SNES headers in ROMs? Cause that's the most common problem newbies have when trying to patch an SNES ROM. If not, then you may want to implement that in some way.

When I say "SNES header", I mean the information at SNES address $00ffc0. Those extra and useless 512 bytes at the start of a SNES ROM image are a "SMC header".  (But I also think that "Flex" is a program to create programs that use regular expressions to read tokens from a file.)

Code: [Select]
trace(fileData.length);
if((fileData.length & 0x200) == 0x200){
trace("Header");
}
else{
trace("No Header");
}

For header detection, BSNES uses (size & 0x7fff) == 0x200. Snes9x uses (size & 0x1fff) == 0x200. This is the first time that I see (size & 0x200) == 0x200. Your code only checks if flag 0x200 is set. So 0x40000..0x401ff would be "No Header", 0x40200..0x403ff would be "Header", 0x40400..0x5fff would be "No Header". You need 0x40000 to be "No Header" and 0x40200 to be "Header", so I guess that your formula is correct.

Matthew Callis

  • Jr. Member
  • **
  • Posts: 11
    • View Profile
    • SNES Development Wiki
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #9 on: September 23, 2009, 10:26:11 pm »
My code checks was an example to see if it has 512 extra bytes beyond an even EPROM size, nothing special.

Please do not confuse people who don't know what a header is (and by header, it is almost always referring to the copier header, also not Super Magic Card specific), if you want to read the internal header I have an OS X framework for that too, http://github.com/MatthewCallis/Lesminni-Framework .

By even using OpenBSD, you should know enough to be able to handle patching on your own.

Kronus_Arm

  • Hero Member
  • *****
  • Posts: 517
  • Act like a baddass, whine like a sissy.
    • View Profile
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #10 on: September 24, 2009, 07:50:05 am »
I like what you call it "Idiot-Proof" 

:laugh:

Anyways good stuff, I like the implementation of your prog. using Adobe Air.
Can be used as an alternative for LunarIPS.

 :)

Kernigh

  • Jr. Member
  • **
  • Posts: 24
    • View Profile
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #11 on: September 29, 2009, 05:52:16 pm »
Please do not confuse people who don't know what a header is... copier header... internal header...

I neglected to consider that some users might learn about one type of header, but not the other. I learned both types from the README of WLA DX, but most users would not read that document.

... if you want to read the internal header I have an OS X framework for that too, http://github.com/MatthewCallis/Lesminni-Framework .

The interesting part seems to be ROM Parser/Formats/SuperNintendoReader.m. It knows more than I know.

Kronus_Arm

  • Hero Member
  • *****
  • Posts: 517
  • Act like a baddass, whine like a sissy.
    • View Profile
Re: Utilities: Snara - Idiot proof, multi-operating system IPS patching
« Reply #12 on: October 03, 2009, 02:50:54 am »
Holy Cow!

And you're that dude who programmed S3DTEX Viewer? What a coincidence! Your prog. is widely used by the Dingoo community!

Although Soft 3D's website gone down for a couple of weeks, and I'd say months now...

 :)

EDIT: I'm dying to know if your gonna port it to Windows.