Language…
19 users online: Alex No, DanMario24YT, gemstonezVA, GiraffeKiller, Gorry, Green, GRIMMKIN, Heitor Porfirio, JudithPrietht, Metal-Yoshi94, Ray Hamilton, Rykon-V73, Seamus Sinclair, ShoopDaWhoop, Sniwott, Spedinja, VoidCrypt, WhenUnique, xhsdf - Guests: 266 - Bots: 622
Users: 64,795 (2,371 active)
Latest user: mathew

dup16 - a very simple Map16 duplicate finder

This is pretty much the first thing I did in C++ that can actually be called useful by some. I had actually finished it about half a year ago, but decided to dig it out and release it because why not.

As the thread title implies, what this tool does is find duplicate tiles in your Map16 files. Give the program a .bin file and it'll generate a text file containing a list of all Map16 tiles that have duplicates, as well as their locations. It also looks for an accompanying "G" file, and will take its data into consideration when found valid.

From what I can tell it's in perfect working condition. I recall experiencing some issues with the first file I tested, but I can't seem to reproduce them, and anything I've tried since has worked just fine. Nevertheless, if you find anything odd about the tool's behavior, please let me know - I don't think I'll be able to do much about it, but I can always ask for it to be taken down then.

And yeah, you heard right - it only works with .bin files. Much easier that way, at least for me. That shouldn't be too much of a hindrance, though, as LM still supports those.

Also, it's open source. The main reason I'm doing this is that I'd love to hear some feedback on my coding. I'm sure there's tons of things I could have done better, so don't hesitate to speak up about anything that strikes you as bad.

...oh right, download it here.
hi ur awesome kkthnxbai

*goes off trying out program*

EDIT: How do you create .bin files with the new LM?

EDIT: Never mind, I found out how.

EDIT: I get an error, saying the files should exist, shouldn't have spaces, and shouldn't exceed 500 length.

I don't get it.
Good idea. Also good example of something LM should support. :p

How hard would it be to read ROMs instead of .bin files? Just a matter of knowing the address of map16 data?
Renamon is best pony.
Originally posted by Giant Shy Guy
EDIT: I get an error, saying the files should exist, shouldn't have spaces, and shouldn't exceed 500 length.

I don't get it.

I guess it requires an absolute file path, including the drive name and whatnot. Have you tried dragging the file on top of the console window while it's asking for one? That should definitely give you a correct path.

Originally posted by Rena Kunisaki

How hard would it be to read ROMs instead of .bin files? Just a matter of knowing the address of map16 data?

I guess so, though I'm pretty sure LM changes that around at will (and I can't say for sure if the format's the same as in BIN files).


 
Originally posted by WhiteYoshiEgg
Have you tried dragging the file on top of the console window while it's asking for one? That should definitely give you a correct path.


That's what I do, and it gives me that error.
Originally posted by WhiteYoshiEgg
I guess so, though I'm pretty sure LM changes that around at will (and I can't say for sure if the format's the same as in BIN files).

There has to be a static pointer to it somewhere. even if the pointer is in a routine that can be patched anywhere (Mario's graphics do that in newer version of LM) you can find the jump to the routine then load the static offset within the routine. Kind of round about, but it shouldn't be that difficult.
Originally posted by Giant Shy Guy
That's what I do, and it gives me that error.

Huh, that's weird. Sorry for not meeting your initial expectations. #ab{:(}

Mind posting a screenshot of the program while it says that?


 


I tried without quotations, it doesn't work to. (This is with drag and drop by the way)
Oh, simple problem then: The file path contains spaces. ("Lunar Magic", "Dynamic Disarray".)

I'm afraid you'll have to move the .bin file to a location with no spaces in its path for now, and for a possible update I'll try adding support for spaces.


 
Giant Shy Guy managed to get it to work on the SMWCP2 rom, and it put out this file. And I don't think that's correct, because I've checked and double checked but can't see why the tool would find over 16000 middle parts of bullet bill launchers.

Ask GSG about it if you need the ROM, the .bin or anything else.
aran - Graces of Heaven
Woah, quite the bug indeed - even worse, I have no clue what could be causing that. (At least it seems to have caught some valid duplicates, right? #ab{^^;;;})

I guess it'd be best to have the tool taken down for now and rewrite it someday, doing more extensive testing and improving its file handling abilities. (Maybe making it work with ROMs too?) Either way, thanks for the feedback, and sorry for getting you guys' hopes up too high by releasing the tool in an apparently buggy state.


 
Quote
Oh, simple problem then: The file path contains spaces. ("Lunar Magic", "Dynamic Disarray".)

Uh, why impose that restriction anyway?

Oh a more relevant note, it seems like a pretty useful tool indeed. Once you iron out the bugs, I'll be sure to use it when hacking.
Originally posted by Iceguy
Uh, why impose that restriction anyway?

Ask C++ (or rather, my C++ skills). Trying to open a file containing spaces in its path doesn't seem to work, it's not something I chose.

For the next release I'll be sure to look for some library that eases file handling.


 
May I recommend Asar's libcon? It doesn't handle files directly (it just hands out filenames), but it handles spaces just fine.
<blm> zsnes users are the flatearthers of emulation
Perhaps there should be an indication of which tile is used in which level. That way, it'll help designers determine which tile is expendable, and reduce wasted time.
Your layout has been removed.