Register - Login
Views: 87360874
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - JCS - Stats - Latest Posts - Color Chart - Smilies
11-19-17 11:30:03 PM

Jul - Game Research/Hacking/Modding - Wily's Toolbox - Mega Man: Dr. Wily's Revenge Level Editor New poll - New thread - New reply
Pages: 1 2Next newer thread | Next older thread
xdaniel
660
Level: 51


Posts: 109/669
EXP: 989885
For next: 24053

Since: 12-04-08
From: Germany

Since last post: 11 days
Last activity: 6 hours

Posted on 01-16-11 02:00:45 PM (last edited by xdaniel at 01-20-11 05:27 PM) Link | Quote
Wily's Toolbox (current version: v0.5.1)

Download: http://magicstone.de/dzd/random/wily/WilysToolbox-v051.rar

See the (now included) Readme for changes since previous version!

Usage: Start the program, load a ROM and edit away! Levels are selected via the menu, toolbar or F-keys, segments (each level has a few, basically stretching between the respawn points - you'll see when you use the program) and individual rooms in those via menu or F-keys.

Switch the editing mode to either edit the map or the objects; "drawing" maps works like in any paint program, select a block to draw either from the palette on the right, or by right-clicking on the map itself, then draw that onto the map by using the left mouse button. Objects are selected and dragged around by using the left button; a panel that allows changing of which object is selected, and that object's type and variable appears over the block palette when in object mode.

Display of collision/solidity can be switched on and off, and while technically the game appears to set what which collision type does per level, blue generally marks open space, green are solid blocks, yellow half-height solid blocks (meaning if there's empty space next to Mega Man, and a full-solid block above, you can't move there, if the block above is half-height, you can) and red insta-kill blocks (= spikes, which don't work in Cutman's stage, and are the reason why I believe this is level-dependant).

The game properties window, accessible by menu or toolbar, allows changing of both object and weapon properties; like an enemy's health, or a weapon's inflicted damage. Quite a bit of data there is still not yet fully understood, like of course the "unknown"s and "flags" - the latter determine, in the case of an object, ex. if it's soild. Also I don't yet know which weapon is which, besides the very first, which is the Mega Buster, so you'll need to experiment to see if you're editing the Rolling Cutter or whatever else. The last one might be the Time Stopper, seeing how it's damage is set to 0.

That's all there is in terms of documentation for now, so don't bother trying the "documentation" menu entry under "Help" - that's not written yet, sorry.

Any feedback, any questions, etc. are welcome!

(Old post below...)


From the screenshots thread to its own, from Mega Man dancing with Cutting Wheels to a demonstration of the editor:



First release coming in a few days; maybe with one or two more features than what's seen in the video, maybe not.
tatanga

Level: 15


Posts: 18/39
EXP: 13291
For next: 3093

Since: 09-24-09


Since last post: 5.0 years
Last activity: 4.0 years

Posted on 01-16-11 04:38:02 PM Link | Quote
This is looking amazing, major props man. Looking forward to the first release; I'll be sure and take it for a test run immediately!
Nicole

Disk-kun
Level: 138


Posts: 2175/6394
EXP: 31472324
For next: 190657

Since: 07-06-07
From: Boston, MA

Since last post: 29 days
Last activity: 1 day

Posted on 01-16-11 04:40:43 PM Link | Quote
I was recently thinking about making an MM1 hack- now I might hack this game instead to try out the editor... (and fewer levels ) This was one of my favorite MM games for some reason.
Darkdata
Ruins!? ♥
Level: 98


Posts: 2053/2889
EXP: 9561299
For next: 93054

Since: 07-04-07


Since last post: 99 days
Last activity: 36 days

Posted on 01-16-11 06:19:48 PM Link | Quote


The game is fun, but at some points mean.

Also, I wonder if I can cobble a way to skip the "rebattles"oh, there are the other 5 robot masters.... Mmhm...
xdaniel
660
Level: 51


Posts: 111/669
EXP: 989885
For next: 24053

Since: 12-04-08
From: Germany

Since last post: 11 days
Last activity: 6 hours

Posted on 01-17-11 05:09:11 PM Link | Quote
Been working less on figuring out more of the game's data, and more on improving the user interface. The main thing I've done in that regard is localization of the program into different languages - now supporting English, German and Japanese:




The Japanese is probably awkwardly translated (<.<), but I can't help it for the moment. Also, as the title bar in those shots implies, the program's now compatible with all three regional versions of the game, the Japanese, US and European versions.
Keitaro

Fire Snake
LOVELY ARRANGEMENT. VOLCANO BAKEMEAT
Level: 66


Posts: 698/1190
EXP: 2378874
For next: 82977

Since: 09-09-08
From: California

Since last post: 74 days
Last activity: 12 days

Posted on 01-17-11 07:30:45 PM Link | Quote
Yeah, I'm pretty sure Japanese help menus tend to use ヘルプ though I may be mistaken as I really don't use programs in Japanese if I don't have to
xdaniel
660
Level: 51


Posts: 115/669
EXP: 989885
For next: 24053

Since: 12-04-08
From: Germany

Since last post: 11 days
Last activity: 6 hours

Posted on 01-19-11 01:31:53 PM Link | Quote
First build released; see first post for download link, notes, etc.!
Darkdata
Ruins!? ♥
Level: 98


Posts: 2068/2889
EXP: 9561299
For next: 93054

Since: 07-04-07


Since last post: 99 days
Last activity: 36 days

Posted on 01-19-11 03:57:57 PM (last edited by Darkdata at 01-19-11 04:05 PM) Link | Quote
Yeah, I think there is level dependent settings, because the ice level has slippery ground. Maybe there is a header for each stage somewhere in there?

Anyway, going to start playing around with this.

Edit: Small bug, changing an object will not turn on saving. Only if you edit the background map.
xdaniel
660
Level: 51


Posts: 116/669
EXP: 989885
For next: 24053

Since: 12-04-08
From: Germany

Since last post: 11 days
Last activity: 6 hours

Posted on 01-19-11 04:13:49 PM Link | Quote
Each level segment header has a pointer to an ASM function that appears to control such level-specific properties; I'm calling it the "Event ASM Pointer". I haven't looked into them too deeply yet, but ex. the conveyor belts in Cutman's stage rely on this function to work. If it's repointed to a simple return opcode, those stop functioning, the BG palette setup reverts to default, etc., so I guess the slippery ice is done in the same way.

The pointer for Cutman's first level segment is at 0x1401E in the ROM, pointing to 0x14171, btw. Gotta add a header editor of some kind in the next release, probably with a warning that it might break the level if used incorrectly.

Also, bug noted; saving does get enabled once you click on the object again, tho. Will be fixed in the next release
GoldS
Member
Level: 38


Posts: 85/360
EXP: 361861
For next: 8586

Since: 03-15-10


Since last post: 3 days
Last activity: 2 hours

Posted on 01-19-11 04:23:03 PM Link | Quote
Nice work. Here are the names of some objects marked as "Unknown":
1B: Pipi Egg
1C: Pipi Baby
34: Cutting Wheel (From final boss)
35: Final Boss (Wily Machine World #1)
36: Flashman - Time Stopper object
xdaniel
660
Level: 51


Posts: 117/669
EXP: 989885
For next: 24053

Since: 12-04-08
From: Germany

Since last post: 11 days
Last activity: 6 hours

Posted on 01-19-11 07:03:52 PM Link | Quote
GoldS: Thanks, added them

Now about that "Event ASM" function I've mentioned. I've been looking at that for Cutman's stage, disassembled and interpreted it to the best of my knowledge.

Simplified, it takes the ID of the block that's currently beneath Mega Man from 0xD8C7 (copied there elsewhere in the code before) and compares that to some fixed values, those of the conveyor belt blocks - if it's either 0x10 or 0x11, it subtracts 176 from Mega Man's current X velocity, if it's either 0x12 or 0x13, it adds 176. For the palette cycling in the stage, it increases a counter at 0xDCD0 each time this function is run, and depending on the counter's current value, the BG palette is set. That's determined using a bunch of ANDs used on the counter value, so I'm not yet sure on the requirements. Finally that BG palette value is loaded to 0xDF9C, from where it's, at some point outside of this function, copied to the I/O register 0xFF47.

There's also a bit of code that makes the function return prematurely - after the conveyor belt code, but before the color-cycling effect - when the result of ORing the value at 0xDFB1 with itself is non-zero (or something, not sure). Setting 0xDFB1 to certain values somehow stops certain parts of the game, excluding music and the pause menu - 0x01 stops everything besides Mega Man's movement, 0x04 stops everything besides his Buster, 0x05 stops EVERYTHING, 0x08 stops everything besides Mega Man overall... debugging-related, maybe? Just some status flag? Dunno.
Darkdata
Ruins!? ♥
Level: 98


Posts: 2076/2889
EXP: 9561299
For next: 93054

Since: 07-04-07


Since last post: 99 days
Last activity: 36 days

Posted on 01-19-11 09:58:44 PM Link | Quote
Cutscene Flags Maybe?



Also, what's weird in cutman stage, some enemies will randomly warp position to the last part of the first segment no matter where you put them. Just try moving some of the enemies from near the end to near the start, some of them will not leave that last screen.
xdaniel
660
Level: 51


Posts: 118/669
EXP: 989885
For next: 24053

Since: 12-04-08
From: Germany

Since last post: 11 days
Last activity: 6 hours

Posted on 01-19-11 10:18:34 PM (last edited by xdaniel at 01-19-11 10:23 PM) Link | Quote
You're right about the enemy placement problems... It seems to be a limitation of the game, in that the objects should best be sorted by X position (object 0 is leftmost in level, then object 1 next, etc.), otherwise strange bugs occur. It seems to process them from 0 to XX, and only this way - ex. if you have, left to right, objects 0, 2 and 1 in the level, object 0 will appear like normal, object 2 however will only be acknowledged and processed once object 1 scrolls onto the screen. So you might stand where an enemy is supposed to be, you go a few pixels further right, and suddenly you're standing right inside an enemy, getting damaged.

I'll look into coding up some logic to take care of this sorting automatically, telling the user that the internal object order is incorrect (or somesuch) and that it will sort them properly before saving.

EDIT:


(don't mind the conveyor belts on the left, been messing with them in this ROM)
Anthony
Member
Level: 36


Posts: 169/310
EXP: 304415
For next: 3695

Since: 05-15-09
From: City of Mississauga

Since last post: 6.0 years
Last activity: 6.0 years

Posted on 01-19-11 10:19:33 PM Link | Quote
Thank you for the editor, that was pretty fast!
Gonna go make some levels right now! o.o
xdaniel
660
Level: 51


Posts: 119/669
EXP: 989885
For next: 24053

Since: 12-04-08
From: Germany

Since last post: 11 days
Last activity: 6 hours

Posted on 01-20-11 05:28:14 PM Link | Quote
New release v0.5.1 posted; this fixes a serious bug related to object editing, which could result in damaged exit data. Link in the first post!
Darkdata
Ruins!? ♥
Level: 98


Posts: 2081/2889
EXP: 9561299
For next: 93054

Since: 07-04-07


Since last post: 99 days
Last activity: 36 days

Posted on 01-22-11 09:17:41 PM Link | Quote
While editing I sometimes get the error

Value can not be -1
STOP CONTINUE etc.

I'll grab the details next time it pops up. But no corruption seems to happen.
xdaniel
660
Level: 51


Posts: 122/669
EXP: 989885
For next: 24053

Since: 12-04-08
From: Germany

Since last post: 11 days
Last activity: 6 hours

Posted on 01-23-11 08:09:34 PM (last edited by xdaniel at 01-26-11 07:01 PM) Link | Quote
I think I know how and where that happens - rooms without objects, with the code trying to select object -1 out of 0, which is impossible -, but post the details anyway, as I'm not 100% sure if I'm right...

And status update time:



Here's what the disabled menu entry "Show structure" is supposed to show once it's done - a representation of the current level in tree form. It's not yet showing objects, doesn't allow editing (not sure if I'll even implement that) and has a few bugs, so it's still a while off.

EDIT:



Block editor is nearly done, although the UI isn't exactly pretty and it still has some visual bugs.
AlexAR
Member
Level: 37


Posts: 203/306
EXP: 323079
For next: 15174

Since: 11-30-07


Since last post: 4.0 years
Last activity: 4.0 years

Posted on 11-12-11 03:25:30 PM Link | Quote
Ran into a problem when running this. I extract your rar file, start up the program, open up my rom, move one block, try to save and...





Its not like I have the program or the rom in a secure folders or anything. What could be the problem? Want me to post the detailed error log?
xdaniel
660
Level: 51


Posts: 332/669
EXP: 989885
For next: 24053

Since: 12-04-08
From: Germany

Since last post: 11 days
Last activity: 6 hours

Posted on 11-12-11 04:40:42 PM Link | Quote
First thing that comes to mind: Is the ROM really only opened in Wily's Toolbox, and not additionally in a hex editor or anything else? Otherwise, maybe the error log will help.
AlexAR
Member
Level: 37


Posts: 204/306
EXP: 323079
For next: 15174

Since: 11-30-07


Since last post: 4.0 years
Last activity: 4.0 years

Posted on 11-12-11 05:11:46 PM Link | Quote
hmm. Wells that's strange. The rom file was for some reason marked as read only. Certainly I didn't do that. Had been working fine for days. Ugh..I hope windows 7 isn't acting up again like Vista did. I'l post some screens of my MMWR hack soon enough.

Anyways, all good now. So any new developments for the program?
Pages: 1 2Next newer thread | Next older thread
Jul - Game Research/Hacking/Modding - Wily's Toolbox - Mega Man: Dr. Wily's Revenge Level Editor New poll - New thread - New reply




Rusted Logic

Acmlmboard - commit 2f1bc75 [2017-08-27]
©2000-2017 Acmlm, Xkeeper, Inuyasha, et al.

29 database queries, 1 query cache hits.
Query execution time: 0.157407 seconds
Script execution time: 0.017791 seconds
Total render time: 0.175197 seconds