Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
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
Posted on 07-27-05 07:42 PM, in Luigi vs Mario (formerly SMB3DX) Link
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
Posted on 07-27-05 09:24 PM, in Super Mario All-Stars Level Editor Link
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
Posted on 07-27-05 09:45 PM, in Strings in C++ Link
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:


char fullpath[MAX_PATH] = "C:\\Directory\\";
char* filename;

filename = fullpath + strlen(fullpath);

strcpy(filename,"file.txt");

printf( fullpath ); // will output "C:\Directory\file.txt"
printf( filename ); // will output "file.txt"


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
Posted on 07-27-05 09:51 PM, in How to edit the SMB title screen? Link
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
Posted on 07-28-05 08:23 PM, in What's up with zophars?! Link
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
Posted on 07-28-05 08:47 PM, in Rom Legality? Link
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
Posted on 07-28-05 09:11 PM, in Rom Legality? Link
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
Posted on 07-29-05 11:38 AM, in Rom Legality? Link
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
Posted on 07-30-05 10:22 PM, in NULL Pointers Link
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
Posted on 07-30-05 10:58 PM, in Ripping SNES Music. Link
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
Posted on 07-31-05 09:21 AM, in Ripping SNES Music. Link
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
Posted on 07-31-05 11:39 PM, in Ripping SNES Music. Link
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
Posted on 08-01-05 01:26 AM, in Mario Chronicles: The latest Link
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
Posted on 08-02-05 07:03 AM, in Luigi vs Mario (formerly SMB3DX) Link
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
Posted on 08-03-05 08:54 AM, in BIOS Nightmare! (The far from sequel) Link
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
Posted on 08-03-05 07:12 PM, in Almost fixed Megaman Ultra. bbitmaster, Please Read, Findings Included. Link
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
Posted on 08-03-05 10:34 PM, in Almost fixed Megaman Ultra. bbitmaster, Please Read, Findings Included. Link
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
Posted on 08-04-05 07:13 AM, in Luigi vs Mario (formerly SMB3DX) Link
Originally posted by Admiral Piett
(with the oldschool 8-bit gfx, of course).


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
Posted on 08-06-05 06:18 AM, in Am I allowed to do this.. Link
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
Posted on 08-06-05 08:23 PM, in C++: Bizarre Multiple Declarations Link
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.


int myVar; /* will actually make the variable -- only have 1 of these */

extern int myVar; /* will not make the variable, will link to it after compile time -- have one of these for each .cpp file beyond the first */


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



// your header file (referred to as "include.h" below)

#ifdef DO_NOT_MAKE_EXTERNS
#define _EXTERN
#else
#define _EXTERN extern
#endif


_EXTERN int Var1;
_EXTERN int Var2;
//etc




// in **ONE** of your cpp files
#define DO_NOT_MAKE_EXTERNS
#include "include.h"

// rest of file here




// in all the other cpp files

#include "include.h" // note, no #define here

//rest of file here




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


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.043 seconds.