Register | Login
Views: 19364387
Main | Memberlist | Active users | ACS | Commons | Calendar | Online users
Ranks | FAQ | Color Chart | Photo album | IRC Chat
11-02-05 12:59 PM
1 user currently in Rom Hacking: hukka | 2 guests
Acmlm's Board - I2 Archive - Rom Hacking - Has anyone even considered creating an editor for Mario RPG? | |
Pages: 1 2 3 4 5 6Add to favorites | "RSS" Feed | Next newer thread | Next older thread
User Post
giangurgolo

Level: 10

Posts: 23/42
EXP: 3346
For next: 1068

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 07-21-05 01:23 AM Link | Quote
I don't know what I contrived that information from, but those offsets have nothing to do with the death animation...they're parts of Bowyer's and Machine Made Axem Black's battle scripts. For whatever reason I had the idea that they were somehow connected to it, which they actually aren't in any way, and put it in the offset list.

Ignore it. I believe I did at one point find out how to effect the coin animation after killing a monster, but I didn't record the info so I'd have to search through another trace log to find it. I never did find the code for the fade out and 'coin fountain' effect.
Mattrizzle

Paragoomba
Level: 14

Posts: 27/75
EXP: 12123
For next: 948

Since: 11-19-04
From: Louisville, Kentucky, USA

Since last post: 3 days
Last activity: 5 hours
Posted on 07-22-05 05:50 AM Link | Quote
I found what determines whether to generate no coin/small coin/large coin sprite. It's in the entrance style byte. The bits seem to be like this:
bits 0-3 determine the entrance animation

But this is what differs from the info previously documented:
bits 4-5 determine height
in binary:
xx00xxxx: up 0 px from origin
xx01xxxx: up 16 px from origin
xx10xxxx: up 32 px from origin
xx11xxxx: up 48 px from origin

bits 6-7 determine what comes from an enemy when defeated
00xxxxxx: nothing
01xxxxxx: small coin
10xxxxxx: large coin
11xxxxxx: ""
giangurgolo

Level: 10

Posts: 24/42
EXP: 3346
For next: 1068

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 07-22-05 07:11 AM Link | Quote
haha yeah, I just found that out too

Just recorded that info into nfo_stats.txt. The trace log showed the entrance style bits being ROL'd and I noticed the RAM address was the coin animation value, so I realized the correlation.

Also, I've added some new documentation for the special attacks and monster stats, since there were a few errors there.

The "special defense" byte (byte 11) is more appropriately the special attribute...if bit 0 is set, the enemy doesn't die until the battle script manually removes it from battle.

This is for the bosses, which don't fade out/die until the attacker returns to their battle position.

I've also found the pointers for the death animation assignment...check out the ffsets.txt>offsets list for the location (350202 - 350401). These also affect the floating status of the monster, and each floating style/death animation style combination has a different pointer (there are a couple of different floating styles).

I've nearly deciphered every battle command in the battle scripts except one or two (FC 10 ?? ?? for example) so here it is.


(edited by giangurgolo on 07-21-05 10:14 PM)
(edited by giangurgolo on 07-21-05 10:14 PM)
(edited by giangurgolo on 07-21-05 10:15 PM)
(edited by giangurgolo on 07-21-05 10:15 PM)
(edited by giangurgolo on 07-21-05 10:16 PM)
(edited by giangurgolo on 07-21-05 10:23 PM)
(edited by giangurgolo on 07-21-05 10:24 PM)
(edited by giangurgolo on 07-21-05 10:26 PM)
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 5969/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 07-23-05 12:24 AM Link | Quote
Nice. How does the Johnny battle work if Mario is dead, though? He won't challenge you in that case but I don't see anything in the script for that.
giangurgolo

Level: 10

Posts: 25/42
EXP: 3346
For next: 1068

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 07-23-05 01:02 AM Link | Quote
FC 10 00 ** is the command that checks if a target ** is alive...since Mario's character byte is 00 here

if you change it to, say, FC 10 00 02 it checks if Bowser is alive

if he is, then it goes ahead with the one-on-one script even if Mario is dead...however, Mario is uncontrollable afterwards since he is dead, as there aren't any commands in the script and it subsequently glitches

just figured this out BTW

EDIT: I think I've pretty much decoded every battle script function except two: FC 08 ** ** and FC 13 ** ** which are only used by like two monsters I think Shy Ranger and Bahamutt, and a dummied monster which is the little brown bird from Star Egg or something

some additions, mostly just bytes for different targets (check the target: ** function) and a few modifications for accuracy, have been added to the battle script doc

other than those two monster-exclusive functions I mentioned above, pretty much every single function is documented and anyone can create their own convoluted battle script with it

EDIT: the battle script documentation is fully complete! those last two functions were formation checks and status ailment checks; also found another unused function which can check the HP of ANY target (including characters)...limitation is that it only uses multiples of 16, since one extra byte is needed for targetting and there is only one byte available for HP

here is the list of script functions, here is an MS Word doc with every single monster script, with all functions tagged (in html) and here is the full archive of every doc I've created for the SMRPG ROM


(edited by giangurgolo on 07-24-05 02:41 AM)
(edited by giangurgolo on 07-28-05 11:48 AM)
(edited by giangurgolo on 07-28-05 11:48 AM)
(edited by giangurgolo on 07-28-05 07:53 PM)
aioria1981

Ninji
Level: 20

Posts: 3/234
EXP: 36701
For next: 5738

Since: 07-20-05
From: Viña del Mar, Chile

Since last post: 5 days
Last activity: 5 days
Posted on 08-02-05 08:06 AM Link | Quote
I was playing changing values on hamer bro's battle scripts, for instance, instead of doing normal attacks ($393F94 string E0600303, hammer time/battle/battle) I was planning for them to do spells (string F0626262 sledge/sledge/sledge), but instead of doing the attack, appears a message saying "Monster's FP is gone", but I've modified monsters stats, changing FP at max (255) in both instances of hammer bros (one in $390ba6 and $390c26, well i used the program "pipes" for that from zophar's). I didn't tried changing values at $393D68 for the other hammer bro, since there wasn't any command's for normal attacks and spells
So...is there any address or value that defines if a monster uses magic? (i suppose it may be that, because the fp for them is maxed)

Thanks for any replies, and keep up the good work!
giangurgolo

Level: 10

Posts: 28/42
EXP: 3346
For next: 1068

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 08-10-05 05:23 AM Link | Quote
I've found the event data:

1FD0A4   Bowser's Keep, Area 2, encounter Terrapins blocking door

D8 18
FF D0
A0 18
30 tells Mario to stop, and execute Terrapin animation

==Terrapin on left==
-convulsion-
14 20 08
40 02 animation pointer for convulsion
F0 1F byte 2, upper bits: number of times to execute animation
0 - once, 1 - twice, 2 - thrice, etc.
08 48 00 byte 1: do not use animation?
byte 2: sprite pointer?
byte 3: animation sprite to use when waiting
F0 0F amount of time to wait

-walk foward-
10 81 08
40 00 animation pointer for walking
63 18 tells Terrapin to walk foward; byte 2 is distance to walk
08 48 00 stationary sprite
F0 0F wait a little

-swing arm + sound-
10 80
FD 9E 65 SOUND: swinging arm + hit
08 10 04 use arm swing animation sprites
F0 3F swing arm 2 times

==Terrapin on right== (code is identical to other Terrapin, save for bytes 1-3 & no sound)
16 1D 08
40 02
F0 1F
08 48 00
F0 0F

10 81 08
40 00
63 18
08 48 00
F0 0F

-swing arm, NO sound-
10 80
08 10 04
F0 3F

--------------
F0 5F
16 jumps to battle engagement event

FE ends script


Here's the event field mapping code:

20E40C    Bowser's Keep, Area 2

0B C2 points to area 'enter area event' data
09 C1 points to event data at $1FD0A4
89 insert event block (single horizontal row of invisible planes)
8E X coordinate
46 Y coordinate
E0 end


Bank $20Exxx is full of pointers and their data which is mostly comprised of music assignments (only if the music changes...if it remains as the current SPC, then you must add your own code to change it) and I'm guessing event block mapping.

As you can see it's pretty simple...second byte pair points to the special event (in this case, encountering the two Terrapin at the door), and maps the coordinates. It seems the event block field is defaulted to a long single row of invisible horizontal planes that span across a small distance.

Unfortunately, it's not this simple with other areas, for example, I've worked with the field in Moleville with the Bowser's Troop scene and I can't seem to find anything...yet.
Omega45889

Panser
Level: 30

Posts: 301/335
EXP: 148978
For next: 16891

Since: 03-22-04
From: Vancouver Canada

Since last post: 5 days
Last activity: 6 hours
Posted on 08-10-05 06:43 AM Link | Quote
Well, the info is defnintly building up for this game. I never planned to put an event editor into my editor, but if it were well documented, i dont see why not.
giangurgolo

Level: 10

Posts: 29/42
EXP: 3346
For next: 1068

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 08-12-05 03:50 AM Link | Quote
I've found the timing data for the Super Jumps, and I imagine the timing for the rest of the spells and weapons is in the same bank. This is definite, and I am completely confident that the timing for all jumps after jump 14 is EXACTLY the same (using breakpoints it loaded from the same location each jump after the 14th). Two identical values are used for the 14 different ranges; see the description for each in the first range. If someone wants to change the range for the jumps, then they would need to change both values to have it work properly. Also, Ultra Jumps are included in this document, and the ranges a little wider at first but shrink down to 2 frames at jump 17, which is why it is very difficult to go any further because of the various cooridinates of multiple monsters and the speed of the jumps (individual jumps are longer than the Super Jumps, but Mario falls a lot faster).

here is the document

Some of the freebie timers (ie.odds of getting a freebie for disposable items) are located a little further down in the same bank. Most of the code before and after the timing data is spell and attack animation code (for monsters) and the later code after is spell animation code (for allies). I've done a bit of work with this stuff and it's rather complicated, but I've managed to go so far as to combine two spells animations into one, and change the sounds.

http://giangurgolo.home.att.net/smrpg/ is a complete listing of all information and documents I've written over the last year, so check there as a reference source for any hacking info you might be looking for


(edited by giangurgolo on 08-11-05 06:53 PM)
(edited by giangurgolo on 08-12-05 07:22 PM)
(edited by giangurgolo on 08-12-05 07:46 PM)
(edited by giangurgolo on 08-15-05 01:54 AM)
(edited by giangurgolo on 08-15-05 01:59 AM)
(edited by giangurgolo on 08-15-05 02:02 AM)
Spekkio

Level: 8

Posts: 16/22
EXP: 1898
For next: 289

Since: 11-29-04
From: End of Time

Since last post: 15 days
Last activity: 70 days
Posted on 08-18-05 09:37 AM Link | Quote
I want to edit the underwater battle stages to not have the underwater color pallete. The values in question are: 0E(Undewater Sewers), 22(Undersea) and 26(Undersea Cave).



Also, 1B(Forest Land(Messed GFX)) is unused.
xZeaLitYx

Cheep-cheep
Level: 23

Posts: 165/199
EXP: 66932
For next: 791

Since: 04-13-04

Since last post: 1 day
Last activity: 3 hours
Posted on 08-18-05 09:59 AM Link | Quote
Did you grab a screenie of Bahamutt? SMRPG was the first one I ever played, so I've been following this thread. Shy Ranger...man, what a rarity.

Edit: Nevermind, found it.


(edited by xZeaLitYx on 08-18-05 01:00 AM)
Sukasa

Boomboom
Error 349857348734534: The system experienced an error.
Level: 57

Posts: 1685/1981
EXP: 1446921
For next: 39007

Since: 02-06-05
From: *Shrug*

Since last post: 6 days
Last activity: 1 day
Posted on 08-18-05 10:08 AM Link | Quote
Pretty awsome, wnything at all I could do to help?
giangurgolo

Level: 10

Posts: 30/42
EXP: 3346
For next: 1068

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 08-18-05 11:07 AM Link | Quote
Originally posted by Spekkio
I want to edit the underwater battle stages to not have the underwater color pallete. The values in question are: 0E(Undewater Sewers), 22(Undersea) and 26(Undersea Cave).



Also, 1B(Forest Land(Messed GFX)) is unused.


you can change the palette set in the BG layout data

check nfo_areamaps.txt at the bottom which lists the battlefield layout data

since the palette itself is comprised of blue tints and the like there isn't anything that changes the BG palette to 'underwater' like the monsters and characters

if you want to fix it so that the monster and characters don't use the underwater palette, just change the 0x78 at address:

C2/88DE A9 78 00    LDA #$0078              A:0000 X:4080 Y:001C ;underwater palette pointer


to 0x00 and they will retain their original palettes
Spekkio

Level: 8

Posts: 17/22
EXP: 1898
For next: 289

Since: 11-29-04
From: End of Time

Since last post: 15 days
Last activity: 70 days
Posted on 08-19-05 07:48 AM Link | Quote
Here's value 1b:
giangurgolo

Level: 10

Posts: 35/42
EXP: 3346
For next: 1068

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 09-07-05 11:11 AM Link | Quote
I've documented all palette offsets of almost every object (000 - 23F) and the mold offsets and sprite animation pointers. Also, the offset document has been organized and optimized for better viewing.

That last unknown byte in the monster stats was just the magic evade, and only applies to spells like Terrorize, Sleepy Time, and the other few that don't have 100% hit rate. The stats guide is now 99% complete save for two bits in the magic stats in byte 1 which I haven't found any effect of. Other than that, I'm pretty sure it's all you would need to create a perfect monster stats editor.

I overhauled the battlescript chart, which should be immaculate now. NOTE: Exor is actually protected against instant death (ie. Geno Beam) but a command in his battlescript , along with breaking his protection from the Eye, nulls the protection bit in his stats thus making him vulnerable to mortal infliction.

I've recorded a lot of ASM code into the two documents here. People might find it interesting I don't know.

If there are any questions just ask!


(edited by giangurgolo on 09-07-05 02:13 AM)
(edited by giangurgolo on 09-07-05 02:13 AM)
HyperLamer
<||bass> and this was the soloution i thought of that was guarinteed to piss off the greatest amount of people

Sesshomaru
Tamaranian

Level: 118

Posts: 6908/8210
EXP: 18171887
For next: 211027

Since: 03-15-04
From: Canada, w00t!
LOL FAD

Since last post: 2 hours
Last activity: 2 hours
Posted on 09-07-05 11:26 AM Link | Quote
Didn't they fix that Geno Whirl bug in some versions?

Also I'm sure the debug menu will be quite useful for hacking with.
giangurgolo

Level: 10

Posts: 36/42
EXP: 3346
For next: 1068

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 09-07-05 10:07 PM Link | Quote
All of the data available from the debug menu has been documented (sound effects were the only thing I didn't have at that point). So far the SCENE option to choose any formation at any time in battle has been very useful, and the OBJ has helped with the palette documentation.

Don't think I did all of those one by one, though, because I ripped the data straight from the ROM and had to do several modifications with search/replace in MSWORD and Hex WS (AND'ing and adding in correlation with the code). Instead of the monotonous task of recording each individually from trace log observations (which for the monsters, BTW, were all read by the SA-1 which doesn't have breakpoint support).

Also, here's the code to unlock the quick exit battle option (with SELECT):
C28EFA05

Holding L and/or R while pressing SELECT executes the ending credit sequence.

On the Exor bug, I'm not sure about a bugfix because I haven't even heard of any other versions other than one other bad dump and a bunch of translations. It's not really much of a bug, but rather one simple overlook in the coding.

Here's the problem just FYI:

C2/A68C BF 41 00 7E LDA $7E0041,x[$7E:FC41] A:0001 X:FC00 Y:0019 ;load special defense
C2/A690 29 FC FF AND #$FFFC A:0003 X:FC00 Y:0019 ;isolate all bits EXCEPT bit 0 and 1
C2/A693 9F 41 00 7E STA $7E0041,x[$7E:FC41] A:0000 X:FC00 Y:0019 ;store as current defense


bit 1 is the death protection bit, so it's isolating the other bits from it nulls its effect...so changing the AND #$FFFC to AND #$FFFE should fix it (TEST: yep, that fixes it)


(edited by giangurgolo on 09-07-05 04:09 PM)
Mattrizzle

Paragoomba
Level: 14

Posts: 42/75
EXP: 12123
For next: 948

Since: 11-19-04
From: Louisville, Kentucky, USA

Since last post: 3 days
Last activity: 5 hours
Posted on 09-08-05 03:59 PM Link | Quote
I was looking at the mold pointers that you posted, giangurgolo, and I found that the pointer for mold 30 is unused. It has all of the animations an enemy would have too, but I can't find any art that fits it though.
giangurgolo

Level: 10

Posts: 37/42
EXP: 3346
For next: 1068

Since: 06-04-05

Since last post: 31 days
Last activity: 22 days
Posted on 09-10-05 04:21 AM Link | Quote
I made a little ASM hack here, with four new custom items (three are equipment).

Apparently there are still several errors, especially with the Relay Flag. I'll try to relocate the new code to a place where it doesn't re-execute it again for whatever stupid reason.

I might add even more items or add effects of the current custom items, since there are still some unused dummy items. There's a little 'bug' with this patch, though, and you'll notice once you exit/win a battle the Kuribo's Shoe loses its effect. Just open/close the menu to reactivate it. I'll probably fix this later, but this is just an example of my knowledge of ASM so far in this game so it's not up to par.

Included is a ZST savestate to test the items.


(edited by giangurgolo on 09-09-05 07:35 PM)
(edited by giangurgolo on 09-09-05 07:36 PM)
(edited by giangurgolo on 09-10-05 02:10 PM)
BrooklynMario

Koopa
Level: 17

Posts: 108/110
EXP: 23769
For next: 974

Since: 09-04-04
From: Brooklyn, NY

Since last post: 19 hours
Last activity: 45 days
Posted on 09-10-05 05:19 AM Link | Quote
How do I load the save state, cause when I try to, it stays to where I am at.

How can i see the new items. Do I have to wait till I get to a shop to buy them?


(edited by BrooklynMario on 09-09-05 08:38 PM)
Pages: 1 2 3 4 5 6Add to favorites | "RSS" Feed | Next newer thread | Next older thread
Acmlm's Board - I2 Archive - Rom Hacking - Has anyone even considered creating an editor for Mario RPG? | |


ABII


AcmlmBoard vl.ol (11-01-05)
© 2000-2005 Acmlm, Emuz, et al



Page rendered in 0.021 seconds.