PLEASE DO NOT REPORT BUGS HERE!
by HarryPitfall » 01 Mar 2009, 02:43
Also, I found some bugs with the yasm itself, like stupid code generation about jumps :/ but is fine now...
I'll not post yet the package, since I'm thinking a way to integrate the yasm developmento on the editor...
ManalinkEx.dll => for hand made code, 2 mb of size, load at $1001000
ManalinkEh.dll => compiled by code, no size restriction, load at $2001000
I'm attaching just the macro and assembler file, to show how the things work...
The card coded is:
Nullify, Instant, 1WG
Remove target artifact or enchantment from the game.
So now, I'm accepting here what people thinks about this... If no one is using the manalinkex.dll, I'm really thinking in dropping it from magic.exe and works entirelly on this new way...
- The assembler source, with one card coded
- (1021 Bytes) Downloaded 104 times
by HarryPitfall » 01 Mar 2009, 04:34
1) Use only manalinkex.dll as a extra dll, so, same work as before... code, patch... using the editor.
2) Drop manalinkex.dll, and use only manalinkeh.dll, the new way to code, if this choice is made, I'll recode civic wayfinder using the yasm, with nice macros, and so on.
3) Use both, manalinkex.dll, with the editor, like most people already know how to work, AND, manalinkeh.dll (with some new features added to editor to support it), for 'programmers', that know how to work with it.
My vote is option 3, most people know how to use direct assembler and patch, and can contribute perfectly, and others, can code in yasm and compile (much like me... for example...)
by Snacko » 01 Mar 2009, 10:08
Also you can use local labels to use more descriptive names Ex:
- Code: Select all
je .Loop ; je Nullify.Loop
je .Loop ; same as je Swamp.Loop
Also I can feel a strong resentment toward naming things (however you're on a good way!, the readability of the Nullify has already greatly improved compared to the straight asm), but look it from the other way proper named variables / functions and some comments double as a documentation.
That also means that people who don't know the internals too well can't really code any cards at all.
The "lego" work everyone talks here isn't happening because there aren't really any building blocks currently available and in order to build working cards that don't share exact same code one must reverse engineer your card (which is most likely too hard for the "lego" people to start with).
by gmzombie » 01 Mar 2009, 10:26
http://home.comcast.net/~gmzombie/index.html for all my things to upload for now on.
by HarryPitfall » 01 Mar 2009, 13:20
A final version can use:
labels with the card name/shortname... to be more readable, and more macros to 'hide' all that pointer stuff...
by Snacko » 01 Mar 2009, 13:25
by HarryPitfall » 01 Mar 2009, 19:07
Look how hard is make the similar cards... (shocklands, signets and karoos), using macros...
I'll wait sometime, to see the releases and so on, but i'm really want to used both dll's on magic.exe... some advanced users can code cards on yasm...
- (1.41 KiB) Downloaded 66 times
by Snacko » 01 Mar 2009, 20:40
- Code: Select all
- Code: Select all
%define TapAndAddOneMana 0x47B6C0 ; tapAndAddOneMana (PlayerID, CardID, EventCode, ManaColor)
Also if the function returns a value maybe something like eax tapAndAddOneMana or [esi] tapAndAddOneMana if it's a pointer to a structure in esi.
Those comments make the code more readable and help new people to jump in, as they can read the source and understand why and what you are doing cmp [esi+0x37], 0x20010 vs cmp CardStatus, CardTapped | CardHasSummoningSickness. I would take the second one any day and if you need to know exactly what values those names stand for, all you need to do is check their definition.
by HarryPitfall » 01 Mar 2009, 20:58
So long, and thanks for all the fish... I'll not try anything more with the dll... is free for anyone trying...
by Snacko » 01 Mar 2009, 21:02
I can feel a xenophobic attitude, I'm not here to depreciate anyone's effort but to offer advices how to improve it. If I'm not welcomed here I won't post anymore and leave you to do things you did before.
by Bog Wraith » 02 Mar 2009, 04:47
I think that there might be a factor here that Harry's first language is not english and that his writings can be misinterpreted because of this fact.
Look guys, the best thing about this whole thing is the availability of such talented and diverse people as yourselves being able to "compare notes" and share your knowledge with one another. As well as for you getting more people involved in learning to code for this project with such things as for example, jatill's tutorials.
I can not stress enough how important that is!
So, if there is any ego that is interfering with this, I humbly ask all of you guys to put it aside and do what is best for this project. Each one of you could, and I'm convinced, will be keys to breaking this game wide open and making it almost a totally new game!
This back and forth between all of you guys is one of the main reasons I want to make this forum the new and permanent home for ManaLink.
So please, be patient with one another and try to be as diplomatic as possible.
I love this game and I know many others do too. Not bad for a computer game that is over 12 years old!
Lets all work together to make it all it can be and give it a great future for years to come.
My mate did meet an early grave
'Twas nothing left for us to save
In the peat-filled bogs of Cannelbrae.
by 0rion79 » 03 Mar 2009, 14:42
I strongly agree... and I also find Harry's tools extremely useful (also because I have used the new .dll to store cards).
So hope that from this matter may arise only new opportunities to increase the game even more, not only from the viewpoint of the card database, but also about in-game options (maybe in the future).
All the best!
Who is online
Users browsing this forum: No registered users and 3 guests