Register - Login
Views: 99795387
Main - Memberlist - Active users - Calendar - Wiki - IRC Chat - Online users
Ranks - Rules/FAQ - Stats - Latest Posts - Color Chart - Smilies
05-03-22 05:26:25 AM
Jul - General Game/ROM Hacking - Advance Wars 2 Nightmare2 Modules. New poll - New thread - New reply
Next newer thread | Next older thread
Xenesis

Roy Koopa
Actually a Doctor
Level: 101


Posts: 503/2732
EXP: 10486598
For next: 231077

Since: 07-28-07

Pronouns: She/Her
From: Orange Star's Retirement Villa

Since last post: 9 days
Last activity: 19 hours

Posted on 12-07-09 10:38:25 PM Link | Quote
So I put together some AW2 U NM2 Modules.

The link to the nm2 modules is here

I'll post here again if they're updated, but they were mainly for my own use...but thought they might be appreciated for some bored people.

The rest is just the readme copy-paste.

What is Nightmare2?
It's an application designed by Xeld to allow for making easy data editors and the like. You can find the official download where it's always updated at http://dl.getdropbox.com/u/336940/Nightmare%202.7z

You need the Java Runtime environment (www.java.com) to run the Nightmare2.jar file, but it should run on any platform that supports Java such as Windows or Mac OS. It can be a bit moody on non-windows systems though.

What do Each of the Modules Do?
aw2cmap - Edits the details of the campaign map headers.
aw2co - Edits various statistics of the COs.
aw2costat - Edits the statistics of a CO's units with the standard stat sets.
aw2costatcustom - This is for using the pointerhackultra patch (see below) to edit each CO's units individually.
aw2map - Edit details of the map header for every map in the game.
aw2misc - Edits a few random details of CO Powers and the game. It's a tad incomplete but will be updated.
aw2unit - Edits unit details

What's all that stuff in the goodies folder?
There's two patches for the ROM and a copy of the most excellent IPS patching program Lunar IPS.
Here's what they do:
Lunar IPS - Applies and creates IPS patches (saving and applying copies of IPS patches which are files with edits)
cleaner.ips - Got an Aw2 rom with one of those dodgy intros? This will remove it.
pointerhackultra.ips - A custom hack I made to allow fine control over CO stats. Apply this and use the costatcustom module to edit each unit's stats individually for each CO rather on a per-category basis.
Hectamatatortron
Member
Level: 35


Posts: 180/232
EXP: 258215
For next: 21721

Since: 09-19-07


Since last post: 7.2 years
Last activity: 5.3 years

Posted on 12-07-09 11:35:17 PM Link | Quote
How do you like NM2? I've been meaning to fix a few quirks with it, refactor the code into something cleaner and perhaps add a feature to the already much more improved pop up text displayed when mousing over an element that reports the offset of that element within the struct being edited. The current information displayed is the address, bit position, length in bits and whether the input method is in base 16. I've noticed several times that I've been interested in the offset of the data from the beginning of the struct, however, and the offset of the struct within the array would be nice to know at any given point, as well. One of the reasons NM2 is superior to the original is because it gives the user more information, and as per someone's suggestion, that information is easily ignored if it's not desired to avoid cluttering your view.

Yep, if I standardized some of NM2's features and improved it elsewhere, it'd be a pretty damn sweet app. At the moment it's nice, but not "oh damn that is sweet" nice. Except for the pointer dereferencing feature. THAT was a sweet idea.

____________________
Xenesis

Roy Koopa
Actually a Doctor
Level: 101


Posts: 504/2732
EXP: 10486598
For next: 231077

Since: 07-28-07

Pronouns: She/Her
From: Orange Star's Retirement Villa

Since last post: 9 days
Last activity: 19 hours

Posted on 12-08-09 12:47:53 AM Link | Quote
I quite like Nightmare 2, it allows me to quickly put together things to edit tables and the like which is straightforward enough. I haven't explored too many of the advanced features, though. Didn't know about the mouse-over information display, that's rather neat.

Speaking of bits, one feature which would be really nice for bitmasks: (This is a screenie from one of the EV Nova editing tools, although pretty well all of them handle bitmasks lke this) - it would be a lot nicer than splitting the bitmasks out into several on/off bits, especially if you could label that thing^

Actually, on/off checkbox support as a whole would be amazing.

The other thing is that it's incredibly finnicky when working within OSX, but is practically flawless in Windows. But then, the Java implementation on OSX is irritating at the best of times.

Certainly far superior to doing things by hand. :p
Hectamatatortron
Member
Level: 35


Posts: 181/232
EXP: 258215
For next: 21721

Since: 09-19-07


Since last post: 7.2 years
Last activity: 5.3 years

Posted on 12-08-09 01:51:44 AM Link | Quote
Well it sounds like you're not getting the full force of the improvements NM 2 provides over the original, because the original greatly simplifies organizing data to begin with.

2 is cross platform, is more informative and has nifty little extra features that I felt Nightmare lacked during my experience with acking ROHMs.

I don't quite get what you're saying about checkbox support. Do you mean that entries specified with a length of 1 bit should become checkboxes? Or that I should add support for a checkbox entry type that can be of variable length and will group the checkboxes like so?

Also, I should redo the comment format for NM 2 to make it so only lines with two # symbols are comments to NM 2. This way you can have comments still, but you can also comment out NM 2 only things such that the module will load in the original NM, though of course it would be unable to take advantage of the information that NM 2's extra features can. I really wanted the module format for the original NM to become retroactively forward compatible so that people who are too "bleh" to upgrade can still get SOME things done. I might even make it so that a certain NM style comment will mark an area as NM only, such that it won't appear in NM 2, so you can add an alternative editing method for NM users.

I'm starting to get NM ideas again. I got a bunch one day, started coding NM 2, and forgot most of them by the time I got to where NM 2 is now. I had wished I had recorded the ideas.

At least now they're in this post. Hopefully I can get some of this stuff done over Christmas break.

____________________
Xenesis

Roy Koopa
Actually a Doctor
Level: 101


Posts: 505/2732
EXP: 10486598
For next: 231077

Since: 07-28-07

Pronouns: She/Her
From: Orange Star's Retirement Villa

Since last post: 9 days
Last activity: 19 hours

Posted on 12-08-09 03:45:30 AM Link | Quote

Well it sounds like you're not getting the full force of the improvements NM 2 provides over the original, because the original greatly simplifies organizing data to begin with.

This is likely true, I never used Nightmare 1.


2 is cross platform, is more informative and has nifty little extra features that I felt Nightmare lacked during my experience with acking ROHMs.

Yeah, the cross platform is neat although like I said it still has some issues running under OSX. :/


I don't quite get what you're saying about checkbox support. Do you mean that entries specified with a length of 1 bit should become checkboxes? Or that I should add support for a checkbox entry type that can be of variable length and will group the checkboxes like so?

Support for a few would be nice, really. Something like:

One for setting individual bits
Set bit 0x40
(offset)
(bit) blah
(code blah)
NULL

0 = [ ] or 1 = [x]

And one say:

Disable Intro Sequence
(offset)
(halfword blah)
(code blah)
On Off.txt

On Off.txt
0x3801 = 0
0x0000 = 1

Which results in 0x3801 = [ ] or 0x0000 = [x] as the editor checkbox option

Finally, one for bitmasks

Bitmask Example (Buildable)
(offset)
(byte blah)
(code blah)
buildable.txt

buildable.txt
0x01 Base
0x02 Helipad
0x04 Headquarters
0x20 Port
0x40 Airport
0x80 Mike's Bathroom


Would result in something like:

Buildable Locations
Base [ ]
Helipad [X]
Headquarters [ ]
Port [ ]
Airport [X]
Mike's Bathroom [ ]

And say I checked those two, it'd set the appropriate bits after the checkboxes were set. The code for individual bits/bytes could quite easily be done with this too, I imagine.

As an aside: Is it possible to feed Nightmare 2 a pointer table and get it to edit what's at the other side of those pointers? Say I feed it the table of text string pointers and then can edit each text string individually/repoint the table as necessary?
Hectamatatortron
Member
Level: 35


Posts: 182/232
EXP: 258215
For next: 21721

Since: 09-19-07


Since last post: 7.2 years
Last activity: 5.3 years

Posted on 12-08-09 09:00:38 PM Link | Quote
I might look into adding support for the other stuff, but that off = 0, on = blah thing is kind of silly. You can represent that with a drop down that has 0 and 0x3801 as its only default options and hope the user isn't dumb enough to try other values. Making it able to be a checkbox would make it easier to set and unset that value, but that's an odd thing to represent in an application that's supposed to both accurately represent the data types and not limit the user from editing a particular bit due to something silly like the dropdown not accepting values that aren't listed (which the old Nightmare did, and it annoyed the hell out of me).

If anything I should add support to one of the control types for converting to and from various floating point formats in the event someone wants to represent an unsupported primitive in their module.

____________________
Xenesis

Roy Koopa
Actually a Doctor
Level: 101


Posts: 508/2732
EXP: 10486598
For next: 231077

Since: 07-28-07

Pronouns: She/Her
From: Orange Star's Retirement Villa

Since last post: 9 days
Last activity: 19 hours

Posted on 12-08-09 10:22:57 PM Link | Quote
That's what I'm doing at present...but it's just not tidy.
Hectamatatortron
Member
Level: 35


Posts: 184/232
EXP: 258215
For next: 21721

Since: 09-19-07


Since last post: 7.2 years
Last activity: 5.3 years

Posted on 12-09-09 03:41:49 AM Link | Quote
You're modifying NM 2? If you're worried about keeping it "tidy", I wouldn't. The whole thing needs refactoring anyway.

____________________
Xenesis

Roy Koopa
Actually a Doctor
Level: 101


Posts: 517/2732
EXP: 10486598
For next: 231077

Since: 07-28-07

Pronouns: She/Her
From: Orange Star's Retirement Villa

Since last post: 9 days
Last activity: 19 hours

Posted on 12-09-09 03:43:33 AM Link | Quote
No no, I'm using the method you described for on/off.

I wouldn't bother with modifications...I can't program anything higher than assembly for beans.
Rena
I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings
Level: 135


Posts: 2733/5390
EXP: 29075373
For next: 259632

Since: 07-22-07

Pronouns: he/him/whatever
From: RSP Segment 6

Since last post: 342 days
Last activity: 342 days

Posted on 12-13-09 09:50:05 AM Link | Quote
Post #2733 - 12-13-09 04:50:05 AM
Is there any reason to maintain backward compatibility with old versions?

If I were making this I'd probably just hack up a simple API for various widgets and common hacking/file operations for Lua scripts. Damn those are convenient.

____________________
why not?
Hectamatatortron
Member
Level: 35


Posts: 186/232
EXP: 258215
For next: 21721

Since: 09-19-07


Since last post: 7.2 years
Last activity: 5.3 years

Posted on 12-13-09 06:51:15 PM Link | Quote
I shouldn't, but I do it anyway for all the fools who grab updated modules and try to use them with the original version.

____________________
Rena
I had one (1) message in Discord deleted and proceeded to make a huge, huge mess about how it was a violation of free speech and how moderators are supposed to be spam janitors and nobody should have the right to tell me not to talk about school shootings
Level: 135


Posts: 2750/5390
EXP: 29075373
For next: 259632

Since: 07-22-07

Pronouns: he/him/whatever
From: RSP Segment 6

Since last post: 342 days
Last activity: 342 days

Posted on 12-19-09 01:33:43 AM Link | Quote
Post #2750 - 12-18-09 08:33:43 PM
Bah. Why support fools? What are you, Microsoft?

____________________
why not?
Next newer thread | Next older thread
Jul - General Game/ROM Hacking - Advance Wars 2 Nightmare2 Modules. New poll - New thread - New reply


Rusted Logic

Acmlmboard - commit 47be4dc [2021-08-23]
©2000-2022 Acmlm, Xkeeper, Kaito Sinclaire, et al.

29 database queries, 8 query cache hits.
Query execution time: 0.081337 seconds
Script execution time: 0.020152 seconds
Total render time: 0.101489 seconds