Alot of updates this time! I wanted to release something to show that progress is being made again. The entire ram map is defined, along with numerous other cleanups, fixups, etc.. Keep in mind that this is a pre-release. The batch files may contain bugs and such, and there is a lack of documentation. Enjoy guys!
As much as that is pretty awesome of a thing I'll have to remove the link for now seeing as it can in fact make a rom file.
I'd hope you made sure to nab the files before removing the link for purposes of study and/or education, no?
-------------------- I've become very grumpy these last few years, and have been biting my tongue here in SMWC's forums quite a bit. I just want to let you all know that if ever I come off as harsh, I still care about you all. You guys are great.
Well, one could try to create a rom annotation file format, which contains label names, comments and so on and which specifies if a certain location in the rom is either data or code, and if the latter, what the current processor flags would be. In the end, it would just contain the "layout" of the rom and no byte of it. A program could then be used to recreate an assembly file from a rom image and the annotation.
If anyone is interested, we could try to create such a file format and an corresponding program.
Another problem would be to create such an annoation file from this all.log (or any other). Maybe a custom assembler is needed for this.
-------------------- Your layout has been removed.
Leaving the legal implications (or lack thereof) aside for a moment, let me just say this is amazing work.
I don't think I'll be giving away top secret info when I say that the staff had also considered starting an SMW disassembly project at one point. It was to be a community effort that would lead up to, well, pretty much exactly this - and you pulled it off single-handedly in three months. Hats off to you.
This deserves a bucket of respect, and a resumption of the whole "are disassemblies allowed" discussion. Don't let the temporary removal discourage you; I'm sure every ASM person on here appreciates what you've done.
I'm worried that we might gunna have a lawsuits against us because since the game are Nintendo's property, the code can also be protected. And because the entire game is made up of codes, this "re-assembly" can be assembled to create the SMW rom easily could be illegal. I hope this is protected by fair use or if there is other limitations in the copyright law.
The reason why I'm not worried when the smwdisc/all.log first came out is because it isn't possible to re-assemble the code to create the rom, thus isn't even a rom (asar throws errors).
-------------------- Give thanks to RPG hacker for working on Asar.
As I believe I've said in the past, I don't mind links to or even hosting disassemblies.
Also who seriously cares? Honestly, I doubt even Nintendo would care if they knew that disassemblies for documentation purposes in hacking could be used to build ROMs from scratch, assuming they even knew it existed.
Looking at it this way, there are many rom sites that nintendo hasn't bothered to file for. Not too long ago they sent one site an infringement warning so they removed all nintendo roms. That was because the site had newer stuff like 3ds roms and wii roms. They don't necessarily bother with roms/src for the old stuff sold on the virtual console.
And to top it off, my source code came from all.log. They basically contain the same "copyrighted" set of instructions. Anyone without a rom can grab all.log and turn it into a rom. Just not as easily as my source...
Next update on the source code should be within a week. I have been working on some experimental macros and whatnot.
Well although this is easier to read than all.log, I actually recommend using all.log if your studying the code because most comments were removed from the source.
The purpose of this wasn't for study but rather to help asm developers. For my hack I wanted to rewrite the game, not just hack it. Having access to all the code gives you more than any utility can. Once I finish cleaning up the banks, I want to put it on github or the like so everyone can start contributing. A lot of code is a lot of work, but with a bunch of people we can turn this into an easily editable base for hackers/programmers.
I want to put it on github or the like so everyone can start contributing. A lot of code is a lot of work, but with a bunch of people we can turn this into an easily editable base for hackers/programmers.
Are you gunna a also release it here also?
-------------------- Give thanks to RPG hacker for working on Asar.
Github is just a tool that allows for easier collaborative work on code like that, galaxy probably didn't plan to 'release' it there, there's barely an audience for it there anyway.
-------------------- Your layout has been removed.
Github is just a tool that allows for easier collaborative work on code like that, galaxy probably didn't plan to 'release' it there, there's barely an audience for it there anyway.
Kinda reminds me of eitherpad used to support the all.log.
-------------------- Give thanks to RPG hacker for working on Asar.
I don't want to release it here until it's had more work done. Something like this works better on github anyway, because there is so much code that there will need to be constant updates, commentary, etc...
So I was thinking about converting the code to wla-dx instead. Yes or no? Wla has nice features that suit this better than asar. The only problem is I don't believe wla has arch for spc/super fx like asar does...
EDIT: Or better yet, even though this would be tough, what about converting the game to c? WDC finally sent me the link and I got the wdc tools. They seem pretty good, I can see the future now...
Code
void KillMario()
{
SpritesLocked=1;
PlayMusic(MARIO_DIED);
if(MarioStatus == STATUS_FROZEN)
{
MarioStatus++;
}
MarioAnim=ANIM_DEATH;
for(i=0; i<DeathTimer; i++)
{
if(i >= 60) break;
}
EndLevel(0, DEATH);
Return;
}
int Lava(int x, int y, PAL *col)
{
SetPalette(col);
GenerateTile(x, y);
if(MarioXPos == x || MarioYPos == Y)
{
KillMario();
}
Return 0;
}
Follow Us On