News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

[ALTTP, SNES] Black Magic

Started by ICB, July 17, 2011, 04:47:41 PM

Previous topic - Next topic

ICB

First of all, hello new forum!

MathOnNapkins informed me via PM on Board2 that Black Magic (the 'new' Zelda 3 editing tool) is still alive. I was happy to see that MON is still hacking, and elated that Black Magic is still being worked on. I can't wait to see what he's done with it in the past two years. I think it was about that long ago when that other little Z3 hacking board went under a couple of years ago, taking a slowly-but-steadily building wealth of Z3 hacking knowledge and Black Magic discussion and updates with it.

If you've ever used Hyrule Magic, you know how frustrating it is. Even though Zelda is my favorite game, and I really want to make a Zelda 3 hack, I have avoided it like the plague because of the mess that Hyrule Magic is. I've been patiently  awaiting any news on Black Magic so I can get started on a hack, and I was afraid it was dead, but I'm glad I was wrong!

:yay:

Zhs2

I was thinking maybe Math should have had the first post so he could update it if/when he decided to hand out Black Magic here... :razz:

ICB

 :oh: Good point.

Feel free to delete if you feel it's necessary.

MathOnNapkins

#3
I kinda wanted to have something noteworthy to report about before I started a thread for BM. The main news is that BM is no longer an editor but rather a C++ library that can be called in other code, such as .NET applications, to make an editor. I've been working on two test applications, a command line one in C++, and a .NET WinForms application. Currently I've been working out reworking certain dungeon objects to make dungeon editing less hellish. In other words, some of the same treatment that the overworld was getting in the last Black Magic release is coming to dungeons. These include things like:

- Unlimited chests, "big key" chests, and "big key" lock blocks in any particular room. (There will be a global limit b/c they're tied to events). Previously these items were limited to 6 per room, and 5 per room if there were 2 keys in the room.
- Unlimited small keys per room (but with global limit b/c they're tied to events).
- Unlimited staircases, transporter tiles, inter-room doors.

There's probably other types of objects that could go on this list, but I don't remember them all. Basically, these mods will allow the user to use event based objects on a global basis rather than on a per room basis. If realized even further, we can have virtually unlimited rooms, rather than the 320 hard and fast limit of the original game.


We can keep this thread open for general shooting the breeze in the meantime though.

Quietus

So, to clarify for the not-so-technobabble-inclined (like me :heheh:) we're still going to have to use Hyrule Magic for the main chunk of the editing?

MathOnNapkins

#5
Man, I sure hope not!  :noes:

Quote from: Quietus on July 18, 2011, 08:15:55 AMSo, to clarify for the not-so-technobabble-inclined...

The main point is that an editor would no longer be stuck only on Windows operating systems. Also, I don't think anyone's ever labeled what I've said as technobabble before explicitly. That's actually flattering b/c it makes me feel like I'm in a Star Trek episode.

Quietus

Hehe, I suppose once you've been absorbed by the code for so long, us normal folks feel like the aliens. :heheh:

Crashtour99

It's all about learning the language I guess.  Before learning as much as I have about ASM all I could do was scratch my head in confusion, but now I can easily follow along with the majority of convos about it (and even some rudimentary stuff about other programming languages).  Personally I think it's kinda fun to talk in techno-babble.   :lol:

MathOnNapkins

This game's code is full of WTF too. I just about nearly strangled it 15 minutes ago. It's doing something that is pretty much a bug, though I don't know for sure whether it would actually hurt something. Basically when you hit certain tiles on the Overworld with your sword or other items, there's a chance it might randomly think you're standing on a tile that's not there. I spent an hour chasing down why the game though I was standing on one type of tile when no such tile was in sight. Just another day in Zelda 3 land. :mad:.

personitis

Once, long ago, when I fiddled with Hyrule Magic, it wasn't too bad. Could be better though. Quite a few things puzzled me but I suppose knowing how the game works is half of knowing how its editor works.

Quietus

I think the biggest hurdle when I tinkered with it was getting over the tiling.  Unless it's changed since then, you have to create blocks of four tiles to be placed as a chunk, and not single tiles.  It doesn't sound too tough, but I was so used to single tile placement, it gave me headaches. :^_^:

Charmander106

I think the hardest part about the 32x32 tile placement in Hyrule Magic is trying to find the right piece to place in the overworld, I can't remember how much time I have wasted just trying to find that one piece.  :razz:

Quietus

I'm fairly certain that you can just edit them to create your own...

Charmander106

I never edited them because I just had no reason too unless if I have too.

ICB

Sorry, I didn't mean to steal any thunder, MON. Was just excited that Black Magic is still floating around in that brain of yours.  :grin: I look forward to an official announcement and release.

So, if I'm reading this right, Black Magic is no longer an editor like what we're used to? I'm a little confused about this. Will we still be able to place tiles, sprites, etc. in a WYSIWYG type editor? I assume this is the case, just that you're using a different means to that end, correct?

I think my two main gripes about Hyrule Magic are, first and foremost, the stupid 32x32 tile mess. It really limits what you can do, and always seemed to douse any creative spark at all. I also hated the limitations on entrances and exits on the overworld. This, along with a number of little bugs and annoyances made me give up on Z3 hacking all together.


Zhs2

Quote from: ICBWill we still be able to place tiles, sprites, etc. in a WYSIWYG type editor?
Yes, but someone has to write the WYSIWYG-type editor part to wrap the library code he's written. :)

Charmander106

Actually, getting around the 32x32 tiles issue can really spark up creativity, because when there are limitations, you probably would want to figure out a way around that issue, and when you do figure something out, that can make a creative and enjoyable experience for you and the player. Make since?

But it really depends on the effort and perseverance to make something really unique and original....

snarfblam

Quote from: Zhs2 on July 19, 2011, 04:07:55 PM
Quote from: ICBWill we still be able to place tiles, sprites, etc. in a WYSIWYG type editor?
Yes, but someone has to write the WYSIWYG-type editor part to wrap the library code he's written. :)
It sounds like this library will be usable from C#. If this is the case, I'd be willing to pitch in.

MoN, are you planning on releasing a .NET library? Or is it just C-style functions that can be called via P/Invoke?

ICB

Quote from: Webber1900 on July 19, 2011, 05:35:34 PM
Actually, getting around the 32x32 tiles issue can really spark up creativity, because when there are limitations, you probably would want to figure out a way around that issue, and when you do figure something out, that can make a creative and enjoyable experience for you and the player. Make since?

But it really depends on the effort and perseverance to make something really unique and original....

That kind of thing is relative to the mind of the individual. My creativity thrives when things are logical and work like I expect them to, whereas someone with a more abstract way of thinking might find the challenge of trying to get 32x32 blocks working in all the places they want them to stimulating to their creativity. That's great and it would be nice to be able to think like that, but I just want it to work and make sense.

So, back to the editor. If I'm understanding this, you're basically making an open source editor that anyone with the know-how can build a WYSIWYG editor around? I hope someone steps up and decides to make one for us (That works well).

MathOnNapkins

If you guys have ever heard of Quest for Calatia, a Z3 hack that's been in a several year long development cycle (like mine, I'm not hatin'), the author of that actually uses Microsoft Excel to manage the 32x32, or map32 tiles, as I call them. I don't know exactly how it works, but it's basically some really complicated spreadsheet to act as a supplement to editing in Hyrule Magic. That's resourceful though you really shouldn't have to do it that way, imo.

Quote from: ICB on July 19, 2011, 10:10:55 PM
So, back to the editor. If I'm understanding this, you're basically making an open source editor that anyone with the know-how can build a WYSIWYG editor around? I hope someone steps up and decides to make one for us.

Libraries are more abstract in that they're just reusable code that's designed to do something useful. In this case, it's designed to take a rom image and extract all the relevant data structures of the game. And then later when you want to save, reassemble it back together into a new rom image. But a library doesn't typically contain any visual elements. So no, it's not an open source editor, but it is a cross platform library that could be used to build editors on multiple platforms. As I am not a whiz at GUI programming, someone else will probably end up doing this step, though I would help if needed. Any editor I make on my own would probably be pretty clunky looking, but functional.

Quote from: ICB
(That works well)

I don't know about that ... might be difficult.  :grin:

ICB

Quote from: MathOnNapkins on July 20, 2011, 11:37:43 AM
If you guys have ever heard of Quest for Calatia, a Z3 hack that's been in a several year long development cycle (like mine, I'm not hatin'), the author of that actually uses Microsoft Excel to manage the 32x32, or map32 tiles, as I call them. I don't know exactly how it works, but it's basically some really complicated spreadsheet to act as a supplement to editing in Hyrule Magic. That's resourceful though you really shouldn't have to do it that way, imo.

Yeah. That's ridiculous. It should be much easier than that. No wonder it's taking him so long. :P

Quote from: MathOnNapkins on July 20, 2011, 11:37:43 AM
I don't know about that ... might be difficult.  :grin:

Difficult is also relative. There are some insanely talented programmers out there that blow my mind with the editors they come up with, and they work well. I'm sure if you get the word out on romhacking.net, we'll see a nice GUI pop up for Black Magic in no time flat.

MathOnNapkins

Quote from: snarfblam on July 19, 2011, 05:47:35 PM
It sounds like this library will be usable from C#. If this is the case, I'd be willing to pitch in.

MoN, are you planning on releasing a .NET library? Or is it just C-style functions that can be called via P/Invoke?

Well we already talked about this a bit on IRC, but what do you mean by .NET library? A class library (assembly)? Or something else? P/Invoke would be asinine and would hamper cross platformness with things like Mono, I think.

snarfblam

When we talked on IRC I got the impression that you didn't have anything going on the .NET side of things, but looking over the thread, it says you've got a WinForms test application going. A class library is what I had in mind.

When I say P/Invoke, I'm referring using [DllImport]s to call functions from any unmanaged DLL, not necessarily OS libraries. I don't know if the mechanics of calling unmanaged code are different on other platforms, but I wouldn't expect there to be an issue.


MathOnNapkins

Just got done filtering out the room-connecting staircase data so it can be more flexible.... and with that....

This is how I feel

Next thing to tackle are those things that connect different layers of the same room. Typically I call this "inter-bg" or "inter-pseudo-bg" staircases. This includes the ones in the Swamp Palace that can either be staircases you walk on or, if the proper flags are set, jump off points to dive in and out of water. The way they coded all that is fairly hairy, if you ask me. It would appear that you can only have one, maybe two distinct types of those in a room at a given time. It would be nice to get around that, if possible  :eyeroll:

mdtaUK

Quote from: MathOnNapkins on July 30, 2011, 01:03:01 AM
Just got done filtering out the room-connecting staircase data so it can be more flexible.... and with that....

This is how I feel

Next thing to tackle are those things that connect different layers of the same room. Typically I call this "inter-bg" or "inter-pseudo-bg" staircases. This includes the ones in the Swamp Palace that can either be staircases you walk on or, if the proper flags are set, jump off points to dive in and out of water. The way they coded all that is fairly hairy, if you ask me. It would appear that you can only have one, maybe two distinct types of those in a room at a given time. It would be nice to get around that, if possible  :eyeroll:

Thanks for telling me about this place Math...

One issue you may have when trying to have more than two levels/layers etc in a room, is the pallete and sprites.  The game has a slightly different pallete between the upper and lower levels to distinguish them.  Adding more layers will require more variation in tone so you may need to increase the pallete range or amount of sprite variations a room can use.