Register | Login | |||||
Main
| Memberlist
| Active users
| ACS
| Commons
| Calendar
| Online users Ranks | FAQ | Color Chart | Photo album | IRC Chat |
| |
Acmlm's Board - I2 Archive - - Posts by Dish |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
User | Post | ||
Dish Spiny Level: 38 Posts: 481/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
I just assumed the ice blocks would operate like the blue blocks you can carry in the original game (after they've been lifted). So you couldn't jump on them, but you can kick or lift them (like a turtle shell). For them to be stand-on able, you'd think they'd have to become part of the map, and somehow doubt that's how it's working (plus it would be kind of weird if it worked that way, since the enemy would have to snap to the nearest 16x16 block when frozen). But I await DD's answer to this as well |
|||
Dish Spiny Level: 38 Posts: 482/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Code/data from game A cannot be copy/pasted to game B -- despite how similar the games may seem. This is doubly true when game A and B are for different platforms. (there are rare exceptions to this -- but I won't get into that) DD's hack involved a lot of engine code changes -- that kind of thing isn't something you can just move from one game to another. You'd basically have to 're-hack' SMAS in the same manner which SMB3 was hacked. Which, needless to say, is a fairly large project and takes quite of bit of knowledge in the area. (edited by Disch on 07-27-05 12:25 PM) |
|||
Dish Spiny Level: 38 Posts: 483/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
I fail to see the difference between 'assigning' and 'copying'. I dislike how he says you can't assign a string to a char array, but says you can assign a string to a std::string object with the '=' operator. All the '=' operator is is like an overloaded version of strcpy -- why not list strcpy on the c-style string side? Some other things were misleading... such as the concatenation example: "strcpy(s, strcat(str1, str2)); str = str1 + str2;" The char array examlpe will actually append str2 to str1, then copy str1 to s (modifying both str1 and s). Whereas the std::string side will only modify str. Other than that it is pretty informative. One of the little benefits to working with char arrays is the power of having every character at your fingertips without having to work around class member functions. For instance I do the following a LOT:
Using that I can maintain a buffer which always holds the full path to a file, but only modify 'filename' when I want to switch to another file in the same directory. Stuff like that is definatly not as easy to do with std::string. However you can't really put that kind of thing in a simple comparison doc. |
|||
Dish Spiny Level: 38 Posts: 484/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
You'd have to add an animation routine to the game. But yeah it could be done. If there's enough free space it wouldn't even really be that hard (provided you know what you're doing). I hear dreadful stories about how SMB has like no free space at all though. But I don't know if they're true or not. |
|||
Dish Spiny Level: 38 Posts: 485/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
You guys might find this relevent Posts like these have been popping up ever since the server change. Something is definatly happening, we just haven't seen it happen yet. |
|||
Dish Spiny Level: 38 Posts: 486/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
So you'd have people double the size of their download in a futile attempt to make pirating legal? I don't think it'll fly. Besides, if the entire ROM is in the IPS -- then the IPS is the ROM and it's what you can't distribute =P. The idea is the software is what's copyrighted -- you just moved the software to an IPS file, that doesn't make it any more legal to distribute. |
|||
Dish Spiny Level: 38 Posts: 487/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Plus IPS patches which expand the ROM typically ahve a copy of the last PRG bank in the ROM inside them, so they contain copyrighted data too. Emulation in general is just shadey. I don't really know why IPS files are considered okay when ROMs are so taboo -- but hey, I'm not gonna argue. |
|||
Dish Spiny Level: 38 Posts: 488/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
That's a falsehood. Whether or not you own the cart makes no difference. It's legal to own a back-up copy, yes -- but it's not legal to distribute copies -- therefore the copies you get from ROM sites are being distributed illegally, therefore they're illegal to download. Commercial ROMs can only be legal if you dump them yourself from a cart you own. But whatever -- I mean we all know we're breaking the law. I doubt anyone here really cares. |
|||
Dish Spiny Level: 38 Posts: 489/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
On most systems -- no, you will never get a return of 0 (except on error). However, that's why you're supposed to use NULL and not 0 (since were a system to have 0 a valid address, you would only have to redefine NULL to make it something else). I never stuck to that though, and I treat NULL as 0 always. Even if 0 were a valid address... the lowest you could get would probably be like 8 or 16 or something -- since memory allocation functions allocate a bit more than you request and prefix it with information (like allocated size, and boundary checks) |
|||
Dish Spiny Level: 38 Posts: 490/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Most games can have their sound dumped in SPC format. ZSNES and SNES9x probably both have SPC dumping ability -- although it can be a hassle to dump SPCs yourself -- since you have to time them right. Besides... most games have their soundtrack dumped already and are available on archive sites. http://www.snesmusic.org <--- probably the largest/best SPC archive in existence. Whatever game you're looking for is probably there http://www.alpha-ii.com/ <--- get SNESamp -- or some other SPC player (though SNESamp is the best, imo). (click on the arrow on that page to get to the downloads) http://www.winamp.com <--- SNESamp is a winamp plugin, so you'll need Winamp to run it. There are standalone SPC players, although Winamp has the added benefit of iZotope and .wav, .ogg converters (yes you can also convert to .mp3, but ogg is superior ;P ) |
|||
Dish Spiny Level: 38 Posts: 491/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
One of my many complains with .spc and other non-ripped formats. Rip formats are the way to go. A psf variant for SNES would be dynomite -- unfortunately there will never be one because .spc is "good enough" At least it's not a piss-poor log format like GYM... ugh *cringe* (edited by Disch on 07-31-05 12:23 AM) |
|||
Dish Spiny Level: 38 Posts: 492/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
PSF? or GYM? PSF/NSF/SID/GBS/etc are rip formats. That means they are actual code from the game yanked out and stuffed in files. They are the hardest to make since ripping actually requires quite a bit of manual work (no real safe way to automate the process in most cases). However they account for ANY tricks the game can use to playback music. Any song from any game can be ripped with a rip format. Plus, PSF variants (minipsf, gsf, usf, etc) are [usually] incredibly efficient since they only have the sound engine and all common data (like instruments) in one file, and very tiny individual files to drive each song. Older rip formats like NSF/GBS/SID don't have the individual files, rather they keep all the songs in one file along with the common data. SPC is a dump format -- which is pretty much the exact same concept as a savestate. SPC dumps are [usually] just RAM/state dumps of the SPC700 chip. This is why they're all the exact same size, regardless of song complexity or length. This format has the pro of being VERY easy to make, however full soundtracks tend to be bloated since you have several copies of the exact same music engine in every song file. Some SPC players worked around that by supporting RSN files (which is just a bunch of SPC files in a RAR archive) to decrease the amount of redundant data and ease HD space. However another problem with this kind of format is it will only work on games which allow for this kind of savestate. As previously mentioned, SPC dumps of some games just don't work. GYM is the worst of the worst. It's a log format -- which basically just takes writes to audio registers and dumps them to a file as the song is played, along with a timestamp. This is another easy-to-make format since any emulator could easily log such writes, however file sizes are often INCREDIBLY bloated, and since there's no CPU emulation, looping doesn't really work. Looping can be faked by setting markers in the file (I think another Genesis format was developed to make looping work a little better along with other improvements... VGM I think it was? I forget -- either way it was just another yukky log format). However this format does have the pro of being able to accomidate any game's music. So anyway yeah... rips are the way to go. Yeah they're harder to make, but it's worth it in the longrun, since you get the best/most efficient/easiest to work with file when it's all over and done. (edited by Disch on 07-31-05 02:40 PM) |
|||
Dish Spiny Level: 38 Posts: 493/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Two screenshots? I only see half of one screenshot edit -- nevermind... I know what the problem is. (edited by Disch on 07-31-05 05:01 PM) |
|||
Dish Spiny Level: 38 Posts: 494/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
bump by request | |||
Dish Spiny Level: 38 Posts: 495/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Bios are like the software on the system. It's copywrited software in the same way that ROMs and ISOs are. Bios requests are typically treated the same was as ROM requests... since they're pretty much the same thing. | |||
Dish Spiny Level: 38 Posts: 496/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Good Lord. You're what I call a "clinger". BBit was nice enough to go out of his way to give you a hand and help you with some of your problems... and now that he's helped you once you 'cling' to him and seek him out for every problem you have. At least this post is asking (or really begging) help from 'anyone with experience in this field' -- but you're still primarily hassling bbit. I've had my share of clingers in the past... and they're a nuisance. But man.. I never had one as relentless as you: e-mails to bbit PMs with bbit posts on the forum directed towards bbit and when these start going unanswered (like that's really a suprise), you sic your friends on bbit and have them PM him saying "help infidelity with his hack" It's gotten to the point where you're just downright harrassing him. BBit can't do your hack for you... get over it. Move on. |
|||
Dish Spiny Level: 38 Posts: 497/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Reread my post because you apparently didn't understand what I said. Let me lay out the time tables for you: - Infidelity asks for help - Bbit helps him -- and I mean he actually sits down and REALLY helps him. - After helping infidelity with one of his problems... bbit says "I'll leave it to you to solve the other problem" - Infidelity apparently missed that (or chose to ignore it)... so he continues to PM/e-mail bbit asking questions - bbit helps a bit further, but eventually gets worn down and stops replying - Infidelity continually PMs and e-mails bbit trying to get a hold of him - Having been unable to get bbit to answer him, he then gets you (or some other friend) to PM bbit saying "hey why aren't you responding to infidelity" - Bbit explains why - That answer apparently wasn't good enough, as the person responds with "well just help him anyway" - Bbit doesn't (for obvious reasons) - Infidelity posts a thread on these boards which basically is ANOTHER way to try and contact bbit -- only it's worded in a completely whiney and "bbit's being a jerk for ignoring me" way. - A mod who's aware of the bbit/infidelity drama trashes the thread - Infidelity posts AGAIN saying "hey why'd my thread get trashed" - That thread gets trashed - Apparently infidelity just doesn't get the hint... so he posts a THIRD time -- the exact same post as the first time. I don't know... maybe he thought it was a fluke his posts were removed the first two times or something... I honestly don't know what he could have been thinking. - Seeing that infidelity just wont' give up, the mod locks the thread and explains "hey don't do this" - Finally infidelity posts this thread... again singling out bbit!!! Though granted... this thread was a lot better than his last one. Now come on. Infidelity just isn't getting the picture here. He needs a slap in the face. I've dealt with clingers before... and let me tell you... they suck. Not only are they totally annoying, but they make you not want to help anyone ever again. That's not good for anyone. Infidelity is hands down the worst clinger I've ever seen. Asking for help is one thing... there's nothing wrong with that. Singling out a single person and pounding on that person day after day after day and NEVER LETTING UP is what sucks. Infidelity needs to seriously stop it. I'd be very suprised if bbit ever says another word to him ever again... I sure wouldn't if I were him. Besides... bbit is NOT the only person in the world who can help with this problem. infidelity does NOT need bbit's help specifically... he just chose to cling to bbit because he offered his help once. (edited by Disch on 08-03-05 01:38 PM) |
|||
Dish Spiny Level: 38 Posts: 498/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Originally posted by Admiral Piett NES graphics are 2bpp -- ie: 2 bit graphics. SNES isn't even 8-bit. </technicality> (edited by Disch on 08-03-05 10:14 PM) (edited by Disch on 08-03-05 10:16 PM) |
|||
Dish Spiny Level: 38 Posts: 499/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
Get LIPS Turning your hack into an IPS for distribution has never been easier! |
|||
Dish Spiny Level: 38 Posts: 500/596 EXP: 355646 For next: 14801 Since: 03-15-04 From: Disch Since last post: 18 days Last activity: 18 days |
| ||
If you define a variable to be global, it will have global scope (Global meaning it exists for the whole program). If you #include a header file which has a var declaration in several .cpp files, each .cpp file will create its own variable with the same name. This is where your problems are coming from. The solution here is to make the variable once, then link it so that all .cpp files have access to it.
Of course extern int myVar will only work if 'int myVar' is declared somewhere in your program. For a halfway decent analogy of why it works this way... making the actual variable (int myVar) actaully makes the variable with a "body". Similar to how making a function with a body gives the function it's body. If you have a function in your program which has several bodies, you'll get errors much like the ones you were getting -- because you were making several different variables which have the same body -- and the compiler doesn't know which one you want to use. Making it 'extern' says "okay, this variable exists... but not in this .cpp file, so we'll link to it, but it won't be in this compile" -- which is kind of like a body-less variable. Equivilent to having a function prototype (function without a body). It's making the function/var available for use, but without actually making it. Of course if you actually call the function, it will need to have a function body found at link time. Likewise if you actually use an extern var, it will need to find a var body at link time. Otherwise you get errors. So yeah, only 1 cpp file has the variable. The others use 'extern' to link to that var. Yeah it's a pain in the ass -- which is one of the reasons why I avoid global vars like the plague. EDIT: To avoid a pain in the ass, you can sort of cheat with clever use of #defines
That'll make it easier to manage a large file full of global vars. The #define _EXTERN saves you from having to make (and maintain) two sets (bodied and body-less) since it keeps both in the same file. (edited by Disch on 08-06-05 11:25 AM) (edited by Disch on 08-06-05 11:41 AM) (edited by Disch on 08-06-05 11:49 AM) |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Acmlm's Board - I2 Archive - - Posts by Dish |